PID 是一种根据系统当前误差、历史误差累积以及误差变化趋势来综合生成控制量,从而使系统输出尽可能快速、平稳地逼近期望值(设定值)。
根据系统当前误差、历史误差累积以及误差变化趋势来综合生成控制量,从而使系统输出尽可能快速、平稳地逼近期望值(设定值)。
一 公式说明
连续时间:
K_p : 比例系数
K_i : 积分系数
K_d : 微分系数
u(t) :控制器输出
离散时间:
比例项(P)
- 直接与当前误差成正比
- 提高系统相应速度
- 过大时候会引起震荡或者超调
快速响应
积分项(I)
- 误差消除
- 消除稳态误差
- 过大时候易造成系统超调、积分饱和(Integral Windup)
消除稳态误差
微分项(D)
- 对误差变化率做出预测
- 抑制超调,提高系统稳定性
- 对噪声较为敏感,工程中长需要滤波
提前制动、抑制震荡
| 维度 | 连续时间 | 离散时间 |
|---|---|---|
| 时间形态 | 连续 | 分段、采样 |
| 数学工具 | 微积分 | 差分、求和 |
| 信号表示 | x(t) | x[k] |
| 实现方式 | 模拟系统 | 数字系统 |
| 误差来源 | 建模误差 | 采样误差、量化误差 |
二 说明
比例项是为快速达到目标设定的值,或者理解快速减小误差。
积分项是消除稳态误差。
微分项是使得变化更加平滑而不是突然变化。
三种对误差调整的方式,共同组成了 PID控制系统,K_p, K_i, K_d 三个值也决定了对这个控制系统的影响力.
对 误差积分 的意义在于:只要偏差不为 0,积分会随着时间持续增加。当存在外部的力导致误差存在,且比例项无法达到的时候,积分项的持续增加会使得输出逐渐靠近目标值(微调)不如比例快.
对 误差微分 的意义在于:分析误差变化趋势,当误差逐渐减小,微分值也会逐渐缩小,靠近速度也就逐渐缩小。当误差变化趋势为 0,微分项就会是 0.
我们以一个无人机上升高度到达一个10m高度来看
若 F = P + I + D
K_p 决定 F 的大小随着不断上升,高度差在减小 F 变得趋近于 G
假设采样间隔为 1 秒。
| 时间 (s) | 目标高度 | 纯 P (0.5, 0, 0) | P + I (0.5, 0.2, 0) | PID (0.5, 0.2, 0.3) | 现象分析 |
|---|---|---|---|---|---|
| 0 | 10 | 0 | 0 | 0 | 起点 |
| 1 | 10 | 3.5 | 3.5 | 2.8 | D项抑制了起步过猛 |
| 2 | 10 | 6.0 | 6.5 | 5.5 | PID 曲线最稳健 |
| 3 | 10 | 7.5 | 8.8 | 8.2 | P+I 开始冲刺 |
| 4 | 10 | 8.0 | 9.8 | 9.5 | P项由于升力=阻力,停滞 |
| 5 | 10 | 8.0 | 10.5 | 9.9 | P+I 出现超调(冲过了) |
| 6 | 10 | 8.0 | 10.2 | 10.0 | PID 完美锁定目标 |
| 7 | 10 | 8.0 | 10.0 | 10.0 | I项最终消除了误差 |
纯 P 控制(K_p = 0.5)
当高度到达 8 米时,误差 e=10−8=2,K_p * e = 0.5 * 2 = 1.0
重力和空气阻力在此时刚好也是 1.0。这意味着提供的向上动力和向下的阻力抵消了动力不再增加,无人机永远悬停在 8 米。
P + I 控制(K_i = 0.2)
虽然在 8 米处 P 项没力了,但 I 项会把过去 4 秒没达标的误差全部加起来:
(10+6.5+4+2.5...)×0.2
这会产生一个额外的推力,把无人机硬生生推向 10 米,由于 I 项累积的能量很大,当到达 10 米时,推力还没降下来,导致无人机冲到了 10.5 米(超调),然后又掉回来,像弹簧一样晃动。
P + I + D 完整控制 (Kd=0.3)
当无人机快要接近 10 米时,上升速度很快,此时 $de(t)/dt$(误差的变化率)是一个很大的负值。Kd×(负值) 会产生一个反向作用力。无人机以非常丝滑的曲线减速,精准停在 10 米,既没有误差,也没有晃动。
三 总结
当我们谈论 PID 时,我们实际上是在谈论一种关于平衡的算法哲学。
在一个充满不确定性的物理世界里,PID 控制器就像是一位充满智慧的舵手。它不仅仅是在操纵一组数据,而是在进行一场跨越时空的对话:P(比例) 是它对当下的果敢决断,I(积分) 是它对历史误差的深刻铭记,而 D(微分) 则是它对未来的敏锐洞察。
从无人机在指尖高度的稳如磐石,到平衡车在闹市中的灵动自如,PID 证明了:最完美的控制,往往不是爆发性的推力,而是三股力量相互掣肘、又相互成就后的那一份极致动态平衡。
PID 的世界远比这 10 米的高度复杂许多。如果你已经掌握了它的基础逻辑并感兴趣可以继续探索下去。
