截断误差 — CAE术语解释

分类:术语表 | 2026-01-15

截断误差的理论基础

截断误差的基本概念

🙋

经常听到"截断误差"这个词,具体是通过"截断"什么而产生的误差呢?

🎓

是指无限持续的数学运算在有限步骤停止时产生的误差。例如,考虑函数的泰勒展开。在x=0周围展开sin(x)时,

$$ \sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots $$
在计算机上计算时,如果在第三项处"截断"这个无限级数,我们得到
$$ \sin(x) \approx x - \frac{x^3}{6} $$
这个近似式。近似值与真实值之间的差异就是截断误差。

🙋

那么在CAE的世界里,有哪些"无限运算"经常被截断呢?

🎓

主要有三个方面。第一是函数近似(如形状函数)。第二是迭代求解器的收敛判定。例如使用共轭梯度法时,当残差范数低于1e-6就停止计算,但真实解与该解的差可能仍大于1e-6。第三是时间积分。在过渡分析中,下一时间步的状态通过当前状态的级数展开来预测,但这个展开被截断为有限次。

🙋

截断误差和"离散化误差"有什么不同?两者都是由近似引起的误差吧。

🎓

很好的观察。离散化误差是指将连续体(微分方程)用离散点(网格)表示的整个过程中产生的误差总称。而截断误差是该离散化过程中"特定数学近似运算"引起的误差分量。例如在有限差分法中用中心差分近似一阶导数时,

$$ f'(x) \approx \frac{f(x+h)-f(x-h)}{2h} $$
这个近似是通过泰勒展开在第三项处截断得出的。其中包含的误差就是截断误差,其阶次为
$$ O(h^2) $$

截断误差的数值计算方法

求解器中截断误差的发生位置

🙋

在实际的CAE求解器内部,截断误差是如何被控制的?

🎓

主要分两个阶段。第一阶段是单元定式化。使用二阶单元相比一阶单元考虑更多高阶项,所以形状函数的截断误差更小。第二阶段是线性方程组求解。Ansys Mechanical的默认直接法求解器(稀疏直接求解器)中截断误差几乎可以忽略,但在使用迭代法求解器(PCG法)时,"收敛准则"就成了截断误差的来源。残差为1e-8时比1e-4时的收敛准则更严格,所以截断误差会更小。

🙋

在过渡分析的时间积分中,例如Newmark法或Runge-Kutta法,截断误差是如何被控制的?

🎓

通过时间积分方案本身的"阶次"和"时间步长"来控制。例如,显式欧拉法是一阶精度,四阶Runge-Kutta法是四阶精度。在相同的时间步长Δt=0.001秒下,后者的截断误差远小于前者。实际应用中采用自动时间步长控制。Abaqus/Explicit的动态分析中,会估计某一步的截断误差,如果超过允许误差(默认约5e-3),就缩小步长,然后重复这个过程。

🙋

在非线性分析的平衡迭代(Newton-Raphson法)中,收敛判定是否也与截断误差相关?

🎓

完全相关。迭代求解非线性方程时,当力的残差或位移修正量低于收敛准则(例:力残差1e-2,修正量1e-5)时停止迭代。这就是截断误差。在Marc或Abaqus/Standard中,如果准则设得过严会导致计算成本爆炸,过松则有收敛到物理上不正确解的风险。在接触问题中,默认的1e-2通常不够,常常需要降低到1e-3。

截断误差的实务应用

考虑截断误差的分析设置

🙋

在实际分析设置中,哪些参数需要考虑截断误差来调整?有没有检查清单?

🎓

有的,需要检查以下四点:

1. 单元阶次:应力梯度大的部分使用二阶单元(或高阶单元)。一阶单元的位移场截断误差较大。 2. 求解器收敛准则:使用迭代法求解器时,将残差准则(如RRTOL)从默认值(1e-4)根据需要调严到1e-6等。 3. 时间积分设置:过渡分析中,根据问题调整允许误差(如HHT-α法的EPS)或最小/最大时间步。 4. 非线性收敛准则:力残差(CNORM)、位移修正量等准则值。特别要注意接触和塑性问题。

🙋

收敛准则调严会增加计算时间。怎样判断要调到什么程度?

🎓

"灵敏度分析"是一个方法。例如,将力残差准则改为1e-2、1e-3、1e-4三个值分别运算,观察关注的最大应力或位移变化多少。如果变化在1%以内,说明这个准则是"实际上足够"的。在某个汽车部件的疲劳分析中,残差从1e-2改到1e-3时应力变化了5%,所以采用了1e-3。这是成本与精度权衡的问题。

