首先我们来看PID控制器的传递函数模型;
G c ( s ) = K p ( 1 + T d s + 1 T i s ) G_{c}(s)=K_{p}\left(1+T_ds+\frac{1}{T_{i} s}\right) Gc(s)=Kp(1+Tds+Tis1)
为方便后续推导,我们将上式改写为:
G c ( s ) = K p + K d s + K i 1 s = U ( s ) e ( s ) G_{c}(s)=K_{p}+K_ds+K_i\frac{1}{s}=\frac{U(s)}{e(s)} Gc(s)=Kp+Kds+Kis1=e(s)U(s)
我们使用一节向后差分法将其转换为差分方程:
s = ( 1 − z − 1 ) / T s=\left(1-z^{-1}\right) / T s=(1−z−1)/T
U ( k ) − U ( k − 1 ) = K p ( e ( k ) − e ( k − 1 ) ) + K i T e ( k ) + K d ( e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ) = Δ U U(k)-U(k-1)=K_p(e(k)-e(k-1))+K_iTe(k)+K_d(e(k)-2e(k-1)+e(k-2))=\Delta U U(k)−U(k−1)=Kp(e(k)−e(k−1))+KiTe(k)+Kd(e(k)−2e(k−1)+e(k−2))=ΔU
这便是增量式PID控制器的一般表达形式,增量式PID是指数字控制器的输出只是控制量的增量Δu(k)。采用增量式算法时,计算机输出的控制量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。执行机构的累积功能可以采用硬件的方法实现;也可以采用软件来实现,如利用算式 u(k)=u(k-1)+Δu(k)程序化来完成。一般控制系统的采样周期T在选定后就不再改变,所以,一旦确定了 K p , K i , K d K_p,K_i,K_d Kp,Ki,Kd,只要使用前后3次测量的偏差值即可由上式求出控制增量。
增量式算法优点:
1.算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,计算量较小;
2.计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;
下面来说位置式PID控制器
可以看出由PID控制器的传递函数模型直接推导出的是增量式PID控制器,增量式PID控制器的输出为控制量的增量而并非当前控制量的实际值。
这就引出了位置式PID,直接根据积分和微分的定义写出PID的离散表达形式:
U ( k ) = K p e ( k ) + K i T ∑ i = 1 k e ( i ) + K d e ( k ) − e ( k − 1 ) T U(k)=K_pe(k)+K_i T\sum_{i=1}^ke(i)+Kd\frac{e(k)-e(k-1)}{T} U(k)=Kpe(k)+KiT∑i=1ke(i)+KdTe(k)−e(k−1)
由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度)一一对应,所以通常称上式为位置式PID控制算法。
位置式PID控制算法直接给出了控制量的实际值,将其直接输入执行机构即可;当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。