2. 姿态描述基础:欧拉角、方向余弦矩阵、四元数的定义、转换关系及适用场景

姿态控制环路设计的第一个核心问题,是如何在数学上“不失真”地描述一个刚体在三维空间中的朝向。无论是卫星的喷气推进、无人机的舵面偏转,还是云台电机的力矩补偿,控制律计算的都是“当前姿态”与“目标姿态”之间的误差。如果姿态描述方式选择不当,轻则引入不必要的计算开销,重则导致控制律在特定姿态下出现奇异(如万向节锁)或数值发散。本章将系统梳理三种主流姿态描述方法——欧拉角、方向余弦矩阵(DCM)和四元数,从定义、转换关系到工程适用场景,为后续控制律设计打下坚实的数学基础。

姿态描述方法对比与转换关系 欧拉角 (Φ,θ,Ψ) 3个角度参数 直观但存在奇异 旋转顺序敏感 适用:飞行显示、 小角度姿态控制 方向余弦矩阵 DCM 3×3正交矩阵 无奇异,全局描述 9个参数,冗余 适用:惯性导航、 坐标变换矩阵 四元数 q 4个参数 (w,x,y,z) 无奇异,紧凑 适合插值与融合 适用:姿态控制、 卡尔曼滤波、SLAM 矩阵化 提取 相互转换 关键特性对比 特性 欧拉角 DCM 四元数 参数个数 3 9 4 奇异问题 有(万向节锁) 无 无 计算效率 高 低(冗余) 高 物理直观性 强 弱 中等

上图从工程视角对比了三种姿态描述方法的核心属性。欧拉角以三个绕轴旋转角度描述姿态,物理意义最直观;DCM以3×3正交矩阵描述姿态,适合坐标变换但参数冗余;四元数用四个参数构成超复数,在无奇异性和计算效率之间取得了最佳平衡。下面逐一展开其数学定义与工程要点。

2.1 欧拉角:直观但需警惕万向节锁

核心原理

欧拉角的基本思想是将任意姿态分解为依次绕三个正交轴的旋转。以航空航天常用的Z-Y-X(偏航-俯仰-滚转)顺序为例,设机体坐标系依次绕惯性系的Z轴旋转偏航角ψ,再绕新的Y轴旋转俯仰角θ,最后绕新的X轴旋转滚转角φ。旋转矩阵可表示为:

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

其中每个基本旋转矩阵均为标准正交矩阵。欧拉角的优势在于参数少、物理意义明确,飞行员或调试工程师可以直接从数值判断当前姿态的“大致朝向”。

判断方法与工程陷阱

欧拉角最著名的缺陷是万向节锁(Gimbal Lock)。当俯仰角θ接近±90°时,第一次和第三次旋转的轴重合,系统丢失一个旋转自由度,导致姿态解算出现奇异。例如,当θ=90°时,偏航和滚转无法独立区分,控制律会输出不稳定的力矩指令。此外,欧拉角微分方程包含三角函数除法项,在接近奇异点时数值趋于无穷大,不适合用于全姿态飞行控制。

风险提示:在姿态控制环路中,若直接使用欧拉角作为状态量,必须限制俯仰角范围(如±80°),否则控制律可能因奇异而发散。对于需要全姿态机动(如倒飞、垂直爬升)的飞行器,应避免使用欧拉角作为控制状态。

适用场景

  • 地面显示与人工监控:飞行数据记录、地面站姿态显示,人眼对角度最敏感。
  • 小角度姿态控制:如固定翼平飞、卫星对地定向,姿态角变化范围小,奇异风险低。
  • 初始对准与标定:传感器安装误差标定、IMU初始姿态确定。

2.2 方向余弦矩阵(DCM):全局无奇异但计算冗余

核心原理

方向余弦矩阵是一个3×3的正交矩阵,其元素表示两个坐标系基向量之间的夹角余弦。设机体坐标系b到惯性系i的变换矩阵为Cbi,则任意向量在惯性系中的投影为vi = Cbi · vb。DCM的9个元素并非独立,需满足正交性约束(C·CT=I)和行列式为+1的条件。

DCM的微分方程为:

dC/dt = C · [ω]×

其中[ω]×为机体角速度的反对称矩阵。该方程是线性的,不存在奇异点,因此DCM可以全局描述姿态。

工程应用与数值漂移

DCM在惯性导航中应用广泛,因为坐标变换矩阵本身就是DCM,无需额外转换。但直接积分DCM会导致9个参数逐渐偏离正交性,需要定期进行正交化修正(如Gram-Schmidt正交化)。这增加了计算负担,且修正过程可能引入微小误差。

特性欧拉角DCM四元数
参数个数394
奇异问题有(万向节锁)无无
微分方程复杂度含三角函数除法线性,但需正交化线性,无约束
计算量(单次更新)约15次浮点运算约45次浮点运算约20次浮点运算
物理直观性强弱中等
典型应用显示、小角度控制捷联惯导、坐标变换控制律、滤波融合

