当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得:
增量式PID控制算法:
根据增量式PID控制算法,设计了仿真程序,被控对象如下:
PID控制参数:kp=8,ki =0.10,kd =10。增量式PID阶跃跟踪结果如图所示。
仿真程序:
%Increment PID Controller
clear all;
close all;
ts=0.001;
sys=tf(400,[1,50,0D);
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;
error_2=0;
for k=1:1:1000
time(k)=k*ts;
yd(k)=1.0;
kp=8;
ki=0.10;
kd=10;
du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)-u_1+du(k);
if u(k)=10
u(K)=10;
end
if u(k)<=-10
u(k)=-10;
end
y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error=yd(k)-y(k);
u_3-u_2;u_2-u_l;u_1-u(k);
y_3=y_2y_2-y_1;y_1=y(k);
x(1)=error-error_1;
x(2)-error-2 *error_1+error_ 2;
x(3)=error;
error_2=error_1;
error_1=error;
end
figure(1);
plot(time,yd.'r',time,y,'k', linewidth',2);xlabel('time(s));ylabel('yd.y);
legend('ideal position value' ,'tracking position value');
由于控制算法中不需要累加,控制增量△u(k)仅与最近k次的采样有关,所以误动作时影响小,而且较容易通过加权处理获得比较好的控制效果。
在计算机控制系统中,PID控制是通过计算机程序实现的,因此它的灵活性很大。一些原来在模拟PID控制器中无法实现的问题,在引入计算机以后,就可以得到解决,于是产生了一系列的改进算法,形成非标准的控制算法,以改善系统品质,满足不同控制系统的需要。