ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:61.50KB ,
资源ID:10543994      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10543994.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PID_控制参数如何设定调节.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

PID_控制参数如何设定调节.doc

1、PID 控制参数如何设定调节PID 控制简介目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。同时,控制理论的发展也经历了古典控制理论、现代控制理论和智能控制理论三个阶段。智能控制的典型实例是模糊全自动洗衣机等。自动控制系统可分为开环控制系统和闭环控制系统。一个控控制系统包括控制器传感器变送器执行机构输入输出接口。控制器的输出经过输出接口执行机构加到被控系统上 控制系统的被控量经过传感器变送器通过输入接口送到控制器。不同的控制系统 其传感器 变送器执行机构是不一样的。比如压力控制系统要采用压力传感器。电加热控制系统的传感器是温度传感器。目前,PID 控制及其控制器或智能 PID 控

2、制器(仪表)已经很多,产品已在工程实际中得到了广泛的应用,有各种各样的 PID 控制器产品,各大公司均开发了具有 PID 参数自整定功能的智能调节器 (intelligent regulator),其中 PID 控制器参数的自动调整是通过智能化调整或自校正、自适应算法来实现。有利用 PID 控制实现的压力、温度、流量、液位控制器,能实现 PID 控制功能的可编程控制器 (PLC),还有可实现 PID 控制的 PC 系统等等。可编程控制器(PLC)是利用其闭环控制模块来实现 PID 控制,而可编程控制器(PLC) 可以直接与 ControlNet 相连。还有可以实现 PID 控制功能的控制器,如

3、 Rockwell 的 Logix 产品系列,可以直接与 ControlNet 相连,利用网络实现其远程控制功能。1、开环控制系统开环控制系统(open-loop control system)指被控对象的输出(被控制量 )对控制器(controller)的输出没有影响。在这种控制系统中,不依赖将被控量反送回来以形成任何闭环回路。2、闭环控制系统闭环控制系统(closed-loop control system)的特点是系统被控对象的输出(被控制量)会反送回来影响控制器的输出,形成一个或多个闭环。闭环控制系统有正反馈和负反馈,若反馈信号与系统给定值信号相反,则称为负反馈( Negative F

4、eedback),若极性相同,则称为正反馈,一般闭环控制系统均采用负反馈,又称负反馈控制系统。闭环控制系统的例子很多。比如人就是一个具有负反馈的闭环控制系统,眼睛便是传感器,充当反馈,人体系统能通过不断的修正最后作出各种正确的动作。如果没有眼睛,就没有了反馈回路,也就成了一个开环控制系统。另例,当一台真正的全自动洗衣机具有能连续检查衣物是否洗净,并在洗净之后能自动切断电源,它就是一个闭环控制系统。3 、阶跃响应阶跃响应是指将一个阶跃输入(step function)加到系统上时,系统的输出。稳态误差是指系统的响应进入稳态后系统的期望输出与实际输出之差。控制系统的性能可以用稳、准、快三个字来描述

5、。稳是指系统的稳定性(stability),一个系统要能正常工作,首先必须是稳定的,从阶跃响应上看应该是收敛的准是指控制系统的准确性、控制精度,通常用稳态误差来(Steady-state error) 描述,它表示系统输出稳态值与期望值之差快是指控制系统响应的快速性,通常用上升时间来定量描述。4 、 PID 控制的原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称 PID调节。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数

6、学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。PID 控制,实际中也有 PI 和 PD 控制。PID 控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一

7、个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项” 。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。微分(D)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于

8、存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项” ,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分 (PD)控制器能改善系统在调节过程中的动态特性。5 、 PID 控制器的参数整定PID 控制器的参数整定是控制系统设计

9、的核心内容。它是根据被控过程的特性确定 PID 控制器的比例系数、积分时间和微分时间的大小。PID 控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID 控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数

10、,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行 PID 控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期(3)在一定的控制度下通过公式计算得到 PID 控制器的参数。PID 参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整 PID 的大小。PID 控制器参数的工程整定,各种调节系统中 P.I.D 参数经验数据以下可参照:温度 T: P=2060%,T=180600s,D=3-180s压力 P: P=3070%,T=

