1. 飞控系统概述

大家好,欢迎来到这门课。我是你们的老朋友,一个在飞控领域摸爬滚打多年的工程师。今天咱们聊聊飞控系统的那些事儿。说实话,每次带新人,我都是从这一章开始讲起。因为它就像一张地图,告诉你整个飞控世界长什么样。

1.1 无人机发展简史:从航模到智能体

无人机这东西,其实比很多人想象的要老。早在一战时期,就有人搞出了“空中鱼雷”的雏形。但真正意义上的现代无人机,得从20世纪末说起。

我个人把这段历史分成三个阶段:

  • 萌芽期(1990s-2005):主要是航模爱好者的玩具。那时候飞控?不存在的。全靠遥控器手动操作,炸机是家常便饭。我记得2003年第一次飞固定翼,手抖得跟筛糠似的。
  • 爆发期(2005-2015):开源飞控的出现改变了游戏规则。ArduPilot、MultiWii这些项目让普通人也能玩得起自动驾驶。说白了,就是“飞控”这个概念开始普及了。
  • 成熟期(2015-至今):大疆等厂商把消费级无人机做成了“会飞的相机”。飞控不再是能不能飞的问题,而是飞得稳不稳、安不安全、智不智能的问题。

你想想看,从一块简单的单片机,到如今集成了视觉、激光雷达、RTK高精度定位的智能系统,这变化有多大?

1.2 飞控系统定义与核心功能

飞控系统,说白了就是无人机的“小脑”加“大脑”。小脑负责保持平衡,大脑负责执行任务。

它的核心功能,我归纳为三个字:感、算、控。

功能模块 英文术语 具体职责 我在项目中踩过的坑
感知 Sensing 读取IMU(加速度计、陀螺仪)、磁力计、GPS、气压计等传感器数据 IMU安装位置没选好,震动导致数据全是噪声,飞起来像喝醉了酒
计算 Computing 姿态解算(AHRS/互补滤波/EKF)、位置估计、控制律计算 EKF参数没调好,GPS丢星后位置估计直接发散,差点提控回家
控制 Control 输出PWM/DShot信号给电调,驱动电机转动 曾经把电机正反转搞反了,解锁后飞机直接翻跟头

核心要点:飞控的本质是一个实时反馈控制系统。它每秒要执行成百上千次“读取-计算-输出”的循环。这个循环的稳定性,直接决定了飞机能不能安全飞行。

嗯,这里要注意。很多人以为飞控就是一块电路板。其实不对。飞控是一个系统,它包括硬件(主控芯片、传感器、接口)、软件(实时操作系统、驱动、算法)以及通信链路(遥控器、数传、图传)。

1.3 常见飞控架构对比

市面上飞控那么多,到底怎么选?我这些年用过不下十种飞控,从几百块的Pixhawk到几万块的工业级飞控。这里挑三个最有代表性的给大家讲讲。

1.3.1 Pixhawk 系列

Pixhawk可以说是开源飞控的“标准答案”。它由苏黎世联邦理工(ETH Zurich)的团队设计,后来成了PX4项目的官方硬件平台。

  • 硬件特点:双处理器架构(一个STM32主控跑算法,一个协处理器做IO和故障保护)。接口丰富,I2C、SPI、UART、CAN、SBUS应有尽有。
  • 软件生态:支持PX4和ArduPilot两套固件。你可以自由切换。
  • 适用场景:科研、教育、工业应用。我见过有人用它做农业植保机,也有人用它做无人机编队表演。

我的建议:如果你是初学者,想深入理解飞控原理,Pixhawk是首选。它的文档最全,社区最活跃。我曾经花了一个月时间,把PX4的EKF源码从头到尾读了一遍,收获巨大。

1.3.2 ArduPilot

