赞
踩
文章目录
近期在一些研发项目中使用Matlab/Simulink时,遇到了挺多费时费力的事情。所以利用晚上和周末时间,在这些方面深入研究了一下,解锁了一些新技能。后面会用若干篇文章把它总结分享出来,以备将来翻看,同时也希望能够帮到这一领域的粉丝朋友们。
由于实际项目比较庞大,而且不便在网络公开,所以就另起了一个Demo工程,重点介绍其中软件Debug的方法。
当软件测试出现异常时,如果能确定异常出现的大致时间,就可以在相应的时间点上设置一个断点(Breakpoint),软件仿真运行到该断点时就会停下来,然后就方便分析问题了,示例如下:
有些情况下,软件异常的时间点并不容易确定,还可以用信号阈值来设置断点,软件仿真运行过程中一旦该信号满足阈值条件,就会触发暂停,示例如下:
有些软件问题往往不能在一个周期内定位,需要对比多个相邻周期运行的结果,这时候就可以使用周期步进功能,让软件仿真每次只运行一个周期就暂停下来,示例如下:
上述几种方法使仿真运行暂停下来时,用鼠标点击信号线就会出现一个黄色标签,显示信号的当前值,示例如下:
上述Signal Value Lable只能显示当前值,如果要查看历史数据,可以使用Data Inspector。首先右键点击想要记录的信号,选中“记录所选信号”标签。然后让仿真模型运行起来,可以运行到最后Stop,也可以运行到断点暂定。然后点击信号上的信号记录小图标,就能看到对应信号在世间轴上的曲线,示例如下:
Debug在Simulink模型仿真调试方面的应用非常频繁,尤其是应用于复杂算法的开发时作用非常明显,例如一些数字信号处理或数据运算、基于事件的时序处理等等。项目中把这些Debug功能用起来后,能够有利于软件异常问题的分析和定位,大大提高Bug查找速度,有效减少开发人员在人脑逻辑分析上面投入的精力和时间。这些Debug方法主要适用于软件开发工程中,早期模型搭建和原型机调试验证时Bug较多的阶段。当软件开发进入后期升级迭代阶段时,也可用于新功能或子模块的分析验证。但不适用于在装车阶段出现问题的分析排查。
以上就是本人在Debug Simulink时,一些个人理解和分析的总结,首先介绍了它的几种基本用法,然后展示它的使用示例,最后分析了该模块的特点和适用场景。
后续还会分享另外几个最近解锁的Matlab/Simulink新技能,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。
另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。
版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。