Верификация СИЛА для подсистемы

Этот пример показывает верификацию подсистемы путем обеспечения выхода программного обеспечения в цикле (SIL) соответствия кода та из подсистемы модели. Вы генерируете обвязку верификации SIL, собираете результаты симуляции и сравниваете результаты с помощью инспектора данных моделирования. Можно применить подобный процесс для процессора в цикле (PIL) верификация.

С SIL симуляцией можно проверить поведение производственного исходного кода на хосте - компьютере. Кроме того, с PIL симуляцией можно проверить скомпилированный объектный код, который вы намереваетесь развернуть в производстве. Можно запустить объектный код PIL на действительном целевом компьютере или на симуляторе процессора.

Если у вас есть лицензия Embedded Coder®, можно создать тестовую обвязку в режиме SIL или PIL для верификации модели. Можно сравнить результаты блока SIL или PIL с результатами модели и собрать метрики, включая время выполнения и покрытие кода. Используя тестовую обвязку, чтобы выполнить SIL и верификацию PIL, вы можете:

  • Управляйте обвязкой со своей моделью. Генерация тестовой обвязки генерирует блок SIL. Тестовая обвязка сопоставлена с компонентом при верификации. Можно сохранить тестовую обвязку с основной моделью.

  • Используйте встроенные инструменты для этих рабочих процессов тестового теста проекта:

    • Проверка эквивалентности блока SIL или PIL

    • Обновление блока SIL или PIL к последнему проекту модели

  • Просмотрите и сравните записанные данные и сигналы с помощью менеджера по Тесту и Инспектора Данных моделирования.

Этот пример моделирует систему объекта контроллера с обратной связью. Контроллер регулирует объект выход.

Создайте обвязку верификации SIL для контроллера

Создайте обвязку верификации SIL с помощью данных, которые вы регистрируете от симуляции модели подсистемы контроллера. Вам нужна лицензия Embedded Coder на этот пример. Другой способ создать обвязку SIL с Создать Тестом для Мастера Компонента модели (см., Генерируют Тесты для Компонента и Создают и Запущенный Компенсационный Тест).

  1. Откройте модель в качестве примера путем ввода

    rtwdemo_sil_block
    в командной строке MATLAB®,

  2. Сохраните копию модели с помощью имени controller_model в новой папке, в перезаписываемом месте на пути MATLAB.

  3. Включите логгирование сигнала для модели. В командной строке войти

    set_param(bdroot,'SignalLogging','on','SignalLoggingName',...
    'SIL_signals','SignalLoggingSaveFormat','Dataset')
  4. Щелкните правой кнопкой по сигналу в порт Controller In1 и выберите Properties. В диалоговом окне Signal Properties, для Signal name, вводят controller_model_input. Выберите Log signal data и нажмите OK.

  5. Щелкните правой кнопкой по сигналу из порта Controller Out1 и выберите Properties. В диалоговом окне Signal Properties, для Signal name, вводят controller_model_output. Выберите Log signal data и нажмите OK.

  6. Симулируйте модель.

  7. Получите регистрируемые сигналы от симуляции выход в рабочую область. В командной строке войти

    out_data = out.get('SIL_signals');
    control_in1 = out_data.get('controller_model_input');
    control_out1 = out_data.get('controller_model_output');
  8. Создайте программное обеспечение в тестовой обвязке цикла. Щелкните правой кнопкой по Подсистеме контроллера и выберите Test Harness > Create Test Harness (Controller).

  9. Установите свойства обвязки:

    • Имя: SIL_harness

    • Sources and Sinks: Inport и Outport

    • Выберите Open harness after creation

    • Advanced Properties – Verification Mode: Software-in-the-loop (SIL)

    Нажмите OK. Получившаяся тестовая обвязка имеет блок SIL.

Сконфигурируйте и симулируйте обвязку верификации SIL

Сконфигурируйте и симулируйте обвязку верификации SIL для подсистемы контроллера.

  1. Сконфигурируйте тестовую обвязку, чтобы импортировать регистрируемые входные значения контроллера. От верхнего уровня тестовой обвязки, в диалоговом окне модели Configuration Parameters, в панели Data Import/Export, выбирают Input. Введите control_in1.Values как вход и нажимают OK.

  2. Включите логгирование сигнала для тестовой обвязки. В командной строке войти

    set_param('SIL_harness','SignalLogging','on','SignalLoggingName',...
    'harness_signals','SignalLoggingSaveFormat','Dataset')
  3. Щелкните правой кнопкой по выходному сигналу блока SIL и выберите Properties. В диалоговом окне Signal Properties, для Signal name, вводят SIL_block_out. Выберите Log signal data и нажмите OK.

  4. Симулируйте обвязку.

Сравните блок SIL и контроллер модели Выходные параметры

Сравните выходные параметры для обвязки верификации и подсистемы контроллера.

  1. В модели тестовой обвязки, в разделе Review Results, нажимают Data Inspector , чтобы открыть Инспектора Данных моделирования.

  2. В Инспекторе Данных моделирования нажмите Import. В диалоговом окне Import.

    • Установите Import from на: Base workspace.

    • Установите Import to на: New Run.

    • Под Data to import выберите Signal Name, чтобы импортировать данные из всех источников.

  3. Нажмите Import.

  4. Выберите SIL_block_out и controller_model_out сигналы в панели Runs инспектора данных окно.

    График отображает два сигнала, которые накладываются. Этот результат предлагает эквивалентность для кода SIL. Можно построить различия сигнала с помощью вкладки Compare в SDI и выполнить более детальные анализы для верификации. Для получения дополнительной информации смотрите, Сравнивают Данные моделирования (Simulink).

  5. Закройте окно тестовой обвязки. Вы возвращаетесь к основной модели. Значок на блоке Controller указывает, что обвязка SIL сопоставлена с подсистемой.

Похожие темы