2. 姿态描述与坐标系

姿态确定与控制系统的全部计算,都建立在“相对于谁、用什么量、按什么顺序”这三个约定之上。若坐标系定义含糊,或旋转方向的正负号约定前后不一致,后续的敏感器标定、控制律设计和仿真验证都会出现难以定位的偏差。本章先把三类常用坐标系讲清楚,再逐一说明方向余弦矩阵、欧拉角、四元数和罗德里格参数这四种姿态描述方式,并给出它们之间的转换关系与工程选用原则。

一、三类基本坐标系的定义

惯性系是不随航天器运动而转动的参考基准。工程上常用 J2000 地心惯性系:原点在地心,X 轴指向 J2000 历元平春分点,Z 轴指向该历元平北极,Y 轴按右手定则补齐。它近似惯性、便于轨道积分,但严格说仍受岁差、章动影响,高精度任务需引入历元修正。另一类常用的是轨道系,其原点在航天器质心,Z 轴指向地心(对地定向任务),X 轴沿轨道速度方向,Y 轴与轨道面法向一致,构成右手系。轨道系随轨道运动缓慢转动,角速度约为轨道角速率 n,因此它并非惯性系,而是“局部参考系”。

本体系固连于航天器,原点通常取在质心,三轴与星上主要结构或载荷基准对齐。例如某遥感卫星定义:+X 为本体飞行方向,+Z 指向对地面,+Y 与 X、Z 构成右手系并指向轨道面法向。本体系是姿态的“被描述对象”,姿态角、角速度、控制力矩都在本体系中表达。需要强调:本体系与轨道系之间的相对转动,就是通常所说的姿态;而本体系与惯性系之间的相对转动,则用于轨道—姿态耦合分析与惯性敏感器解算。

二、方向余弦矩阵

方向余弦矩阵(DCM)是最基础的姿态描述。设矢量在某坐标系中的分量为列向量,则两坐标系之间的坐标变换可写为 v_b = C_bi · v_i,其中 C_bi 的第 i 行第 j 列元素,是 b 系第 i 轴与 i 系第 j 轴夹角的余弦。DCM 是正交矩阵,满足 C^T C = I、det(C) = +1,其逆变换就是转置。绕单轴旋转 θ 的基本矩阵为:

C_x(θ) = [1, 0, 0; 0, cosθ, sinθ; 0, -sinθ, cosθ]
C_y(θ) = [cosθ, 0, -sinθ; 0, 1, 0; sinθ, 0, cosθ]
C_z(θ) = [cosθ, sinθ, 0; -sinθ, cosθ, 0; 0, 0, 1]

注意这里采用“坐标系旋转”约定:矩阵作用于矢量时,等价于把参考系绕轴转过 θ。若采用相反的“矢量旋转”约定,符号会整体取反,因此全文必须统一。DCM 的优点是变换直接、无奇异、便于串联;缺点是九个元素存在六个约束,数值积分时需正交化,否则误差会累积。

三、欧拉角

欧拉角用三次绕轴转动描述姿态,直观且便于人机交互。航天器姿态常用 3-2-1 顺序(偏航—俯仰—滚转):先绕 Z 轴转 ψ,再绕新 Y 轴转 θ,最后绕新 X 轴转 φ。对应的 DCM 为 C_bi = C_x(φ)·C_y(θ)·C_z(ψ)。其逆解为:

θ = -asin(C_bi(3,1))
φ = atan2(C_bi(3,2), C_bi(3,3))
ψ = atan2(C_bi(2,1), C_bi(1,1))

欧拉角的主要问题是万向节死锁:当 θ = ±90° 时,φ 与 ψ 的转轴重合,解不唯一。因此它适合小角度姿态显示与地面指令,不适合大角度连续积分。

四、四元数

四元数用四个参数 q = [q0, q1, q2, q3]^T 表示绕单位轴 e 转 θ 的旋转,其中 q0 = cos(θ/2),[q1,q2,q3]^T = e·sin(θ/2),且满足 q0²+q1²+q2²+q3² = 1。四元数无奇异、乘法组合方便,姿态运动学方程为 q̇ = 0.5·Ω(ω)·q,其中 ω 为本体系角速度。由 DCM 转四元数时,可用迹公式:

