首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SimMechanics中减少导数块的计算时间

在SimMechanics中减少导数块的计算时间
EN

Stack Overflow用户
提问于 2009-10-03 21:40:21
回答 2查看 584关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2009-10-03 22:06:21

你没有说你的积分时间步长是多少。如果它是毫秒量级的,而你正在模拟10秒的总瞬变时间,那就意味着10000个时间步长。

时间步长的稳定性限制由您要模拟的动态系统的特性决定。

它还受您使用的集成方案的影响。众所周知,显式积分对于较大的时间步长具有稳定性问题,因此如果您使用Euler积分方法,您将被迫使用小时间步长。

也许您可以将您的积分方案转换为隐式方法,具有纠错功能的5阶Runge Kutta或Burlich-Storer。有关详细信息,请参阅文档。

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

票数 1
EN

Stack Overflow用户

发布于 2009-10-03 22:13:23

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

还要考虑你的问题是否需要一些“硬性”的解决方法。如果处理不当,巨大的常量项可能会导致求解器不稳定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1514920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档