在Simpack软件中,有多种解算器,如 LSODE 、SODASRT2 、SOBDF2等等,用户可以根据自己的模型及计算要求来选择不同的解算器。但是,在遇到一些大规模模型时,用户往往发现采用默认解算器 SODASRT2 计算速度较慢,比如下图所示的模型:
该模型大约有 264 个 Body,166 对齿轮力元, 各个部件均只放开一个转动自由度,无轴承力元。该测试模型中,中心大齿轮上施加驱动铰,运动方式如下图所示:
当使用SODASRT2解算器时,发现计算速度很慢,这时候我们可以选用SOBDF2解算器。该解算器与 SODASRT2解算器的对比如下表所示:
SOBDF2 解算器是从 SODASRT2 解算器演化而来的,其保留了 SODASRT2 解算器的大部分特点, 并且还拥有最小步长控制的特点。对于本次测试的模型来说,使用 SODASRT2 和 SOBDF2 解算器,都使用 6 个线程并行 (驱动铰的运动曲线启动时间改为0.5 秒)可以看到,同样的模型,在基本相同的CPU 时间上, SOBDF2的计算速度要远远高于 SODASRT2 。这是因为在SOBDF2 中我们加入了最小步长控制(最小步长0 .000001 秒)。在Simpack的新版本中,在解算器选项中加入了 Advanced 选项,如下图所示:
在该选项下,有两个选项:Classic 和 New,2019版本之前默认采用 Classic 选项,2019版及后续版本默认采用New选项。我们使用前边所说的测试模型,对这两个选项的效率进行测试,如下图所示:
可以看出,在 CPU 时间基本相同的情况下,使用 New 选项比 Classic 选项速度快了 2 倍多。当我们把测试模型设置为 100 秒计算时间,使用 Classic 选项需要大约2天多,而使用 New 选项只需要大约4.1 个小时。所以说,在相同的模型,相同的硬件条件下,New 选项的提速性能显而易见。New 选项为高级加速选项,可用于时间积分、实时仿真、线性系统分析、状态空间矩阵输出、模态分析等。当用于时间积分时,其只支持 SODASRT 、 SODART2 、SOBDF2 和Fixed stepsize固定步长解算器。并且该功能并不支持所有的建模元件(比如不支持45号力元);当在模型中使用表达式时,该功能只支持连续方程表达式(比如不支持IF函数)。一般来说,我们使用 SODART2 解算器和 Classic 选项可以解决大部分计算问题;而一些计算困难的模型,我们可以选用 SOBDF2 解算器和 New 选项。因此,当我们计算大规模模型时,适当的选用合适的解算器和选项将大大提升我们的计算速度。注意:在Simpack版本更新中,有越来越多的建模元件支持New选项。
作者:张志华,技术支持工程师。
近期Simpack公开培训:
达索系统SIMULIA Simpack Basics免费培训(北京,8月22-23日)
↓↓↓ 点击"阅读原文" 【查看培训详情和报名链接】
扩展阅读:
Simpack时间积分解算器介绍