Эта модель показывает реализацию системы автопилота оси крена, которая предназначена для генерации кода.
Эта модель представляет собой основной автопилот оси крена с двумя рабочими режимами: удержание положения крена и удержание курса. Логика режима для этих режимов является внешней по отношению к этой модели. Архитектура модели представляет режим удержания заголовка и базовую функцию ориентации крена как атомарные подсистемы.
Функция управления положением крена является ПИД-регулятором, которая использует обратную связь о положении крена и скорости крена для получения команды элерона. Для входа контроллера используется либо основной угол крена ссылки либо команда крена для отслеживания требуемого курса. Модель выглядит следующим образом:
open_system('rtwdemo_roll');
RollAngleReference
Основной угол крена ссылки вычисления реализован как подсистема RollAngleReference
. Embedded Coder ® вводит это вычисление непосредственно в основную функцию для rtwdemo_roll
.
open_system('rtwdemo_roll/RollAngleReference');
HeadingMode
Подсистема HeadingMode
вычисляет команду roll, чтобы отследить требуемый курс.
close_system('rtwdemo_roll/RollAngleReference'); open_system('rtwdemo_heading');
BasicRollMode
Подсистема BasicRollMode
вычисляет функцию управления положением крена (PID).
close_system('rtwdemo_heading'); open_system('rtwdemo_attitude');
Модель предварительно сконфигурирована, чтобы сгенерировать код с помощью Embedded Coder. Чтобы сгенерировать код только с помощью Simulink Coder, перенастройте модель или в командной строке type rtwconfiguredemo('rtwdemo_roll','GRT')
Во временной папке системы создайте временную папку для процесса сборки.
currentDir = pwd; [~,cgDir] = rtwdemodir();
Сгенерируйте код.
slbuild('rtwdemo_roll');
### Starting build procedure for: rtwdemo_roll ### Successful completion of build procedure for: rtwdemo_roll Build Summary Top model targets built: Model Action Rebuild Reason ============================================================================================= rtwdemo_roll Code generated and compiled Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 9.6303s
Можно просмотреть весь сгенерированный код в подробном HTML с двусторонней отслеживаемостью между моделью и кодом.
web(fullfile(cgDir,'rtwdemo_roll_ert_rtw','html','rtwdemo_roll_codegen_rpt.html'))
Закройте модели и вернитесь в предыдущую рабочую папку.
close_system('rtwdemo_roll',0) close_system('rtwdemo_attitude',0) close_system('rtwdemo_heading',0) cd(currentDir); rtwdemoclean;
Для получения дополнительной информации о генерации кода с помощью Embedded Coder, смотрите Руководства в документации Запуск с Embedded Coder.