早在1968年,美国IBM公司的大林(Dahlin)就提出了一种不同于常规控制规律的新型算法,即大林算法。该算法的最大特点是将期望的闭环响应设计成一阶惯性加纯延迟,然后反过来得到能满足这种闭环响应的控制器。
设被控对象为
采样时间为0.5s,用大林算法设计闭环响应,并用MATLAB进行仿真,同时作出采用普通PID控制算法的图形,与采用大林算法的图形比较,得出结论。
参考程序:
%Delay Control with Dalin Algorithm
clear all;
close all;
ts=0.5;
%Plant
sys1=tf([1],[0.4,1],'inputdelay',0.76);
dsys1=c2d(sys1,ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');
%Ideal closed loop
sys2=tf([1],[0.15,1],'inputdelay',0.76);
dsys2=c2d(sys2,ts,'zoh');
%Design Dalin controller
dsys=1/dsys1*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.5s,用大林算法设计闭环响应,并用MATLAB进行仿真,同时作出采用普通PID控制算法的图形,与采用大林算法的图形比较,得出结论。
参考程序:
%Delay Control with Dalin Algorithm
clear all;
close all;
ts=0.5;
%Plant
sys1=tf([1],[0.4,1],'inputdelay',0.76);
dsys1=c2d(sys1,ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');
%Ideal closed loop
sys2=tf([1],[0.15,1],'inputdelay',0.76);
dsys2=c2d(sys2,ts,'zoh');
%Design Dalin controller
dsys=1/dsys1*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=
