增量式PID控制算法及仿真

当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得:

增量式PID控制算法:

根据增量式PID控制算法,设计了仿真程序,被控对象如下:

PID控制参数:kp=8,ki =0.10,kd =10。增量式PID阶跃跟踪结果如图所示。

增量式PID控制算法及仿真_第1张图片

仿真程序:

%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控制器中无法实现的问题,在引入计算机以后,就可以得到解决,于是产生了一系列的改进算法,形成非标准的控制算法,以改善系统品质,满足不同控制系统的需要。

你可能感兴趣的:(MATLAB_PID控制,matlab,PID控制,学习)