一、飞控系统概述:什么是飞控系统
飞控系统,说白了就是无人机的大脑加小脑。
大脑负责思考——我要飞多高、往哪去、怎么转弯。小脑负责平衡——我歪了要扶正,风来了要稳住。两者合在一起,就是飞控系统。
我在项目里见过不少新手,上来就调PID、改参数,结果飞机上天就翻。为什么?因为他根本不知道飞控在干什么。你想想看,连系统怎么工作的都不清楚,调参不就是瞎蒙吗?
所以这一章,我们先打好基础。把飞控系统的定义、组成、工作原理讲透。后面调参的时候,你才知道每个参数在动什么。
核心定义:飞控系统(Flight Control System)是无人机中负责感知姿态、计算控制量、驱动执行机构的闭环控制系统。它让无人机能够自主稳定飞行,并响应遥控指令。
二、飞控系统的核心组成
飞控系统由三大块组成:传感器、处理器、执行器。缺一不可。
2.1 传感器——感知世界
传感器是飞控的眼睛和耳朵。它告诉处理器:我现在是什么姿态、在什么位置、速度多快。
常见的传感器包括:
- IMU(惯性测量单元):包含加速度计和陀螺仪。加速度计测重力方向,陀螺仪测角速度。两者配合,就能知道飞机的俯仰、横滚、偏航角度。
- 磁力计(电子罗盘):测地磁场方向,用来确定航向。说白了就是指南针的电子版。
- 气压计:测大气压力,换算成高度。我遇到过一个问题——气压计受温度影响很大,夏天中午和傍晚测出来的高度能差好几米。嗯,这个后面调参时会讲到怎么处理。
- GPS/北斗:提供经纬度和海拔,用于定位和航线飞行。
- 光流/超声波/激光雷达:用于室内或低空定高、避障。
个人经验:我建议新手先关注IMU和气压计。这两个是飞控最核心的传感器。GPS在城市里容易丢星,磁力计容易受电机干扰。先把基础传感器搞明白,再谈别的。
2.2 处理器——计算决策
处理器是飞控的大脑。它读取传感器数据,运行控制算法,输出控制指令。
常见的飞控处理器有:
| 处理器型号 | 架构 | 主频 | 常见飞控 |
|---|---|---|---|
| STM32F4/F7 | ARM Cortex-M | 168-216 MHz | Pixhawk、CUAV |
| STM32H7 | ARM Cortex-M7 | 480 MHz | Pixhawk 4、CUAV V5+ |
| ESP32 | Xtensa LX6 | 240 MHz | DIY飞控、INAV |
| RP2040 | ARM Cortex-M0+ | 133 MHz | 树莓派Pico飞控 |
处理器上跑的是实时操作系统(RTOS),比如FreeRTOS、NuttX。为什么不用Linux?因为Linux调度延迟不可控。飞控要求毫秒级响应,Linux做不到。我曾经试过在树莓派上跑飞控,结果一个中断来了,系统正在刷屏,飞机直接翻了。嗯,从那以后我再也不敢在飞控上用非实时系统。
2.3 执行器——动手干活
执行器是飞控的手和脚。它接收处理器的指令,驱动电机、舵机等设备。
常见的执行器包括:
- 电子调速器(ESC):控制无刷电机的转速。飞控输出PWM信号给ESC,ESC驱动电机旋转。
- 舵机:控制飞机的舵面(副翼、升降舵、方向舵)或云台角度。
- 电机:提供升力和推力。多旋翼用无刷电机,固定翼用有刷或无刷电机。
注意:执行器的响应速度直接影响飞行品质。我见过有人用便宜的ESC,结果电机响应延迟了50ms,飞机在空中像喝醉了一样。调参调了半天,最后发现是ESC的问题。所以,硬件选型别省钱。
三、飞控系统的工作原理
飞控系统的工作原理,可以用一句话概括:感知-决策-执行。这是一个闭环控制过程。
下面这张图展示了飞控系统的工作流程:
具体来说,飞控系统的工作流程是这样的:
- 传感器采集数据:IMU读取加速度和角速度,气压计读取高度,GPS读取位置。这些数据以几百到几千赫兹的频率不断更新。
- 姿态解算:处理器把传感器原始数据融合成姿态信息。常用的算法有互补滤波、卡尔曼滤波。说白了,就是把加速度计和陀螺仪的数据结合起来,算出飞机当前是平躺还是倾斜。
- 控制计算:处理器比较当前姿态和目标姿态(来自遥控器或航线),计算偏差。然后通过PID控制器算出需要调整的量。
- 输出指令:处理器把控制量转换成PWM信号,发送给ESC和舵机。
- 执行动作:电机加速或减速,舵机偏转,飞机姿态改变。
- 反馈循环:传感器再次测量新的姿态,回到第1步。这个循环每秒执行几百次到上千次。
关键点:飞控系统是一个实时闭环系统。它的核心是「快」和「准」。快——控制周期要短,一般4-10ms。准——姿态估计要精确,误差控制在1度以内。
3.1 控制周期
控制周期是飞控最重要的参数之一。它决定了飞控的响应速度。
常见的控制周期:
| 控制层级 | 频率 | 周期 | 说明 |
|---|---|---|---|
| 姿态控制 | 250-400 Hz | 2.5-4 ms | 最内环,控制角速度 |
| 角度控制 | 100-200 Hz | 5-10 ms | 中间环,控制姿态角 |
| 位置控制 | 10-50 Hz | 20-100 ms | 最外环,控制位置 |
为什么会这样分层?因为内环需要更快的响应。你想想看,飞机要翻了你得马上扶正,这个反应时间必须短。而位置控制可以慢一点,因为位置变化没那么快。
避坑指南:我曾经调一个四轴,姿态控制频率设到了500Hz,结果处理器跑不过来,反而导致控制不稳定。后来降到333Hz,一切正常。所以不是频率越高越好,要看处理器能不能扛得住。
3.2 控制算法
飞控最常用的控制算法是PID控制。PID就是比例、积分、微分三个环节的组合。
简单来说:
- P(比例):当前偏差有多大,就输出多大的控制量。偏差大,输出大;偏差小,输出小。
- I(积分):把过去的偏差累积起来。用来消除稳态误差。比如飞机一直往左偏,积分项会慢慢把飞机拉回来。
- D(微分):预测偏差的变化趋势。偏差在变大,就提前加大控制量;偏差在变小,就减小控制量。用来抑制震荡。
PID控制的数学表达式:
输出 = Kp × 偏差 + Ki × ∫偏差 dt + Kd × d(偏差)/dt
嗯,这个公式看着简单,但调起来学问大了。后面几章我们会专门讲怎么调PID参数。
注意:PID参数不是万能的。如果飞机本身机械结构有问题(比如重心偏了、电机振动大),调PID也救不回来。我见过有人花了两周调参,最后发现是螺旋桨装反了。所以,调参之前先检查硬件。
四、总结
飞控系统就是传感器+处理器+执行器,三者配合完成感知-决策-执行的闭环控制。
传感器告诉处理器「我在哪」,处理器算出「我要去哪」,执行器负责「把我送到那」。然后传感器再告诉处理器「我到了没」,没到就继续调。
这个循环每秒跑几百次,你才能看到飞机稳稳地悬停在空中。
下一章我们会深入讲传感器——IMU的工作原理和数据处理。到时候我会分享一些我在实际项目中踩过的坑,比如怎么处理传感器噪声、怎么校准磁力计。嗯,那都是真金白银换来的经验。
公众号:蓝海资料掘金营,微信deep3321