2. 飞行器运动建模与坐标系

组合导航的核心任务,是把惯性、卫星、气压、磁等多源信息统一到同一个状态空间里做估计。而“统一”的第一步,就是让所有传感器数据、运动方程和误差模型都建立在同一套坐标与姿态描述之上。本节围绕四件事展开:常用坐标系的定义与转换、姿态的表示方法、飞行器运动学与动力学方程,以及导航状态向量的选取。它们共同决定了后续卡尔曼滤波中状态量如何定义、雅可比矩阵如何推导、量测方程如何写。

一、常用坐标系及其转换

飞行器导航中反复出现四类坐标系。地心惯性系(ECI,记作 i 系)原点在地心,坐标轴指向恒星,不随地球自转,是牛顿力学定律成立的基准,陀螺和加速度计的原始积分理论上应在此系或由其派生系中完成。地心地固系(ECEF,记作 e 系)原点同样在地心,但随地球一起转动,z 轴指向北极,x 轴指向本初子午线与赤道交点,卫星星历、地球重力模型通常在此系给出。导航系(记作 n 系)是局部水平坐标系,常用“北-东-地”(NED)约定:x 指北、y 指东、z 沿当地垂线指向地心,它随飞行器位置移动,是姿态角和速度最直观的表达系。机体系(记作 b 系)固连于飞行器,x 沿机头前向、y 沿右翼、z 沿机腹向下,是惯性器件安装和测量的直接参考。

转换关系可以串成一条链:i 系到 e 系由地球自转角 ωie 和时间决定;e 系到 n 系由当地纬度 L 和经度 λ 决定;n 系到 b 系由三个姿态角决定。以 NED 约定为例,位置转换可写为:

已知 L(纬度)、λ(经度)、h(高度),地球长半轴 a=6378137 m,第一偏心率平方 e²=0.00669438
N = a / sqrt(1 - e²·sin²L)          // 卯酉圈曲率半径
x_e = (N + h)·cosL·cosλ
y_e = (N + h)·cosL·sinλ
z_e = (N·(1 - e²) + h)·sinL

反向由 ECEF 求经纬高需要迭代,工程上常迭代 3~5 次即可收敛到毫米级。需要强调的是,方向约定一旦选定就必须全文一致:本文统一采用 NED 导航系、前右下机体系、右手定则,姿态角正方向按“绕轴逆时针为正”定义。若换用 ENU 或前左上机体系,所有姿态角符号和重力分量都会改变,这是组合导航实现中最常见的错误来源之一。

二、姿态表示方法

姿态描述有三种主流方式,各有取舍。欧拉角(横滚 φ、俯仰 θ、偏航 ψ)最直观,人机界面和飞行控制常用,但存在万向节死锁:当俯仰角接近 ±90° 时,横滚与偏航无法区分,且三角函数运算量大。方向余弦矩阵(DCM)用 3×3 正交矩阵表示,无奇异、可直接做向量旋转,但需要 9 个参数并周期性正交化。四元数用 4 个参数表示,无奇异、运算量小、适合递推积分,是惯性导航内部姿态更新的首选,缺点是物理直观性差,需要归一化。

三者可以互相转换。由欧拉角构造 n 系到 b 系的旋转矩阵(Z-Y-X 顺序,即先偏航、再俯仰、后横滚):

R_nb = Rz(ψ)·Ry(θ)·Rx(φ)
四元数 q = [q0, q1, q2, q3] 与 DCM 的对应:
R = [1-2(q2²+q3²)   2(q1q2-q0q3)   2(q1q3+q0q2)
     2(q1q2+q0q3)   1-2(q1²+q3²)   2(q2q3-q0q1)
     2(q1q3-q0q2)   2(q2q3+q0q1)   1-2(q1²+q2²)]

姿态递推的核心是四元数微分方程 q̇ = 0.5·q ⊗ ωnbb,其中 ωnbb 是机体系相对导航系的角速度,需从陀螺测量 ωibb 中扣除地球自转和载体运动引起的导航系转动。这一步的精度直接决定纯惯导的姿态漂移率。

三、运动学与动力学方程

导航系下的速度方程是组合导航的“心脏”:

v̇_n = C_b^n · f_b - (2·ω_ie^n + ω_en^n) × v_n + g_n

其中 fb 是加速度计测量的比力,Cbn 是机体系到导航系的旋转矩阵,2ωien×vn 是哥氏加速度,ωenn×vn 是载体在地球曲面运动引起的向心项,gn 是重力矢量。位置方程则通过 L̇、λ̇、ḣ 与 vn 的关系给出。动力学方程描述力和力矩如何改变飞行器运动状态,对固定翼通常包含气动力、推力、重力和力矩平衡,对多旋翼则简化为推力矢量与姿态的代数关系。组合导航中,动力学方程主要用于构造过程模型约束,例如在 GNSS 失锁时用气动模型辅助抑制惯导发散。

四、导航状态向量选取

状态向量决定了滤波器“估计什么”。最基础的是 15 维误差状态:位置误差(3)、速度误差(3)、姿态误差(3)、陀螺零偏(3)、加速度计零偏(3)。若使用低成本 MEMS 器件,零偏不稳定,可扩展为 18 维或 21 维,加入零偏随机游走或比例因子误差。若做 GNSS/INS 紧组合,还需加入接收机钟差和钟漂,构成 17 维以上状态。状态选取的原则是:既要覆盖主要误差源,又要避免维数过高导致可观性下降和计算负担增加。

坐标系转换链与导航状态向量构成 坐标系转换链 i 系 地心惯性系 ω_ie·t e 系 地心地固系 L, λ n 系 导航系 NED φ, θ, ψ b 系 机体系 前右下 姿态表示方法 欧拉角 φ, θ, ψ 直观 / 有万向节死锁 适合人机界面 方向余弦矩阵 R 无奇异 / 9 参数 需正交化 四元数 q 无奇异 / 4 参数 惯导递推首选 导航状态向量(15 维误差状态) 位置误差 δp δL, δλ, δh 速度误差 δv δvN, δvE, δvD 姿态误差 δψ δφ, δθ, δψ 陀螺零偏 ε εx, εy, εz 加计零偏 ∇ ∇x, ∇y, ∇z 状态扩展原则: • 低成本 MEMS:增加零偏随机游走 → 18 维;再增加比例因子 → 21 维 • GNSS/INS 紧组合:增加接收机钟差 δt 与钟漂 δf → 17 维以上 • 原则:覆盖主要误差源,同时保证可观性、控制维数,避免滤波发散

以某小型固定翼无人机为例,采用 ADIS16470 级 MEMS IMU,陀螺零偏稳定性约 8°/h,加速度计零偏约 0.1 mg。若只估计 15 维状态,零偏被当作常值,长时间飞行后姿态误差会因零偏漂移而累积;若扩展为 18 维,把零偏建模为一阶马尔可夫过程,滤波器可在 GNSS 有效时持续修正零偏估计,GNSS 失锁 30 s 内姿态误差可控制在 1° 以内。这一对比说明状态向量选取不是越多越好,而是要与器件特性和任务时长匹配。

坐标系与姿态约定是组合导航的“语法”。建议在代码中把 NED、前右下、右手定则写成常量注释,并在每次坐标系切换处显式标注源系和目标系,避免符号错误在滤波器中放大。