一文搞懂pid是什么意思,建议收藏!

(一)首先来完全弄懂PID到底是啥?

啥是PID?

PID,便是“占比(proportional)、积分兑换(integral)、微分(derivative)”,是一种很常见的控制优化算法。在工程实际中,运用更为广泛控制器控制规律性为占比、积分兑换、微分控制,通称PID控制,又被称为PID调整。它因其结构紧凑、稳定性好、工作中靠谱、调节便捷而成为工业生产控制的重要技术性之一。

算法是不可食用的。

PID已经有107年的历史了。

它并不是什么很神圣的物品,大家一定都见过PID的实践应用。

例如四轴飞行器,又比如平衡小车……也有汽车的巡航定速、3D打印刷机里的温度控制器….

便是类似这类:需要把某一个物理量“长期保持”的场合(例如保持均衡,平稳温度、转速比等),PID都会去上大用场。

问题来了:

例如,我觉得控制一个“电热棒”,让一锅水的温度维持在50℃

这么简单的每日任务,为啥要使用微积分学的理论呢。

你一定在想:

这并不是so easy嘛~ 低于50度就让它加温,超过50度就关闭电源,不就行了?两行编码用Arduino一下子表达出来。

没有错~在没有要求的情形下,确实可以这么干~ But!假如换一种说法,你就知道问题出在哪里了:

如果我的控制目标是一辆汽车呢?

如果期待汽车的时速维持在50km/h不动,你还敢那样干啥。

设想一下,倘若汽车的巡航定速计算机在某一时间测出时速是45km/h。它马上指令汽车发动机:加快!

结论,汽车发动机那里忽然来了个100%全油门踏板,嗡的一下,汽车急加速到60km/h。

这时候计算机又传出指令:刹车踏板!

结论,吱……………哇…………(旅客吐)

因此,在大多数场所中,用“开关量”来控制一个物理量,就显得比较简单直接了。有时,是很难长期保持的。由于单片机设计、感应器并不是无尽快啊,收集、控制花费时间。

并且,控制目标具有惯性。比如你将一个电加热器拔出,它“余热回收”(即热惯性)可能还会使水的温度再次上升一小会。

这时候,那就需要一种『优化算法』:

  • 它能将必须控制的物理量送到总体目标周边
  • 它能够“预料”这一量的趋势分析
  • 它也可以清除由于排热、摩擦阻力等多种因素所造成的静态数据偏差
  • ….

因此,当年的一位数学家们创造了这一历久不衰的计算方法——这便是PID。

你应该已经知道了,P,I,D是三种不同类型的缓冲作用,既能单独使用(P,I,D),也可以两个两个用(PI,PD),也可以三个一起用(PID)。

这三种功效有什么区别?客官别着急,听我慢慢道来

一文搞懂pid是什么意思,建议收藏!

我们首先就说PID控制器的三个最基本主要参数:kP,kI,kD。

kP

P便是占比的意味。它的功能最为明显,基本原理也非常简单。我们首先说这个:

必须控制的量,例如水的温度,有它现今『当前值』,也有我们期望的『目标』。

  • 当二者差距不大时,就要电加热器“缓缓的”加温一下。
  • 如果因为某些原因,温度减少了许多,就要电加热器“稍微用劲”加温一下。
  • 如果现阶段温度比总体目标温度低的多,就要电加热器“鼓足干劲”加温,尽早让水的温度抵达总体目标周边。

这便是P的功效,跟电源开关控制方式对比,是否“温润如玉”了很多。

具体写程序时,就要误差(总体目标减掉现阶段)与调整装置的“调整幅度”,建立一个一次函数的关联,就可以实现最基本“占比”控制了~

kP越多,缓冲作用越激进派,kP调重会让缓冲作用更传统。

如果你已经制作一个电动平衡车,拥有P的功效,你就会发现,电动平衡车在均衡视角周边往返“狂抖”,较难控住。

假如已经是这一步——祝贺你了!离成功只差一小步了~

kD

D的功效更强了解一些,因此先说说D,最后说I。

