1. 飞行器坐标系与运动参数

各位同学好,我是老张。搞了十几年飞行器建模,今天咱们聊聊最基础但也最容易出错的东西——坐标系和运动参数。

说实话,我见过太多新手一上来就对着公式猛算,结果坐标系搞反了,仿真结果直接飞上天花板。嗯,咱们先把地基打牢。

1.1 常用的四个坐标系

飞行器建模绕不开坐标系。我个人习惯把坐标系分成两类:一类是「站在地球上看」,一类是「坐在飞机里看」。下面这四个,你迟早都得打交道。

1.1.1 地心惯性系(ECI)

这个坐标系说白了就是「宇宙的绝对参考系」。原点在地心,Z轴指向北极,X轴指向春分点,Y轴按右手定则补齐。它不跟着地球转,所以牛顿定律在这里最管用。

我的经验:做轨道动力学时,ECI是首选。但做大气层内的飞行器控制,我一般不用它——因为地球自转效应太烦人。

1.1.2 地心地固系(ECEF)

这个坐标系跟着地球一起转。原点还是地心,但X轴指向本初子午线与赤道的交点。GPS给的位置数据,本质上就是ECEF坐标。

我曾经在项目里犯过一个低级错误:把ECI和ECEF混着用,结果导航解算差了十几公里。嗯,从那以后我每次建模都会在代码开头写清楚当前用的是哪个系。

1.1.3 北东地系(NED)

这个最接地气。原点在飞行器质心,X轴指向北,Y轴指向东,Z轴指向地心。说白了就是「你站在地面上看飞机」的视角。

做无人机控制时,我几乎只用NED。为什么?因为高度、航向这些参数直接对应传感器读数,省去一堆转换。

1.1.4 机体坐标系(Body)

这个坐标系固定在飞机上。原点在质心,X轴指向机头,Y轴指向右翼,Z轴指向机腹。你想想看,飞行员说的「滚转」、「俯仰」、「偏航」,都是相对于这个系的。

注意:不同教材对机体轴的定义可能不同。有的把Z轴朝上,有的朝下。我建议你统一用「右-前-上」或者「前-右-下」,别混着用。

1.2 运动参数的物理意义与数学表示

有了坐标系,接下来就是描述「飞机怎么动」。我把它拆成四类:姿态、角速度、速度、位置。咱们一个一个说。

1.2.1 姿态角(欧拉角)

姿态角就是飞机相对于NED系的朝向。三个角:滚转角φ(绕X轴)、俯仰角θ(绕Y轴)、偏航角ψ(绕Z轴)。

数学上,从NED到机体系的旋转矩阵长这样:

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

其中:
Rx(φ) = [[1, 0, 0],
         [0, cosφ, sinφ],
         [0, -sinφ, cosφ]]

Ry(θ) = [[cosθ, 0, -sinθ],
         [0, 1, 0],
         [sinθ, 0, cosθ]]

Rz(ψ) = [[cosψ, sinψ, 0],
         [-sinψ, cosψ, 0],
         [0, 0, 1]]
避坑指南:我曾经在Simulink里直接用欧拉角做插值,结果出现了「万向锁」——俯仰角接近90度时,滚转和偏航分不清了。后来我改用四元数,问题才解决。

1.2.2 角速度

角速度描述飞机转得有多快。在机体系里,它有三个分量:p(滚转角速度)、q(俯仰角速度)、r(偏航角速度)。单位是rad/s。

注意,欧拉角的导数跟角速度不是一回事。它们的关系是:

[φ_dot]   [1, sinφ*tanθ, cosφ*tanθ] [p]
[θ_dot] = [0, cosφ,      -sinφ     ] [q]
[ψ_dot]   [0, sinφ/cosθ, cosφ/cosθ] [r]

你看,当θ接近90度时,分母cosθ趋近0,数值就不稳定了。这就是万向锁的数学本质。

1.2.3 速度

速度分两种:地速(相对于地面)和空速(相对于空气)。做控制时,我一般用空速,因为它直接决定气动力。

在机体系里,速度向量写作 [u, v, w]^T。u是前向速度,v是侧向速度,w是垂向速度。空速大小 V = sqrt(u² + v² + w²)。

小技巧:如果你在做风场扰动仿真,记得把风速加到空速里。我习惯写成 V_body = V_ground + V_wind,简单粗暴。

1.2.4 位置

位置通常用NED系下的 [x, y, z] 表示。x向北为正,y向东为正,z向下为正。注意,高度是 -z。

位置的变化率就是地速在NED系下的投影。转换关系:

[x_dot]   [cosθ*cosψ, sinφ*sinθ*cosψ - cosφ*sinψ, cosφ*sinθ*cosψ + sinφ*sinψ] [u]
[y_dot] = [cosθ*sinψ, sinφ*sinθ*sinψ + cosφ*cosψ, cosφ*sinθ*sinψ - sinφ*cosψ] [v]
[z_dot]   [-sinθ,     sinφ*cosθ,                  cosφ*cosθ                 ] [w]

说白了,这就是把机体系的速度旋转到NED系。

1.3 知识体系总览

下面这张图是我自己画的,把本章的核心逻辑串起来了。你仔细看看,坐标系和运动参数是怎么关联的。

飞行器坐标系与运动参数知识体系 坐标系 地心惯性系 (ECI) 地心地固系 (ECEF) 北东地系 (NED) 机体坐标系 (Body) 运动参数 姿态角 角速度 速度 位置 数学表示 旋转矩阵 四元数 欧拉角导数 坐标变换 应用:飞行器建模与仿真 坐标系提供参考基准 → 运动参数描述状态 → 数学表示用于计算 关键关系 • 姿态角 (φ, θ, ψ) 定义在 NED 系,描述机体系相对于 NED 的朝向 • 角速度 (p, q, r) 定义在机体系,通过欧拉角导数与姿态角变化率关联 • 速度 (u, v, w) 定义在机体系,通过旋转矩阵转换到 NED 系得到位置变化率

1.4 小结

这一章咱们把坐标系和运动参数捋了一遍。说白了,坐标系就是「参考框架」,运动参数就是「在这个框架里怎么描述飞机的状态」。你想想看,没有坐标系,你连「飞机朝哪飞」都说不清楚。

我个人建议,刚开始做建模时,先在纸上把坐标系画清楚,标好每个轴的方向。我当年带的一个实习生,就是因为没画图,把NED的Z轴方向搞反了,结果仿真里飞机一直往天上掉——嗯,后来他养成了画图的好习惯。

核心要点:
  • 四个坐标系各有用途,别混用
  • 欧拉角有万向锁问题,大角度机动时考虑用四元数
  • 角速度 ≠ 欧拉角导数,转换公式要记牢
  • 速度转换时注意区分地速和空速

公众号:蓝海资料掘金营,微信deep3321