怎样使用上位机调PID

问题

一、 为什么P过小时系统会有静差?·
二、 为什么Kp过大时会有超调、震荡?
三、 为什么积分项可以消除稳态误差?
四、 为什么微分项可以抑制震荡、限制超调、以及可以作为超前控制系统的主要输出?
五、 PID整定口诀

PID中P增大增快响应速度,I消除稳差,D增加增强预判。这些值越大越好吗?P太大会超调,D大会震荡,I值有累积作用。

一、为什么P过小时系统会有静差?

在这里插入图片描述
举个例子,假如一个温度控制系统,就比如控制烙铁的温度。
1.我们在烙铁电源线中间串一个继电器作为自动开关,继电器用单片机控制。
2.烙铁头上绑一个热电偶,作为温度反馈元件。

首先假设:
1.给定值Sv=100度。
2.PWM的周期T=1000,对应单片机电压U=5V。
3.最低动作电压,或者叫死区电压为2.5V。

下面开始分析:
假如一开始烙铁上电,烙铁温度是10度,那么此时偏差Ek=100-10=90
回顾一下比例控制的公式:
Pout=Kp * Ek

  1. 若Kp设为1,则此时Pout最大等于90,加载到负载上的电压最大为90/1000 * 5V =0.09V。
    0.09V对于5V来讲,连维持电压的标准都达不到,所以Kp=1时烙铁基本就不会升温。
  2. Kp=10;Pout最大为900,加载到负载上的电压最大为900/1000 * 5V =4.5V。这个可以了,烙铁开始升温。而此时注意了,随着温度的升高偏差也在减小,随之Pout输出也在减弱,当温度升到40度时,Pout=10 * 60=600,电压为600/1000 * 5 = 3V,加载到负载的电压是3V,高于死区电压,故温度继续上升。
    而当温度上升到50度时,此时Ek=50,故Pout=500,电压也就等于(500/1000) *5=2.5V,此时到了临界死区电压,也就是此时的电压无法再使得温度继续上升了。由于温度的惯性,可能还会在升高几度。之后就会维持在那里,进入稳态。
    那么此时也就产生了稳态误差,稳态误差也就是静差,等于50。
    如果你继续加大Kp,那么稳态误差会相关减小。但稳态误差不会消失。
    有同学就问了,Kp继续加大,稳态误差就会减下去,那使劲加大Kp不就能消除稳态误差了?答案是不能,Kp太小,系统存在稳态误差;而Kp过大,则会使系统有超调,并且出现震荡。

二、 为什么Kp过大时会有超调、震荡?

在这里插入图片描述
我们继续上个假设,当Kp=200时,假如温度升到了90度,此时偏差为10,但此时系统输出电压U=200*10 /1000 *5 =10V,但因为最大5V,所以系统仍以5V的电压高度运行,然后逐渐高速接近100度,此时注意,温度越高偏差越小输出越小。

但更要注意温度控制是个大惯性系统。

理论上到99度时,偏差Ek=1,输出为200*1/1000 *5 =1V。

而实际情况是:因为前面温度上升非常快,而加热元件是惯性系统,所以即使理论输出1V,实际情况

是加热元件上面的热量依然很高,依然顶着温度往上跑,呼呼的冲过了100度,然后继续上升。过一段时间后,温度停止上升才开始下降,降到100度以下,系统瞬间接收到正偏差,开始给加热元件供电,然而此时又是因为其是惯性元件,故虽然加热元件已开始供电但温度却继续下降。降了好多度之后,温度停止降温开始升温。来来回回周而复始。也就出现了震荡(非衰减震荡,因为不会进入误差带)。

三、 为什么积分项可以消除稳态误差?

积分是什么?积分的几何意义概括的说是求曲边梯形的面积,将曲边梯形分成无数个小块,每块都可以近似拟合成长方形。将所有“长方形”的面积求和,即得到曲面梯形的面积。

所以积分的核心思想是什么啊?这是求和啊。

回顾一下积分项的公式:

Iout = Kp * 1/Ti * T * ∑ Ek

简化一下就是:Iout=∑ Ek ,k∈( 0 , n )

