4. 姿态描述与运动学

卫星姿态描述的核心任务,是用一组数学量唯一地表达星体坐标系相对于参考坐标系(通常为轨道坐标系或惯性系)的转动关系,并进一步给出这些量随时间演化的微分方程。工程上常用的四类描述方法——方向余弦矩阵、欧拉角、四元数、罗德里格参数——在参数个数、约束条件、计算代价和奇异性表现上各有取舍。理解它们的等价性与差异,是后续姿态确定、控制律设计和数值仿真的共同基础。

一、方向余弦矩阵:最直观但最冗余

设参考坐标系为 O,星体坐标系为 B。方向余弦矩阵 CBO 的第 i 行第 j 列元素,就是 B 系第 i 个基矢量在 O 系第 j 个基矢量上的投影,即两轴夹角的余弦。它把 O 系下的矢量坐标变换到 B 系:vB = CBO vO。

方向余弦矩阵是正交矩阵,满足 CTC = I,且 det(C) = +1。它没有奇异点,复合旋转直接由矩阵相乘得到,非常适合作为姿态的“基准表示”和中间量。代价是 9 个元素中只有 3 个独立,存在 6 个约束,数值积分后必须反复做正交化修正,否则会因舍入误差漂移。工程实现中常用 Gram-Schmidt 或基于四元数的重正交化来维持正交性。

二、欧拉角:物理意义明确,但存在万向节死锁

欧拉角把任意转动分解为绕三个轴的依次旋转。航天器姿态分析中常用 3-1-2 或 3-2-1 顺序,例如偏航 ψ、俯仰 θ、滚转 φ 的 3-2-1 序列,其方向余弦矩阵为:

C_BO = Rz(ψ) · Ry(θ) · Rx(φ)

     [ cψcθ   cψsθsφ - sψcφ   cψsθcφ + sψsφ ]
   = [ sψcθ   sψsθsφ + cψcφ   sψsθcφ - cψsφ ]
     [ -sθ    cθsφ            cθcφ            ]

其中 c、s 分别代表 cos、sin。欧拉角只有 3 个参数,直观易读,便于地面操作人员理解“卫星现在朝哪偏”。但它有两个致命问题:一是三角函数运算量大;二是当中间角 θ = ±90° 时,第一角和第三角绕同一轴旋转,出现万向节死锁(gimbal lock),此时无法从矩阵唯一反解出 ψ 和 φ,姿态解算出现奇异。因此欧拉角适合小角度或人机交互显示,不适合作为大角度机动的内部积分状态。

三、四元数:工程首选的无奇异表示

四元数用 4 个参数描述转动:q = [q0, q1, q2, q3]T,其中 q0 为标量部,后三者为矢量部。它与转轴 e 和转角 Φ 的关系为:

q0 = cos(Φ/2)
[q1,q2,q3]^T = e · sin(Φ/2)

四元数满足归一化约束 q02 + q12 + q22 + q32 = 1,只有 3 个独立自由度。其最大优势是:不存在奇异姿态,任意转动都能用有限四元数表示;运动学方程为双线性形式,不含三角函数,计算效率高;姿态复合对应四元数乘法,便于级联。缺点是符号二义性(q 与 −q 表示同一姿态),需要在控制中做符号连续化处理,避免“翻转”导致执行机构抖动。

四、罗德里格参数:少一个参数,多一个奇异点

罗德里格参数(Gibbs 矢量)由四元数矢量部除以标量部得到:g = [q1, q2, q3]T / q0 = e tan(Φ/2)。它只有 3 个参数,且运动学方程是二次型,比四元数更紧凑。但当 Φ → ±180° 时,tan(Φ/2) → ∞,出现奇异。因此罗德里格参数适合表示转角小于 180° 的机动,或作为误差姿态的局部线性化变量。为覆盖全姿态,工程上常采用“切换策略”:当转角接近 180° 时切换到影子罗德里格参数(shadow parameters)或改用四元数。

