Используйте диаграмму Stateflow для Тестовой обвязки входов и планирования

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

Вы можете задать планирование тестовых обвязок с помощью блока Test Sequence, MATLAB® Функциональный блок, или Stateflow® график. Если вы используете диаграмму Stateflow в качестве планировщика, можно использовать функции Stateflow, которые недоступны ни с блоком Test Sequence, ни с блоком MATLAB Function. Более сложное планирование можно задать с помощью вариантов Stateflow, графических функций, суперпереходов и суперпереходов. Для примера с вариантами Stateflow можно задать несколько сценарии тестирования за одну тестовую обвязку. Если вам не нужно тестировать несколько сценарии тестирования или использовать сложную логику последовательности, используйте блок Test Sequence, который имеет более простой синтаксис для планирования тестов.

Примечание

У вас должна быть лицензия Stateflow, чтобы использовать график для тестовой обвязки входов или планирования.

Чтобы использовать диаграмму Stateflow в качестве тестовой обвязки планировщика тестов, тестируемая модель или подсистема должны иметь по крайней мере один сигнал вызова функции.

При настройке тестовой обвязки из модели шаги для использования графика в качестве планировщика:

  1. В модели или подсистеме щелкните правой кнопкой мыши и выберите Test Harness > Create for Model или Create for <subsystem>, соответственно.

    • Для модели в диалоговом окне «Создание тестового кабеля» задайте Add scheduler for function-calls and rates Chart.

    • Для подсистемы в диалоговом окне «Создание тестового кабеля» установите для Generate function call signals значение Chart.

    График с именем Simulink Function scheduler добавляется к тестовой обвязке.

  2. Откройте диаграмму Stateflow и определите тестовую последовательность с помощью состояний Stateflow, переходов и других объектов. Состояния Stateflow служат той же цели, что и шаги последовательности в блоке Test Sequence. Переходы определяют критерии для перемещения из одного состояния в другое.

Чтобы программно задать диаграмму Stateflow в качестве планировщика, установите SchedulerBlock свойство sltest.harness.create на Chart.

Используйте диаграмму Stateflow в качестве источника Тестовой обвязки

При создании тестовой обвязки из модели шаги для использования графика в качестве источника тестовой обвязки:

  1. В модели или подсистеме щелкните правой кнопкой мыши и выберите Test Harness > Create for Model или Create for <subsystem>, соответственно.

  2. В диалоговом окне «Создание тестовой обвязки», в разделе Sources and Sinks, выберите Chart вместо Inport.

    График добавляется к тестовой обвязке. Для примера,

  3. Откройте диаграмму Stateflow и определите источники тестовых обвязок с помощью логики Stateflow.

Чтобы программно задать диаграмму Stateflow как источник, установите Source свойство sltest.harness.create на Chart.

Диаграмма Stateflow в качестве планировщика тестовых обвязок и источника

В этом примере показов, как использовать одну диаграмму Stateflow как планировщик тестов, так и источник в тестовой обвязке. Тестовая обвязка для sltest_autosar_chart.slx модель в этом примере уже создана.

sltest_autosar_chart является композиционной моделью AUTOSAR контроллера положения дросселя для автомобиля. Модели композиции AUTOSAR содержат сеть взаимосвязанных блоков Model, каждый из которых представляет собой атомарный программный компонент AUTOSAR (ASWC). Входные и выходные порты Simulink представляют порты AUTOSAR. Сигнальные линии представляют соединители компонента AUTOSAR.

Входы, которые захватывают основное и вторичное положение дросселя, моделируются с помощью внешнего входного сигнала временных рядов и непосредственно подаются через график без изменения. Этот стиль моделирования полезен, когда некоторые входы стимула могут быть смоделированы, а другие доступны только как внешне захваченные данные.

Перейдите в директорию с разрешениями на запись перед запуском этого примера.

Откройте модель

open_system('sltest_autosar_chart')

Откройте Тестовую обвязку

Для этого примера уже создан тестовая обвязка.

На этом изображении показан фрагмент диалогового окна «Создать тестовую обвязку», где Chart был выбран в качестве источника и планировщика. Вам не нужно воссоздавать тестовую обвязку.

Чтобы открыть обвязку, используйте перспективное управление в правом нижнем углу полотна редактора и нажмите «Внутреннюю тестовую обвязку».

Откроется тестовая обвязка.

Откройте диаграмму Stateflow

Дважды кликните график в тестовую обвязку, чтобы просмотреть логику планирования.

Тестируемый компонент (модель AUTOSAR) требует ввода датчика положения педали акселератора APP_HwIO_Value, который моделируется на графике тремя состояниями.

The Initialize состояние устанавливает вход в номинальное значение (170) и Run state моделирует команду устойчивого ускорения для 950 мс. Команда ускорения сбрасывается на номинальное значение в Terminate состояние.

В тестируемом компоненте используется стиль моделирования экспортов функций. (См. «Обзор моделей экспорта функций»). Когда тестовая кабель была создана, ее диаграмма Stateflow была сконфигурирована, чтобы вызвать каждый блок Simulink Function корневого уровня и отправить событие триггера в каждую подсистему вызова функций в модели. В этом примере код для отправки триггерных событий находится в каждом состоянии после того, как сгенерированы формы возбуждения.

Запуск модели

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

См. также

| |

Похожие темы