离散系统的数字PID控制仿真(3页).doc
-离散系统的数字PID控制仿真-第 3 页离散系统的数字PID控制仿真被控对象为采样周期为1ms,针对离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器。其中,s为信号选择变量,s=1时为阶跃跟踪,s=2时为方波跟踪,s=3时为正弦跟踪。解:仿真程序如下% PID 控制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.0;y_2=0.0;y_3=0.0;x=0,0,0'error_1=0;for k=1:1:500 time(k)=k*ts; S=3; %s=1时为阶跃跟踪,s=2时为方波跟踪,s=3时为正弦波跟踪 if S=1 kp=0.50; ki=0.001; kd=0.001; rin(k)=1; %阶跃信号 elseif S=2 kp=0.50; ki=0.001; kd=0.001; rin(k)=sign(sin(2*2*pi*k*ts); %方波信号 elseif S=3 kp=1.5; ki=1.0; kd=0.01; rin(k)=0.5*sin(2*2*pi*k*ts); %正弦波信号endu(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID控制%Restricting the output of controllerif u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10;end %Linear modelyout(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(k)-yout(k); %Return of 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); x(1)=error(k); %Calculating P x(2)=(error(k)-error_1)/ts; %Calculating D x(3)=x(3)+error(k)*ts; %Calculating I error_1=error(k);endfigure(1);plot(time,rin,'b',time,yout,'r');xlabel('time(s)'),ylabel('rin,yout');仿真图形如图PID阶跃跟踪(s=1) 仿真图形PID方波跟踪(s=2) 仿真图形PID正弦跟踪(s=3) 仿真图形