CAE软件操作小百科(46)
2019-07-09管箫
管箫
Abaqus提供显式和隐式2种求解类型,其中:显式计算方法是“有条件收敛的”,只要增量步小于限值,大多数情况均能顺利完成计算;而隐式计算方法在非线性情况下极易出现不收敛的情况,比如欠约束、接触、材料塑性或失效、断裂、屈曲失稳等,都可能导致多次迭代不收敛,增量步大小一降再降,直到满足终止条件而退出计算。Abaqus的隐式求解就是计算出一个很大的刚度矩阵方程的解。这个方程能否通过迭代到最后达到系统默认的收敛准则标准范围之内,就决定这一次计算能否收敛。下面总结解决不收敛问题的几种方法。
1 不收敛原因的排查过程
(1)刚开始进入任务计算阶段就出现不收敛问题,可能原因有:边界条件约束不足(欠约束)、重复导入部件(导致欠约束)、初始载荷过大、初始应力导致的材料塑性(Geostatic分析步)、单位制未统一(间接导致刚度过小或载荷过大)等。
(2)任务计算阶段到中期或后期才出现不收敛的情况,需要根据已有的计算结果和模型情况进行判断,不收敛原因主要有:材料软化、失效、屈曲、接触非线性、温度(或其他场量)的骤变等。
(3)随着加载的进行出现畸变单元而导致终止,一般不是收敛问题,而是无法计算单元刚度矩阵,从而无法组装整体刚度矩阵。这种情况通常需要重新划分网格,以获得更好的网格质量,可调整网格类型或采用其他大变形计算方法(ALE、CEL、SPH等)进行控制。
(4)当弹塑性分析无法收敛时,应首先去掉塑性材料参数,进行最简单的线弹性分析。如果这时分析同样无法收敛,就说明不是塑性方面的问题,而是模型中存在其他方面的错误。
不论是弹塑性分析还是其他任何类型的分析,当出现收敛问题时,首要的解决方法是简化模型,去掉所有复杂的、自己不熟悉的参数,直到模型能够收敛为止,然后再逐步把减掉的模型参数恢复回来。如果发现在恢复某种参数时模型变得无法收敛,一般就是这个参数存在问题。
2 Nlgeom选项解决不收敛问题
如果结构经受大变形,那么其几何形状的变化可能会引起结构的非线性响应。几何非线性的特点是大位移、大转动。位移的大小会影响结构响应,若未考虑几何非线性则难以收敛。分析大变形或大应变问题时打开Nlgeon选项(见图1),程序会在分析时考虑大变形或大应变对结果的影响。
3 多步施加载荷解决不收敛问题
一次性加载全部载荷可能使系统无法在规定的迭代次数内收敛,因此初始载荷要小,可以尝试万分之一的量级。同样,如果系统有多个接触,也最好分多个分析步施加。不要吝惜分析步的数量,分析步的初始增量步要小,调试阶段可以尝试0.000 1,调试后发现收敛很容易再放大也不迟。
4 自動稳定解决不收敛问题
在解决实际收敛问题中,自动稳定(Automatic stabilization)使用较多(见图2),特别是对于橡胶问题(默认是不考虑自动稳定的)。自动稳定的本质是引入黏性规划系数提高收敛性能,使得刚度矩阵K中具有接近0或是负的特征值的时候,也能够计算获得虚拟解。黏性系数太小、太大都不行:太小不能解决收敛性问题,太大会使得到的解不正确。
选项Specify dissipated energy fraction主要用于前几步模型都一定收敛的情况,实质就是超出范围导致不收敛的能量耗散因数,预设为0.000 2。选项Specify damping factor在第一步不稳定或者奇异的时候选用,即直接指定damping factor为定值(不能太大)。选项Use damping factors from previous general step是当第一步不启动时,在第二步开始的时候系统自己计算initial damping factors。
5 划分网格和选择单元类型考虑不收敛问题
在划分网格和选择单元类型时,要注意以下几个问题:在变形前和变形后,单元的形状都要保持规则,不要发生严重扭曲;大变形区域的网格密度要适当,过粗或过细的网格都可能导致收敛问题;在弹塑性分析中尽量不要使用二次六面体单元C3D20或C3D20R,以免出现体积自锁现象。建议使用非协调单元C3D8I、一次减缩积分单元C3D8R和修正的二次四面体单元C3D10M进行分析。
6 其他可解决不收敛问题的思路
对于接触分析不收敛的情况,可以察看模型的接触面。有时候是接触面overclosure,这时在assemble里面将模型相对位置稍微移动一下,或者用接触里面的adjust only to remove overclose功能。有时候是因为模型中的2个接触面变成了1个点和1个面接触,而点或者面中有一个位置不太稳定,这时会出现dividing,有时求解无法成功。这种情况可以察看是否能够将该处模型稍微修改一下,或者将该处的网格细化一下。
模型太大也会导致求解的方程太大,因此不需要或不重要的接触最好从模型中去除,可以使计算时间大大减少。模型确实比较大时,可以修改solver的设定,将迭代次数改大一点。对于刚开始计算就不收敛,而在达到迭代次数限制以后,时间增量还不是很小时,可以将initial和minimum改小一点,模型越大这个值就改得越小,特别是前、后2个step变化比较大时。在模型不是很大的情况下,太小的时间增量意义不大,应该从模型当中是否有错误去考虑问题。
各个量的单位要保持一致:如果长度的单位是mm,那么弹性模量和塑性参数中应力的单位应该是MPa(即N/mm2),密度的单位应该是t/mm3,力的单位应该是N;如果长度的单位都是m,那么弹性模量和应力的单位都应该是Pa(即N/m2),密度的单位应该是kg/m3,力的单位应该是N。如果各个量的单位不匹配(例如长度单位使用mm,而密度单位使用kg/mm3),会造成模型中的载荷远远大于模型所能承受的载荷,模型的变形过大,分析自然就无法收敛。即使模型中各个量的单位是正确的,同样应该注意载荷大小要符合工程实际,避免让模型出现过大的、超出实际的变形。
仅将重要的、塑性应变较大的区域定义为弹塑性材料。如果某个部件或部件上的某个区域几乎不发生塑性变形,或者仅仅在很小的局部发生塑性变形,而此区域并不是所关心的重要区域,那么可以将其设置为线弹性材料,以便缩短计算时间、降低收敛难度。例如,在接触面的边缘处边界条件区域,往往会出现很大的接触应力,相应位置的单元容易出现较大的塑性变形,如果此区域不是所关心的重要区域,就可以将其设置为线弹性材料。如果某个部件的刚度远远大于其他部件,几乎不会发生变形,可以将其设为刚体。刚度大的原因可以是弹性模量大,或由于尺寸大、厚度大而非常坚实,常见的例子是金属成形过程中的模具、夹具、冲头、底座和刀具等。
(摘自同济大学郑百林教授《CAE操作技能与实践》课堂讲义)
(待续)