Привет, хаброжители! Меня зовут Алексей Евсеев, я инженер по встраиваемым системам в ЦИТМ «Экспонента». В этом году на ЦИПРе нам выделили только стенд для экспозиции, поэтому, к сожалению, мы не смогли привезти туда настоящий самолёт. Но мы не растерялись и привезли его цифровую копию – модель МС-21 в Engee с ручным управлением и визуализацией полёта, работающую в режиме реального времени.

Фото с ЦИПРа
Фото с ЦИПРа

Стенд испытаний комплексной системы управления МС-21

Для начала коротко о том, что включал в себя наш стенд.

  1. Модель движения среднемагистрального самолёта МС-21, учитывающая:

    • аэродинамику самолёта,

    • силы и моменты от двигателей (в нашем случае ПД-14),

    • параметры атмосферы и ветровые возмущения.

  2. Модель комплексной системы управления самолёта в Engee.

  3. Проект приборов авионики в ПрагмаСофтСтудия.

  4. Проект 3D-визуализации самолёта МС-21 и окружающей среды в Unigine.

  5. Локальный сервер от «Инферит», где развернута виртуальная машина с образом Engee.

  6. ПК с мощной видеокартой, на котором запущены:

    • Sim SDK Unigine,

    • САПР-интерфейсов авионики ПрагмаСофтСтудия,

    • браузер с графическим интерфейсом Engee.

  7. Машина реального времени КПМ РИТМ, выполняющая расчёт модели с заданным временнЫм шагом.

  8. Ручка управления самолётом (РУС) и рычаг управления двигателями (РУД) на Thrustmaster HOTAS

Стоит отметить, что за исключением HOTAS и ПК все части стенда отечественные. 

Отвечаем уверенно
Отвечаем уверенно

Кстати, интересно, что буквально каждый подходивший к нам иностранец специально уточнял: «Это полностью ваша разработка, российская?» и «Это реально работающий софт или прототип?».

Физика и математика: моделирвоание в Engee

Прежде чем построить самолёт, его нужно спроектировать, а прежде чем управлять им, нужно моделировать взаимодействие системы управления и собственно объекта управления. Ниже показано, как выглядит модель движения самолёта, которую мы собрали.

Краткая статистика:

  • 3003 блока из библиотеки Engee,

  • 8 уровней вложенности,

  • 55 Си-файлов,

  • 6 специальных блоков РИТМ,

  • 137 настраиваемых параметров, занимающих память 5 816 байт.

Модель МС-21 в Engee
Модель МС-21 в Engee

Вся система, как можно заметить, разделена на несколько функциональных частей:

  • блок задания ветра – задаёт скорость ветра по осям;

  • блок начальных условий – определяет и задаёт начальные значения параметров полёта (положение в пространстве) и начальные отклонения аэродинамических поверхностей;

  • блок опроса джойстиков – считываются данные с HOTAS, масштабируются и определяются необходимые управляющие сигналы для модели;

  • блок расчёта уравнений движения – рассчитываются элементы объекта управления, а именно модели: инерции и динамики в пространстве воздушного судна (ВС), атмосферы, аэродинамических нагрузок, двигателей и некоторых других систем;

  • блок имитации бесплатформенной инерциальной навигационной системы (БИНС) – имитируются задержки при вычислении отклонений ВС в пространстве;

  • алгоритмы управления – объединяет системы управления механизацией крыла, рулями высоты и направления, элеронами, стабилизаторами, интерцепторами. Формирует управляющие воздействия для приводов ВС;

  • приводы аэродинамических поверхностей – собственно, сами органы регулирования динамики ВС и его положения в пространстве. Подсистема включает в себя приводы рулей, интерцепторов, элеронов и других элементов. Здесь же по итогу регулирования рассчитываются вектора отклонений аэродинамических поверхностей.

  • вывод графиков – включает в себя блоки периферии КПМ РИТМ для вывода графиков в GUI ОС реального времени (ОСРВ РИТМ.Реальное время), задействуются автоматически только при выполнении модели на машине реального времени КПМ РИТМ;

  • передача данных в ПрагмаСофт Студию – здесь происходит масштабирование получаемых данных, то есть состояния атмосферы и положения ВС. Затем формируются последовательности байтов, которые передаются в блок вызова функций для их отправки по UDP во внешнее приложение. 

  • передача данных в Unigine – здесь происходит та же самая работа с UDP, но входными данными здесь служат координаты и угловое положение ВС, отклонения аэродинамических поверхностей.

Часть систем представлена блоками со встроенным кодом на Си – как, например, подсистемы расчёта аэродинамических характеристик или координат ВС.

Часть систем в модели – это блоки со встроенным кодом на языке Julia, как, например, блоки формирования последовательности байтов для передачи по UDP или блок расчёта параметров атмосферы.

