在simulink的使用过程中,经常会碰到bug,这也不可避免地需要我们掌握debug的能力。
以下以matlab2019b为例:
报错
以下是2019b版simulink的一次编辑环境截图:
![8af2cba913a766134df0dbf737081a06.png](https://i-blog.csdnimg.cn/blog_migrate/f571d1e3af6e7460a7b8fa52db461d69.jpeg)
simulink中报错一般有两类提示:
- 直接在编辑环境中的提示,存在问题的block(模块)会镶红边,也就是上图中F(x)模块,此类可认为是静态问题。一般此类错误多是模块参数填写缺失、模块输入数据类型错误等。
![5523103a1c349854802875012b72ba99.png](https://i-blog.csdnimg.cn/blog_migrate/807bec8808dd5d728ee9e4cd832ef1a3.png)
2. 第二类则是Diagnostic Viewer中显示的错误,当运行程序时,会弹出Diagnostic Viewer提示模型中存在的问题和错误:
![20426b803982f1a4f56a96673339c6eb.png](https://i-blog.csdnimg.cn/blog_migrate/5b3d7964f55bc38b938d74d37c3b2241.png)
一般打开此窗口的方法,点击simulink状态栏中部:
![59154c04095b00902cf49f9a9f5c12a5.png](https://i-blog.csdnimg.cn/blog_migrate/37cf9c5694b4e0751bf3d83529fa317f.png)
大部分的error(错误)和warning(警告)都会在这里显示。
调试
simulink中主要的调试工具就是单步调试(step forward):
![79f9e05249f9ff40902b7b03aae961e0.png](https://i-blog.csdnimg.cn/blog_migrate/16d622436658c7bae0f93e8ba1ae447c.jpeg)
这可以让我们在每一个小时间步暂停。当暂停时,如果我们单击信号流(模块间的连接线),可以显示当前流中信号的值:
![1c522896873ad98ce0e4da78caa25fba.png](https://i-blog.csdnimg.cn/blog_migrate/7d8e6dcb1003ead01016112da655a2f9.jpeg)
由此我们就能看见系统中数值变化的细节,能更好的去观察发散发生的原因