2. 姿态描述基础:欧拉角、方向余弦矩阵、四元数的定义、转换关系及适用场景
姿态控制环路设计的第一个核心问题,是如何在数学上“不失真”地描述一个刚体在三维空间中的朝向。无论是卫星的喷气推进、无人机的舵面偏转,还是云台电机的力矩补偿,控制律计算的都是“当前姿态”与“目标姿态”之间的误差。如果姿态描述方式选择不当,轻则引入不必要的计算开销,重则导致控制律在特定姿态下出现奇异(如万向节锁)或数值发散。本章将系统梳理三种主流姿态描述方法——欧拉角、方向余弦矩阵(DCM)和四元数,从定义、转换关系到工程适用场景,为后续控制律设计打下坚实的数学基础。
上图从工程视角对比了三种姿态描述方法的核心属性。欧拉角以三个绕轴旋转角度描述姿态,物理意义最直观;DCM以3×3正交矩阵描述姿态,适合坐标变换但参数冗余;四元数用四个参数构成超复数,在无奇异性和计算效率之间取得了最佳平衡。下面逐一展开其数学定义与工程要点。
2.1 欧拉角:直观但需警惕万向节锁
核心原理
欧拉角的基本思想是将任意姿态分解为依次绕三个正交轴的旋转。以航空航天常用的Z-Y-X(偏航-俯仰-滚转)顺序为例,设机体坐标系依次绕惯性系的Z轴旋转偏航角ψ,再绕新的Y轴旋转俯仰角θ,最后绕新的X轴旋转滚转角φ。旋转矩阵可表示为:
R = Rz(ψ) · Ry(θ) · Rx(φ)
其中每个基本旋转矩阵均为标准正交矩阵。欧拉角的优势在于参数少、物理意义明确,飞行员或调试工程师可以直接从数值判断当前姿态的“大致朝向”。
判断方法与工程陷阱
欧拉角最著名的缺陷是万向节锁(Gimbal Lock)。当俯仰角θ接近±90°时,第一次和第三次旋转的轴重合,系统丢失一个旋转自由度,导致姿态解算出现奇异。例如,当θ=90°时,偏航和滚转无法独立区分,控制律会输出不稳定的力矩指令。此外,欧拉角微分方程包含三角函数除法项,在接近奇异点时数值趋于无穷大,不适合用于全姿态飞行控制。
适用场景
- 地面显示与人工监控:飞行数据记录、地面站姿态显示,人眼对角度最敏感。
- 小角度姿态控制:如固定翼平飞、卫星对地定向,姿态角变化范围小,奇异风险低。
- 初始对准与标定:传感器安装误差标定、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 | 四元数 |
|---|---|---|---|
| 参数个数 | 3 | 9 | 4 |
| 奇异问题 | 有(万向节锁) | 无 | 无 |
| 微分方程复杂度 | 含三角函数除法 | 线性,但需正交化 | 线性,无约束 |
| 计算量(单次更新) | 约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球面线性插值),适合平滑过渡。但四元数需要定期归一化以保持单位长度,否则积分误差会累积导致姿态漂移。
案例拆解:四元数在无人机姿态控制中的应用
某四旋翼无人机项目要求实现全姿态飞行(包括倒飞和垂直爬升),初始方案采用欧拉角反馈控制,但在俯仰角超过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。
选型决策清单
- 是否需要全姿态机动?是→四元数;否→欧拉角(小角度)或四元数(统一)。
- 是否频繁进行坐标系变换?是→DCM或四元数转DCM。
- 计算资源是否紧张?是→四元数(比DCM少约50%运算量)。
- 是否需要姿态插值或平滑?是→四元数(Slerp插值)。
- 是否用于人机交互显示?是→欧拉角(最终输出时转换)。
常见误区与总结
误区2:忽略四元数的双覆盖特性(q和-q表示同一姿态)。在控制律中,若目标四元数与当前四元数点积为负,应取反以保证最短旋转路径。
误区3:DCM的正交化修正过于频繁或过少。建议每100次积分修正一次,或根据误差阈值触发修正。
总结而言,姿态描述方法的选择直接影响控制系统的稳定性、计算效率和开发复杂度。对于大多数姿态控制环路,四元数是最均衡的选择;DCM适合需要频繁坐标变换的导航系统;欧拉角则仅用于显示和人工监控。理解三者的数学本质和转换关系,是设计鲁棒姿态控制器的前提。