Верификация SIL для подсистемы

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

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

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

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

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

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

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

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

Когда вы создаете эквивалентный тест, который сравнивает нормальную и SIL симуляцию или режимы PIL симуляции, отдельная тестовая обвязка используется, чтобы протестировать каждый режим. Однако, если вы - эквивалентное тестирование атомарной подсистемы или блока Model, одна тестовая обвязка может использоваться и для нормальных и для SIL симуляций или PIL симуляций. Для получения информации о том, когда одна обвязка используется для тестов эквивалентности атомарной подсистемы, смотрите, Генерируют Тесты и Тестовые обвязки для Компонента или Модели.

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

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

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

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

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

    rtw demo sil block model

  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.

    Test harness for Controller subsystem

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

    Plot comparing test harness and controller subsystem output

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

Похожие темы