课程地图 › 第 2 章

第 2 章 · 非线性有限元分析过程

Nonlinear Finite Element Analysis Procedure · PDF p87–150

📖 2.1 固体力学中的非线性系统

2.1.1 非线性 vs 线性

非线性问题不满足叠加原理,刚度随位移/载荷变化。本教材把它们统一为方程:

(2.6)
P(u) − f = 0

其中 u = 节点位移向量,f = 外加载荷,P(u) = 内力向量。线性情况下 P(u) = K uK 恒定);非线性情况下 Pu非线性函数,必须迭代求解

2.1.2 四大非线性类型

固体力学中公认四大非线性来源

  1. 材料非线性(Material):应力-应变非线性,如弹塑性、超弹、蠕变
  2. 几何非线性(Geometry):大变形 / 大转动,平衡方程写在变形构形
  3. 边界非线性(Boundary):接触边界变化(接触问题)
  4. 载荷非线性(Force):载荷大小/方向随变形变化(follower force)
nonlinearities

图 2.5 四大非线性在固体力学中的位置(位移/应变/应力/载荷/边界条件的关系)

geometric nonlinearity

图 2.6 几何非线性例子:悬臂梁大转动(力矩-位移非线性)

💡 例 2.1:金属薄板冲压(拉深工艺)

金属板冲压成杯形:① 板料塑性变形(材料非线性);② 厚度减薄、轮廓大变形(几何非线性);③ 板料与模具接触边界变化(边界非线性)。

实际工程通常只考虑 1-2 种主非线性,同时考虑全部 4 种计算成本极高

2.1.3 工程中的非线性例子

🔄 2.2 非线性代数方程求解方法

非线性方程 P(u) = f 没有解析解(除简单情况),必须迭代。从初值 u0 开始,每步求增量 Δu 直到收敛。

nonlinear spring

图 2.12 串联非线性弹簧:F = 100 N,k₁ = 50 + 500u₁,k₂ = 100 + 200(u₂-u₁)

💡 例 2.2:非线性弹簧系统

两弹簧串联:k₁ = 50 + 500u₁ N/m,k₂ = 100 + 200u₂ N/m。F = 100 N。

组装得非线性方程组:

300u1² + 400u1u2 − 200u2² + 150u1 − 100u2 = 0
200u1² − 400u1u2 + 200u2² − 100u1 + 100u2 = 100

图 2.13 显示:可能有多解或无解,需用数值方法找零点。

2.2.1 Newton-Raphson 法 (NR)

最经典。在当前 u(i) 做一阶 Taylor 展开:

(2.11)
P(u(i+1)) ≈ P(u(i)) + KT(u(i)) · Δu

KT = ∂P/∂u = 切线刚度矩阵。令 P(u(i+1)) = f,解得:

(2.13)
Δu(i) = KT-1(u(i)) · R(u(i))

R = fP(u(i)) = 残差力。迭代公式:

(2.14)
u(i+1) = u(i) + Δu(i)
NR method

图 2.16 Newton-Raphson 迭代的几何解释:每步用切线逼近曲线

NR 法核心步骤
  1. ① 计算残差 R(u(i)) = fP(u(i))
  2. ② 计算切线刚度 KT(u(i)) = ∂P/∂u
  3. ③ 解线性方程 KT Δu = R
  4. ④ 更新 u(i+1) = u(i) + Δu
  5. ⑤ 检查收敛(力残差 / 位移增量 / 能量)
  6. ⑥ 未收敛则回步骤 ①

收敛速度:二次收敛(NR 法的最大优势)

2.2.2 修正 Newton-Raphson (mNR)

每 N 步才更新一次切线刚度

Δu(i) = KT-1(u(0)) · R(u(i))

:组装/分解刚度少 N 次 → 节省计算
:线性收敛,收敛慢

2.2.3 增量割线法

割线刚度(两点间的斜率)代替切线刚度:

Ksec ≈ ΔP / Δu

适合材料软化/硬化等弱非线性问题。

2.2.4 增量力法

载荷按增量施加:fn+1 = fn + Δf,每步用 NR 求解当前载荷下的平衡。

load increment

图 2.19 增量力法:把总载荷切成 N 步,每步 NR 求解

2.2.5 弧长法(Arc-Length Method)

NR 法在极限点(载荷-位移曲线峰谷)失效——切线刚度奇异。弧长法引入载荷因子 λ 作为额外未知量,约束位移增量的弧长

