纯滞后系统的大林控制算法

大林控制算法原理

早在1968年,美国IBM公司的大林(Dahlin)就提出了一种不同于常规PID控制规律的新型算法,即大林算法。该算法的最大特点是将期望的闭环响应设计成一阶惯性加纯延迟,然后反过来得到能满足这种闭环响应的控制器。

对于图1所示的单回路控制系统,Gc(z)为数字控制器,Gp(z)为被控对象,则闭环系统传递函数为:

图1 单回路控制系统框图

如果能事先设定系统的闭环响应,则可得控制器。大林指出,通常的期望闭环响应是一阶惯性加纯延迟形式,其延迟时间等于对象的纯延迟时间

式中,为闭环系统的时间常数,由此而得到的控制律称为大林算法。

仿真实例

被控对象为:

采样时间为0.5s,期望的闭环响应设计为:

位置指令为yd=1.0,M =1时为采用大林控制算法,M=2时为采用普通PID控制算法。可见,采用大林算法可取得很好的控制效果,其阶跃响应结果如图2和图3所示。

图2 大林算法阶跃响应(M=1)

图3 普通PID算法阶跃响应(M=2)

仿真程序:

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

%ldeal 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.0;error_2=0.0;error_3=0.0;ei=0;

for k=1:1:50

time(k)=k*ts;

yd(k)=1.0; %Tracing Step Signal

y(k)=-den1(2)*y_1+num1(2)*u_2+num1(3)*u_3;

error(k)-yd(k)-y(k);

M=2;

if M==1 %Using Dalin Method

u(k)=(num(1)*error(k)+num(2)*error_1+num(3)*error_2+num(4)*error_3...

-den(3)*u_1-den(4)*u_2-den(5)*u_3-den(6)*u_4-den(7)*u_5)/den(2);

elseif M==2 %Using PID Method

ei=eiterror(k)*ts;

u(k)=1.0*error(k)+0.10*(error(k)-error_1)Y/ts+0.50*ei;

end

%----------Return of dalin parameters------------

u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_1=y(k);

error_3=error_2;error_2=error_1;error_1=error(k);

end

figure(1);

plot(time,yd,'r',time,y,'k:'linewidth',2);xlabel('tim(s)');ylabel('yd,y');

legend('ideal position signal','position tracking');

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习不好的电气仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值