欢迎光临散文网 会员登陆 & 注册

大林算法和Smith算法

2021-06-02 23:54 作者:永远的修伊  | 我要投稿

   纯滞后对象控制系统设计

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


大林算法和Smith算法的评论 (共 条)

分享到微博请遵守国家法律