Augmented Lagrangian法
理论与物理
增广拉格朗日法是什么
老师,增广拉格朗日法是罚函数法和拉格朗日乘子法的“优点结合”吗?
正是如此。它结合了罚函数法的简单性和拉格朗日乘子法的穿透零精度。
在罚函数项 $k_p g_n$ 的基础上,迭代更新拉格朗日乘子 $\lambda_n$。反复迭代可使穿透收敛至零。
即使罚函数刚度 $k_p$ 较小,也能通过迭代减少穿透呢。
对 $k_p$ 的依赖性比罚函数法小。这是其最大优点。Ansys 默认采用增广拉格朗日法。
总结
要点:
- 罚函数 + 迭代拉格朗日更新 — 优点结合
- 对 $k_p$ 的依赖性小 — 比罚函数法更稳定
- 无需额外自由度 — 比拉格朗日乘子法更高效
- Ansys 的默认方法 — 最广泛推荐的手法
Hestenes-Powell法 1969年
增广拉格朗日法(Augmented Lagrangian)是 M.R. Hestenes 和 M.J.D. Powell 于 1969 年独立发表的罚函数与拉格朗日乘子的混合方法。通过在外部迭代中更新乘子,既能避免纯罚函数法的条件数恶化,又能避免纯乘子法的大规模联立方程。其在接触有限元中的应用由 Simo 和 Laursen 在 1980 年代后期系统化。
各项的物理意义
- 惯性项(质量项):$\rho \ddot{u}$,即“质量×加速度”。您是否有过急刹车时身体被向前甩出的经历?那种“被带走的感觉”正是惯性力。物体越重越难启动,一旦启动也越难停止。地震时建筑物摇晃,也是因为地面突然移动而建筑物的质量“被落下”。静力分析中此项设为零,这是基于“缓慢施力故加速度可忽略”的假设。对于冲击载荷或振动问题,此项绝不能省略。
- 刚度项(弹性恢复力):$Ku$ 或 $\nabla \cdot \sigma$。拉伸弹簧时能感觉到“试图恢复的力”吧?那就是胡克定律 $F=kx$,也是刚度项的本质。那么提问——用相同的力拉伸铁棒和橡皮筋,哪个伸长更多?当然是橡皮筋。这种“难以伸长的程度”就是杨氏模量 $E$,它决定了刚度。常见的误解是:“刚度高 = 强度高”。刚度是“不易变形的程度”,强度是“不易破坏的程度”,这是两个不同的概念。
- 外力项(载荷项):体积力 $f_b$(如重力)和表面力 $f_s$(如压力、接触力)。可以这样理解——桥上卡车的重量是“作用在整个内容物上的力”(体积力),轮胎压路面的力是“仅作用在表面的力”(表面力)。风压、水压、螺栓预紧力……这些都是外力。这里容易犯的错误是:弄错载荷方向。本想施加“拉伸”却变成了“压缩”——听起来像笑话,但在三维空间坐标系旋转时确实会发生。
- 阻尼项:瑞利阻尼 $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 统一 |
数值解法与实现
增广拉格朗日法的实现
算法:
1. 初始 $\lambda = 0$ 时作为罚函数法求解
2. 检查穿透量 $g_n$
3. 更新 $\lambda$:$\lambda \leftarrow \lambda + k_p g_n$
4. 用更新后的 $\lambda$ 再次求解
5. 重复迭代直至 $g_n$ 足够小
原来有外层循环($\lambda$ 更新)和内层循环(Newton-Raphson)啊。
双重迭代循环。内层满足平衡,外层满足接触约束。计算成本约为罚函数法的 1.5 至 2 倍。
求解器设置
总结
乘子更新的迭代方案
增广拉格朗日接触采用双重迭代结构:外部循环更新拉格朗日乘数 λ,内部循环求解非线性有限元解。Laursen & Simho(1993年)的公式采用乘子更新式 λ_{k+1} = λ_k + ε_N g_N(g_N:穿透量,ε_N:罚函数),并且 ε_N 可以从物理间隙容差反算设定,因此比罚函数法能更直观地进行收敛调整。
线性单元(一阶单元)
节点间线性插值。计算成本低,但应力精度低。注意剪切自锁(可通过减缩积分或 B-bar 法缓解)。
二阶单元(带中间节点)
可表现曲线变形。应力精度大幅提升,但自由度约增加 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 迭代法的比喻
直接法是“用笔算精确求解联立方程”的方法——可靠但大规模问题耗时过长。迭代法是“通过反复猜测逼近正确答案”的方法——最初答案粗糙,但每次迭代精度提高。就像查字典时,从第一页开始顺序查找(直接法)不如先估计位置翻开,再前后调整(迭代法)来得高效,原理相同。
网格阶次与精度的关系
一阶单元如同“用直尺近似曲线”——用直线折线表现,精度有限。二阶单元如同“柔性曲线尺”——能表现曲线变化,即使网格密度相同,精度也显著提高。不过,每个单元的计算成本增加,需根据总体的成本效益来判断。
实践指南
增广拉格朗日法的实务
Ansys 用户常常在无意中使用增广拉格朗日法。默认设置最为稳定。
实务检查清单
航空发动机叶片微动磨损
GE Aviation 自 2008 年左右开始使用 ANSYS Mechanical 的增广拉格朗日接触进行涡轮叶片枞树型榫头微动磨损分析。结合累积损伤模型评估了相当于 10⁷ 次循环的重复接触,将 Inconel 718 制叶片的磨损深度再现精度控制在实测值 ±15 μm 以内。作为将试验品制造成本降低约 30% 的案例在学会发表。
分析流程的比喻
分析流程其实和烹饪非常相似。首先采购食材(准备 CAD 模型),进行预处理(网格生成),开火烹饪(求解器执行),最后装盘(后处理可视化)。这里有个重要问题——烹饪中最容易失败的工序是哪里?其实是“预处理”。如果网格质量差,无论使用多么优秀的求解器,结果都会一团糟。
初学者容易陷入的陷阱
您确认过网格收敛性吗?是否认为“计算能运行 = 结果正确”?这其实是 CAE 初学者最容易掉入的陷阱。求解器一定会根据给定的网格返回“一个像样的答案”。但如果网格太粗糙,这个答案就会与现实严重偏离。至少用三个级别的网格密度确认结果是否稳定——如果忽视这一点,就会陷入“因为是计算机给出的答案,所以应该正确”的危险误区。
边界条件的思考方式
边界条件的设置,与考试的“出题”是相同的。如果题目出错了呢?无论计算多么精确,答案都是错的。“这个面真的完全固定吗?”“这个载荷真的是均匀分布吗?”——正确建模现实的约束条件,其实是整个分析中最重要的步骤。
软件比较
增广拉格朗日法的工具
选型指南
ANSYS ALM 实现的变迁
ANSYS 在 1990 年代后期将增广拉格朗日法(ALM)采用为 CONTA174/TARGE170 单元的默认接触算法。ANSYS 10.0(2005年)将 ALM 的收敛判定准则修订为基于接触力,大幅改善了厚板穿透问题。现行的 ANSYS Mechanical 2024 中,默认设置为可自动切换 ALM 与罚函数法的“program controlled”。
选型时最重要的三个问题
- “要解决什么问题”:增广拉格朗日法所需的物理模型·单元类型是否支持。例如,流体中 LES 支持的有无,结构中接触·大变形的支持能力会成为差异点。
- “谁使用”:新手团队适合 GUI 完善的工具,有经验者适合脚本驱动的灵活工具。类似于汽车的自动挡(GUI)和手动挡(脚本)的区别。
- “未来扩展到什么程度”:着眼于未来的分析规模扩大(HPC 支持)、向其他部门扩展、与其他工具的联动进行选择,有助于长期的成本削减。
尖端技术
增广拉格朗日法的前沿
相关主题
なった
詳しく
報告