1.收敛 在处理带有多个冗余的复杂装配体或面时会遇到许多问题(例如在第4章中得到的失稳点、快速更改运动或高速冲击等),可能导致解算器无法收敛,在获得结果前求解可能会终止。数值模拟中收敛问题是不可避免的,这就需要运用许多专业知识。对于一个复杂装配体,用户往往会很关注带来的困难。但却很难预测何时会发生收敛问题。下面将讲解一些解决以上问题的基本要素。这里引入了一些高级软件特征,且没有在常规部分使用。
当SolidWorks Motion的解算器面对收敛问题时,运动算例将会终止并出现下面的窗口,如图A-1所示。里面可能包含有几条收敛问题的原因,在接下来的环节将对其进行讨论。
图A-1 问题窗口
2.精度 SolidWorks Motion模型中使用了一组耦合的微分代数方程(DAE)来定义运动方程。通过使用一个积分器来求解这些方程便可以得到运动方程的一个解。积分器分两个阶段获得解:首先它会基于过去的记录预测下一个时间步长的结果,然后再依靠该时刻的实际数据修正该结果,直到结果达到指定的精度标准。
精度设置用于控制结果要达到什么样的精度。在精度和性能之间需要进行权衡。如果精度设置得过高,则积分器将花费很长时间计算结果。反之,如果精度设置得过低,则结果可能不太精确。
默认值“0.0001”符合大多数情况;如果系统突然发生改变时可能需要修改此值,如图A-2所示。在此情况下,预测器提供给校正器一个错误的初始猜测,从而会产生较大的误差或导致失败。在模拟过程中发生突然的不连续变化时,可能需要减小这个数值;例如突然改变力或马达的大小,在语句(IF、MIN、MAX、SIGN、MOD和DIM)中使用不可微的固有函数,摩擦及类似情况。
在图A-2所示的运动算例属性中单击【高级选项】,将弹出如图A-3所示的【高级Motion分析选项】对话框。
图A-2 运动算例属性
图A-3 【高级Motion分析选项】对话框
3.积分器类型 SolidWorks Motion求解运动方程可以通过对微分方程(DAE)进行积分而获得,这种方法中的代数约束方程在每个时间步长都必须满足。求解的速度取决于这些方程的数值刚度,方程的刚度越大,则求解更慢。当高频和低频特征值之间范围很大时,在高频特征值过阻尼的情况下,一组常微分方程被定性为在数值上是刚性的。需要特殊有效的积分法来求解数值上的刚性微分方程,因为用于求解微分方程的常规方法运算效率低下且相当耗时。
SolidWorks Motion积分器提供了三种刚性积分法来计算运动:
■ GSTIFF
■ WSTIFF
■ SI2(www.xing528.com)
(1)GSTIFF GSTIFF积分法来自C.W.Gear,它是一个变阶变步长的积分法。它是Solid-WorksMotion默认的积分器。当计算大范围运动分析问题的位移时,GSTIFF方法是最快和最精确的方法。
(2)WSTIFF WSTIFF是另一个变阶变步长的刚性积分器。它与GSTIFF在公式及表现上都非常近似。两者都使用了向后差分的方程。唯一的区别在于GSTIFF内部使用的系数是基于固定步长的假设计算而得的,而在WSTIFF中这些系数是步长的函数。因此,在积分的过程中如果步长突然改变,GSTIFF在求解过程中将产生一个小的误差,而WSTIFF可以在不损失任何精度的情况下解决这个问题。因此使用WSTIFF,问题可以处理得更加滑顺。当存在不连续的力、不连续运动,或在模型中具有3D接触等突发事件时,步长都会突然改变。
(3)Stabilized Index Two(SI2) SolidWorks Motion中提供的SI2方法是GSTIFF积分法的变体。该方法可以在运动方程中更好地控制速度和加速度的误差。如果运动足够顺畅,SI2得到的速度和加速度结果比GSTIFF或WSTIFF中计算所得到的结果要更加精确,甚至对于高频振荡运动也是如此。SI2在小步长下的结果也更加精确,但是计算速度相当慢。
4.积分器设置 每一个积分器都对应着几个设置,可以控制步长的大小及积分步数。
(1)最大迭代 最大迭代参数控制SolidWorks Motion积分器迭代的最大数量,可能用于收敛得到一个解。默认的25次迭代应该适合大多数问题。不建议提高这一参数,因为这个参数一般不是导致求解失败的原因。
(2)初始积分器步长 初始积分器步长大小控制在第一个求解实例中的步长值。如果用户的仿真在求解初始阶段遇到麻烦,应考虑减小这一数值。通常情况下,这个参数无需修改。
(3)最小积分器步长 在积分过程中如果模拟误差太大,积分器将减小时间步长并尝试再次求解,直到满足所需的精度。积分器不会将步长减小至小于积分器步长规定的最小值。默认大小对大多数仿真而言是可行的,无需进行修改。
(4)最大积分器步长 最大积分器步长控制在求解过程中积分器可能采用的最大时间步长的数值。提高最大积分器步长可以加速求解,减少求解模型所需的时间。但是如果这个数值过大,积分器有可能采用过大的一步而进入一个无法恢复的区间,最终导致收敛失败。减小这个数值对结果的精度没有影响。当使用GSTIFF积分器时,对于更大的积分时间步长的数值,速度和加速度可能不连续。用户可以通过减小最大积分器步长来降低误差。如果用户知道运动很顺滑且没有突然改变时,则可以提高这个数值以加速求解。当遇到收敛问题时,修改这个参数也许有所帮助。
如果力或运动在短时间内发生了突变,用户可能需要减小最大积分器步长,以确保积分器不会出错。如果在实体和薄板之间存在接触,而且积分器无法识别这个接触时,用户可能需要减小这个数值。这是有可能发生的,例如用户将一个球放在一个薄板上弹跳。这完全依赖于用户的模型参数,因为在没有检测到球体和薄板之间的接触时,球体有可能穿过薄板。在这种情况下,应减小最大积分器步长将使得积分器采用更小的步长,这样才不会发生两个实体之间接触的问题。
减小这个数值会降低积分器的速度,但不会影响结果的精度。另一方面,如果用户知道运动顺滑且没有突变,则可以提高这个数值以加速求解。
(5)雅可比验算 雅可比矩阵是一个偏微分矩阵,在Newton-Raphson迭代过程中,用于求解初始非线性运动方程的线性近似值。用户可能发现,将这个矩阵与有限元分析中的刚度矩阵进行类比是有帮助的。默认的设置是最精确的,同时也是最耗时的,即雅可比矩阵在每次迭代时都要验算。减小验算数值将加快求解速度,只有在装配体的运动改变很小时才可使用。这个参数对精度没有影响,但设置得过低可能会导致积分器失败。
5.结论 当遇到收敛问题时,最需要调整的参数是精度、最大积分器步长,以及接触分辨率。如果更改上面的任何一个参数对收敛都没有帮助的话,请确保用户的输入是顺滑且可微分的、带数学函数的表达式。使用STEP函数比使用IF语句更好。
有时冗余约束可能会导致积分器失败,这种失败最可能的原因是不一致的定义或有缺陷的模型。在这种情况下,请尝试清除冗余或装配体中的配合关系。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。