做过 Abaqus 非线性分析的人,大概都经历过这样的场景:模型一提交,msg 文件里”severe discontinuity iterations”刷了满屏,增量步从 1e-5 切到 1e-12,最终报一个”Too many attempts made for this increment”然后终止。十次有八次,问题出在接触上。
接触非线性是有限元分析中公认的”收敛杀手”。它同时引入几何非线性(大滑移)、状态非线性(开/闭/滑动切换)和材料非线性(摩擦),三者耦合使得 Newton-Raphson 迭代的收敛域极窄。本文基于 Abaqus 官方帮助文档和经典接触力学文献,系统梳理接触收敛困难的根源与对策,给出一份可直接对照执行的调试清单。
一、为什么接触问题这么难收敛?
从数学角度看,接触约束本质上是一个不等式约束问题。Serpa 和 Iguti(2000)在 Journal of the Brazilian Society of Mechanical Sciences 中指出,带摩擦的接触问题可建模为条件约束最小化问题,其 KKT(Karush-Kuhn-Tucker)条件在每次迭代中都可能改变活跃约束集——这正是 Newton-Raphson 方法收敛困难的数学根源。
具体到 Abaqus 求解过程,收敛困难通常表现为以下几类:
- 初始条件解析失败:意外的初始过盈或开距导致第一步就出现巨大穿透力或刚体运动。
- 刚体运动:接触尚未建立时,部件缺少足够约束,刚度矩阵奇异。
- 状态突变:接触状态在”开→闭”或”粘→滑”之间频繁切换,引发严重不连续迭代。
- 病态线性系统:罚刚度过大或约束耦合导致鞍点系统条件数恶化,线性求解器收敛缓慢(参见北京理工大学学报 2024 年关于接触问题鞍点系统预处理的研究)。
王水林、邓建辉、葛修润(1998)在《岩土工程学报》中通过坝基接触分析实例说明,节点对的接触状态判定(开/闭/滑动)是非线性迭代不收敛的直接诱因。这一结论在二十多年后的工程实践中依然成立。
二、官方文档怎么说:四大类困难与对策
Abaqus 帮助文档在”Common difficulties in contact modeling”(文档路径:SIMACAEITNRefMap/simaitn-c-contacttrouble.htm)中,将接触建模困难归纳为四大类。下面逐一解读并给出实操建议。
2.1 初始接触条件难以解析
帮助文档明确指出:意外的初始开距(openings)或过盈(overclosures)会导致几何解释错误、模型意外运动、分析不收敛。对于通用接触(general contact),Abaqus 会自动调整小的初始过盈以消除穿透;但对于接触对(contact pair),初始过盈会被解释为过盈配合(interference fit)并据此求解——这可能完全不是你想要的物理行为。

对策:使用接触初始化(Contact Initialization)调整从面位置,让本应接触的从节点在初始状态即贴合且无穿透。关键关键字为 *CONTACT INITIALIZATION DATA。对于小滑移接触对,可通过 *CONTACT PAIR, HCRIT 精确控制临界过盈值,超过该值的穿透将在第一个增量步内被平滑消除。
2.2 刚体运动
当接触尚未建立(例如两个部件之间存在微小间隙),部件在法向和切向都可能缺少约束,产生刚体位移。此时刚度矩阵奇异,Newton-Raphson 迭代无法收敛。
对策:
- 施加合理的临时边界条件,在接触建立前约束刚体自由度;
- 使用自动稳定(Automatic Stabilization),引入微量阻尼力抑制刚体运动;
- 调整模型使初始即有接触约束存在。
自动稳定在帮助文档”Adjusting contact controls”(SIMACAEITNRefMap/simaitn-c-contactcontrolsstd.htm)中有详细说明,可调节稳定阻尼系数、增量步内稳定开关、稳定递减因子(ramp-down factor)和阻尼范围。注意:稳定力是人为引入的,结果中应检查 ALLSD(稳定耗散能)占 ALLIE(内能)的比例,一般不超过 2%~5%。
2.3 表面定义不良
帮助文档列举了多种表面定义问题:主面重复节点(duplicate nodes)、主面未扩展(perimeter 问题)、从面网格过粗、二阶单元面用于点接触等。这些问题会导致接触压力振荡、穿透量异常、收敛性急剧下降。


