应力奇异点与网格收敛——有限元法中应力发散原理及实际对策

分类: V&V / メッシュ収束 | 综合版 2026-04-12
Stress singularity at re-entrant corner showing divergent von Mises stress with mesh refinement in FEA
リエントラントコーナーにおける応力特異性 — メッシュ細分化に伴いvon Mises応力が発散する様子

理论与物理 — 为何应力会发散

什么是应力奇点

🧑‍🎓

老师,应力奇点是指网格细化后应力会无限增大吗?这不是软件缺陷吗?

🎓

不是缺陷。弹性力学理论解本身在某些情况下就预测了“应力无限大”。90度的凹角(L形内角270°的角)和裂纹尖端就是典型例子。

🧑‍🎓

诶,理论本身就有无限大?那FEM虽然计算正确,但结果却不能用吗?

🎓

对,这正是关键所在。FEM是求弹性理论近似解的,所以网格越细就越接近“理论上的无限大”。也就是说 $\sigma_{\max}$ 在网格尺寸 $h \to 0$ 时会无限增大。通常的网格收敛性检查——用三个级别的网格确认应力是否收敛于一个定值——在此不成立

🧑‍🎓

那比如说,汽车支架上有L形形状的话,网格越细的人得到的应力越高,就会导致“必须加厚板材!”这种过度设计吗?

🎓

正是如此。FEM初学者用最大von Mises应力与许用应力比较——这就是包含奇点的模型中典型的过度设计模式。网格粗的人得到“OK”,网格细的人得到“NG”,结果会因网格负责人的主观判断而改变。这在V&V(验证与确认)上完全是不合格的。

应力奇点(stress singularity)是指,当弹性体边界存在锐角或裂纹时,在该角点或尖端处应力理论上变为无限大的点。FEM中由于离散化会输出有限值,但网格越细化该值会持续上升,不收敛。

Williams特征值分析与$r^\lambda$奇异性

🧑‍🎓

“应力变为无限大”,从数学上该如何更准确地表述呢?

🎓

有Williams(1952)推导出的经典特征值分析。设楔形区域顶点距离为 $r$,角度为 $\theta$,则应力场可表示为:

$$ \sigma_{ij}(r,\theta) = K \, r^{\lambda - 1} \, f_{ij}(\theta) $$
🎓

这里 $K$ 是与应力强度相关的系数,$f_{ij}(\theta)$ 是角度相关函数,而 $\lambda$ 是Williams特征值。这个 $\lambda$ 取决于楔形张开角 $2\alpha$。关键在于,当 $\lambda < 1$ 时,$r \to 0$ 则 $\sigma \to \infty$。

🧑‍🎓

明白了。具体来说,90°的凹角(内角270°)时 $\lambda$ 是多少?

🎓

求解Williams特征值方程可知,内角270°(凹角)时 $\lambda \approx 0.545$。也就是说应力以 $\sigma \propto r^{-0.455}$ 的量级发散。裂纹尖端(内角360°)时则是众所周知的 $\lambda = 0.5$,$\sigma \propto r^{-1/2}$。

代表性的角部角度与特征值关系如下:

形状内角 $2\alpha$Williams特征值 $\lambda$应力阶次奇异性
裂纹尖端360°0.500$r^{-0.500}$最强
凹角(90°台阶)270°0.545$r^{-0.455}$
135°钝角225°0.674$r^{-0.326}$中等
直角180°1.000$r^{0}$ (常数)
锐角<180°>1$r^{>0}$
🧑‍🎓

哦,内角180°(平直面)时 $\lambda = 1$,奇异性消失了呢。角越钝奇异性越弱,这很直观。

🎓

没错。所以在实际工作中,通过添加圆角R(倒圆)来消除角部,从而避免奇异性。但是,即使CAD模型有圆角,如果网格太粗以至于无法充分表现角部形状,数值上仍可能残留奇异性,需要注意。

网格收敛失效机制

🧑‍🎓

通常的FEM分析中,我们被教导“用三个级别的网格确认收敛性”,但有奇点时这完全不起作用吗?

