当前位置: 首页 > 会展 > > 内容页

这篇PID算法讲解通俗易懂

2023-08-24 08:29:24 来源: 面包芯语

扫描关注一起学嵌入式,一起学习,一起成长

直接从网上找了PID相关公式截图如下。

了解了很浅的原理后,结果公式看不懂,不懂含义,所以最终没有透彻。我这里先对公式进行剖析,公式理解明白了,结合网上的一些PID讲述的例子,就明白了。

先对PID这三个系数的含义进行简单扫盲。同时也防止自己遗忘。P是比例系数,I是积分系数、D是微分系数。


(资料图片仅供参考)

▎比例系数P

比例系数P是干什么用,其实如果现在你是初中生的话,你一下子就懂了,比例系数就是用在穿过(0,0)这个坐标点直线的放大倍数k,k越大,直线的斜率越大,所以是用在y = k * x中的,其中的k就是比例系数p,大家都简称为kp,所以就变成了y = Kp * x。

x就是当前值currentValue和目标值totalValue的差值,简称误差err,则err = currentValue - totalValue。y就是执行器对应的输出值U,所以执行器对应的输出值U = Kp * ( currentValue - totalValue ) 。

所以,如果说是使用比例进行调节。

U1 = Kp * ( curentValue1 - totalValue1 )

U2 = Kp * ( currentValue2 - totalValue2 )

▎微分系数D

U(t) = Kp * err(t) + Kd * derr(t)/dt

▎积分系数I

积分,实际上是对误差的积分,也就是误差的无限和。如何理解积分系数I,这里引用网上的例子。

以热水为例。假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。

在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。

这可怎么办?

P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。

D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。

于是,水温永远地停留在45℃,永远到不了50℃。

根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢?前辈科学家们想到的方法是真的巧妙。

设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦!

到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。

kI的值越大,积分时乘的系数就越大,积分效果越明显。

所以,I 的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。

觉得文章不错,点击“分享”、“赞”、“在看” 呗!

关键词:

Copyright   2015-2022 起点动漫网版权所有   备案号:皖ICP备2022009963号-12   联系邮箱: 39 60 29 14 2@qq.com