一阶纯滞后系统的不完全微分PID控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
0.前言 (1)
1. 不完全微分PID算法设计 (2)
2.算法仿真研究 (3)
3.一阶纯滞后系统的不完全微分PID控制程序 (4)
4.实验结果 (7)
5.结论及总结 (8)
参考文献 (8)
课设体会 (10)
一阶纯滞后系统的不完全微分PID控制
沈阳航空航天大学北方科技学院
摘要:提出在PID算法中加入一阶惯性环节,通过不完全微分PID算法来改善干扰对系统的影响,用MATLAB仿真分析说明该算法在改善过程的动态性能方面具有良好的控制精度。在现代工业生产中,自动控制技术的使用越来越多,而随着工业和控制技术的发展,自动控制理论也在发展和完善,出现了多种控制方法如最基础的PID控制以及微分先行控制、中间微分控制、史密斯补偿控制、模糊控制、神经网络控制等。自动控制技术的发展在工业生产中遇到了一系列的问题:如在本文中所研究的一阶纯滞后系统的控制就是控制理论中一个较为重要的问题。由控制理论可知,无滞后控制系统(简单点说就是没有延迟)比有滞后系统更加稳定,更加容易控制。因此如何解决生产中滞后的问题在当前工业大生产中尤其重要。论文在常规PID控制也就是比例-积分-微分控制的基础上提出了三种控制方法即:微分先行控制、中间微分反馈控制、史密斯补偿控制。并对这三种方案进行Simulink 仿真,检测其抗干扰性能。为便于分析,论文将所得仿真结果以图形的方式给予显示出来,形象生动便于理解。
关键词:一阶纯滞后 ;不完全微分;仿真;PID
0.前言
在多数工业过程当中,控制对象普遍存在着纯时间滞后现象,如化工,热工过程等.
这种滞后时间的存在,会使系统产生明显的超调量和较长的调节时间,滞后严重时甚至会破坏系统的稳定性,在工业生产上产生事故.因此长期以来,纯滞后系统就一直是工业过程中的难控制对象,人们也对它进行了大量的研究.在现代工业生产和理论研究中出现了多种控制方法,如PID控制、PID改进控制、Smith 预估算法控制以及模糊
控制、神经网络控制等.而对于最基础的一阶纯滞后系统常用的控制方法主要是PID 控制、不完全微分PID 控制.
1. 不完全微分PID 算法设计
为了克服上述缺点, 在PID 算法中加一个一阶惯性环节(低通滤波器)G f (S )=1/[1+T f (S )],将低通滤波器直接加在微分环节上,构成如图1的不完全微分PID 控制:
式中,T 为采样时间,T f 为滤波器系数,T 1和T D 分别为积分时间常数和微分时间常数,令 ɑ=T f /(T f +T),则T/(T+T f )=1-ɑ;显然有1<α,1−α<1成立,不完全微分项为:
若e(k)为单位阶跃(即e(k)=1,k=0,1,2,∧)由此得出不完全微分项为:
可见,引入不完全微分后,微分输出按ɑk U D(0)的规律)(ɑ(1)逐渐衰减,所以不完全微分能有效地克服前述微分项的不足。
2.算法仿真研究
设被控对象为含纯滞后的一阶惯性环节,其传递函数为: G(S)=e-80S/50S+1
在对象的输出端加幅值为0.01的随机干扰信号,
采样时间为20s 低通滤波器为G f(S)=1/(180S+1)
控制器取K P=0.30,T1=55,T D=140
控制算法程序框图如图2;
图2 控制算法程序框图
3.一阶纯滞后系统的不完全微分PID控制程序PID的MATLAB仿真程序:
%PID Controler 不完全微分
clear all;
close all;
ts=20;
sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts,'zoh');
[num,den]=tfdata(dsys,'v');
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
ud_1=0;
y_1=0;y_2=0;y_3=0;
error_1=0;
ei=0;
for k=1:1:100
time(k)=k*ts;
rin(k)=1.0;
%Linear model
yout(k)=-den(2)*y_1+num(2)*u_5;
D(k)=0.01*rands(1);
yout(k)=yout(k)+D(k);
error(k)=rin(k)-yout(k);
%PID Controller with partly differential
ei=ei+error(k)*ts;
kc=0.30;
ki=0.0055;
TD=140;
kd=kc*TD/ts;
Tf=180;
Q=tf([1],[Tf,1]); %Low Freq Signal Filter
M=2; %M=1不完全微分,
%M=2普通Pid控制!!
if M==1
%Using PID with Partial differential
alfa=Tf/(ts+Tf);
ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1;
u(k)=kc*error(k)+ud(k)+ki*ei;
ud_1=ud(k);
elseif M==2 %Using Simple PID
u(k)=kc*error(k)+kd*(error(k)-error_1)+ki*ei; end
%Restricting the output of controller
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
error_1=error(k);
end
figure(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');