(2.x)
ΔuT Δu + α · (Δλ)² · fT f = Δl²

其中 Δl 是弧长增量。能通过 snap-through(位移跳跃)和 snap-back(力反向)。

🛠️ 2.3 非线性有限元分析步骤

5 个核心步骤(NR 法框架):

完整 NLFEA 流程
  1. 2.3.1 状态确定:根据当前位移计算应变、应力、内力
  2. 2.3.2 残差计算R = fextPint
  3. 2.3.3 收敛判断:|R| < tol?
  4. 2.3.4 线性化:计算 KT = ∂P/∂u
  5. 2.3.5 求解:解 KT Δu = R,更新 u,回步骤 1
flowchart

图 2.21 NLFEA 求解流程图

2.3.3 收敛准则(3 种常用)

① 力残差:||R|| / ||fref|| < εf (如 1e-3)
② 位移增量:||Δu|| / ||uref|| < εu (如 1e-3)
③ 能量:ΔuT · R / Δu0T · R0 < εE (如 1e-6)

商业软件通常同时使用 2-3 种准则,全部满足才收敛。

convergence

图 2.23 收敛准则:力 / 位移 / 能量 三种判据

💻 2.4 MATLAB 实现:1D 非线性杆

第 2.4 节给出 1D 杆的非线性 NR 求解 MATLAB 代码(PDF p124-139)。

💡 NR 求解骨架(伪代码)
% 主循环:载荷增量
for n = 1:N
    f_ext = n * delta_f;
    u = u_old;  % 从上次增量末状态开始
    % NR 迭代
    for i = 1:MaxIter
        [P_int, K_T] = assemble_internal(u);  % 组装内力+切线刚度
        R = f_ext - P_int;                    % 残差
        if norm(R)/norm(f_ext) < 1e-3, break; end
        du = K_T \ R;                          % 解线性方程
        u = u + du;                            % 更新
    end
    u_old = u;  % 保存当前增量末状态
end
      
beam bending

图 2.27 1D 杆单元非线性分析的 NR 迭代过程

beam 3D

图 2.28 3D 实体单元弯曲(5 个 hex8 单元模拟悬臂梁)

NLFEA 3D results

图 2.28b 应力 σ₂₂ 等高线:上下表面 ±1.97 MPa(3D 弯曲)

🏢 2.5 商业 FEA 软件中的非线性控制

实际工程中通常用商业软件(Abaqus / ANSYS / Nastran)。共同的非线性控制要素

  • 载荷步 (Load Step):分析步,载荷增量的边界
  • 子步 (Substep):每个分析步内的载荷增量数
  • 求解器:Sparse / Direct / Iterative
  • 收敛容差:力 / 位移 / 旋转容差
  • 最大迭代数:每子步 NR 迭代上限
  • 弧长法:通过极限点(snap-through / snap-back)
工程经验
  • 📍 收敛困难:减小子步、放松容差、换修正 NR、试弧长法
  • 📍 不收敛:检查模型(边界、接触、材料、单位)
  • 📍 计算慢:用稀疏求解器、并行、mNR 减少刚度组装
  • 📍 二分法:商业软件常自动减半步长,直到收敛

📌 2.6 本章总结

  • 4 大非线性类型:材料 / 几何 / 边界 / 载荷
  • 4 大求解方法:NR / 修正 NR / 增量割线 / 增量力 + 弧长法
  • 5 步求解流程:状态确定 / 残差 / 收敛 / 线性化 / 求解
  • 3 大收敛准则:力 / 位移 / 能量
  • 商业软件控制要素(载荷步、子步、求解器、容差、弧长)

第 3 章将深入几何非线性(大变形的 Lagrangian 公式)。

📝 2.7 习题(PDF p145-150)

  • 2.1 几何非线性判断(汽车碰撞、橡胶密封、压力容器、桥梁共振)
  • 2.2 单根杆 NR 求解(k = 50 + 500u)
  • 2.3 串联弹簧 NR 求解
  • 2.4 mNR 与 NR 比较(迭代次数 / 总计算量)
  • 2.5 弧长法通过 snap-through
  • 2.10 1D 杆的几何非线性(轴向力诱发弯曲)
  • 2.17 1D 杆非线性 NR 迭代(手算前 2 步)
  • 2.20 用 MATLAB 写 NLFEA 程序