对策:
- 主面应适当扩展,覆盖从面可能的滑移范围;
- 避免特征边/角作为主面顶点;
- 从面网格应比主面更细;
- 使用二阶单元时,优先选择 surface-to-surface 离散方法以减少压力振荡。
2.4 过度迭代
当严重不连续迭代(severe discontinuity iterations)过多时,Abaqus 会反复切割增量步,导致分析极其缓慢甚至终止。帮助文档建议通过调整接触控制、基于穿透距离控制增量步长(HCRIT)、将弱确定接触转为更稳定形式来解决。
三、接触公式选择:影响收敛的核心决策
帮助文档”Contact pair formulation”(SIMACAEITNRefMap/simaitn-c-contactpairform.htm)详细列出了影响收敛的公式选择维度:
| 选择维度 | 选项 | 对收敛的影响 |
|---|---|---|
| 离散方法 | node-to-surface / surface-to-surface | surface-to-surface 更光滑、压力振荡小,二阶面强烈推荐 |
| 跟踪方法 | finite-sliding / small-sliding | small-sliding 成本低但仅限小滑移;finite-sliding 通用但非线性更强 |
| 约束强制 | penalty / augmented Lagrangian / pure Lagrange | 罚刚度太小→穿透大;太大→病态难收敛;增广拉格朗日兼顾两者 |
| 主从面角色 | main / secondary | 主面应更刚、网格更粗;从面更柔、网格更细 |
从理论上看,增广拉格朗日法(Augmented Lagrangian Method)结合了罚函数法的数值稳定性和拉格朗日乘子法的精确约束满足。Serpa 和 Iguti(2000)系统推导了该方法在摩擦接触中的迭代格式,证明其在合理罚参数选取下具有超线性收敛性。在 Abaqus 中,默认的约束强制方法即为增广拉格朗日法,用户可通过 *CONTACT CONTROLS 调整罚刚度缩放因子和增广拉格朗日循环次数。
另一个常被忽视的设置是:有限滑移 node-to-surface 公式存在非对称项(unsymmetric terms)。帮助文档明确建议,当使用此公式时,必要时应打开非对称求解器(*STEP, UNSYMM=YES),否则 Newton-Raphson 迭代的二次收敛性将丧失。
四、实战调试清单:7 步定位收敛问题
基于多年工程实践,我总结了一套系统化的调试流程。按顺序排查,绝大多数接触收敛问题都能在前 4 步内解决。

Step 1:检查初始接触状态
打开 .dat 文件,搜索”overclosure”和”adjust”关键字。如果存在大量初始过盈调整,说明几何建模存在误差。使用 *CONTACT INITIALIZATION DATA 或 HCRIT 参数消除意外穿透。
Step 2:消除刚体运动
检查模型在接触建立前是否有未约束的自由度。对于装配体分析,第一步往往需要临时约束。如果物理上确实存在自由体(如落体冲击),使用自动稳定:
*CONTACT CONTROLS, STABILIZE=ALLSD
0.0002, , , 0.99
其中 0.0002 为阻尼因子,0.99 为递减因子(在增量步结束时将稳定力衰减到 1%)。
Step 3:检查网格质量
确认主面已扩展、无重复节点;从面网格比主面细。对于曲率大的接触区域,局部加密从面网格。检查是否存在极小单元或畸变单元。
Step 4:切换离散方法
如果当前使用 node-to-surface 且出现压力振荡,切换为 surface-to-surface:
*CONTACT PAIR, INTERACTION=Int-1, TYPE=SURFACE TO SURFACE
对于二阶单元(C3D20、C3D10 等),这一步几乎是必选项。
Step 5:调整约束强制参数
如果穿透量过大,适当增大罚刚度;如果迭代振荡,考虑降低罚刚度或增加增广拉格朗日循环次数:
*CONTACT CONTROLS
, , , , , , , , , , 2.0, , , , , , , , , , , , , , , , , ,
*CONTACT CONTROLS, SECONDARY=Surf-S, MAIN=Surf-M
, , , , , , , , , , 0.5
第一个块调整全模型罚刚度缩放为 2.0 倍;第二个块针对特定接触对将缩放降为 0.5 倍(覆盖全模型设置)。
Step 6:设置接触控制渡过困难阶段
对于仅在初始阶段困难的模型,可以在第一个分析步使用宽松的接触控制,后续分析步恢复默认:
*CONTACT CONTROLS, RESET
帮助文档指出,接触控制可按分析步(step-by-step)施加,保持生效直到被修改或重置。单个接触对的控制会覆盖整模型控制。
Step 7:控制增量步策略
设置合理的初始增量步和最小增量步。对于接触问题,初始增量不宜过大(建议 0.01~0.1),让求解器有足够空间探测接触状态:
*STEP, INC=1000
*STATIC
0.01, 1.0, 1e-8, 0.1
含义:初始增量 0.01,总时间 1.0,最小增量 1e-8,最大增量 0.1。
五、结果验证:如何判断结果合理
收敛不等于正确。调试完成后,务必检查以下指标:
- 穿透量:在 Visualization 模块中显示接触穿透(CPRESS + COPEN),穿透量应远小于接触区域特征尺寸的 1%。
- 接触压力分布:应光滑连续,无锯齿状振荡。如出现振荡,考虑切换 surface-to-surface 或细化网格。
- 稳定耗散能:ALLSD/ALLIE < 2%~5%。如果比例过高,说明模型本身存在约束不足的问题,稳定力掩盖了真实的刚体运动。
- 反力平衡:检查支反力与外载荷是否平衡(误差 < 1%)。
- 增量步历史:在 .sta 文件中查看增量步切割次数。如果大量增量步被切割到极小值,说明模型仍有收敛困难,只是被”强行算过去了”。
六、总结与延伸
接触非线性收敛问题的调试,本质上是一个”从几何到公式到求解器”的逐层排查过程。本文的 7 步清单覆盖了绝大多数工程场景:
- 初始接触状态 → 2. 刚体运动 → 3. 网格质量 → 4. 离散方法 → 5. 约束强制 → 6. 接触控制 → 7. 增量步策略
对于更复杂的情况(如自接触、多体接触、热-力耦合接触),建议进一步阅读帮助文档中”Contact pair formulation”和”Adjusting contact controls”的完整章节。理论层面,Wriggers(2006)的 Computational Contact Mechanics(Springer, 2nd ed.)是接触力学有限元方法的权威教材,系统讲解了罚函数法、拉格朗日乘子法和增广拉格朗日法的数学基础与收敛性分析。
参考文献
- Serpa A L, Iguti F. Contact with friction using the augmented Lagrangian Method. Journal of the Brazilian Society of Mechanical Sciences, 2000, 22(2): 273-289.
- 王水林, 邓建辉, 葛修润. 增广拉格朗日法在摩擦接触问题中的应用. 岩土工程学报, 1998, 20(5): 67-70.
- 北京理工大学学报. 求解接触问题鞍点系统的一类两网格预处理方法. Transactions of Beijing Institute of Technology, 2024. DOI: 10.15918/j.tbit1001-0645.2024.136.
- Wriggers P. Computational Contact Mechanics. Springer, 2nd ed., 2006.
- Abaqus Analysis User’s Guide: Common difficulties in contact modeling (SIMACAEITNRefMap/simaitn-c-contacttrouble.htm).
- Abaqus Analysis User’s Guide: Adjusting contact controls (SIMACAEITNRefMap/simaitn-c-contactcontrolsstd.htm).
- Abaqus Analysis User’s Guide: Contact pair formulation (SIMACAEITNRefMap/simaitn-c-contactpairform.htm).
