matlab的PID仿真应用.docx

上传人:b****5 文档编号:29241401 上传时间:2023-07-21 格式:DOCX 页数:9 大小:80.05KB
下载 相关 举报
matlab的PID仿真应用.docx_第1页
第1页 / 共9页
matlab的PID仿真应用.docx_第2页
第2页 / 共9页
matlab的PID仿真应用.docx_第3页
第3页 / 共9页
matlab的PID仿真应用.docx_第4页
第4页 / 共9页
matlab的PID仿真应用.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

matlab的PID仿真应用.docx

《matlab的PID仿真应用.docx》由会员分享,可在线阅读,更多相关《matlab的PID仿真应用.docx(9页珍藏版)》请在冰豆网上搜索。

matlab的PID仿真应用.docx

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.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1