Тестирование составы AUTOSAR

Запустите компенсационные тесты на модели состава AUTOSAR. Copyright 2017 The MathWorks, Inc.

Этот пример демонстрирует функции тестовой обвязки и спина к спине тестирование рабочих процессов для модели состава AUTOSAR. Переключитесь на директорию с полномочиями записи.

Пример использует модель контроллера положения дросселя для автомобиля. Это базируется тесно на Импорте Состав AUTOSAR к Simulink (AUTOSAR Blockset) пример.

Откройте модель состава AUTOSAR

Модели состава 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 шаг. Компонент под тестом требует двух дополнительных входных параметров, которые получают первичные и вторичные считывания датчика положений дросселя. Эти входные параметры моделируются с помощью серийного входа внешнего времени и непосредственно питаются через блок Test Sequence без модификации. Этот стиль моделирования полезен, когда некоторые входные параметры стимула могут быть смоделированы, и другие только доступны как внешне собранные данные.

Тестовые обвязки для экспортов функций

Компонент под тестом является моделью состава AUTOSAR, которая использует стиль моделирования экспорта функций. Когда вы создадите тестовую обвязку для модели экспорта функций, обвязка будет содержать блок Test Sequence, сконфигурированный, чтобы вызвать каждый корневой уровень Функциональный блок Simulink и отправить триггерное событие в каждую подсистему вызова функций в модели. Сгенерированный блок Test Sequence может использоваться в качестве удобной начальной точки для моделирования планировщика.

В этом примере, поскольку данные о входном сигнале также генерируются Тестовым исходным блоком Последовательности, код, чтобы отправить триггерные события был консолидирован в один блок Test Sequence и встроен в каждый шаг после того, как формы волны стимула были сгенерированы. Порядок вызова триггерных событий вычисляется с помощью скомпилированной информации из модели состава.

  1. send(TPS_Primary_Run_0005)

  2. send(TPS_Secondary_Run_0005)

  3. send(Monitor_Run_0005)

  4. send(APPSnsr_Run_0005)

  5. send(Controller_Run_0005)

  6. 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;