当前位置:首页 » 《随便一记》 » 正文

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

4 人参与  2024年05月24日 17:47  分类 : 《随便一记》  评论

点击全文阅读


文章目录

前言

背景

分布式仿真

使用方式

分析和应用

总结

参考资料


前言

        见《【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug》

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

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

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

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

背景

        使用Simulink开发嵌入式软件,Contrl Model在进行仿真运行时,最常规的方法是搭建一个被控Plane Model,来配合为嵌入式软件开发的Contrl Model,在Simulink编辑窗口就就能仿真运行。这种仿真方式是一种纯虚拟的仿真,Contrl Model和Plane Model运行的平台是工程师的Computer。其中最关键的工作是搭建Plane Model,Plane Model的质量直接影响Contrl Model仿真的效果。

        一个高质量Plane Model的搭建往往对需要投入非常专业的技术人员,并且耗费大量的工作时间。即便如此,Contrl Model在Computer上运行和在MCU上运行仍然存在一些差别,Plane Model在Computer上运行和在真实世界里的表现也存在差异。这种大投入和不完美因素,很多开发团队经常是无法接受的。在这种纯虚拟仿真的基础上跨出一步后,诞生了分布式仿真。其在MBD工作流中的地位如下图所示:

分布式仿真

        分布式仿真,也称半实物仿真,Mathworks官方的说法是Connected I/O Simulation,顾名思义就是仿真模型的运行不全在Computer上。Contrl Model被分成两部分,纯算法的Model仍在Computer上运行,I/O之类的外设在外部MCU(I/O Server)上执行,Computer和外部MCU之间通过Serial协议进行连接。当仿真运行时,Model Block向IO Server发送命令和请求数据。Plane Model用真实世界中的物理实体替代,并受IO Server控制,整体框架示例如下:

使用方式

        第一步,硬件连接

        将USB串口线的两头,分别连接在MCU板子和Computer之间,确保Computer的设备管理器中能出现对应的COM资源。

        Tips:MCU板子上的一个SCI module将会被占用,所以不能跟其他应用冲突。

        第二步,配置Serial协议

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

https://ww2.mathworks.cn/help/ti-c2000/ug/connected-io.png

        Tips:上述分布式仿真,依赖于Simulink和MCU之间的Serial协议和传输接口,以及MCU中的IO Server引擎,所以需要Simulink和MCU两边厂家的共同支持,不是每款MCU都支持这项功能。

        第三步,连接I/O

        在Simulink的Hardware工具页中, 点击Run on Board下拉按钮, 然后点击Connected I/O (inputs/outputs mode)按钮,示例如下:

        

        第四步,加载Contrl Model

        Contrl Model按照正常的方式搭建,不用做特殊修改,示例如下:

        

        第五步,运行仿真

        在Simulink的Hardware工具页中,点击Run with I/O按钮,即可利用Dashboard、Dispiay、Data lable和Data Inspect等工具查看信号,示例如下:

         

        也可以在MCU板子(例如电机控制器)上用探针检查信号,或者直接在被控实物(例如电机)上观察现象。示例如下:

分析和应用

        1、Plane Model是真实世界中的物理实物,不存在仿真拟合偏差。

        2、Contrl Model的算法仍在Computer上运行,可以非常方便地查看和分析数据。

        3、Contrl Model不再MUC板子上运行,不需要编译生成嵌入式代码的环节,可以非常灵活地修改调整Contrl Model,加速仿真调试进程。

        4、由于通信传输速率和数据量的限制,Simulink向MCU板子发送的指令,Simulink从MCU板子上获取的数据,都会有一定的时间开销,导致real time性能受到一定程度的限制。为保证系统整体的运行,Contrl Model的仿真步长和Sample time需要设置的稍长一些,至少要大于通信传输周期和MCU板子的响应周期。Contrl Model单个step的tasks量也要适当少一些,simulation pacing适当慢一些,确保MCU板子指定的时间内能够执行完。示例如下:

https://ww2.mathworks.cn/help/ti-c2000/ug/connected-io-simulation.png

        5、对于多内核的MCU,只支持第一个主核的应用,其他Core的使用会受限。

        6、对于多时钟的MCU,只支持第一个timer0的应用,其他时钟源的使用会受限。

        7、对于高速响应的硬件性能会受限,例如不支持ePWM模块中HRPWM(高分辨率PWM),不支持中断的使用。

总结

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

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

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

参考资料

    Mathworks Help - Connected IO Simulation



点击全文阅读


本文链接:http://zhangshiyu.com/post/113040.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • [糙汉嘴软心硬,娇妻日日晚起]小说精彩节选免费试读_「黎夏顾卫城」主线最终章倒计时
  • 我的亲妹妹我当做畜生,只有儿子来救我反转剧情试读片段_[***小宝李小翠]精彩章节免费试读
  • 往梦难复温,沈淮霆宋思予在线_往梦难复温,沈淮霆宋思予在线
  • 爱意清浅随风离(简凝夕陆靳燃),爱意清浅随风离
  • 「冲喜而已,侯爷别太爱」小说免费在线阅读_侯府侯爷乐瑶主线最终章倒计时
  • 好看的往梦难复温沈淮霆宋思予_往梦难复温沈淮霆宋思予
  • 天才京剧花旦被废嗓后成为芭蕾舞王+后续+结局(秦意宋笙)全书秦意宋笙结局_秦意宋笙+结局列表_笔趣阁(天才京剧花旦被废嗓后成为芭蕾舞王+后续+结局)
  • (番外)+(全书)往梦难复温(沈淮霆宋思予+番外+全书)_(往梦难复温+番外+全书)免费_笔趣阁(沈淮霆宋思予)
  • 江晚烟陆聿我终于失去了你结局+番外(江晚烟陆聿)列表_江晚烟陆聿我终于失去了你结局+番外(江晚烟陆聿)结局篇+番外在线
  • 池雾陆砚寒结局+番外(陆砚寒池雾)列表_池雾陆砚寒结局+番外(陆砚寒池雾)池雾陆砚寒结局+番外在线
  • 沈静怡傅励行+后续+结局(傅励行沈静怡)列表_沈静怡傅励行+后续+结局(傅励行沈静怡)沈静怡傅励行+后续+结局在线
  • 非典时,我被妻子的白月光误诊遗弃在病房节选角色羁绊特辑‌_田越苏雅白月光角色专属支线试读入口

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1