Проектирование и моделирование компонентов 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. Чтобы разрешить планировать выполняемые задачи на основе скорости на том же базисе, что и экспортированные функции, модели компонента используют опцию Блока Model Schedule rates. Эта опция отображает порты периодических событий модели для моделей на основе скоростей.

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

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

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

  • Модели компонента датчика autosar_swc_pedal_sensor берёт значение HWIO датчика APP из входного порта композиции и преобразует его в процентное значение датчика 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 с течением времени.

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

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

Модель компонента монитора в 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 slbuild('autosar_swc_controller').

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

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

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

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

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

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

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

open_system('autosar_system');

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

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

simOutSystem = sim('autosar_system');

Связанные ссылки