PID控制入门原理(通俗易懂版)(pid控制的通俗理解)

2023-07-22 23:08:47 阅读:

 

PID控制器(比例-积分-微分控制器),由比例单元(Proportional)、积分单元(Integral)和微分单元(Derivative)组成。可以透过调整这三个单元的增益来调定其特性。PID控制器主要适用于基本上线性,且动态特性不随时间变化的系统。

1. 比例单元

以保持水缸水位为例子,最终的控制目的是要保持水位在1米的高度。假设初始时刻,水缸里的水位是0.2米,那么当前时刻的水位和目标水位之间是存在一个误差、error,为0.8。这个时候,假设旁边站着一个人,这个人通过往缸里加水的方式来控制水位。如果单纯的用比例控制算法,也就是说加入的水量u和误差error是成正比,即

u=Kperroru=K_perror

假设KpK_p 为0.5,那么t=1时(表示第1次加水),那么u=0.5*0.8=0.4,所以这一次加入的水量会使水位在0.2的基础上上升0.4,达到0.6。

接着,t=2时刻(第2次施加控制),当前水位是0.6,所以error是0.4。u=0.5*0.4=0.2,会使水位再次上升0.2,达到0.8。

如此这么循环下去,就是比例控制算法的运行方法。这种情况下,只用一个比例单元控制的方法,就可以达到目的了。只不过达到error=0的时间完全由KpK_p 决定。再来看一个更复杂一点的情况,假设这个水缸在加水的过程中,存在漏水的情况。

假设每次加水的过程,都会漏掉0.1米高度的水。仍然假设 KpK_p 取0.5,那么会存在着某种情况,假设经过几次加水,水缸中的水位到0.8时,水位将不会再变换!因为,水位为0.8,则误差error=0.2。 所以每次往水缸中加水的量为u=0.5*0.2=0.1。同时,每次加水,缸里又会流出去0.1米的水,加入的水和流出的水相抵消,水位将不再变化!

也就是说,我的目标是1米,但是最后系统达到0.8米的水位就不再变化了,且系统已经达到稳定。此时水位与目标水位的差就是稳态误差了。

若要让受控输出为非零的数值,就需要有一个稳态误差或偏移量。稳态误差和比例增益的成反比。若加入一偏置,或是加入积分控制,即提前多加一点水,就可以消除稳态误差。

2. 积分单元

我们控制时,为了消除上述稳态误差,考虑过去误差项。将误差值过去一段时间和(即历史误差和)乘以一个常数 KiK_i 。我们上述的例子中,如果它不停漏水,也就是说误差(error)=设定值(SP)- 回授值(PV),一直是2。那么历史的累计误差和,就是正的。这个时候,为了消除稳态误差,我们就乘以一个正的常数 KiK_i ,这样u(t),的值就增大了,也就是说考虑漏水,所以我们提前加入加更多的水。

u(t)=Kperror(t)+Ki∫0terror(t)dtu(t)=K_perror(t)+K_i\int_{0}^{t}error(t)dt

当水加的太多了,error就会变成正的,即加的水位比设定水位高,这一项的值就变成负的。最后,这一积分项的值就会正负正负的,来回振荡,直至历史误差累积和为0,这一项就会一直是0。

3. 微分单元

微分单元主要是在比例单元上做一个修正。比例单元控制的变化率是一个常速,就是说加水的量除以误差量,比例是固定的。为了更加稳定,在快要接近设定水位时,我们想让加水的速度慢一点。这时候,就需要微分单元了。

u(t)d=Kdde(t)/dtu(t)_d=K_dde(t)/dt

可以发现这个量取决于,误差随时间的导数,导数越小,这个值越小。

最后,把比例、积分、微分三项,加起来,就得到总的控制公式,为

u(t)=Kperror(t)+Ki∫0terror(t)dt+Kdd[error(t)]/dtu(t)=K_perror(t)+K_i\int_{0}^{t}error(t)dt+K_dd[error(t)]/dt

参考链接

wikizh.wikipedia.org/wiki/PID%E6%8E%A7%E5%88%B6%E5%99%A8
确定有穷自动机:PID控制算法原理(抛弃公式,从本质上真正理解PID控制)6633 赞同 · 257 评论文章

最后,码字不易,如果觉得对你有用,请点个赞吧!


以上就是关于《PID控制入门原理(通俗易懂版)(pid控制的通俗理解)》的全部内容,本文网址:https://www.7ca.cn/tg/40175.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明