飞行器建模基础:刚体运动学与动力学方程、坐标系定义(机体、地面、导航)、欧拉角与四元数、旋转矩阵

飞行器建模是整个飞控算法体系的数学基石。无论是姿态解算、惯性导航、控制律设计还是状态估计,最终都要回归到对飞行器刚体运动规律的精确描述上。本章将系统梳理飞行器建模中最核心的四个知识模块:坐标系定义、旋转矩阵、欧拉角与四元数,以及刚体运动学与动力学方程。理解这些内容,是后续进行姿态控制、位置控制和导航解算的前提。

飞行器建模核心知识体系 坐标系定义 • 地面坐标系 (G系 / NED) • 机体坐标系 (B系) • 导航坐标系 (N系) • 地球坐标系 (ECEF) • 载体坐标系 (V系) 核心:确定参考基准与转换关系 旋转矩阵 (R) • 方向余弦矩阵 (DCM) • 正交性:R⁻¹ = Rᵀ • 行列式 det(R) = 1 • 组合旋转:R = R₁·R₂ • 坐标变换:v_B = R·v_N 核心:向量在不同坐标系间的映射 欧拉角与四元数 • 欧拉角:Yaw-Pitch-Roll • 万向锁问题 (Gimbal Lock) • 四元数:q = [w, x, y, z] • 无奇异、计算高效 • 插值平滑 (SLERP) 核心:姿态描述与更新策略 刚体运动学与动力学方程 运动学(描述运动,不考虑力): ṗ = v, q̇ = ½·q⊗ω 动力学(力与运动的关系): m·v̇ = F_ext - m·g J·ω̇ = M - ω×(J·ω) 核心:建立力/力矩与运动状态之间的微分方程 工程应用映射 • 姿态解算:陀螺仪积分 + 加速度计/磁力计修正 • 控制律设计:基于四元数误差的PD控制 • 导航解算:NED坐标系下的位置/速度估计 • 传感器融合:EKF/互补滤波中的状态转移 • 仿真验证:基于动力学模型的六自由度仿真

坐标系定义:从地面到机体的空间基准

飞行器建模首先需要明确"在哪里描述运动"。工程实践中,最常用的是地面坐标系(通常取北-东-地,即NED)和机体坐标系(原点位于飞行器质心,X轴指向机头,Y轴指向右翼,Z轴指向下方)。地面坐标系为惯性导航提供参考基准,而机体坐标系则直接与传感器(IMU、磁力计)的安装方向对齐。此外,导航坐标系(N系)通常与地面坐标系重合,但在某些滤波算法中会引入当地水平坐标系(ENU或NED)以简化重力补偿。

坐标系的转换关系是建模的核心。例如,将机体坐标系下的加速度计读数转换到地面坐标系,需要先通过姿态矩阵(旋转矩阵)进行变换。若忽略地球自转和科里奥利力(低速飞行器可接受),地面坐标系可近似视为惯性系,这大大简化了牛顿方程的推导。

工程要点:在飞控代码中,坐标系定义必须统一。常见的错误是混用NED与ENU,导致加速度计补偿方向错误。建议在代码注释中明确标注每个变量的坐标系来源,并在初始化时进行坐标系一致性检查。

旋转矩阵:姿态的数学表达

旋转矩阵(又称方向余弦矩阵,DCM)是一个3×3的正交矩阵,用于将一个向量从一个坐标系旋转到另一个坐标系。设地面坐标系为N,机体坐标系为B,则旋转矩阵RN→B满足:vB = R·vN。旋转矩阵的列向量实际上是机体坐标系的三个基向量在地面坐标系中的投影。

旋转矩阵具有三个重要性质:正交性(RT = R-1)、行列式为1、以及组合旋转满足矩阵乘法顺序。在姿态更新中,若已知角速度ω,可通过微分方程 Ṙ = R·[ω]× 进行数值积分,其中[ω]×是角速度的反对称矩阵。然而,直接积分旋转矩阵会导致数值误差累积,破坏正交性,因此工程中常采用四元数或周期性地对矩阵进行正交化修正。

表示方法 维度 优点 缺点 适用场景
旋转矩阵 9个元素 无奇异、直观 冗余、需正交化 坐标变换、理论推导
欧拉角 3个角度 物理意义明确 万向锁、三角函数计算 人机交互、姿态显示
四元数 4个元素 无奇异、计算高效 不够直观 姿态解算、控制律

欧拉角与四元数:姿态描述的两种视角

欧拉角通过三个依次旋转的角度(通常为偏航角ψ、俯仰角θ、横滚角φ)描述姿态。其优点是物理意义直观,便于调试和显示。但欧拉角存在著名的"万向锁"问题:当俯仰角接近±90°时,偏航与横滚的旋转轴重合,导致自由度丢失,姿态解算出现奇异。因此,在飞控内部计算中,几乎全部采用四元数。

