【研发日记】Matlab/Simulink技能解锁(九)——基于嵌入式处理器仿真

文章目录

前言

基于嵌入式处理器仿真

使用方式

        第一步,硬件连接

        第二步,配置硬件资源

        第三步,配置XCP协议

        第四步,加载Contrl Model

        第五步,运行仿真

        第六步,仿真报告

分析和应用

总结

参考资料


前言

        见《【研发日记】Matlab/Simulink技能解锁(四)——在Simulink Debugger窗口调试

        见《【研发日记】Matlab/Simulink技能解锁(五)——七个Simulink布线技巧

        见《【研发日记】Matlab/Simulink技能解锁(六)——六种Simulink模型架构

        见《【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法

        见《【研发日记】Matlab/Simulink技能解锁(八)——分布式仿真

基于嵌入式处理器仿真

        基于外部ECU嵌入式处理器仿真,也称在线调试,Mathworks官方的说法是External Mode Simulation,顾名思义就是仿真模型的运行不在Computer上,而是在外部的ECU板子上。外部ECU板子通过物理连接,直接控制真实世界中的物理实体。Contrl Model作为一个整体被编译生成嵌入式代码,在外部ECU板子上执行。仅留下Dashboard、Dispiay、Data lable和Data Inspect等这些交互类的Block仍在Computer上运行。Computer和外部ECU之间通过XCP协议进行实时的数据交换。基于外部ECU仿真的整体框架示例如下:

使用方式

        第一步,硬件连接

        将CAN接口卡的两头,分别连接在ECU板子和Computer之间。在Computer上安装CAN卡的驱动程序,确保Computer的设备管理器中能出现对应的CAN卡硬件资源,示例如下:

        Tips:在Simulink中可以调用的CAN卡,官方说法是有很多家。但是目前仅有Vector一家适配的比较完善,常见的型号是CANcaseXL、VN1610、VN1630、VN1640等。

        第二步,配置硬件资源

        在Vector Hardware Config窗口中,添加一个Matlab应用,示例如下:

        打开Simulink Configuration Parameters窗口,在Hardware Implementation一栏的Target hardware resources中找到eCAN分组,配置CAN通信资源,示例如下:

        Tips:建立连接后,ECU板子上的这个CAN module将会被占用,所以不能跟其他功能的应用冲突。

        第三步,配置XCP协议

        打开Simulink Configuration Parameters窗口,在Hardware Implementation一栏的Target hardware resources中找到External mode分组,配置XCP通信协议,示例如下:

        Tip1:上述基于外部ECU仿真,依赖于Simulink和ECU之间的XCP协议和传输接口,以及ECU嵌入式处理器的数据交换引擎,所以需要Simulink和MCU嵌入式处理器两边厂家的共同支持,不是每款嵌入式处理器都支持这项功能。

        Tip2:XCP协议,实际上上汽车行业标定领域的一种协议栈,除了可以基于CAN网络之外,还可以基于其他的Serial通信网络,比如LIN、Ethernet等。

        第四步,加载Contrl Model

        Contrl Model按照正常的方式搭建后,对于将要作为标定参数用的变量,还需要做一些特殊处理。因为标定参数是存储在全局内存中的一个可调的全局变量,是要在算法执行的过程中更改存储值的。示例如下:

1、在Simulink的建模选项卡上,点击模型数据编辑器,然后点击检查参数选项卡。

2、在模型中,点击 Gain 模块 G1,模型数据编辑器突出显示与模块的增益参数对应的行。

3、在模型数据编辑器的值列,将增益值从 2 更改为 myGainParam。

4、在 myGainParam 旁边,点击操作按钮(含三个纵点),然后选择创建。

5、在“创建新数据”模块对话框中,将值设置为 Simulink.Parameter(2)。点击创建,Simulink.Parameter 对象 myGainParam 在模型工作区中存储参数值 2。

6、在 myGainParam 对话框的代码生成选项卡上,点击在 Coder App 中配置。

7、在代码映射编辑器中,将 myGainParam 的存储类设置为 ExportedGlobal。此存储类使参数对象在生成的代码中显示为可调全局变量。

        如果是新建的模型,可以直接设置好标定参数的属性,示例如下:

