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

На этом шаге примера вы проверяете, что, когда выполняется, код численно эквивалентен алгоритму, смоделированному в 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. Чтобы запустить SIL и PIL симуляции, на панели Code Generation, проверяют, что параметр Generate code only очищен. Сделайте это для обеих моделей.

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

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

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

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

  1. В rtwdemo_roll_harness модель, откройте Model Data Editor. На вкладке Modeling нажмите 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. Когда симуляция будет сделана, просмотрите результаты симуляции в Инспекторе Данных моделирования. Если Инспектор Данных моделирования не уже открыт на вкладке 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 симуляциями может помочь вам проверить, что сгенерированное приложение выполняет как ожидалось.

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