pid是什么(pid参数是什么意思)

(一)首先,彻底了解PID是什么?

PID是什么?

比例积分微分PID是一种非常常用的控制算法。在工程实践中,应用最广泛的调节器控制规律是比例、积分和微分控制,简称PID控制,也称为PID调节。由于其结构简单、稳定性好、运行可靠、调节方便,已成为工业控制的主要技术之一。

算法是不能吃的。

PID已有107年的历史。

pid是什么(pid参数是什么意思)

这不是什么神圣的事情。大家肯定都看到了PID的实际应用。

比如四轴飞行器,平衡车,汽车的巡航控制,3D打印机上的温度控制器。....

和这个差不多:当某个物理量需要“保持稳定”(比如保持平衡、稳定温度、转速等)时,PID就会派上用场。).

那么问题来了:

比如我想控制一个“热快”,保持一壶水的温度在50℃

这么简单的任务为什么要用微积分理论呢?

pid是什么(pid参数是什么意思)

你一定在想:

没那么容易吧~小于50度就让它升温,大于50度就关电源不是吗?几行代码是用Arduino分钟写的。

没错~要求不高的情况下真的可以这样做~但是!换一种说法,你就知道问题出在哪里了:

如果我的控制对象是一辆车呢?

如果你想让车速保持在50km/h,你敢不敢。

想象一下,如果一辆车的巡航控制电脑在某个时间检测到45km/h的速度。它立刻命令引擎加速!

结果对方发动机突然100%全油门,车突然加速到60 km/h。

这时,电脑再次发出命令:刹车!

结果,吱...............哇............(乘客吐槽)

pid是什么(pid参数是什么意思)

所以在大多数场合,用“开关量”来控制一个物理量是比较简单粗暴的。有时候,稳定不了。因为单片机和传感器不是无限快,采集和控制需要时间。

而且,被控对象具有惯性。例如,如果你拔掉一个加热器,它的“余热”(即热惯性)可能会进一步提高水温一小会儿。

这个时候,你就需要一个“算法”:

它可以将需要控制的物理量带到目标附近它可以“预见”这个量的变化趋势它也可以消除因为散热、阻力等因素造成的静态误差....

所以,当时的数学家发明了这个经久不衰的算法——这就是PID。

你应该已经知道P,I,D是三个不同的调节函数,可以单独使用(P,I,D),成对使用(PI,PD),也可以组合使用(PID)。

这三个功能有什么区别?别担心,先生。慢慢听我说。

pid是什么(pid参数是什么意思)

我们只说PID控制器最基本的三个参数:KP,KI,KD。

kP

意思是p比。它的作用最明显,原理最简单。先说这个:

所需的量,比如水温,有它当前的“当前值”和我们预期的“目标值”。

当两者差距不大时,就让加热器“轻轻地”加热一下。要是因为某些原因,温度降低了很多,就让加热器“稍稍用力”加热一下。要是当前温度比目标温度低得多,就让加热器“开足马力”加热,尽快让水温到达目标附近。

这就是p的作用,相比开关控制方式,是不是“温柔”了很多?

pid是什么(pid参数是什么意思)

实际写程序时,让偏差(目标减去电流)和调节装置的“调节力度”建立线性函数关系,就可以实现最基本的“比例”控制了~

kP越大,调控越激进,kP越小,调控越保守。

如果你在做平衡车,用P的功能,你会发现平衡车在平衡角附近来回“狂摇”,很难稳定。

如果已经到了这个地步——恭喜你!离成功只有一小步~

种类(性质)(kind的简写)

d的作用比较好理解,先说d,最后说I。

刚才我们有P的功能。不难发现,只有P无法让平衡站起来,水温控制的晃晃悠悠,好像整个系统都不是特别稳定,一直在“摇晃”。

pid是什么(pid参数是什么意思)

在你的头脑中想象一个弹簧:现在它处于平衡位置。拉它,然后放开。然后会抖。因为阻力很小,所以可能会振荡很长时间才再次停在平衡位置。

想象一下:如果上图所示的系统浸在水中,也把它拉一下:这样的话,再次停在平衡位置所需的时间会少得多。

我们需要一个控制函数,使被控物理量的“变化速度”趋于零,即类似于“阻尼”的函数。

因为,越靠近目标,P的控制效果越小。越接近目标,P的作用越平缓。有许多内部或外部因素使控制量在小范围内摆动。

D的作用是使物理量的速度趋于零。每当这个量有一个速度,D就会反方向发力,尽力阻止这个变化。

参数kD越大,速度反方向的制动力越强。

如果是平衡小车,再加上P和D两个控制功能,参数调得合适的话,应该能立起来~加油!

pid是什么(pid参数是什么意思)

等等,三个PID兄弟真的想再要一个。看起来PD可以保持物理量稳定,那为什么还需要I呢?

因为我们忽略了一个重要的情况:

基里巴斯

以热水为例。假设有人把我们的取暖设备拿到一个很冷的地方,开始烧水。需要烧到50℃。

在P的作用下,水温缓慢上升。升到45℃的时候,他发现了一个不好的事情:太冷了,水散的速度和P控加热的速度相当。

我能怎么做呢?

P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。

结果水温永远停留在45℃,永远达不到50℃。

作为一个人,根据常识,我们知道加热功率应该进一步增加。但是怎么算涨幅呢?

前辈科学家想出来的方法真是巧妙。

pid是什么(pid参数是什么意思)

设置一个积分。只要偏差存在,就会不断整合(积累)并体现在调整力度上。

这样,即使45℃和50℃相差不太大,只要没有达到目标温度,积分也会随着时间增加。系统会慢慢意识到,在达到目标温度之前,是时候加大功率了!

达到目标温度后,假设温度不波动,积分值不会再变化。此时,加热功率仍然等于散热功率。然而,温度稳定在50℃。

kI值越大,积分时间倍增系数越大,积分效果越明显。

因此,I的作用是减少静态下的误差,使被控物理量尽可能接近目标值。

我在使用的时候还有一个问题:你需要设置积分极限。以防止在加热开始时积分过大而难以控制。

(2)我们来看看PID怎么调?

(PID参数调整公式)

找到最佳参数设置,从小到大检查。

先积分比例,再加微分。

曲线震荡频繁,比例带盘需要放大。

曲线围绕大湾浮动,比例带盘转向小盘。

曲线缓慢偏离,积分时间减少。

曲线波动周期越长,积分时间越长。

曲线振荡频率快,先降微分。

差异较大时波动较慢。差分时间应该加长。

理想曲线有两波,前高后低四比一。

一看两次调整,多分析一下,调整质量不会低。

为了加快反应,增加P,减少I。

为了减缓反应,减少P,增加I。

如果比例过大,会造成系统震荡。

如果积分太大,系统会很慢。

来源:网络,侵删

往期优秀文章回顾:

【素材】漫画讲解DCS、PLC、FCS控制系统的区别。真的很好理解!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,作者:金俊一,如若转载,请注明出处:

发表回复

登录后才能评论