matlab、simulink实现PID设计(7页).doc
《matlab、simulink实现PID设计(7页).doc》由会员分享,可在线阅读,更多相关《matlab、simulink实现PID设计(7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-matlab、simulink实现PID设计-第 7 页自动化专业07级计算机仿真与MATLAB课程报告题目: 基于MATLAB/Simulink的PID控制系统的设计与仿真班级:姓名: 学号:2010年6月基于MATLAB/Simulink的PID控制系统的设计与仿真摘要: 介绍了基于Ziegler- Nichols整定方法的PID 控制器设计, 给出了基于MATLAB和Simulink的实现方法和仿真。仿真结果表明, 此算法设计的PID 控制器有良好的性能指标。1 控制对象建模1.1 PID 控制系统的建模PID(Proportional,Integral and Differemial
2、)控制器是一种基于“过去”,“现在”和“未来”信息估计的简单算法。常规PID控制系统原理框图如下图所示,系统主要由PID控制器和被控对象组成。作为一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制偏差e(t),将偏差按比例、积分、和微分通过线性组合构成控制量u(t),对被控对象进行控制。 PID控制系统原理图PID 控制器的数学描述为:其传递函数可表示为:PID控制器各校正环节的作用如下:1比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。2积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T
3、i,Ti越大,积分作用越弱,反之越强。3微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。从根本上讲,设计 PID 控制器也就是确定其比例系数K p、积分系数Ti 和微分系数Td , 这三个系数取值的不同,决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。本文介绍基于Ziegler- Nichols整定方法的
4、PID 控制器设计。 被控对象的建模在实际的过程控制系统中,有大量的对象模型可以近似地由带有延迟的一阶传递函数模型来表示,该对象的模型可以表示如下:如果不能建立起系统的物理模型,可通过试验测取对象模型的阶跃响应,从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 由 MATLAB 通过 STEP( ) 函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应输出信号图(如图所示)中, 可获取 K、L 和 T 参数。2 PID控制系统的设计Ziegler- Nichols法是一种基于频域设计 PID 控制器的方法。此法首先通过实验获取控制对象单位阶跃响应,获得K、L 和 T 参数。令a=
5、KL/T,我们可以通过下表给出的Ziegler- Nichols经验公式确定P、PI 和 PID 控制器的参数。控制器类型KpTiTdP0PI0PIDZiegler- Nichols法整定控制器参数3 PID 控制系统MATLAB/Simulink仿真分析 在MATLAB 下实现PID 控制器的设计与仿真根据Ziegler- Nichols法,这里编写一个MATLAB函数ziegler,该函数的功能实现由Ziegler- Nichols公式设计PID 控制器,在设计过程中可以直接调用。其源程序如下:function Gc,Kp,Ti,Td,H=ziegler(key,vars)Ti=; Td=
6、; H=1;if length(vars)=4,K=vars(1); L=vars(2); T=vars(3); N=vars(4); a=K*L/T;if key=1, Kp=1/a;elseif key=2, Kp=0.9/a; Ti=3.33*L;elseif key=3 | key=4, Kp=1.2/a; Ti=2.2*L; Td=L/2; endelseif length(vars)=3,K=vars(1); Tc=vars(2); N=vars(3);if key=1, Kp=0.5*K;elseif key=2, Kp=0.4*K; Ti=0.8*Tc;elseif key=3
7、 | key=4, Kp=0.6*K; Ti=0.5*Tc; Td=0.12*Tc; endelseif length(vars)=5,K=vars(1); Tc=vars(2); rb=vars(3); N=vars(5);pb=pi*vars(4)/180; Kp=K*rb*cos(pb);if key=2, Ti=-Tc/(2*pi*tan(pb);elseif key=3|key=4, Ti=Tc*(1+sin(pb)/(pi*cos(pb); Td=Ti/4; endendswitch key case 1, Gc=Kp; case 2, Gc=tf(Kp*Ti,1,Ti,0); c
8、ase 3, nn=Kp*Ti*Td*(N+1)/N,Kp*(Ti+Td/N),Kp; dd=Ti*Td/N,1,0; Gc=tf(nn,dd);end该函数的 调用格式为:Gc,Kp,Ti,Td=Ziegler(key,vars)其中,key为选择控制器类型的变量:当key=1,2,3时分别表示设计P、PI、PID控制器;若给出的是阶跃响应数据,则变量vars=K,L,T,N;若给出的是频域响应数据,则变量vars=Kc,Tc,N。在实际的过程控制系统中,有大量的对象模型可以近似地由带有延迟的一阶传递函数模型来表示,该对象的模型可以表示如下:这里我们不妨设K=8,T=360,L=180,则对
9、象模型可以表示为:利用ziegler()函数计算系统P、PI、PID控制器的参数,并给出校正后系统阶跃响应曲线。程序如下:K=8;T=360;L=180;num=K;den=T 1;G1=tf(num,den)np,dp=pade(L,2);Gp=tf(np,dp)figure,step(G1*Gp);title(未校正前系统阶跃响应曲线曲线);grid;Gc1,Kp1=ziegler(1,K,L,T,1);Gc1Gc2,Kp2,Ti2=ziegler(2,K,L,T,1);Gc2Gc3,Kp3,Ti3,Td3=ziegler(3,K,L,T,1);Gc3G_c1=feedback(G1*Gc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab simulink 实现 PID 设计
限制150内