🎓

准确地说,远离奇点位置的应力确实会收敛。问题在于奇点正附近的最大应力。我们来看标准FEM的误差估计式:

$$ \|u - u_h\|_{H^1(\Omega)} \leq C \, h^{\min(k,\, \lambda)} $$
🎓

这里 $k$ 是单元多项式次数,$\lambda$ 是Williams特征值。对于光滑解,$\lambda \geq k$ 时可获得 $h^k$ 的收敛率。但存在奇点时 $\lambda < 1 < k$,所以收敛率被限制在 $h^\lambda$。即使使用二次单元,也只能达到 $h^{0.545}$ 左右,而不是 $h^2$。

🧑‍🎓

提高单元次数也没用吗?!这太令人震惊了…

🎓

对于全局能量范数误差来说,并非完全没用,只是改善缓慢。但是,奇点处的应力值本身,即使提高单元次数或细化网格也不会收敛——这是本质上的局限。这不是FEM的缺陷,而是物理模型(线性弹性体的锐角角部)所具有的本质特性。

作为具体例子,展示L形截面凹角处网格收敛的典型行为:

网格尺寸 $h$ [mm]单元数角部最大应力 [MPa]距角部10mm处 [MPa]
4.01,20018582.3
2.04,80025485.1
1.019,20034886.4
0.576,80047886.8
0.25307,20065786.9
🧑‍🎓

哇,角部的最大应力从185→657MPa不断上升,而10mm外的位置从82.3→86.9MPa却很好地收敛了!这就是“远离奇点就没事”的意思吧。

🎓

正是如此。所以“用哪里的应力来评价”是奇点问题的本质。看到最大应力的云图就反射性地判断“红色区域危险!”,这在有奇点的模型中是完全错误的。

出现奇点的代表性形状

🧑‍🎓

在实际工作中容易遇到奇点的形状,具体有哪些呢?

🎓

列举一些代表性的:

  • 凹角 — L形支架、T形连接处无圆角的角部。实际工作中遭遇频率最高
  • 裂纹尖端 — 断裂力学模型中故意引入的。$\lambda = 0.5$,奇异性最强
  • 异种材料界面的端部 — 杨氏模量不同的材料接合端。称为双材料奇异性
  • 集中载荷作用点 — 点载荷、线载荷理论上接触面积为零 → 应力无限大
  • 约束条件的角部 — 固定端与自由端边界处的角。会产生数值奇异性
  • V型缺口 — 焊接焊趾端部、键槽底部等
🧑‍🎓

诶,集中载荷也会产生奇点吗?实习时经常用啊…

🎓

是的。如果用“单节点集中载荷”来替代螺栓紧固的座面或轴承的接触面,则该节点附近的应力在物理上没有意义。至少应将载荷分布到面上,或将载荷作用点附近的应力排除在评价对象之外,这是铁则。

数值解法 — 奇异性的FEM处理方法

四分之一节点单元与Barsoum法

🧑‍🎓

有奇点FEM就不行的话,那断裂力学分析是怎么做的呢?裂纹尖端本身就是奇点吧?

🎓

问得好。断裂力学中评价的不是“应力值”而是“应力强度因子 $K$”或“$J$ 积分”,所以不使用奇点处的应力值本身。但是,为了用FEM高精度求得 $K$,有一种技巧叫做四分之一节点单元

🧑‍🎓

四分之一节点单元是什么?

🎓

这是Barsoum(1976)提出的方法。在8节点四边形二次单元中,将裂纹尖端侧的中节点偏移到边的四分之一位置。这样,单元内的位移场会自然地出现 $\sqrt{r}$ 项,从而能在单元层面准确捕捉裂纹尖端的 $r^{-1/2}$ 奇异性

$$ u(r) \propto \sqrt{r} \quad \Rightarrow \quad \varepsilon = \frac{\partial u}{\partial r} \propto \frac{1}{2\sqrt{r}} \propto r^{-1/2} $$
🎓