意思就是积分项输出,等于从第0时刻到当前这一时刻,的偏差求和。

那不就行了,偏差求和,偏差求和,只要你敢有偏差那我就敢求和,那继而就有输出。你一有偏差我就积分(求和),一有偏差我就积分,直到积到你偏差等0我才停止,否则我就会一直积积积,也就一直有输出输出输出。

所以,积分能消除静差(稳态误差)。

四、 为什么微分项可以抑制震荡、限制超调、以及可以作为超前控制系统的主要输出?

微分微分,我们在数学中学过“求导数”,位置的导数为速度,速度的导数是加速度。
速度反应的是位置的变化率,而加速度反映的是速度的变化率。
我们再来回顾一下PID理论中微分项的公式:
Dout=Kp * Td * [ E(k)-E(k-1) ]/ T

公式核心部分是:[ E(k)-E(k-1) ]/ T, 这是啥?“本次偏差减去上次偏差,再除以两次间隔的时间”,这就是赤裸裸的求导啊!
求导是啥?就是求变化率呀!

所以,微分项输出就是由偏差变化率决定。即:偏差一旦有变化率,那我就有输出,否则你偏差再大,只要你变化率趋于0,那我就没输出。

那么结论就来了,只要我将微分项的输出量的符号设为负值。注意了,那么一旦系统有变化率,此时微分项输出多少,系统就得从总输出中减去多少。若前两次偏差的变化率非常大,那么本次总输出减去的值也就对应的非常多,也就是大大削弱了总输出量,这不相当于微分项作为一个阻尼,抑制了系统的输出吗?
那为什么可以抑制震荡呢?
在这里插入图片描述
首先,震荡的产生一般是因为,Kp设置过大导致比例项单位输出过大,导致输出过量而产生震荡。那么注意此时系统响应速度也就非常高,即震荡频率不低。而震荡频率越高,我微分项在一个控制周期(或者叫采样周期)内捕获到的偏差变化率也就越大。那么我微分项输出也就越大,相应的就会削弱更多的系统输出。此时输出被削弱就不会导致单位输出过量,也就是说震荡就会减小了。(不知道大家能不能边看文章边想象,波形和输出的关系。。。等我晚上回去画一张图,以便于大家理解。)

限制超调其实也是一个道理,只不过超调限制的不太明显,为啥内?因为公认的好系统都是阻尼比大于0小于1的衰减震荡,也就是刚开始是有超调震荡的,然后随着时间的延长震荡越来越小直至进入误差带范围内。。。如果你再问为啥不能把微分项使劲加大,加到没有超调。那我只能回答你,那样会极大削弱系统响应时间,过渡过程时间会非常大,响应非常慢。。都是自控基础知识了,,,看书看书咳咳,,
微分项作为超前控制的主要输出?
之前做了全国大学生电子设计竞赛的板球控制系统。参考了王向阳大哥的思路。
板球控制系统其实就是基本靠微分项输出的控制系统,目的就是为了极限加大系统的响应速度,减小响应时间。同学就问了,“加大响应速度靠微分项?你搞错了是靠比例项。”
不,同学,你搞错了。我问你,比例控制还有一个名字叫什么?有差控制!
明白没有?明白了吧。板球的球滚那么快,你一个控制周期过去,球都滚没影了你还控制嘞你,妖怪吧。。。
微分项不一样,微分项可以由在前几次的变化趋势,来预测系统后面几个周期的状态,以作出超前的控制输出。
即:你已经有往那边滚动的趋势了,那么在你还没滚丢之前,我就提前输出一个量来阻止你继续往那边滚动。不等你滚丢的那个周期的偏差来到,我就已经未雨绸缪了。把你想滚丢的念头扼杀在摇篮里。
这时候呢,作为超前控制,你微分项就可以越大越好了(也不能太大)。越大超前性越高。

五、 PID整定口诀

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢,微分时间应加长
理想曲线两个波,前高后低四比一
一看二调多分析,调节质量不会低

具体pid从入门到使用上位机调参下载链接:pid从入门到使用上位机调参

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章