将 AUTOSAR 组件导入 Simulink
从 AUTOSAR 软件组件的 XML 描述创建 Simulink® 模型。
从 ARXML 文件将 AUTOSAR 组件导入到 Simulink
这是实现汽车节气门位置控制系统中控制器的一个 AUTOSAR 应用程序软件组件。该控制器组件从加速器踏板位置 (APP) 传感器和节气门位置传感器 (TPS) 获取输入值。控制器将这些值转换为节气门作动器的输入值。
该组件在 AUTOSAR 编写工具中创建并导出到文件 ThrottlePositionControlComposition.arxml
。
使用 MATLAB 函数 createComponentAsModel
导入 AUTOSAR XML (ARXML) 描述并创建 AUTOSAR 组件的一个初始 Simulink 表示。首先,解析 ARXML 描述文件并列出其中包含的组件。
ar = arxml.importer('ThrottlePositionControlComposition.arxml');
names = getComponentNames(ar)
names = 5×1 cell
{'/Company/Components/Controller' }
{'/Company/Components/ThrottlePositionMonitor' }
{'/Company/Components/AccelerationPedalPositionSensor'}
{'/Company/Components/ThrottlePositionActuator' }
{'/Company/Components/ThrottlePositionSensor' }
对于 Controller
软件组件,使用 createComponentAsModel
创建一个 Simulink 表示。
createComponentAsModel(ar,'/Company/Components/Controller',... 'ModelPeriodicRunnablesAs','AtomicSubsystem');
函数调用创建一个表示 AUTOSAR 应用程序软件组件的组件模型。原子子系统表示 AUTOSAR 周期性可运行实体,Initialize Function 模块表示 AUTOSAR 初始化可运行实体。Simulink 输入端口和输出端口表示 AUTOSAR 端口。
开发 AUTOSAR 组件算法、仿真并生成代码
在创建 AUTOSAR 组件的初始 Simulink 表示后,您需要开发该组件。您细化 AUTOSAR 配置并创建算法模型内容。
例如,Controller
组件模型中的 Runnable_Step_sys
子系统包含控制器行为的初始桩件实现。
这是节气门位置控制器行为的可能实现。(要探索此实现,请参阅模型 autosar_swc_controller
,此模型随示例Design and Simulate AUTOSAR Components and Generate Code提供。)组件从踏板位置传感器获取 App 传感器百分比值和从节气门位置传感器获取 TPS 百分比值作为输入。基于这些值,控制器计算误差。误差是操作员基于踏板传感器期望的节气门位置与当前节气门位置之间的差值。在此实现中,Discrete PID controller 模块使用误差值计算节气门命令百分比值以提供给节气门作动器。示波器显示误差值和 Discrete PID controller 模块输出值随时间的变化。
在开发 AUTOSAR 组件时,您可以:
单独仿真或在包含的组合或测试框架中仿真组件模型。
生成 ARXML 组件描述文件和算法 C 代码,用于在 Simulink 中测试或集成到 AUTOSAR 运行时环境中。(AUTOSAR 代码生成需要 Simulink Coder 和 Embedded Coder。)
有关开发、仿真和编译 AUTOSAR 组件的详细信息,请参阅示例Design and Simulate AUTOSAR Components and Generate Code。
从编写工具使用架构更改更新 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 AUTOSAR 更新报告。该报告列出更新对组件模型中 Simulink 和 AUTOSAR 元素所做的更改。在报告中,您可以点击超链接从更改描述导航到模型更改。
连接添加的模块,更新子系统内的输入端口和输出端口,并更新模型图。例如: