我怎么能加快我的模拟仿真软件模型?金宝app

583(30天)
我想知道为什么我在仿真软件simuation运行缓慢。金宝app

接受的答案

MathWorks支金宝app持团队
MathWorks支金宝app持团队 2021年12月10日
编辑:MathWorks支金宝app持团队 2022年3月2日
有几种可能性,可能导致你的仿真运行缓慢:
1。你有MATLAB功能块——当一个MATLAB Fcn块存在,MATLAB解释器就是在每个时间步。这大大减少了仿真速度。所以,你应该尽量使用内置的Fcn块。
2。S-functions写成MATLAB文件——S-functions评估在每一个时间步。通过将MATLAB文件MEX-file,可以大大提高性能。此外,只要有可能,使用内置的块模型S-functions。
3所示。小步大小或样本时间(或样品的混合时间不是彼此的倍数)。重要的是要保持步长足够小,捕捉重要事件在模拟。相反,一个步长太小会产生更多不必要的输出点和减缓模拟。
4所示。最大的步长太小。如果你改变了最大的步长,尝试运行仿真与默认值(汽车)。
5。你要求太多的准确性。默认的相对公差精度(0.1%)通常是足够了。模型与州去零,如果绝对容忍参数太小,模拟可能需要太多的步骤在接近于零的状态值。误差公差的更多信息,请参阅第5 - 13页的使用仿真软件手册。金宝app请记住,所有输入公差值绝对值。所以相对公差值默认设置为1 e - 3,这意味着相对公差是0.001或百分比是0.1%。
6。时间范围可能太长了。减少的时间间隔。
7所示。你的模型包括一个内存块。使用一个内存块导致解决variable-order (ode15s和ode113)被重置回订单1在每个时间步。
8。任何蒙面块额外的库,包含三个以上(即之一。图范围,自动定量范围、频谱分析仪等)。揭开街区看看他们调用一个函数。
9。构建块作用,尽管它们的影响很可能很小。
10。代数循环——解决代数循环在每个时间步迭代和执金宝搏官方网站行。因此,他们严重降低速度。在代数环的更多信息,见3-18页使用的仿真软件手册。金宝app
11。不满足白噪声块到一个积分器。连续系统使用额外的限带白噪声块/源库。
12。问题可能是硬但你使用non-stiff求解器进行求解。试着用ode15s。
13。你可能会触及零交叉不断,模拟越来越“粘”导致花费很长的(也可能是无限的时间来完成)。为了解决这个问题,您可以禁用零交叉检测。可以通过选择禁用零交叉检测选项的高级面板仿真参数对话框。R11,这可以通过在模拟- >参数- >诊断模型的部分。
过零检测的更多信息,请参考页面5-44“使用仿真软件”的手册。金宝app
14。您可能还想尝试设置模型参数配置对话框,这样你的仿真软件模型使用“内联参数”选项。金宝app选择这个选项使仿真软件对指定的参数为常数,从而加快仿真。金宝app请见5 - 30页的“使用仿真软件”手册获得更多信息。金宝app
15。仿真软件金宝app加速器增加您的模型的仿真速度加速模型执行和使用模型分析来帮助你识别性能瓶颈。
16。仿真速度也可以影响如果模型非常复杂(包括很多模型引用和子系统),涉及到大量的数据日志记录。禁用数据日志记录功能也提高了仿真速度。
否则,仿真速度是由系统(即。、处理器、RAM的交换发生,等等)。
有几件事要考虑关于仿真速度:
——图形引擎速度
——CPU速度
——数量的内存
的,这里有一些提示:
——如果你有图范围或其他视觉模拟输出设备开放期间,这将会降低性能。
——性能直接与CPU速度成正比。
——如果使用的内存变量存储在RAM的模拟量大于系统,性能会差。解决办法是运行小模拟或添加更多的内存。

更多的答案(0)

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!