Запустите компенсационные тесты на модели состава AUTOSAR. Copyright 2017 The MathWorks, Inc.
Этот пример демонстрирует функции тестовой обвязки и спина к спине тестирование рабочих процессов для модели состава AUTOSAR. Переключитесь на директорию с полномочиями записи.
Пример использует модель контроллера положения дросселя для автомобиля. Это базируется тесно на поставляющемся Embedded Coder® Support Package для Стандартного примера AUTOSAR под названием Импорт Состав AUTOSAR к Simulink. Для получения дополнительной информации смотрите ImportAUTOSARCompositionToSimulinkSpkgExample.
Модели состава AUTOSAR содержат сеть взаимосвязанных блоков Model, каждый из которых представляет атомарный компонент программного обеспечения AUTOSAR (ASWC). Контроллер положения дросселя состав был создан Инструментом разработки AUTOSAR (AAT) и импортирован в Simulink с помощью файла ARXML, который описывает состав.
Модель состава содержит шесть моделей компонента, один для каждого атомарного компонента программного обеспечения в составе. Импорт Simulink и выходные порты представляют порты AUTOSAR, и сигнальные линии представляют коннекторы компонента AUTOSAR.
mdl = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos',... 'sltestThrottlePositionControlCompositionExample.slx'); open_system(mdl);
Тестовая обвязка для модели была сгенерирована и может быть открыта с помощью перспективного управления в правом нижнем углу холста редактора. Поочередно, используйте:
sltest.harness.open('sltestThrottlePositionControlCompositionExample',... 'BasicSchedulerTest');
Блок Test Sequence используется в качестве источника. Компонент под тестом требует входа APP_HwIO_Value
датчика положений педали акселератора, который моделируется в блоке Test Sequence с помощью простых трех последовательностей шага:
Initialize
продвиньтесь устанавливает вход на номинальную стоимость и Run
шаг моделирует устойчивую ускоряющую команду для 950 мс. Ускоряющая команда сбрасывается к номинальной стоимости в Terminate
шаг. Компонент под тестом требует двух дополнительных входных параметров, которые получают первичные и вторичные считывания датчика положений дросселя. Эти входные параметры моделируются с помощью внешнего входа timeseries и непосредственно питаются через блок Test Sequence без модификации. Этот стиль моделирования полезен, когда некоторые входные параметры стимула могут быть смоделированы, и другие только доступны как внешне собранные данные.
Компонент под тестом является моделью состава AUTOSAR, которая использует стиль моделирования экспорта функций. Когда вы создадите тестовую обвязку для модели экспорта функций, обвязка будет содержать блок Test Sequence, сконфигурированный, чтобы вызвать каждый корневой уровень Функциональный блок Simulink и отправить триггерное событие в каждую подсистему вызова функций в модели. Сгенерированный блок Test Sequence может использоваться в качестве удобной начальной точки для моделирования планировщика.
В этом примере, поскольку данные о входном сигнале также генерируются Тестовым исходным блоком Последовательности, код, чтобы отправить триггерные события был консолидирован в один блок Test Sequence и встроен в каждый шаг после того, как waverforms стимула были сгенерированы. Порядок вызова триггерных событий вычисляется с помощью скомпилированной информации из модели состава.
send(TPS_Primary_Run_0005)
send(TPS_Secondary_Run_0005)
send(Monitor_Run_0005)
send(APPSnsr_Run_0005)
send(Controller_Run_0005)
send(Actuator_Run_0005)
Симулируйте модель, чтобы видеть команду дросселя выход от компонента под тестом.
sim('BasicSchedulerTest'); open_system('BasicSchedulerTest/Scope');
Менеджер по тесту может использоваться, чтобы заблокировать вниз поведение симуляции и проверить эквивалентность в программном обеспечении в режиме (SIL) цикла. Откройте тестовый файл и запустите эквивалентный тест.
close_system(mdl,0); filePath = fullfile(matlabroot,'toolbox','simulinktest',... 'simulinktestdemos','sltestThrottlePositionControlTests.mldatx'); open(filePath); sltest.testmanager.run;
Тест проверяет поведение разомкнутого цикла Контроллера Положения Дросселя ASWC в модели состава. Первая часть эквивалентного теста запускает тестовую обвязку, содержащую состав в нормальном режиме симуляции. Вторая часть теста использует Post-Load
коллбэк, чтобы переключить Контроллер Положения Дросселя ASWC на программное обеспечение в режиме (SIL) цикла с Top model
интерфейс кода. Результаты обеих симуляций показывают, что поведение эквивалентно.
clear sltestThrottlePositionControlData HBridgeCmd_LkupTbl ... SensorSelection SetpointPercent_LkupTbl TPSPrimaryPercent_LkupTbl... TPSSecondaryPercent_LkupTbl TPSPercent_LkupTbl tout logsout mdl filePath; sltest.testmanager.clear; sltest.testmanager.clearResults; sltest.testmanager.close;