一、飞控系统概述:飞控到底是什么?

大家好,我是老张。做飞控调参这些年,我带过不少新人。每次第一节课,我都会问一个问题:飞控到底是什么?

有人说是「无人机的大脑」,有人说是「一块电路板」。都对,但不够。

我个人习惯把飞控理解成「一个在极端环境下做实时决策的微型系统」。它要在每秒几百次的循环里,回答三个问题:

  1. 我现在是什么姿态?(感知)
  2. 我想去什么姿态?(期望)
  3. 怎么让电机转才能过去?(控制)

说白了,飞控就是感知 → 解算 → 控制的闭环。这个闭环跑得稳不稳,直接决定了你的飞机是「指哪打哪」还是「原地翻跟头」。

核心一句话:飞控不是一块板子,而是一套从传感器读到电机转的完整链路。


二、飞控的核心组成:这些传感器到底在干嘛?

飞控硬件上最关键的,就是那几个传感器。我见过不少新手,上来就调PID,结果发现飞机乱飘——其实问题根本不在PID,而是传感器数据就是脏的。

1. IMU(惯性测量单元)—— 飞控的「内耳」

IMU包含加速度计陀螺仪,通常还带一个磁力计(有的厂家把磁力计单独放)。

  • 加速度计:测的是「我感受到的力」。悬停时它感受到重力,所以输出 (0, 0, -g)。但它怕震动——震动一来,数据就全是噪声。
  • 陀螺仪:测的是「我转得有多快」。它不怕震动,但会漂移。你把它放桌上不动,过几分钟它可能告诉你「我在以每秒5度旋转」——这就是零偏。

我的经验:加速度计和陀螺仪是互补的。加速度计长期准但短期噪声大,陀螺仪短期准但长期会漂。飞控的「姿态解算」本质上就是用加速度计去校正陀螺仪的漂移

2. GPS(全球定位系统)—— 飞控的「眼睛」

GPS告诉你位置和速度。但注意,GPS更新频率很慢(通常5-10Hz),而且受卫星数量、多径效应影响很大。

我曾经在楼宇间飞一架测绘无人机,GPS定位突然跳了3米,飞机直接往墙上撞。后来我养成了一个习惯:在城市环境里,永远不要100%信任GPS

3. 气压计 —— 飞控的「高度计」

气压计通过测量大气压来推算高度。每上升100米,气压下降约12hPa。听起来很准对吧?但问题来了:风一吹,气压就变。你飞机悬停着,一阵风过来,气压计告诉你「你上升了0.5米」——其实根本没动。

避坑指南:我曾经在调试一款四旋翼时,发现高度保持模式一直在上下抖动。查了两天,最后发现是气压计直接暴露在螺旋桨下洗气流中。解决办法:加一块海绵做导流,或者用卡尔曼滤波把气压计和加速度计融合。

4. 磁力计 —— 飞控的「指南针」

磁力计测量地球磁场,用来确定航向(偏航角)。但它有个致命弱点:怕干扰。电机通电后的磁场、机身上的铁磁材料、甚至地下的钢筋,都会让它「找不着北」。

嗯,这里要注意:磁力计必须做校准。我见过有人直接拿没校准的磁力计飞航线,结果飞机一直在画圈——因为航向一直在漂。


三、飞控的工作原理:姿态解算与控制链路

好,传感器数据进来了。然后呢?飞控内部到底是怎么工作的?

我画了一张图,帮你理清整个链路:

飞控系统工作原理:从传感器到电机 传感器层 IMU(加速度计+陀螺仪) GPS / 气压计 / 磁力计 更新率:100Hz ~ 10Hz 原始数据 姿态解算 互补滤波 / 卡尔曼滤波 融合加速度计+陀螺仪 输出:Roll, Pitch, Yaw 姿态角 控制器 外环:位置/速度控制 内环:姿态/角速率控制 PID / 串级PID 电机 反馈回路:实际姿态 → 与期望姿态比较 → 误差输入控制器 期望姿态(遥控器/航线) 传感器 解算 控制 执行+反馈

第一步:姿态解算

传感器数据进来了,但都是「原始值」。加速度计告诉你「我感受到2.3g的力」,陀螺仪告诉你「我在以每秒30度旋转」——这些数字本身没有意义。

飞控要做的是:把这些原始数据转换成「我现在的姿态是什么」

常用的方法有两种:

  • 互补滤波:简单、计算量小、适合资源受限的MCU。我早期在STM32F103上做飞控时用的就是它。
  • 卡尔曼滤波:更精确、但计算量大。现在主流飞控(如Pixhawk)用的都是它。

为什么需要滤波?因为单一传感器不可靠。你想想看,如果只用陀螺仪积分算角度,10秒后角度就漂了。如果只用加速度计,飞机一震数据就炸了。所以必须融合。

核心公式(互补滤波简化版):

角度 = 0.98 × (上一时刻角度 + 陀螺仪×dt) + 0.02 × 加速度计角度

0.98和0.02就是权重。陀螺仪占大头,加速度计做长期校正。

第二步:控制链路

姿态解算完了,飞控知道了「我现在在哪」。接下来要回答:「我怎么去我想要的位置?」

这就是控制链路的事。典型的飞控控制链路是串级PID

控制层级 输入 输出 更新频率
外环(位置环) 期望位置 vs 实际位置 期望速度 10-50 Hz
中环(速度环) 期望速度 vs 实际速度 期望姿态角 50-100 Hz
内环(姿态环) 期望姿态 vs 实际姿态 期望角速率 100-400 Hz
最内环(角速率环) 期望角速率 vs 实际角速率 电机PWM值 400-1000 Hz

为什么要串级?因为内环比外环快。外环发现位置偏了,告诉内环「往右倾斜5度」,内环立刻执行。如果只用单环,等位置误差累积到一定程度再直接控制电机,飞机早就晃成筛子了。

调参经验:我建议新手先从内环(角速率环)开始调。内环调稳了,外环再差也不会炸。内环没调好就动外环——嗯,我当年就是这么炸了一架450轴距的机架。


四、总结:飞控调参的核心逻辑

讲到这里,你应该明白了:飞控调参,调的不是某个参数,而是整个链路的配合

  • 传感器数据不准 → 姿态解算就错 → 控制就乱 → 飞机就炸
  • 内环响应太慢 → 外环再准也没用 → 飞机就晃
  • 外环增益太大 → 内环饱和 → 飞机就抖

所以,我每次拿到一架新飞机,第一步不是调PID,而是:

  1. 检查传感器数据:加速度计有没有噪声?陀螺仪零偏大不大?磁力计校准了没?
  2. 检查姿态解算:用手晃动飞机,看姿态角跟不跟得上?有没有延迟?
  3. 再调控制:从内环到外环,一层一层来。

记住一句话:数据是基础,解算是桥梁,控制是执行。任何一个环节出问题,飞机都飞不好。

好,这一章就到这里。下一章我们开始讲具体的调参工具和流程——到时候我会拿实际数据出来,带你们走一遍完整的调参过程。


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