11、24180s,液位 L: P=2080%,T=60300s,流量 L: P=40100%,T=660s。书上的常用口诀:参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加曲线振荡很频繁,比例度盘要放大曲线漂浮绕大湾,比例度盘往小扳曲线偏离回复慢,积分时间往下降曲线波动周期长,积分时间再加长曲线振荡频率快,先把微分降下来动差大来波动慢。微分时间应加长理想曲线两个波,前高后低 4 比 1一看二调多分析,调节质量不会低这里介绍一种经验法。这种方法实质上是一种试凑法,它是在生产实践中总结出来的行之有效的方法,并在现场中得到了广泛的应用。这种方法的基本程序是先根据运行经验,确定一组调节器参数,

12、并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。经验法简单可靠,但需要有一定现场运行经验,整定时易带有主观片面性。当采用 PID 调节器时,有多个整定参数,反复试凑的次数增多,不易得到最佳整定参数。下面以 PID 调节器为例,具体说明经验法的整定步骤:让调节器参数积分系数 S0=0,实际微分系数 k=0,控制系统投入闭环运行,由小到大改变比例系数S1,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。取比例系数 S1 为当前

13、的值乘以 0.83,由小到大增加积分系数 S0,同样让扰动信号作阶跃变化,直至求得满意的控制过程。(3)积分系数 S0 保持不变,改变比例系数 S1,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数 S1 增大一些,再调整积分系数 S0,力求改善控制过程。如此反复试凑,直到找到满意的比例系数 S1 和积分系数 S0 为止。引入适当的实际微分系数 k 和实际微分时间 TD,此时可适当增大比例系数 S1 和积分系数 S0。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。注意:仿真系统所采用的 PID 调节器与传统的工业 PID 调节器有所不同,各个参数之

14、间相互隔离,互不影响,因而用其观察调节规律十分方便。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/TT 采样周期 Td 微分时间 Ti 积分时间用上面的算法可以构造自己的 PID 算法。U(K)=U(K-1)+U(K )file

15、:/F|/共享之家/PID处理程序.txt/*=这是从网上找来的一个比较典型的PID处理程序,在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。=*/#include #include /*=PID FunctionThe PID (比例

16、、积分、微分) function is used in mainlycontrol applications. PIDCalc performs one iteration of the PIDalgorithm.While the PID function works, main is just a dummy program showinga typical usage.=*/typedef struct PID double SetPoint; / 设定目标 Desired Valuedouble Proportion; / 比例常数 Proportional Constdouble I

17、ntegral; / 积分常数 Integral Constdouble Derivative; / 微分常数 Derivative Constdouble LastError; / Error-1double PrevError; / Error-2double SumError; / Sums of Errors PID;/*=PID计算部分=*/double PIDCalc( PID *pp, double NextPoint )file:/F|/共享之家/PID处理程序.txtdouble dError,Error;Error = pp-SetPoint - NextPoint; /

