PID控制算法及MATLAB仿真分析_第1页
PID控制算法及MATLAB仿真分析_第2页
PID控制算法及MATLAB仿真分析_第3页
PID控制算法及MATLAB仿真分析_第4页
PID控制算法及MATLAB仿真分析_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE25 河南农业大学本科生毕业论文(设计)题目PID控制算法及MATLAB仿真分析学院机电工程学院专业班级电子信息工程07级2班撰写日期: 摘要PID控制器具有结构简单、容易实现、控制效果好、鲁棒性强等特点,是迄今为止最稳定的控制方法。它所涉及的参数物理意义明确,理论分析体系完整,并为工程界所熟悉,因而在工业过程控制中得到了广泛应用。从实际需要出发,一种好的PID控制器参数整定方法,不仅可以减少操作人员的负担,还可以使系统处于最佳运行状态。因此,对PID控制器参数整定法的研究具有重要的实际意义。本文介绍了PID控制技术的发展历史和研究进展。分析了传统的模拟和数字PID控制算法,并对传统的PID控制算法进行微分项和积分项的改进,学习了几种比较普遍运用的方法,如不完全微分PID控制算法、微分先行、遇限消弱积分PID控制算法等。在学习的基础上,提出了一种自整定参数的专家模糊PID控制算法,由仿真结果可以看到,这种参数自整定方法与一般控制方法(抗积分饱和控制法)相比,在调节时间、抑制超调量、稳定性都要好,可以在工业上推广使用。关键词:PID控制;结构简单;鲁棒性;控制算法;参数整定目录摘要 11引言 11.1国内外研究进展 11.2本论文研究内容 22PID控制算法 32.1模拟PID控制算法 42.2数字式PID控制算法 52.3PID控制算法的改进 72.3.1微分项的改进 72.3.2积分项的改进 112.4模糊PID控制算法 132.4.1模糊推理的系统结构 142.4.2PID参数在线整定原则 142.5PID控制器研究面临的主要问题 153MATLAB编程和仿真 163.1PID控制算法分析 163.2MATLAB仿真 174结语 23参考文献 24致谢 25附录1 1附录2 11引言PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。光学表面等离子共振(SPR)生物传感技术受温度影响很大,因此设计高精度的温度控制器对于生物分析仪十分重要。在指导导师研究的便携式SPR生物分析仪中的温度控制就采用了PID控制技术,本论文研究PID的控制算法是PID控制器整定参数优化和设定的关键技术之一。在工业过程控制中,目前采用最多的控制方式依然是PID方式,即使在日本,PID控制的使用率也达到84.5%。它具有容易实现、控制效果好、鲁棒性强等特点,同时它原理简单,参数物理意义明确,理论分析体系完整,并为工程界所熟悉,因而在工业过程控制中得到了广泛应用。尽管自1940年以来,许多先进控制方法不断推出,但PID控制器仍被广泛应用于冶金、化工、电力、轻工和机械等工业过程控制中。然而,在实际的应用中,许多被控过程机理复杂,具有高度非线性、时变不确定性和纯滞后等特点,特别是在噪声、负载扰动等因素的影响下,参数复杂烦琐的整定过程一直困扰着工程技术人员。为了减少参数整定的工作量,克服因环境变化或扰动作用造成系统性能的降低,就要提出一种PID控制参数的自动整定[3]。1.1国内外研究进展今天熟知的PID控制器产生并发展于1915-1940年期间。在工业过程控制中PID控制器及其改进型的控制器占90%。在1942年和1943年,泰勒仪器公司的zieiger和Nichols等人分别在开环和闭环的情况下,用实验的方法分别研究了比例、积分和微分这三部分在控制中的作用,首次提出了PID控制器参数整定的问题。随后有许多公司和专家投入到这方面的研究。经过50多年的努力,在PID控制器的参数调整方面取得了很多成果。诸如预估PID控制(PredictivePID)、自适应PID控制(adaptivePID)、自校正PID控制(self-tuningPID)、模糊PID控制(FuzzyPID)、神经网络HD控制(NeuraPID)、非线性PID控制(NonlinearPID)等高级控制策略来调整和优化PID参数[1]。由卡尔曼提出的卡尔曼滤波理论[1],采用时域上的递推算法在数字计算机上进行数据滤波处理,该滤波器对控制干扰和测量噪声具有很好的滤波作用。由美国Michigan大学的Holland教授提出的遗传算法[3],时他提出的模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法。它将优胜劣汰,适者生存的进化论原理引入优化参数形成的编码串联群体中,按所选择的适配值函数通过遗传中的复制,交叉及变异对个体进行筛选,使适配值高的的个体被保留下来,组成新群体,新群体有继承上一代信息,优于上一代,周而复始知道得到满意值,这种算法简单,可并行处理,得到全局最优解。随着现代工业的发展,人们面临的被控对象越来越复杂,对于控制系统的精度性能和可靠性的要求越来越高,这对PID控制技术提出了严峻的挑战,但是PID控制技术并不会过时,它必将和先进控制策略相结合向高精度、高性能、智能化的方向发展。1.2本论文研究内容本文在介绍传统的PID控制算法,并对传统算法改进后,在学习的基础上提出一种模糊参数自整定方法,这种模糊控制的PID算法必须精确地确定对象模型,是操作人员(专家)长期实践知识用控制规则模型化,再运用推理对参数实现最佳调整。它在常规PID基础上,以输出反馈值与目标值的误差e和误差变化率ec作为输入,用模糊推理的方法对PID参数kp,ki,kd进行在线自整定,以满足不同e和ec对控制器参数的不同要求。把规则的条件、操作用模糊集表示,并把有关信息作为知识存入计算机知识库中,然后计算机根据控制系统的实际响应情况,运用模糊推理,便可实现对PID的参数最佳调整。2PID控制算法PID控制器是一种基于偏差在“过去、现在和将来”信息估计的有效而简单的控制算法。而采用PID控制器的控制系统其控制品质的优劣在很大程度上取决于PID控制器参数的整定。PID控制器参数整定,是指在控制器规律己经确定为PID形式的情况下,通过调整PID控制器的参数,使得由被控对象、控对于PID这样简单的控制器,能够适用于广泛的工业与民用对象,并仍以很高的性价比在市场中占据着重要地位,充分地反映了PID控制器的良好品质。概括地讲,PID控制的优点主要体现在以下两个方面:原理简单、结构简明、实现方便,是一种能够满足大多数实际需要的基本控制器;控制器适用于多种截然不同的对象,算法在结构上具有较强的鲁棒性,确切地说,在很多情况下其控制品质对被控对象的结构或参数摄动不敏感。但从另一方面来讲,控制算法的普及性也反映了PID控制器在控制品质上的局限性。具体分析,其局限性主要来自以下几个方面:算法结构的简单性决定了PID控制比较适用于单输入单输出最小相位系统,在处理大时滞、开环不稳定过程等受控对象时,需要通过多个PID控制器或与其他控制器的组合,才能得到较好的控制效果;算法结构的简单性同时决定了PID控制只能确定闭环系统的少数主要零极点,闭环特性从根本上只是基于动态特性的低阶近似假定的;出于同样的原因,决定了单一PID控制器无法同时满足对假定设定值控制和伺服跟踪控制的不同性能要求。如何更好地整定PID控制器的参数一直是PID控制器设计的主要课题。从实际需要出发,一种好的PID控制器参数整定方法,不仅可以减少操作人员的负担,还可以使系统处于最佳运行状态。传统的PID控制算法或是依赖于对象模型,或是易于陷入局部极小,因此存在一定的应用局限性,且难以实现高性能的整定效果,常常超调较大、调整时间较长、误差指标过大等。常规的控制系统主要针对有确切模型的线性过程,其PID参数一经确定就无法调整,而实际上大多数工业对象都不同程度地存在非线性、时变、干扰等特性,随着环境变化对象的参数甚至是结构都会发生变化。自Ziegler和Nichols提出PID参数经验公式法起,有很多方法已经用于PID控制器的参数整定。这些方法按照发展阶段,可分为常规PID控制器参数整定方法和智能PID控制器参数整定方法。按照PID的控制方式又分为模拟PID控制算法和数字PID控制算法。2.1模拟PID控制算法模拟PID控制系统结构如图2-1所示。++-+++c(t)u(t)e(t)r(t)比例积分微分被控对象图2-1模拟PID控制系统结构图它主要由PID控制器和被控对象所组成。而PID控制器则由比例、积分、微分三个环节组成。它的数学描述为:(2-1)(2-2)式中,Keq\o(\s\up6(),\s\do2(p))为比例系数Teq\o(\s\up7(),\s\do3(I));为积分时间常数;Teq\o(\s\up6(),\s\do2(D))为微分时间常数.PID控制器各校正环节的主要控制作用如下:(l)比例环节及时成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。比例系数keq\o(\s\up6(),\s\do2(P))的作用在于加快系统的响应速度,提高系统调节精度。keq\o(\s\up6(),\s\do2(P))越大,系统的响应速度越快,系统的调节精度越高,也就是对偏差的分辨率(重视程度)越高,但将产生超调,甚至导致系统不稳定。keq\o(\s\up6(),\s\do2(P))取值过小,则会降低调节精度,尤其是使响应速度缓慢,从而延长调节时间,使系统静态、动态特性变坏。(2)积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数τ,τ越大,积分作用越弱,反之则越强。积分作用系数越大,系统静态误差消除越大,但积分作用过大,在响应过程的初期会产生积分饱和现象,从而引起响应过程的较大超调。若积分作用系数过小,将使系统静差难以消除,影响系统的调节精度。(3)微分环节能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。2.2数字式PID控制算法在计算机控制系统中,使用的是数字PID控制器,数字PID控制算法通常又分为位置式HD控制算法和增量式PID控制算法。(1)位置式PID控制算法由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,故对式(2-1)中的积分和微分项不能直接使用,需要进行离散化处理。按模拟PID控制算法的算式(2-1),现以一系列的采样时刻点kT代表连续时间t,以和式代替积分,以增量代替微分,则可以作如下的近似变换:(2-3)显然,上述离散化过程中,采样周期T必须足够短,才能保证有足够的精度。为了书写方便,将e(kT)简化表示成e(k)等,即省去T。将式(2-3)代入式(2-1),可以得到离散的PID表达式为:(2-4)中式:k—采样序列号;u(k)—第k次采样时刻的计算机输出值;e(k)—第k次采样时刻输入的偏差值;e(k-1)—第k-1次采样时刻输入的偏差值;Keq\o(\s\up5(),\s\do2(I))—积分系数,Keq\o(\s\up5(),\s\do2(I))=Keq\o(\s\up5(),\s\do2(P))T/Teq\o(\s\up5(),\s\do2(I))Keq\o(\s\up5(),\s\do2(D))—微分系数,Keq\o(\s\up5(),\s\do2(D))Teq\o(\s\up5(),\s\do2(D))/T。我们常称式(2-4)为位置式PID控制算法。对于位置式PID控制算法来说,位置式PID控制算法示意图如图2-2所示,由于全量输出,所以每次输出均与过去的状态有关,计算时要对误差进行累加,所以运算工作量大。而且如果执行器(计算机)出现故障,则会引起执行机构位置的大幅度变化,而这种情况在生产场合不允许的,因而产生了增量式PID控制算法。++-r(t)e(t)uc(t)PID位置算法调节阀被控对象图2-2位置型控制示意图++-r(t)e(t)Δuc(t)PID增量算法步进电机被控对象图2-3增量型控制示意图(2)增量式PID控制算法所谓增量式PID是指数字控制器的输出只是控制量的增量Δ(k)。增量式PID控制系统框图如图2-3所示。当执行机构需要的是控制量的增量时,可以由式(2-4)导出提供增量的PID控制算式。根据递推原理可得:(2-4)用式(2-3)减去式(2-4),可得:(2-5)式(2-5)称为增量式PID控制算法。增量式控制算法的优点是误动作小,便于实现无扰动切换。当计算机出现故障时,可以保持原值,比较容易通过加权处理获得比较好的控制效果。但是由于其积分截断效应大,有静态误差,溢出影响大。所以在选择时不可一概而论。2.3PID控制算法的改进针对常规PID控制存在的问题,将PID控制器与其他的算法相结合,对PID控制器进行改进,得到了多种改进型PID控制器。2.3.1微分项的改进1)不完全微分PID控制算法 在PID控制中,微分信号的引入可改善系统的动态特性,但也易引起高频干扰。在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善。1.不完全微分型PID算法传递函数为式(2-6),传递函数框图如图2-4所示:(2-6)图2-4不完全微分型PID算法传递函数框图2.完全微分和不完全微分作用的区别图2-5完全微分和不完全微分作用的区别3、不完全微分型PID算法的差分方程(2-7)(2-8)4.仿真分析:设被控对象的传递函数为:在对象的输出端加幅值为0.01的随机信号。采样时间为20ms。低通滤波器为:仿真程序:%PIDControler不完全微分clearall;closeall;ts=20;sys=tf([1],[60,1],'inputdelay',80);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;ud_1=0;y_1=0;y_2=0;y_3=0;error_1=0;ei=0;fork=1:1:100time(k)=k*ts;rin(k)=1.0;%Linearmodelyout(k)=-den(2)*y_1+num(2)*u_5;D(k)=0.01*rands(1);yout(k)=yout(k)+D(k);error(k)=rin(k)-yout(k);%PIDControllerwithpartlydifferentialei=ei+error(k)*ts;kc=0.30;ki=0.0055;TD=140;kd=kc*TD/ts;Tf=180;Q=tf([1],[Tf,1]);%LowFreqSignalFilterM=2;%M=1不完全微分,%M=2普通Pid控制!!ifM==1%UsingPIDwithPartialdifferential alfa=Tf/(ts+Tf); ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1; u(k)=kc*error(k)+ud(k)+ki*ei;ud_1=ud(k);elseifM==2%UsingSimplePID u(k)=kc*error(k)+kd*(error(k)-error_1)+ki*ei;end%Restrictingtheoutputofcontrollerifu(k)>=10u(k)=10;endifu(k)<=-10u(k)=-10;endy_3=y_2;y_2=y_1;y_1=yout(k);error_1=error(k);endfigure(1);plot(time,rin,'b',time,yout,'r');xlabel('time(s)');ylabel('rin,yout');由仿真结果可以看出,采用不完全微分型PID算法,引入不完全微分后能有效克服普通PID的不足,尽管不完全微分算法比普通PID控制算法要复杂的多,但由于其良好的控制特性,近年来越来越广泛的应用。图(2-6)不完全微分型(r输入,b输出,下同)图(2-7)普通PID控制2)微分先行和输入滤波PID控制算法微分先行PID控制算法的特点是只对输出量进行微分,而对给定值不进行微分。这样,在改变给定值时,输出不会改变,而且由于被控量一般不会突变,即使给定值已发生改变,被控量也是缓慢变化的,从而不致引起微分项的突变。微分先行PID控制算式为:(2-9)输入滤波,输入滤波就是在计算微分项时,不是直接应用当前时刻的误差e(n),而是采用滤波值e(n),即用过去和当前四个采样时刻的误差的平均值,再通过加权求和形式近似构成微分项(2-10)(2-11)仿真分析:设被控对象的传递函数为:仿真程序:%PIDControler微分先行clearall;closeall;ts=20;sys=tf([1],[60,1],'inputdelay',80);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;ud_1=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;fork=1:1:400time(k)=k*ts;%Linearmodelyout(k)=-den(2)*y_1+num(2)*u_5;kp=0.36;kd=14;ki=0.0021;rin(k)=1.0*sign(sin(0.00025*2*pi*k*ts));rin(k)=rin(k)+0.05*sin(0.03*pi*k*ts);error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;gama=0.50;Td=kd/kp;Ti=0.5;c1=gama*Td/(gama*Td+ts);c2=(Td+ts)/(gama*Td+ts);c3=Td/(gama*Td+ts);M=1;%M=1微分先行算法方%波响应M=2普通算法ifM==1 ud(k)=c1*ud_1+c2*yout(k)-c3*y_1; u(k)=kp*error(k)+ud(k)+ki*ei;elseifM==2%SimplePIDControl u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*ei;endifu(k)>=110u(k)=110;endifu(k)<=-110u(k)=-110;end%Updateparametersy_3=y_2;y_2=y_1;y_1=yout(k);error_2=error_1;error_1=error(k);endfigure(1);plot(time,rin,'r',time,yout,'b');xlabel('time(s)');ylabel('rin,yout');从仿真结果可以看出,该算法适用于给定值频繁升降的场合,可以避免系统振荡,从而明显地改善系统的动态特性。图(2-8)微分先行算法方波响应图(2-9)普通算法方波响应2.3.2积分项的改进抗积分饱和,积分作用虽能消除控制系统的静差,但它也有一个副作用,即会引起积分饱和。在偏差始终存在的情况下,造成积分过量。当偏差方向改变后,需经过一段时间后,输出u(n)才脱离饱和区。这样就造成调节滞后,使系统出现明显的超调,恶化调节品质。这种由积分项引起的过积分作用称为积分饱和现象。以下为几种克服积分饱和的方法。1)积分限幅法积分限幅法的基本思想是当积分项输出达到输出限幅值时,即停止积分项的计算,这时积分项的输出取上一时刻的积分值。其算法流程如图2-10所示。2)积分分离PID控制算法在普通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过程控制的启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的振荡,这在生产中是绝对不允许的。算法流程如图2-11所示:积分分离控制基本思路是:当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度。其具体实现步骤如下:根据实际情况,人为设定阈值ε>0。(2)当|e(k)|<ε时,采用PID控制,以保证系统的控制精度。采用积分分离方法,控制效果有很大的改善。该算的优点是:当偏差值较小时,采用PID控制,可保证系统的控制精度;当差值较大时,采用PD控制,可使超调量大幅度降低。图2-10积分限幅法算法流程 图2-11积分分离算法流程3)遇限消弱积分PID控制算法该算法的基本思想是:当控制进入饱和区以后,便不再进行积分项的累加,而只执行削弱积分的运算计算,先判断u(k-1)是否超出限制值,若超出,则只累加负偏差,否则,累加正偏差。采用遇限消弱积分PID算法,可以避免控制长时间停留在饱和区,防止系统产生超调。2.4模糊PID控制算法模糊控制是以模糊集合论、模糊语言变量及模糊推理为基础的计算机智能控制,基本概念是美国加利福尼亚大学著名教授查德(L.A.Zadeh)首先提出的,经过二十多年的发展,在模糊控制理论和应用研究方面都取得了重大的成功。模糊控制器的基本组成框图如图2-12所示,模糊控制器实际上是依靠微机或单片机构成的,它的绝大部分功能是由计算机程序来完成,随着专用模糊芯片的研究和开发,也可以由硬件逐步取代各组成单元的软件功能。知识库知识库输入输出模糊化接口推理机数据库解模糊接口规则库图2-12模糊控制器的组成框图2.4.1模糊推理的系统结构参数自整定模糊PID控制系统结构如图2-13所示。在常规PID基础上,以温度反馈值与目标值的误差e和误差变化率ec作为输入,用模糊推理的方法对PID参数kp,ki,kd进行在线自整定,以满足不同e和ec对控制器参数的不同要求,从而使受控对象具有良好的动、静态性能。y(t)y(t)-r(t)+ec(t)kp,ki,kde(t)De/dt模糊推理系统PID控制器控制对象图2-13参数自整定模糊PID控制结构图2.4.2PID参数在线整定原则PID控制中Keq\o(\s\up6(),\s\do2(P))、Keq\o(\s\up6(),\s\do2(I))、Keq\o(\s\up6(),\s\do2(D))各参数的作用不再赘述。根据系统在受控过程中对应不同的|e|和|ec|,将PID参数的整定原则归纳如下:(1)当|e|较大时,取较大的Keq\o(\s\up6(),\s\do2(P))与较小的Keq\o(\s\up6(),\s\do2(D)),Keq\o(\s\up6(),\s\do2(I))=0,以使系统有较好的跟踪性能,同时由于对积分作用进行了限制,可避免出现较大的超调。(2)当|e|为中等大小时,Keq\o(\s\up6(),\s\do2(P))取较小值,以降低响应超调量。Keq\o(\s\up6(),\s\do2(D))的取值对系统响应影响较大,Keq\o(\s\up6(),\s\do2(I))的取值也要适当。(3)当|e|较小时,Keq\o(\s\up6(),\s\do2(P))与Keq\o(\s\up6(),\s\do2(I))均取较大值,以提高系统的稳定性,此时Keq\o(\s\up6(),\s\do2(D))值的选择应根据|ec|的大小,|ec|较大时,Keq\o(\s\up6(),\s\do2(D))取较小值,|ec|较小时,Keq\o(\s\up6(),\s\do2(D))值取大一些,以避免系统在设定值附近出现振荡。2.5PID控制器研究面临的主要问题PID控制器参数整定的目的就是按照己定的控制系统,求得控制系统质量最佳的调节性能。PID参数的整定直接影响到控制效果,合适的PID参数整定可以提高自控投用率,增加装置操作的平稳性。对于不同的对象,闭环系统控制性能的不同要求,通常需要选择不同的控制方法和控制器结构。大致上,系统控制规律的选择主要有下面几种情况:(1)(2)对于一阶惯性加纯滞后对象,如果负荷变化不大,控制要求精度较高,可采用比例积分控制。(3)对于纯滞后时间较大,负荷变化也较大,控制性能要求较高的场合,可采用比例积分微分控制。(4)对于高阶惯性环节加纯滞后对象,负荷变化较大,控制性能要求较高时,应采用串级控制、前馈一反馈、前馈一串级或纯滞后补偿控制。对于PID控制来说,虽然它以其控制算法简单、鲁棒性好和可靠性高而在工业控制中被广泛应用,但是PID控制系统是在有精确数学模型的确定性控制系统中建立起来的,而对于实际的工业生产过程来说,往往具有非线性、时变不确定性等,难以建立精确的数学模型,应用常规的PID控制便不能达到理想的控制效果;而且PID控制器由于参数整定困难,在实际应用中往往参数整定不良、性能欠佳,对于运行的工况适应性很差。随着微处理机技术的发展和数字智能式控制器的实际应用,同时,随着现代控制理论研究应用的发展与深入,为控制复杂的无规则系统开辟了新的途径。出现了许多改进型PID控制器,对于复杂系统,其控制效果远远超过了常规的PID控制。3MATLAB编程和仿真3.1PID控制算法分析设计模糊控制器,本文采用的是两输入(e,ec)三输出(Kp,Ki,Kd)的形式,模糊集均为{负大,负中,负小,零,正小,正中,正大},简记为{NB,NM,NS,ZO,PS,PM,PB},其中e,ec的论域为[-3,-2,-1,0,1,2,3],Kp,Ki,Kd的论域为[-6,-4,-2,0,2,4,6],由工程设计人员的技术和实际操作经验,建立了合适的模糊规则表eq\o(\s\up6([1]),\s\do2()),在这里直接引用:(1)Kp的模糊规则表表3.1Kp的模糊规则表(行为ec,列为e,内容为ΔKd,下同)NBNMNSZOPSPMPBNBPBPBPMPMPSZOZONMPBPBPMPSPSZONSNSPMPMPMPSZONSNSZOPMPMPSZONSNMNMPSPSPSZONSNSNMNMPMPSZONSNMNMNMNBPBZOZONMNMNMNBNB(2)Ki的模糊规则表表3.2Ki的模糊规则表NBNMNSZOPSPMPBNBNBNBNMNMNSZOZONMNBNBNMNSNSZOZONSNMNMNSNSZOPSPSZONMNMNSZOPSPMPMPSNSNSZOPSPSPMPBPMZOZOPSPSPMPBPBPBZOZOPSPMPMPBPB(3)Kd的模糊规则表表3.3Kd的模糊规则NBNMNSZOPSPMPBNBPSNSNBNBNBNMPSNMPSNSNBNMNMNSZONSZONSNMNMNSNSZOZOZONSNSNSNSNSZOPSZOZOZOZOZOZOZOPMPBNSPSPSPSPSPBPBPBPMPMPMPSPSPBKp,Ki,Kd的模糊规则表建立好后,可根据以下方法进行Kp,Ki,Kd的自适应校正。设e,ec和Kp,Ki,Kd均服从正态分布,可得到各模糊子集的隶属度,应用模糊合成推理设计PID参数的模糊矩阵表,查出修正参数代入下式计算:Kp=Kp’+{ei,eci}eq\o(\s\up6(),\s\do2(P));Ki=Ki’+{ei,eci}eq\o(\s\up6(),\s\do2(i));Kd=Kd’+{ei,eci}eq\o(\s\up6(),\s\do2(d))(3-1)控制系统通过对模糊逻辑规则的结果处理、查表和运算。完成对PID参数在线自动校正,工作流程如图3-1所示。入口入口取当前采样值e(k)=r(k)-y(k)ec(k)=e(k)-e(k-1)e(k-1)=e(k)e(k),ec(k)模糊化h模糊整定Δkp,Δki,Δkd计算当前kp,ki,kdPID控制器输出返回图3-1在线自动工作流程图3.2MATLAB仿真设被控对象为:(3-2)采样时间为0.5ms,采用模糊Pid控制进行阶跃响应,在第400个采样时间(0.2s)时控制器输出加2.5的干扰,相应的结果如图3-2~3-7。图3-2模糊PID控制阶跃响应图3-3模糊PID控制误差响应图3-4控制器输出U图3-5kp的自适应调整图3-6ki的自适应调整图3-7kd的自适应调整图3-8抗积分饱和的Pid控制模糊控制仿真程序[1]:%FuzzyTunningPIDControlclearall;closeall;a=newfis('fuzzpid');a=addvar(a,'input','e',[-3,3]);%Parameterea=addmf(a,'input',1,'NB','zmf',[-3,-1]);a=addmf(a,'input',1,'NM','trimf',[-3,-2,0]);a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);a=addmf(a,'input',1,'PM','trimf',[0,2,3]);a=addmf(a,'input',1,'PB','smf',[1,3]);a=addvar(a,'input','ec',[-3,3]);%Parametereca=addmf(a,'input',2,'NB','zmf',[-3,-1]);a=addmf(a,'input',2,'NM','trimf',[-3,-2,0]);a=addmf(a,'input',2,'NS','trimf',[-3,-1,1]);a=addmf(a,'input',2,'Z','trimf',[-2,0,2]);a=addmf(a,'input',2,'PS','trimf',[-1,1,3]);a=addmf(a,'input',2,'PM','trimf',[0,2,3]);a=addmf(a,'input',2,'PB','smf',[1,3]);a=addvar(a,'output','kp',[-0.3,0.3]);%Parameterkpa=addmf(a,'output',1,'NB','zmf',[-0.3,-0.1]);a=addmf(a,'output',1,'Z','trimf',[-0.2,0,0.2]);a=addmf(a,'output',1,'PS','trimf',[-0.1,0.1,0.3]);a=addmf(a,'output',1,'PM','trimf',[0,0.2,0.3]);a=addmf(a,'output',1,'PB','smf',[0.1,0.3]);a=addvar(a,'output','ki',[-0.06,0.06]);%Parameterkia=addmf(a,'output',2,'NB','zmf',[-0.06,-0.02]);a=addmf(a,'output',2,'PB','smf',[0.02,0.06]);a=addvar(a,'output','kd',[-3,3]);%Parameterkpa=addmf(a,'output',3,'NB','zmf',[-3,-1]);a=addmf(a,'output',3,'NM','trimf',[-3,-2,0]);a=addmf(a,'output',3,'NS','trimf',[-3,-1,1]);a=addmf(a,'output',3,'Z','trimf',[-2,0,2]);a=addmf(a,'output',3,'PS','trimf',[-1,1,3]);a=addmf(a,'output',3,'PM','trimf',[0,2,3]);a=addmf(a,'output',3,'PB','smf',[1,3]);rulelist=[1171511; 1271311;1362111;1462111;1553111;1644211;1744511;2171511;2271311;2362111;2453211;2553211;2644311;2734411;3161411;3262311;3363211;3453211;3544311;3635311;3735411;4162411;4262311;4353311;4444311;4535311;4626311;4726411;5152411;5253411;5344411;5435411;5535411;5626411;5727411;6154711;6244511;6335511;6425511;6526511;6627511;6717711;7144711;7244611;7325611;7426611;7526511;7617511;7717711];a=addrule(a,rulelist);a=setfis(a,'DefuzzMethod','centroid');writefis(a,'fuzzpid');a=readfis('fuzzpid');%PIDControllerts=0.0005;sys=tf([1,5.678e005],[1,87.65,1.234e004,123]);dsys=c2d(sys,ts,'tustin');[num,den]=tfdata(dsys,'v');u_1=0.0;u_2=0.0;u_3=0.0;y_1=0;y_2=0;y_3=0;x=[0,0,0]';e_1=0;e_1=0.0;ec_1=0.0;kp0=0.40;kd0=1.0;ki0=0.0;fork=1:1:750time(k)=k*ts;r(k)=1;%UsingfuzzyinferencetotunningPIDk_pid=evalfis([e_1,ec_1],a);kp(k)=kp0+k_pid(1);ki(k)=ki0+k_pid(2);kd(k)=kd0+k_pid(3);u(k)=kp(k)*x(1)+kd(k)*x(2)+ki(k)*x(3);ifk==400%Addingdisturbance(2.5attime0.2s)u(k)=u(k)+2.5;endifu(k)>=10u(k)=10;endifu(k)<=-10u(k)=-10;endy(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;e(k)=r(k)-y(k);%returnofPIDparametersu_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=y(k);x(1)=e(k);%CalculatingPx(2)=e(k)-e_1;%CalculatingDx(3)=x(3)+e(k);%CalculatingIe_1=x(1);ec_1=x(2);e_2=e_1;e_1=e(k);endshowrule(a)figure(1);plot(time,r,'b',time,y,'r');xlabel('time(s)');ylabel('r,y');figure(2);plot(time,e,'r');xlabel('time(s)');ylabel('e');figure(3);plot(time,u,'r');xlabel('time(s)');ylabel('u');figure(4);plot(time,kp,'r');xlabel('time(s)');ylabel('kp');figure(5);plot(time,ki,'r');xlabel('time(s)');ylabel('ki');figure(6);plot(time,kd,'r');xlabel('time(s)');ylabel('kd');plotfis(a);fuzzyfuzzpid抗积分饱和PID控制仿真程序:%PIDControlerwithintergrationsturationclearall;closeall;ts=0.0005;sys=tf([1,5.678e005],[1,87.65,1.234e004,123]);dsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');u_1=0.0;u_2=0.0;u_3=0.0;y_1=0;y_2=0;y_3=0;x=[0,0,0]';e_1=0;um=6;kp=0.85;ki=9.0;kd=0.0;r=30;%StepSignalfork=1:1:800time(k)=k*ts;u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PIDControllerifk==400%Addingdisturbance(2.5vattime0.2s)u(k)=u(k)+2.5;endifu(k)>=umu(k)=um;endifu(k)<=-umu(k)=-um;end%Linearmodele(k)=r-y(k);M=2;ifM==1%Usingintergrationsturationifu(k)>=umife(k)>0alpha=0;elsealpha=1;endelseifu(k)<=-umife(k)>0alpha=1;elsealpha=0;endelsealpha=1;endelseifM==2 alpha=1;end%ReturnofPIDparametersu_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=y(k);e_1=e(k);x(1)=e(k);%CalculatingPx(2)=(e(k)-e_1)/ts;%CalculatingDx(3)=x(3)+alpha*e(k)*ts;xi(k)=x(3);endfigure(1);subplot(311);plot(time,r,'b',time,y,'r');xlabel('time(s)');ylabel('Positiontracking');subplot(312);plot(time,u,'r');x

温馨提示

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

评论

0/150

提交评论