matlab、simulink实现PID设计

上传人:油条 文档编号:101400018 上传时间:2019-09-28 格式:DOC 页数:14 大小:549.50KB
返回 下载 相关 举报
matlab、simulink实现PID设计_第1页
第1页 / 共14页
matlab、simulink实现PID设计_第2页
第2页 / 共14页
matlab、simulink实现PID设计_第3页
第3页 / 共14页
matlab、simulink实现PID设计_第4页
第4页 / 共14页
matlab、simulink实现PID设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《matlab、simulink实现PID设计》由会员分享,可在线阅读,更多相关《matlab、simulink实现PID设计(14页珍藏版)》请在金锄头文库上搜索。

1、自动化专业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积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之越强。3微分环节:反映偏

3、差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。从根本上讲,设计 PID 控制器也就是确定其比例系数K p、积分系数Ti 和微分系数Td , 这三个系数取值的不同,决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。本文介绍基于Ziegler- Nichols整定方法的 PID 控制器设计。1.2 被控对象的建模在实际的过程控

4、制系统中,有大量的对象模型可以近似地由带有延迟的一阶传递函数模型来表示,该对象的模型可以表示如下:Gs=K1+Tse-sL如果不能建立起系统的物理模型,可通过试验测取对象模型的阶跃响应,从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 由 MATLAB 通过 STEP( ) 函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应输出信号图(如图所示)中, 可获取 K、L 和 T 参数。2 PID控制系统的设计Ziegler- Nichols法是一种基于频域设计 PID 控制器的方法。此法首先通过实验获取控制对象单位阶跃响应,获得K、L 和 T 参数。令a=KL/T,我们可以通过下表

5、给出的Ziegler- Nichols经验公式确定P、PI 和 PID 控制器的参数。控制器类型KpTiTdPT(K×L)0PI0.9T(K×L)L0.30PID1.2T(K×L)2.2L0.5LZiegler- Nichols法整定控制器参数3 PID 控制系统MATLAB/Simulink仿真分析3.1 在MATLAB 下实现PID 控制器的设计与仿真根据Ziegler- Nichols法,这里编写一个MATLAB函数ziegler,该函数的功能实现由Ziegler- Nichols公式设计PID 控制器,在设计过程中可以直接调用。其源程序如下:functio

6、n Gc,Kp,Ti,Td,H=ziegler(key,vars)Ti=; Td=; 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;elsei

7、f key=2, Kp=0.4*K; Ti=0.8*Tc;elseif key=3 | 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

8、 1, Gc=Kp; case 2, Gc=tf(Kp*Ti,1,Ti,0); case 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。在实际的过程控制系统中,有大量的对象模型可以近似地由带有延迟的一阶传递函数模型来

9、表示,该对象的模型可以表示如下:Gs=K1+Tse-sL这里我们不妨设K=8,T=360,L=180,则对象模型可以表示为:Gs=81+360se-180s利用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=

10、ziegler(2,K,L,T,1);Gc2Gc3,Kp3,Ti3,Td3=ziegler(3,K,L,T,1);Gc3G_c1=feedback(G1*Gc1,Gp);figure,step(G_c1);title('P控制器校正后的系统阶跃响应曲线')grid;G_c2=feedback(G1*Gc2,Gp);figure,step(G_c2);title('PI 控制器校正后的系统阶跃响应曲线');grid;G_c3=feedback(G1*Gc3,Gp);figure,step(G_c3);title('PID控制器校正后的系统阶跃响应曲线

11、9;);grid;figure,step(G_c1);hold on;step(G_c2);hold on;step(G_c3);title('P、PI、PID控制器校正后的系统阶跃响应曲线');grid;gtext('P')gtext('PI')gtext('PID')运行程序,输出如下:Gc1 = 0.2500 Transfer function:134.9 s + 0.225- 599.4 s (PI控制器的传递函数) Transfer function:2.138e004 s2 + 145.8 s + 0.3- 3.564

12、e004 s2 + 396 s(PID控制器的传递函数)P、PI、PID校正后的系统阶跃响应曲线如下图:由上图可知,用Ziegler- Nichols公式计算P、PI、PID控制器对系统校正后,其阶跃响应曲线中的P、PI控制二者的响应速度基本相同,因为两种控制的比例系数不同,因此系统稳定的输出值不同。PI控制超调量比P控制的要小一些。PID控制比前者的响应速度都快,但超调量最大。 3.2 在Simulink 下实现PID 控制器的设计与仿真这里仍然设被控对象的传递函数是Gs=81+360se-180s建立Simulink模型:图中,“Integrator”为积分器,“Derivative”为微

13、分器,“Kp”为比例系数,“Ti”为积分时间常数,“Td”为微分时间常数。进行P控制器参数整定时,微分器和积分器的输出不连到系统中,在Simulink中,把微分器和积分器的输出连线断开即可。同理,进行PI控制器参数整定时,微分器的输出连线断开。Ziegler- Nichols整定的第一步是获取开环系统的单位阶跃响应,在Simulink中,把反馈连线、微分器的输出连线、积分器的输出连线都断开,“Kp”的值置为1,连线得:选定仿真时间,仿真运行,运行完毕后,双击“Scope”得到结果:根据Ziegler- Nichols经验公式,可知P控制整定时,比例放大系数Kp=0.25,将“Kp”的值置为0.

14、25,并连上反馈连线,得:选定仿真时间,仿真运行,运行完毕后,双击“Scope”得到结果:上图即为P控制时系统的单位阶跃响应。根据Ziegler- Nichols经验公式,可知PI控制整定时,比例放大系数Kp=0.225,积分时间常数Ti=594,将“Kp”的值置为0.225,“1/Ti”的值为1/594,将积分器的输出连线连上,得:选定仿真时间,仿真运行,运行完毕后,双击“Scope”得到结果:上图即为PI控制时系统的单位阶跃响应。根据Ziegler- Nichols经验公式,可知PID控制整定时,比例放大系数Kp=0.3,积分时间常数Ti=396,微分时间常数Td=90,将“Kp”的值置为0.3,“1/Ti”的值为1/396,“Td”的值置为90,将微分器的输出连线连上,得:选定仿真时间,仿真运行,运行完毕后,双击“Scope”得到结果:由以上三图同样可以看出,P、PI控制二者的响应速度基本相同,但系统稳定的输出值不同。PI控制超调量比P控制的要小一些。PID控制比前者的响应速度都快,但超调量最大。针对该PID 控制器,我们可以通过外加扰动信号来测试其控制效果。如下图,我们在t=4000s时,外加一个幅值为15的扰动信

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号