增量式PID控制算法
注:本文内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者!
增量式PID控制算法概述:
当执行机构需要的控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得
u ( k − 1 ) = K p ( e r r o r ( k − 1 ) + K i ∑ j = 0 k − 1 e r r o r ( j ) + K d ( e r r o r ( k − 1 ) − e r r o r ( k − 2 ) ) ) u(k-1)=K_p(error(k-1)+K_i\sum_{j=0}^{k-1}error(j)+K_d(error(k-1)-error(k-2)))u(k−1)=Kp(error(k−1)+Kij=0∑k−1error(j)+Kd(error(k−1)−error(k−2)))
增量式PID控制算法
Δ u ( k ) = u ( k ) − u ( k − 1 ) \Delta u(k)=u(k)-u(k-1)Δu(k)=u(k)−u(k−1)
Δ u ( k ) = K p ( e r r o r ( k ) − e r r o r ( k − 1 ) ) + K i e r r o r ( k ) + K d ( e r r o r ( k ) − 2 e r r o r ( k − 1 ) + e r r o r ( k − 2 ) ) \Delta u(k)=K_p(error(k)-error(k-1))+K_ierror(k)+K_d(error(k)-2error(k-1)+error(k-2))Δu(k)=Kp(error(k)−error(k−1))+Kierror(k)+Kd(error(k)−2error(k−1)+error(k−2))
式中Δ u ( k ) \Delta u(k)Δu(k)为控制增量,K p K_pKp为比例系数,K i K_iKi为积分时间常数,K d K_dKd为微分时间常数,e r r o r ( k ) error(k)error(k)为本次偏差,e r r o r ( k − 1 ) error(k-1)error(k−1)为上次偏差,e r r o r ( k − 2 ) error(k-2)error(k−2)为上上次偏差。
由于控制算法中不需要累加,控制增量Δ u ( k ) \Delta u(k)Δu(k)仅与最近k kk次的采样有关,所有误动作时影响小,而且较容易通过加权处理获得比较好的控制效果。
增量式PID偏差不需要累加,输出结果只和最近3次的偏差结果有关。