分享

干货!9成工控人都需要的,白话PID控制的真正原理

 工控自动化交流 2018-12-02

很多的工控人,特别是一些新手入门的,有的甚至是一些入行很多年的朋友都没有搞清楚,到底什么是PID,PID的原理又是什么?这一节由我来为大家用通俗易懂的白话,讲解一下PID,文中若有什么不到之处,希望大家谅解。

一辆自动驾驶的汽车在马路上(不考虑路况),从0开始加速,然后维持在80km/h的速度上匀速行驶。我们先用常理来分解一下。

干货!9成工控人都需要的,白话PID控制的真正原理

想要维持在80km/h,很多人会说,那还不简单,看到大于80的时候把油门全部松掉,小于80的时候把油门全速加上去。这样能不能达到效果呢?可以想象,这时候车速是这样的,汽车全力加速,减速会让汽车很不稳,这时候波动非常大,速度波动范围大概是60到100之间波动。这样让人在汽车上面坐很没有体验感。

这时有人会想了,那能不能这样,我在从0升速到80,开始时候全力加速,越靠近80,油门越小,到了80再松掉油门。这样可以吗?这当然可以的,很聪明。那这是什么线性关系呢? 我们用sv表示设定速度80,pv是当前实际速度。 那PV-SV是不是当前速度的误差值。执行我们控制的是什么?油门的大小,我们把油门定义为输出值out,是0-100之间的数值表示。那应该怎么计算,速度等于0时候油门是100,速度80时候油门是0。是不是这样有一个系数要引入进去。P*(PV-SV)=out,我们计算一下p是多少,100/(80-0)=1.25,那这里p是叫什么呢?是不是叫比例。很高兴,这里大家应该明白什么叫比例了?

干货!9成工控人都需要的,白话PID控制的真正原理

那这样能不能满足系统要求,匀速在80速度不变呢,可以想象一下,这时候车的速度应该是稳定在75到85之间运行。是不是比刚才稳定了一些?但是还不是很完美,我们做工控自动化的,要讲究完美,要尽量做到最好。

这时有人会想了,速度等于80的时候最好能保留一点油门,不至于让油门全部掉下去,这样才能稳定在80左右。那保留多少油门量呢?用我们之前的算法好像不能满足要求,因为sv-pv速度一样的时候,误差是0,乘上比例是不可能让这时候油门有输出的。我们能不能让速度从0加速到80的过程中,每秒时间累积加一个值,加速共用60秒,让60秒内累积一个值,让速度到80时候油门有输出,这时候的油门就是out=p(sv-pv)+a,这里的a就是我们从0加速到80过程时累积加的一个值。那这里的60秒叫什么?自动化原理中把它叫做积分时间。那这样能不能满足要求呢?可以看到,这时候系统已经很稳定了,汽车速度匀速在80左右,79-81之间运行。是不是很完美?

恭喜大家,到这里,其实大家已经把积分也搞明白了,也就是pid中的i.

这时候天空突然刮起了阵风,一阵一阵的,一会大一点,一会小一点,一会又停下来。汽车这时候速度虽然不是波动很大,但是已经没有之前在79-81之间稳定了,这时候速度会在76到85之间运行,这时候不稳定主要是因为风来的时候,汽车有阻力,汽车速度减小了下来,油门就会自动加上去,系统又能满足要求运行了,这时候风突然停了,车速就会因为风阻力的突然消失,一下子超调很多,加速到85以上。那我们能不能在有风的那段时间呢,不至于加速很多,又能满足要求呢?当然可以的,我们可以在有风来的那段时间内,因为车速减下来,而加上去的油门值,减去一部分。让风突然停下来时候,不至于超调很多。这时油门值OUT= P(SV-PV)+a+b,(b这时候是负数)。b就是我们自动化pid里面的D微分。我们想象一下,这时候的车速是什么样的,阻力的风来了b是负数,有顺风来了,b是正数。车速不会因为一阵阵的风而上下偏差很大。

恭喜大家到这里大家总算搞明白了pid的基本原理,最后我们来总结一下,OUT=P(SV-PV)+a+b,out是输出值,sv是设定值, PV是过程实际值,P(SV-PV)就是比例项,a就是积分项,b就是微分项。

Out=比例项+积分项+微分项。

干货!9成工控人都需要的,白话PID控制的真正原理

谢谢大家。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多