2. 飞控系统架构:飞控硬件组成、传感器融合原理、控制环路简介

好,咱们直接进入正题。飞控系统,说白了就是无人机的大脑加小脑。大脑负责算,小脑负责稳。这一章,我带你把飞控的骨架摸清楚。

2.1 飞控硬件组成:核心板与外围传感器

一块典型的飞控板,拆开来看,其实没那么神秘。我习惯把它分成三块:主控芯片传感器集群接口与电源

主控芯片(MCU)

这是飞控的运算核心。目前主流的是 STM32 系列,比如 F4 和 F7。为什么选它们?算力够,外设丰富,生态成熟。我在项目里踩过一个坑——选了颗性能刚好的芯片,结果后期加功能,CPU 占用率飙到 95%,差点翻车。所以,选型时留 30% 的余量,这是经验。

传感器集群

飞控要感知自身状态,全靠它们。核心传感器就这几样:

  • 陀螺仪:测角速度。你想想看,飞机要转多快,它说了算。
  • 加速度计:测加速度。悬停时它告诉你重力方向在哪。
  • 磁力计:测地磁。相当于电子指南针,帮你定航向。
  • 气压计:测高度。气压一变,高度就变。
  • GPS/RTK:测位置和速度。室外飞行的眼睛。
个人习惯:我调试新飞控时,第一件事就是看传感器原始数据。陀螺仪静止时输出应该在 0 附近跳动,加速度计 Z 轴应该是 9.8 m/s²。如果不对,先查硬件焊接,别急着调 PID。

接口与电源管理

飞控要连电调、接收机、数传、OSD。接口通常是 PWM、UART、I2C、SPI。电源管理这块,我建议用独立的 5V 稳压模块,别直接从电池取电。我曾经因为电源纹波太大,导致磁力计数据乱跳,查了三天才找到原因。

2.2 传感器融合原理:为什么需要融合?

单个传感器都有毛病。陀螺仪有零偏,时间长了会漂。加速度计怕震动,一抖就乱跳。磁力计受电机磁场干扰。GPS 在室内直接废掉。

所以,得把它们的数据揉在一起,取长补短。这就是传感器融合。

核心思想:互补滤波与卡尔曼滤波

说白了,就是信谁多一点的问题。

  • 互补滤波:简单粗暴。陀螺仪数据高通(信短期),加速度计数据低通(信长期)。我早期做四轴时就用这个,代码量小,跑得快。
  • 卡尔曼滤波:更科学。它根据模型预测状态,再用测量值修正。效果更好,但计算量大。现在飞控芯片性能强了,基本都用卡尔曼。

为什么会这样?因为卡尔曼能自动调整权重。震动大时,它自动降低加速度计的权重;GPS 信号差时,它自动降低位置权重。嗯,这里要注意,卡尔曼的调参是个技术活,协方差矩阵设不好,融合结果还不如互补滤波。

姿态解算:从传感器到欧拉角

融合的结果,最终要输出三个角度:横滚角(Roll)、俯仰角(Pitch)、偏航角(Yaw)。这是控制环路能看懂的语言。

我常用的方法是四元数法。它没有万向锁问题,计算也方便。代码大概长这样:

// 四元数更新(简化版)
void attitude_update(float gx, float gy, float gz, float dt) {
    float q0, q1, q2, q3;
    // 陀螺仪积分
    q0 += (-q1*gx - q2*gy - q3*gz) * dt / 2.0f;
    q1 += ( q0*gx + q2*gz - q3*gy) * dt / 2.0f;
    q2 += ( q0*gy - q1*gz + q3*gx) * dt / 2.0f;
    q3 += ( q0*gz + q1*gy - q2*gx) * dt / 2.0f;
    // 归一化
    float norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
    q0 /= norm; q1 /= norm; q2 /= norm; q3 /= norm;
}

这段代码看着简单,但实际工程里,还要加磁力计修正、加速度计修正。不然偏航角会慢慢漂走。

2.3 控制环路简介:内环与外环

飞控的控制,核心就是闭环反馈。你给一个目标角度,飞控要算出电机转速,让飞机达到那个角度。

经典结构:串级 PID

飞控控制环路是串级的。分两层:

  • 外环(角度环):输入目标角度,输出目标角速度。
  • 内环(角速度环):输入目标角速度,输出电机控制量。

为什么搞两层?因为角速度环响应快,角度环响应慢。内环先稳住角速度,外环再慢慢调角度。这样飞机才稳。

避坑指南:我曾经把内外环的 PID 参数搞反了。外环 P 调得很大,内环 P 调得很小。结果飞机一飞就剧烈震荡,差点炸机。记住:先调内环,再调外环。内环调稳了,外环才有意义。

控制频率与延时

内环通常跑 200Hz - 400Hz,外环跑 50Hz - 100Hz。为什么?因为角速度变化快,需要高频控制。角度变化慢,低频就够了。

延时是飞控的大敌。从传感器采样到输出控制量,整个链路延时最好控制在 5ms 以内。我见过一个项目,因为用了慢速的 I2C 读取磁力计,导致控制环路延时 20ms,飞机根本飞不稳。

2.4 知识体系总览

下面这张图,把这一章的核心逻辑串起来了。你一看就明白:

飞控系统架构总览 硬件组成 MCU + 传感器 + 接口 传感器融合 互补滤波 / 卡尔曼滤波 控制环路 串级 PID 内环+外环 数据流:传感器原始数据 → 融合姿态 → 控制环路 → 电机输出 核心传感器 • 陀螺仪:角速度 • 加速度计:加速度/重力 • 磁力计:地磁方向 • 气压计:高度 串级控制环路 外环(角度环):50-100Hz 内环(角速度环):200-400Hz 输出:PWM 信号 → 电调 → 电机 反馈:传感器数据闭环 硬件是骨架,融合是血液,控制是灵魂

这张图把硬件、融合、控制三层的关系画清楚了。你调试飞控时,脑子里要有这张图。出问题了,先定位是哪一层的问题。

警告:不要跳过传感器校准直接调 PID。我见过太多人,传感器零偏都没校准,就开始调参数,结果越调越乱。先校准,再调参,这是铁律。

好了,这一章的内容就这些。硬件组成、传感器融合、控制环路,这三块是飞控的基石。你把这些搞明白了,后面调参才有底气。


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