做显式动力学分析时,很多人都遇到过一个问题。模型算到一半,发现要跑好几天才能跑完。这时候,有人告诉你:"用质量缩放啊,可以加速计算。"你一试,果然快了好几倍。
但质量缩放到底在干什么?它为什么会加速?又为什么"加速"的同时,结果的"可信度"也要打折扣?这篇文章从原理出发,把质量缩放背后的物理逻辑讲清楚。
要理解质量缩放,先得理解Abaqus/Explicit为什么有那么严格的时间步约束。这个约束的根源是中心差分法的稳定性条件,也就是CFL条件。
显式求解的核心思想是用当前时刻和上一时刻的位移"显式"地推导下一时刻的位移。这套算法简单、并行友好,但它有一个硬性要求:时间步长不能超过某个上限,否则数值会发散。这个上限就是稳定时间增量:
Δtstable ≤ Lmin / cd
其中 Lmin 是最小单元的特征长度,cd 是材料的膨胀波速(Dilatational Wave Speed)。
本质上就是:一个时间步内,扰动传播的距离不能超过最小单元的尺寸。否则下一时刻计算时,相邻单元之间"信息来不及传到",算法就会失稳。
把这个公式展开看,波速的来源更清楚:
cd = √((λ + 2μ) / ρ)
其中 λ 和 μ 是 Lamé 常数,ρ 是材料密度。稳定时间增量由两个因素决定:单元尺寸和材料波速。单元越小、波速越高,时间步越小。一个 0.1mm 的钢单元,稳定时间增量约为 2×10−8 秒,1ms 的冲击过程要算 5 万步。
质量缩放的"加速"逻辑很简单:人为增大密度 ρ,让波速 cd 降低,稳定时间增量放大。但这只是表象。真正要问的是:密度变了,动力学方程本身被改写了吗?

显式求解器解的是这个方程:
M · a = Fext − Fint
M 是质量矩阵,a 是加速度向量,Fext 是外力向量,Fint 是内力向量。质量缩放直接改写的是 M:把对角元素乘以一个缩放系数,等价于人为地给每个节点(或单元)"加重"。这个改写带来了三个层面的影响:
● 时间步变长(这是想要的)
波速 cd = √(E/ρ) 中的 ρ 变大,cd 变小,Δtstable = Lmin / cd 变大,步数变少,计算变快。
● 惯性力变了(这是代价)
动力学方程左边是 M·a,质量变大了,同样的加速度下,惯性力 F = M·a 变大了。在显式动力学里,惯性力是平衡外力的核心机制之一,质量被人为改写,惯性响应就被人为改写了。
● 能量平衡被打破(这是本质)
动能 KE = ½ · M · v²,质量放大 10 倍,动能也近似放大 10 倍。如果原本动能只占内能 1%(准静态),现在可能变成 10%(动态),问题性质就变了。
换句话说:你不是在"加速计算",而是在"换一个物理问题求解"。新问题的惯性更大、动能更高、加速度响应被压制,已经不是原来的问题了。
把质量缩放的影响拆开看,对几个关键物理量的影响是这样的:
● 波速
cd = √(E/ρ),ρ 放大 N 倍,cd 缩小 √N 倍。这意味着应力波在结构中的传播速度变慢。如果关心的是波传播时间(比如超声检测、动态断裂),时间轴整体被压缩,结果完全失真。
● 惯性力
F = m·a,质量放大 N 倍,惯性力放大 N 倍。在碰撞、冲击问题中,惯性力是主要承载机制之一,人为放大惯性力,会高估结构的"抗冲击"能力。
● 动能
KE = ½ · m · v²,质量放大 N 倍,动能放大 N 倍。一般情况下,质量放大后速度响应会被压制(加速度小了),但稳态的动能仍然会被放大。
● 固有频率
f = (1/2π) · √(k/m),质量放大 N 倍,频率缩小 √N 倍。如果做模态分析,频率结果完全错误。质量缩放对低频响应问题尤其敏感。
● 动量
p = m·v,质量放大 N 倍,动量放大 N 倍。如果问题涉及动量守恒的物理过程(比如碰撞后的反弹速度),结果不可信。

本质上就是:质量缩放不是"只动时间步",而是同时改写了惯性、能量、频率、动量等多个物理量。每一个被改写的物理量,在不同问题中的重要性不同,准静态问题中惯性本来就不重要,影响小;动态问题中惯性就是核心,影响大。
质量缩放系数(Density Scale Factor)和时间步长的关系不是线性的,这点容易踩坑:
Δtstable = Lmin / √(E / (ρ · s))
其中 s 是质量缩放系数(s ≥ 1)。展开得到:
Δtstable = Lmin · √(ρ · s / E) = Δtoriginal · √s
缩放系数 s=4,时间步放大 2 倍;s=100,时间步放大 10 倍;s=10000,时间步放大 100 倍。质量缩放系数和计算时间的"杠杆"是对数关系。从 s=1 到 s=100,计算时间能缩短到 1/10;但从 s=100 到 s=10000,同样缩小 10 倍,但 s=10000 时的物理失真已经不可接受。

换句话说:前期缩放(s=1 到 s=10)收益高、代价小;后期缩放(s=100 以上)收益递减、代价激增。合适的缩放系数,往往在 s=2 到 s=20 之间,再往上加就要谨慎验证了。
特别提醒:质量缩放系数越高,物理失真越严重。盲目追求"快"而忽略"准",是质量缩放最常见的误区。
从能量角度看质量缩放,更能看清它的物理代价。显式动力学求解过程中,能量平衡是核心监控项:
ALLKE + ALLIE + ALLSE + ALLVD + ALLHF + ALLMW = ALLWK
各项含义如下:ALLKE 是动能,与 M·v² 相关,质量缩放直接影响这一项;ALLIE 是内能,包含弹性应变能 ALLSE、粘性耗散 ALLVD 等;ALLMW(Mass Scaling Work)是质量缩放引入的附加质量做的功,它不为零就说明物理问题被改写了;ALLHF 是沙漏能;ALLWK 是外力做的功。
对于准静态问题,动能 ALLKE 应控制在内能 ALLIE 的 1%~5% 以内。如果质量缩放引入了过多附加质量,ALLKE 会显著上升,能量平衡被打破,问题的物理性质就从"准静态"漂移到"动态"。一个更直接的指标是 ALLMW 占总能量的比值,如果超过 5%,说明质量缩放已经显著改变了问题本质,结果只能作为定性参考。
质量缩放的原理可以归纳为一句话:通过人为增大密度,降低波速,放大时间步长。这个操作的本质是改写动力学方程的质量矩阵,进而改写惯性力、动能、固有频率等多个物理量。
★ 关键原理
✓ 显式求解的时间步约束源于 CFL 条件:Δt ≤ Lmin / cd
✓ 质量缩放通过改写质量矩阵 M 放大时间步
✓ 同时改写了惯性力、动能、固有频率、动量
✓ 质量缩放系数 s 与时间步成 √s 关系,前期收益高后期代价大
✓ 能量监控(ALLKE/ALLIE、ALLMW)是评估失真程度的核心
本质上就是:质量缩放是在"换物理问题"换"算得快",原理上必须接受这个代价。