大林算法和Smith算法
? ?純滯后對(duì)象控制系統(tǒng)設(shè)計(jì)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ----Dahlin算法和Smith預(yù)估
一、實(shí)驗(yàn)?zāi)康模?/p>
1.理解具有純滯后的溫度控制系統(tǒng)的數(shù)學(xué)模型和工作特點(diǎn);
2.理解Dahlin(大林)算法的工作原理,以此為基礎(chǔ)進(jìn)行控制器設(shè)計(jì),并與PID控制器進(jìn)行控制效果對(duì)比;
3.理解Smith預(yù)估控制的工作原理,并拓展分析模型精度對(duì)系統(tǒng)控制性能的影響;
4.能夠運(yùn)用MATLAB/Simulink軟件對(duì)控制系統(tǒng)進(jìn)行正確建模并對(duì)模塊進(jìn)行正確的參數(shù)設(shè)置;
5.掌握計(jì)算機(jī)控制仿真結(jié)果的分析方法。
二、實(shí)驗(yàn)工具:
MATLAB軟件(6.1以上版本)。
三、實(shí)驗(yàn)原理



四、實(shí)驗(yàn)內(nèi)容
(1)以具體含純滯后環(huán)節(jié)的系統(tǒng)實(shí)例,完成Dahlin控制器和Smith預(yù)估器的設(shè)計(jì)。
(2)完成Dahlin算法控制器的系統(tǒng)仿真。
(3)完成Smith預(yù)估器的系統(tǒng)仿真

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');














