一、定义
在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称[PID调节器],是应用最为广泛的一种自动控制器。
PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写
二、各部分详解
总述:
image.png
1.比例系数P
- 在y = k·x中的,k是比例系数p。
其中,x是当前值currentValue和目标值totalValue的差值,简称误差err,则err = currentValue - totalValue。y就是执行器对应的输出值U,所以执行器对应的输出值U = Kp * ( currentValue - totalValue ) - 如果只有比例调节的话,系统会震荡的比较厉害。
2.微分系数D
- 微分,实际上是对误差进行微分。加入误差1是err(1)。误差2是err(2)。则误差err的微分是 (err2 - err1)。乘上微分系数D,大家叫做KD,则当执行器第1次调节后有了第1次的误差,第2次调节后有了第2次的误差,则结合P系数。就有了PD结合,根据每次调节时,误差的值的经验推算,你就能选取出D的系数。
- 公式为 U(t) = Kp × err(t) + Kd × derr(t)/dt
3.积分系数I
- 积分,实际上是对误差的积分,也就是误差的无限和
所以总公式为 image.png
三、辅以例子理解
1.比例控制:
现在有一水缸,当前水位是0.2米,要通过往缸里加水的方式使其水位维持在1米的高度。那么当前水位和目标水位之间的差值是error,为0.8米。
如果单纯的用比例控制算法,就是指加入的水量u和误差error是成正比的。
假设kp取0.5,那么t=1时(表示第1次加水,也就是第一次对系统施加控制),那么u=0.5*0.8=0.4,加水0.4m,达到0.6m
接着,t=2时刻(第2次施加控制),加水0.2m,达到0.8m
如此这么循环下去,就是比例控制算法的运行方法。
可以看到,如果不存在 稳态误差,最终水位会达到我们需要的1米。
2.稳态误差
系统从一个稳态过渡到新的稳态,或系统受扰动作用又重新平衡后,系统出现的偏差。
投射到上述例子中就是水缸会漏水。
如果每次加水的时候会漏水0.1m,我们会发现是加不到1m的,所以引入积分控制算法
3.积分控制算法
还是用上面的例子,第一次的error是0.8,第二次是0.4,至此,误差的积分(离散情况下积分其实就是做累加),∫∫error=0.8+0.4=1.2. 这个时候的控制量,除了比例的那一部分,还有一部分就是一个系数ki乘以这个积分项。
由于这个积分项会将前面若干次的误差进行累计,所以可以很好的消除稳态误差(假设在仅有比例项的情况下,系统卡在稳态误差了,即上例中的0.8,由于加入了积分项的存在,会让输入增大,从而使得水缸的水位可以大于0.8,渐渐到达目标的1.0.)这就是积分项的作用。
4.微分控制算法
类似于阻尼作用,使控制更加稳定
放入上面的例子中就是当发现水缸里的水快要接近1的时候,加入微分项,可以防止给水缸里的水加到超过1米的高度,说白了就是减少控制过程中的震荡。
四、资料参考
PID算法终于弄明白原理了,原来就这么简单
一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)
链接:https://www.jianshu.com/p/37a5e48391b0
标签:0.8,误差,积分,控制算法,PID,微分,例子,基本概念 From: https://www.cnblogs.com/im18620660608/p/17445308.html