中央差分法(陽解法)

分类: 構造解析 | 综合版 2026-04-06
CAE visualization for explicit central diff theory - technical simulation diagram
中央差分法(陽解法)

理论与物理

显式解法是什么

🧑‍🎓

老师,“显式解法(Explicit法)”和“隐式解法(Implicit法)”有什么区别?


🎓

隐式解法在每个时间步需要求解联立方程(有平衡迭代)。显式解法则无需求解联立方程,仅通过质量矩阵的逆矩阵(若为对角阵则只需取倒数)直接计算下一时刻的位移。


🧑‍🎓

不需要解联立方程?那看起来很快。


🎓

单步计算速度快几个数量级。但有稳定条件限制,时间步长必须非常小($\Delta t \propto L_{min} / c$,$c$ 是波速)。最适合冲击这类短时间现象。


中心差分法的算法

🎓

对于运动方程 $[M]\{\ddot{u}\} = \{F\} - [K]\{u\} - [C]\{\dot{u}\}$:


1. 加速度计算: $\{\ddot{u}_n\} = [M]^{-1}(\{F_n\} - \{F_{int,n}\})$

2. 速度更新: $\{\dot{u}_{n+1/2}\} = \{\dot{u}_{n-1/2}\} + \Delta t_n \{\ddot{u}_n\}$

3. 位移更新: $\{u_{n+1}\} = \{u_n\} + \Delta t_{n+1/2} \{\dot{u}_{n+1/2}\}$


🧑‍🎓

如果 $[M]^{-1}$ 是对角矩阵,那么求逆就只是取每个对角元素的倒数…计算超快!


🎓

所以显式解法必须使用集中质量矩阵(对角)。如果使用一致质量矩阵(非对角),求逆计算成本高,会失去显式解法的优势。


稳定条件(CFL条件

🎓

显式解法的稳定时间增量:


$$ \Delta t \leq \frac{L_{min}}{c} = \frac{L_{min}}{\sqrt{E/\rho}} $$

$L_{min}$ 是最小单元尺寸,$c$ 是材料的波速(弹性波速度)。


🧑‍🎓

钢材($c \approx 5000$ m/s)且 $L_{min} = 5$ mm 时,$\Delta t \leq 1 \mu s$…非常小!


🎓

所以分析1秒需要超过100万步。冲击(几毫秒)只需几千步,但准静态(几秒)则步数巨大。显式解法适用于短时间的动态现象


显式解法 vs. 隐式解法

特性显式解法隐式解法
单步计算非常轻量重(联立方程)
时间步长非常小($\mu s$量级)大($ms \sim s$)
稳定条件有(CFL条件无(无条件稳定)
适用场景冲击、爆炸、碰撞准静态、振动
接触容易困难
非线性自然处理需要迭代
🧑‍🎓

接触容易处理是个很大的优点呢。


🎓

显式解法中,接触检测和力的计算在每个时间步独立进行,没有收敛问题。对于像汽车碰撞这样同时发生大量接触的问题,显式解法具有压倒性优势。


总结

🧑‍🎓

我来整理一下中心差分法(显式解法)。


🎓

要点:


  • 不解联立方程 — 若 $[M]^{-1}$ 为对角阵则只需取倒数
  • $\Delta t \leq L_{min} / c$CFL条件。由最小单元决定
  • 最适合短时间动态现象 — 冲击、爆炸、碰撞
  • 接触容易处理 — 无收敛问题
  • 必须使用集中质量矩阵 — 非对角矩阵则无法提速

🧑‍🎓

显式解法是“针对短时间剧烈现象”的算法呢。


🎓

LS-DYNA的全部分析都是显式解法。Abaqus/Explicit也是显式解法。汽车的碰撞安全没有这个方法就无法实现。


Coffee Break 闲谈

中心差分法诞生于1695年的微积分

莱布尼茨在1695年发表的有限差分概念被应用于动力学,产生了中心差分法,它用 a(t)=[u(t+Δt)−2u(t)+u(t−Δt)]/Δt² 来近似加速度。这个二阶精度格式从冯·诺依曼稳定性分析导出了临界时间步长 Δtcr=2/ωmax,约束其不超过最小单元的固有频率。该算法于1970年代在LS-DYNA的前身代码DYNA3D中首次大规模实现于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统一

数值解法与实现

显式解法的实现

🧑‍🎓

显式解法的FEM代码是如何实现的?


🎓

主循环极其简单:


```

for each time step:

1. 内力计算: F_int = assemble(sigma B V) $ 单元循环

2. 外力计算: F_ext = boundary_conditions()

3. 加速度: a = (F_ext - F_int) / M_diag $ 对角除法

4. 速度更新: v = v + dt * a

5. 位移更新: u = u + dt * v

6. 接触检查: contact_detection_and_force()

7. 时间增量更新: dt = CFL * L_min / c

```


🧑‍🎓

第3步的“对角除法”是关键呢。


🎓

是的。这里是显式解法速度的源泉。隐式解法中第3步是“求解 $n \times n$ 的联立方程”,计算量差几个数量级。


稳定时间增量的管理

🎓

稳定时间增量由所有单元中最小的值决定:


$$ \Delta t_{stable} = \min_{\text{all elements}} \frac{L_e}{c_e} $$

只要有一个单元很小,整体的 $\Delta t$ 就会变小。


🧑‍🎓

因为一个坏单元导致整体变慢?


🎓

网格质量直接关系到计算速度。长宽比差的单元或压扁的单元 $L_e$ 非常小,会减小 $\Delta t$。显式解法中网格质量是计算效率的关键


质量缩放

🎓

人为增加小单元的质量以增大 $\Delta t$ 的质量缩放


$$ \Delta t \propto \frac{L_e}{c} = \frac{L_e}{\sqrt{E/\rho}} $$

增加 $\rho$ 会降低 $c$,从而增大 $\Delta t$。是准静态问题显式解法中必备的技术。


🧑‍🎓

增加质量不会改变惯性效应吗?


🎓

会改变。所以需要确认动能/内能 < 5%。满足这个条件就可以视为“准静态”。


求解器

相关主题

関連シミュレーター

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

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