Abaqus或Ansys中内置了在裂纹尖端周围配置这种四分之一节点单元的功能。结合后面要讲的J积分或围道积分法,就能高精度求得 $K_I, K_{II}, K_{III}$。

hp细化捕捉奇异性

🧑‍🎓

刚才听说“即使提高p次数,奇点附近的收敛率也被限制在 $h^\lambda$”,有什么改善方法吗?

🎓

hp细化是有效的。向奇点方向按几何级数(geometric grading)细化网格,同时提高单元的多项式次数。根据Babuska等人的研究,通过这种组合可以实现指数收敛

$$ \|u - u_h\|_{H^1} \leq C \, \exp(-b \sqrt[3]{N}) $$
🎓

这里 $N$ 是自由度数。与通常的h细化只能代数收敛($N^{-\lambda/d}$)相比,hp细化是指数收敛,效率极高。不过实现复杂,支持的求解器有限。StressCheck或基于p-FEM的求解器是代表例子。

应力强度因子提取方法

🧑‍🎓

从FEM中求应力强度因子 $K$ 的具体方法有哪些?

🎓

主要有三种方法:

  1. 位移外推法 — 利用裂纹尖端附近节点位移,根据 $K = \lim_{r \to 0} \sigma\sqrt{2\pi r}$ 的关系进行外推。简单但网格依赖性高
  2. J积分法(等效区域积分) — 沿围绕裂纹尖端的路径(围道)计算能量释放率 $G$。$K_I = \sqrt{E' G}$($E'$ 因平面应力/应变而异)。具有路径无关性,精度高
  3. 相互作用积分法(Interaction Integral) — 利用辅助场与实际场的J积分相互作用,单独分离提取 $K_I, K_{II}, K_{III}$。混合模式问题必备
$$ J = \int_\Gamma \left( W \, \delta_{1j} - \sigma_{ij} \frac{\partial u_i}{\partial x_1} \right) n_j \, d\Gamma $$
🧑‍🎓

J积分具有路径无关性,意思是即使在离裂纹尖端稍远的围道上计算,精度也很好吗?

🎓

正是如此。所以不使用奇点正上方的应力值,而是用稍远的多个围道的平均值来求 $J$。Abaqus中通过 *CONTOUR INTEGRAL 可以自动计算5~10个围道。越外侧的围道受网格影响越小,越稳定。

实践指南 — 如何应对应力奇点

ASME应力线性化(膜+弯曲评价)

🧑‍🎓

如果奇点附近的最大应力不能用,那压力容器的设计审查是如何判定强度的呢?

🎓

ASME锅炉及压力容器规范第VIII卷第2册规定的应力线性化(stress linearization)是行业标准。这是一种将板厚方向的应力分布分解为“膜应力 $\sigma_m$”和“弯曲应力 $\sigma_b$”的方法。

$$ \sigma_m = \frac{1}{t} \int_0^t \sigma(x) \, dx $$
$$ \sigma_b = \frac{6}{t^2} \int_0^t \sigma(x) \left(\frac{t}{2} - x\right) dx $$
🎓

这里 $t$ 是板厚,$x$ 是板厚方向坐标。膜应力是均匀拉伸截面的分量,弯曲应力是正反面符号反转的分量。奇点引起的峰值应力 $\sigma_p$(线性化后残留的非线性分布残差)被排除在一次评价对象之外

🧑‍🎓

也就是说峰值应力可以忽略吗?

🎓

在“一次应力评价”中可以忽略。但疲劳评价中峰值应力很重要。ASME Div.2 Part 5.5中,疲劳分析使用全范围应力(膜+弯曲+峰值)。此时奇点的峰值应力在物理上没有意义,因此切换到带圆角R的子模型来评价实际的应力集中才是正确做法。

🧑‍🎓

明白了!一次评价用线性化只看膜+弯曲,疲劳评价则用带圆角R的模型,连峰值一起看,对吧。

应力分类表(基于ASME Div.2 Table 5.1)
分类
関連シミュレーター

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

メッシュ収束性チェッカー J積分シミュレーター

関連する分野

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