PID 控制算法——关于平衡的算法哲学

PID 是一种根据系统当前误差历史误差累积以及误差变化趋势来综合生成控制量,从而使系统输出尽可能快速、平稳地逼近期望值(设定值)。

根据系统当前误差历史误差累积以及误差变化趋势来综合生成控制量,从而使系统输出尽可能快速、平稳地逼近期望值(设定值)。

一 公式说明

连续时间:

u(t) = K_pe(t) + K_i \int_{0}^{t}e(t^{'})dt^{'} + K_d \frac{de(t)}{dt}

K_p : 比例系数
K_i : 积分系数
K_d : 微分系数
u(t) :控制器输出

离散时间:

u(k) = K_pe(k) + K_i\Sigma_{i=0}^{k}e(i)T_s + K_d\frac{e(k)-e(k-1)}{T_s}

比例项(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=2K_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 米的高度复杂许多。如果你已经掌握了它的基础逻辑并感兴趣可以继续探索下去。

1 个赞

前排 :palm_up_hand: :palm_up_hand: :palm_up_hand: :palm_up_hand:

1 个赞