Спроектируйте и симулируйте компоненты AUTOSAR и сгенерируйте код

Разработайте компоненты AUTOSAR путем реализации алгоритмов поведения, симуляции компонентов и составов, и генерации кода компонента.

Начните с представления Simulink компонентов AUTOSAR

Чтобы разработать компоненты AUTOSAR в Simulink®, вы сначала создаете представление Simulink компонента программного обеспечения AUTOSAR. Создание компонента AUTOSAR может начать с описания компонента ARXML или существующего проекта Simulink.

Этот пример использует представление Simulink состава программного обеспечения AUTOSAR под названием autosar_composition, который моделирует систему управления положения дросселя. Состав содержит шесть, соединил компоненты программного обеспечения AUTOSAR - четыре компонента датчика/привода и два компонента приложения.

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

open_system('autosar_composition');

Сигнальные линии между моделями компонента представляют коннекторы блока AUTOSAR. Сигнальные линии между моделями компонента и импортом данных и выходными портами представляют коннекторы делегации AUTOSAR.

В модели состава модели компонента могут быть основаны на уровне, вызов функции, базирующийся, или соединение обоих. Этот состав содержит основанные на уровне модели компонента. В каждой модели компонента, модель AUTOSAR атомарных подсистем периодический runnables. Чтобы позволить основанным на уровне выполнимым задачам быть запланированными на той же основе как экспортируемые функции, модели компонента используют опцию блока Model уровни Расписания. Эта опция отображает периодические порты события модели для основанных на уровне моделей.

Функциональный обзор состава управления положением дросселя

Цель модели autosar_composition состава должен управлять автомобильным дросселем на основе входа от педали акселератора и обратной связи от дросселя. В составе компонент контроллера берет входные значения из датчика положения педали акселератора (APP) и двух датчиков положения дросселя (TPSs). Контроллер затем переводит значения во входные значения для привода дросселя. Привод дросселя генерирует аппаратную команду, которая регулирует положение дросселя.

Модель состава имеет корневой импорт для датчика педали акселератора и двух датчиков дросселя и корневого выходного порта для команды, чтобы отрегулировать оборудование. Состав требует, чтобы входные значения датчика уже прибыли нормированные в аналоговый/цифровой конвертер (ADC) область значений. Компоненты состава являются тремя датчиками, одним монитором, одним контроллером и одним приводом.

  • Модель компонента датчика autosar_swc_pedal_sensor берет датчик APP, который импортирует значение HWIO от состава, и преобразует его в процентное значение датчика APP.

  • Первичные и вторичные экземпляры модели компонента датчика autosar_swc_throttle_sensor возьмите TPS значения HWIO из импорта состава и преобразуйте их в процентные значения TPS.

  • Модель autosar_swc_monitor компонента приложения решает, о каком TPS сигнализируют, чтобы передать до контроллера.

  • Модель autosar_swc_controller компонента приложения берет процентное значение датчика APP из датчика педали и процентное значение TPS, обеспеченное монитором TPS. На основе этих значений контроллер вычисляет процентное значение команды дросселя, чтобы обеспечить на привод дросселя.

  • Модель компонента привода autosar_swc_actuator берет процентное значение команды дросселя, обеспеченное контроллером, и преобразует его в команду дросселя значение HWIO.

Разработайте алгоритмы компонента AUTOSAR

После создания начальных представлений Simulink одного или нескольких компонентов программного обеспечения AUTOSAR вы разрабатываете компоненты путем совершенствования настройки AUTOSAR и создания алгоритмического содержимого модели.

Чтобы разработать алгоритмы компонента AUTOSAR, откройте каждый компонент и обеспечьте содержимое Simulink, которое реализует поведение компонента. Например, рассмотрите autosar_swc_controller модель компонента в autosar_composition модель. Когда сначала импортированный или созданный в Simulink, начальном представлении autosar_swc_controller компонент, вероятно, содержал начальную тупиковую реализацию поведения контроллера.

Модель компонента autosar_swc_controller обеспечивает эту реализацию контроллера положения дросселя поведение. Компонент берет в качестве входных параметров процентное значение датчика APP от датчика положений педали и процентное значение TPS, обеспеченное монитором датчика положений дросселя. На основе этих значений контроллер вычисляет ошибку, которая является различием между тем, где автомобильный драйвер хочет дроссель, на основе датчика педали и текущего положения дросселя. Блок Discrete PID Controller использует ошибочное значение, чтобы вычислить процентное значение команды дросселя, чтобы обеспечить на привод дросселя. Осциллограф отображает ошибочное значение и выходное значение блока Discrete PID Controller в зависимости от времени.