四元数q = [q0, q1, q2, q3](或[w, x, y, z])是一种超复数,满足q0² + q1² + q2² + q3² = 1。它通过一个旋转轴和旋转角度来唯一表示姿态。四元数的更新方程为 q̇ = ½·q⊗ω,其中⊗表示四元数乘法,ω为机体角速度的四元数形式(实部为0)。相比旋转矩阵,四元数仅需4个标量,且归一化约束简单,计算量小,是嵌入式飞控的首选。

经验提醒:在将欧拉角转换为四元数时,注意旋转顺序。飞控中通常采用Z-Y-X(偏航-俯仰-横滚)顺序,对应的四元数公式为:
q = [cos(ψ/2)cos(θ/2)cos(φ/2) + sin(ψ/2)sin(θ/2)sin(φ/2),
    cos(ψ/2)cos(θ/2)sin(φ/2) - sin(ψ/2)sin(θ/2)cos(φ/2),
    cos(ψ/2)sin(θ/2)cos(φ/2) + sin(ψ/2)cos(θ/2)sin(φ/2),
    sin(ψ/2)cos(θ/2)cos(φ/2) - cos(ψ/2)sin(θ/2)sin(φ/2)]

刚体运动学与动力学方程

刚体运动学描述飞行器的位置、速度、姿态随时间的变化关系,不涉及力的作用。对于位置,有 ṗ = v;对于姿态,若采用四元数,则 q̇ = ½·q⊗ω。动力学方程则引入质量、惯性矩和外力/力矩,建立运动状态与输入之间的因果关系。

平动动力学(在地面坐标系下):

m·v̇ = F_gravity + F_thrust + F_aero + F_disturbance

其中F_gravity = m·g(沿NED的Z轴向下),F_thrust为螺旋桨产生的拉力,F_aero为气动阻力,F_disturbance为阵风等扰动。转动动力学(在机体坐标系下):

J·ω̇ = M - ω × (J·ω)

其中J为惯性张量(通常简化为对角矩阵),M为外力矩(包括螺旋桨反扭矩、陀螺效应力矩、气动力矩等),ω×(J·ω)为陀螺耦合项。该方程揭示了多旋翼飞行器在高速旋转时,各轴角加速度会相互耦合,这也是控制律设计中需要补偿的关键项。

案例拆解:四旋翼姿态解算中的坐标系与四元数应用

以某四旋翼飞控为例,其姿态解算模块采用互补滤波算法。初始状态:飞行器静止于地面,IMU输出加速度计读数aB = [0, 0, -9.8] m/s²(机体坐标系下),陀螺仪输出角速度ωB = [0, 0, 0] rad/s。目标:初始化四元数为单位四元数q = [1, 0, 0, 0]。

第一步,将加速度计读数归一化,并与重力参考向量gN = [0, 0, 1](NED下)通过旋转矩阵R(q)转换到机体坐标系,计算误差e = aB × (R(q)·gN)。第二步,将误差e作为PI控制器的输入,修正陀螺仪角速度漂移。第三步,使用修正后的角速度通过四元数微分方程更新姿态。经过约0.5秒的收敛,四元数稳定在q ≈ [0.707, 0, 0, 0.707],对应俯仰角约90°(若飞行器被倾斜放置)。

该案例展示了坐标系转换、四元数更新和传感器融合的完整链路。实际调试中,若发现姿态漂移,应首先检查加速度计噪声是否过大,其次检查陀螺仪零偏是否校准,最后确认四元数归一化频率是否足够(通常每10ms一次)。

风险提示:在动力学方程中,惯性张量J的取值对控制性能影响显著。若J估计不准确,会导致角速度环增益失配,引发振荡。建议通过CAD模型或实验辨识获取J的准确值,并在仿真中验证其鲁棒性。

常见误区与总结复盘

  • 误区一:将欧拉角直接用于控制律设计。欧拉角的微分方程包含非线性三角函数,且存在万向锁,控制性能会退化。正确做法是使用四元数误差进行控制。
  • 误区二:忽略旋转矩阵的正交化。长时间运行后,数值误差会导致矩阵非正交,使坐标变换失真。应定期进行正交化修正(如每1000次更新一次)。
  • 误区三:混淆机体坐标系与地面坐标系下的动力学方程。平动方程在地面系下写,转动方程在机体系下写,两者通过旋转矩阵耦合,不可混用。
  • 误区四:四元数未归一化。四元数必须保持单位模长,否则旋转矩阵计算会出错。应在每次更新后强制归一化。

总结而言,飞行器建模的核心在于建立坐标系之间的数学桥梁,并选择合适的姿态表示方法。旋转矩阵适合理论推导,欧拉角适合人机交互,四元数则是飞控内部计算的主力。动力学方程将力与运动联系起来,是控制律设计的物理基础。掌握这些内容,后续的姿态控制、导航解算和状态估计都将水到渠成。