发布网友 发布时间:2023-04-11 07:10
共2个回答
热心网友 时间:2023-09-21 10:14
这个你可以试试把和MATLAB有关的文件路径全部改成英文名
第二个可能是你的本地电脑硬件配置不足带不动仿真软件了,这里推荐你可以试试赞奇云工作站。对比传统的电脑可以省去随着软件更新迭代也要升级硬件的麻烦,在赞奇云工作站云端配置实时更新,而且一键申请可随时更换配置机型,按需使用,高效运算,不再担心本地电脑运行慢卡顿等问题。
有几种可能会导致你的模拟运行缓慢:
1. 你有一个MATLAB函数块——当一个MATLAB Fcn块存在时,MATLAB解释器在每个时间步被调用。这大大降低了模拟速度。因此,您应该尽可能使用内置的Fcn块。
2. 编写为MATLAB文件的s函数- s函数在每个时间步上求值。通过将MATLAB文件转换为mex文件,可以大大提高性能。此外,只要有可能,就使用内置块来建模s函数。
3.小的步长或采样时间(或彼此不是倍数的采样时间的混合)。保持足够小的步长来捕获模拟过程中的重要事件是很重要的。相反,如果步长过小,则会产生过多的输出点,从而降低模拟速度。
4. 最大步长太小。如果更改了最大步长,请尝试使用默认值(设置为自动)运行模拟。
5. 你可能要求的准确性太高了。默认的相对公差(0.1%的精度)通常是足够的。对于状态趋于零的模型,如果绝对公差参数太小,模拟可能在接近零的状态值周围花费太多的步骤。有关容错的更多信息,请参见使用Simulink手册的第5-13页。请记住所有输入的公差值都是绝对值。所以当设置为1e-3时,默认的相对公差值表示相对公差为0.001,以百分比表示为0.1%。
6. 时间尺度可能太长了。缩短时间间隔。
7. 您的模型包括一个内存块。使用Memory块会导致变阶求解器(ode15s和ode113)在每个时间步上重置为阶1。
8. Extras库中包含上述三种情况之一的任何屏蔽块(即,图形作用域、自动缩放作用域、频谱分析器等)。揭开屏蔽块,看看它们是否调用了s函数。
9. 构建范围内块,尽管它们的影响很可能非常小。
10. 代数循环——代数循环的解是迭代的,并且在每个时间步上执行。因此,它们严重降低了速度。
11. 不要向积分器输入白噪声块。对于连续系统,使用Extras/Sources库中的带限白噪声块。
12. 问题可能是刚性的,但你使用的是非刚性求解器。试着用ode15s。
13. 你可能会不断地碰到一个过零点,而模拟也会陷入“停滞”状态,从而导致游戏需要花费很长时间(甚至可能是无限长的时间)。要解决这个问题,可以禁用零交叉检测。这可以通过在“模拟参数”对话框的“高级”窗格中选择“禁用零交叉检测”选项来实现。在R11中,这可以通过进入模型的Simulation -> Parameters -> Diagnostics部分来完成。
14. 您可能还想尝试设置模型参数配置对话框,以便您的Simulink模型使用“内联参数”选项。选择此选项可使Simulink将指定的参数视为常量,从而加快模拟速度。
15. Simulink Accelerator通过加速模型执行和使用模型分析帮助您识别性能瓶颈来提高模型的模拟速度。
16. 如果模型非常复杂(涉及大量的模型引用和子系统),并且涉及大量的数据记录,那么模拟速度也会受到影响。禁用数据记录功能还可以提高模拟速度。否则,模拟速度由系统控制(例如,处理器、RAM、正在发生的交换量等)。
热心网友 时间:2023-09-21 10:14
simulink运行到2秒卡住处理方法如下: