基于惩罚法的接触公式化

分类: 構造解析 | 综合版 2026-04-06
CAE visualization for penalty contact theory - technical simulation diagram
ペナルティ法による接触定式化

理论与物理

接触问题基础

🧑‍🎓

老师,FEM中的“接触问题”为什么这么难?


🎓

接触问题本质上是非线性的。有三个原因:


1. 状态变化 — 接触面处于“接触/非接触”的二值状态。状态随载荷变化

2. 不等式约束 — 不允许发生穿透(penetration):$g \geq 0$

3. 摩擦 — 库仑摩擦包含“粘着/滑动”的状态变化


🧑‍🎓

不等式约束…这和通常FEM的等式约束(SPC等)有本质区别呢。


🎓

通常的FEM求解 $[K]\{u\} = \{F\}$ 这样的等式,但接触需要满足“$g \geq 0$ 且 $g \cdot p = 0$”这样的KKT条件(Karush-Kuhn-Tucker条件)。$g$ 是间隙,$p$ 是接触压力。


罚函数法原理

🎓

罚函数法是最简单的接触处理方法。“施加与穿透量成比例的反力”:


$$ F_n = k_p \cdot g_n \quad (g_n < 0 \text{ 时}) $$

$k_p$ 是罚刚度(接触刚度)。$g_n$ 是法线方向的穿透量。


🧑‍🎓

就像在接触面之间放入弹簧一样呢。


🎓

正是如此。罚函数法就是在接触面之间放置非常硬的弹簧。发生穿透时会产生反力,将穿透推回。


罚刚度设置

🎓

罚刚度 $k_p$ 的设置会左右结果:


  • $k_p$ 过大 → 条件数恶化。收敛困难
  • $k_p$ 过小 → 穿透量过大。不准确

🎓

参考标准:$k_p \approx 10 \sim 100 \times E \cdot A / L$(接触面刚度的量级)。许多求解器会自动计算。


🧑‍🎓

交给自动计算安全吗?


🎓

大部分情况下是的。Abaqus或Ansys的自动罚刚度是很好的起点。只在出问题时才进行手动调整。


罚函数法的优缺点

优点缺点
实现简单穿透无法完全为零
无需额外自由度罚刚度的设置影响结果
与显式解法兼容性好$k_p$ 过大会导致条件数恶化
多数求解器的默认方法
🧑‍🎓

“穿透无法为零”是最大的弱点吗?


🎓

只要 $k_p$ 是有限值,微小的穿透就不可避免。穿透量在板厚的1%以下则实用上没有问题。超过此值则需考虑拉格朗日乘子法。


总结

🎓

要点:


  • 接触是不等式约束的非线性问题 — 状态变化 + 摩擦
  • 罚函数法 = 接触面间放置弹簧 — $F = k_p \cdot g_n$
  • $k_p$ 的设置是关键 — 过大会导致收敛困难,过小会导致穿透过大
  • 多数求解器可自动计算 — 仅在出问题时手动调整
  • 穿透无法完全为零 — 以板厚的1%以下为目标

Coffee Break 闲谈

Courant 1943年的罚函数法

罚函数法的数学起源可追溯到Richard Courant于1943年发表的论文“Variational methods for the solution of problems of equilibrium and vibrations”。将约束变分问题通过添加乘以大系数(罚)的项转换为无约束问题的思想,最初用于椭圆型偏微分方程的边界条件处理,在1970年代由Oden & Kim(1977)等人系统地应用于接触FEM。

各项的物理意义
  • 惯性项(质量项):$\rho \ddot{u}$,即“质量×加速度”。您是否有过急刹车时身体被向前甩出的经历?那种“被带走的感觉”正是惯性力。物体越重越难启动,一旦启动也越难停止。地震时建筑物摇晃,也是因为地面突然移动而建筑物的质量“被落下”。静力分析中此项设为零,这是基于“缓慢施加载荷因此加速度可忽略”的假设。对于冲击载荷或振动问题,此项绝对不能省略。
  • 刚度项(弹性恢复力):$Ku$ 或 $\nabla \cdot \sigma$。拉伸弹簧时能感觉到“想要恢复的力”吧?那就是胡克定律 $F=kx$,也是刚度项的本质。那么提问——铁棒和橡皮筋,用相同的力拉伸,哪个伸得更长?当然是橡皮筋。这种“难以拉伸的程度”就是杨氏模量 $E$,它决定了刚度。常见的误解:“刚度高=强度高”是不对的。刚度是“抵抗变形的能力”,强度是“抵抗破坏的能力”,是不同的概念。
  • 外力项(载荷项):体积力 $f_b$(重力等)和表面力 $f_s$(压力、接触力等)。可以这样想——桥上卡车的重量是“作用在整个内部上的力”(体积力),轮胎压路面的力是“只作用在表面上的力”(表面力)。风压、水压、螺栓预紧力…全都是外力。这里容易犯的错误:弄错载荷方向。本想施加“拉伸”却变成了“压缩”——听起来像笑话,但在3D空间中坐标系发生旋转时确实会发生。
  • 阻尼项:瑞利阻尼 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。试着弹一下吉他弦。声音会一直持续吗?不,会逐渐变小。这是因为振动能量通过空气阻力或弦的内部摩擦转化成了热能。汽车的减震器也是同样原理——故意吸收振动能量以改善乘坐舒适性。如果阻尼为零会怎样?建筑物在地震后会一直摇晃不停。实际上不会这样,因此设置适当的阻尼很重要。
