Создайте модель Simulink ® из XML-описания программного компонента AUTOSAR.
Вот прикладной программный компонент AUTOSAR, который реализует контроллер в автомобильной системе управления положением дросселя. Компонент контроллера принимает входные значения от датчика положения педали акселератора (APP) и датчика положения дросселя (TPS). Контроллер преобразует значения в входные значения для привода дросселя.
Компонент был создан в авторском инструменте AUTOSAR и экспортирован в файл ThrottlePositionControlComposition.arxml
.
Используйте функцию MATLAB createComponentAsModel
для импорта описания AUTOSAR XML (ARXML) и создания начального представления компонента AUTOSAR в Simulink.
ar = arxml.importer('ThrottlePositionControlComposition.arxml'); createComponentAsModel(ar,'/Company/Components/Controller',... 'ModelPeriodicRunnablesAs','AtomicSubsystem');
Вызов функции создает модель компонента, которая представляет компонент прикладного программного обеспечения AUTOSAR. Атомарная подсистема представляет возможность периодического выполнения AUTOSAR, а блок Initialize Function представляет возможность инициализации AUTOSAR. Входные и выходные порты Simulink представляют порты AUTOSAR.
После создания начального представления компонента AUTOSAR в Simulink, компонент разрабатывается. Вы уточняете строение AUTOSAR и создаете содержимое алгоритмической модели.
Для примера, Runnable_Step_sys
подсистема в Controller
модель компонента содержит начальную реализацию-заглушку поведения контроллера.
Вот возможная реализация поведения контроллера положения дросселя. (Чтобы исследовать эту реализацию, см. Модель autosar_swc_controller
, который поставляется с примером «Проект и моделирование компонентов AUTOSAR и генерация кода».) Компонент принимает за входы процентное значение датчика APP с датчика положения педали и процентное значение TPS с датчика положения дросселя. На основе этих значений контроллер вычисляет ошибку. Ошибка - это различие между тем, где оператор хочет дроссель, основанная на датчике педали, и текущим положением дросселя. В этой реализации блок Discrete ПИД-регулятора использует значение ошибки, чтобы вычислить команду процентного значения дросселя, чтобы обеспечить привод дросселя. Область возможностей отображает значение ошибки и выходное значение блока Discrete PID Controller с течением времени.
При разработке компонентов AUTOSAR можно:
Моделируйте модель компонента индивидуально или в содержащей композиции или тестовой обвязке.
Сгенерируйте файлы описания компонента ARXML и алгоритмический код С для проверки в Simulink или интегрировании в окружение выполнения AUTOSAR. (Генерация кода AUTOSAR требует Simulink Coder и Embedded Coder.)
Для получения дополнительной информации о разработке, симуляции и создании компонентов AUTOSAR, смотрите пример «Проект и моделирование компонентов AUTOSAR и генерация кода».
Предположим, что после импорта программного компонента AUTOSAR в Simulink и начала разработку алгоритмов в компонент были внесены архитектурные изменения в авторском инструменте AUTOSAR.
Вот пересмотренный компонент. Изменения добавляют порт приема переопределения управления и порт предоставления команды переопределения дросселя. В авторском инструменте AUTOSAR пересмотренный компонент экспортируется в файл ThrottlePositionControlComposition_updated.arxml
.
Используйте функцию MATLAB updateModel
для импорта архитектурных ревизий из файла ARXML. Функция обновляет модель компонента AUTOSAR с помощью изменений и сообщает результаты.
ar2 = arxml.importer('ThrottlePositionControlComposition_updated.arxml'); updateModel(ar2,'Controller');
### Updating model Controller ### Saving original model as Controller_backup.slx ### Creating HTML report Controller_update_report.html
После обновления в модели компонента подсветка указывает, где произошли изменения.
Функция также генерирует и отображает HTML отчет об обновлении авто-РСА. В отчете перечислены изменения, внесенные в элементы Simulink и AUTOSAR в модели компонента. В отчете можно щелкнуть гиперссылки, чтобы перейти от описаний изменений к изменениям модели.
Подключите добавленные блоки, обновите входные и выходные порты внутри подсистемы и обновите диаграмму модели. Для примера: