接触解析 (Contact Analysis) — CAE用語解説
接触解析是什么
接触解析什么时候需要?与普通的线性静力分析有什么区别?
当处理零件相互「接触或分离」的现象时就需要接触分析。例如螺栓拧紧的法兰面、齿轮啮合、冲压成形的模具与毛坯等。普通静力分析中节点约束从一开始就是固定的,但在接触分析中,由于荷载的大小和方向会改变「哪里在接触,哪里分离」,这就是边界非线性问题,线性分析本质上无法处理。
我明白了,边界条件是「需要求解后才能知道」的。具体用什么数学公式来处理接触的呢?
接触问题的本质是不等式约束条件。如果法向间隙记为 $g_N$,基本条件有3个:
这被称为Karush-Kuhn-Tucker (KKT) 条件,或者Hertz-Signorini-Moreau条件。第3个公式是关键,它表示「如果间隙打开就没有接触力,如果有接触力间隙就为零」这个相补条件。
定义和基本概念
在FEM设置中需要选择「master面」和「slave面」。它们有什么区别?应该怎么选择?
slave面的节点被约束为不穿透master面。基本规则是:
- 刚度高的设为master(例:模具为master,毛坯为slave)
- 网格粗的设为master(细小的slave节点检测接触更精确)
- 面积大的设为master
不过最近的求解器(Abaqus、Ansys等)多用surface-to-surface定式化,主从影响变小。遇到拿不准的情况,遵循这个规则就没问题。
接触类型(node-to-surface / surface-to-surface)
node-to-surface 和 surface-to-surface,究竟应该用哪一个?
结论是,没有特殊原因就应该用 surface-to-surface (STS)。理由如下:
Node-to-Surface (NTS):
- slave端的各节点投影到master面
- 计算轻,但接触压分布容易凹凸不平
- master面可能「穿过」slave节点(拉链现象)
- 曲面网格粗糙时精度下降
Surface-to-Surface (STS):
- 整个面积分接触约束,接触压变光滑
- 主从依存性小(master和slave互换结果基本相同)
- 计算成本比NTS高,但多数情况收敛性好
比如汽车螺栓连接的法兰分析,NTS会出现按节点分布的接触压波纹,而STS能得到光滑分布。Abaqus现在的默认值也是STS。
罚函数法与增广拉格朗日法
接触设置里可以选「罚函数法」和「增广拉格朗日法」,区别是什么?
这是关于如何数值处理接触约束 $g_N \geq 0$ 的问题。
罚函数法是按穿透量产生反力。就像加了一个虚拟「接触弹簧」:
$$p_N = \epsilon_N \cdot \langle -g_N \rangle$$这里 $\epsilon_N$ 是罚函数刚度(接触刚度),$\langle \cdot \rangle$ 是Macauley括号(负值截成零)。优点是不增加未知数,计算快。缺点是 $\epsilon_N$ 小则穿透大,太大则条件数恶化导致不收敛。
找「合适的」罚函数刚度看起来很麻烦...增广拉格朗日法能解决这个问题吗?
完全正确。增广拉格朗日法 (Augmented Lagrangian) 在罚函数项上加入拉格朗日乘数 $\lambda_N$,反复迭代压低穿透到零:
各迭代步更新 $\lambda_N$:
$$\lambda_N^{(k+1)} = \lambda_N^{(k)} + \epsilon_N \cdot g_N^{(k)}$$这样即使 $\epsilon_N$ 小一些,最后的穿透也能接近零。Ansys Mechanical的默认值就是这种方法。相比罚函数法,反复次数增多但接触压精度和对 $\epsilon_N$ 的鲁棒性大大提升。
使用指导如下:
- 罚函数法:显式法碰撞分析、大规模模型优先考虑速度时
- 增广拉格朗日法:隐式静力分析、接触压精度重要时
- 纯拉格朗日乘数法:穿透必须为零时(但刚度矩阵出现零对角线,需要直接法求解器)
摩擦模型
摩擦只要输入库仑摩擦的 $\mu$ 就够了吗?
基础上是库仑摩擦就可以,但从数值角度需要做些处理。库仑摩擦有「粘着(stick)」和「滑动(slip)」两种状态:
问题在于粘着向滑动的转变不连续,这会恶化收敛。实务中常用以下技巧:
- 切向罚函数法:在粘着状态允许微小滑动(弹性滑动)
- 指数型摩擦:摩擦系数 $\mu$ 随滑动速度光滑变化
- 库仑摩擦 + 粘滞项:$\tau = \mu p_N + c \dot{u}_T$ 平滑转变
钢对钢 $\mu = 0.15$~$0.3$、铝对铝 $0.1$~$0.35$、橡胶与金属 $0.5$~$1.0$ 是参考值。但实测值最可信,表面粗糙度、润滑油、温度会大幅改变,需要注意。
听师兄说加上摩擦马上就不收敛了。有什么秘诀吗?
有个实务黄金法则:
- 先不考虑摩擦($\mu=0$)做接触分析。确认接触开闭是否收敛
- 逐步引入摩擦。第1步 $\mu=0$、第2步 $\mu=0.15$ 这样递增
- 将罚函数的切向刚度设为法向的约0.1倍。默认设置常常太大
比如冲压成形仿真,模具接触面直接加 $\mu=0.12$ 会不收敛,但先用 $\mu=0$ 推进到成形中途,再加摩擦就顺利了。这种情况在实务中很常见。
收敛性课题与对策
接触分析最容易踩的坑是什么?看错误信息都猜不出来...
实务中「接触不收敛原因TOP 5」给你列出来:
- 接触面法向方向反了 — 壳层单元的正反面搞混最常见。求解器判定「分离」导致接触无效
- 初期穿透 — CAD的圆角或间隙导致网格阶段已经面交叉。可用Abaqus的
*CONTACT CLEARANCE ASSIGNMENT调整 - 罚函数刚度数值不合理 — 太大产生振荡(自振鸣),太小则穿透过大
- 荷载步长过粗 — 接触面一次性大开合,Newton-Raphson法跟不上
- 刚体运动 — 接触前零件是自由的,刚度矩阵变奇异。需要用弱弹簧或稳定化约束,或保证初期接触
「自振鸣」具体是什么现象?怎么对付?
自振鸣是某些节点在「接触→分离→接触→分离」反复震荡,Newton-Raphson迭代每次切换状态,永远收不了。
对策有:
- 接触稳定化 (Contact stabilization):分离瞬间加微小阻尼力,缓和急剧状态变化
- 时间步自动裁剪:启用自适应步长,检出自振鸣时细化步长
- 穿透容差 (Over-closure tolerance):设置微小穿透的允许阈值,微穿透不切换状态
实务定式化是Abaqus用 *CONTACT CONTROLS 中的 STABILIZE 选项,或Ansys调 CNOF / PINB 参数。
接触分析「必须记住」的核心要点是什么?
实务最低限度要掌握的5个要点:
- 接触是边界非线性问题。用线性分析的思路设置会踩坑
- surface-to-surface定式化作为基础。node-to-surface过时、精度低
- 罚函数法快但有穿透,增广拉格朗日法精确但慢。按问题选择
- 摩擦先无、再逐步加。是最稳定的做法
- 不收敛时最先怀疑设置错(法向、初期穿透)。8成是这类问题
接触分析在结构CAE里麻烦事最多,但掌握这5点,8成问题自己能解决。
相关用語
- 罚函数法 — 用罚函数项近似约束条件的方法
- 拉格朗日乘数法 — 严格满足约束条件的乘数法
- 摩擦 — 接触面间的滑动阻力
- 边界非线性 — 边界条件本身随解变化的非线性
- Newton-Raphson法 — 非线性FEM的标准反复求解法
- 接触应力 — 接触面产生的面压
- Hertz接触 — 弹性体接触理论的古典解
- 收敛 — 反复求解法逼近解的过程
对CAE用语的准确理解是团队沟通的基础。 — Project NovaSolver也着眼于实务者的学习支持。
请告诉我们在接触分析实务中遇到的课题
Project NovaSolver致力于解决CAE工程师日常面临的课题——设置的繁琐、计算成本、结果的理解——。您的实务经验将成为开发更优秀工具的原动力。
咨询(准备中)相关话题
更详细
错误