跳到主要内容

PID 控制器

公式

连续形式

u(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dtu(t) = K_pe(t) + K_i\int_{0}^te(\tau)d\tau + K_d\frac{de(t)}{dt}

KpK_p: 成比例地调节系统误差信号,可加快系统响应,减小稳态误差

KiK_i: 通过积分消除系统稳态误差,抗扰动

KdK_d: 误差变化的导数,反映误差变化趋势(误差减小时为负,与比例积分相反),可较早地修正控制器输出,加快响应

离散化 (位置式)

u(k)=Kpek+Kii=1ke(i)Δt+Kde(k)e(k1)Δtu(k) = K_pe_k + K_i\sum_{i=1}^{k}e(i)\Delta{t} + K_d\frac{e(k) - e(k - 1)}{\Delta{t}}

化简 (增量式)

u(k)=u(k1)+Δu(k)Δu(k)=Kp(e(k)e(k1))+Kie(k)Δt+Kde(k)2e(k1)+e(k2)Δtu(k) = u(k-1) + \Delta{u}(k) \\ \Delta{u}(k) = K_p\Big(e(k) - e(k-1)\Big) + K_ie(k)\Delta{t} + K_d\frac{e(k) - 2e(k-1) + e(k-2)}{\Delta{t}}
备注

在实践中,因Δt\Delta{t}变化较小,可与Ki,KdK_i, K_d近似结合为一个参数,故可省略Δt\Delta{t}

对比

由公式推导可见,位置式与增量式 PID 本质上并无区别,只是将积分的过程移至了输出时的累加中。增量式的优点在于,对部分只需要输出增量的执行器可以直接输出。 在其余情况下,位置式可以实现积分部分单独控制,有更大的灵活性。

理解

  • P 控制实质上是一个放大器,适用于一阶惯性环节,使用 P 只是加快了系统调节速度。
  • PI 控制器增加了一个零点和一个位于原点的极点,适用于有扰动的一阶环节,零点可以缓解扰动系统极点对稳定性与动态过程的不利影响,极点可以消除或减小系统稳态误差
  • PD 控制器可以增加一个零点,有助于改善系统动态性能
  • PID 控制器可以增加两个零点,一个位于原点的极点,因此可以适用于二阶系统
  • 多级 PID可以增加更多的零点,适用于更高阶的系统。也可从规划角度理解,上级 PID 的输出是下级 PID 的输入的规划,可以实现控制量误差为 0 时,其导数也为 0,实现的是对导数的控制

应用优化

抗饱和 (Anti-Windup)

参考:PID 积分抗饱和方法

PID 中积分的作用是抵抗干扰,保证系统稳态精度,但其在干扰较大时会陷入饱和,导致系统响应时间增加,稳定性下降,因此需要添加抗饱和措施

  1. 积分限定 (Integral Clamping): 在处于饱和,并且误差信号与控制信号同号时,停止积分,即只有在非饱和或超调时才积分
  2. 积分分离:在误差较大时,取消积分环节,只有误差较小时才积分,是一种简化的变速积分的方法
  3. 反馈抑制抗饱和 (Back Calculation): 对积分项加入负反馈,理论上反馈系数范围为0.30.3~3KiKp3\frac{K_i}{K_p},一般取KiKp\frac{K_i}{K_p},也可根据饱和深度动态调整

Best Practices

  1. 尽管 PID 可以抗扰动,但对于可测量的扰动,还是应尽可能针对性地设计控制器,以达到最优性能,减少其对系统的影响后,再将 PID 用于应对剩余数学建模困难的扰动
  2. 减少系统的冲击,可以对控制输入进行规划,安排过渡过程,如滤波,路径规划,多级 PID 等