打印

菜鸟分享一下对PID算法的理解(从系统角度来分析,配图)

[复制链接]
14568|58
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wnagchaobq 于 2010-9-14 00:11 编辑

大学时专业自动化,其实关于PID的算法在《自动控制原理》上介绍的比较少,只是简单说明加入PID之后如何改变系统的极点,从而改变系统的稳定性。
     早期的PID主要用于化工自动化的控制,在石化等控制系统上应用比较多,好多同学对比例,积分,微分的参数如何整定不理解,这里推荐一本书《过程控制系统及工程》,翁维勤,化学工业出版社。主要看31-35页,看上十几遍或许会有点感悟。我看了很多遍现在还是不是很明白,哎,太笨了……
     在这里提一下,学习自动化的朋友或许知道以前网上流传一篇科普**《自动化的故事》,作者一定是个高人,对控制系统的理解太深厚了,里边有关于PID的白话描述,很是容易理解,如果找不到的话,我可以发给大家……
     不废话了,结合自己毕业设计时候的图片,从控制系统角度给大家分享一下,还有好多不明白的地方,希望能跟打击一起讨论。

      这里用一个工业中最简单常用的单回路控制系统来说明:如下图



      本控制系统选用上水箱液位作为被控量,电动调节阀作为操纵变量,LC为液位变送器,测得的液位与设定的液位值相比较,然后经过PID算法控制电动调节阀的开度,从而控制水箱的液位。
下图为单回路控制系统的方块图:



这样看着就比较直观了。




先不着急分析,先给大家上另外一幅图:



在单位阶跃作用下,PPIPID调节系统的阶跃响应分别如图中的曲线①、②、③所示。
对照图再来给分析:
1.图中ess表示最终的偏差值
2.曲线1: 系统只加入P时的阶跃响应,最后稳定时,有一定的余差存在。
3.曲线2: 系统加入PI时的阶跃响应,与曲线1对比,系统在经过一段振荡之后逐渐衰减,最后趋于设定值。(自控原理所有的系统不管经过如何的根轨迹,频域,状态空间分析,最终目的都是希望系统是衰减的,而且是趋于设定值的)这里如果I值加的过大,图中振荡的尖峰值就会过大,这就是所谓的超调,再与P一起作用就会引起振荡(这种情况可能大家就比较熟悉了)。
4.曲线3: 系统加入PID后的阶跃响应,我们这里与曲线2进行对比:会发现a: 系统的上升时间变快了 b: 振荡的尖峰值变小了。   这就是微分的作用,它可以加快系统的响应时间,所以在控制对象为温度这种滞后量比较大的对象时,加入D可以加快系统响应速度。另一个作用:微分可以减少系统的超调量, 但是,并不是所有单回路控制系统在加入微分作用后都能改善系统品质,对于容量滞后不大,微分作用的效果并不明显,而对噪声敏感的流量系统,加入微分作用后,反而使流量品质变坏。






1. 当调节器中只有P=36%,I=0,D= 0时 水箱液位的阶跃响应如下图所示
(其中123号曲线分别表示调节器输出曲线、设定值曲线和系统响应曲线)。



2.当调节器中有PIP=30%TI=0.2ms, D=0 )时,上水箱液位的阶跃响应如下图所示(其中123号曲线分别表示调节器输出曲线、设定值曲线和系统响应曲线)。



3.当调节器中有PIDP=36%TI=1mTD=10s)时,上水箱液位的阶跃响应如下图所示(其中123号曲线分别表示调节器输出曲线、设定值曲线和系统响应曲线)。




结论:
P加的过大时,会使系统系统发生振荡,从而影响系统的动态性能;
    I加入使系统的余差明显减小;
   D的加入使系统的超调减小,但响应时间变化不大,所以实际阶跃响应图与理论上还是存在一定差别。


最后说明一点:
1.附图是我以前做毕业设计时在浙大中控DCS的组态软件上的曲线图,如果看不清楚的话,我可以上完整图。
2.一般在PLC或DCS上的PID的参数(P=?% I= ??分 D= ??秒)设定都是括号里所示,但是一般我们在用C编程的时候这个参数值怎么对应,单位如何转化,一直是我郁闷的问题,那个高手知道指点一下……


以上只是我的一点见解,如果有错误的地方请大家指正,PS:俺也是菜鸟……










相关帖子

