Рассмотрена архитектура расширяемой интегрированной системы для проведения инженерного анализа. Выделены основные принципы разработки архитектуры подобного программного комплекса. Функционал интегрированной системы разделен на три класса: подготовка исходных данных, проведение расчетов по заданным методикам, анализ результатов. Предложена модульная архитектура комплекса, позволяющая совместить преимущества использования расчетных модулей сторонних CAD/САЕ-систем наряду с реализацией собственных методических и теоретических наработок. Описана модель взаимодействия модулей комплекса на основе унифицированных программных интерфейсов. Описан минимальный набор программных интерфейсов и модулей, необходимых для построения комплекса по проведению механического анализа бортовой радиоаппаратуры космических аппаратов.
Architecture of the integrated systemfor mechanical analysis of spacecraft on-board electronic equipment.pdf На сегодняшний день существует множество систем проектирования и инже-нерного анализа (так называемых CAD/CAE-систем) в той или иной области раз-работки изделий и симуляции проходящих физических процессов. Бортовая ра-диоэлектронная аппаратура (РЭА) космических аппаратов (КА) в этом смысле яв-ляется неким эталоном, демонстрирующим самые передовые возможности широ-кого применения данных систем. Ее конструктивная сложность, многоплановостьсхемотехнических решений, обилие применяемой специальной элементной базы,необходимость противостоять большому спектру внешних воздействующих фак-торов в земных условиях и условиях космического пространства делают необхо-димым применение разноплановых систем автоматизированного проектирования(САПР) [1]. Эти системы отличаются спектром решаемых задач и дополнитель-ным функционалом подготовки исходных данных и обработки результатов. Кро-ме того, требуется дополнительная адаптация функционала этих систем к специ-фике того или иного производства, организация взаимодействия, автоматизациярешения типичных задач и выполнения типовых процедур. Возникающие приэтом трудности удается частично решить за счет встроенных в системы средствавтоматизации и обмена данными, но возникает и целый ряд важных проблем:а) высокая стоимость итогового программного комплекса;б) сложность или невозможность использования собственных методических итеоретических наработок;в) ограниченная или отсутствующая возможность гибкой настройки комплексадля решения новых специфичных задач.В данной статье рассматривается архитектура интегрированной системы (ИС)для проведения специализированных инженерных расчетов, в которой могут бытьрешены обозначенные проблемы.Гибкая настройка, расширение и изменение функционала ИС под различныезадачи естественным образом может быть обеспечена применением модульнойархитектуры. Её использование подразумевает выделение определенного функ-ционала (комплекса смежных функций) в отдельные программные модули, длякоторых возможна независимая разработка, интеграция и поддержка. Модули мо-гут быть выполнены как в виде программных библиотек, динамически загружае-мых в процессе работы (DLL-модулей), так и в виде независимых исполняемыхпрограмм (EXE-модулей).Явные признаки применения модульной архитектуры можно встретить и уCAD/CAE-систем от ведущих мировых производителей в этой области. В такихпрограммных комплексах, как ANSYS и NASTRAN инструментарий разработки ианализа изделий разделен на три функциональных класса: так называемые «пре-процессор», «решатель» и «постпроцессор». К первому классу можно отнестиподготовку и обработку геометрических данных, построение расчетной модели,задание начальных и граничных условий. Ко второму классу относятся реализа-ции различных методик (разностных, конечно-элементных и т.д.) по решению за-дач моделирования определенных физических процессов. К третьему классу от-носятся построители графиков и отчетов, анализаторы критических значений рас-считанных параметров.Опыт использования различных CAD/CAE-систем показывает, что хранениеисходных данных и результатов анализа в «нейтральных» форматах обеспечиваетзначительно большую свободу в выборе сторонних программных комплексов дляработы в единой ИС. Например, для хранения и обмена геометрических данныхудобно использование форматов IGES и STEP, а для сеточного разбиения конеч-но-элементной модели удобно использовать формат SAT. Наконец, в качествеважного связующего звена ИС удобно использовать единую базу данных, котораяхранит исходные сведения для проведения расчетов (в том числе геометрическиемодели), данные самих расчетов и результаты их обработки. Оптимальной фор-мой организации такой базы является сочетание реляционной базы данных таб-личного типа и файловой библиотеки дополнительных материалов.Для осуществления поставленных задач предлагается построить ИС по сле-дующим принципам:а) использовать модульную архитектуру, где комплексы функций схожего на-значения выделены в отдельные программные модули;б) обозначить три класса модулей: «препроцессоры», «решатели», «постпро-цессоры»;в) взаимную связь между модулями ИС организовать на основе унифициро-ванных программных интерфейсов (API).Для обеспечения работы составных частей препроцессора и постпроцессора ведином информационном (адресном) пространстве ИС данные классы модулейпредлагается выполнять в виде DLL-модулей, поддерживающих унифицирован-ные API. Такой подход позволяет избежать процедур дополнительного копирова-ния и преобразования данных, используемых различными программными компо-нентами, а также открывает широкие перспективы гибкой настройки ИС к новымспецифичным задачам путем выпуска и интеграции дополнительных модулей ав-томатизации подготовки и анализа данных.Модули из класса решателей предлагается разрабатывать в виде таких жеDLL-модулей, но имеющих определенную специфику. В случае реализации соб-ственных методик моделирования физических процессов такой модуль можетвключать в себя полный функционал решателя, а в случае использования рас-четного EXE-модуля стороннего производителя - быть, фактически, лишь над-стройкой над ним и автоматизировать его запуск/остановку с заданными пара-метрами командной строки. В частности, задействование ядра CAE-системыANSYS может быть организовано запуском соответствующего EXE-модуля суказанием входного и выходного файла, а в качестве входного файла средства-ми препроцессора ИС может быть подготовлен (сверстан) набор команд по-строения или загрузки модели, запуска расчета, динамической корректировкипараметров [2]. Использование потенциала расчетных модулей стороннихCAD/CAE-систем во многих случаях имеет преимущество перед разработкойсобственных аналогичных средств как по времени разработки, так и по скоростии качеству самих расчетов.Изложенные принципы построения ИС нашли применение при проектирова-нии аппаратно-программного комплекса для проведения механического анализаунифицированных электронных модулей бортовой радиоаппаратуры космическихаппаратов. В качестве основного решателя используется ядро CAE-системыANSYS, графическая оболочка комплекса разработана с использованием кросс-платформных библиотек QT и OpenCascade, а связь с реляционной базой данныхв операционной системе Windows организована через драйвер ODBC.Загрузка и работа с DLL-модулями комплекса производится по единой схеме иотчасти напоминает технологию Microsoft Component Object Model (COM):1) загружается DLL-файл, в котором определяется адрес функции «фабрики»объектов;2) запуск указанной функции создает экземпляр функционального объекта мо-дуля и возвращает ссылку на его основной программный интерфейс;3) через основной программный интерфейс приложение получает доступ ковсем дополнительным интерфейсам, поддерживаемым модулем.4) удаление объекта производится вызовом соответствующей функции основ-ного программного интерфейса.Для связывания составных частей комплекса разработаны два программныхинтерфейса: IAppHook и его наследник ISubModule. При проектировании DLL-модулей комплекса в каждый из них закладывается поддержка ISubModule в ка-честве основного интерфейса, тогда как основное приложение (оболочка ком-плекса) поддерживает только IAppHook. Функциональный состав данных интер-фейсов приведен в табл. 1 и 2 соответственно.Интерфейс IAppHook имеет две пары симметричных функций и обслуживаетмежмодульный обмен ссылками на объекты графической оболочки на базе QTи на программные интерфейсы. Таким образом, разработчик модуля можетТ а б л и ц а 1Функциональный состав интерфейса IAppHookФункции API Описаниеlong GetObject (long objID,QObject **ppObj)Посредством данной функции основное приложение запраши-вает у модуля ссылки на объекты платформы QT, которые мож-но встроить в общий графический интерфейс комплекса (глав-ное меню, панели инструментов, окна). За каждым из объектовзакреплен уникальный числовой идентификаторlong SetObject (long objID,QObject *pObj)Посредством данной функции основное приложение передаетмодулю ссылку на основное графическое окно. Эта ссылка ис-пользуется при создании дочерних окон модуля, которые впо-следствии запрашиваются командой GetObject()long GetInterface (long IID,void **ppObj)Посредством данной функции основное приложение запраши-вает у модуля ссылку на программный интерфейс. Также и мо-дуль может воспользоваться этой функцией основного прило-жения для получения ссылки на интерфейс смежного модуля.За каждым из интерфейсов закреплен уникальный числовойидентификаторlong SetInterface (long IID,void *pObj)Посредством данной функции основное приложение передаетмодулю ссылку на собственный интерфейс IAppHook. Впослед-ствии эта ссылка используется модулем для ретрансляции запро-са дополнительных интерфейсов у смежных модулейинтегрировать в оболочку основного приложения полный спектр необходимыхэлементов управления (пункты главного меню, панели инструментов, окна и др.).Кроме того, любой из модулей через основное приложение может запрашиватьнепосредственные ссылки на интерфейсы смежных модулей для доступа к необ-ходимому функционалу. При этом основное приложение играет роль ретрансля-тора запроса и опрашивает модули по очереди, пока какой-либо из них не предос-тавит требуемый интерфейс.Интерфейс ISubModule расширяет IAppHook функциями, специфичнымитолько для DLL-модулей комплекса. Среди них можно выделить два набора: пер-вые 4 функции позволяют получить описание модуля, а вторые 4 - управлять егожизнедеятельностью. Важной особенностью является управление состоянием ак-тивности модуля. В активном состоянии DLL-модуль может получать уведомле-ния о действиях пользователя или о готовности результатов работы других моду-лей (при условии, что он поддерживает интерфейсы работы с уведомлениями).Таким образом, активные модули могут динамически отслеживать и реагироватьна изменения в рабочей области (вставка дополнительных команд при вызовеконтекстных меню, автоматический пересчет параметров при изменении свойствмоделируемого объекта и др.). В неактивном состоянии модуль не реагирует науведомления и делает свои элементы управления недоступными пользователю.Для обеспечения непосредственного взаимодействия между модулями потре-бовалась разработка дополнительных программных интерфейсов (приводятся бездетализации функционального состава): IDbUser - функции доступа к таблицам, записям и полям базы данных; IChangesTrack - функции отслеживания изменений в параметрах расчетноймодели; IContextTrack - функции отслеживания вызова контекстного меню для эле-ментов расчетной модели; ISettingsManager - функции работы с настройками модулей, хранимыми в ба-зе данных; IProgressHook - функции отслеживания и управления процессом расчета.Базовый функционал комплекса для проведения механического анализа можетбыть обеспечен следующим набором модулей: База Данных - модуль связи с реляционной базой данных и файловой биб-лиотекой; Импорт-Экспорт - модуль автоматизации импорта и экспорта геометрии ипрочей информации из сторонних CAD/CAE-систем и баз данных; 3D-модель - модуль визуализации пространственной геометрии расчетноймодели; Механализ - модуль автоматизации работы с ядром CAE-системы ANSYS; Отчет - модуль автоматизации обработки данных расчета.Дополнительной спецификой аппаратно-программного комплекса для прове-дения механического анализа унифицированных электронных модулей бортовойрадиоаппаратуры космических аппаратов являются организация связи сCAD/CAM/CAE-системами и базой данных, используемой на предприятии, а так-же методика построения конечно-элементных моделей для проведения различныхвидов анализа. Все это реализуется средствами вспомогательных модулей пре-процессора и постпроцессора ИС.
| Бовсуновский Александр Борисович | Национальный исследовательский Томский государственный университет | научный сотрудник НИИ прикладной математики и механики | Alexander.Bovsunovsky@niipmm.tsu.ru |
| Бутов Владимир Григорьевич | Национальный исследовательский Томский государственный университет | доктор физико-математических наук, профессор, заведующий отделом НИИ прикладной математики и механики | bvg@niipmm.tsu.ru |
| Хвалько Александр Александрович | ОАО «Информационные спутниковые системы» имени академика М. Ф. Решетнева | инженер-конструктор | hvalko@iss-reshetnev.ru |
Каплун А.Б., Морозов Е.М., Олферьева М.А. ANSYS в руках инженера. Практическое руководство. М.: Едиториал УРСС, 2003. С. 194-269.
Руководство по системному инжинирингу NASA. NASA SYSTEMS ENGINEERING HANDBOOK (REV. 1). NASA/SP-2007-6105. URL: http://education.ksc.nasa.gov/esmdspa cegrant/Documents/NASA%20SP-2007-6105%20Rev%201%20Final%2031Dec2007.pdf