2. 飞控系统基础
飞控系统是无人机、eVTOL及各类自主飞行器的“大脑与神经中枢”,其核心任务并非简单的信号放大或舵面驱动,而是通过多源传感器融合实现对飞行器运动状态的高频、低延迟、高鲁棒估计,并据此完成姿态稳定、航迹跟踪与导航解算。理解飞控系统的硬件拓扑、姿态估计的数学本质以及坐标系之间的转换逻辑,是掌握传感器融合技术的先决条件。本章将系统拆解飞控系统的功能模块,厘清机体、地球与NED坐标系的内在关联,并给出工程实践中坐标转换的标准操作流程。
上图展示了飞控系统内部三大核心层次(传感器层、状态估计层、控制与导航层)之间的数据流关系,以及贯穿始终的坐标系转换需求。传感器层输出的原始数据(角速度、加速度、磁场强度、气压、卫星定位信号)必须经过时间对齐、误差补偿与坐标变换,才能被状态估计层有效利用;而状态估计层输出的姿态四元数、位置速度信息,又需要转换到统一的导航坐标系(NED)中,供控制律解算与任务规划使用。下面我们逐一深入。
2.1 飞控系统组成与功能边界
核心原理:飞控系统并非单一硬件,而是由惯性测量单元(IMU)、磁力计、气压计、GNSS接收机、接口电路、主控MCU/DSP以及执行机构驱动电路构成的闭环系统。从功能域划分,可抽象为“感知—估计—决策—执行”四个环节。感知层负责物理量测量;估计层通过融合算法抑制单一传感器的噪声与漂移;决策层根据任务目标生成期望姿态与推力指令;执行层通过PWM/DShot/串行总线驱动电机或舵机。
工程判断方法:在系统设计或排障时,应首先明确故障属于哪个功能域。例如,无人机悬停时持续向一侧漂移,可能原因包括:传感器层(加速度计零偏未校准)、估计层(滤波器增益失调导致姿态误差)、执行层(电机转速不一致)。通过读取飞控日志中的原始传感器数据与估计输出,可以快速定位问题层级。
| 功能域 | 典型硬件 | 关键输出 | 失效模式 |
|---|---|---|---|
| 感知 | IMU、磁力计、气压计、GNSS | 角速度、加速度、磁场、高度、位置 | 数据跳变、饱和、丢帧 |
| 估计 | MCU内嵌EKF/AHRS算法 | 姿态四元数、速度、位置 | 滤波发散、延迟增大 |
| 决策 | 飞行控制计算机 | 期望姿态角、油门指令 | 控制超调、振荡 |
| 执行 | 电调、舵机、电机 | 转速、舵面偏转 | 堵转、响应滞后 |
实战要点:在PX4或ArduPilot等开源飞控中,传感器数据通常以100Hz~1000Hz的频率发布,而姿态估计输出频率为250Hz~500Hz。若传感器数据时间戳不同步,会导致融合结果出现周期性误差。工程上常采用硬件FIFO或软件插值对齐时间戳。
2.2 姿态估计与导航基本概念
核心原理:姿态估计的本质是求解载体坐标系相对于参考坐标系的旋转关系。常用的数学表达包括欧拉角(Roll/Pitch/Yaw)、旋转矩阵和四元数。欧拉角直观但存在万向节锁问题;四元数无奇异性且计算效率高,是飞控中的主流表示。导航则涉及位置、速度、加速度在NED坐标系下的积分与校正,需要融合GNSS位置与IMU相对增量。
判断方法:评估姿态估计算法的优劣,主要看三个指标:静态精度(俯仰/横滚角误差<0.5°)、动态延迟(群延迟<10ms)、鲁棒性(在剧烈机动或磁干扰下不发散)。互补滤波适合计算资源受限的飞控,而扩展卡尔曼滤波(EKF)能融合更多传感器并估计传感器误差。
// 互补滤波核心思想(简化伪代码)
angle = 0.98 * (angle + gyroRate * dt) + 0.02 * accelAngle;
// 其中0.98和0.02为权重系数,需根据传感器特性调整
案例拆解:某四旋翼在GPS信号丢失后转入姿态模式,但飞行员反馈飞机低头速率过快。分析日志发现,EKF在GPS失效后位置估计发散,导致速度校正量异常,进而影响了姿态控制器的前馈项。解决方法是:在GPS失效时,将EKF的位置观测协方差设为无穷大,仅保留IMU积分,并降低位置控制器的期望带宽。
常见误区:初学者常认为加速度计可以直接测量姿态角。实际上,加速度计测量的是“比力”(Specific Force),包含重力分量与运动加速度分量。在飞行器加速或转弯时,直接使用加速度计计算姿态会产生严重误差,必须通过陀螺仪积分与加速度计/磁力计进行融合校正。
2.3 坐标系定义:机体、地球与NED
核心原理:机体坐标系(Body Frame)固连于飞行器,原点位于重心,X轴指向机头,Y轴指向右翼,Z轴指向机体下方(右手定则)。地球坐标系(ECEF)原点在地心,Z轴指向北极,X轴指向本初子午线与赤道交点。NED(North-East-Down)坐标系是导航解算的参考系,原点位于飞行器当前位置,X轴指向北,Y轴指向东,Z轴指向地心方向。NED坐标系相对于ECEF是“当地切平面”坐标系,忽略了地球曲率的影响,适合小范围导航。
转换流程:从机体坐标系到NED坐标系的转换需要先进行姿态旋转(使用四元数或旋转矩阵),再进行位置平移。具体步骤如下:
- 获取当前姿态四元数 q = [q0, q1, q2, q3];
- 构建旋转矩阵 R_b2n(q);
- 将机体坐标系下的向量 v_b 转换为 NED 向量 v_n = R_b2n * v_b;
- 若涉及位置,需将NED原点平移至目标参考点。
| 坐标系 | 原点 | X轴 | Y轴 | Z轴 | 用途 |
|---|---|---|---|---|---|
| 机体 (Body) | 飞行器重心 | 机头方向 | 右翼方向 | 机体下方 | IMU测量、控制力矩 |
| 地球 (ECEF) | 地心 | 本初子午线 | 东经90° | 北极 | GNSS原始解算 |
| NED | 起飞点/当前点 | 北向 | 东向 | 地向 | 导航、航迹控制 |
经验提醒:在将ECEF坐标转换为NED坐标时,需要先计算经纬高(LLA),再通过参考点的经纬高建立旋转矩阵。工程中常用地理库函数(如GeographicLib)完成转换,但需注意参考椭球体模型(WGS84)与本地坐标系的差异。
实战场景:在编队飞行中,长机与僚机需要共享NED坐标系下的相对位置。若各机使用不同的参考原点,则需通过RTK基站广播统一的参考点坐标。某物流无人机项目在测试中发现,两架飞机在NED坐标系下的间距误差达到2米,经排查是僚机误将ECEF坐标直接当作NED坐标使用,导致缺少坐标旋转。修正后误差降至0.2米以内。
总结复盘:坐标系转换是飞控系统中最容易出错但又最基础的环节。建议在代码中封装独立的坐标转换模块,并编写单元测试验证旋转矩阵的正交性(R * R^T = I)以及平移向量的正确性。每次上电后,应通过地面站检查NED坐标系下的初始位置是否与GPS坐标一致。