1、PID控制原理回顾:比例、积分、微分的作用与局限,为什么需要升级到MPC?

1.1 先聊聊PID——飞控领域的老朋友

做飞控的人,没人能绕过PID。我入行那会儿,第一个实战项目就是调四旋翼的悬停PID参数。说实话,那时候觉得PID就是万能药——三个参数调一调,飞机就能稳住。后来项目越做越深,才发现事情没那么简单。

PID控制器的核心思想,说白了就是三个字:看偏差,算输出。它根据当前测量值与目标值之间的误差,分别计算比例、积分、微分三个分量,然后加起来作为控制指令。

标准PID公式(位置式):

u(t) = Kp * e(t) + Ki * ∫e(τ)dτ + Kd * de(t)/dt

其中:
e(t) = 期望值 - 当前值(误差)
Kp、Ki、Kd 分别为比例、积分、微分增益

1.2 比例项——最直接的“推一把”

比例项干的事很简单:误差越大,输出越大。飞机偏左了,就往右推。你想想看,这就像你用手扶着一根竖起来的杆子——它往哪边倒,你就往反方向推。

优点:响应快,立竿见影。

缺点:单靠比例项,永远存在稳态误差。为什么?因为当误差小到一定程度,比例输出不足以克服阻力,系统就停在那不动了。

我个人的经验:调Kp的时候,我习惯先给一个较小的值,然后逐步增大,直到系统出现轻微振荡,再往回退20%。这个“临界振荡法”在大多数飞控项目里都管用。

1.3 积分项——专治“差那么一点”

积分项的作用,就是消除比例项搞不定的稳态误差。它把过去所有的误差累加起来,误差持续存在,积分值就越来越大,输出也越来越大,直到把误差彻底吃掉。

优点:消除静差,让系统精准到达目标。

缺点:积分饱和是个大坑。我在一个无人机载荷投送项目里就吃过这个亏——飞机悬停时受到持续风扰,积分项一直累加,等风停了,积分值还没降下来,结果飞机猛地冲过头,差点炸机。

避坑指南:我曾经因为积分饱和吃过亏,后来养成了两个习惯:

  • 给积分项加限幅,别让它无限制累加
  • 条件积分——误差太大时暂停积分,等误差回到合理范围再恢复

1.4 微分项——提前“踩刹车”

微分项看的是误差的变化率。误差在快速增大,它就提前输出一个反向力,抑制超调。说白了,它是个“预言家”——根据当前趋势预测未来,提前动作。

优点:抑制超调,提高系统稳定性。

缺点:对噪声极其敏感。传感器信号稍微有点毛刺,微分项就会放大成剧烈的抖动。我见过有人把微分增益调得过高,结果飞机在高频振荡中直接失控。

我的建议:实际工程中,微分项通常配合低通滤波器使用。先对误差信号做一阶滤波,再计算微分。代码里可以这样写:

// 带滤波的微分项计算
float filtered_error = 0.95f * last_filtered_error + 0.05f * error;
float derivative = (filtered_error - last_filtered_error) / dt;

1.5 PID的三大硬伤——为什么不够用了?

PID在简单场景下表现不错,但放到现代飞控里,问题就暴露出来了。我总结了三方面:

问题 具体表现 后果
无约束处理能力 PID不考虑电机转速上限、舵面行程极限 输出指令超出物理限制,实际执行不了,控制效果大打折扣
无预测能力 PID只看当前误差,不看未来趋势 遇到突发风扰或大机动指令,反应滞后,容易超调甚至发散
多变量耦合难解 四旋翼的俯仰、滚转、偏航、高度互相影响 调好一个通道,另一个通道又乱了,陷入“调参地狱”

你想想看,一个没有约束意识、没有预测能力、还处理不好耦合的控制器,怎么能应对复杂的飞行场景?

1.6 一个真实案例——PID在高速穿越机上的挣扎

我之前帮朋友调一架穿越机的竞速PID。目标很简单:以15m/s的速度通过一个2米宽的窗口。PID调了整整两天——

  • Kp调大了,过窗口时振荡,撞框
  • Kp调小了,响应太慢,直接偏出去
  • 加积分,消除稳态误差,但过弯时积分饱和,出弯后乱飘
  • 加微分,抑制超调,但传感器噪声被放大,高频抖动

最后勉强能过,但成功率只有60%。换成MPC之后,第一次试飞就达到了90%以上的成功率。这就是差距。

1.7 为什么MPC能解决这些问题?

MPC(模型预测控制)和PID最大的区别在于:MPC会“想”未来

它做的事情可以概括为三步:

  1. 建模型:知道系统下一步会怎么走
  2. 做预测:在当前状态下,推演未来N步的轨迹
  3. 找最优:在满足约束(电机限幅、姿态角限制等)的前提下,找到一条最优的控制序列

说白了,PID是“看到偏差再反应”,MPC是“提前算好怎么走”。

核心区别一句话总结:

PID是反馈控制——出了问题再补救。
MPC是预测控制——提前规划,避免问题发生。

1.8 本章知识体系总览

下面这张图,把PID的组成、局限以及MPC的升级路径串在了一起。我建议你多看几遍,后面章节的内容都会围绕这个框架展开。

从PID到MPC:知识体系与升级路径 PID控制 • 比例项:快速响应,存在静差 • 积分项:消除静差,易饱和 • 微分项:抑制超调,怕噪声 三大局限: ① 无约束处理能力 为什么需要升级? • 飞行场景越来越复杂 • 多变量耦合难以解耦 • 物理约束必须考虑 • 需要更高的控制精度 MPC模型预测控制 • 建立系统模型 → 预测未来N步状态 • 考虑约束条件 → 电机限幅、姿态限制 • 滚动优化 → 每个控制周期重新计算最优解 PID是“事后补救”,MPC是“事前规划”——这是本质区别

1.9 小结

这一章我们回顾了PID的三个核心环节——比例、积分、微分,也看到了它们在实际工程中的局限。PID不是不好,它简单、可靠、容易实现,在很多场景下依然是首选。但当你的飞行器需要高速机动、精确轨迹跟踪、或者面对强扰动时,PID就力不从心了。

MPC的出现,不是要完全取代PID,而是在PID够不着的地方,提供一种更强大的控制手段。接下来的章节,我会一步步带你从PID过渡到MPC,把模型建立、预测方程、优化求解这些核心内容讲透。

给读者的建议:如果你现在还在用PID做飞控,别急着全盘否定它。先把PID调好,理解它的优缺点,然后再学MPC。这样你才能知道——什么时候该用PID,什么时候该上MPC。


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