闭环控制与比例积分微分控制器¶
多旋翼本身不会在受到扰动后自动恢复到目标姿态。飞控必须持续测量实际运动,把它与操作者或导航系统给出的目标比较,再调整各电机输出。
这种“测量、比较、修正、再次测量”的结构称为闭环控制(Closed-loop Control)。
小型多旋翼常使用比例积分微分控制器(PID,Proportional Integral Derivative Controller)完成快速姿态控制。它不是唯一的控制方法,但适合用来理解反馈控制如何把误差转化为电机修正量。

闭环中有哪些量¶
以滚转角速度控制为例:
- 期望值:操作者希望机体以多快的角速度滚转;
- 测量值:陀螺仪测得的实际滚转角速度;
- 误差:期望角速度减去实际角速度;
- 控制量:控制器计算的滚转修正;
- 执行结果:混控器改变左右电机推力,机体产生滚转角加速度。
控制器计算完成后,新的机体运动又会被陀螺仪测得并反馈回来。这个过程以固定周期不断重复。
开环控制为什么不够¶
如果飞控只根据摇杆位置给电机固定输出,而不读取传感器反馈,它无法知道:
- 电机和螺旋桨是否存在差异;
- 电池电压是否下降;
- 机体是否受到阵风;
- 载荷和重心是否变化;
- 上一次修正是否已经过量。
开环命令只能告诉执行器“输出多少”,不能保证机体“实际运动多少”。闭环反馈使系统能够对这些变化作出修正。
比例、积分和微分三项¶
比例积分微分控制器由三项控制作用组成。

比例项处理当前误差¶
比例项(P,Proportional)与当前误差成比例。误差越大,立即施加的修正越强。
比例作用过弱时,系统对目标变化和扰动响应迟缓;过强时,系统可能反复越过目标并产生振荡。
积分项处理持续误差¶
积分项(I,Integral)累积一段时间内的误差,用于消除不能被比例项完全抵消的持续偏差。
例如,重心偏移、持续侧风或者动力差异可能让系统长期偏离目标。积分项会逐渐增加修正,直到平均误差减小。
积分作用过弱时,飞行器可能无法保持目标;过强或者没有合理限制时,累计控制量可能造成缓慢摆动和恢复延迟。
微分项抑制快速变化¶
经典微分项(D,Derivative)根据误差变化速度产生阻尼作用,帮助减少过冲和快速振荡。
实际飞控实现常会对陀螺仪测量变化进行微分或使用等效结构,以减少期望值突变造成的冲击。微分运算会放大高频噪声,因此微分项通常需要专门滤波。
微分作用不足时,快速动作后的过冲可能更明显;微分作用过强或信号噪声过大时,电机可能发热并产生高频振荡。
角度环和角速度环¶
自稳飞行通常使用串级控制:
- 外层角度控制器比较期望倾角和估计倾角;
- 外层输出期望角速度;
- 内层角速度控制器比较期望角速度和陀螺仪角速度;
- 内层输出滚转、俯仰和偏航修正;
- 混控器把修正分配给电机。
角速度模式下,摇杆可以直接生成期望角速度,因此不需要自稳角度环持续把机体拉回水平。无论采用哪种模式,内层角速度控制仍然负责快速稳定机体运动。
前馈不是PID三项之一¶
前馈(FF,Feedforward)根据期望值变化直接生成控制作用,不必等待误差出现后再修正。
在人工操控场景中,前馈可以让飞行器更快跟随摇杆变化;但前馈本身不能纠正外部扰动和模型误差,仍需要反馈控制。
因此:
- PID根据实际误差修正;
- 前馈根据目标变化提前作用;
- 两者可以共同存在,但概念不同。
混控器如何分配控制量¶
PID控制器分别给出滚转、俯仰和偏航修正,油门通道给出总推力目标。混控器根据机架布局和电机位置,把这些控制量转换为每个电机的输出。
以四旋翼为例,单个电机输出同时受到以下因素影响:
- 总推力;
- 滚转修正;
- 俯仰修正;
- 偏航修正。
电机输出存在最小值和最大值。当某个电机达到上限或下限后,混控器无法继续完整实现所有控制目标,这称为输出饱和。
在输出饱和时,飞控可能需要在保持总推力和保持姿态之间作出取舍。不同固件和混控策略的处理方式并不相同。
输出饱和为什么会引起积分饱和¶
如果执行器已经达到上限,控制器即使继续增大命令也无法产生更多力矩。此时误差可能持续存在,积分项仍不断累积,这称为积分饱和(Integrator Windup)。当执行器退出饱和后,过大的积分量会造成明显过冲和较慢恢复。
常见抗饱和方法包括:
- 对积分项设置上下限;
- 只在执行器仍有调节余量时继续积分;
- 在饱和时停止或衰减推动饱和方向的积分;
- 根据实际可实现输出反算并修正积分状态;
- 在控制分配中为关键姿态轴保留优先级和余量。
具体实现取决于固件,不能只看到“设置了积分上限”就认为所有饱和问题已经解决。
滤波、延迟和控制增益互相影响¶
陀螺仪信号包含机架共振、电机谐波和其他噪声。滤波可以抑制这些成分,但任何滤波都可能引入相位延迟。这里的相位延迟可以直观理解为“控制器看到的反馈比真实运动更晚到达”。
控制增益表示相同误差能够产生多强的控制修正。增益过低会使响应迟缓,增益过高则可能在延迟和结构共振作用下形成振荡。
控制系统需要在以下目标之间平衡:
- 抑制噪声;
- 减少延迟;
- 保持足够控制增益;
- 避免电机过热和高频振荡。
不能脱离滤波讨论PID,也不能只追求更高循环频率。采样、计算、通信和执行器响应共同决定闭环性能。
参数变化如何影响系统¶
下面的现象只用于帮助理解,不能代替日志和实测:
| 现象 | 可能相关因素 |
|---|---|
| 跟随目标迟缓 | 比例作用不足、滤波延迟、动力响应慢 |
| 快速高频振荡 | 控制增益过高、结构共振、传感器噪声 |
| 动作停止后反复摆动 | 阻尼不足、积分释放、结构柔性 |
| 持续偏离目标 | 积分作用不足、输出饱和、动力不对称 |
| 电机异常发热 | 高频振荡、微分噪声、机械故障、螺旋桨问题 |
同一个现象可能由多种原因造成。仅凭视频画面或者手感修改单个参数,容易掩盖机械故障。
调整参数前的顺序¶
- 检查机架、螺钉、电机轴承和螺旋桨是否完好;
- 核对飞控方向、电机顺序和螺旋桨旋向;
- 使用适合当前硬件和固件版本的默认值或厂商配置;
- 记录当前配置;
- 检查黑匣子日志、陀螺仪噪声和电机温度;
- 每次只改变少量相关参数;
- 在可控环境中短时间验证;
- 出现高频振荡或电机异常发热时立即停止。
在工作台测试电机前必须拆除螺旋桨。不要通过手持已安装螺旋桨的飞行器来判断PID响应。
检查理解¶
- 开环控制和闭环控制的根本区别是什么?
- 比例项、积分项和微分项分别关注什么?
- 为什么微分项容易受到高频噪声影响?
- 前馈和PID反馈有什么不同?
- 什么是电机输出饱和?