把位置约束求两次导数,可以算出反作用力,却也会丢掉两个积分常数。求解器若只推进加速度层,微小的初始位置和速度误差便可能变成长期漂移。Baumgarte方法保留已经偏离了多少、偏离得多快这两项信息,再把它们反馈给加速度。
形式陈述
在独立位置约束附近定义反馈
取常对称正定矩阵 M ∈ R d × d 、光滑外力 F ( t , q , v ) 及光滑约束 g : U → R m ,其中 U ⊂ R d 开、1 ≤ m ≤ d 。假设 G ( q ) = D g ( q ) 在所讨论邻域满行秩。原位置约束DAE 理路 微分代数方程与一致初值 Differential-algebraic equation · DAE · 微分代数系统 将隐式微分关系、代数约束和一致初值放在同一模型中,以可逆代数偏导块证明局部可解性,并验证后向Euler的邻近分支和约束残差。 是
(1) q ′ = v , M v ′ = F − G T λ , g ( q ) = 0. 记
H ( q , v ) = D 2 g ( q ) [ v , v ] , W ( q ) = G M − 1 G T . H 是一个 m 维向量,其第 i 项为 v T D 2 g i ( q ) v 。取常数 α > 0 , β > 0 ,将乘子定义为
(2) λ = W − 1 ( G M − 1 F + H + 2 α G v + β 2 g ) . 式(2)与前两条运动方程组成Baumgarte稳定化系统 。它在约束面附近有定义,也允许从轻微偏离 g = 0 的状态开始。这里并没有继续另加一个不相容的代数要求 g ( q ) = 0 。
连续残差的精确合同
沿稳定化系统的任意经典解,令 e ( t ) = g ( q ( t ) ) ,则
(3) e ″ + 2 α e ′ + β 2 e = 0. 因此,在解存在且约束保持独立的时间段内,残差按这个常系数方程演化。如果 e ( 0 ) = e ′ ( 0 ) = 0 ,则 e 恒为零,稳定化轨道也是原约束系统的轨道。
若初值不相容,反馈使残差趋零的结论需要轨道一直存在于有效区域;它不会将非零初始残差立即改成零,也不能使该初值成为原DAE的一致初值。
直觉
为什么这个乘子能控制漂移
由于 G 满行秩,任意非零 a ∈ R m 都有 G T a ≠ 0 。由正定性 理路 正定与半正定矩阵 Positive definite matrix · Positive semidefinite matrix · PSD matrix 由二次能量严格为正或非负定义的实对称与复 Hermitian 矩阵。 ,
a T W a = ( G T a ) T M − 1 ( G T a ) > 0 , 所以 W 可逆,式(2)确实唯一确定乘子。链式法则给
e ′ = G v , e ″ = G v ′ + H = G M − 1 F − W λ + H . 代入式(2),所有原动力项抵消,剩下式(3)。这说明两个反馈项的符号为什么必须是当前约定中的正号;若动力方程改用 + G T λ ,乘子的符号也要一起改变。
不加反馈时只规定 e ″ = 0 ,会留下 e ( t ) = e ( 0 ) + t e ′ ( 0 ) 。加入 2 α e ′ 抑制残差变化,加入 β 2 e 消除静态偏差,两者负责的错误不同。
衰减来自哪里
对每个残差分量,特征根是
− α ± α 2 − β 2 . 当 α , β > 0 时,两根实部都严格为负:实根情形有 α 2 − β 2 < α ,共轭根情形实部就是 − α 。由常系数线性ODE 理路 线性常微分方程组 Linear system of ordinary differential equations 形如 x′=A(t)x+b(t) 的向量值一阶线性方程组。 的解形式,残差与残差速度均衰减;重根时还会乘一次多项式因子。
α = 0 , β > 0 只给振荡,β = 0 , α > 0 允许非零常数残差。因此“至少放一个很大的反馈系数”并不是两类漂移都消失的条件。
一致初值为何保留原轨道
如果 g ( q 0 ) = 0 且 G ( q 0 ) v 0 = 0 ,式(3)的零初值唯一解就是零。此时反馈项在整个轨道上消失,式(2)退回原系统由二阶隐藏约束确定的乘子。反过来,原系统的每条光滑轨道也满足稳定化系统。
这个等价只针对相容初值和同一有效邻域。约束梯度失秩、解逃离邻域或发生有限时间爆破时,线性残差方程不能单独保证物理轨道继续存在。
例子与边界
临界阻尼给出直接可用的误差界
取 α = β = ω > 0 。更一般地,对一个实际 C 2 位置曲线 q ,令 v = q ′ ,并定义它的约束方程缺陷为
(4) η = e ″ + 2 ω e ′ + ω 2 e . 在 0 ≤ t ≤ T 上,常数变易得到
(5) e ( t ) = [ e 0 + ( w 0 + ω e 0 ) t ] e − ω t + ∫ 0 t ( t − s ) e − ω ( t − s ) η ( s ) d s , w 0 = e ′ ( 0 ) . 它可以直接求两次导数并代回式(4)检查,不需要把计算出的轨道先当成精确解。
对任意向量范数,若 sup [ 0 , T ] ‖ η ‖ ≤ δ ,则
(6) ‖ e ( t ) ‖ ≤ ( ‖ e 0 ‖ + t ‖ w 0 + ω e 0 ‖ ) e − ω t + δ ω 2 [ 1 − ( 1 + ω t ) e − ω t ] . 最后一项来自非负核的准确积分。若该缺陷界在所有正时间成立,相同公式给全时间界;若只在 [ 0 , T ] 核验,就只在该窗使用。再用 t e − ω t ≤ 1 / ( e ω ) 可得较粗的统一界
(7) ‖ e ( t ) ‖ ≤ ‖ e 0 ‖ + ‖ w 0 + ω e 0 ‖ e ω + δ ω 2 . 例如 e 0 = 1 / 100 、w 0 = 0 、ω = 2 、缺陷恒为 η = 1 / 250 时,
(8) e ( t ) = 1 1000 + 9 1000 ( 1 + 2 t ) e − 2 t . 极限为 1 / 1000 ,准确达到持续缺陷的静态尺度 δ / ω 2 。稳定并不等于误差最后必为零。
增大反馈会给显式步长增加限制
先只看线性残差测试系统
(9) d d t ( e w ) = B ( e w ) , B = ( 0 1 − ω 2 − 2 ω ) . 对它使用显式Euler,更新矩阵是 R = I + h B ,其双特征值为 r = 1 − h ω 。由绝对稳定域 理路 ODE 方法的绝对稳定域 Absolute stability region · Region of absolute stability 以标量衰减测试方程的放大因子定义一步法稳定域,并区分 A-stability、L-stability、精度与其他稳定概念。 ,严格衰减要求
(10) 0 < h ω < 2. 重根还要检查Jordan因子。写 C = B + ω I ,有 C 2 = 0 且 C ≠ 0 ,于是对 r ≠ 0 、整数 n ≥ 1 ,
(11) R n = r n I + n h r n − 1 C . 当 | r | < 1 ,两项都趋零;r = 0 时直接有 R 2 = 0 。边界 h ω = 2 给 r = − 1 ,对满足 C u 0 ≠ 0 的初值出现线性增长;超过边界时可沿特征方向指数增长。连续方程越来越快的衰减,可能在固定显式步长下变成数值不稳定。
这个二阶测试只诊断反馈引入的快尺度,不独自证明完整非线性机械离散法稳定。特别是,对 q , v 作一步Euler后再算非线性 g ( q ) ,所得残差一般不等于直接对式(9)做Euler。
图片加载失败 左图的零缺陷连续解展示反馈对初始漂移的修正;右图固定残差初态,用步数比较三个归一化步长,边界重根仍会增长。两侧计算对象不同,右图没有将非线性位置残差直接当成线性Euler递推。
精确连续约束也不等于逐步精确约束
取 g ( q ) = ( ‖ q ‖ 2 − 1 ) / 2 ,一步位置更新 q + = q + h v 给
(12) g ( q + ) = g ( q ) + h G ( q ) v + h 2 2 ‖ v ‖ 2 . 即使当前 g ( q ) = G ( q ) v = 0 ,只要 v ≠ 0 ,该显式位置步仍会离开圆面。这与式(3)的连续结论没有矛盾:离散点并不是该微分方程的精确轨道。
RATTLE 理路 RATTLE 约束积分器 RATTLE algorithm 用两次乘子求解分别保持位置约束和切向动量,完整核验单位圆上的一个约束积分步。 在步内另求位置与切向动量约束。Baumgarte反馈本身没有这两次投影,也不自动获得保辛、保能量或逐步零约束误差。
推论与应用
将反馈装进一个可核验的乘子求解
一次加速度评值可直接解
(13) ( M G T G 0 ) ( a λ ) = ( F − H − 2 α G v − β 2 g ) . 消去 a = M − 1 ( F − G T λ ) ,就恢复式(2)。验证程序应同时记录这两行残差,以及位置残差 g 和速度残差 G v 。
对满足 q ′ = v 的光滑候选曲线,若第二行残差定义为
r 2 = G v ′ + H + 2 α G v + β 2 g , 那么 r 2 就是式(4)的 η ,可直接进入式(6)。仅知道动力第一行残差小,并不能控制 η 。若插值曲线还不满足 q ′ = v ,链式法则会多出运动学缺陷项,必须先把它们算入;不能把任意离散求解器的一项残差直接冒充连续误差证书。
稠密常质量矩阵可以预分解。一次评值形成 W 、应用质量矩阵逆并解 m 维正定系统;朴素稠密算术成本为 O ( d 2 m + d m 2 + m 3 ) ,另加 F , G , H 的评值。这里应用预分解的逆指三角求解,不要求显式储存 M − 1 。约束接近相关时,W 会病态,反馈系数调大不能恢复丢失的独立约束。
从连续容差走到离散设置
先声明约束和速度残差采用的单位及尺度,再按允许的衰减时间选 α , β 。临界阻尼下,式(6)把初始偏差、持续缺陷和时间窗分开;随后检查积分器能否解析 1 / ω 这一快尺度。
最终验收应交出原初值是否一致、反馈方程是否被正确实现、离散步长是否稳定,以及实际位置/速度约束误差各有多大。四个判断分别需要证据,不能由一次成功的乘子线性求解代替。
参考资料