假设条件与适用范围
  • 连续体假设:将材料视为连续介质,忽略微观不均匀性
  • 小变形假设(线性分析时):变形相对于初始尺寸足够小,应力-应变关系为线性
  • 各向同性材料(未特别指定时):材料特性不依赖于方向(各向异性材料需另行定义张量)
  • 准静态假设(静力分析时):忽略惯性力·阻尼力,仅考虑外力与内力的平衡
  • 不适用的情形:大变形·大旋转问题需要几何非线性。塑性·蠕变等非线性材料行为需要扩展本构关系
量纲分析与单位制
变量SI单位注意点·换算备忘
位移 $u$m(米)以mm输入时,载荷·弹性模量也需统一为MPa/N系
应力 $\sigma$Pa(帕斯卡)= N/m²MPa = 10⁶ Pa。与屈服应力比较时注意单位制不一致
应变 $\varepsilon$无量纲(m/m)注意工程应变与对数应变的区别(大变形时)
弹性模量 $E$Pa钢:约210 GPa,铝:约70 GPa。注意温度依赖性
密度 $\rho$kg/m³mm系中为tonne/mm³(钢约为 10⁻⁹ tonne/mm³)
力 $F$N(牛顿)mm系用N,m系也用N统一

数值解法与实现

罚函数法的实现

🧑‍🎓

罚函数法在各个求解器中如何设置?


Abaqus

```

*CONTACT PAIR, INTERACTION=contact_prop

slave_surface, master_surface

*SURFACE INTERACTION, NAME=contact_prop

*SURFACE BEHAVIOR, PENALTY

```

Abaqus默认使用罚函数法。通过*SURFACE BEHAVIOR, PENALTY显式指定。

Nastran

```

BCTABLE, ...

BCPARA, CTYPE, UGLYPEN $ 罚函数法

```

在Nastran的SOL 101/106/400中定义接触。

Ansys

```

MP, MU, cid, 0.3 ! 摩擦系数

KEYOPT, cid, 2, 1 ! 罚函数法

```

或在Workbench的Contact设置中设置Formulation=Penalty。

LS-DYNA

```

*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE

$ 罚函数法为默认

```

LS-DYNA的接触全部基于罚函数法。是与显式解法最自然匹配的方法。

接触检测

🎓

罚函数法的步骤(每次迭代中):


1. 接触检测 — 在主面上搜索从属节点的最近点

2. 间隙计算 — $g_n$ = 从属节点与主面之间的距离

3. 穿透判定 — 若 $g_n < 0$ 则为接触。反力 $F_n = k_p |g_n|$

4. 摩擦力计算 — $F_t = \mu F_n$(滑动)或 粘着

5. 反映到整体方程 — 将罚函数力添加到右侧


🧑‍🎓

接触检测占计算成本的大部分吗?


🎓

对于大规模模型(数十万接触单元对),接触检测可能占计算时间的30〜50%。会使用桶排序或KD-tree等快速搜索算法。


总结

🎓
  • 所有主流求解器默认使用罚函数法 — 设置简单
  • 接触检测→间隙计算→反力→整体方程 — 每次迭代执行
  • 接触检测占计算的30〜50% — 大规模接触的瓶颈
  • LS-DYNA的所有接触均为罚函数法 — 与显式解法兼容性最佳

  • Coffee Break 闲谈

    罚刚度的选择准则

    接触罚系数ε的选择是罚函数法实用中的最重要课题。ε太小则穿透量会超过允许值,太大则刚度矩阵条件数恶化导致收敛变慢。LS-DYNA的默认设置中,采用将接触面最小单元刚度k_e(=E×t×A)的0.1倍自动设为ε的“SOFT=0”算法,对于异种材料接触(例:钢-树脂)推荐手动调整。

    线性单元(1次单元)

    节点间线性插值。计算成本低,但应力精度低。注意剪切锁定(可通过减缩积分或B-bar法缓解)。

    2次单元(带中间节点)

    可表现曲线变形。应力精度大幅提高,但自由度约增加2〜3倍。推荐:应力评价重要时使用。

    完全积分 vs 减缩积分

    完全积分:有过约束(锁定)风险。减缩积分:有沙漏模式(零能量模式)风险。根据情况选择。

    自适应网格

    基于误差指标(ZZ估计量等)的自动细分。高效提高应力集中部位的精度。有h法(单元细分)和p法(增加阶次)。

    牛顿-拉弗森法

    非线性分析的标准方法。每次迭代更新切线刚度矩阵。在收敛半径内具有二次收敛性,但计算成本高。

    修正牛顿-拉弗森法

    切线刚度矩阵使用初始值或每隔数次迭代更新。每次迭代成本低,但收敛速度为线性。

    收敛判定准则

    力残差范数: $||R|| / ||F_{ext}|| < \epsilon$(通常 $\epsilon = 10^{-3}$〜$10^{-6}$)。位移增量范数: $||\Delta u|| / ||u|| < \epsilon$。能量范数: $\Delta u \cdot R < \epsilon$

    载荷增量法

    不一次性施加全部载荷,而是分小步增加。弧长法(Riks法)可以越过载荷-位移关系的极值点进行追踪。

    直接法 vs 迭代法的比喻

    直接法是“用笔算精确求解联立方程”的方法——可靠但大规模问题耗时过长。迭代法是“通过反复猜测逼近正确答案”的方法——最初是粗略答案,但每次迭代精度都会提高。就像查字典时,从第一页开始顺序查找(直接法)不如先估计大概位置翻开,再前后调整(迭代法)来得高效,原理相同。

    関連シミュレーター

    この分野のインタラクティブシミュレーターで理論を体感しよう

    シミュレーター一覧

    関連する分野

    この記事の評価
    ご回答ありがとうございます!
    参考に
    なった
    もっと
    詳しく
    誤りを
    報告
    参考になった
    0
    もっと詳しく
    0
    誤りを報告
    0
    Written by NovaSolver Contributors
    Anonymous Engineers & AI — サイトマップ