PID实验报告(实验五)_第1页
PID实验报告(实验五)_第2页
PID实验报告(实验五)_第3页
PID实验报告(实验五)_第4页
PID实验报告(实验五)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验五使用给定的两个程序,分析加入优化算法后,对系统的改善积分分离PID控制算法:分析积分项的作用以及弊端,通过原理以及实验结果,分析为什么积分分离对系统有优化作用,系统什么性能得到优化?答:在普通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过程的启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的振荡;或者若积分作用太强,会使系统产生过大的超调量,振荡剧烈,且调节时间过长,对某些系统来说是不允许的。为了克服这个缺点,可以采用积分分离的方法,即在系统误差较大时,取消积分作用,在误差减小到一定值后,再加上积分作用。这样就可以既减小了超调量,改善动态特性,又保持了积分作用。原理:积分分离控制基本思路是,当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定量时,引入积分控制以便消除静差,提高控制精度。两种情况的实验波形图如左两图所示:实验程序如下所示:%IntegrationSeparationPIDController积分分离PID控制器clearall;%清除掉所有文件closeall;%关闭所有文件ts=20;%定义时间%Delayplant定义延迟函数sys=tf([1],[60,1],'inputdelay',80);%定义系统传递函数dsys=c2d(sys,ts,'zoh');%转化成dz函数[num,den]=tfdata(dsys,'v');%获得Z传递函数的分子分母u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;%清0,使系统初始化y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;fork=1:1:200%采样比,在1—200,且跨幅为1之间采样time(k)=k*ts;%定义time(k)函数%Delayplantyout(k)=-den(2)*y_1+num(2)*u_5;%输出函数%Iseparation积分分离rin(k)=40;%给定输入值error(k)=rin(k)-yout(k);%差分方程ei=ei+error(k)*ts;%误差累加M=2;ifM==1%Usingintegrationseparation当M=1时的积分分离的使用ifabs(error(k))>=30&abs(error(k))<=40beta=0.3;%判断:如果error(k)的绝对值在30—40之间,,则把0.3赋给betaelseifabs(error(k))>=20&abs(error(k))<=30beta=0.6;%判断:如果error(k)的绝对值在20—30之间,,则把0.6赋给betaelseifabs(error(k))>=10&abs(error(k))<=20beta=0.9;%判断:如果error(k)的绝对值在10—20之间,,则把0.9赋给betaelsebeta=1.0;%判断:如果error(k)的绝对值不在以上这些数值之间时,则把1赋给betaendelseifM==2beta=1.0;%Notusingintegrationseparation当M=2时的积分分离的使用endkp=0.80;ki=0.005;kd=3.0;%定义ki、kp、kd值u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+beta*ki*ei;%定义u(k)函数ifu(k)>=110%Restrictingtheoutputofcontroller限制输出u(k)=110;end%判断u(k)函数值,如果u(k)>=110,就令u(k)=110ifu(k)<=-110u(k)=-110;end%判断u(k)函数值,如果u(k)<=-110,就令u(k)=-110u_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_2=error_1;error_1=error(k);end%重新赋参数值figure(1);%图1plot(time,rin,'b',time,yout,'r');%画图xlabel('time(s)');ylabel('rin,yout');%x轴表示time(s),y轴表示rin,youtfigure(2);%图1plot(time,u,'r');%画图xlabel('time(s)');ylabel('u');%x轴表示time(s),y轴表示u2.变速积分PID控制算法:通过原理以及实验结果,分析为什么变速积分PID控制对系统有优化作用,系统什么性能得到优化?答:在普通的PID控制算法中,由于积分系数k1是常数,所以在整个控制过程中,积分增量不变。而系统对积分项的要求是,系统偏差大时积分作用应减弱甚至全无,而在偏差小时则应加强。积分系数取大了会产生超调,甚至积分饱和,取小了又迟迟不能消除静差。因此,如何根据系统偏差大小改变积分的速度,对于提高系统品质是很重要的。变速积分PID可较好的解决这一问题。变速积分PID的基本思想是设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分越慢,反之则越快,有利于提高系统品质。两种情况的实验波形图如左两图所示:实验程序如下图所示:%PIDControllerwithchangingintegrationrateclearall;%清除掉所有文件closeall;%关闭所有文件%BigtimedelayPlant定义延迟函数ts=20;%定义时间sys=tf([1],[60,1],'inputdelay',80);%定义系统传递函数dsys=c2d(sys,ts,'zoh');%转化成dz函数[num,den]=tfdata(dsys,'v');%获得Z传递函数的分子分母u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;%清0,使系统初始化y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;fork=1:1:200%采样比,在1—200,且跨幅为1之间采样time(k)=k*ts;%时间函数rin(k)=1.0;%StepSignal阶跃信号%Linearmodel线性模型yout(k)=-den(2)*y_1+num(2)*u_5;%输出函数error(k)=rin(k)-yout(k);%差分方程kp=0.45;kd=12;ki=0.0048;%定比例系数Kp、微分系数Kd、积分系数Ki的值A=0.4;B=0.6;%定义A、B值%Ttypeintegrationei=ei+(error(k)+error_1)/2*ts;%偏差叠加M=2;ifM==1%Changingintegrationrate改变积分速度ifabs(error(k))<=Bf(k)=1;%判断:偏差小于等于B时,f(k)=1elseifabs(error(k))>B&abs(error(k))<=A+Bf(k)=(A-abs(error(k))+B)/A;%偏差小于等于B时,f(k)=1elsef(k)=0;endelseifM==2%Notchangingintegrationrate不改变积分速度 f(k)=1;endu(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*f(k)*ei;%定义偏差u(k)函数ifu(k)>=10u(k)=10;end%判断:偏差u(k)大于等于10,u(k)=10ifu(k)<=-10u(k)=-10;end%判断:偏差u(k)小于等于10,u(k)=10%ReturnofPIDparameters返回PID参数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_2=error_1;error_1=error(k);end%交换偏差值figure(1);%图1plot(time,rin,'b',time,yout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论