查找导致仿真缓慢的原因
问题 : 找出模型中在模拟过程中出现运行缓慢的部分。
解决方案 : 使用Simulink求解分析器(Solver Profiler)定位模式中的问题。
Simulink求解分析器:
使用求解器轮廓器检查求解者和模型行为,找出可能导致不良仿真性能的问题。
使用求解器轮廓器对影响其模拟的模式进行分析。这个求解器轮廓器显示有关模拟、求解器设置、事件和错误的图形和统计信息。您可以使用这些数据来识别模型中导致模拟瓶颈的位置。
此外,还有多种因素限制了仿真速度。Solver Profiler记录并报告模拟模型时发生的所有主要事件:
- 过零事件
- 求解器异常事件
- 求解器重置事件
- 雅可比计算事件
对于精确的模拟,这些事件是常见的,也是必要的。然而,它们确实会导致计算量的增加,并且频繁发生可能会减慢甚至延缓模拟的进行。
在界面的右下角找到求解器点击,选择Solver Profiler按钮,打开求解分析器界面。
然后点击运行时间最长的高亮显示出其所在的模块,修改其参数再次运行。
完成参数修改后的最终结果显示出运行顺畅。
SIMULINK®求解器Profiler可以与Simscape™模型一起使用,以找出慢模拟的原因。使用Profiler Active运行仿真将生成图表和表,以显示模拟过程中的求解器行为。这些信息将突出显示模拟运行缓慢的时间段。生成了与小步长相关的块列表,您可以直接导航到这些块,以解决SIMULINK Solver Profiler突出显示的问题。
详细视频请参考查找导致仿真缓慢的原因 。
拓展
1.针对Simunlink仿真运行到某个时间突然计算的很慢的这篇博文中提到过零检测设置影响仿真运行的补充:
- 对于大多数模型,启用过零检测会允许求解器执行更大的时间步,从而可加快仿真速度。
- 如果模型具有极大的动态变化,则禁用此选项可加快仿真速度,但也会降低仿真结果的准确性。有关详细信息,请参阅过零检测。
- 选择 “Enable all” 或 “Disable all” 会覆盖单个模块的本地过零检测设置。
2.对于更详细的分析仿真速度的知识请参考博文—提高simulink仿真速度的方法(转)
结束语
如果还有分析仿真速度更好的方法,欢迎大家在评论区留言,谢谢。