一、定义
网络上流传的模糊规则表都莫名其妙看不懂,还得自己写一个。
定义:
误差 = 设定值 - 实测值,即e(t) = sv(t) - pv(t)
误差变化率 = 本次误差 - 上次误差,即ec(t) = e(t) - e(t - 1)(若sv保持不变,亦可写作ec(t) = pv(t-1) - pv(t))
以温度控制为例:
-
t=0时,sv = 30,pv = 20。t=1时,sv = 30,pv=22。那么e(0) = 10,e(1) = 8,ec(1) = -2。
-
t=0时,sv = 10,pv = 20。t=1时,sv = 10,pv=16。那么e(0) = -10,e(1) = -6,ec(1) = 4。
-
t=0时,sv = 30,pv = 35。t=1时,sv = 30,pv=32。那么e(0) = -5,e(1) = -2,ec(1) = 3。
ec(t)为正表示温度在下降,ec(t)为负表示温度在上升
二、制表
还是以温度控制为例,PID输出越大表示加热功率越大
比例系数的变化ΔKp有如下表格:
ΔKp | pv上升 ⬅ ec ➡ pv下降 | |||||||
---|---|---|---|---|---|---|---|---|
NB | NM | NS | O | PS | PM | PB | ||
sv小于pv ⬆ e ⬇ sv大于pv | NB | PB | PB | PB | PM | PS | O | O |
NM | PB | PB | PM | PS | O | O | NS | |
NS | PB | PM | PS | O | O | NS | NM | |
O | NB | NM | NS | O | PS | PM | PB | |
PS | NM | NS | O | O | PS | PM | PB | |
PM | NS | O | O | PS | PM | PB | PB | |
PB | O | O | PS | PM | PB | PB | PB |
- 当e=NB,ec=NB时,说明sv远小于pv需要降温,pv却快速上升,此时应该加大Kp,所以ΔKp=PB
- 当e=NM,ec=PB时,说明sv远小于pv需要降温,pv在快速下降,此时保持Kp不变,所以ΔKp=O
- 当e=PB,ec=NB时,说明sv远大于pv需要升温,pv在快速上升,此时保持Kp不变,所以ΔKp=O
- 当e=PB,ec=PB时,说明sv远大于pv需要升温,pv却快速下降,此时应该加大Kp,所以ΔKp=PB
- 当e=O,ec=NB时,说明sv等于pv,pv却快速上升,此时应该减小Kp,所以ΔKp=NB
- 当e=O,ec=PB时,说明sv等于pv,pv却快速下降,此时应该加大Kp,所以ΔKp=PB