浅谈PID控制及其调试

上传人:y****3 文档编号:12933008 上传时间:2020-06-03 格式:DOC 页数:8 大小:172.50KB
返回 下载 相关 举报
浅谈PID控制及其调试_第1页
第1页 / 共8页
浅谈PID控制及其调试_第2页
第2页 / 共8页
浅谈PID控制及其调试_第3页
第3页 / 共8页
点击查看更多>>
资源描述
.浅谈PID控制及其调试作者:袁伟明 日期:2015年5月18日一、前言写这篇文章首先是对学习PID的总结,同事也是方便于参加飞思卡尔同学和这方面爱好者对PID的理解。此文章中参考和引用了百度知道、CSDN博客、新浪博客、百度贴吧等多方网站资料,并加入了自己一些理解与体会,希望能给大家带来帮助。若有不妥或错误之处,欢迎指正。二、控制系统分类控制系统有很多的种类,但是这里只是介绍常用开环控制系统与闭环控制系统的相关理论知识。1.开环控制开环控制系统(open-loop control system)是指被控对象的输出(被控制量)对控制器(controller)的输出没有影响。在这种控制系统中,不依赖将被控量反送回来以形成任何闭环回路。2.闭环控制闭环控制系统(closed-loop control system)的特点是系统被控对象的输出(被控制量)会反送回来影响控制器的输出,形成一个或多个闭环。闭环控制系统有正反馈和负反馈,若反馈信号与系 统给定值信号相反,则称为负反馈(Negative Feedback),若极性相同,则称为正反馈,一般闭环控制系统均采用负反馈,又称负反馈控制系统。闭环控制系统的例子很多。比如人就是一个具有负反馈 的闭环控制系统,眼睛便是传感器,充当反馈,人体系统能通过不断的修正最后作出各种正确的动作。如果没有眼睛,就没有了反馈回路,也就成了一个开环控制系 统。另例,当一台真正的全自动洗衣机具有能连续检查衣物是否洗净,并在洗净之后能自动切断电源,它就是一个闭环控制系统。开环控制系统与闭环控制系统的简单图形示例:3.小结开环与闭环控制系统最大的区别就是:前者的控制量不依赖控制对象返回的信号,后者输出的控制量则会依赖于控制信号返回。例如:控制一个电机的转速,如果是开环的控制系统,那么输出会一直处于最大功率直到电机达到设定速度;如果是闭环控制系统,控制器的输出可能一开始是最大功率输出,但是越接近设定速度,输出的功率会慢慢减少。这个控制对象的过程是个累加的过程,后面会在增量式PID的算法中讲到;上述的情况用开环控制系统,最后会使电机的转速远远地超过设定速度,因为有个滞后性;而用闭环控制系统就可以很好的控制最终电机的速度接近设定值。这就是闭环控制系统与开环控制系统的最大区别与好处。三、PID原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它 以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或 不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。1.比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。2.积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的 或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积 分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到接近于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后几乎无稳 态误差。3.微分(D)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用, 其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能 够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在 调节过程中的动态特性。4.小结这部分主要是弄清楚P、I、D三个参数的意思和这三个控制单元在控制过程中分别的作用。P就是比例项,I就是积分项,D就是微分项,也可以说是系数,因为这个是在离散公式中的参数,在PID公式中,可以容易的发现它们分别是比例系数、积分系数、微分系数;如果需要深入理解可以自己将离散化过程好好学习一下,通过画图也能够很好的理解比例、积分(求面积)、微分(求斜率)过程。在对控制单元的选择上面,就要先了解控制单元的作用,上面可能是对控制单元作用的总体叙述,但是,我在这里说一下我对控制单元的理解:比例就是减少达到目标的时间,积分是消除与设定之间的误差(稳态误差(静差),微分可以判定系统误差的趋势,从而起到一个预判的作用;也有人将其比喻为现在、过去、将来,或者大勺、中勺、小勺;个人认为这样理解也是可以的,但是更为重要的是认真分析公式,了解比例、积分、微分的过程与作用。有人会问为啥只有p、PI、pd、pid而没有id控制,在这里,据我的理解和查阅资料,理解为:P是控制的主要作用是不可缺少的控制单元,而id为辅助控制单元,因此控制中,P为不可缺单元。选择控制方案的时候,可以参考如果系统需要得到很精确的值,可以加入I参数;如果系统需要适应动态性能,如:滞后性等,加入D可以有效的避免系统的严重超调;如果是PID控制,那么会使得系统更好,但是这些控制方案中调节不好也会出现很大的问题,具体后面会说。四、PID算法PID算法也有很多,在此,就最常见的增量式PID算法与位置式算法作分析,包括其原理与C编程分析。1. PID增量式算法离散化公式:u(k)= u(k)- u(k-1)u(k)=Kpe(k)-e(k-1)+Kie(k)+Kde(k)-2e(k-1)+e(k-2)进一步可以改写成:u(k)=Ae(k)-Be(k-1)+Ce(k-2)对于增量式算法,可以选择的功能有:(1) 滤波的选择可以对输入加一个前置滤波器,使得进入控制算法的给定值不突变,而是有一定惯性延迟的缓变量。(2) 系统的动态过程加速在增量式算法中,比例项与积分项的符号有以下关系:如果被控量继续偏离给定值,则这两项符号相同,而当被控量向给定值方向变化时,则这两项的符号相反。由于这一性质,当被控量接近给定值的时候,反号的比例作用阻碍了积分作用,因而避免了积分超调以及随之带来的振荡,这显然是有利于控制的。但如果被控量远未接近给定值,仅刚开始向给定值变化时,由于比例和积分反向,将会减慢控制过程。为了加快开始的动态过程,我们可以设定一个偏差范围v,当偏差|e(t)|= 时,则不管比例作用为正或为负,都使它向有利于接近给定值的方向调整,即取其值为|e(t)-e(t-1)|,其符号与积分项一致。利用这样的算法,可以加快控制的动态过程。(3) PID增量算法的饱和作用及其抑制在PID增量算法中,由于执行元件本身是机械或物理的积分储存单元,如果给定值发生突变时,由算法的比例部分和微分部分计算出的控制增量可能比较大,如果该值超过了执行元件所允许的最大限度,那么实际上执行的控制增量将时受到限制时的值,多余的部分将丢失,将使系统的动态过程变长,因此,需要采取一定的措施改善这种情况。纠正这种缺陷的方法是采用积累补偿法,当超出执行机构的执行能力时,将其多余部分积累起来,而一旦可能时,再补充执行。(4)小结PID增量式算法,是一种对于滞后性很大的系统所用的算法。首先弄清输入量、输出量、执行机构、控制对象,举个例子:比如电机的控制,输入量为电机当前速度,输出量为PWM(脉冲数),执行机构为电机。这里输出量其实就是电机当前状态的增量,而不是电机的当前状态;如现在速度为1000r/s,目标为2000r/;输出PWM为%50(假设500脉冲),那么此时的输出是不是在原来电机的速度上面增加呢?是不是输出为电机的增量呢?这样思考,就可以很容易的理解增量式PID算法,适用一种累加的过程,电机的速度是一个累加的过程,不可能一下就达到目标速度,还有温度也是同样的。2. PID位置算法(1).离散公式:u(k)=Kp*e(k) +Ki*+Kd*e(k)-e(k-1)对于位置式算法,可以选择的功能有:a.滤波:同上为一阶惯性滤波b.饱和作用抑制:(2).小结上面先对增量式PID作了说明,现在是位置式PID;我先说最大的却别:增量式PID输出为执行机构的增量,位置式PID输出为执行机构的实际量。这里我准备以阀门作为例子,但是想了一下还是以舵机作为例子吧!其实舵机也可以说是一种阀门,因为如果你给它一个位置信号,舵机(执行机构)马上就能达到实际位置;有很多人会把控制机构和输入量混淆,我以飞思卡尔的舵机闭环控制为例子。这里的输入量是车子的状态(信号的一个反应),目标量(都希望车子跑中间,一般都设定为0,因为正负可以代表车子左右偏向),输出量为舵机的占空比(执行机构实际位置量),执行机构为舵机。其中有个问题,就是弯道与直道的目标值会一样么?这个问题我经过一同学的分析,我发现很会进入常规思考,包括我原来的理解也错误了。因为舵机不过是个执行机构,不论舵机怎样转,只要整个车身保持在中线上面(或者是信号坐标的目标值为0),因此,设定值不论是弯道直道都是0。3. C语言编程版typedef struct PID int SetPoint; /设定目标 Desired Value long SumError; /误差累计 double Proportion; /比例常数 Proportional Cons double Integral; /积分常数 Integral Const double Derivative; /微分常数 Derivative Const int LastError; /Error-1 int PrevError; /Error-2 PID;/* 函数名称 : * 函数描述 : 增量式 PID 控制计算* 函数输入 : int 当前位置* 函数输出 : 无* 函数返回 : 增量式PID结果*/int IncPIDCalc(int NextPoint) int iError, iIncpid; /当前误差 iError = sptr-SetPoint - NextPoint; /增量计算 iIncpid = sptr-Proportion * iError /Ek项 - sptr-Integral * sptr-LastError /Ek1项 + sptr-Derivative * sptr-PrevError; /Ek2项 /存储误差,用于下次计算 sptr-PrevError = sptr-LastError; sptr-LastError = iError; /返回增量值 return(iIncpid);/* 函数名称 : LocPIDCalc* 函数描述 : 位置式 PID 控制计算* 函数输入 : int 当前位置* 函数输出 : 无* 函数返回 : 位置式PID结果*/int LocPIDCalc(int NextPoint) int iError,dError; iError = sptr-SetPoint - NextPoint; /偏差 sptr-SumError += iError; /积分 dError = iError - sptr-LastError; /微分 sptr-LastError = iError; return(sptr-Proportion * iError /比例项 + sptr-Integral * sptr-SumError /积分项 + sptr-Derivative * dError); /微分项以上是控制算法的C语言版,就是用了结构体和一个函数就可以将算法描述出来,这个是数学公式离散公式C语言的过程。分析这个主要看输入输出就好了,里面的算法理解就看前面解释的PID算法,至于C语言语法方面,有问题可以查阅相关C方面资料,这里不作多的介绍;但是我们可以看到位置式PID是每一个状态都与其输出有关,但是增量式PID只是用到了最近的三个状态,因此增量式也可以进行加权处理,计算量也很少。五、PID参数整定1. 一般步骤a.确定比例增益P确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%70%。比例增益P调试完成。b.确定积分时间常数Ti比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%180%。积分时间常数Ti调试完成。c.确定微分时间常数Td积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。d.系统空载、带载联调,再对PID参数进行微调,直至满足要求。2PID调试一般原则及口诀:a.在输出不振荡时,增大比例增益P。b.在输出不振荡时,减小积分时间常数Ti。c.在输出不振荡时,增大微分时间常数Td。口诀:参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加曲线振荡很频繁,比例度盘要放大曲线漂浮绕大湾,比例度盘往小扳曲线偏离回复慢,积分时间往下降曲线波动周期长,积分时间再加长曲线振荡频率快,先把微分降下来动差大来波动慢。微分时间应加长理想曲线两个波,前高后低4比1一看二调多分析,调节质量不会低调试的参考图像分析:3.小结上面的调试步骤很清楚了,我是补充一个调试PID思维步骤:1.先给系统一个误差(通俗的说就是先让系统处于不稳定状态,也可以说需要调节的状态;飞思卡尔的话就把车子放歪就好了,具体多大的误差参照上面的说明).2.将整定后得到的信号发送到上位机分析(a.芯片进行PID计算b.执行机构运行c.得到的信号通过无线再经串口发送到电脑(有蓝牙或者其他高级东西可以用其他方法,只要能将信息传到PC即可)d.用上位机程序处理接收数据为图像e.分析图像,整定PID参数。上面的过程是个循环的过程,具体无线、串口、上位机、图像方面的技术问题请查阅资料,这里不作说明。按着上面的分析方法对PID参数的整定应该可以很大的提高效率。五、参考资料网址1. http:/blog.163.com/xxtx188126/blog/static/3621685120113306598465/2. http:/www.51hei.com/mcu/2868.html3. http:/baike.baidu.com/link?url=FWXd4rzQxMR7GbPmuDdr3wWMHvYO-kZ9Yp_uiNnTn4oju9vE35_5Nxb7ghwJ7iA6Rq0OiWIuUW1H_kONxmFbYa4. http:/blog.csdn.net/zyboy2000/article/details/9418257如有侵权,发送邮件到ywmpsn163.com,作者会尽快给出回复。谢谢!.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 职业技能


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!