2、飞行器动力学基础:坐标系定义、欧拉角、四元数、刚体运动方程与常用假设

飞行器动力学建模是模块化构建飞行仿真系统、控制系统设计与状态估计的基石。任何飞行器的运动描述都依赖于一组精心定义的坐标系、一套无歧义的姿态参数化方法,以及基于牛顿-欧拉方程的刚体运动方程。本章将系统梳理这些基础概念,重点剖析欧拉角与四元数在工程应用中的优劣,并明确在模块化建模中常用的简化假设及其适用边界。理解这些内容,是后续构建气动模型、推力模型和导航解算模块的前提。

飞行器动力学模型模块化构建——基础坐标系与姿态参数化关系 坐标系定义 地心惯性系 (i) 地球固连系 (e) 导航系 (n) 机体轴系 (b) 姿态参数化 欧拉角 (ψ,θ,φ) 四元数 (q0,q1,q2,q3) 方向余弦矩阵 (DCM) 旋转矢量 刚体运动方程 力方程 (F=ma) 力矩方程 (M=Ḣ) 运动学方程 导航方程 常用假设 · 刚体假设 · 质量不变 · 地面系惯性 · 小扰动线性化 模块化接口 · 状态向量定义 · 输入/输出接口 · 坐标变换封装 · 初始化与重置 典型应用 · 固定翼六自由度 · 多旋翼控制 · 再入飞行器 · 制导与导航

上图展示了飞行器动力学建模中核心概念之间的逻辑关系:坐标系为运动描述提供参考基准,姿态参数化用于表达机体相对于参考系的角位置,而刚体运动方程则将这些几何关系与力、力矩联系起来,最终在工程假设的约束下形成可计算的数学模型。下面我们逐一展开。

2.1 坐标系定义与转换关系

核心原理

飞行器动力学中常用的坐标系包括:地心惯性坐标系(i系),原点在地心,轴指向恒星,是牛顿定律成立的惯性参考系;地球固连坐标系(e系),原点在地心,随地球自转,用于描述地面位置;导航坐标系(n系),通常取“东北天”或“北东地”当地水平坐标系,用于导航解算;机体坐标系(b系),原点在飞行器质心,x轴指向机头,y轴指向右翼,z轴指向机体下方(右手定则)。模块化建模的第一步,就是明确每个模块输入输出所采用的坐标系,并在模块边界处完成坐标变换。

判断方法或操作流程

在实际工程中,坐标变换通常通过方向余弦矩阵(DCM)实现。从n系到b系的变换矩阵可分解为三个基本旋转的乘积。操作流程上,建议在模型初始化阶段预先计算所有需要的变换矩阵,避免在每个仿真步长中重复三角函数计算。例如,将惯性系下的重力矢量转换到机体轴系时,应使用当前姿态的DCM矩阵左乘重力矢量。

坐标系对变换矩阵符号典型用途备注
i → eCei考虑地球自转含地球自转角速度Ω
e → nCne经纬高→当地水平与经纬度相关
n → bCbn姿态控制、导航由欧拉角或四元数构建
i → bCbi惯性导航解算可合并上述变换

案例拆解或实战场景

以某小型固定翼无人机为例,其GPS模块输出经纬高(WGS-84),而飞控中的姿态控制模块需要机体坐标系下的加速度。建模时,我们首先将GPS经纬高转换为n系下的位置矢量,再通过姿态四元数生成Cbn矩阵,将加速度计测量的比力从b系转换到n系,扣除重力后积分得到速度。这一过程中,任何坐标系的混用都会导致发散。我们在实际项目中曾遇到加速度计数据在n系下积分后出现明显漂移,排查后发现是初始对准时欧拉角转DCM的旋转顺序错误(先绕z轴再绕y轴,而非标准顺序),修正后问题解决。

