引言
方向余弦矩阵 (DCM) 虽然数学性质完美,但不够直观。如果你告诉飞行员“现在的姿态矩阵是…”,他肯定会疯掉。人类更习惯用“滚转 (Roll)、俯仰 (Pitch)、偏航 (Yaw)”来描述姿态。
这种将三维旋转分解为三次绕不同轴的连续旋转的方法,统称为欧拉角 (Euler Angles)。它将复杂的姿态描述简化为三个直观的角度。然而,直观的背后隐藏着一个致命的数学陷阱——万向节死锁 (Gimbal Lock)。本章将系统地介绍欧拉角体系,推导其运动学方程,并从数学本质上揭示奇点产生的根源。
1. 欧拉角的定义与序列
欧拉角并非只有一种。根据旋转轴的选择顺序不同,共有 12 种可能的旋转序列。这 12 种序列分为两类:
1.1 经典欧拉角 (Classic Euler Angles)
这类序列中,第一次和第三次旋转绕相同的轴(例如 $Z \to X \to Z$)。
- 序列:3-1-3, 3-2-3, 1-2-1, 1-3-1, 2-1-2, 2-3-2。
- 应用:经典力学中描述刚体定点转动(如陀螺),轨道力学中的轨道要素($mega, i, mega$ 对应 3-1-3 序列)。
1.2 泰特-布莱恩角 (Tait-Bryan Angles)
这类序列中,三次旋转绕三个不同的轴(例如 $Z \to Y \to X$)。
- 序列:1-2-3, 1-3-2, 2-1-3, 2-3-1, 3-1-2, 3-2-1。
- 应用:航空航天工程。其中 3-2-1 序列 是描述飞机和导弹姿态的标准序列。
1.3 3-2-1 序列详解
让我们详细推导最常用的 3-2-1 序列 ($Z \to Y \to X$)。 假设从参考系 $N$ 到本体系 $B$ 的变换过程如下:
- 偏航 (Yaw, $si$):绕 $Z_N$ 轴旋转 $si$,得到中间系 $1$。
- 俯仰 (Pitch, $\theta$):绕中间系 $1$ 的 $Y_1$ 轴旋转 $\theta$,得到中间系 $2$。
- 滚转 (Roll, $hi$):绕中间系 $2$ 的 $X_2$ 轴旋转 $hi$,得到最终的本体系 $B$。
总的旋转矩阵 $\mathbf{C}_{BN}$ 为三次旋转的乘积(注意顺序:后旋转的左乘):
展开后可得著名的方向余弦表:
2. 运动学方程与奇点
我们不仅关心角度本身,更关心角度的变化率 $(\dot{\phi}, \dot{\theta}, \dot{\psi})$ 与本体角速度 $\boldsymbol{\omega} = [p, q, r]^T$ 之间的关系。
2.1 角速度的合成
注意:$\boldsymbol{\omega}$ 是物理角速度矢量,而 $(\dot{\phi}, \dot{\theta}, \dot{\psi})$ 只是三个标量参数的变化率。它们对应的旋转轴并不正交,甚至不在同一个坐标系中。
- $\dot{\psi}$ 是绕 $Z_N$ 轴的。
- $\dot{\theta}$ 是绕 $Y_1$ 轴的(中间轴)。
- $\dot{\phi}$ 是绕 $X_B$ 轴的(本体轴)。
将这三个角速度矢量投影到本体系 $B$ 中并相加,得到总角速度:
利用坐标变换将 $\mathbf{j}_2$ 和 $\mathbf{k}_N$ 变换到 $B$ 系:
2.2 运动学微分方程
为了在仿真中更新欧拉角,我们需要上述方程的逆关系,即用 $\boldsymbol{\omega}$ 求 $(\dot{\phi}, \dot{\theta}, \dot{\psi})$。 对系数矩阵求逆,得到 3-2-1 序列的运动学方程:
2.3 万向节死锁 (Gimbal Lock) 的数学本质
请密切关注上述矩阵中的公因子 $\frac{1}{\cos\theta}$。 当俯仰角 $\theta \to \pm 90^\circ$ 时,$\cos\theta \to 0$,方程右边趋于无穷大。 这意味着:在 $\theta = \pm 90^\circ$ 时,欧拉角运动学方程存在奇点。
几何解释: 回顾 3-2-1 序列的旋转过程。当 $\theta = 90^\circ$ 时,中间系 $2$ 的 $X$ 轴垂直向上,与初始系 $N$ 的 $Z$ 轴重合(或反向)。 此时,第一转轴(偏航轴 $Z_N$)和第三转轴(滚转轴 $X_B$)变得平行。 这就好比一个三轴万向节,当中间的环转到 90 度时,内环和外环的转轴重合了。系统瞬间失去了一个自由度。此时,我们无法区分滚转和偏航,因为它们绕的是同一根物理轴。
后果:
- 数值发散:在数值积分中,计算机会报除零错误或产生巨大的数值误差,导致姿态解算失败。
- 控制失效:在奇点附近,雅可比矩阵条件数变差,控制算法可能输出极大的控制力矩,导致系统不稳定。
- 阿波罗 13 号:阿波罗飞船使用了物理万向节平台。为了防止死锁,飞船必须避免特定的姿态机动(如“红区”)。一旦进入死锁,惯导平台将失去姿态基准,这在太空中是灾难性的。
3. 小角度近似
虽然大角度存在奇点,但在姿态稳定控制中,卫星通常保持在平衡位置附近(小角度)。 当 $\phi, \theta, \psi \approx 0$ 时:
- $\cos(\cdot) \approx 1, \sin(\cdot) \approx (\cdot)$
- 忽略二阶小量。
此时,DCM 简化为:
运动学方程简化为:
这意味着在小角度下,欧拉角的变化率近似等于本体角速度。这使得线性控制理论(如 PID)可以直接应用于姿态控制,这也是为什么欧拉角在工程中依然被广泛使用的原因——只要你保证不翻跟头。
结语
欧拉角直观、易懂,是飞行员和工程师沟通的语言。但在全姿态飞行或高机动任务中,它的奇点问题是致命的。为了解决这个问题,数学家引入了复数在四维空间的推广——四元数。它不仅消除了奇点,还带来了极高的计算效率。下一章,我们将揭开四元数的神秘面纱。
引言
方向余弦矩阵 (DCM) 虽然数学性质完美,但不够直观。如果你告诉飞行员“现在的姿态矩阵是…”,他肯定会疯掉。人类更习惯用“滚转 (Roll)、俯仰 (Pitch)、偏航 (Yaw)”来描述姿态。
这种将三维旋转分解为三次绕不同轴的连续旋转的方法,统称为欧拉角 (Euler Angles)。然而,直观的背后隐藏着一个致命的数学陷阱——万向节死锁 (Gimbal Lock)。
1. 欧拉角的定义与序列
欧拉角并非只有一种。根据旋转轴的选择顺序不同,共有 12 种可能的旋转序列。
1.1 经典欧拉角 (Classic Euler Angles)
旋转轴重复使用,例如 3-1-3 序列 ($Z \to X \to Z$)。 这是经典力学中描述刚体定点转动的标准方法,常用于轨道力学(如 $\Omega, i, \omega$ 就是一种 3-1-3 序列)。
1.2 泰特-布莱恩角 (Tait-Bryan Angles)
旋转轴不重复,例如 3-2-1 序列 ($Z \to Y \to X$)。 这是航空航天中最常用的序列,对应于:
- 绕 $Z$ 轴旋转 $\psi$ (Yaw, 偏航)
- 绕 $Y$ 轴旋转 $\theta$ (Pitch, 俯仰)
- 绕 $X$ 轴旋转 $\phi$ (Roll, 滚转)
其 DCM 可以通过三个基本旋转矩阵相乘得到:
展开后可得:
2. 运动学方程与奇点
我们不仅关心角度本身,更关心角度的变化率 $(\dot{\phi}, \dot{\theta}, \dot{\psi})$ 与本体角速度 $\boldsymbol{\omega} = [p, q, r]^T$ 之间的关系。
注意:$\boldsymbol{\omega}$ 是物理角速度,而 $(\dot{\phi}, \dot{\theta}, \dot{\psi})$ 是三个非正交轴上的角速度分量。它们之间不是简单的相等关系。
对于 3-2-1 序列,其运动学方程为:
2.1 万向节死锁 (Gimbal Lock)
请注意上述矩阵中的系数 $\frac{1}{\cos\theta}$。 当俯仰角 $\theta \to \pm 90^\circ$ 时,$\cos\theta \to 0$,方程右边趋于无穷大。 这意味着:在 $\theta = 90^\circ$ 时,欧拉角无法描述姿态的运动。
从几何上看,当 $\theta = 90^\circ$ 时,第一转轴 ($Z$轴) 和第三转轴 ($X$轴) 重合了。系统失去了一个自由度。此时,我们无法区分滚转和偏航,因为它们绕的是同一根轴。
后果:
- 在数值积分中,计算机会报除零错误或产生巨大的数值误差。
- 在阿波罗登月任务中,惯性导航平台使用了物理万向节。为了防止死锁,飞船必须避免特定的姿态机动。
3. 小角度近似
虽然大角度存在奇点,但在姿态稳定控制中,卫星通常保持在平衡位置附近(小角度)。 当 $\phi, \theta, \psi \approx 0$ 时:
- $\cos \approx 1, \sin \approx \text{angle}$
- $\dot{\phi} \approx p$
- $\dot{\theta} \approx q$
- $\dot{\psi} \approx r$
此时,欧拉角变化率近似等于角速度。这使得线性控制理论(如 PID)可以直接应用于姿态控制。
结语
欧拉角直观、易懂,是飞行员和工程师沟通的语言。但在全姿态飞行或高机动任务中,它的奇点问题是致命的。为了解决这个问题,数学家引入了复数在四维空间的推广——四元数。
```