Эта модель показывает код, сгенерированный для модели Simulink, содержащей скрипт MATLAB.
Модель содержит Расширенный Фильтр Калмана, который оценивает положение самолета от радарных измерений. Скрипт MATLAB rtwdemo_eml_aero_radar.m содержит данные для выполнения модели. Предполагаемые и фактические положения сохранены в рабочую область и построены в конце симуляции программой rtwdemo_aero_radplot (названный от симуляции автоматически).
В этом разделе необходимо рассмотреть модель и выполнить симуляцию.
Откройте модель Simulink.
model='rtwdemo_eml_aero_radar'; open_system(model) rtwdemo_eml_aero_radar([],[],[],'compile'); rtwdemo_eml_aero_radar([],[],[],'term');
Откройте блок MATLAB function RadarTracker
в редакторе MATLAB.
open_system([model,'/RadarTracker'])
Симулируйте модель и рассмотрите результаты (отображенный автоматически).
sim(model)
В этом разделе вы сгенерируете код для фрагмента Фильтра Калмана модели с помощью функциональности сборки подсистемы, обеспеченной Simulink Coder. В первой сборке модель сконфигурирована, чтобы сгенерировать код с помощью Simulink Coder. Во второй сборке модель сконфигурирована, чтобы сгенерировать код с помощью Embedded Coder.
% Create a temporary folder (in your system's temporary folder) for the % build and inspection process. currentDir = pwd; [~,cgDir] = rtwdemodir();
Сконфигурируйте и создайте модель с помощью Simulink Coder.
rtwconfiguredemo(model,'GRT') slbuild([model,'/RadarTracker'])
Сконфигурируйте и создайте модель с помощью Embedded Coder.
rtwconfiguredemo(model,'ERT') slbuild([model,'/RadarTracker'])
### Starting build procedure for: RadarTracker ### Successful completion of build procedure for: RadarTracker Build Summary Top model targets built: Model Action Rebuild Reason ============================================================================================= RadarTracker 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 11.659s
Фрагмент RadarTracker.c
описан ниже.
cfile = fullfile(cgDir,'RadarTracker_ert_rtw','RadarTracker.c'); rtwdemodbtype(cfile,'/* Model step', '/* Model initialize', 1, 0);
Можно просмотреть целый сгенерированный код в подробном отчете HTML с двусторонней отслеживаемостью между моделью и кодом.
web(fullfile(cgDir,'RadarTracker_ert_rtw','html','RadarTracker_codegen_rpt.html'))
Закройте модель и очистку.
bdclose(model) rtwdemoclean; cd(currentDir)