Документация Engee
Notebook

Начало работы с генератором кода

В этой модели представлена реализация системы управления автопилотом по оси крена. Модель предназначена для генерации кода.

О модели

Эта модель представляет базовый автопилот по каналу крена с двумя режимами работы: стабилизация крена и удержание курса полета. Логика переключения режимов является внешней по отношению к данной модели и может быть реализована в других моделях. Режимы стабилизации крена и удержания курса полета архитектурно выделены в атомарные подсистемы внутри модели.

Функция стабилизация крена — это ПИД-регулятор, который использует обратную связь по углу и скорости крена для выдачи команды элерону. Входным сигналом для регулятора является либо уставка (заданное значение) угла крена, либо команда угла крена для удержания желаемого курса полета. Модель выглядит следующим образом:

gs_topmodel.png

Подсистема RollMode

В этой подсистеме реализован базовый расчет уставки угла крена. В зависимости от типа подсистемы генератор кода Engee встроит это вычисление непосредственно в основную функцию модели (для виртуальной подсистемы) или сгенерирует отдельную функцию с именем подсистемы (для атомарной подсистемы).

gs_rollmode.png

Подсистема HeadingMode

В этой подсистеме вычисляется уставка крена для удержания желаемого курса полета.

gs_headingmode.png

Подсистема CtlMode

В этой подсистеме реализуется функция стабилизации угла крена в виде ПИД-регулятора.

gs_ctlmode.png

Симуляция модели

В модели содержится тестовая обвязка вокруг подсистемы autopilot_roll. Запустите симуляцию модели, чтобы убедиться в ее корректности.

Генерация кода из модели

Эта модель Engee готова для генерации кода. Чтобы сгенерировать код из подсистемы autopilot_roll (которая представляет алгоритмическую часть модели), выполните следующую команду в командной строке или интерактивном скрипте Engee:

In [ ]:
engee.generate_code( "$(@__DIR__)/aircraft_roll.engee",
                           "$(@__DIR__)/autopilot_roll",
                           subsystem_name="autopilot_roll" )
[ Info: Generated code and artifacts: /user/start/examples/codegen/GettingStartedCodegen/autopilot_roll

Синтаксис команды engee.model.generate_code подробно описан в разделе Генератор кода в Engee.

Сгенерированный код находится в директории start/examples/codegen/GettingStartedCodegen/autopilot_roll.

Рассмотрим сгенерированный код.

gs_codege.png

Более подробная информация о функциях и интерфейсе сгенерированного кода приведена в разделе Возможности генератора кода.

Блоки, использованные в примере