Matlab编程技巧:导入arxml文件

2024-09-03 11:32

本文主要是介绍Matlab编程技巧:导入arxml文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文研究如何通过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');

这里简单说明一下。

  • 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文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132852

相关文章

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

电脑报错cxcore100.dll丢失怎么办? 多种免费修复缺失的cxcore100.dll文件的技巧

《电脑报错cxcore100.dll丢失怎么办?多种免费修复缺失的cxcore100.dll文件的技巧》你是否也遇到过“由于找不到cxcore100.dll,无法继续执行代码,重新安装程序可能会解... 当电脑报错“cxcore100.dll未找到”时,这通常意味着系统无法找到或加载这编程个必要的动态链接库

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触