Проверка композиций AUTOSAR

Запуск обратных тестов на модели состава AUTOSAR.

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

В примере используется модель контроллера положения дросселя для автомобиля. В его основе лежит пример доставки AUTOSAR Blockset. Для получения дополнительной информации смотрите Импорт композиции AUTOSAR в Simulink (AUTOSAR Blockset).

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

Модели композиции AUTOSAR содержат сеть взаимосвязанных блоков Model, каждый из которых представляет собой атомарный программный компонент AUTOSAR (ASWC). Композиция контроллера положения дросселя была создана авторским инструментом AUTOSAR (AAT) и импортирована в Simulink с помощью файла ARXML, который описывает композицию.

Модель композиции содержит шесть моделей компонента, по одному для каждого атомарного программного компонента в композиции. Входные и выходные порты Simulink представляют порты AUTOSAR, а сигнальные линии - компонентные коннекторы AUTOSAR.

mdl = 'sltestThrottlePositionControlCompositionExample.slx';
open_system(mdl);

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

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

sltest.harness.open('sltestThrottlePositionControlCompositionExample',...
    'BasicSchedulerTest');

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

The Initialize шаг устанавливает вход в номинальное значение и Run шаг моделирует команду устойчивого ускорения для 950 мс. Команда ускорения сбрасывается на номинальное значение в Terminate шаг. Тестируемый компонент требует двух дополнительных входов, которые захватывают показания первичного и вторичного датчика положения дросселя. Эти входы моделируются с помощью внешних временных рядов входа и непосредственно подаются через блок Test Sequence без изменений. Этот стиль моделирования полезен, когда некоторые входы стимула могут быть смоделированы, а другие доступны только как внешне захваченные данные.

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

Тестируемым компонентом является модель композиции AUTOSAR, которая использует стиль моделирования экспорта функций. Когда вы создаете тестовую обвязку для модели экспорта функций, обвязка будет содержать блок Test Sequence, сконфигурированный для вызова каждого блока Simulink Function корневого уровня и отправки события триггера каждой подсистеме вызова функций в модели. Сгенерированный блок 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);
file_mldatx = 'sltestThrottlePositionControlTests.mldatx';
open(file_mldatx);
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 file_mldatx;
sltest.testmanager.clear;
sltest.testmanager.clearResults;
sltest.testmanager.close;