参考:
- Youtube教程,https://www.youtube.com/watch?v=a6YTnMQA0iw
- Matlab 仿真设置中callback的说明:https://uk.mathworks.com/help/simulink/ug/model-callbacks.html?searchHighlight=closefcn&s_tid=srchtitle_closefcn_2
- Matlab 仿真设置中Final state and save operating points
- https://uk.mathworks.com/help/simulink/ug/decide-how-to-save-block-states-and-simulation-operating-points.html
工作中的Simulink大仿真文件进入稳态需要较长时间,进入稳态后希望微调参数查看结果。那就应该避免重复进入稳态的长时间运行过程。
Simulink的仿真设置Final states and Save final operating point 提供了一个存储最后运行状态的接口,仿真设置的初始状态则能载入上一个终止点的运行状态。
具体操作为
- 搭建仿真电路,本例使用较简单的斜坡函数Ramp和一个示波器。
- 改变仿真设置中数据导入/导出选项,设置存储最终状态为变量<Firstpart>,并勾选保存最后工作点。
- 切换到属性检查器Property inspector, 在Callbacks一项中的StopFcn添加指令Firstpart = out.Firstpart; 。这个指令是为了能把Firstpart存储在workspace中以供下次运行调用。
- 设置运行时长为10s, 运行。
- 可以看到示波器显示运行10s的波形。
- 改变模型设置,勾选初始状态并设为Firstpart, 禁止状态存储。
- 设置运行时长为20s,再次运行。可以看到波形为10-20s部分,0-10s的运行过程被跳过。