白话说明白PID算法原理
(本文力求用简单的白话来说清楚PID算法的原理,其中有很多内容纯属个人理解,如有误,肯请批评指证)
PID控制器是工业控制中最经典、应用广泛的算法之一。它的名字来源于其三个核心组成部分:
P - 差分
I - 积分
D - 微分
一个PID控制的加热系统框图:
简单来说,PID控制器通过一个反馈回路,不断地计算目标值和实际值之间的误差,
然后根据这个误差、积分和微分三项的组合来计算出控制输出,从而让系统的实际值稳定地达到目标值。
PID算法详解:
1. P - 差分
首先: 误差 = 目标值 - 实际值。
差分的控制原理:
. 当误差比较大的时候,控制端加大激励输出,使误差快速减小。
. 当误差比较小的时候,控制端减小激励输出,以避免过冲。
由差分的工作原理可知差分值应该是一个与误差成正比的控制量,
它的公式应表达为:
差分量 P = 误差 * Kp ;
式中,Kp是比例系数,是调参时需要设置的一个常数。
只有差分控制时温升曲线如下图:
差分控制过程定量分析:
起点A, 实际温度很低,误差很大,由于差分量P = 误差 * Kp, 此时调整量很大,也就是输出激励很强,温度迅速上升。
中点B,温升已过半,误差值减少,导到输出激励也同比例减弱,温度上升速率变慢,温度上升线表现为斜率逐渐减小的曲线
稳态点C, 当实际温度进一步上升,误差值减小导致调整量P 减小, 当P减小到正好与耗散功率相等时,温度不再上升,
之后一直保持稳定静态,即C点之后是一条与目标温度平行的直线。
Kp比例系数取值大小对温控曲线的影响:
1. 当Kp取甚小值时,由P = 误差 * Kp 可知,曲线的整体调整能力不足,导致温度上升缓慢。
并且达到稳态时,实际温度与目标温度有较大的差额,图表上表现为C点之后的平行线与目标线之间的间距。
2. 当Kp取值恰当时,温度上升迅速,并且也能使稳态线接近目标值。
3. 当Kp取值非常大时,表现为超调,可理解为一点很小的误差可被放大为超大的调整量,
再加上温度测量值本身具有滞后性,结果导至温度上升时会冲过目标值(过冲),
然后反向调整,温度降落时又会冲至目标值以下(下冲),如此反复循环。
不同的KP值对温升曲线的影响如下图:
2. I - 积分
引言:朋友们应当已经看出来了,单纯的差分控制有一个明显的缺陷,
温度达到稳态后,仍与目标值有一定的差距。如何解决这个缺陷就成了当下的重中之重。
如何才能消除这种静态误差呢,继续在差分上下功夫肯定是不行的了,
因为当实际值越接近目标值时,误差就会越小,也就是差分的作用越小,当误差趋近于0时,差分已经不能起作用了。
所幸的是,积分项横空出世. 积分项的原理是不断的累积误差值作为调整量,
即便是误差值非常小,经过长时间的累积后,仍可具备相当的调整量。
概念:
I - 积分代表了从开始到现在所有误差的累积和(即误差关于时间的积分)。
累加和 = 误差0 + 误差1 +误差2 +........
积分量: I = 累加和 * Ki
式中,Ki是积分比例系数,是调参时需要设置的一个常数。
积分量的作用:消除稳态误差:只要还有误差,积分项就会不断累积,从而增大控制输出,直到误差被消除为止。
引入积分项以后,差分和积分共同作用,
总的激励 = P + I
式中 P为差分调整量, I为积分调整量
引入积分量后温升曲线的变化如下图:
温升曲线图过程详解。
1. 起始阶段,差分P最大,差分起主导作用控制温升快速上升。同时积分项也开始累积误差,并逐步参与控制。
2. 经过一段时间后(B点),温度上升导致差分作用被减少,但此时积分项已经累积到一定程度,
在差分和积分的共同作用下,温度仍旧以较快的速度上升。
3. 当第一次实际温度等于目标温度时(曲线与目标温度第一交叉),定点分析:此时差分量=0,
积分量为正(因为积分量体现的是之前的状态的累加和),在积分量的作用下,
温度还会继续上升一段时间。
(请注意一个细节,此点可以证明,在加入积分量以后,必然会引起过冲。
过冲可以想办法减小,但理论上不能被消除。后续会讲到如何减小这种过冲)
4. 当温度超过设定温度以后,此时积分器仍在不断的累积误差,
但是,误差值已变更为负值,正的积分值在不断的累积负的误差值从而使总的积分值不断减小,
(此举可理解为误差值正在修正由滞后积分值带来的过冲)
一段时间后,积分值已被修正,温度到了顶点,停止了上升的趋势。
5. 接下来在在负的差分调整作用下,温度缓慢下降直至再次与设定温度交叉,
与此同时,积分器是持续工作的,积分器又累积了一部分负的差分值,
这个积分值会使温度到达设定温度后会继续下降,造成小量下冲,
然后再次上冲如此循环数周期,最后定格在目标温度上。
Ki比例系数取值大小对温控曲线的影响:
1. 较小的积分系数使积分量调整不足,直接的理解是就是需要很长的时间积累才能获取相当的调整量。
对曲线的直观影响是积分调整周期变长了,很长时间系统才能稳定,这显然是我们不想得到的结果。
2. 较大的积分项会使过冲的幅度增大。在实际运用中,总是在这两点中找一个平衡点。
3. D - 微分
建设中。。。。。
4. Kp Ki Kd 调参综合。
建设中。。。。。
5. PID算法变种
建议中.....