stepSize = Simulink.Parameter;

stepSize.DataType = 'uint8';

stepSize.CoderInfo.StorageClass = 'ExportedGlobal';

stepSize.Value = 1;

        第五步,运行仿真

        在Simulink的Hardware工具页中,点击Monitor & Tune按钮,即可利用Dashboard、Dispiay、Data lable和Data Inspect等工具查看信号,在ECU板子(例如电机控制器)上用探针检查信号,或者直接在被控实物(例如电机)上观察现象。示例如下:

        也可以在Contrl Model执行过程中调整标定参数的值,以确定最佳参数值。示例如下:

        Tips:这种基于外部ECU仿真的模式,不光可以在Simulink上查看信号和调整标定参数,也可以使用第三方的标定工具,例如CANape。

        第六步,仿真报告

        基于外部ECU仿真,还可以查看程序执行的报告。首先在Simulink Configuration Parameters窗口中配置好验证项,示例如下:

        仿真运行之后,就会出一个程序执行报告,示例如下:

https://ww2.mathworks.cn/help/examples/c2b/win64/xxc2000_alldata_report.PNG

分析和应用

        1、由于Contrl Model是生成嵌入式代码后直接在ECU板子上运行的,所以Real Time性能非常好。

        2、对于高速响应的硬件性能也不再受到限制,可以支持中断功能。

        3、Computer和外部ECU之间的数据交换信号的个数交换的周期有限,官方提示理想性能下,数据获取频率不要超过10kHz。

        Tips:不同的Serial通信网络,数据交换的性能也同,主要取决于他们的通信波特率。示例:如果我们需要以10kHz的速率传输20 bytes的数据,那么20 bytes * 10,000Hz = 200,000 bytes/s,200,000 bytes/s * 10 bits/byte = 2,000,000 bits/s,那么波特率至少就得是2 Mbps。

        4、Computer和外部ECU之间的数据交换,信号数据类型最大支持single型,不支持double型。

总结

        以上就是本人在研发中使用Simulink仿真时,一些个人理解和分析的总结,主要介绍了基于嵌入式处理器仿真的工作原理,展示了仿真运行的效果,并分析了这种仿真方式的特点和适用场景。

        后续还会分享另外几个最近解锁的Matlab/Simulink新技能,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。

参考资料

Mathworks Help - Signal Monitoring and Parameter Tuning


        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

  • 108
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 117
    评论
控制系统建模与仿真——基于matlab/simulink的分析与实现 pdf是一本介绍使用MATLAB/Simulink软件进行控制系统建模和仿真的电子书。本书详细介绍了控制系统建模的基本原理和方法,并结合MATLAB/Simulink软件进行实际操作和实现。 本书的主要内容包括控制系统的基本概念和建模方法、MATLAB/Simulink软件的基本操作和仿真环境配置、控制系统的传递函数和状态空间表示、MATLAB/Simulink中的系统建模和仿真技术、控制系统的线性化和频域分析、控制系统的校正和参数调整等。 通过阅读这本书,读者可以了解控制系统建模和仿真的基本原理和方法,能够熟练使用MATLAB/Simulink软件进行控制系统建模和仿真。读者可以通过实际的例子来加深对控制系统建模和仿真的理解,并通过实验和实践来提高自己的控制系统建模和仿真能力。 这本电子书适用于控制工程、自动化、电子工程等相关专业的大学本科生和研究生,也适用于从事控制系统设计和工程实践的工程师和技术人员。通过学习这本书,读者不仅可以提高自己的技术水平和实践能力,还可以为以后的工作和学习打下坚实的基础。 综上所述,控制系统建模与仿真——基于matlab/simulink的分析与实现pdf是一本介绍MATLAB/Simulink软件在控制系统建模和仿真中的应用的电子书,适合控制工程和相关专业的学生和从业人员阅读和学习。它可以帮助读者掌握控制系统建模和仿真的基本原理和方法,并提高自己的技术水平和实践能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 117
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Cssust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值