问题描述:
某结构变形图如下所示,部分节点的位移值高达 E+20 以上的数量级,这显然是一个错误的计算结果。请问,产生该错误结果的原因是什么?如何有效避免该错误的产生呢?
解答:
上述错误的位移结果往往表明计算模型存在数值奇异,而导致数值奇异的具体原因包括:
-
整体结构的约束不足,产生整体位移。
-
局部结构形成机构,丧失承载力。
-
零刚度或负刚度的构件造成局部结构的稳定性。
-
刚度过大的构件造成不同构件间过大的刚度差异。
-
几何非线性(如 P-Delta 效应)导致结构失稳。
-
等等
对于以上计算模型,第 4 条是导致数值奇异的根本原因。具体来讲,即:以“放大弹性模量”的方式模拟刚性杆造成部分构件的刚度过大。事实上,适当地放大弹性模量也可以合理有效地模拟刚性杆,如放大 1000 ~ 10000 倍。但该模型却将弹性模量放大至 E+96 的数量级,如下图所示。这必然会导致不同构件间过大的刚度差异,并最终造成数值奇异。
类似的刚性杆模拟方法也会使用“放大截面刚度”的方式,如下图所示。此时,过大的放大倍数同样会造成数值奇异。关于数值奇异的概念,我们可以作如下理解:计算机只能采用有限的有效数字位数保存浮点数,通常为 6 ~ 7 位有效数字。此时,如果两个数量级相差较大的数字做数学运算(如:1.0E+6 和 0.01 求和),则程序可能会丢失小数(0.01)。
事实上,模拟刚性杆的最好方法是指定节点约束 - Rod。Rod 约束通过忽略节点间的轴向变形(即轴向变形为零)来实现刚性杆的力学性能,同时不会引起任何的数值奇异问题。有关节点约束的更多内容请参考《CSI分析参考手册》的相关章节,此处不再赘述。