如何加快基于Simscape的物理模型的仿真?

时间:2017-02-15 12:00:48

标签: matlab performance simulation simulink simscape

我正在研究液压系统的建模和控制。系统建模在Simulink环境中的Matlab simscape中建模,如下所示System 并且为了控制活塞位置的基本控制(图中的活塞位置)我建立了简单的反馈来检查位置。

当我进行模拟时控制位置模拟需要花费太多时间。例如,如果我给出了所需的活塞位置300毫米,而输出达到290-294毫米左右,模拟时间达到大约5.18秒,而不是长时间粘在上面。

我想知道,有没有办法加速模拟?

由于simscape建模,我正在使用Matlab simulink solver ode23t。

1 个答案:

答案 0 :(得分:1)

一般来说,加速模拟是一个巨大的课题。这里的问题似乎是一个在变量步求解器中触发多个小时间步的事件。 这可以是完全正常的,例如离合器接合或阀开口。 要检查是否是这种情况,您可以执行(确保启用时间记录):

semilogy(tout(2:end),diff(tout))

急剧向下的尖峰表明采取了很小的时间步骤。要进行更深入的分析,您可以使用Solver Profiler:

https://www.mathworks.com/help/simulink/ug/examine-solver-behavior-using-solver-profiler.html

这将为您提供有关哪些组件导致解算器重置的详细信息。 如果您不习惯该工具,则此类行为可能难以调试。如果行为持续存在,我强烈建议与MathWorks技术支持部门取得联系。他们将能够查看您的模型并诊断问题。