干飞行控制这行这些年,被初学者问得最多的一个问题就是:飞控到底在干什么?很多人第一次接触无人机,打开调参软件看到 P、I、D 三个旋钮,以为飞控就是调参数、试手感。等到真的接手一个需要从零调试的飞行平台,才发现背后的理论基础比想象中扎实得多。你要让一架飞机稳定地飞起来、准确地完成任务,绕不开飞行控制理论这套骨架。这篇文章就围绕飞行控制理论基础这一章节的核心内容展开,聊聊飞机为什么能被控制、控制系统怎么搭、理论怎么落地成工程代码,以及我在实际调试中踩过的坑。无论你是学生、入门工程师,还是自己折腾飞控的爱好者,这篇文章都值得你花点时间慢慢看。
1. 飞行控制到底在控制什么
1.1 先搞清楚飞控的两个核心任务
飞行控制系统本质上解决两件事:第一件叫稳定性增稳,第二件叫轨迹跟踪。稳定性增稳是说飞机天生不太"愿意"自己保持稳定,尤其是一些静不稳定的布局,如果没有控制系统介入,受到一点扰动就会发散、翻滚、失控。轨迹跟踪则是说,当飞行器已经具备稳定的能力之后,我们要给它下达指令,让它按照期望的高度、速度、航向飞行。
你可以把飞机想象成一个刚学滑板的人。没有保护措施时,他稍微歪一下就可能摔跤,这是不稳定;此时有人从后面扶着他,帮他保持平衡,这就是增稳控制;等他站稳了,你告诉他"往左边滑到那个路口",这就是轨迹跟踪。
两个任务在工程上对应两个回路。内回路负责姿态稳定,把飞机当前的姿态角和角速度控制住,这是飞控系统的心脏;外回路负责航迹管理,根据 GPS、气压计等传感器信号去生成姿态指令。学飞行控制理论基础,第一件事就是把这两个层次掰开,否则后面看控制律、看数据都会一团浆糊。
1.2 感知、决策、执行:飞控系统的三个环节
任何闭环控制系统都离不开三个环节:感知、决策、执行。
感知环节用传感器测量飞行器当前的状态。最基本的配置包括陀螺仪测量三个轴的角速度、加速度计测量比力、磁力计测量航向、气压计测量高度、空速管测量速度。这些传感器数据经过融合处理后,组成了控制系统反馈信号的来源。如果你在理论课只讲控制律而不讲传感器,到工程上一定摔跟头,因为控制品质的极限很大程度上取决于反馈信号的质量。
决策环节就是飞控计算机,也叫飞行控制计算机。它读取传感器数据,对比目标状态和当前状态,按照控制律算法计算输出指令。这里说的控制律,可以是经典的 PID 控制,也可以是更复杂的 LQR、H∞、自适应控制等等。很多人觉得 PID 简单,但工程上 80% 的飞控还在用 PID 结构,关键在于参数的整定、抗饱和、抗扰动处理。
执行环节是舵机、电机、液压作动器等设备。飞控指令最终要靠它们改变舵面偏角或者推力大小,从而改变飞机的受力状态。执行机构的响应速度、线性度、死区特性都直接影响闭环系统的性能。我在实际项目里见过太多案例:控制律在仿真里跑得很好,一到真机上就控制不住,最后排查发现是舵机响应太慢、带宽不够。
2. 飞机飞起来的力学基础
2.1 坐标系:先建立一套共同的"语言"
飞行控制理论里第一步要解决坐标系问题。飞控工程师必须彻底理解地面坐标系和机体坐标系的关系,否则连"俯仰角是多少"都没法说清楚。
地面坐标系是相对惯性空间近似固定的参考系,通常取飞机的起飞点为原点,X 轴指向某个方向,Z 轴指向地心,Y 轴按右手定则确定。机体坐标系则固连在飞机上,原点在飞机重心,X 轴沿机身纵轴向前,Y 轴指向右翼,Z 轴指向下方。飞机在空中飞行的姿态,就是用机体坐标系相对地面坐标系的旋转关系来描述的。
这个旋转关系在工程上有三种常用表示方法:欧拉角、方向余弦矩阵、四元数。欧拉角最直观,滚转角、俯仰角、偏航角分别对应绕机体 X、Y、Z 轴的旋转。但它有一个致命的缺陷——万向节锁问题,当俯仰角接近正负 90 度时会丢失一个自由度。所以现代飞控内部计算普遍使用四元数,只是在显示和给用户看的时候转换成欧拉角。
我见过不少新手在写姿态解算代码时,拿着欧拉角直接做积分,结果姿态发散、数字到处乱跳。原因就是没有意识到欧拉角在特定姿态下会退化。理论课上这部分看起来只是数学推导,但到了实际工程里,它就是你调试一整天都找不到 bug 的根源。
2.2 六自由度运动:三个平动加三个转动
飞机的运动模型是刚体六自由度运动方程,大致可以分成两部分:沿三个轴的线运动和绕三个轴的角运动。
线运动方程描述重心的速度变化,来源是牛顿第二定律 F = ma。作用在飞机上的力包括气动力、推力、重力等。把这些力分解到机体坐标系的三个轴上,得到一个合力,除以质量就能得到加速度分量。角运动方程描述飞机绕重心的转动,来源是动量矩定理 M = I·ω',也就是合力矩等于转动惯量乘以角加速度。力矩来自气动力矩和推力偏心力矩等。
刚入门的人看到六自由度方程会觉得数学极其繁琐,因为里面塞满了交叉耦合项、转动惯量项、三角函数项。但飞控工程师真正需要抓住的是一条思路:控制飞机就是控制它的受力状态。你想让飞机抬头,就要产生一个抬头力矩;想让飞机加速,就要增大前进方向的力。所有的控制输入,最终都是通过改变这些力和力矩来起作用的。
还要理解一个概念——配平。飞机在稳态飞行时,即使不做任何机动,也需要某个舵面偏角和推力来维持力的平衡。比如平直飞行时,升降舵要有一个偏角来平衡机翼产生配平力矩。配平点是控制律设计的基准,动态控制都是在配平点附近做增量调节。这个思路在真机调试时特别重要。你在地面把控制律参数调好,但上天后飞一个不同的空速,配平状态变了,参数可能需要重新评估。
2.3 力和力矩的来源:气动力的脾气
飞行器在空中受到的力,主要来自空气动力学。机翼产生升力,机身产生阻力,舵面偏转产生控制力和力矩。这些气动力和力矩通常被系数化为无量纲气动导数,比如升力系数、阻力系数、俯仰力矩系数等。
理解气动力最关键的一点是:它们不是线性的,而是随着攻角、侧滑角、马赫数、舵面偏角变化的。写控制律的时候,如果只用一套线性化模型,那只能覆盖某一个飞行状态点附近的小扰动。飞机机动范围一大,气动特性就变了,控制参数就需要调整或者设计增益调度。
力矩可以分为稳定力矩和阻尼力矩两类。稳定力矩是"扶正"飞机的力矩,使人倾向于回到平衡状态,这取决于重心和气动焦点的相对位置;阻尼力矩是抵抗转动速度的力矩,它让飞机的运动不会无限振荡。稳定性和阻尼性是两个容易混淆的概念。稳定性决定飞机被扰动后有没有"回到原状"的趋势,阻尼决定"回位"的过程中振荡和衰耗的快慢。
工程上经常遇到的"荷兰滚"模态,就是横航向运动的一个振荡模态,副翼提供的滚转阻尼不足时,飞机就会一边摆头一边滚转,非常危险。飞行控制理论章节里会详细推导这些模态的方程和解耦方法,而工程落地的办法往往是设计一个偏航阻尼器,增加偏航阻尼力矩,让振荡收敛得更快。
3. 控制理论如何在飞控中落地
3.1 从开环到闭环:为什么必须要有反馈
飞行控制理论的一个基本问题是:要不要反馈?开环控制是事先算好控制指令,不加测量信息,直接发给舵面执行。它的前提是模型完全准确、扰动不存在、执行机构完美。现实中显然不满足。大气紊流、重心偏差、机翼结冰这些因素都会让飞机的受力状态偏离预期,开环控制在这种情况下根本没有纠错能力。
所以真实飞控一定采用闭环控制。传感器把当前姿态、位置测出来,与期望值相减得到误差,控制器根据误差计算控制指令,让飞机不断朝期望状态靠拢。闭环控制的魅力就在这里:不依赖精确的模型,只要反馈信息质量够好,系统就能自动克服大部分干扰。
我在一个固定翼项目中做过一次对比验证。同一架飞机,开环状态遥控器直接操纵舵面,飞机在阵风里很难稳住航向;启用增稳闭环之后,同样的阵风下飞机姿态波动缩小了约七成。这就是反馈的威力,看似简单的"误差—调节"循环,实际上蕴含着整个飞行控制理论的出发点。
3.2 静稳定性、动稳定性与飞行品质
学习飞行控制理论,稳定性分析是核心。一个稳定的系统在被扰动后能够恢复到原来的平衡状态,一个不稳定的系统则会发散或者发生等幅振荡。
静稳定性考察的是扰动的初始趋势。拿俯仰来说,飞机受到抬头扰动后,如果产生的气动力矩使机头有回落的趋势,就是静稳定的。动稳定性则看后续的运动过程:扰动后是衰减收敛、持续等幅振荡还是不断发散。对于飞机设计来说,静不稳定不一定完全不可取,现代战斗机甚至故意设计成静不稳定来换取高机动性,但代价就是必须依赖飞控系统实时增稳——这就是"静不稳定也要执飞控"的核心原因。
做控制律设计时,我们关注飞行品质这个概念。飞行品质是飞行员或者飞控系统对飞机稳定性和响应特性的主观定量评价,有专门的 Cooper-Harper 等级标准。你可能觉得这是飞行员的事,对无人机不重要。但实际上无人机也讲究类似指标——比如姿态响应的超调量、上升时间、稳态误差,这些都是评判控制系统性能的客观数字。理论课程里学的阻尼比、自然频率,就是在设计与评估这些响应品质时最核心的参数。
3.3 经典 PID 控制:姿态控制的基本功
飞控领域最常见的控制器结构还是 PID,比例—积分—微分。以俯仰姿态控制为例:给定期望俯仰角,实际俯仰角与它作差得到误差 e,比例项 P 让舵面响应误差的当前值——误差大就偏转多;积分项 I 累计历史误差——用来消除稳态误差,比如重心偏移带来的常值力矩;微分项 D 反映误差变化率——提前抑制超调和振荡。
PID 三个参数都有直观的物理意义。很多人调 PID 时习惯"乱试",但正确做法是理解每个项的作用再动手。我调飞控的固定流程是:先去掉 I 和 D,只保留 P,逐步增大 P 直到姿态开始出现轻微振荡;然后增加 D 抑制振荡,把系统推到一个临界阻尼附近;最后再加入一点 I 来消除稳态误差。整个过程需要看飞行数据曲线,而不是靠肉眼观察飞机。
工程上还有几个进阶细节要特别注意。第一是积分饱和:如果飞机被一个持续的期望俯仰角偏差长时间驱动,积分项会积累得非常大,一旦偏差被消除,这个积累量会导致明显超调甚至发散,所以要做抗积分饱和处理——比如限制积分项的最大幅度,或者误差较大时暂停积分。第二是微分项的噪声放大问题:D 项对噪声非常敏感,必须对反馈信号先做低通滤波,不然舵面会高频抖动。第三是控制周期和舵面带宽的匹配:你不可能让舵机去执行一个高于它物理响应能力的指令,否则系统会不稳定。
4. 从理论到工程:一个完整飞行控制系统的模样
4.1 控制律的分层结构:内回路与外回路
实际飞控系统通常分成内外两个回路。内回路是姿态回路,它的输入是期望姿态角,输出是舵面偏角;外回路是导航/航迹回路,输入是期望高度、期望航向或者期望位置,输出是内回路的期望姿态指令。
为什么要分层?因为飞机运动的物理时间尺度不同。姿态变化很快,内回路需要较高的带宽和刷新率;位置、高度变化慢,外回路可以慢一点。分层设计还带来一个好处:内回路稳定之后,外回路的设计可以把它当成一个快速响应的执行装置,大大简化控制律设计。
以高度保持为例。外回路传感器读气压高度,和期望高度比较,得到一个期望俯仰角指令。这个期望俯仰角传给内回路,内回路控制飞机实际俯仰角与指令一致,飞机随之爬升或者下降。可以看到外回路并不直接控制舵面,而是"借用"内回路的力量。这种层层嵌套的结构,是整个自动飞行控制的基本框架。
工程中常见的问题也是出在层与层的衔接上:外回路指令变化太快,内回路跟不上;或者内外回路带宽比不合适,导致整体响应振荡。一般来说,内回路带宽要显著高于外回路,大约 3 到 5 倍以上。这个原则贯穿所有飞控设计,不管是用 PID 还是更现代的控制理论。
4.2 传感器与执行机构:反馈链路的真实挑战
飞行控制理论基础不会只讲公式,还要讲反馈信号从哪里来。IMU 是姿态反馈的核心,包含陀螺仪和加速度计。陀螺仪测得角速度,对角速度积分可以得到角度,但积分会漂移;加速度计能测重力方向,但在机动飞行时无法单独使用。工程上用互补滤波或者卡尔曼滤波把两者融合,取长补短。
传感器安装位置也是个容易被忽略的点。IMU 一定要尽可能靠近飞机重心,远离振动源和电磁干扰源。如果传感器装在机翼上,飞机弹性弯曲产生的振动就会污染信号。我之前在一次试飞中发现飞机滚转轴持续高频抖动,排查到最后发现是航拍云台的电机 PWM 干扰了 IMU 数据线,加了一级滤波和屏蔽之后就完全正常了。
执行机构方面,舵机的响应速度用带宽描述,单位是赫兹。如果希望内回路能控制飞机做 2 Hz 以内的姿态机动,舵机带宽至少要有 10 Hz 以上,因为控制系统带宽通常只能达到执行机构带宽的十分之一到三分之一。液压舵机响应快、力矩大,但维护复杂;电动舵机结构简单、维护方便,但力矩和速度受限。选型时不能只看力矩,还要看速度、线性度与回程死区。
4.3 电传飞行控制:计算机接管之后的世界
现代大型飞机的飞控体系,核心是电传飞行控制技术。传统机械操纵系统用杆—索—液压管路把驾驶员的操纵传到舵面,电传系统则是操纵杆输出指令信号,经过飞控计算机处理后再给液压作动器拖动舵面。
电传带来的优势非常明显。第一是摆脱了飞机本身稳定性的束缚,可以设计静不稳定布局来提升性能;第二是可以做飞行包线保护,防止飞行员或者自主系统使出超过飞机承载极限的操纵;第三是控制律可以随飞行状态调整,增益调度变得非常方便。
飞控计算机的可靠性也很值得一提。电传系统普遍采用多余度架构,比如三余度或者四余度,多台计算机同时运行并互相表决,当一台故障时由另外几台接管。这种容错设计是飞行控制理论在工程可靠性上的延伸。我在学习这部分内容时最大的体会是:单纯的"控制算法好"不够,"系统在其他部件故障时还能安全降级工作"才是飞控的灵魂。
5. 常见问题与排查技巧实录
5.1 姿态发散:先查增益,再看时序
飞控调试中最常见的问题就是姿态发散。飞机上天后,某个轴的姿态开始来回摆,幅度越来越大,最后完全失控——这往往是内回路增益设置过高,系统处于欠阻尼或者负阻尼状态。
排查思路很明确:先从调参层面解决,把该轴的比例增益降下来,加大微分增益,观察是否收敛;如果怎么调都发散,就要怀疑传感器数据是否出了延迟或者噪声过大,因为时间延迟在反馈控制里会严重消耗相位裕度。我习惯用数据记录仪把姿态误差、舵面指令、传感器原始数据一起记录下来,再在地面用工具画出曲线对比,远比在空中肉眼看飞机可靠。
5.2 积分饱和与舵面抖动
积分饱和的经典场景是:飞机起飞后外回路发现高度偏差很大,持续输出大俯仰指令,内回路积分项疯狂累积。等到高度接近目标时,这个巨大的积分项还在往里头推,飞机直接冲过头,产生大幅过冲。
解决积分饱和的方法,我常用三种:限制积分项最大最小幅值、误差超出门限时暂停积分、以及把积分项设置为上周期输出与反馈的差值函数。舵面抖动则大多是微分项对噪声敏感引起的,解决办法是加强传感器滤波、降低微分增益、或者用一个带限的微分器替代理想微分。记住一个原则:宁可让响应慢一点,也不能让舵面高频抖动,因为抖动会烧舵机、消耗能量、恶化结构疲劳。
5.3 同一套参数换到不同飞机上就失控
不少朋友会直接从别人的飞控配置文件里拷贝一套 PID 参数装到自己飞机上,结果飞得一团糟。原因很简单:不同飞机的转动惯量、气动布局、舵面效率、传感器安装位置完全不同,控制参数必然不通用。
正确的做法是理解参数的量纲和含义:P 的单位就是"舵面偏度/姿态误差",它和飞机的舵效、转动惯量强相关;D 和 P 的配合则取决于飞机的动态响应特性。换飞机之后,即使想沿用某套参数,也要先用仿真工具做一遍验证,再在地面测试中检查舵面方向、行程、响应,最后以小幅度、短时长的试飞逐步逼近合适的参数。
5.4 排查问题的数据检查清单
- 检查传感器原始波形:是否存在饱和、跳变、持续噪声;
- 检查 IMU 安装面:是否与机体严格对齐,震动隔离是否到位;
- 检查舵面中立点和限位:零位偏置会直接导致配平错误;
- 检查控制周期:实际循环是否与预期一致,有没有偶发超时;
- 检查执行机构带宽:是否低于控制指令需求,造成相位滞后;
- 检查内回路与外回路带宽比:通常要求至少 3:1 到 5:1。
写这份清单不是拍脑袋,都是我实际调试时踩过的坑。有一次试飞中飞机平飞时总有 2 度的俯仰振荡,查遍所有参数都没问题,最后发现是升降舵拉杆存在虚位,舵面偏转指令发出后要过一段时间才真正动起来。这种机械层面的问题,再优秀的控制算法也很难完全弥补。
经过这些实际调试经历,我个人最大的体会是:飞行控制理论不是纸上谈兵,它每一章内容都能在试飞现场找到对应。坐标系是姿态解算的地基,六自由度方程是理解的框架,稳定性分析解释了为什么飞机飞得稳,PID 则是最务实的控制手段。越是到工程一线,越觉得理论基础的重要。系统重载、噪声混杂、执行机构受限的时候,最可靠的判断依据,就是你脑子里那套扎实的飞行控制理论框架。