刚刚大家拥有P的功效。你不难看出,仅有P仿佛不要让均衡地铁站下去,水的温度也控制得摇摇晃晃,仿佛全部系统软件不是特别平稳,总是在“颤动”。

你心里构想一个扭簧:现在在平衡位置上。拉它一下,随后放手。这时候他会波动下去。由于摩擦阻力较小,它可能波动很长一段时间,才会重新停靠在平衡位置。

请想象一下:要是把上图所示的系统浸入在水中,一样拉它一下 :这样的情况下,再次停靠在平衡位置的时间就短的多。

我们应该一个控制功效,让被控制的物理量的“转变速率”趋向0,即类似“减振”的功效。

由于,当比较接近总体目标时,P的控制功效就很变小。越接近总体目标,P的功效越温婉。有许多内在的或是外部的要素,使控制量产生小范围的晃动。

D的作用就是让物理量速度趋向0,只需何时,这一量具有了速率,D就向相反的方向用劲,竭尽全力停下这一转变。

kD主要参数越多,向速率相反方向刹车的力度就越高。

假如是平衡小车,再加上P和D二种控制功效,假如主要参数调整适合,它应该可以站起来了~欢呼吧。

这些,PID三兄弟很想还有一位。看上去PD就可以让物理量长期保持,那还要I干什么?

只要我们忽略了一种极为重要的状况:

kI

还是以开水为例子。倘若有一个人把我们的加热系统带到了十分冷的地方,逐渐烧开水了。必须高烧50℃。

在P的影响下,水的温度渐渐地上升。直至上升到45℃时,他发现了一个不好的事情:气温太凉,水排热速度,和P控制的加热的速率相同了。

这可怎么办?

  • P兄这样想:我和目标已经非常近了,只需轻轻地加温就行了。
  • D兄这样想:加温和排热相同,温度并没有起伏,我好像无需调节哪些。

因此,水的温度永远地停留在45℃,始终不到50℃。

作为一个人,依据基本常识,我们都知道,应当进一步提升加热的输出功率。但是提升是多少该怎么计算呢?

老前辈专家想起的办法是确实恰当。

设置一个积分兑换量。只需误差存有,就不断地对误差开展积分兑换(累加),并反映在调整幅度上。

这样一来,即便45℃和50℃相距不太大,可是随着时间推移,只要没实现目标温度,这一积分兑换量就不断增长。系统软件就会慢慢意识到了:都还没抵达总体目标温度,该提升输出功率啦!

到总体目标温度后,假定温度并没有起伏,积分兑换值就不会再变化。这时候,加热功率依然相当于散热功率。可是,温度是稳稳的50℃。

kI的值越多,积分兑换时乘的指数也就越大,积分兑换实际效果越明显。

因此,I的作用就是,减少静态数据情况下的偏差,让可控物理量尽量贴近目标。

I在使用时还有一个难题:必须设置积分兑换限定。避免在刚开始加温时,还把积分兑换量积得太大,无法控制。

(二)再来看看PID到底怎么调?

(PID主要参数调节口决)

参数整定找最好,由小到大次序查

起先占比后积分兑换,最终然后把微分加

曲线图震荡很频繁,占比度盘要变大

曲线图飘浮绕大弯区,占比度盘往小扳

曲线图偏移回复慢,积分时间往降低

曲线图波动周期长,积分时间再延长

曲线图振荡频率快,直接把微分降下去

动差大来起伏慢。微分时长应延长

理想化曲线图2个波,前高后低四比一

一看二调多剖析,调整品质不容易低

若想反映增快,扩大P减少I

若想反映缓减,减少P扩大I

假如占比很大,也会引起系统软件波动

假如积分兑换很大,也会引起系统软件迟缓

给TA打赏
共{{data.count}}人
人已打赏
科技快讯

电子工程师是干啥的?需要具备哪些能力

2022-8-6 11:40:21

科技快讯

单片机c语言入门教程干货分享,0基础速来!

2022-8-6 11:45:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索