2. 坐标系与运动学:常用坐标系、坐标变换矩阵、欧拉角与四元数
各位同学,咱们今天聊聊坐标系。说实话,搞导弹制导这么多年,我最大的体会就是——坐标系选不对,后面全白费。你想想看,导弹在天上飞,它自己怎么知道自己在哪?怎么知道目标在哪?全靠坐标系来“定位”。
这一节内容,说白了就是给导弹建立一套“世界观”。我们得告诉它:什么是上下左右,什么是前后远近。嗯,咱们一步步来。
2.1 常用坐标系:导弹的“世界观”
我个人习惯把坐标系分成三类:惯性系、弹体系、速度系。这三者之间的关系,就像是你站在地球上、坐在车里、看着窗外风景——视角不同,看到的东西自然不一样。
2.1.1 惯性坐标系
惯性系,说白了就是一个“绝对静止”的参考系。在导弹制导中,我们通常把发射时刻的地心或地面某点作为原点。这个坐标系不随导弹转动,也不随地球自转——当然,严格来说地球在转,但短时间飞行可以忽略。
特点:牛顿定律在这里成立。你测到的加速度、速度,都是相对于这个“不动”的坐标系。
2.1.2 弹体坐标系
弹体系是固定在导弹身上的。原点在导弹质心,x轴沿弹体纵轴向前,y轴向上(或向右,看定义),z轴按右手定则确定。
我在项目中遇到过一个问题:某次飞行试验,遥测数据里攻角一直偏大,查了半天,原来是弹体系定义时y轴方向搞反了。嗯,这种低级错误,一旦上天就来不及改了。
2.1.3 速度坐标系
速度系,也叫气流坐标系。它的x轴始终指向导弹速度方向。说白了,就是“风从哪里来,x轴就指向哪”。
这个坐标系在分析气动力时特别有用。因为升力、阻力都是相对于气流方向定义的。
2.2 坐标变换矩阵:从A系到B系的“翻译官”
有了不同的坐标系,就得有办法把同一个向量从一个系“翻译”到另一个系。这个翻译工具就是坐标变换矩阵。
举个例子:导弹在惯性系下的位置是 (x, y, z),但弹上传感器测到的是弹体系下的数据。怎么把两者联系起来?用变换矩阵。
2.2.1 基本旋转矩阵
绕x轴旋转角度α:
R_x(α) = [[1, 0, 0],
[0, cosα, sinα],
[0, -sinα, cosα]]
绕y轴旋转角度β:
R_y(β) = [[cosβ, 0, -sinβ],
[0, 1, 0],
[sinβ, 0, cosβ]]
绕z轴旋转角度γ:
R_z(γ) = [[cosγ, sinγ, 0],
[-sinγ, cosγ, 0],
[0, 0, 1]]
注意顺序!先绕谁转,后绕谁转,结果完全不同。我见过有人把顺序搞反,仿真结果直接飞到了月球——嗯,夸张了点,但确实差很多。
2.2.2 复合变换
从惯性系到弹体系,通常按“3-2-1”顺序:先绕z轴转偏航角ψ,再绕新y轴转俯仰角θ,最后绕新x轴转滚转角φ。
C_ib = R_x(φ) * R_y(θ) * R_z(ψ)
这个矩阵就是惯性系到弹体系的变换矩阵。反过来,弹体系到惯性系就是它的转置——因为旋转矩阵是正交矩阵。
2.3 欧拉角:直观但有小毛病
欧拉角大家应该不陌生。俯仰角θ、偏航角ψ、滚转角φ,三个角度就能描述导弹的姿态。直观吧?当然直观。
但欧拉角有个致命问题——万向锁。当俯仰角接近±90°时,偏航和滚转就分不清了。为什么会这样?因为两个旋转轴重合了,自由度丢失了一个。
2.4 四元数:优雅的替代方案
四元数,说白了就是一个“超复数”。它用四个数来描述旋转:一个标量部分和三个矢量部分。
q = [q0, q1, q2, q3]
其中 q0 是标量部分,代表旋转角的一半的余弦;q1, q2, q3 是矢量部分,代表旋转轴的方向。
2.4.1 四元数的优势
- 无奇点:不会出现万向锁,任意姿态都能表示
- 计算效率高:比欧拉角少用三角函数,适合实时计算
- 插值平滑:两个姿态之间可以平滑过渡
2.4.2 四元数与欧拉角的转换
从欧拉角到四元数:
q0 = cos(φ/2)cos(θ/2)cos(ψ/2) + sin(φ/2)sin(θ/2)sin(ψ/2)
q1 = sin(φ/2)cos(θ/2)cos(ψ/2) - cos(φ/2)sin(θ/2)sin(ψ/2)
q2 = cos(φ/2)sin(θ/2)cos(ψ/2) + sin(φ/2)cos(θ/2)sin(ψ/2)
q3 = cos(φ/2)cos(θ/2)sin(ψ/2) - sin(φ/2)sin(θ/2)cos(ψ/2)
从四元数到欧拉角:
φ = atan2(2(q0q1 + q2q3), 1 - 2(q1² + q2²))
θ = asin(2(q0q2 - q3q1))
ψ = atan2(2(q0q3 + q1q2), 1 - 2(q2² + q3²))
2.5 知识体系总览
下面这张图,是我自己总结的坐标系与运动学核心逻辑。你把它看懂了,这一章就通了。
2.6 实战中的选择建议
| 场景 | 推荐坐标系 | 推荐姿态表示 | 原因 |
|---|---|---|---|
| 弹道仿真 | 惯性系 | 四元数 | 避免奇点,计算稳定 |
| 姿态控制律设计 | 弹体系 | 欧拉角 | 物理意义清晰,便于调参 |
| 气动分析 | 速度系 | 欧拉角 | 攻角、侧滑角直接可得 |
| 大机动飞行 | 惯性系 | 四元数 | 万向锁风险高,必须用四元数 |
📌 核心要点:
- 坐标系是描述导弹运动的“语言”,选错了后面全错
- 变换矩阵是不同坐标系之间的“翻译官”,注意旋转顺序
- 欧拉角直观但有万向锁,四元数优雅但抽象
- 实际工程中,我建议:仿真用四元数,调试用欧拉角
好了,这一节的内容就到这。坐标系这东西,刚开始觉得枯燥,但等你真正上手做项目,就会发现——嗯,基础不牢,地动山摇。希望各位能把这些概念吃透,后面学运动学方程、制导律设计,才能游刃有余。