Некоторые системы, как, например, приводы элеронов, интерцепторов и прочих аэродинамических поверхностей, собраны исключительно направленными блоками.

На этом примере видно, что моделирование в Engee позволяет разработчикам не ограничиваться в используемых подходах к модельной разработке: хотите собирать блоками – собирайте, хотите писать кодом – пишите. Приходится использовать legacy на C/C++/Python/Matlab/Fortran и т.д. – милости просим!

В этой модели, кстати, мы активно используем и именованные параметры. Так, для быстрого переконфигурирования и задания начальных значений достаточно запустить готовый скрипт на Julia или добавить 250 строк определений переменных в обратные вызовы модели. Последнее позволяет автоматически при открытии модели в Engee добавить все определения в рабочую область переменных.

Параметрирование модели: в центре – рабочая область переменных, справа – обратные вызовы модели
Параметрирование модели: в центре – рабочая область переменных, справа – обратные вызовы модели

Конечно, разработка такой модели – процесс длительный, с множеством итераций наращивания, отлаживания и тестирования. Но именно метод  модельно-ориентированного проектирования (MBD, model-based design) экономит нам время, средства и нервы. После сборки модели, её конфигурирования и тестирования в графиках Engee мы увидим нечто подобное:

Графики скорости и высоты ВС в процессе тестирования в Engee
Графики скорости и высоты ВС в процессе тестирования в Engee

Результаты моделирования нас устраивают (ровно так же, как и заказчиков). Однако прежде чем переносить модель в реальное время или грузить генерируемый из неё код в контроллер, нужно протестировать, как модель ведёт себя с реальными управляющими воздействиями, как будут визуализироваться результаты моделирования в привычных для оператора средах. Самое время перейти к интеграции модели с человеко-машинными интерфейсами (HMI).

Где начинается игра: поддержка внешнего оборудования в Engee

Лирическое отступление

Кажется, ещё совсем недавно, рассказывая о планах на взаимодействие с железом и разными САПР непосредственно из браузерного Engee, мы натыкались на необоснованный скепсис. Как здорово, что это в прошлом, благодаря одному из наших недавних релизов. Теперь Engee может общаться с устройствами, подключенными к PC по COM, CAN, Modbus TCP, Modbus RTU, может управлять устройствами по VISA и машиной реального времени КПМ РИТМ. Функциональности этого инструментария расширяются с каждой неделей, число поддерживаемых интерфейсов и протоколов постепенно увеличивается. Некоторые поразительные новшества появятся в  ближайшем релизе!

Жаль, все фишки работы с оборудованием из Engee в этом посте не показать, и вряд ли у меня получится полноценно рассказать о них в комментариях. По такому важному случаю я подготовил специальный  вебинар. Подключайтесь 18 июня в 10:00!

Продолжим про HMI модели МС-21.

В библиотеке блоков Engee уже есть специализированные элементы, с помощью которых мы можем срастить модель с внешними устройствами и ПО. 

Вот эти блоки используем при отладке HMI для нашей модели
Вот эти блоки используем при отладке HMI для нашей модели

В нашем случае это следующие элементы.

Устройства HID – игровые контроллеры Thrustmaster HOTAS. Они передают в модель сигналы тяги правого и левого двигателей, тангаж и крен.

Слева – HOTAS, как у нас; справа – они же в процессе тестирования на стенде
Слева – HOTAS, как у нас; справа – они же в процессе тестирования на стенде

С контроллеров можно было завести ещё пару десятков сигналов, но мы не будем запускать ракеты на пассажирском авиалайнере, да и чтение лекций по элементам управления ВС на ЦИПР – не моя компетенция.

Для тех, кто хочет пострелять, я подготовил пример со стрельбой по мишеням, не выходя из Engee: координаты целей определяются рандомайзером, а вам за время моделирования нужно поразить их как можно больше. Посмотрите, получилось интересно.\

САПР ПрагмаСофт Студия – это широко известный в узких кругах софт для отрисовки панели с приборами авионики. У него есть инструменты для моделирования сценария визуализации. На нашем стенде он читает данные из порта 7900 по IP 127.0.0.1.

Engee и ПрагмаСофт: слева – подключение блока передачи данных, справа – моделирование тестового сценария в ПрагмаСофт
Engee и ПрагмаСофт: слева – подключение блока передачи данных, справа – моделирование тестового сценария в ПрагмаСофт

Что мы отображаем в ПрагмаСофт: перегрузки – текущие и предельные, тангаж, крен, курс, давление за бортом, скорость, высоту. Все эти параметры рассчитываются в модели, а затем формируются в единый массив (вектор) длиной 64 элемента, каждый элемент которого имеет формат UInt8. Интерфейсному блоку PRAGMASOFT TX (UDP) остаётся сообщить только IP-адрес и порт назначения передачи, размер передачи, а затем в цикле передавать сами данные.

