cpu影响matlab仿真速度吗,跪问:仿真速度太慢了!!有什么办法可以加快simulink的仿真速度?...

有几种原因可能导致仿真运行速度很慢:

1、模型中有一个MATLAB函数块:当存在MATLAB Fcn模块时,在每个采样时间都会调用MATLAB解释器。这会大大降低仿真速度。所以,应尽可能使用内置Simulink模块。

2、MATLAB S函数(S-Function):在每个时间步长都会计算S-Function。把MATLAB代码转为MEX文件,这样性能可以得到显著提高。此外,如果可能应尽量使用内置模块建模。

3、较小的步长或采样时间(或者彼此间不是倍数关系的采样时间):为了在仿真期间捕获重要事件,有时必须设置最够小的步长;反过来,步长太小会导致产生不必要的输出点,从而减慢仿真速度。

4、最大步长太小:如果您更改了最大步长,请尝试用默认值(设置为自动)来运行仿真。

5、您要求的精度可能过高:默认相对容差(0.1%精度)通常就足够了。对于状态趋于零的模型,如果绝对容差参数太小,则仿真可能在近零状态值附近采用过多步长。有关容错度的详细信息,请参阅《使用Simulink手册》第5-13页。请记住,所有要输入的容差值都是绝对值。所以,默认相对容差值设置为1e-3时,意味着相对容差是0.001,或者0.1%(采用百分比形式)。

6、时间尺度可能太长:减少时间间隔。

7、您的模型中包含一个Memory模块:使用Memory模块会导致在每个步长上变阶求解器(ode15s和ode113)被重置回阶数1。

8、Extras库中有包含以上三项之一(即Graph Scope、Autoscaling Scopes、Spectrum analyzer等)的Mask模块:Unmask模块来看看它们是否调用S-Function。

9、使用了Scope模块:尽管它们的影响很可能不明显。

10、代数环:为了解代数环,会在每个步长上都执行迭代计算。因此,它大大降低了速度。有关代数环的详细信息,请参阅《使用Simulink手册》第3-18页。

11、不要在积分函数中引入白噪声模块:对于连续系统,使用Extras/Sources库中的带限白噪声模块。

12、这可能是个刚性(stiff)问题,而您使用的是非刚性(non-stiff)求解器:尝试使用ode15s。

13、可能碰到了连续过零,导致仿真逐渐“停滞”,时间很长(并且可能是无限长时间):要解决此问题,可以禁用过零检测。这可以通过在“Simulation 参数”(Simulation Parameters) 对话框的“高级”(Advanced)窗格中选择“禁用过零检测”(Disable zero crossing detection)选项来实现。在R11中,可通过转到模型的“仿真”(Simulation) ->“参数”(Parameters) ->“诊断”(Diagnostics) 部分来实现此目的。有关过零检测的详细信息,参阅《使用Simulink 手册》第5-44页。

14、您也可能想要尝试设置“模型参数配置”(Model Parameter Configuration)对话框以便您的Simulink模型使用“内联参数”(Inline Parameters)选项:选择此选项可使Simulink能够将指定参数视为常量,从而加快仿真速度。参阅《使用Simulink手册》第5-30页了解更多信息。

15、Simulink Accelerator仿真模式可以加快仿真时间。Profiler可以分析模型性能瓶颈来提高仿真速度。

16、如果模型非常复杂(涉及大量模型引用和子系统)且包含大量数据记录,仿真速度也会受到影响:禁用数据记录功能也能提高仿真速度。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值