第二章:PID控制理论入门——比例P、积分I、微分D的作用与物理意义

各位飞控工程师,大家好。今天我们来聊聊PID。

说实话,我刚入行那会儿,觉得PID就是个黑盒子。调参全靠蒙,飞起来像喝醉了一样。后来踩的坑多了,才慢慢摸清楚这三个字母到底在干什么。

这一章,我带你从物理意义出发,把P、I、D彻底搞明白。你想想看,搞懂了它们,调参就不再是玄学。

2.1 比例P:当前误差的“即时反应”

比例P,说白了就是“看到偏差,立刻纠正”。

举个例子:你的四旋翼要悬停在10米高度。现在它只有8米,差了2米。P的作用就是:差多少,就给多大油门往上顶

数学上很简单:

P输出 = Kp × 当前误差

Kp就是比例系数。Kp越大,反应越猛。

我在项目中遇到过一个问题:Kp调太大,飞机会剧烈震荡,像抽风一样。Kp太小呢?飞机慢悠悠地飘,永远到不了目标高度。

核心要点:

  • P只关心“现在差多少”,不关心过去,也不预测未来
  • P单独使用,一定会留下稳态误差——比如永远差0.2米到不了
  • Kp的物理意义:每单位误差产生的控制力

我的经验:调P的时候,先把I和D设为0。让飞机只靠P飞行,观察它是否稳定。如果它来回晃,说明P太大了;如果它反应迟钝,说明P太小了。

2.2 积分I:消除“历史欠账”

积分I,是用来解决P的“历史遗留问题”的。

为什么会这样?因为现实中总有各种干扰:风、重心偏移、电机老化……这些因素会让飞机永远差那么一点点。P再努力,也消除不了这个“稳态误差”。

I的作用就是:把过去所有的误差累积起来,算总账

I输出 = Ki × 误差的累积和

你想想看,只要误差还存在,积分就会一直增加,直到把误差彻底吃掉。

我曾经吃过一次大亏:在调试一款测绘无人机时,I调得太大。结果飞机在悬停时开始“呼吸”——忽高忽低,像在喘气。后来才明白,积分饱和了。

避坑指南:

  • I太大会引起“积分饱和”——控制量超出执行器极限,导致系统失控
  • I太小则消除误差太慢,飞机一直飘
  • 我建议:先让P把系统稳定住,再一点点加I,直到误差消失

2.3 微分D:预测未来的“刹车”

微分D,是最容易被忽视,但也是最妙的部分。

D不看误差大小,它看的是误差变化的速度。说白了,就是“误差正在变快还是变慢”。

D输出 = Kd × (当前误差 - 上一次误差) / 时间间隔

举个例子:飞机正在快速接近目标高度。P会拼命推油门,但D会说:“慢点!你冲过头了!”然后提前刹车。

我记得有一次调试高速穿越机,没有D的时候,飞机过弯总是甩尾。加上D之后,整个姿态变得非常干脆利落。

物理意义:

  • D相当于系统的“阻尼器”
  • 它能抑制超调,让系统更快稳定
  • D对噪声非常敏感——传感器抖动一下,D就会乱跳

我的习惯:在调D之前,先确保P和I已经基本到位。D的数值通常很小,从0.001开始试。如果飞机开始高频抖动,那就是D太大了。

2.4 三者的协同:一张图看懂

下面这张图,是我自己总结的PID控制逻辑框架。你看完就明白它们是怎么配合的了。

PID控制逻辑框架图 目标值 r(t) 误差 e(t) 比例 P 积分 I 微分 D + 控制量 u(t) 被控对象 反馈 y(t) 传感器测量

从图中可以看到:目标值减去反馈值得到误差,误差同时进入P、I、D三条路径,最后加起来输出控制量。这就是PID的全部秘密。

2.5 参数调优的实用口诀

最后,我送你一个自己总结的口诀,记下来,调参时用得上:

参数 调大后的效果 调小后的效果 典型问题
Kp 反应快,易震荡 反应慢,误差大 飞机抽风式抖动
Ki 消除稳态误差,易饱和 误差消除慢 积分饱和导致失控
Kd 抑制超调,对噪声敏感 超调大,系统不稳 高频抖动

调参顺序(我的铁律):

  1. 先调P,让系统稳定,允许有稳态误差
  2. 再加I,消除稳态误差
  3. 最后加D,抑制超调,提升响应速度

嗯,这一章就到这里。PID说难不难,说简单也不简单。关键是要理解每个字母背后的物理意义,而不是死记公式。

下一章,我们会把这些理论用到实际的飞控代码里。到时候你会发现,原来调参也可以这么有章可循。


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