matlab的PID仿真应用.docx
《matlab的PID仿真应用.docx》由会员分享,可在线阅读,更多相关《matlab的PID仿真应用.docx(9页珍藏版)》请在冰豆网上搜索。
matlab的PID仿真应用
基于Matlab的积分分离PID控制
算法及仿真
摘要
MATLAB是一种集数值计算、符号运算、可视化建模、仿真和图形处理等多种功能于一体的非常优秀的图形化语言.此次论文运用MATLAB工具求解积分分离PID控制算法及仿真,为解决实际问题提供了很大的方便.
关键词:
MATLAB,PID控制,仿真
1引言
在工程实际中,应用最为广泛的调解器控制规律为比例,积分,微分控制,简称PID控制.PID控制器以其结构简单、稳定性好、工作可靠和调整方便而成为工业控制的主要技术之一.当被控对象的结构或参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以应用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便.PID控制及其控制器产品已经在工程实际中得到了广泛的应用,各大公司已经开发了具有PID参数自整定功能的智能调节器,其中PID控制器参数的自动调整是通过智能化调整或校正、自适应算法来实现的[1].
2PID控制系统设计原理
在模拟控制系统中,控制器中最常用的控制规律是PID控制.模拟PID控制系统原理框图如图2.1所示.系统由模拟PID控制器和被控对象组成.
图2.1模拟PID控制系统原理框图
PID控制器是一种线性控制器,它根据给定值
与实际输出值
构成控制偏差,即
PID的控制规律为
式中
为比例系数;
为积分时间常数;
为微分时间常数.
简单来说PID控制校正环节中积分环节的作用是用于消除静差,提高系统的无差度.积分作用的强弱取决于积分时间常数
,
越大,积分作用越弱,反之则强.
3积分分离PID控制算法
积分分离控制基本思路是:
当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使得系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度.其具体实现步骤如下:
根据实际情况,人为设定阀值
;
当
时,采用PD控制,可避免产生过大的超调,又使系统有较快的响应;
当
时,采用PID控制,以保证系统的控制精度.
积分分离算法可表示为:
式中,
为采样时间;
项为积分项的开关系数,且
根据积分分离式PID控制算法得到其程序框图如图3.1所示.
图3.1积分分离式PID程序序算法控制框图
4积分分离PID控制算法仿真实例
设被控对象为一延迟对象,即
采样时间为20s,延迟时间为4个采样时间,即80s,被控对象离散化为
取M=1,采用积分分离式PID控制器进行阶跃响应,对积分分离式PID控制算法进行改进,采用分段积分分离方式,即根据误差绝对值的不同,采用不同的积分强度[3].仿真中指令信号为
,控制器输出限制在[-110,110],其阶跃式跟踪结果如图4.1所示.取M=2,采用普通PID控制,其阶跃式跟踪结果如图4.2所示.仿真程序如下[2]:
clearall;
closeall;
ts=20;
sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts,'zoh');
[num,den]=tfdata(dsys,'v');
u1=0;u2=0;u3=0;u4=0;u5=0;
y1=0;y2=0;y3=0;
error1=0;erroe2=0;
ei=0;
fork=1:
1:
200
time(k)=k*ts;
yout(k)=-den
(2)*y1+num
(2)*u5;
rin(k)=40;
error(k)=rin(k)-yout(k);
ei=ei+error(k)*ts;
M=1;
ifM==1
ifabs(error(k))>=30&abs(error(k))<=40
beta=0.3;
elseifabs(error(k))>=20&abs(error(k))<=30
beta=0.6;
elseifabs(error(k))>=10&abs(error(k))<=20
beta=0.9;
else
beta=1.0;
end
elseifM==2
beta=1.0;
end
kp=0.80;
ki=0.005;
kd=3.0;
u(k)=kp*error(k)+kd*(error(k)-error1)/ts+beta*ki*ei;
ifu(k)>=110
u(k)=110;
end
ifu(k)<=-110
u(k)=-110;
end
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
y3=y2;y2=y1;y1=yout(k);
error2=error1;
error1=error(k);
end
figure
(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');
grid;
figure
(2)
plot(time,u,'r');
xlabel('time(s)');ylabel('u');
grid;
在matlab里运行得到结果如下:
图4.1积分分离式PID阶跃跟踪
图4.2普通PID阶跃跟踪
由仿真结果可看出,采用积分分离方法控制,效果有很大的改善.值得注意的是,为保证引入积分作用后系统的稳定性不变,,在输入积分作用时比例系数
可作相应变化.此外,
值应根据具体对象及要求而定,若
过大,则达不到积分分离的目的;若
过小,则会导致无法进入积分区.如果只进行PD控制,则会使控制出现余差.
PID控制具有结构简单、稳定性能好、可靠性高等优点,但是在实际的应用中,许多被控过程机理复杂,具有高度非线性、时变不确定性和纯滞后等特点.在噪声、负载扰动等因素的影响下,过程参数甚至模型结构均会随着时间和工作环境的变化而变化.这就要求在PID控制中,不仅PID参数的整定不依赖于对象数学模型,并且PID参数能够在线调整,以满足实时控制的要求.
总结
此次论文不仅使我认识到了MATLAB的强大用途及涉及的领域之广,重要的是通过对积分分离PID算法及仿真的相关研究,使我对仿真又有了新的理解.
这次论文我主要是应用数学里面的积分分离的知识以及MATLAB的一些知识,并使用MATLAB语言最终将它们综合起来才完成了这个课题.
综合论文让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,再次,虽然我在论文中碰到了很多的问题,但通过查阅相关书籍,资料,并通过自己钻研,特别是得到了周老师的谆谆教导,周老师给予了我很大的帮助,不仅给了我思路上的开阔,还让我认识到了自己对以前所学知识的不足方面.而且,通过这次论文写作,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,使自己在此方面有一个好的发展.
参考文献
[1]夏玮.MATLAB控制系统仿真与实例详解[M].北京:
人民邮电出版社,2008.[2]姜启源.数学模型[M].北京:
高等教育出版社,1993.
[3]石博强,赵金.MATLAB数学计算与工程分析范例教程[M].北京:
中国铁道出版社,2005.