本文主要是介绍积分分离PID控制算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
积分分离PID控制算法
- 积分分离PID控制:
- 积分分离控制基本思路:
- 积分分离控制算法表示:
- 积分分离式PID控制算法程序流程图:
注:本文内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者!
积分分离PID控制:
在普通的PID控制中引入积分环节的目的,主要为了消除静差,提高控制精度。但在过程启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的震荡。
积分分离控制基本思路:
当被控制量与设定值偏差较大时,取消积分作用,以避免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度。其具体实现步骤如下:
(1)根据实际情况,认为设定阀值 ϵ > 0 \epsilon>0 ϵ>0;
(2)当 ∣ e r r o r ( k ) ∣ > ϵ |error(k)|>\epsilon ∣error(k)∣>ϵ时,采用PD控制,可以避免产生过大的超调,又使系统有较快的响应;
(3)当 ∣ e r r o r ( k ) ∣ ≤ ϵ |error(k)|\leq \epsilon ∣error(k)∣≤ϵ时,采用PID控制,以保证系统的控制精度;
积分分离控制算法表示:
u ( k ) = k p e r r o r ( k ) + β k i ∑ j = 0 k e r r o r ( j ) T + k d ( e r r o r ( k ) − e r r o r ( k − 1 ) ) / T u(k)=k_perror(k)+\beta k_i\sum_{j=0}^{k}error(j)T+k_d(error(k)-error(k-1))/T u(k)=kperror(k)+βkij=0∑kerror(j)T+kd(error(k)−error(k−1))/T
式中,T为采样实际; β \beta β为积分项的开关系数。
β = { 1 ∣ e r r o r ( k ) ∣ ≤ ϵ 0 ∣ e r r o r ( k ) ∣ > ϵ \beta=\begin{cases} 1 |error(k)|\leq \epsilon \\ 0|error(k)|> \epsilon \end{cases} β={1∣error(k)∣≤ϵ0∣error(k)∣>ϵ
积分分离式PID控制算法程序流程图:
这篇关于积分分离PID控制算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!