🙋

如果已经确认了"网格收敛",即网格细化后结果不变,改变求解器收敛准则还会引起结果变化吗?

🎓

这是一个常见的陷阱。会的。网格收敛只验证了"离散化误差"的下降,并不意味着求解器截断误差无关。在非线性分析中,粗网格也能在非常严格的求解器准则(1e-8)下"收敛",但那只是收敛到该粗网格能表达的"不精确解"。反过来,超细网格在宽松准则(1e-1)下,截断误差过大,可能偏离正确解。两个误差来源必须分别评估。

截断误差的软件比较

各软件中截断误差的处理

🙋

Ansys、Abaqus、COMSOL等主流软件中,与截断误差相关的设置名称和默认值有区别吗?

🎓

差异很大。

Ansys Mechanical:非线性收敛准则叫"Force Convergence"和"Momentum Convergence",值为默认0.5%。求解器残差通过"Solver Tolerance"设置,迭代法求解器(PCG)默认1e-4。 Abaqus/Standard:收敛判定为"力残差"和"修正量",默认分别为"时间平均力"的0.5%和"时间平均位移修正量"的1%。值相对间接。 COMSOL:用"相对容限"参数统一控制精度(默认1e-3),这成为时间积分和非线性求解器收敛准则的基础。

🙋

在CFD软件(Fluent、Star-CCM+)中,什么样的截断误差比较关键?

🎓

在Fluent和Star-CCM+等CFD软件中,"离散化方案"的选择决定了截断误差的大小。例如,移流项的一阶迎风差分会产生强数值扩散(截断误差大),而二阶迎风或QUICK方案精度更高。此外,压力-速度耦合的迭代求解器(SIMPLE、PISO)的收敛准则(连续性、动量、能量残差)也是截断误差源。Fluent的默认收敛准则是1e-3,但涉及热传递或化学反应时常需要降低到1e-6。

🙋

免费和开源CAE软件(CalculiX、OpenFOAM)的这些设置如何?

🎓

需要用户更深入地设置。CalculiX(类似Abaqus的FEM)在输入文件(.inp)的*CONTROLS参数中直接设置"cnorm"和"cnormm"。默认值往往不明确,需要查手册。OpenFOAM中,`fvSolution`文件内各方程的求解器设置(`tolerance`和`relTol`)、以及`PIMPLE`或`SIMPLE`字典中的收敛准则(`residualControl`)起这个作用。商用软件相比,开源软件的"黑箱度"更低,要求使用者对截断误差控制有更深理解。

截断误差的故障排查

由截断误差引起的分析问题

🙋

沿用默认收敛准则,实际上出过问题的例子吗?

🎓

有不少。一个例子是橡胶材料的大变形分析(使用Abaqus)。默认收敛准则(0.5%)让迭代很快停止,看起来收敛了,但局部接触压力实际上比真实值低了20%以上。把准则改严到0.1%后,迭代次数增加但结果与试验数据很吻合。那时是太大的截断误差导致了收敛到"虚假解"。

🙋

反过来,如果把收敛准则设得太严(1e-8之类),会有什么弊端或风险?

🎓

主要两个问题。第一,计算时间浪费。在网格离散化误差达1%的情况下,把求解器截断误差降到1e-8也提不了整体精度。第二,数值噪声导致"收敛失败"风险。特别是接触问题,细微振动可能永远无法满足极严的收敛准则,分析停止。Ansys中这种情况可用"双线性阻尼"等收敛辅助功能,但根本上还是要重新审视准则。

🙋

检查结果有效性时,如果怀疑是截断误差导致结果有问题,最先该查什么?

🎓

先看求解器输出日志,检查"最终残差范数"和"收敛历史",看是否在准则边界停止了。其次,做参数研究,把收敛准则调严一级(例1e-3→1e-4)重新计算。如果结果大幅变化,说明原设置的截断误差不可忽视。还可以稍微改变网格(同样大小重新生成),看结果是否不稳定。截断误差主导时,往往对网格细节变化敏感。

本文的评价
谢谢您的回答!
有帮助
更详细
报告错误
有帮助
0
更详细
0
报告错误
0
撰写者 NovaSolver贡献者
匿名工程师与AI — 网站地图
查看个人资料