На этом шаге примера вы проверяете, что, когда выполняется, код численно эквивалентен алгоритму, смоделированному в Simulink®. Вы используете модель тестовой обвязки, чтобы моделировать rtwdemo_roll
в режиме normal mode и в режиме SIL, затем сравниваете симуляции при помощи Инспектора Данных моделирования.
Чтобы протестировать сгенерированный код, можно запустить программное обеспечение в цикле (SIL) и процессоре в цикле (PIL) симуляции. SIL симуляция скомпилировала и запустила сгенерированный код на вашем компьютере разработчика. PIL симуляция кросс-компилирует исходный код на вашем компьютере разработчика. PIL симуляция затем загружает и запускает объектный код на целевом процессоре или эквивалентном симуляторе процессора. Можно использовать SIL и PIL симуляции к:
Проверьте числовое поведение своего кода.
Соберите метрики времени выполнения и покрытие кода.
Оптимизируйте свой код.
Продвижение к достижению IEC 61508, IEC 62304, ISO 26262, EN 50128 или сертификации DO-178.
Образцовый rtwdemo_roll_harness
ссылается на модель под тестом, rtwdemo_roll
, через блок Model. Модель тестовой обвязки генерирует тестовые воздействия для модели, на которую ссылаются. Можно легко переключить блок Model между нормальным, SIL или режимами PIL симуляции.
Открытая модель rtwdemo_roll_harness
. Если вы закрыли свою копию модели rtwdemo_roll
, вновь откройте его.
В модели rtwdemo_roll_harness
щелкните правой кнопкой по блоку Model и выберите Subsystem & Model Reference> Refresh Selected Model Block.
Сохраните копию rtwdemo_roll_harness
в текущей рабочей папке.
Откройте диалоговые окна Configuration Parameters для rtwdemo_roll_harness
и rtwdemo_roll
.
Для обеих моделей, на панели Code Generation, проверяют, что параметр Generate code only очищен, чтобы запустить SIL и PIL симуляции.
Для обеих моделей, на панели Hardware Implementation, расширяют Device details. Проверьте, что Support long long выбран.
Нажмите OK. Затем сохраните модели.
Запустите модель тестовой обвязки в режиме normal mode и получите результаты в Инспекторе Данных моделирования.
В модели rtwdemo_roll_harness
выберите View> Model Data Editor.
В Model Data Editor выберите вкладку Signals.
Установите список Change view на Instrumentation
.
В таблице данных выберите все строки.
Чтобы сконфигурировать сигналы регистрировать данные моделирования Инспектору Данных моделирования, установите снятый флажок в столбце Log Data. По окончании убедитесь, что все флажки в столбце устанавливаются.
Щелкните правой кнопкой по блоку Model, Roll Axis Autopilot
. Из контекстного меню выберите Block Parameters.
В диалоговом окне Block Parameters, для Simulation mode, проверяют, что опция Normal
выбрана. Нажмите OK.
Моделируйте rtwdemo_roll_harness
.
Когда симуляция будет сделана, просмотрите результаты симуляции в Инспекторе Данных моделирования. Если Инспектор Данных моделирования не уже открыт в Редакторе Simulink, нажмите кнопку Simulation Data Inspector.
Для нового (текущего) выполнения дважды кликните поле имени выполнения и переименуйте выполнение: roll_harness: Normal mode
.
Выберите Ail_Cmd
, чтобы построить сигнал.
SIL симуляция генерирует, компилирует и выполняет код на вашем компьютере разработчика. Инспектор Данных моделирования регистрирует результаты.
В окне модели rtwdemo_roll_harness
щелкните правой кнопкой по блоку модели Roll Axis Autopilot
и выберите Block Parameters.
В диалоговом окне Block Parameters, набор Simulation mode к Software-in-the-loop (SIL)
и Code Interface к Top model
. Нажмите OK.
Исключите внешние файлы кода из процесса сборки. В диалоговом окне Configuration Parameters для модели rtwdemo_roll
, набор Code Generation> Custom Code> Additional build information> Source files к значению по умолчанию, которое пусто. Сохраните модель.
Моделируйте модель rtwdemo_roll_harness
.
Минимизируйте окно отчета генерации кода для исследования позже в этом примере.
В Инспекторе Данных моделирования дважды кликните поле имени выполнения и переименуйте новое выполнение как roll_harness: SIL mode
.
Выберите Ail_Cmd
, чтобы построить сигнал.
Реконфигурируйте процесс сборки для модели rtwdemo_roll
, чтобы включать внешние исходные файлы roll_input_data.c
и roll_heading_mode.c
. В диалоговом окне Model Configuration Parameters, набор Code Generation> Custom Code> Additional build information> Source files к roll_input_data.c roll_heading_mode.c
. Нажмите Apply, закройте диалоговое окно и сохраните модель.
В инспекторе данных моделирования:
Кликните по вкладке Compare.
В поле Baseline выберите roll_harness: Normal mode
.
В поле Compare To выберите roll_harness: SIL mode
.
Нажмите Compare.
Инспектор Данных моделирования показывает, что режим режим normal mode и SIL заканчивается соответствие. Сравнение результатов симуляции режима normal mode с SIL и PIL симуляциями может помочь вам проверить, что сгенерированное приложение выполняет как ожидалось.
Затем, исследуйте способы, которыми можно развернуть сгенерированный код.