PID算法.doc_第1页
PID算法.doc_第2页
PID算法.doc_第3页
PID算法.doc_第4页
PID算法.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

PID算法PID是比例,积分,微分的缩写,Uo(N)=P*E(N)+I*E(N)+E(N-1)+.+E(0)+D*E(N)-E(N-1)Htwang 2009-11-2注:E(N)-本次误差 E(N)+E(N-1)+.+E(0)-所有误差之和E(N)-E(N-1)-控制器输出与输入误差信号的微分(即误差的变化率),具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。E-误差P-改变P可提高响应速度,减小静态误差,但太大会增大超调量和稳定时间。I-与P的作用基本相似,但要使静态误差为0,必须使用积分。D-与P,I的作用相反,主要是为了减小超调,减小稳定时间。三个参数要综合考虑,一般先将I,D设为0,调好P,达到基本的响应速度和误差,再加上I,使误差为0,这时再加入D,三个参数要反复调试,最终达到较好的结果。不同的控制对象,调试的难度相差很大,祝好运!PID的参数设置可以参照以下来进行: 参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加曲线振荡很频繁,比例度盘要放大曲线漂浮绕大湾,比例度盘往小扳曲线偏离回复慢,积分时间往下降曲线波动周期长,积分时间再加长曲线振荡频率快,先把微分降下来动差大来波动慢。微分时间应加长理想曲线两个波,前高后低4比1一看二调多分析,调节质量不会低下面以PID调节器为例,具体说明经验法的整定步骤: 让调节器参数积分系数S0=0,实际微分系数k=0,控制系统投入闭环运行,由小到大改变比例系数S1,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。 取比例系数S1为当前的值乘以0.83,由小到大增加积分系数S0,同样让扰动信号作阶跃变化,直至求得满意的控制过程。 (3) 积分系数S0保持不变,改变比例系数S1,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数S1增大一些,再调整积分系数S0,力求改善控制过程。如此反复试凑,直到找到满意的比例系数S1和积分系数S0为止。 引入适当的实际微分系数k和实际微分时间TD,此时可适当增大比例系数S1和积分系数S0。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。注意:仿真系统所采用的PID调节器与传统的工业 PID调节器有所不同,各个参数之间相互隔离,互不影响,因而用其观察调节规律十分方便。PID参数是根据控制对象的惯量来确定的。大惯量如:大烘房的温度控制,一般P可在10以上,I=3-10,D=1左右。小惯量如:一个小电机带 一水泵进行压力闭环控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,这些要在现场调试时进行修正的。 我提供一种增量式PID供大家参考:U(k)=Ae(k)-Be(k-1)+Ce(k-2) A=Kp(1+T/Ti+Td/T) B=Kp(1+2Td/T) C=KpTd/T T采样周期 Td微分时间 Ti积分时间 用上面的算法可以构造自己的PID算法。 U(K)=U(K-1)+U(K)在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象“一阶滞后纯滞后”与“二阶滞后纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、)。下面对控制点所采用的PID控制算法进行说明。 控制点目前包含三种比较简单的控制算法,分别是:增量式算法,位置式算法,微分先行。 这三种算法虽然简单,但各有特点,基本上能满足一般控制的大多数要求。1) PID增量式算法离散化公式: 注:各符号含义如下 u(t); 控制器的输出值。 e(t); 控制器输入与设定值之间的误差。 Kp; 比例系数。 Ti; 积分时间常数。 Td; 微分时间常数。 T; 调节周期。 对于增量式算法,可以选择的功能有: (1) 滤波的选择可以对输入加一个前置滤波器,使得进入控制算法的给定值不突变,而是有一定惯性延迟的缓变量。 (2) 系统的动态过程加速在增量式算法中,比例项与积分项的符号有以下关系:如果被控量继续偏离给定值,则这两项符号相同,而当被控量向给定值方向变化时,则这两项的符号相反。 由于这一性质,当被控量接近给定值的时候,反号的比例作用阻碍了积分作用,因而避免了积分超调以及随之带来的振荡,这显然是有利于控制的。但如果被控量远未接近给定值,仅刚开始向给定值变化时,由于比例和积分反向,将会减慢控制过程。 为了加快开始的动态过程,我们可以设定一个偏差范围v,当偏差|e(t)|= 时,则不管比例作用为正或为负,都使它向有利于接近给定值的方向调整,即取其值为|e(t)-e(t-1)|,其符号与积分项一致。利用这样的算法,可以加快控制的动态过程。 (3) PID增量算法的饱和作用及其抑制 在PID增量算法中,由于执行元件本身是机械或物理的积分储存单元,如果给定值发生突变时,由算法的比例部分和微分部分计算出的控制增量可能比较大,如果该值超过了执行元件所允许的最大限度,那么实际上执行的控制增量将时受到限制时的值,多余的部分将丢失,将使系统的动态过程变长,因此,需要采取一定的措施改善这种情况。 纠正这种缺陷的方法是采用积累补偿法,当超出执行机构的执行能力时,将其多余部分积累起来,而一旦可能时,再补充执行。2) PID位置算法 离散公式: ;= 对于位置式算法,可以选择的功能有: a、滤波:同上为一阶惯性滤波 b、饱和作用抑制: (1) 遇限削弱积分法一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说,在计算Ui时,将判断上一个时刻的控制量Ui-1是否已经超出限制范围,如果已经超出,那么将根据偏差的符号,判断系统是否在超调区域,由此决定是否将相应偏差计入积分项。(2) 积分分离法在基本PID控制中,当有较大幅度的扰动或大幅度改变给定值时, 由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调量和长时间的波动。特别是对于温度、成份等变化缓慢的过程,这一现象将更严重。为此可以采用积分分离措施,即偏差较大的时,取消积分作用;当偏差较小时才将积分作用投入。 另外积分分离的阈值应视具体对象和要求而定。若阈值太大,达不到积分分离的目的,若太小又有可能因被控量无法跳出积分分离区,只进行PD控制,将会出现残差。 离散化公式:u(t) = q0e(t) + q1e(t-1) + q2e(t-2) 当|e(t)|时 q0 = Kp(1+T/Ti+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T 当|e(t)|时 q0 = Kp(1+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T u(t) = u(t-1) + u(t) 注:各符号含义如下 u(t); 控制器的输出值。 e(t); 控制器输入与设定值之间的误差。 Kp; 比例系数。 Ti; 积分时间常数。 Td; 微分时间常数。 T; 调节周期。 ; 积分分离阈值 (3) 有效偏差法当根据PID位置算法算出的控制量超出限制范围时,控制量实际上只能取边际值U=Umax,或U=Umin,有效偏差法是将相应的这一控制量的偏差值作为有效偏差值计入积分累计而不是将实际的偏差计入积分累计。因为按实际偏差计算出的控制量并没有执行。 如果实际实现的控制量为U=U(上限值或下限值),则有效偏差可以逆推出,即:= 然后,由该值计算积分项 3) 微分先行PID算法 当控制系统的给定值发生阶跃时,微分作用将导致输出值大幅度变化,这样不利于生产的稳定操作。因此在微分项中不考虑给定值,只对被控量(控制器输入值)进行微分。微分先行PID算法又叫测量值微分PID算法。公式如下: 离散化公式: 参数说明同上对于纯滞后对象的补偿 控制点采用了Smith预测器,使控制对象与补偿环节一起构成一个简单的惯性环节。PID参数整定(1) 比例系数对系统性能的影响: 比例系数加大,使系统的动作灵敏,速度加快,稳态误差减小。偏大,振荡次数加多,调节时间加长。太大时,系统会趋于不稳定。太小,又会使系统的动作缓慢。可以选负数,这主要是由执行机构、传感器以控制对象的特性决定的。如果的符号选择不当对象状态(pv值)就会离控制目标的状态(sv值)越来越远,如果出现这样的情况的符号就一定要取反。 (2) 积分控制对系统性能的影响: 积分作用使系统的稳定性下降,小(积分作用强)会使系统不稳定,但能消除稳态误差,提高系统的控制精度。 (3) 微分控制对系统性能的影响: 微分作用可以改善动态特性,偏大时,超调量较大,调节时间较短。偏小时,超调量也较大,调节时间也较长。只有合适,才能使超调量较小,减短调节时间。比较典型的PID算法控制程序源代码比较典型的PID处理程序日期:2005-2-1来源:21ICbbs作者:lookuper字体:大中小/*=这是一个比较典型的PID处理程序,在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。=*/#include#include/*=PIDFunctionThePID(比例、积分、微分)functionisusedinmainlycontrolapplications.PIDCalcperformsoneiterationofthePIDalgorithm.WhilethePIDfunctionworks,mainisjustadummyprogramshowingatypicalusage.=*/typedefstructPIDdoubleSetPoint;/设定目标DesiredvaluedoubleProportion;/比例常数ProportionalConstdoubleIntegral;/积分常数IntegralConstdoubleDerivative;/微分常数DerivativeConstdoubleLastError;/Error-1doublePrevError;/Error-2doubleSumError;/SumsofErrorsPID;/*=PID计算部分=*/doublePIDCalc(PID*pp,doubleNextPoint)doubledError,Error;Error=pp-SetPoint-NextPoint;/偏差pp-SumError+=Error;/积分dError=pp-LastError-pp-PrevError;/当前微分pp-PrevError=pp-LastError;pp-LastError=Error;return(pp-Proportion*Error/比例项+pp-Integral*pp-SumError/积分项+pp-Derivative*dError/微分项);/*=InitializePIDStructure=*/voidPIDInit(PID*pp)memset(pp,0,sizeof(PID);/*=MainProgram=*doublesensor(void)/DummySensorFunctionreturn100.0;voidactuator(doublerDelta)/DummyActuatorFunctionvoidmain(void)PIDsPID;/PIDControlStructuredoublerOut;/PIDResponse(Output)doublerIn;/PIDFeedback(Input)PIDInit(&

温馨提示

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

评论

0/150

提交评论