ArduPilot其实是一套软件,不是硬件。它最早源于APM(ArduPilot Mega)项目,后来移植到了Pixhawk、Cube、乃至各种自定义硬件上。

  • 核心优势:功能极其丰富。支持固定翼、多旋翼、直升机、无人车、无人船、甚至水下航行器。代码成熟度高,经过了几百万小时的飞行验证。
  • 配置方式:通过Mission Planner地面站进行图形化配置。参数多达上千个,新手容易懵。
  • 控制架构:经典的PID级联控制。位置环-速度环-姿态环-角速率环,一层套一层。

避坑指南:我曾经在ArduPilot上遇到过一个问题:默认的PID参数在普通四轴上飞得好好的,换了一台大轴距的六轴后,飞机开始低频振荡。后来发现是“振动补偿”参数没调。ArduPilot的参数太多,改一个参数可能影响全局,建议每次只改一个,并做好记录。

1.3.3 Betaflight

Betaflight是穿越机(FPV Racing Drone)领域的王者。它从Cleanflight分支出来,专注于“暴力飞行”和“极速响应”。

  • 设计哲学:一切为了性能。为了降低延迟,它砍掉了GPS、光流、超声波等“多余”功能。说白了,它就是个纯粹的姿态控制器。
  • 控制算法:使用PID控制器,但加入了动态滤波、防积分饱和、油门位置补偿等高级技巧。它的“RPM滤波”技术,能根据电机转速实时滤除振动噪声,效果惊人。
  • 配置方式:通过Betaflight Configurator进行配置。界面简洁,参数少,上手快。

你想想看,为什么穿越机玩家都爱Betaflight?因为它快。我试过在Betaflight上把PID的D项拉到很高,飞机依然稳如磐石。换做ArduPilot,早就抖成筛子了。

1.3.4 三款飞控对比总结

对比维度 Pixhawk (PX4) ArduPilot Betaflight
定位 通用科研/工业平台 功能最全的自动驾驶系统 穿越机竞速/花飞
硬件要求 较高(双处理器) 中等(单核即可) 低(F4/F7/H7)
传感器支持 全(GPS、光流、激光雷达等) 全(甚至支持ADSB) 少(仅IMU+气压计)
控制频率 1-4 kHz 400 Hz - 1 kHz 4-32 kHz
学习曲线 陡峭 非常陡峭 平缓
典型应用 测绘、巡检、物流 农业、科研、无人车 穿越机、竞速、花飞

1.4 飞控系统核心架构图

下面这张图,是我自己总结的飞控系统通用架构。不管用哪种飞控,底层逻辑都差不多。

飞控系统核心架构图 传感器层 (Sensing) IMU (加速度计+陀螺仪) | 磁力计 | GPS | 气压计 | 光流 | 激光雷达 状态估计层 (Estimation) 互补滤波 / 扩展卡尔曼滤波 (EKF) / 惯性导航 (INS) 控制层 (Control) 位置控制 (外环) → 速度控制 (中环) → 姿态控制 (内环) → 角速率控制 (最内环) PID / LQR / 自抗扰控制 (ADRC) / 模型预测控制 (MPC) 执行层 (Actuation) PWM / DShot / CAN 输出 → 电调 (ESC) → 电机 → 螺旋桨 数据流向 传感器 → 估计 → 控制 → 执行

这张图展示了飞控系统的数据流。从传感器采集原始数据,到状态估计模块算出姿态和位置,再到控制模块计算控制量,最后输出给电机。这是一个完整的闭环。

关键理解:飞控的每一层都有延迟。传感器有采样延迟,估计有计算延迟,控制有输出延迟。这些延迟加起来,就是“系统延迟”。系统延迟越大,飞机越难控制。这也是为什么穿越机要用32kHz的PID频率——就是为了把延迟压到最低。

好了,第一章的内容就到这里。飞控的世界很大,我们慢慢探索。记住,理解飞控最好的方式就是动手。找一块Pixhawk,刷上PX4,接上GPS,试着让它飞起来。哪怕只是悬停,你也能学到很多东西。