适用场景

  • 捷联惯性导航系统:需要频繁进行坐标系变换,DCM直接作为变换矩阵。
  • 多传感器融合:当需要将不同传感器(GPS、磁力计)的测量值统一到同一坐标系时。
  • 教学与理论推导:DCM的物理意义清晰,适合理解旋转的数学本质。

2.3 四元数:控制律设计的首选

核心原理

四元数由1个实部w和3个虚部(x,y,z)组成,可表示为q = w + xi + yj + zk,其中i²=j²=k²=ijk=-1。单位四元数(||q||=1)可以描述三维旋转,其与旋转轴n和旋转角θ的关系为:

q = [cos(θ/2), n·sin(θ/2)]

四元数的乘法满足哈密顿法则,两个四元数q1和q2的乘积表示先进行q1旋转再进行q2旋转的复合旋转。其微分方程为:

dq/dt = 0.5 · q ⊗ [0, ω]

其中⊗表示四元数乘法,ω为机体角速度向量。该方程是线性的,无奇异,且只需4个参数,比DCM更紧凑。

工程优势与数值处理

四元数在姿态控制中的优势体现在三个方面:第一,无奇异点,支持全姿态机动;第二,计算效率高,乘法运算比矩阵乘法少;第三,便于插值(如Slerp球面线性插值),适合平滑过渡。但四元数需要定期归一化以保持单位长度,否则积分误差会累积导致姿态漂移。

经验建议:在嵌入式控制系统中,推荐使用四元数作为姿态控制律的内部状态量。每次传感器更新后,对四元数进行归一化处理(q = q/||q||),计算量极小(约5次乘法),但能有效抑制数值漂移。

案例拆解:四元数在无人机姿态控制中的应用

某四旋翼无人机项目要求实现全姿态飞行(包括倒飞和垂直爬升),初始方案采用欧拉角反馈控制,但在俯仰角超过70°时出现控制发散。分析发现,欧拉角微分方程在θ接近90°时,滚转通道的增益趋于无穷大,导致PID控制器输出饱和。

改用四元数后,控制律设计如下:

// 姿态误差计算(四元数)
q_err = q_desired_conj ⊗ q_current
// 将误差四元数转换为旋转向量
δθ = 2 · atan2(||q_err_vec||, q_err_w) · (q_err_vec / ||q_err_vec||)
// 角速度环控制
τ = Kp · δθ - Kd · ω_body

实际飞行测试表明,在俯仰角达到±90°时,姿态误差保持在±2°以内,控制律无奇异现象。同时,四元数更新频率为500Hz,单次更新耗时约8μs(基于Cortex-M4F内核),比DCM方案节省约40%的CPU时间。

复盘要点:四元数方案的成功关键在于:① 使用单位四元数约束,避免数值发散;② 误差计算采用四元数共轭乘法,避免欧拉角转换;③ 控制律直接基于旋转向量,物理意义明确。该方案最终成为产品标准配置。

2.4 三种方法的转换关系与工程选型

转换公式

欧拉角转四元数(Z-Y-X顺序):

w = cos(ψ/2)cos(θ/2)cos(φ/2) + sin(ψ/2)sin(θ/2)sin(φ/2)
x = cos(ψ/2)cos(θ/2)sin(φ/2) - sin(ψ/2)sin(θ/2)cos(φ/2)
y = cos(ψ/2)sin(θ/2)cos(φ/2) + sin(ψ/2)cos(θ/2)sin(φ/2)
z = sin(ψ/2)cos(θ/2)cos(φ/2) - cos(ψ/2)sin(θ/2)sin(φ/2)

四元数转DCM:

C = [[1-2(y²+z²), 2(xy-wz), 2(xz+wy)],
     [2(xy+wz), 1-2(x²+z²), 2(yz-wx)],
     [2(xz-wy), 2(yz+wx), 1-2(x²+y²)]]

工程中建议以四元数作为核心状态量,仅在需要显示或人工交互时转换为欧拉角,在需要坐标变换时转换为DCM。

选型决策清单

  1. 是否需要全姿态机动?是→四元数;否→欧拉角(小角度)或四元数(统一)。
  2. 是否频繁进行坐标系变换?是→DCM或四元数转DCM。
  3. 计算资源是否紧张?是→四元数(比DCM少约50%运算量)。
  4. 是否需要姿态插值或平滑?是→四元数(Slerp插值)。
  5. 是否用于人机交互显示?是→欧拉角(最终输出时转换)。

常见误区与总结

误区1:认为欧拉角“简单”就用于控制律。实际上,欧拉角微分方程的非线性和奇异特性会显著增加控制律设计难度。
误区2:忽略四元数的双覆盖特性(q和-q表示同一姿态)。在控制律中,若目标四元数与当前四元数点积为负,应取反以保证最短旋转路径。
误区3:DCM的正交化修正过于频繁或过少。建议每100次积分修正一次,或根据误差阈值触发修正。

总结而言,姿态描述方法的选择直接影响控制系统的稳定性、计算效率和开发复杂度。对于大多数姿态控制环路,四元数是最均衡的选择;DCM适合需要频繁坐标变换的导航系统;欧拉角则仅用于显示和人工监控。理解三者的数学本质和转换关系,是设计鲁棒姿态控制器的前提。