18、偏差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 / 微分项);/*=Initialize PID Structure=*/void PIDInit (PID *pp)memset ( pp,0,sizeof(PID);/

19、*=Main Program=*/double sensor (void) / Dummy Sensor Functionreturn 100.0;void actuator(double rDelta) / Dummy Actuator Functionvoid main(void)PID sPID; / PID Control Structuredouble rOut; / PID Response (Output)double rIn; / PID Feedback (Input)PIDInit ( / Initialize StructuresPID.Proportion = 0.5;

20、 / Set PID CoefficientssPID.Integral = 0.5;sPID.Derivative = 0.0;sPID.SetPoint = 100.0; / Set PID Setpointfor (;) / Mock Up of PID ProcessingrIn = sensor (); / Read InputrOut = PIDCalc ( / Perform PID Interationactuator ( rOut ); / Effect Needed Changes#include /* common defines and macros */#includ

21、e “derivative.h“ /* derivative-specific definitions */#include /定义 PID 参数#define VV_KPVALUE 3 /比例#define VV_KIVALUE 40 /积分#define VV_KDVALUE 3 /微分#define VV_MAX 10000 /返回的最大值,是 pwm 的周期值#define VV_MIN 0#define VV_DEADLINE 0X08 /速度 PID,设置死区范围typedef struct PID /定义数法核心数据signed int vi_Ref; /速度 PID,速度设定值

22、signed int vi_FeedBack; /速度 PID,速度反馈值signed long vi_PreError; /速度 PID,前一次,速度误差,vi_Ref - vi_FeedBacksigned long vi_PreDerror; /速度 PID,前一次,速度误差之差,d_error-PreDerror;unsigned int v_Kp; /速度 PID,Ka = Kpunsigned int v_Ki; /速度 PID,Kb = Kp * ( T / Ti )unsigned int v_Kd; /速度 PID, signed long vl_PreU; /电机控制输出值

23、 PID;PID sPID; / PID Control Structurevoid PIDInit(void) sPID.vi_Ref = 0 ; /速度设定值sPID.vi_FeedBack = 0 ; /速度反馈值 sPID.vi_PreError = 0 ; /前一次,速度误差,vi_Ref - vi_FeedBacksPID.vi_PreDerror = 0 ; /前一次,速度误差之差,d_error-PreDerror;sPID.v_Kp = VV_KPVALUE;sPID.v_Ki = VV_KIVALUE;sPID.v_Kd = VV_KDVALUE; sPID.vl_PreU

24、 = 0 ; /电机控制输出值 unsigned int v_PIDCalc( PID *pp )signed long error,d_error,dd_error; error = (signed long)(pp-vi_Ref - pp-vi_FeedBack); / 偏差计算 d_error = error - pp-vi_PreError;dd_error = d_error - pp-vi_PreDerror;pp-vi_PreError = error; /存储当前偏差pp-vi_PreDerror = d_error;if( ( error -VV_DEADLINE ) );

25、/设置调节死区/速度 PID 计算pp-vl_PreU += (signed long)( pp - v_Kp * d_error + pp - v_Ki * error + pp-v_Kd*dd_error); else if( pp-vl_PreU = VV_MAX ) /速度 PID,防止调节最高溢出pp-vl_PreU = VV_MAX;else if( pp-vl_PreU vl_PreU = VV_MIN; else;return ( pp-vl_PreU ); / 返回预调节占空比void main(void) /* put your own code here */InitMC

26、u(); IncPIDInit();int g_CurrentVelocity=0; /全局变量也初始化int g_Flag=0; /全局变量也初始化EnableInterrupts;While(1)if (g_Flagg_Flagfor(;) _FEED_COP(); /* feeds the dog */ /* loop forever */* please make sure that you never leave main */PID 控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于 PID 控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断

27、的调整才能得到较为满意的控制效果。依据经验,一般 PID 参数确定的步骤如下:(1) 确定比例系数 Kp确定比例系数 Kp 时,首先去掉 PID 的积分项和微分项,可以令 Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允许输出最大值的 6070,比例系数 Kp 由 0 开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数 Kp 逐渐减小,直至系统振荡消失。记录此时的比例系数 Kp,设定 PID 的比例系数 Kp 为当前值的 6070。(2) 确定积分时间常数 Ti比例系数 Kp 确定之后,设定一个较大的积分时间常数 Ti,然后逐渐减小 Ti,直至系统出现振荡,然后再反过来,逐渐增

28、大 Ti,直至系统振荡消失。记录此时的 Ti,设定 PID 的积分时间常数 Ti 为当前值的150180。(3) 确定微分时间常数 Td微分时间常数 Td 一般不用设定,为 0 即可,此时 PID 调节转换为 PI 调节。如果需要设定,则与确定 Kp的方法相同,取不振荡时其值的 30。(4) 系统空载、带载联调对 PID 参数进行微调,直到满足性能要求。/定义变量float Kp; /PI 调节的比例常数float Ti; /PI 调节的积分常数float T; /采样周期float Ki;float ek; /偏差 ekfloat ek1; /偏差 ek-1float ek2; /偏差 ek

29、-2float uk; /uksigned int uk1; /对 uk四舍五入取整signed int adjust; /调节器输出调整量/变量初始化Kp=“4“;Ti=“0“。005;T=“0“.001;/ Ki=“KpT/Ti“=0.8,微分系数 Kd=KpTd/T=0.8,Td=0.0002,根据实验调得的结果确定这些参数ek=“0“;ek1=0;ek2=0;uk=“0“;uk1=0;adjust=“0“;int piadjust(float ek) /PI 调节算法if( gabs(ek)0)if(uk-uk1=0.5)uk1=uk1+1;if(uk=0.5)uk1=uk1-1;adjust=“uk1“; return adjust;下面是在 AD 中断程序中调用的代码。 。 。 。 。 。 。 。 。 。 。else /退出软启动后,PID 调节,20ms 调节一次EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);/误差较小 PID 调节稳住if(EvaRegs.CMPR3=890)EvaRegs.CMPR3=890; /限制 PWM 占空比

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报