如何加速 Simulink 模型仿真速度?

82 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 10 Oct 2019
如何加速 Simulink 模型仿真速度?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 12 Sep 2021
Edited: MathWorks Support Team on 30 Dec 2021
有几种可能性可能导致仿真运行缓慢: 
1.模型中有使用 MATLAB Function 模块。此时,每个步长在计算时都要调用 MATLAB 去解释执行。这大大降低了仿真速度,解决方法是尽可能改用 Fcn 模块。 
 
2.模型中有以 MATLAB 文件编写的 S 函数。解决方法是将 MATLAB 文件编译为 MEX 文件。此外,如果可能,尽量使用 Simulink 内置的模块代替 S 函数。 
 
3.过小的步长或采样时间。在仿真过程中,保持小步长对捕获重要事件非常重要,但同时,步长过小会产生不必要的输出点,并减慢仿真速度。 
 
4.maximum step size设置太小。请尝试将该属性设置为auto。 
 
5.您可能对精度要求过高。默认的relative tolerance是 0.1%,能满足一般需求。 
 
6.时间跨度(总仿真时间)可能太长。建议缩短。 
 
7.模型中有使用 Memory 模块。该模块会导致变量阶解算器在每个时间步长计算时,被重置回一阶。 
 
8.模型中有使用 Extras 库,例如图形、自动调整、频谱分析。 
 
9.模型中有使用 scope 模块,尽管其影响很可能非常小。 
 
10.代数环,请参考之前发布的更为详细的说明。 
 
11.请不要将白噪声模块接到积分器。对于连续系统,请使用带限制白噪声块。 
 
12.模型的刚度很大,但您使用的是非刚性解算器。请尝试使用ode15s。 
 
13.过零检测(zero crossing),可能导致模型在某些仿真时刻“卡住”。您可以禁用该检测。更为具体的说明,请在帮助文档中搜索zero crossing。 
 
14.在 model configuration 中勾选 inline parameters,此时可以将所有参数内置,从而提高速度。 
 
15.使用Simulink自带的加速功能。参考: 
https://www.mathworks.com/help/simulink/ug/what-is-acceleration.html 
 
16.如果模型非常复杂(涉及大量模型引用和子系统),并且涉及大量数据记录,则仿真速度也会受到影响。 
 
此外,仿真速度还受系统,包括处理器、RAM等影响。如果您在仿真期间打开了任何图形示波器或其他可视输出模块,这将降低性能。仿真速度与 CPU 速度成正比。如果在仿真期间存储的变量过大,则影响仿真速度。 

More Answers (0)

Categories

Find more on 一般应用领域 in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!