3D-движок Unigine – российская замена Unreal Engine. В плане механизма передачи данных из модели Engee в Unigine справедливо всё то, что выше я описал про взаимодействие с ПрагмаСофт. Отличие составляют лишь номер порта (5150 по тому же IP) и длина передаваемого массива данных (104).

Engee и Unigine: слева – подключение блока передачи данных, справа – визуализация полёта в Unigine
Engee и Unigine: слева – подключение блока передачи данных, справа – визуализация полёта в Unigine

Как уже упоминалось выше, из модели в Unigine передаются координаты и угловое положение ВС, отклонения аэродинамических поверхностей. Так на визуализации определяется положение самолёта относительно координатных плоскостей карты, наклоны фюзеляжа относительно осей, а также положения рулей, предкрылков и прочих элементов относительно фюзеляжа.

На что следует обратить внимание на этом этапе тестирования разработанной модели? Объясняю.

При моделировании в Engee и анализе графиков сигналов из модели инженер может определить соответствие наблюдаемых параметров техническому заданию. Но этап разработки модели с интеграцией в модель HMI это тестирование с приближением к реальным условиям работы. Здесь в идеале требуется участие опытного пользователя объекта управления – например, лётчика-испытателя. Он сможет задать для модели реальные управляющие воздействия и, опираясь на собственный опыт, визуально определить параметры работы модели и системы управления, недоступные разработчикам.

Что следует за этапом отладки HMI-модели? Дальнейшее её приближение к реальными условиям эксплуатации.

Engee во плоти: реальное время, изолированный контур

Ещё один шаг вверх по лестнице TRL (Technology Readiness Level, уровень готовности технологии, УГТ) – работа системы с жёстко контролируемым временем выполнения модели. Честно сказать, шаг дискретизации нашей модели не такой уж и маленький – он составляет целых 10 мс. Однако тестирование модели МС-21 в течение всей недели, пока длилась конференция ЦИПР, показало, что машине реального времени КПМ РИТМ для расчёта нашей модели в среднем достаточно и 100 мкс.

Пруфы на экране с GUI ОС КПМ РИТМ: шаг расчёта модели (Sample time) = 10мс; затраченное время расчёта модели (TET, Task Execution Time) < 100 мкс; текущее время моделирования >10 000 с.
Пруфы на экране с GUI ОС КПМ РИТМ: шаг расчёта модели (Sample time) = 10мс; затраченное время расчёта модели (TET, Task Execution Time) < 100 мкс; текущее время моделирования >10 000 с.

Это значит, что в такой системе мы учитываем влияние процессов, изменяющихся с частотой до 50 Гц, а при незначительной оптимизации модели – и до 5 кГц. 

Как работает и как применяется КПМ РИТМ, здесь уже рассказывали мои коллеги. Я по этой теме должен лишь дополнить, что эта машина одинаково хорошо работает и с моделями Simulink, и с моделями Engee. В Engee для неё разработан пакет поддержки периферии, который позволяет быстро и без потерь заменить блоки HMI из предыдущего шага на аналогичные. Так мы подключаем оборудование не к PC с Engee в браузере, а непосредственно к машине реального времени. Можно вообще скомпилировать модель из Engee и загрузить на РИТМ, а на компьютере оставить только ПО для визуализации.

Вишенкой на этом торте будет развёртывание Engee в изолированном контуре. В одну стойку с PC и РИТМ мы смонтировали сервер от коллег из Инферит. Engee по умолчанию работает на нашем сервере. Однако для закрытых предприятий или для мест с плохой интернет-связью мы разворачиваем Engee на сервере заказчика с доступом в локальной сети предприятия.

Отдельное удовольствие от такого решения составляет мерный успокаивающий гул кулеров сервера Инферит, что позволяет нам только глубже погрузиться в пилотирование воздушного судна.

Заключение

Этот проект продолжает развиваться и дальше. В качестве намёка сообщу, что для РИТМ доступно подключение устройств по МКИО, а также модулей ввода-вывода на базе ПЛИС. Кроме того, в Engee появляется всё больше блоков для моделирования специфических систем, не говоря уже о новшествах для работы с внешним оборудованием.

О некоторых инструментах работы с оборудованием и ПО в Engee, а также кейсах их применения я расскажу на вебинаре уже 18 июня.

Спасибо, что прочитали!

До новых постов, друзья и коллеги!

Комментарии (2)


  1. ru_vlad
    16.06.2025 07:56

    Можно маленький глупый совет, вы с таким КПВД поаккуратней, 11 сентября еще люди помнят. /сарказм/


    1. alex_evseev Автор
      16.06.2025 07:56

      Красота, как и не красота, в глазах смотрящего /шутка/