q0 = 0.5·sqrt(1 + C11 + C22 + C33)
q1 = (C23 - C32) / (4q0)
q2 = (C31 - C13) / (4q0)
q3 = (C12 - C21) / (4q0)

当 q0 接近零时改用最大对角元分支,避免除零。四元数存在 q 与 -q 表示同一姿态的双重覆盖,工程上通常约定 q0 ≥ 0 以保持连续性。

五、罗德里格参数

罗德里格参数(Gibbs 矢量)定义为 g = [q1,q2,q3]^T / q0 = e·tan(θ/2),用三个参数描述姿态,无冗余约束,适合某些滤波与优化算法。其缺点是 θ = ±180° 时发散,因此常配合“影子”切换或改用修正罗德里格参数(MRP)。由四元数转罗德里格参数只需一次除法;反向转换时 q0 = 1/sqrt(1+g^T g),[q1,q2,q3]^T = g·q0。

姿态描述方式及其相互转换关系 坐标系定义 惯性系:J2000,地心,近似惯性 轨道系:质心,Z 指地心,X 沿速度 本体系:固连星体,+X 飞行方向 +Z 对地,+Y 右手补齐 姿态 = 本体系相对轨道系/惯性系的转动 方向余弦矩阵 C 3×3 正交阵,无奇异,9 参数 6 约束 v_b = C_bi · v_i 欧拉角 (φ, θ, ψ) 3-2-1 顺序,直观,θ=±90° 死锁 C_bi = C_x(φ)C_y(θ)C_z(ψ) 四元数 q 4 参数,无奇异,q 与 -q 同姿态 q̇ = 0.5·Ω(ω)·q 罗德里格参数 g 3 参数,无约束,θ=±180° 发散 g = e·tan(θ/2) 核心转换路径与公式 C → 欧拉角 (3-2-1) θ = -asin(C31) φ = atan2(C32, C33) ψ = atan2(C21, C11) C → 四元数 q0 = 0.5√(1+C11+C22+C33) q1 = (C23-C32)/(4q0) q0→0 时改用最大对角元分支 四元数 → 罗德里格参数 g = [q1,q2,q3]^T / q0 反向:q0 = 1/√(1+gᵀg) [q1,q2,q3]^T = g·q0 工程选用建议 • 控制律与滤波:优先四元数(无奇异、乘法高效) • 地面显示与指令:欧拉角(直观) • 坐标变换与敏感器标定:DCM(物理意义明确) • 优化/滤波中间量:罗德里格参数或 MRP

六、转换关系与工程选用

四种描述方式可以互相转换,但转换路径的选择会影响数值稳定性。由 DCM 求欧拉角时,若 θ 接近 ±90°,应改用四元数中间量再解算;由四元数求 DCM 时,直接使用 C = (q0² - |q_v|²)I + 2q_v q_v^T - 2q0 [q_v]×,可避免逐元素展开出错。罗德里格参数与四元数的互换只需一次除法和一次开方,适合在滤波器中作为状态量,但需监测 |g| 是否过大,超过阈值时切换到影子参数。

实际工程中,姿态确定模块通常以四元数作为内部状态,敏感器测量(星敏感器、陀螺)先转换到本体系,再与轨道系或惯性系比较得到姿态误差;控制模块输出力矩在本体系表达;地面遥测与显示则把四元数转成欧拉角供操作人员判读。整个链路中,坐标系定义、旋转方向约定和四元数符号约定必须写入接口文件,并在仿真与星上软件中保持一致。建议在初版设计时就用一组已知姿态(例如 φ=10°、θ=20°、ψ=30°)做正反转换闭环校验,确认 C·C^T ≈ I、四元数模值≈1、欧拉角回代误差在 1e-6 rad 量级,再进入后续控制律设计。

约定一致性检查:全文及图示统一采用“坐标系旋转”约定,即 C_x(θ) 作用于矢量等价于参考系绕 X 轴转 θ。若某模块采用相反约定,必须在接口处显式转置,否则姿态误差会以两倍角形式出现。