四类姿态描述的参数空间与奇异特性对比 方向余弦矩阵 C 参数:9 个 独立:3 个 约束:CᵀC = I 奇异:无 优点:无奇异、可级联 缺点:冗余、需正交化 适用:基准表示、中间量 欧拉角 (ψ, θ, φ) 参数:3 个 独立:3 个 约束:无 奇异:θ = ±90° 优点:直观、易读 缺点:万向节死锁 适用:小角度、人机显示 四元数 q 参数:4 个 独立:3 个 约束:‖q‖ = 1 奇异:无 优点:无奇异、双线性 缺点:符号二义性 适用:工程首选、积分状态 罗德里格参数 g 参数:3 个 独立:3 个 约束:无 奇异:Φ = ±180° 优点:最紧凑、二次型 缺点:大角度奇异 适用:小转角、误差线性化 四类表示之间的等价转换关系 方向余弦矩阵 四元数 欧拉角 罗德里格参数 q₀=½√(1+trC) 反解三角函数 g = q_vec / q₀ Φ = 2 arctan‖g‖ ⚠ 欧拉角 θ=±90° 死锁 ⚠ 罗德里格 Φ=±180° 发散 切换

五、姿态运动学方程与奇异性分析

姿态运动学方程描述姿态参数随角速度的演化。设星体角速度在星体系下为 ω = [ωx, ωy, ωz]T,则四元数运动学方程为:

dq/dt = ½ · Ω(ω) · q

Ω(ω) = [ 0    -ωx  -ωy  -ωz ]
       [ ωx    0    ωz  -ωy ]
       [ ωy   -ωz   0    ωx ]
       [ ωz    ωy  -ωx   0  ]

该方程不含三角函数,且对任意 ω 都无奇异,是星载软件中最常用的积分形式。数值积分时通常采用四阶 Runge-Kutta,并在每步后对四元数做归一化:q ← q/‖q‖,以抑制范数漂移。

欧拉角运动学方程则依赖具体旋转顺序。以 3-2-1 为例:

[φ̇]   [1  sinφ·tanθ   cosφ·tanθ] [ωx]
[θ̇] = [0   cosφ        -sinφ     ] [ωy]
[ψ̇]   [0  sinφ/cosθ   cosφ/cosθ ] [ωz]

当 θ = ±90° 时,tanθ 和 1/cosθ 发散,方程出现奇异,这正是万向节死锁在运动学层面的体现。罗德里格参数的运动学方程为 ġ = ½[I + G + ggT]ω,其中 G 为 g 的反对称矩阵;当 ‖g‖ → ∞ 时同样发散。

六、工程选型与实现建议

综合来看,星载姿态确定与控制内部状态优先采用四元数:无奇异、计算量小、便于误差四元数反馈。方向余弦矩阵用于坐标系变换和敏感器/执行机构安装矩阵的复合。欧拉角仅用于地面显示、任务规划和小角度线性化。罗德里格参数适合作为误差姿态的局部变量,在接近 180° 机动时切换到影子参数或四元数。

实现要点:四元数积分后必须归一化;四元数符号需保持连续(若 q·qprev < 0,则取 −q);欧拉角反解需根据 θ 所在象限选择正确的 atan2 分支;罗德里格参数在 ‖g‖ 超过阈值(如 1.0,对应 Φ ≈ 90°)时切换表示,避免数值爆炸。
常见误区:把欧拉角当作无约束的 3 个独立参数直接积分,在大角度机动时会遇到死锁;把四元数当作普通 4 维向量做线性插值,会破坏单位范数约束,导致姿态误差。正确做法是使用球面线性插值(SLERP)或归一化线性插值(NLERP)并重新归一化。

下表给出四类表示在典型星载场景下的选型参考:

表示方法 参数数 奇异条件 典型用途
方向余弦矩阵 9(3 独立) 无 坐标变换、安装矩阵复合
欧拉角 3 θ = ±90° 地面显示、小角度线性化
四元数 4(3 独立) 无 星载积分状态、误差反馈
罗德里格参数 3 Φ = ±180° 小转角误差、局部线性化

掌握这四类表示的转换关系与奇异边界,才能在姿态确定滤波器和控制律中做出正确的状态选择,并在数值实现中规避死锁与发散风险。