常见误区:许多初学者将机体坐标系z轴定义为“向上”,这与航空标准(z轴向下)相反,会导致力矩方程符号错误。务必在建模文档中明确坐标系定义,并在模块接口处添加注释。

2.2 欧拉角与四元数

核心原理

欧拉角用三个角度(滚转φ、俯仰θ、偏航ψ)描述姿态,物理意义直观,但存在万向节锁问题(当θ=±90°时,φ和ψ的旋转轴重合,丢失一个自由度)。四元数则用四个参数(q0, q1, q2, q3)表示姿态,无奇异,计算效率高,适合数值积分。四元数满足归一化约束:q0²+q1²+q2²+q3²=1。从四元数到DCM的转换公式为:

C_b^n = [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²)]

判断方法或操作流程

在模块化建模中,建议内部状态统一使用四元数,仅在输入输出接口处转换为欧拉角供显示或调试。四元数的微分方程为:

dq/dt = 0.5 * [0  -p  -q  -r;
               p   0   r  -q;
               q  -r   0   p;
               r   q  -p   0] * q

其中p,q,r为机体角速度。数值积分后需重新归一化四元数,防止漂移。

案例拆解或实战场景

某高机动性导弹仿真中,若采用欧拉角描述姿态,当俯仰角接近90°时仿真直接崩溃。改用四元数后,全飞行包线内稳定运行。具体操作:将导弹气动模块输出的力矩代入欧拉方程求得角加速度,积分得到角速度,再通过四元数微分方程更新姿态。每步积分后执行归一化:q = q / ||q||。这一改动使仿真鲁棒性显著提升。

经验提醒:在模块化接口中,建议同时输出四元数和欧拉角,但明确标注“四元数为真实状态,欧拉角仅用于监控”。避免下游模块误用欧拉角进行积分。

2.3 刚体运动方程与常用假设

核心原理

刚体运动方程包括力方程(平动)和力矩方程(转动)。在机体坐标系下,力方程为:

m * (dV_b/dt + ω_b × V_b) = F_aero + F_thrust + F_gravity

其中V_b为机体速度矢量,ω_b为角速度矢量。力矩方程为:

I * dω_b/dt + ω_b × (I * ω_b) = M_aero + M_thrust

I为惯性张量。运动学方程将角速度与姿态变化率联系起来,导航方程则计算位置变化。

常用假设及其适用性

假设名称数学表达适用场景局限性
刚体假设忽略结构弹性变形常规飞行器控制设计大型柔性机翼飞机需引入气动弹性模型
质量不变dm/dt=0燃油消耗慢的短航时飞行长航时飞行需考虑质量变化
地面系惯性忽略地球自转和曲率近程无人机、导弹远程导航必须考虑科里奥利力
小扰动线性化状态偏差Δx满足线性方程配平点附近的稳定性分析大机动飞行不适用

案例拆解或实战场景

以某四旋翼悬停控制为例,初始建模采用“小角度假设”(sinθ≈θ, cosθ≈1),将运动方程线性化。在悬停点附近,该模型工作良好,PID控制器参数整定顺利。但当飞行器执行大角度机动(如翻滚90°)时,线性模型预测的响应与实际严重不符,导致控制发散。复盘发现,线性化假设在姿态角超过30°时误差已不可接受。解决方案是保留完整的非线性运动方程,仅在控制器设计中采用线性化模型,而仿真模型使用全量方程。这一案例说明,模块化建模中,仿真内核必须使用完整非线性方程,线性化模型只能用于特定模块(如控制律设计)。

总结复盘:本章核心要点可归纳为:①坐标系定义是建模的“宪法”,必须在项目开始时书面明确;②四元数是姿态解算的首选,欧拉角仅用于人机交互;③刚体运动方程必须保留非线性项,简化假设需在文档中声明其适用范围;④模块化接口应传递原始物理量(如力、力矩、角速度),而非经过假设简化的量。下一章将讨论气动力与力矩的建模方法。