PID控制器的概念分解

介绍

关于PID的工作原理有很多解释,其中很多都是很棒的。 主要问题在于如何解释。 当我对数学知识不多时,我尝试去理解PID方程的想法,并且非常努力地寻找一个教程,该教程没有用我理解的符号来解释它。 符号很吓人,好吗?

我敢肯定,你们中的许多人都可以很好地阅读数学符号(现在在一定程度上,我现在也是),但由于有人不习惯,我发现符号和符号非常令人生畏。

我想在这里解释PID的方式是尽可能少地使用数学,而是优先考虑概念而不是方程式。 它们是适用于大量应用程序的东西,我认为对于任何人(甚至是程序员)学习都非常有用。

什么是PID控制器?

PID控制器本质上是一种使系统稳定的方法,无论是四轴飞行器,核反应堆中的燃料棒还是生物机械狗用安全带的手臂角度

PID会吸收一定数量的误差(稍后会详细介绍),以及减少该误差的方法,并计算出逐步解决它的速率。 例如,它是一种从陀螺仪获取角度数据并告诉每个转子旋转多快的方法。

P,I和D代表比例,微分和积分增益。 以后还会更多!

问题

您所在的汽车可以向前或向后逼近白线。 您唯一的指令是编写一个计算机程序,使其在该白线上直接停止,同时也尽可能快地到达该白线。 您的程序所能做的就是向汽车施加负加速度或正加速度。

想到的最简单的想法是,如果您落后于潮流,那就加油吧! 如果您在生产线前面,请向后踩油门!

很容易看出这是一个有缺陷的解决方案。 到达终点线时,您将变得太快,无法越过终点线射击。 因此,也许您的下一个解决方案是按比例将油门推到距管路的距离。 您离得越近,推动气体的作用就越小。

现在,与此有关的问题是它会导致与先前方法相同类型的现象。 您振荡,越过线,然后反转并越过线。 这将始终达到均匀的振荡(类似于正弦波)。

虽然这不是我们的解决方案,但这是其中的一部分。 这是我们P ID的比例部分。

(部分)解决方案

如果您在接近线路时有减速的方法怎么办? 一种即使在您达到目标之前也可以先行放慢速度的方法。

这是在PI dd进来。你们当中谁在高中或大学的微积分了(如果你没有不用担心!)可能知道的衍生物是什么。 无需太深入探讨,它只是一个描述事物变化率的方程。 例如,您可以将其视为汽车的速度。 速度是汽车位置的变化率。

如果我们监控汽车的行驶速度,那么这将为我们提供第二个工具来停止在那条线上。 当我们接近线时,我们希望走得更慢,因此可以将PI D中的“ 衍生工具”视为一种阻力类型。 我们移动的越快,它的价值就越大。 当我们随着比例增益水平的降低而越来越近时,这更容易生效。 当误差接近零时,微分增益会降低整体功能。

这可能有点令人困惑,所以让我们加上一些数字吧!

算一下!

可以说,我们从尝试到达的线开始50米。 由于我们相距50米,这意味着我们的误差等于50。

我知道。 很难相信我不是以艺术为生。

PID控制器的每个成员都有一个所谓的增益 。 这只是乘以它的数字,它改变了该成员对方程整体的影响程度。 例如,如果我们的收益全为1,则每个成员(P,I和D)将同等地影响方程。 让我们假设,为简单起见,目前我们的收益都是全部。

让我们计算一下P和D(稍后再担心I)。 我们的比例增益是50,因为它直接基于误差。 现在,我们还没有动,所以我们的微分增益为零。 它直接基于我们的错误更改。 让我们这样写出来(K代表Gain不要问为什么):

猛击那个加速器!

现在我们要移动了! 也许有点太快了……无论哪种方式,我们现在都试图将汽车加速到50m / s。 也许这太苛刻了? 这就是增益的来源。PID增益的平衡通常是手动完成的,因为它只需要执行一次(除非对系统进行更改)。

对于那些敏锐的眼睛,您会看到导数的增益为负。 这是因为我们希望它抵抗比例增益。 我们离点越近,我们想走的越慢。 因此,我们希望速度对整个加速度值产生负面影响。

您会看到,随着我们加快并减少误差,比例增益将降低,而微分增益将升高(因为我们正在加速)。 这甚至意味着,随着我们走近线,如果我们走得太快(如微分增益太高),它实际上会使我们陷入负加速度,从而告诉我们的系统减速。

可以说,下一次我们对数据进行轮询时,我们现在将以5m / s的速度行驶,而我们的汽车距离我们的对象40米。 让我们看看我们现在正在加速的努力:

您会看到,我们的微分收益使我们越接近目标就越快。 它甚至可能使方程式变为负数,导致我们在到达目的地之前就放慢了速度。 这就像在红灯接近线路时按下分界线。

那我呢?

现在,我将Integral元素保存到最后,因为它通常是最不重要且最难看到其价值的。 许多系统甚至都不包含它!

I代表积分增益。 积分称为一段时间内的总和。 本质上,如果您有一个映射对象速度的方程,则该方程的积分将映射对象的位置。 这是因为它记录了每个时刻的速度总和,从而得出了对象移动的距离。

您可能会问,这对PID有何帮助? 好了,既然我们已经有了比例和微分增益,您可能会问,如果我们略微超调,会发生什么? 问题在于,现在纠正该细微错误非常缓慢(并且可能会有一些错误)。 当比例增益试图产生较小的速度时,导数现在正在抵抗该速度。

如果我们将总误差相加,那么这会将我们拖回到零误差的Goldilocks区域,从而解决了非常接近零误差的点处的缓慢加速问题。

编辑:正如Reddit上的一些伟人指出的那样,我没有提到积分项的最重要用法。 积分项用于消除系统误差。

例如,假设转弯处有少量阻力(在现实世界中总是存在),或者您的四轴飞行器增加了一些重量。

由于其累积水平,积分项能够将其拖回正轨。

计算增益

没有收益,系统将无法正常反应。 它可能会振荡,或者微分和比例元素可能会相互抵消。 平衡它们是使系统达到平衡的原因。

不幸的是,没有直接计算您想要使用的增益的方法。 有很多方法可以根据系统的反应来动态地找到良好的价值,但是有很多关于如何做到这一点的论文,我发现这是一个非常困难的概念,很难用数学来解释。

幸运的是,有许多好的方法可以手动执行,除非对系统进行了任何更改,否则您无需重复执行一次。

我发现最有用的方法是调整比例增益,直到出现稳定的振荡并找到理想的速度以达到零误差为止。

从那里您要调整微分增益,直到振荡停止。 如果系统现在太慢,请重复该循环。

附录

自从我学习PID以来,我一直对它们着迷。 从他们几乎拥有智力的意义上讲,它们非常酷。 只要您能找到错误的根源和减少错误的方法,PID就可以解决问题。

是否想通过改变平台的倾斜度来防止球从平台上滑落? 使用PID! 是否要计算使四轴飞行器倾斜多少以阻止其横向移动? PID是完美的。

这是非常有趣且适用范围很广的概念。

如果您走到了这一步,非常感谢您的阅读。 我一直很乐意与人分享这个概念,纯粹是因为我觉得这很容易解释。 如果您发现令人困惑的地方,请给我发消息,评论或发推特给我@bittneradave ,我将尽力回答您的问题/对此帖子进行修订!

From: https://hackernoon.com/a-conceptual-breakdown-of-pid-controllers-9fa072a140a5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值