第1章 PID控制基础:从发展史到核心原理

各位同学,欢迎来到《PID控制算法与电机调速实战》的第一章。

PID控制,说白了就是一套“看偏差、算输出、调回来”的闭环逻辑。我做了十几年电机控制,接触过各种花哨的算法——模糊控制、自适应控制、模型预测控制……但说句实在话,90%的工业现场,一个调好的PID就能搞定。所以,别小看它。

1.1 PID控制算法发展史——从机械到芯片

PID不是某个天才一拍脑袋想出来的。它是几代人、上百年工程实践的结晶。

时期 关键人物/事件 贡献
1922年 Minorsky 首次提出PID控制理论,用于船舶自动驾驶
1930年代 Taylor仪器公司 发明气动PID控制器,实现工业应用
1942年 Ziegler & Nichols 提出Z-N整定法,至今仍是工程标配
1950年代 电子管/晶体管时代 模拟PID控制器普及,体积缩小
1980年代至今 微处理器/DSP/FPGA 数字PID成为主流,灵活可编程

我个人印象最深的是刚入行时,师傅让我调一个老式模拟PID调节器。那东西全是电位器和电容,拧一圈参数变一次,调完手都酸了。现在呢?一个STM32,几行代码,搞定。但核心逻辑,还是那三个字母——P、I、D。

核心观点:PID控制是工业自动化领域最经典、最成熟、应用最广的闭环控制算法。没有之一。

1.2 PID控制原理——闭环的“眼睛”和“手”

先看一张图,把PID的骨架搭起来。

PID控制系统结构图 设定值 r(t) Σ 偏差 e(t) PID P: Kp·e(t) I: Ki·∫e(t)dt D: Kd·de(t)/dt 被控对象 输出 y(t) 反馈 闭环核心:输出 y(t) 反馈到输入端,与设定值 r(t) 比较,形成偏差 e(t)

PID控制的核心逻辑就三步:

  1. 测量——传感器告诉你当前实际值是多少
  2. 比较——实际值和目标值一减,得到偏差 e(t)
  3. 修正——根据偏差,算出一个控制量,驱动执行器去调整

你想想看,这不就是人做事的本能吗?我开车时发现偏右了(偏差),就往左打一点方向(修正),然后继续看路(测量)。闭环,无处不在。

小提示:数字PID和模拟PID本质一样,只是把连续信号变成了离散采样。采样周期选多少?我一般先按被控对象响应时间的1/10~1/20来试。

1.3 P/I/D三个环节的作用与特点

好,重头戏来了。P、I、D三个字母,各自扮演什么角色?

1.3.1 比例环节 P——最直接的“反应”

比例控制,就是偏差越大,输出越大。公式很简单:

u(t) = Kp × e(t)

Kp是比例增益。Kp越大,系统对偏差越敏感,响应越快。

但问题来了——纯比例控制一定会留下稳态误差。为什么?因为当偏差小到一定程度,输出也小,不足以把系统推到目标值。我做过一个温控项目,纯P控制,温度始终差2度,怎么都追不上。这就是稳态误差。

注意:Kp不是越大越好。Kp过大会导致系统振荡,甚至发散。我曾经把Kp调大了一倍,电机直接啸叫,吓得我赶紧断电。

1.3.2 积分环节 I——消除误差的“老黄牛”

积分环节,专门对付稳态误差。它把过去所有的偏差累加起来,只要还有偏差,积分项就不断增长,直到把系统推到目标值。

u(t) = Ki × ∫e(t)dt

Ki是积分增益。积分项的特点是:慢,但准。

不过,积分也有副作用——积分饱和。当系统长时间无法到达目标时,积分项会累积到很大的值。一旦偏差反转,积分项需要很长时间才能“消化”掉,导致超调严重。

我遇到过最典型的情况:电机启动时,积分项疯狂累积,等电机转速超过目标后,积分项还在往上冲,结果转速冲过头,来回震荡好几次才稳定下来。后来加了抗积分饱和(Anti-Windup),问题才解决。

1.3.3 微分环节 D——预测未来的“先知”

微分环节,看的是偏差的变化趋势。偏差在变大,它就输出一个反向力来“刹车”;偏差在变小,它就减少输出,防止过冲。

u(t) = Kd × de(t)/dt

Kd是微分增益。微分项的特点是:快,但怕噪声。

为什么怕噪声?因为微分对高频信号极其敏感。传感器上有一点毛刺,微分项就会放大成剧烈的控制输出。我调试一个伺服电机时,编码器信号有轻微抖动,微分项直接让电机“发抖”。后来加了低通滤波,才压住。

三个环节一句话总结:

  • P——看现在,反应快,但留误差
  • I——看过去,消误差,但会饱和
  • D——看未来,抑过冲,但怕噪声

1.4 三个环节的对比与选择

环节 作用 优点 缺点 适用场景
P 比例放大偏差 响应快,实现简单 存在稳态误差 允许有静差的系统
I 累积偏差 消除稳态误差 积分饱和,响应慢 需要高精度跟踪
D 预测偏差趋势 抑制超调,提高稳定性 放大噪声,对高频敏感 响应快、要求平滑的系统

实际项目中,我很少只用P或只用I。大多数情况是PI组合或PID组合。

  • PI控制:电机调速的标配。P保证响应速度,I消除静差。D一般不用,因为电机速度信号微分后噪声太大。
  • PID控制:位置控制、温度控制等对超调敏感的场景。D用来“踩刹车”,防止过冲。
  • P控制:某些液位控制、压力控制,允许有静差,图个简单。

我的经验:新手调PID,先只调P,让系统能响应但不振荡。然后加一点I,把静差吃掉。最后看超调大不大,再决定要不要加D。别一上来就三个全开,容易乱。

1.5 本章小结

这一章,我们把PID的“根”刨了一遍。

  • PID不是新东西,但它是所有先进控制算法的基础
  • 闭环控制的核心:测量→比较→修正
  • P管现在,I管过去,D管未来
  • 三个环节各有脾气,搭配使用才能出效果