蹦跶哒 发表于 2022-5-13 13:24

Abaqus有限元分析不收敛该怎么办?

ABAQUS提供式和隐式两种求解类型,其中显式计算方法是“有条件收敛的”,只需满足增量步小于限值,大多数情况均能顺利计算完成;而隐式计算方法,在非线性情况下极易出现不收敛的情况,比如:欠约束、接触、材料塑性或失效、断裂、屈曲失稳等,都可能导致多次迭代不收敛,增量步大小一降再降,直到满足终止条件而退出计算。作为老司机,使用了这么多年的软件总有点心得吧,总结了五条经验,分享给大家:

一、ABAQUS的任务提交流程了解ABAQUS的任务提交流程,也就是让我们学会找错!当我们点击Submit后会有两个处理阶段:1)预处理;2)任务计算。
结合ABAQUS Job Monitor窗口进行讲解,两个阶段的分界点位于Data File子页面的内容是否完成;也就是说,当出现Error,而Message File和Status File未激活(生成)时,表明还处于预处理阶段,我们定义的模型一开始就存在问题,Errors子页面都会一一列出,通常会有:信息不完整、材料参数不符合本构模型、特殊定义之间冲突、关键字输入问题等,我们只需逐个修改即可。

当顺利进入任务计算阶段后,窗口上方的表格将实时更新为Status File(jobName.sta)中的内容,提示计算的进度,当后续再出现Error时,才可能是由于计算不收敛导致的错误。

二、收敛的基本条件模型收敛是什么?很多初学者估计都不太清楚,从而提出一些奇奇怪怪的问题,比如:“我用弹性材料可以计算,换成复杂材料模型就计算不了,为什么?”。所以了解有限元基本原理是非常必要的,而要了解ABAQUS的求解机制,就需要看帮助文档,个人认为:帮助文档分析手册第七章(Analysis Solution and Control)的内容,是进阶的必修内容,然而前市面上除了王鹰宇先生的译本,并没有书籍进行过归纳和总结,还是感觉挺遗憾的。
求解的总体思路就是:整个任务分为多个阶段(Steps);每个阶段分为若干个增量步(Increments);一个增量步进行若干迭代(Iterations),上图为二次迭代过程,而这个过程中cb=ub-ua需要小于一定限值,通过类似的多次迭代,外力P与内力I之间容差R小于给定限值,从而认为增量步达到收敛要求。

这些限制条件都有默认值,大多数情况下我们不需要进行修改,但对于一些特殊或难收敛的情况,可以适当进行调整:Step模块下->Other菜单->General Solution Controls的Field Equations子页面进行设置,不同的场量计算均有自己的一套场控制参数。
除了迭代步的限制控制,还会有增量步大小控制,其中一些在定义分析步时进行设置;更多的则位于General Solution Controls窗口中的Time Incrementation子页面,其中I0和IR为迭代步次数限制,用于控制增量步变大或缩小;IA则为允许出现不收敛迭代的次数,对应Monitor窗口中的IU至5U,对于大多数非线性情况,5次是远远不够的,需要增大。

三、不收敛的原因的排查过程进入任务计算阶段后:

1)如果最开始就出现1U至5U的不收敛问题,可能有以下原因:边界条件约束不足(欠约束)、重复导入部件(导致欠约束)、初始荷载过大、初始应力导致的材料塑性(Geostatic分析步)、单位制未统一(间接导致刚度过小和荷载过大)等;

2)如果是随着计算到中期或后期才出现不收敛情况,就需要根据已有的计算结果和模型情况进行判断,不收敛原因主要有:材料软化、失效、屈曲、接触非线性、温度(或其它场量)的骤变等;

3)随着加载的进行,出现畸变单元而导致终止,这个一般不是收敛问题,而是无法计算单元刚度矩阵从而无法组装整体刚度矩阵。通常需要网格重划分获得更好的网格质量、调整网格类型或采用其他大变形计算方法(ALE、CEL、SPH等)进行控制。

四、模型收敛控制的常用方法排除由于模型设置问题导致的不收敛情况后,可以通过以下设置增加收敛性:

1)增量步控制:增大允许的最大增量步数量、减小允许的最小增量步大小、增加允许的不收敛增量步数量IA(参考第二部分内容);

2)如果是由于材料软化、失效导致的不收敛问题,可以尝试改善网格质量、修改单元类型,如果还是不行,则在材料模型、单元类型或分析步中增加阻尼,阻尼设置看第五部分内容;

3)如果是接触导致的不收敛,可以修改接触类型、调整接触参数,如果还不行则增加接触阻尼;

4)上面三种调整后均无法收敛,则更换分析类型,采用Standard动力学或Explicit分析类型等。

五、万能和万恶的阻尼说阻尼是万能的,是因为它可以极大改善模型的收敛性,实现复杂非线性问题的收敛;说阻尼是万恶的,因为它可以掩盖一些模型错误,从而提供失真甚至不合理的结果,因此大家不能过分依赖它!

切记第四部分的不收敛处理流程,首先排查模型的自身问题,最后才引入阻尼。

阻尼的添加方式主要有四种:

①材料阻尼或自稳定系数,CDP模型中就有viscosity;部分损伤材料提供Stablization Cohesive系数;动力分析中可以定义Damping,但是对于静力分析,材料Damping定义是无作用的;

②单元自稳定系数,不是所有单元都有的,其中Cohesive单元经常会定义上;
③自动稳定设置,类似全局阻尼,可以避免由于塑性绞/带、屈曲或失稳导致的不收敛问题;
④接触阻尼或自稳定系数,接触属性中可以定义阻尼;接触控制中定义阻尼自稳定系数,不太常用,位于Interaction模块->Contact Controls(接触对)或Contact Stabilization(通用接触),如果没有接触问题就不用定义。
讲了这么多,最后还是那句话:“纸上得来终觉浅”,需要大家在今后的练习过程中多多摸索、练习,只有实操后所萃取的精华才是最好的。希望这些经验总结能为给大家填坑搭桥,节约些许调试时间。

页: [1]
查看完整版本: Abaqus有限元分析不收敛该怎么办?