减少SimMechanics中衍生块的计算时间

时间:2009-10-03 21:40:21

标签: simulink derivative

我在SimMechanics中有一个使用6个衍生块(du / dt)的程序。大约需要24小时才能进行10秒的模拟。有没有办法减少Simulink衍生块的计算时间?

2 个答案:

答案 0 :(得分:1)

您没有说明您的整合时间步骤是什么。如果它在毫秒级,并且您模拟总共10秒的瞬态时间,则意味着10,000个时间步长。

时间步长的稳定性极限取决于您正在模拟的动态系统的特性。

它也受到您正在使用的集成方案的影响。众所周知,显式积分对于较大的时间步长存在稳定性问题,因此如果您使用Euler积分方法,则会被迫使用一小段时间。

也许您可以将集成方案切换为隐式方法,带错误纠正的5阶Runge Kutta或Burlich-Storer。有关详细信息,请参阅您的文档。

您没有提供有关感兴趣的系统的物理特性,模型的大小或您的模拟选择的有用信息,因此所有这些都是我的一个有根据的猜测。

答案 1 :(得分:1)

由于可变时间片设置的最佳性能,Runge-Kutta方法(在Matlab方言中称为ODE45或ODE23)并不总是对机械问题有用。移至固定时间设置并通过评估您可以承认的错误顺序选择解算器。有关更深入的详细信息,请参阅Matlab文档(以及一些数值分析文本,:-))。

如果你的问题需要一些“僵硬的”解决方法,请考虑一下。如果处理不当,巨大的常数条款可能会导致求解器不稳定。