首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Matlab编程技巧:导入arxml文件

  • 23-09-22 00:45
  • 3781
  • 14074
blog.csdn.net

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

文章目录

  • 1 在线安装Autosar支持包
  • 2 离线安装Autosar支持包
  • 3 导入arxml文件例程
  • 4 导入报错
    • 4.1 导入报错示例

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');
  • 1
  • 2
  • 3

这里简单说明一下。

  • 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');
  • 1
  • 2
  • 3

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

>>返回个人博客总目录

注:本文转载自blog.csdn.net的chhttty的文章"https://blog.csdn.net/u013288925/article/details/107726352"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top