exponenta event banner

Тестирование композиций AUTOSAR

Выполните обратные тесты для модели композиции AUTOSAR.

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

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

Открытие модели композиции AUTOSAR

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

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

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

Открыть тестовый жгут

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

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

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

Initialize устанавливает входное значение в номинальное значение и Run step моделирует команду устойчивого ускорения для 950 ms. Команда ускорения сбрасывается до номинального значения в Terminate шаг. Для тестируемого компонента требуются два дополнительных входа, которые фиксируют показания датчика положения первичного и вторичного дроссельных заслонок. Эти входные данные моделируются с использованием внешних входных временных рядов и непосредственно подаются через блок тестовой последовательности без изменений. Этот стиль моделирования полезен, когда некоторые входные данные стимула могут быть смоделированы, а другие доступны только в виде внешних данных.

Тестирование жгутов для функций экспорта

Тестируемым компонентом является модель композиции AUTOSAR, в которой используется стиль моделирования «экспорт-функция». При создании тестового электрического жгута для модели export-function этот электрический жгут будет содержать блок тестовой последовательности, сконфигурированный для вызова каждого блока функции Simulink на корневом уровне и отправки триггерного события в каждую подсистему вызова функции в модели. Созданный блок тестовой последовательности можно использовать в качестве удобной отправной точки для моделирования планировщика.

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

  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;