2. 参考坐标系(上):地面坐标系、机体坐标系、速度坐标系定义与转换
各位同学,咱们今天聊聊坐标系。说实话,我刚入行那会儿,觉得坐标系这东西太简单了——不就是三个轴互相垂直嘛。直到有一次做无人机编队仿真,坐标系搞反了,结果两架飞机在屏幕上直接穿模……嗯,从那以后我再也不敢小看坐标系了。
飞行器六自由度方程,说白了就是描述飞机怎么动、怎么转。但你要描述运动,总得有个参考吧?就像你说“我往前走了5米”,这个“前”是相对于谁?这就是坐标系要解决的问题。
2.1 地面坐标系:我们站在哪里看飞机?
地面坐标系,也叫惯性坐标系(近似)。我习惯把它想象成“上帝视角”——你站在地面上,看着飞机飞。
定义很简单:
- 原点O:通常取地面某固定点,比如起飞点、跑道头
- Xg轴:指向正北(或正东,看你的习惯)
- Yg轴:指向正东(或正北,与X轴垂直)
- Zg轴:指向地心,也就是竖直向下
重要提醒:地面坐标系是右手系。你伸出右手,拇指X,食指Y,中指Z——中指指向下,没错,就是向下。
我在做某型固定翼飞控时,遇到过一个问题:地面坐标系的Z轴向下,但机体坐标系的Z轴向上。当时有个同事直接拿Z轴数据去算高度,结果飞机越飞越低,他还以为是控制律写错了……
地面坐标系主要用来干嘛?说白了就是记录飞机的位置和姿态。GPS给的是经纬高,但你要算控制量,得先转到地面坐标系里。
2.2 机体坐标系:飞机自己怎么看自己?
机体坐标系是绑在飞机上的。你想想看,飞机在翻滚、俯仰、偏航,它自己可不管地面是哪儿,它只关心“我机头朝哪”、“我机翼平不平”。
定义如下:
- 原点O:飞机质心(严格来说是重心,但工程上差不多)
- Xb轴:沿机体纵轴,指向机头
- Yb轴:沿机体横轴,指向右翼
- Zb轴:沿机体立轴,指向机身下方
个人经验:我建议你在做仿真时,把机体坐标系的原点画在质心位置。因为所有力矩方程都是绕质心建立的。如果你把原点放在机头,那算出来的力矩全是错的——别问我怎么知道的。
机体坐标系里,三个角速度(p, q, r)分别对应绕Xb、Yb、Zb轴的旋转。p是滚转角速度,q是俯仰角速度,r是偏航角速度。这个顺序别搞混了,我见过有人把p和r写反,结果仿真出来的飞机像喝醉了酒一样乱转。
2.3 速度坐标系:气流是怎么看飞机的?
速度坐标系,也叫气流坐标系。这个坐标系比较特殊——它跟着飞机的速度方向走。
定义:
- 原点O:同样在飞机质心
- Xs轴:沿空速向量方向,指向飞机运动方向
- Zs轴:在对称面内,垂直于Xs轴,指向下方
- Ys轴:由右手定则确定,指向右翼方向
为什么要搞个速度坐标系?因为气动力(升力、阻力)都是相对于气流方向定义的。你想想看,飞机迎角变了,升力方向也跟着变。如果你用机体坐标系去算气动力,那公式会复杂到让你怀疑人生。
避坑指南:我曾经在写气动模型时,把速度坐标系和机体坐标系搞混了。结果算出来的升力系数总是对不上风洞数据。查了三天,最后发现是坐标系转换矩阵写反了。嗯,从那以后我每次写转换矩阵都要手算一遍验证。
2.4 坐标系之间的转换:怎么从A到B?
三个坐标系之间怎么转?核心就是旋转矩阵。我习惯用欧拉角来做转换,虽然它有万向锁的问题,但工程上90%的情况够用了。
2.4.1 地面坐标系 → 机体坐标系
这个转换需要三个欧拉角:偏航角ψ、俯仰角θ、滚转角φ。转换顺序是:先偏航,再俯仰,最后滚转。
旋转矩阵长这样:
Cg→b = Rx(φ) · Ry(θ) · Rz(ψ)
其中:
Rz(ψ) = [cosψ sinψ 0; -sinψ cosψ 0; 0 0 1]
Ry(θ) = [cosθ 0 -sinθ; 0 1 0; sinθ 0 cosθ]
Rx(φ) = [1 0 0; 0 cosφ sinφ; 0 -sinφ cosφ]
注意顺序!先转ψ,再转θ,最后转φ。你要是把顺序搞反了,飞机姿态就全乱了。
2.4.2 机体坐标系 → 速度坐标系
这个转换只需要两个角:迎角α和侧滑角β。
转换矩阵:
Cb→s = Ry(-α) · Rz(β)
其中:
Rz(β) = [cosβ sinβ 0; -sinβ cosβ 0; 0 0 1]
Ry(-α) = [cosα 0 sinα; 0 1 0; -sinα 0 cosα]
小技巧:我习惯把转换矩阵写成函数,每次调用时传入角度值。这样代码可读性好,也方便调试。如果你用MATLAB,可以直接用angle2dcm函数,但记得检查旋转顺序。
2.5 知识体系总览
下面这张图是我自己画的,把三个坐标系的关系捋清楚了:
2.6 工程中的实用建议
说了这么多理论,来点实际的。我在做飞控代码时,一般这样处理坐标系:
- 初始化时:把地面坐标系原点设在起飞点,记录经纬高
- 每个控制周期:用IMU数据更新机体姿态,算出Cg→b
- 气动计算时:用空速和迎角算出Cb→s,把气动力转到机体坐标系
- 最后:所有力和力矩在机体坐标系下合成,代入六自由度方程
核心要点:坐标系转换的本质是“把同一个向量在不同坐标系下表示”。你只要记住这个,就不会搞混。向量本身没变,变的是你看它的角度。
好了,这一节的内容就到这儿。坐标系是飞行器建模的基石,你把它搞清楚了,后面的六自由度方程就是水到渠成的事。下一节我们会讲运动学方程——也就是飞机的位置和姿态怎么随时间变化。
公众号:蓝海资料掘金营,微信deep3321