大林算法和Smith算法
纯滞后对象控制系统设计
----Dahlin算法和Smith预估
一、实验目的:
1.理解具有纯滞后的温度控制系统的数学模型和工作特点;
2.理解Dahlin(大林)算法的工作原理,以此为基础进行控制器设计,并与PID控制器进行控制效果对比;
3.理解Smith预估控制的工作原理,并拓展分析模型精度对系统控制性能的影响;
4.能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置;
5.掌握计算机控制仿真结果的分析方法。
二、实验工具:
MATLAB软件(6.1以上版本)。
三、实验原理



四、实验内容
(1)以具体含纯滞后环节的系统实例,完成Dahlin控制器和Smith预估器的设计。
(2)完成Dahlin算法控制器的系统仿真。
(3)完成Smith预估器的系统仿真

clear all;
close all;
ts=0.5;
sys1=tf([1],[0.4,1],'inputdelay',0.76);
dsys1=c2d(sys1,ts,'zoh')
[num1,den1]=tfdata(dsys1,'v');
sys2=tf([1],[0.15,1],'inputdelay',0.76);
dsys2=c2d(sys2,ts,'zoh');
Z=[0;0;0.2865];P=[-0.5813];G=zpk(Z,P,1/0.4512,'Ts',0.5);
dsys=G*dsys2/(1-dsys2);
[num,den]=tfdata(dsys,'v');
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;
y_1=0.0;
error_1=0.0;error_2=0.0;error_3=0.0;
ei=0;
for k=1:1:50
time(k)=k*ts;
rin(k)=1.0;
yout(k)=-den1(2)*y_1+num1(1)*u_2+num1(2)*u_3;
error(k)=rin(k)-yout(k);
M=1;
if M==1
u(k)=num(1)*error(k)+num(2)*error_1+num(3)*error_2+num(4)*error_3...
-den(4)*u_1-den(5)*u_2-den(6)*u_3-den(7)*u_4-den(8)*u_5;
elseif M==2 %Using PID Method
ei=ei+error(k)*ts;
u(k)=1.0*error(k)+0.10*(error(k)-error_1)/ts+0.50*ei;
end
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_1=yout(k);
error_3=error_2;error_2=error_1;error_1=error(k);
end
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');














