接触非线性分析不收敛? 写给ABAQUS初学者的N个经验
接触,在仿真分析中,绝对是个看似青铜实则王者级别的难题。一些通用的解决办法,在帮助文件的Interaction → Contact Difficulties and Diagnostics中找到,例如初始接触状况、穿透、突然分离造成的局部不稳定等等。
但是确实没有一概而论的措施,更多的情况下准确的诊断以及有效的改善还是要依靠经验的累积。非线性分析不收敛,资深ABAQUS结构工程师怎么做?是笔者团队在日常工作中所积累的一些小经验,今天,我还想继续和大家分享3种接触非线性分析不收敛的对策和方法。
一、位移控制改善,可实现ABAQUS收敛调整
初学者常常会得到这样一条经验建议:有些场合可以采用位移控制的方式(displacement-control)来替代力量控制(Load-control)的方式来改善收敛。
在我们的实际案例中,也确实常常会发现力量加载不收敛,换做位移控制就收敛了,为什么?哪种状况适合采用使用位移加载代替力量加载的策略来提高收敛的顺畅性呢?
请参考如下案例,此例为Abaqus自带的典型案例分析中一个关于接触稳定与载荷的平衡问题,10KN的张紧力作用在螺母上(对称模型的半螺母5KN)来紧固轮毂轮边:
Figure-1:轮毂轮边的紧固接触
初次求解,增量步长减小五次后仍无法求解,分析终止。
从job monitor中查看Message File或从工作目录下打开相关job的.msg文件查看提示的Error信息,看到数值奇异的警告提示:
******************************************
***WARNING: SOLVER PROBLEM. NUMERICAL SINGULARITY WHEN PROCESSING NODE
HALFHUB-1.535 D.O.F. 1 RATIO = 115.819E+12 .
***WARNING: DISPLACEMENT INCREMENT FOR CONTACT IS TOO BIG.
***WARNING: DISPLACEMENT INCREMENT FOR CONTACT IS TOO BIG.
***ERROR: TOO MANY ATTEMPTS MADE FOR THIS INCREMENT
数值奇异问题通常意味模型中的自由度缺少约束因而导致刚体位移,在许多接触问题中,限制刚体位移的唯一约束需要依靠接触和摩擦关系的建立,如果在载荷施加时接触关系尚未建立,在未约束的自由度上就有可能产生不确定的刚体位移,从而产生不稳定问题。
简化为一维线性模型来说,就是刚度矩阵为零,无法求解位移。
Figure-2:一维模型简化(load-control)
切换到Visualization 模块,选择Control_Load.odb,从Field output dialog中选取变量COPEN 查看初始接触状态是否为open状态:
Figure-3:初始间隙
轮边与螺栓之间的最小间隙0.005mm,初始状态两者之间并未建立起接触关系,故而没有路径可以传递螺栓与轮边的张紧力至轮毂,产生了刚体位移。
消除刚体位移解决数值奇异的方法有很多种,其重点都在于实现稳定的接触关系,可通过调整装配位置实现从面节点正好位于主面上,或者定义接触间隙、干涉量值,以保证接触在初始状态的建立;还可通过位移控制来代替载荷施加以限制自由度消除刚体位移;亦可通过使用接触稳定控制 (contact stabilization)来抵抗刚体位移直至接触建立。
通过位移控制来代替载荷施加以限制自由度消除刚体位移,同样简化为一维模型可表示为:
Figure-4:一维模型简化(Displacement-control)
使用位移控制来代替载荷施加以限制自由度以消除刚体位移通常分为两步:
Step-1: 预定义足够的位移边界条件以建立起接触关系。
Step-2: 撤销临时的固支位移边界条件,用要求或规定之载荷代替。
对于此例,可新增disp分析步,修改Apply force为位移控制Adjust length,在load分析步再修改为规定载荷Apply force,创建新Job: displacement_control,提交运行。无数值奇异警告,分析顺利求解。
所以,哪种状况适合采用使用位移加载代替力量加载的策略来提高收敛的顺畅性呢?我们的答案是:在许多接触问题中,如果限制刚体位移的约束需要依靠接触和摩擦关系的建立,此种状况下,推荐采用位移加载的方式来建立初始接触关系。
二、接触稳定控制,可实现ABAQUS收敛调整
“可通过位移控制来代替载荷施加以限制自由度消除刚体位移;亦可通过使用接触稳定控制 (contactstabilization)来抵抗刚体位移直至接触建立。”
我们首选推荐用于消除刚体位移解决数值奇异的方法是通过调整几何装配位置或者定义接触间隙、干涉量值,或者是施加位移边界等方式;但是如果复杂的加载状况有时难以简化为位移边界条件来加载,而且难于准确定义装配件的位置,这种状况怎么办呢?这时候的策略就是运用接触稳定控制。
什么是接触稳定控制呢?接触稳定将应用粘滞力在接触面上以响应载荷的施加,直至建立起稳定的接触状况。
上篇hub-rim案例中赋予所有NUT-RIM相关的接触稳定控制,也可顺利求解
Figure-5: 接触稳定控制
采用接触稳定控制时,我们须审慎评估粘滞力的影响,因此Field Output中要求输出变量ALLSD与ALLSE,比较粘滞耗散能ALLSD与内能ALLSE(或ALLIE)大小,一般情况下粘滞能小于内能的5%可认为加入粘滞力对于结果的影响微小;同时也需输出接触阻尼应力变量CDSTRESS(CDPRESS, CDSHEAR1, and CDSHEAR2)与真实接触应力CSTRESS(CPRESS,CSHEAR1, and CSHEAR2)相比较来评估结果的准确性。
上篇hub-rim案例中比较CDPRESS的峰值与真实接触压力CPRESS的峰值如下图:
Figure-6: CDPRESS VS CPRESS
Tips: 如何查找输出变量的最大值?
Figure-7: 变量最大值
三、对特征边做倒角处理,实现ABAQUS收敛调整
特征边的接触(边对边,边对面),初学者的直觉印象就是收敛困难,对吗?所以通常我们得到的经验就是:对特征边做倒角的处理来提高收敛性。
Figure-8: Snap-fit example (特征边对面)
在说特征边的接触前,我们先说说通用接触和接触对的选择:
我们之前的经验是:
Abaqus/Standard中选择通用接触还是接触对,主要取决于接触定义的简单易用性和分析效能的权衡,接触对由于限定了接触面的范围,求解效率更高,而通用接触则更适用于多组件或具有复杂拓扑结构模型的建模。两者的不同主要在于用户界面、默认数值分析设置以及可用选项上的差别,但是其算法和求解精确性几乎一样。
现在关于这条经验, 随着Abaqus新版本中通用接触功能的增强我们可能需要更新为:
通用接触设置会显得更为简单,限制少,且可灵活处理多种接触状况,例如边对面、边对边、顶点对面等接触,如图所示,故建议接触分析中首选通用接触来定义接触。
Figure-9: 通用接触
所以如上特征边的接触问题,就让通用接触来处理吧…
如上图Figure-8所示的snap-fit案例,其主要接触区域是边对面的接触(edge-to-surface contact):
若仅仅定义两个part间的面对面接触(surface to surface contact),不收敛,后处理中可见特征边对面的穿透……
Figure-9:接触对模型及结果
改善此类接触收敛问题,我们的建议方案为:
1、通用接触方案
修改为接触设置为通用接触(General contact),接触属性不变,考虑接触分离时的不稳定状况分析步中加入自动稳定,分析顺利收敛,各阶段接触状况如下图:
Figure-10:各阶段边对面接触状况2、接触对方案
在Figure-3所示的面对面的接触对外,再补充特征边对面的接触对,如下图所示,分析也可顺利收敛
Figure-11:边对面的接触对设置
关于接触的收敛问题,我的总结暂告一段落。总之,收敛的解决方案没有一个可以一概而论的万能方案,有一些可以探讨的点,但是实际上说起来原因千差万别,真要去问我这个case为什么不收敛,我们只能依据我们的实际分析经验,还要具体看模型设置看message文件来做诊断的。
诚然,分析经验对于每一结构仿真工程师非常重要,但是,对于初学者来说,如果能够听一下行业专家的课程,并且加强针对性练习,结构分析技术水平肯定会有很大提高。
推荐关注,DS SIMULIA 技术专家认证,仿真秀专栏作者iCAETube讲师将在仿真秀知识讲堂首播《Abaqus 结构工程师必修课-基础入门10讲》首播期间,讲师会为所有听众提供15-30分钟在线免费答疑,希望和大家一起学习ABAQUS结构分析技能,以下是整个课程的排期表,以实际播放为准。