Модели компонента датчика и привода в autosar_composition интерполяционные таблицы использования модели, чтобы реализовать их преобразования значения. Например, рассмотрите autosar_swc_actuator модель компонента. Когда сначала импортированный или созданный в Simulink, начальном представлении autosar_swc_actuator компонент, вероятно, содержал начальную тупиковую реализацию поведения привода.

Модель компонента autosar_swc_actuator обеспечивает эту реализацию поведения привода положения дросселя. Компонент берет процентное значение команды дросселя, обеспеченное контроллером, и преобразует его в команду дросселя значение HWIO. Аппаратная интерполяционная таблица команды моста генерирует выходное значение.

Модель компонента монитора в autosar_composition модель реализует логику для выбора, о каком TPS сигнализируют, чтобы обеспечить к компоненту контроллера. Когда сначала импортированный или созданный в Simulink, начальном представлении autosar_swc_monitor компонент, вероятно, содержал начальную тупиковую реализацию поведения монитора.

Модель компонента autosar_swc_monitor обеспечивает эту реализацию поведения монитора положения дросселя. Компонент берет процентные значения TPS из первичных и вторичных датчиков положения дросселя и решает, о каком TPS сигнализируют, чтобы передать до контроллера. Блок switch определяет, через какое значение проходят, на основе логики выбора датчика.

Симулируйте компоненты AUTOSAR и состав

Когда вы разрабатываете компоненты AUTOSAR, можно симулировать модели компонента индивидуально или как группа в содержании состава.

Симулируйте реализованный Controller модель компонента.

open_system('autosar_swc_controller');
simOutComponent = sim('autosar_swc_controller');
close_system('autosar_swc_controller');

Симулируйте autosar_composition модель.

simOutComposition = sim('autosar_composition');

Сгенерируйте код компонента AUTOSAR (Embedded Coder)

Когда вы разрабатываете каждый компонент AUTOSAR, если у вас есть программное обеспечение Simulink Coder и Embedded Coder, можно сгенерировать файлы описания компонента ARXML и алгоритмический код С для тестирования в Simulink или интегрирования в среду выполнения AUTOSAR.

Например, чтобы создать реализованный autosar_swc_controller модель компонента, откройте модель. Нажмите Ctrl+B или введите команду MATLAB rtwbuild('autosar_swc_controller').

Сборка модели экспортирует описания ARXML, генерирует AUTOSAR-совместимый код С и открывает отчет генерации кода HTML, описывающий сгенерированные файлы. В отчете можно исследовать сгенерированные файлы и кликнуть по гиперссылкам, чтобы перейти между сгенерированным кодом и исходными блоками в модели компонента.

Альтернативы для симуляции уровня системы AUTOSAR

После того, как вы разрабатываете компоненты AUTOSAR и составы, можно протестировать группы компонентов, которые принадлежат вместе симуляции уровня системы. Вы можете:

  • Объедините компоненты в составе для симуляции.

  • Создайте тестовую обвязку с компонентами, планировщиком, моделью объекта управления, и потенциально Основными компонентами Программного сервиса и вызывающими сторонами. Используйте тестовую обвязку, чтобы выполнить разомкнутый цикл или системную симуляцию с обратной связью.

Для примера симуляции разомкнутого цикла, которая использует Simulink Test, смотрите Тестирование Составы AUTOSAR (Simulink Test). Пример выполняет спина к спине тестирование на модель состава AUTOSAR.

Для примера симуляции с обратной связью откройте модель autosar_system в качестве примера. Эта модель обеспечивает тестовую обвязку уровня системы для модели autosar_composition состава AUTOSAR.

open_system('autosar_system');

Цель системной модели autosar_system выполняет симуляцию уровня системы объекта и фрагменты контроллера автомобильной системы управления положения дросселя. Системная модель комбинирует модель autosar_composition состава со схематическими представлениями физической педали акселератора и устройств дросселя в системе с обратной связью. Модель берет выходные значения из педали и блоков устройства дросселя, преобразует значения в аналоговый/цифровой конвертер (ADC) область значений и вводит значения как входные параметры к составу. Системная модель также принимает управление дросселя значение HWIO, сгенерированное составом, и преобразует его в приемлемое входное значение для блока устройства дросселя. Осциллограф положения дросселя уровня системы отображает входное значение датчика педали акселератора против входного значения датчика положений дросселя в зависимости от времени.

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

simOutSystem = sim('autosar_system');

Ссылки по теме