题目:用抗积分饱和PID控制传递函数为G(s)的被控对象
G(s)=523500/(s^3+87.35s^2+10470s)
二、抗积分饱和原理
积分饱和现象是在系统存在一个方向的偏差,PID控制器的输出由于积分作用的不断加大而加大,从而导致执行器达到极限位置,如果控制器的输出继续增大,阀门开度却不能再增大,此时计算机输出超出了执行器正常操作的范围而进入了饱和区。一旦系统出现反方向的偏差,控制器的输出逐渐退出饱和区,但若进入的饱和区很长,那么退出饱和区的时间也就很长,在饱和区这段时间执行器仍停留在极限位置而不能随偏差的反向立即做出相应的改变,就好像系统失去了控制一样,造成控制性能恶化,这就是积分饱和。
作为防止积分饱和方法之一就是抗积分饱和法。思路是在计算U(k)时,首先判断上一时刻控制器的输出量U(k-1)是否已经超出限制范围。
若U(k-1)>=Umax,则只累加负偏差,正偏差则去掉积分作用;
若U(k-1)<=-Umax,则只累加正偏差,负偏差则去掉积分作用;
三、程序清单:
%PID Controler with intergration sturation
clear all;
close all;
ts=0.001;
sys=tf(5.235e005,[1,87.35,1.047e004,0]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0;y_2=0;y_3=0;
x=[0,0,0]';
error_1=0;
um=6;
kp=0.85;ki=9.0;kd=0.0;
rin=30; %Step Signal
for k=1:1:800
time(k)=k*ts;
u(k)=kp*x(1)+kd*x(2)+ki*x(3); % PID Controller
if u(k)>=um
u(k)=um;
end
if u(k)<=-um
u(k)=-um;
end
%Linear model
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;
error(k)=rin-yout(k);
M=1;
if M==1 %Using intergration sturation
if u(k)>=um
if
error(k)>0 %前一时刻PID输出值超出控制器的最大限度,而当前的偏差为正,说明被 alpha=0; %控量未达到设定值,防止积分饱和故去掉积分作用
else
alpha=1;
%前一时刻PID输出值超出控制器的最大限度,而当前的偏差为负,说明被 end %控量超出设定值,应该较小控制器的输出,则加上积分作用
elseif u(k)<=-um
if error(k)>0
%这是历史PID输出值超出控制器的最小限度,道理与超出最大限度的一样
alpha=1; %一定要区分是前一时刻的PID输出值和当前的偏差情况共同判断是否加积
else
%分作用
alpha=0;
end
else
alpha=1;
end
elseif M==2 %Not using intergration
sturation
alpha=1;
end
%Return of PID parameters
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
error_1=error(k);
x(1)=error(k); % Calculating P
x(2)=(error(k)-error_1)/ts; % Calculating D
x(3)=x(3)+alpha*error(k)*ts; % Calculating
I
xi(k)=x(3);
end
figure(1);
subplot(311);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('Position tracking');
subplot(312);
plot(time,u,'r');
xlabel('time(s)');ylabel('Controller output');
subplot(313);
plot(time,xi,'r');
xlabel('time(s)');ylabel('Integration');
当M=2时即无抗积分饱和:
当M=1时即有抗积分饱和:
由上图比较得到,加抗积分饱和后超调量明显减小,而且系统能较快的达到稳定值,系统的稳定性和精确性得到改善。
四、结语:
积分饱和和积分分离是两个不同的概念,从他们的原理可知,积分分离是偏差来决定是否加入积分作用;而积分饱和则是由前一控制器的输出值和当前的偏差值的情况共同决定是否加积分作用。
·