УДК 681.142.2
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СТЕНДА КОМПЛЕКСНОГО ОПРЕДЕЛЕНИЯ ДИНАМИЧЕСКИХ ПАРАМЕТРОВ ЛЕТАТЕЛЬНЫХ АППАРАТОВ НА ЭТАПЕ НАЗЕМНОЙ ОТРАБОТКИ
А.В. Козлов, А. С. Пантилеев, В.Б. Федоров, Л.А. Фокин
Для синтеза алгоритмов управления беспилотным летательным аппаратом (БПЛА), как и любым другим объектом, необходимо идентифицировать его параметры (аэродинамические и массогеометрические характеристики), используемые в математической модели. Один из путей получения таких характеристик - проведение стендовых испытаний.
Лабораторный стенд представляет собой механическую конструкцию для закрепления исследуемого объекта и измерительное оборудование для преобразования неэлектрических исследуемых величин в электрические. При этом существует необходимость автоматизировать задачи сбора, обработки, сохранения и представления их данных с целью дальнейшего упрощения проектирования систем БПЛА. Для этого используется стандартный ПК, к которому через специальные устройства сбора и передачи данных, подключено задействованное на стенде измерительное оборудование (рис. 1).
Переданные на ПК данные могут быть обработаны, сохранены и наглядно представлены пользователю специализированным программным обеспечением, благодаря чему можно анализировать и уточнять параметры летательного аппарата в удобной форме, что позволяет повысить эффективность исследовательских.
Уже разработанные программные пакеты не позволяют быстро и удобно решать эти задачи и главное - учитывать специфические требования для каждого конкретного стенда, при этом не обладая и возможностями динамической настройки работы и расширений функций программы пользователем. Были проведены исследования с целью создания необходимого программного обеспечения, на их основе разработано программное обеспечение автоматизированной обработки данных лабораторных стендов для БПЛА, которое бы снимало трудности, связанные с использованием существующих программ.
Постановка задачи формулировалась следующим образом. Требуется разработать программное обеспечение для автоматизации процедур сбора, сохранения, обработки и представления информации, поступающей от датчиков стенда АС-1 [1] для БПЛА. Оно должно предоставить удобный диалоговый интерфейс взаимодействия пользователя с программой, а также решать следующие задачи.
1. Настройка работы программы в соответствии с конкретными требованиями пользователя:
• задействованных на стенде устройств сбора и передачи данных (УСПД);
• функций калибровки датчиков и обработки данных метрологического оборудования;
• вида графического пользовательского интерфейса программы;
• отображения данных;
• сохранения данных.
2. Получение данных.
3. Калибровка датчиков.
4. Обработка данных.
5. Графическое представление получаемых данных в виде графиков, диаграмм, виртуальных приборов и т.п.
6. Сохранение результатов работы программы в файловой базе данных.
7. Расширение списка поддерживаемых УСПД, датчиков, визуализаторов данных и т.д.
На рис. 2 приведена функциональная схема созданного программного обеспечения (ПО). Первый блок сбора данных, образованный функциональной группой поддерживаемых программой УСПД, через созданные или предоставленные производителями УСПД драйверы устройств получает от физических устройств данные, которые размещает в структурах хранения информации от каждого датчика. Для УСПД можно настроить частоту опроса, время ожидания, порты, к которым подключаются датчики, виды сигналов и т.п. ПО поддерживает конфигурирование, калибровку и настройку работы логических датчиков, т.е. приборов, показания которых образуются при взаимной обработке данных от нескольких датчиков, размещенных на стенде. Логические датчики образуют основной блок математической обработки данных программы. В составе логических датчиков находятся визуализаторы данных, отвечающие за настройку вывода и непосредственный вывод результатов пользователю. Это может быть сохранение данных в файл, прорисовка графика показаний в графическом пользовательском интерфейсе, виртуальный стрелочный прибор и т.п. Для организации работы программы используется управляющая консоль, которая вместе с тем обрабатывает пользовательский ввод в интерфейсе.
Для реализации вышеприведенной схемы была создана объектно-ориентированная модель программного обеспечения открытой модульноядерной архитектуры.
На диаграмме классов модели (рис. 3) отражен неполный состав классов, дающий лишь об-
Серия «Компьютерные технологии, управление, радиоэлектроника», выпуск 4
97
Лабораторный стенд
Датчик 1 | УСПД1 Интерфейс 1
Датчик 2 І УСПД 2 Интерфейс 2
Датчик 3 | успдг Интерфейс 3
Объект исследований Датчик N1 I УСПД N2 і Интерфейс N3
Рис. 1. Схема стенда
Рис. 2. Функциональная схема программного обеспечения
Рис. 3. Структурная схема архитектуры ПО
Программное обеспечение стенда комплексного определения динамических...
щее представление об архитектуре ПО. Программное обеспечение состоит из:
1) операционного ядра, реализующего работу системы в целом с периферийными компонентами.
2) периферии, обеспечивающей работу системы с конкретными устройствами сбора и передачи данных, датчиками, виртуальными приборами, графическими визуализаторами данных, классами, отвечающими за работу с базами данных, настройками графического пользовательского интерфейса и т.д.
Компоненты ядра и периферии построены на фундаменте специально разработанной в рамках данного проекта виртуальной машины для создания программного обеспечения.
Виртуальная машина представляет собой объ-ектно-ориентированную библиотеку инструментальных модулей, каждый из которых по отдельности, а также их совокупности решают определенные задачи функционирования созданного на их основе программного обеспечения. Отдельные блоки размещаются в динамически подгружаемых библиотеках. Высокая модульность и независимость отдельных блоков от реализации других блоков, позволяет расширять и изменять работу как самой виртуальной машины, так и созданных на ее основе программ без внесения изменений в систему целиком. Это позволяет создать кросс-платформенную систему, адаптирующиеся под конкретные задачи пользователя.
Ядерная архитектура виртуальной машины, т.е. инкапсуляция дескриптора в классы, создаваемые для расширения, а также применение наследования от базовых абстрактных классов с виртуальными методами, позволяет получить интегрируемые в систему компоненты. Отключение же данного механизма (исключение строки наследования классов) приводит к появлению независимых классов, которые могут быть использованы для работы в других приложениях без использования данной виртуальной машины. Т.е. в системе используется интеграция обычных классов через виртуальные API. В этом преимущество по сравнению, например, с архитектурой COM (Component Object Model), где не COM-программисту необходимо писать интерфейсы-оболочки для использования COM-объекта в своих программах, при этом COM-объект не может разрушить интерфейса со своей архитектурой.
Виртуальная машина является высокоуровневой надстройкой над базовыми функциями используемой в разработке платформы, и использует принцип микропрограммного управления, являющийся основой для построения вычислительных машин, но уже применительно к созданной на ее основе исполняемой программе. Получаемый бинарный файл, который содержит лишь логику функционирования ПО, широко использует внешние зависимости от библиотек виртуальной машины и специальных файлов, описывающих в шест-
надцатеричном виде или на специальном языке сценария конфигурацию, инициализацию и алгоритм исполнения функций ПО. Интерпретатор, транслятор и компилятор языка сценариев являются одной из главных частей виртуальной машины. Они могут быть настроены под использование разного синтаксиса, например, XML или синтаксис языка C++. Благодаря обработке файлов сценария осуществляется динамическая настройка выполнения готовой программы в соответствии с конкретными требованиями пользователя.
Разработка собственной виртуальной машины позволяет учитывать все необходимые конкретные особенности, возникающей при решении той или иной задачи, более того, это позволяет сделать код независимым от среды разработки, и, следовательно, способствует созданию кроссплатформенных компонентов.
Для разработки архитектуры была выбрана слабая статическая типизация языка C++, что по сравнению с языками с сильной динамической типизацией дает высокую скорость работы приложения. С экспортированием же данных о классах из dll помогает ядерная архитектура виртуальной машины. Загрузка библиотек и обработка файлов сценария идет в процессе загрузки, конфигурирования и инициализации приложения, что не тратит системные ресурсы при основной работе ПО.
В общих чертах применение данной системы выглядит следующим образом: для спроектированного лабораторного стенда исследования некоторого объекта, использующего несколько различных УСПД и датчиков, и описанное систему на ПК, пользователю для начала работы с системой достаточно указывать из списка поддерживаемых используемые УСПД, датчики, виртуальные приборы, с помощью языка сценариев настроить специфическую работу с УСПД, калибровку датчиков, обработку, сохранение и представление данных, вид графического пользовательского интерфейса, и сохранить свои настройки для последующего восстановления. В ходе работы на виртуальных приборах можно видеть текущие показания, менять их вид, расположение, получать различные диагностические сообщения, после окончания испытаний открыть файл с сохраненными данными и начать их обработку, например, в другой прикладной программе, или восстановить ход эксперимента с помощью данной системы. Если пользователю необходимо включить в систему свой периферийные компоненты, например, особый трехмерный визуализатор данных, работа которого реализована в C++ классе, то для интеграции его в систему потребуется включить лишь необходимый набор функций обмена данными и строку наследования для поддержки ядерной архитектуры, после чего разместить методы класса в dll и подключить ее к системе.
Описанная система успешно решает поставленные задачи. Продолжаются работы по ее разви-
Серия «Компьютерные технологии, управление; радиоэлектроника», выпуск 4
99
тию и улучшению, так как, например, охватить весь компонентный состав датчиков, УСПД, виртуальных приборов и т.п. сразу не удается, и в ходе работы создаются только те компоненты, которые в настоящее время необходимы. Поэтому достигнута главная цель - доступное расширение функций данной системы и адаптация системы под требования конкретной задачи. Кроме того, она может быть использована не только на стендах
для летательных аппаратов, но и с метрологическим оборудованием вообще.
Литература
1. Автоматизированный стенд для определения интегральных аэродинамических характеристик / Р.С. Абдулин, А.В. Козлов, А.С. Пантилеев, В.Б. Федоров // Известия Челябинского научного центра. - 2006. - Вып. 1(31).