在线性计算中,结构的刚度矩阵是不变的,而且不应用非线性收敛准则。大变形Large Deflection只是一种算法,它考虑了结构变形后的刚度矩阵重建。理论上来说,开启大变形后计算精度更高,但是将消耗更多的计算资源和时间。所以在小变形、小转动等问题中,无需开启大变形选项。
假设构件转角为α,小转动时,构成结构刚度矩阵的三角函数因子cosα≈1,所以无需开启大变形选项。而当大变形、大转动时,cosα与1相差较大,此时重建刚度矩阵是必要的。如果出现了大变形、大转动,程序计算后会跳出警告信息,提示用户开启大变形选项。
一般工程经验上,对于普通精度要求的问题,变形超过5%或转角超过10°时,建议打开大变形开关。
在非线性求解中,真实的载荷-位移曲线是未知的,不能直接使用一组线性方程得到结果,而需要使用一系列的线性方程迭代,逼近非线性解。有限元计算中使用的迭代过程为Newton-Raphson方法,简称牛顿法,达到收敛的迭代称为平衡迭代。
牛顿法的原理如下:
在牛顿法中,第一次迭代,施加总载荷Fa。得到位移结果x1。根据位移,算出内力F1 。如果Fa≠F1,系统不平衡。因此,根据当前的条件,计算新的刚度矩阵(虚线的斜率)。 Fa-F1的值称为不平衡力或残余力。残余力达到足够小时,求解收敛。
重复以上过程,直到Fa=Fi。在这个例子之中,四次迭代之后,系统达到平衡,求解收敛。
实际计算中,残差Fa-Fi不可能正好等于0,所以规定只要残差小于一个规定的微小量,就认为计算已经收敛了,这个微小量就是力收敛准则,此处以[R]表示,即Fa-Fi<[R],则达到收敛。
每一次迭代中,当残差小于[R]表现为收敛,大于[R]表现为发散。
为计算达到收敛,可以增加子步(使每次迭代加载的载荷更小更平缓),或通过非线性选项放大收敛容差[R](不推荐)。
对于非线性静态结构和瞬态结构分析类型,非线性控制选项可用。
(1)牛顿法选项
此属性用于指定求解过程中刚度矩阵的更新频率。其中程序控制Program Controlled表示根据模型中存在的非线性由程序选择Newton - Raphson 选项,其他选项含义如下:
① 完全法:每次迭代更新刚度矩阵,就如同上文所述。
② 初始的:不更新刚度矩阵,刚度一直保持为初始斜率,为常数。达到收敛的次数比其他几项要多,但是无需更新刚度矩阵,使得计算量更小。
③ 修改的:完全法与初始法相结合,一般只完全更新前几次刚度。
④ 非对称:与完全法一样每次更新刚度矩阵,不同的是它还生成非对称矩阵,适用于非线性很强的情况,比如摩擦系数>0.15。非对称也将比完全法消耗更多的时间和资源。如果使用完全法收敛困难,可以修改为非对称将更有利于收敛。
(2)力收敛与位移收敛等
力收敛是对收敛的绝对检测,用于判断内力与外力是否平衡。位移收敛是相对检测,只能作为力收敛的补充,在出现收敛困难时,甚至可以关闭位移收敛功能。
作为力平衡的补充,如果模型中有转动自由度(比如模型中存在梁单元),就需要考虑力矩平衡。转角收敛可以作为对力、转矩、位移的补充。当模型中存在关节时,程序将自动添加转角收敛。当存在非线性接触时,这些附加的收敛检测可能会产生过约束,导致收敛困难,此时可以只保留力收敛。
如果用户设置了任意一个收敛准则,则其余默认的收敛准则将被删除,比如我们添加了位移收敛准则,则默认的力收敛将会被删除。
对于工程人员来说,这4个选项一般不用设置,而让程序自动选择,只有在出现收敛困难时,我们可以考虑只保留力收敛,关闭其余三个。
收敛项目也可以选择手动强制开启,力收敛的默认准则值是0.5%,残差最小参考值为0.01N,应对工程问题已经足够了。如果减小准则值,计算将更精确,但是也能难收敛,如果调大这个值,计算将更不精确,但是有利于收敛,甚至使不收敛变为收敛。一般不建议修改。
通过以下方法可以直观地查看力收敛情况:在输出信息中选择“力收敛”。
图中显示,未分子步,通过一步计算完成,3次迭代,达到力收敛
(3)线搜索
线搜索用于增强收敛,开启时,只要检测到硬化效应(一般存在接触时),线搜索就在位移增量上自动乘以0~1直接的系数,相当于给位移减速。默认情况下,当模型中存在接触,程序将自动打开线搜索,用户也可手动设置开启或关闭。如果我们在求解信息中能搜索到Line Search..........On,则表示已打开线搜索。
在以下情况下,可以考虑打开线搜索:
① 结构载荷是力加载而不是位移加载;
② 刚度增加的脆弱结构,比如钓鱼竿;
③ 程序消息提示出现振荡收敛模式。
(4)稳定性
稳定性是一种非线性控制功能,稳定性控制相当于给构件关键节点添加人工阻尼器或者减震单元,从而减小自由度和位移,实现稳定收敛。主要用于处理结构失稳(屈曲和局部屈服)。稳定性的设置将在几何非线性——屈曲专题中详细介绍。
控制加载求解过程中的3个载荷时间历程节点分别是载荷步、载荷子步、迭代。
载荷步用于区分不同的工况,在下图中,Fa和Fb代表了两个载荷步,两种载荷工况。
子步用于将载荷步划分为多个部分,使载荷步不要一次性加载完,而是逐渐分步加载,前一个子步收敛后,才会开始下一个子步的计算。图中对Fa分了2个子步,第1子步加载的载荷Fa1=0.5Fa,在Fa1达到收敛后,再加载全部载荷Fa。
每一个子步中包含了≥1个迭代,当某一迭代达到收敛,即Fa-Fi≤[R]时,即为平衡迭代,则此子步计算完成。图中虚线代表平衡迭代。
由于牛顿法不保证在任何情况下都能收敛,只有在收敛半径以内开始计算,才能达到收敛。所以对于难于收敛的问题,一般需要划分更多的子步以促使收敛。
自动时间步长设置如下
程序控制或默认根据需要开启分步,在非线性计算中,系统自动划分的时间步长。可以在求解信息中搜索Load Step查看,系统一般将初始子步、最小子步、最大子步分步设置为1、1、10,最大平衡迭代数15。
如果设置自动时间步长=开启,将子步参数设置如下图,则表示初始载荷为总载荷的1/20,此后每一步增加总载荷的1/10~1/100,程序会根据收敛难易程度在每一子步自动选择。设置时需要注意最小子步≤初始子步≤最大子步,极端情况是可设置3者相等。
自动二分是一种非线性分析过程中遇到收敛困难时自动减小步长(子步的载荷增量)的方法。
在一个子步内,如果发生收敛失败,程序会将时间步间隔(此子步的载荷量)减小到其先前大小的一小部分,一般为之前步长的一半左右,并自动从前一个成功收敛的时间子步继续求解。如果减小的时间子步再次未能收敛,程序将再次减小时间步大小并继续求解。这个过程一直持续到达到收敛或达到指定的最小时间步长值。
可以在求解结果信息中选择力收敛选项,下图中初始子步、最小子步、最大子步分步设置为2、2、6,表示第一步加载总载荷的1/2,最少2步,最多6步计算完成。计算后的力收敛图如下:
图中有两个表,上方表为力收敛曲线,下方表为时间曲线(即载荷加载曲线)。
力收敛曲线中紫色线为力收敛曲线Force Convergence,注意对应的力不是我们给模型加载的实际力,而是程序计算的单元或节点平均力。蓝色线是上文提到的收敛准则Force Criterion,当力收敛曲线在准则以上时表示发散,在准则以下时表示收敛。竖直的绿色虚线表示子步收敛(Substep Converged),即此处的迭代达到平衡,上图可见共有5条绿色虚线,表示一共计算了6个子步(最后一个子步收敛即总收敛,所以无绿色虚线)。红色虚线表示此处发生了载荷二分,上图在第1子步和第3子步分别发生了1次二分。在图表中每一个点表示一次迭代计算。如果有多个载荷步,将会出现蓝色的竖直虚线,表示载荷步收敛完成。
从时间曲线可以看到,第一子步加载了1/2的载荷,经过了5次迭代计算仍然未收敛,第6次迭代发生了自动二分,时间(载荷)向下减小为上一子步的载荷,此处为0,第7次迭代重新加载了更小的载荷,终于在第11次迭代后,第一子步收敛了,开始进行第二子步的计算。
力收敛图相较于全英文的求解信息页面,能更轻松形象地看出力收敛情况,在非线性计算中,是经常会查看的信息。
本文暂写到这里,下一篇将详细介绍重启功能,谢谢大家的关注。由于图惜知识水平有限,文中难免纰漏百出,敬请批评指正。
[1]《Ansys Workbench有限元分析实例详解》——周炬、苏金英
[2]《ANSYS Mechanical 结构非线性系列课程》——安世亚太苏睿
[3] ANSYS 2022帮助文件