EDA365电子论坛网
标题:
怎么样才能加速 Simulink 模型仿真速度?
[打印本页]
作者:
zjsxuw
时间:
2019-11-8 11:15
标题:
怎么样才能加速 Simulink 模型仿真速度?
有没有了解的?
) V; a) D# y U+ }/ K9 b
& b7 ?' q& j" i+ b" [) |: T8 C
作者:
Griffin
时间:
2019-11-8 18:21
下面几种可能性有可能导致仿真运行缓慢:
, I9 w3 c- a. y4 N( m* l
* M7 z# L4 z3 M3 }2 B8 H
模型中有使用 MATLAB Function 模块。此时,每个步长在计算时都要调用 MATLAB 去解释执行。这大大降低了仿真速度,解决方法是尽可能改用 Fcn 模块。
, X( j9 m- [' T* @* P5 I* W1 i& Y" t" i
模型中有以 MATLAB 文件编写的 S 函数。解决方法是将 MATLAB 文件编译为 MEX 文件。此外,如果可能,尽量使用 Simulink 内置的模块代替 S 函数。
( m i6 P% ?( |6 T5 k5 b \' @
过小的步长或采样时间。在仿真过程中,保持小步长对捕获重要事件非常重要,但同时,步长过小会产生不必要的输出点,并减慢仿真速度。
3 P9 ~2 t0 I3 K \
maximum step size设置太小。请尝试将该属性设置为auto。
' D3 H5 ?9 X7 b8 x3 t
您可能对精度要求过高。默认的relative tolerance是 0.1%,能满足一般需求。
3 J1 N: ^+ f+ {) r7 m+ I5 V
时间跨度(总仿真时间)可能太长。建议缩短。
9 Y0 y0 ^ j- p+ S* n0 B9 X
模型中有使用 Memory 模块。该模块会导致变量阶解算器在每个时间步长计算时,被重置回一阶。
1 ]+ W. Y: J) k6 ^& o2 n, \7 N
模型中有使用 Extras 库,例如图形、自动调整、频谱分析。
# M+ H' _# W/ Z2 A8 j
模型中有使用 scope 模块,尽管其影响很可能非常小。
3 Y/ U+ E/ e" Q: T
代数环,请参考之前发布的更为详细的说明。
5 e1 E4 I5 k( T& ?5 K& |
请不要将白噪声模块接到积分器。对于连续系统,请使用带限制白噪声块。
, g9 V7 {% s. Z K
模型的刚度很大,但您使用的是非刚性解算器。请尝试使用ode15s。
+ N& M6 w J! @: Z5 h$ n
过零检测(zero crossing),可能导致模型在某些仿真时刻“卡住”。您可以禁用该检测。更为具体的说明,请在帮助文档中搜索zero crossing。
* N7 W. N7 q$ W6 t0 Z5 U( \
在 model configuration 中勾选 inline parameters,此时可以将所有参数内置,从而提高速度。
9 s2 W7 y2 U, A2 c
使用Simulink自带的加速功能。参考:
http://www.mathworks.cn/help/sim ... s-acceleration.html
3 S/ z D' i* L" G
如果模型非常复杂(涉及大量模型引用和子系统),并且涉及大量数据记录,则仿真速度也会受到影响。
* @6 o( W s+ F& \+ C( }0 h! {
% m ?7 H* m$ p' f( o4 {' ^- Q
! b9 L+ N8 x8 `$ W
此外,仿真速度还受系统,包括处理器、RAM等影响。如果您在仿真期间打开了任何图形示波器或其他可视输出模块,这将降低性能。仿真速度与 CPU 速度成正比。如果在仿真期间存储的变量过大,则影响仿真速度。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2