沙发
奇兵| | 2010-9-14 02:12 | 只看该作者
路过帮顶一下!

使用特权

评论回复
板凳
yewuyi| | 2010-9-14 08:55 | 只看该作者
自动控制原理中队PID原理部分已经讲的十分清楚,但对如何实现讲的比较模糊,呵呵,这也许就是很多人知道原理但难以下手做出来的原因吧。。。

使用特权

评论回复
地板
wnagchaobq|  楼主 | 2010-9-14 11:27 | 只看该作者
自控胡寿松版的只讲了原理,具体的实现方法好像没有一本自控书讲过的,就是想在这里让大家讨论一下,把这个东西给彻底整明白……

使用特权

评论回复
5
yewuyi| | 2010-9-14 11:42 | 只看该作者
呵呵,你是想求助呢还是想讨论?

如果是求助就应该提出你的问题 。
如果是讨论就应该列出讨论的具体内容。

使用特权

评论回复
6
wnagchaobq|  楼主 | 2010-9-14 14:04 | 只看该作者
看来大侠都没认真看我的帖子,嘿嘿…… 最后的就是问题呀……

使用特权

评论回复
7
lbx_00| | 2010-9-19 14:27 | 只看该作者
不看70年代的书怎么能够明白, 现在的人写书只是为了赚钱。

PID实质上是构造一个人为的环节,也就是一个系统函数,他与其他子系统合成一个大系统,这人人为的系统函数的一个功能就是用自己零点抵消掉其他子系统的不稳定极点(右半平面的),另外,就是使这个系统有良好的快速响应和稳定性能。

使用特权

评论回复
8
老鱼探戈| | 2010-10-19 09:33 | 只看该作者
原理是明白了,
具体用程序怎么实现呢?

使用特权

评论回复
9
utterboy| | 2010-10-24 23:43 | 只看该作者
mark

使用特权

评论回复
10
流云逸风| | 2010-10-27 16:17 | 只看该作者
pid是学过,怎么用在实例上现在还上一头雾水..

使用特权

评论回复
11
木字四点水| | 2010-10-29 13:57 | 只看该作者
mark

使用特权

评论回复
12
fanxing789| | 2010-11-1 21:27 | 只看该作者
我做了一个温度控制表,研究了pid,但没明白,找了程序,有很长。我借鉴pid原理仿造了一个程序。用着还可以。大滞后比成品pid好,小滞后不如pid.

使用特权

评论回复
13
smtsmt10| | 2010-11-2 11:36 | 只看该作者
楼主辛苦咯。。 很好很直观

使用特权

评论回复
14
fm007| | 2010-11-5 10:55 | 只看该作者
写的不错!
你说的如何确定参数是关于如何整定的问题,最终的响应时间和D环节还是有关系的,只是参数问题!

使用特权

评论回复
15
wnagchaobq|  楼主 | 2010-11-8 11:23 | 只看该作者
好久之前发的帖子了,想不到还有人顶,最近又有新的感悟,到时候把程序贴出来给大家看一下……

使用特权

评论回复
16
xuan620734442| | 2010-11-10 13:42 | 只看该作者
能不能   把你的《自动化的故事》分享给我。 我的QQ620734442@QQ.COM  谢谢~~

使用特权

评论回复
17
itelectron| | 2010-11-13 11:02 | 只看该作者
要 实现  PID  起码 要 会  写求 微分 积分  程序

使用特权

评论回复
18
itelectron| | 2010-11-13 11:06 | 只看该作者
本帖最后由 itelectron 于 2010-11-13 11:08 编辑

偶基本 用现成的 库

P  我感觉和 模拟电路的  负  反馈 一样 如AGC   AFC 如果没有 偏差 就不能进行 调节   所以 一直存在 偏差 但不会 过冲  只能接近期望值 不能消除 偏差

使用特权

评论回复
19
itelectron| | 2010-11-13 11:22 | 只看该作者
对I的 具体理解 还是有点 模糊     只记得    0的积分才能是一个常数

D的理解是 加速  PI 的 一个过程

具体实现 还和  采样 周期 有密切关系  就是 读取  反馈回来的  量

使用特权

评论回复
20
itelectron| | 2010-11-13 11:44 | 只看该作者
加了 I  之后  会出现  过冲   I累积 把 误差 放大  出现过冲

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我很菜,但我又一颗成为高手的心……

0

主题

47

帖子

1

粉丝