「PLC」PID控制、指令及应用
PID英文全称为Proportion Integration Differentiation,意为比例积分微分PID控制,是一种闭环控制。下面以图1所示的恒压供水系统来说明PID控制原理。
电动机驱动水泵将水抽入水池,水池中的水除了经出水口提供用水外,还经阀门送到压力传感器,传感器将水压大小转换成相应的电信号Xf,Xf反馈到比较器与给定信号Xi进行比较,得到偏差信号ΔX(ΔX=Xi-Xf)。
若ΔX>0,表明水压小于给定值,偏差信号经PID运算得到控制信号,控制变频器,使之输出频率上升,电动机转速加快,水泵抽水量增多,水压增大。
若ΔX<0,表明水压大于给定值,偏差信号经PID运算得到控制信号,控制变频器,使之输出频率下降,电动机转速变慢,水泵抽水量减少,水压下降。
若ΔX=0,表明水压等于给定值,偏差信号经PID运算得到控制信号,控制变频器,使之输出频率不变,电动机转速不变,水泵抽水量不变,水压不变。
由于控制回路的滞后性,会使水压值总与给定值有偏差。例如当用水量增多水压下降时,ΔX>0,控制电动机转速变快,提高水泵抽水量,从压力传感器检测到水压下降到控制电动机转速加快,提高抽水量,恢复水压需要一定时间。通过提高电动机转速恢复水压后,系统又要将电动机转速调回正常值,这也要一定时间,在这段回调时间内水泵抽水量会偏多,导致水压又增大,又需进行反调。这样的结果是水池水压会在给定值上下波动(振荡),即水压不稳定。
采用了PID运算可以有效减小控制环路滞后和过调问题(无法彻底消除)。PID运算包括P运算、I运算和D运算。P(比例)运算是将偏差信号ΔX按比例放大,提高控制的灵敏度;I(积分)运算是对偏差信号进行积分运算,消除P运算比例引起的误差和提高控制精度,但积分运算使控制具有滞后性;D(微分)运算是对偏差信号进行微分运算,使控制具有超前性和预测性。
PID指令说明
PID控制回路参数表
PID运算由P(比例)、I(积分)和D(微分)三项运算组成,PID运算公式如下:
Mn=[Kc×(SPn-PVn)]+[Kc×(Ts/TI)×(SPn-PVn)+Mx]+[Kc×(TD/Ts)×(SPn-PVn)]
在上式中,Mn为PID运算输出值,[Kc×(SPn-PVn)]为比例运算项,[Kc×(Ts/TI)×(SPn-PVn)+Mx]为积分运算项,[Kc×(TD/Ts)×(SPn-PVn)]为微分运算项。
要进行PID运算,需先在PID控制回路参数表中设置运算公式中的变量值。PID控制回路参数表见表1。在表中,过程变量(PVn)相当于图1中的反馈信号,设定值(SPn)相当于图1中的给定信号,输出值(Mn)为PID运算结果值,相当于图1中的控制信号,如果将过程变量(PVn)值存放在VD200双字单元,那么设定值(SPn)、输出值(Mn)则要分别存放在VD204、VD208单元。
PID运算项的选择
PID运算由P(比例)、I(积分)和D(微分)三项运算组成,可以根据需要选择其中的一项或两项运算。
1)如果不需要积分运算,应在参数表中将积分时间(TI)设为无限大,这样(Ts/TI)值接近0,虽然没有积分运算,但由于有上一次的积分值Mx,积分项的值也不为0。
2)如果不需要微分运算,应将微分时间(TD)设为0.0。
3)如果不需要比例运算,但需要积分或微分回路,可以把增益(Kc)设为0.0,系统会在计算积分项和微分项时,把增益(Kc)当作1.0看待。
PID输入量的转换与标准化
PID控制电路有两个输入量:设定值和过程变量。设定值通常是人为设定的参照值,如设置的水压值;过程变量值来自受控对象,如压力传感器检测到的水压值。由于现实中的设定值和过程变量值的大小、范围和工程单位可能不一样,在执行PID指令进行PID运算前,必须先把输入量转换成标准的浮点型数值。
PID输入量的转换与标准化过程如下:
1)将输入量从16位整数值转换成32位实数(浮点数)。该转换程序如图2所示。
2)将实数转换成0.0~1.0之间的标准化数值。转换表达式为:输入量的标准化值=输入量的实数值/跨度+偏移量。跨度值通常取32000(针对0~32000单极性数值)或64000(针对-32000~+32000双极性数值);偏移量取0.0(单极性数值)或0.5(双极性数值)。该转换程序如图3所示。
PID输出量的转换
在PID运算前,需要将实际输入量转换成0.0~1.0之间的标准值,然后进行PID运算,PID运算后得到的输出量也是0.0~1.0之间的标准值,这样的数值无法直接驱动PID的控制对象,因此需要将PID运算输出的0.0~1.0标准值按比例转换成16位整数,再送到模拟量输出单元,通过模拟量输出端子输出。
PID输出量的转换表达式为
PID输出量整数值=(PID运算输出量标准值-偏移量)×跨度
PID输出量的转换程序如图4所示。
下面以图1所示的恒压供水控制为例来说明PID指令的应用。
(1)确定PID控制回路参数表的内容
在编写PID控制程序前,首先要确定PID控制回路参数表的内容,参数表中的给定值SPn、增益值Kc、采样时间Ts、积分时间TI、微分时间TD需要在PID指令执行前输入,来自压力传感器的过程变量值需要在PID指令执行前转换成标准化数值并存入过程变量单元。参数表中的变量值要根据具体情况来确定,还要在实际控制时反复调试以达到最佳控制效果。本例中的PID控制回路参数表的值见表2,因为希望水箱水压维持在满水压的70%,故将给定值SPn设为0.7,不需要微分运算,将微分时间设为0。
(2)PID控制程序
恒压供水PID控制程序如图5所示。
在程序中,网络1用于设置PID控制回路的参数表,包括设置给定值SPn、增益值Kc、采样时间Ts、积分时间TI和微分时间TD;网络2用于将模拟量输入AIW0单元中的整数值转换成0.0~1.0之间的标准化数值,再作为过程变量值PVn存入参数表的VD100单元,AIW0单元中的整数值由压力传感器产生的模拟信号经PLC的A-D(模-数)转换模块转换而来;网络3用于启动系统从参数表取变量值进行PID运算,运算输出值Mn存入参数表的VD108单元;网络4用于将VD108中的标准化输出值(0.0~1.0)按比例转换成相应的整数值(0~32000),再存入模拟量输出AQW0单元, AQW0单元的整数经D-A(数-模)转换模块转换成模拟信号,去控制变频器工作频率,进而控制水泵电机的转速来调节水压。
来源:《学PLC技术超简单》
(-END-)