Сравните результаты симуляции модели и сгенерированного кода

На этом шаге примера вы проверяете, что, когда выполняется, код численно эквивалентен алгоритму, смоделированному в 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 симуляции.

  1. Открытая модель rtwdemo_roll_harness. Если вы закрыли свою копию модели rtwdemo_roll, вновь откройте его.

  2. В модели rtwdemo_roll_harness щелкните правой кнопкой по блоку Model и выберите Subsystem & Model Reference> Refresh Selected Model Block.

  3. Сохраните копию rtwdemo_roll_harness в текущей рабочей папке.

  4. Откройте диалоговые окна Configuration Parameters для rtwdemo_roll_harness и rtwdemo_roll.

  5. Для обеих моделей, на панели Code Generation, проверяют, что параметр Generate code only очищен, чтобы запустить SIL и PIL симуляции.

  6. Для обеих моделей, на панели Hardware Implementation, расширяют Device details. Проверьте, что Support long long выбран.

  7. Нажмите OK. Затем сохраните модели.

Моделируйте модель в режиме normal mode

Запустите модель тестовой обвязки в режиме normal mode и получите результаты в Инспекторе Данных моделирования.

  1. В модели rtwdemo_roll_harness выберите View> Model Data Editor.

  2. В Model Data Editor выберите вкладку Signals.

  3. Установите список Change view на Instrumentation.

  4. В таблице данных выберите все строки.

  5. Чтобы сконфигурировать сигналы регистрировать данные моделирования Инспектору Данных моделирования, установите снятый флажок в столбце Log Data. По окончании убедитесь, что все флажки в столбце устанавливаются.

  6. Щелкните правой кнопкой по блоку Model, Roll Axis Autopilot. Из контекстного меню выберите Block Parameters.

  7. В диалоговом окне Block Parameters, для Simulation mode, проверяют, что опция Normal выбрана. Нажмите OK.

  8. Моделируйте rtwdemo_roll_harness.

  9. Когда симуляция будет сделана, просмотрите результаты симуляции в Инспекторе Данных моделирования. Если Инспектор Данных моделирования не уже открыт в Редакторе Simulink, нажмите кнопку Simulation Data Inspector.

  10. Для нового (текущего) выполнения дважды кликните поле имени выполнения и переименуйте выполнение: roll_harness: Normal mode.

  11. Выберите Ail_Cmd, чтобы построить сигнал.

Моделируйте модель в режиме SIL

SIL симуляция генерирует, компилирует и выполняет код на вашем компьютере разработчика. Инспектор Данных моделирования регистрирует результаты.

  1. В окне модели rtwdemo_roll_harness щелкните правой кнопкой по блоку модели Roll Axis Autopilot и выберите Block Parameters.

  2. В диалоговом окне Block Parameters, набор Simulation mode к Software-in-the-loop (SIL) и Code Interface к Top model. Нажмите OK.

  3. Исключите внешние файлы кода из процесса сборки. В диалоговом окне Configuration Parameters для модели rtwdemo_roll, набор Code Generation> Custom Code> Additional build information> Source files к значению по умолчанию, которое пусто. Сохраните модель.

  4. Моделируйте модель rtwdemo_roll_harness.

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

  5. В Инспекторе Данных моделирования дважды кликните поле имени выполнения и переименуйте новое выполнение как roll_harness: SIL mode.

  6. Выберите Ail_Cmd, чтобы построить сигнал.

  7. Реконфигурируйте процесс сборки для модели 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, закройте диалоговое окно и сохраните модель.

Сравните результаты симуляции

В инспекторе данных моделирования:

  1. Кликните по вкладке Compare.

  2. В поле Baseline выберите roll_harness: Normal mode.

  3. В поле Compare To выберите roll_harness: SIL mode.

  4. Нажмите Compare.

Инспектор Данных моделирования показывает, что режим режим normal mode и SIL заканчивается соответствие. Сравнение результатов симуляции режима normal mode с SIL и PIL симуляциями может помочь вам проверить, что сгенерированное приложение выполняет как ожидалось.

Затем, исследуйте способы, которыми можно развернуть сгенерированный код.