Matlab编程技巧:导入arxml文件

本文研究如何通过Matlab脚本导入Autosar的arxml文件,并生成SWC模型。阅读本文需要一些Autosar的基本概念,包括SWC、Runnable和arxml等。

1 在线安装Autosar支持包

对于低版本的Matlab,是没有自带Autosar支持包的。需要先在硬件支持包中下载并安装Embedded Coder Support Package for AUTOSAR Standard,才能通过Matlab命令导入arxml文件。下载和安装过程如下。

1)点击附加功能–>获取硬件支持包,打开附加功能资源管理器
在这里插入图片描述
打开的附加功能资源管理器如下图所示。
在这里插入图片描述
2)搜索Autosar关键字,找到Embedded Coder Support Package for AUTOSAR Standard,并点击进入。
在这里插入图片描述
3)进去以后可以看到支持包兼容的Matlab版本,是 R2014b 到 R2018b 的版本。博主用的是2018a版本的Matlab,所以可以使用支持包。如果是2018b以后的版本,应该是不需要安装这个支持包了,而是作为一个付费模块。
在这里插入图片描述
4)点击右侧的安装按钮,进行在线安装。
在这里插入图片描述
网络比较好的博友只要一步步安装完即可。

2 离线安装Autosar支持包

大多数人应该和博主一样,点击安装以后一直没反应或者连不上。为方便离线安装,博主已经将离线安装包上传到CSDN共享,待这两天审核完毕就可以下载了。

离线安装相对容易很多,安装过程如下:
1)断开网络连接。
2)双击install_supportsoftware.exe,会打开一个新的Matlab以及一个安装界面。
在这里插入图片描述
3)在安装支持包的界面勾选Embedded Coder Support Package for AUTOSAR Standard,并点击下一个
在这里插入图片描述
4)点击我接受
在这里插入图片描述
5)然后等待安装结束。
在这里插入图片描述
6)安装结束后点击完成,然后会弹出AUTOSAR Examples的帮助窗口,里面有比较丰富的例程来帮助我们使用Autosar导入工具。
在这里插入图片描述

3 导入arxml文件例程

本章节按照支持包的教程导入一下arxml文件,掌握两个基本的函数。同时验证一下安装软件是否成功。

1)点开其中的一个例程Import AUTOSAR Component to Simulink
在这里插入图片描述
2)将其中的导入的三行语句拷贝到Matlab命令行中运行。
在这里插入图片描述

addpath(fullfile(autosarroot,'autosar_examples','ThrottlePositionControlSystem','arxml'))
ar = arxml.importer('ThrottlePositionControlComposition.arxml');
createComponentAsModel(ar,'/Company/Components/Controller','ModelPeriodicRunnablesAs','AtomicSubsystem');

这里简单说明一下。

  • addpath是将例程文件ThrottlePositionControlSystem.arxml所在的文件夹添加进Matlab的搜索路径中,以便后面用相对路径可以访问到。
  • ar = arxml.importer 用arxml.importer这个函数将arxml文件导入Matlab,形成一个对象ar。arxml.importer函数的参数可以是多个arxml文件,只要输入多个arxml文件的单元数组就行。
  • createComponentAsModel函数将ar对象中的Runnable转换成Simulink模型。后面的参数可以控制模型名、runnable对应的模型类型(AtomicSubsystem或者FunctionCallSubsystem)、数据字典、初始化子系统等。具体用法可以查阅createComponentAsModel文档。

3)运行这三行语句,就可以自动建立一个SWC的模型,对应着createComponentAsModel函数中的第二个参数Controller。其中包含了初始化runnable和一个事件runnable,这个都是在arxml中定义好的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4)模型中自动为我们配置好了Autosar的tlc文件,也就是说已经可以直接Ctrl + B生成代码。但是对于实际项目来说,肯定还需要做其他的配置。
在这里插入图片描述
Autosar支持包的其他用法可以通过帮助文件学习。

4 导入报错

在上面的例程中,可以很顺利地导入arxml文件生成模型。但是在实际项目中应该不会这么顺利,可能会报出很多的错误,主要原因就是工具之间的不兼容。

就博主所知,arxml文件是反映autosar中应用层架构的文件,里面包含了SWC和runnable等诸多元素。该文件一般是通过Autosar工具导出的,例如Dspace的System Desk或者Vector的DaVinci Developer。所以遇到了报错,可以针对具体错误,通过Autosar工具不断地完善arxml文件再尝试运行Matlab脚本,最终才能成功导入。

4.1 导入报错示例

这里为了演示一下导入报错的现像,手动修改一下ThrottlePositionControlComposition.arxml文件,过程如下。

1)在Notepad++中打开ThrottlePositionControlComposition.arxml文件,将前两个UUID改成一样的。这样就会导致一个UUID重复的错误。
在这里插入图片描述
2)重新运行三句脚本。

addpath(fullfile(autosarroot,'autosar_examples','ThrottlePositionControlSystem','arxml'))
ar = arxml.importer('ThrottlePositionControlComposition.arxml');
createComponentAsModel(ar,'/Company/Components/Controller','ModelPeriodicRunnablesAs','AtomicSubsystem');

从返回信息中可以看出,Matlab对于重复的UUID报了错误。
在这里插入图片描述
这里只是将报错信息显示在了命令行中,通过try…catch…语句还可以将报错信息输出为文档。

>>返回个人博客总目录

Matlab导入arxml文件可以使用arxml.importer函数。该函数的参数可以是多个arxml文件的单元数组。例如,可以使用以下代码导入arxml文件: ```matlab ar = arxml.importer('file1.arxml', 'file2.arxml'); ``` 其中,'file1.arxml'和'file2.arxml'是要导入arxml文件的文件名。导入后,可以使用ar对象进行进一步的操作,如将Runnable转换成Simulink模型等。具体的用法可以参考arxml.importer函数的文档。\[2\] 需要注意的是,对于低版本的Matlab,可能没有自带的Autosar支持包。在这种情况下,需要先在硬件支持包中下载并安装Embedded Coder Support Package for AUTOSAR Standard,才能通过Matlab命令导入arxml文件。下载和安装的具体过程可以参考相关文档。\[3\] #### 引用[.reference_title] - *1* [chhttty个人博客总目录](https://blog.csdn.net/u013288925/article/details/105617474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Matlab编程技巧导入arxml文件](https://blog.csdn.net/u013288925/article/details/107726352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值