在介绍西门子S7-300中PID(FB41)程序块之前,我们先来了解什么是PID控制:
PID控制是一种广泛使用的控制算法,用于调节系统的输出以匹配所需的输入。它基于系统的当前误差(比例)、过去的误差累积(积分)以及误差的变化率(微分)来计算控制输出。
FB41块有许多输入参数,你需要根据应用需求进行配置。这些参数包括设定值(SP)、过程变量(PV)、比例系数(P)、积分时间(I)、微分时间(D)等。
设定值(SP):这是你希望系统达到的目标值。
过程变量(PV):这是系统的当前实际值。你需要使用传感器或其他测量设备来获取这个值。
比例系数(P):这个参数决定了控制输出对误差的敏感程度。增加P值会使系统更快地响应误差,但也可能导致系统振荡。
积分时间(I):积分项用于消除系统的稳态误差。I值越大,系统对过去误差的累积越敏感,但也可能导致系统响应变慢。
微分时间(D):微分项用于预测系统未来的行为。D值越大,系统对误差变化率的敏感程度越高,这有助于在误差变化之前进行预调节。
FB41块所有输入参数的说明:
COM_RST:布尔值,用于重新启动PID。当此标志位为真时,PID将执行重启动功能,并将内部参数复位至默认值。这通常在系统重新启动时执行一个扫描周期,或在PID进入饱和状态需要退出时使用。
MAN_ON:布尔值,表示手动模式开启。当此标志位为真时,PID功能块将直接将MAN的值输出到LMN。这是PID的手动/自动切换位。
PEPER_ON:布尔值,用于启用过程变量外围值。由于PID可以直接使用过程变量PIW(不推荐)或使用PIW规格化后的值(常用),此标志位通常为假。
P_SEL:布尔值,用于选择比例控制是否有效。当此标志位为真时,P(比例)控制被选中。
I_SEL:布尔值,用于选择积分控制是否有效。当此标志位为真时,I(积分)控制被选中。
INT_HOLD:布尔值,用于积分保持功能,但通常不建议进行设置。
I_ITL_ON:布尔值,用于启用积分初值。当此标志位为真时,将使用I-ITLVAL变量作为积分初值。这通常在PID功能的积分值增长缓慢或系统响应不够时使用。
D_SEL:布尔值,用于选择微分控制是否有效。但在一般的控制系统中,微分控制并不常用。
CYCLE:时间值,表示PID的采样周期,通常设为200毫秒。
SP_INT:实数,表示PID的设定值。
PV_IN:实数,表示PID的反馈值,也称为过程变量。
PV_PER:无符号整数,表示未经规格化的反馈值,当PEPER_ON为真时有效(不推荐使用)。
MAN:实数,表示手动值,当MAN_ON为真时有效。
GAIN:实数,表示比例增益。
TI:时间值,表示积分时间。
TD:时间值,表示微分时间。
TM_LAG:时间值,与微分控制相关,但具体作用未知且未使用过。
DEADB_W:实数,表示死区宽度。当输出在平衡点附近微小幅度振荡时,可以考虑使用死区来降低灵敏度。
LMN_HLM:实数,表示PID的上限,通常为100%。
LMN_LLM:实数,表示PID的下限。通常为0%,但在需要双极性调节时,需设置为-100%(如正负10V输出时)。
PV_FAC:实数,表示过程变量的比例因子。
PV_OFF:实数,表示过程变量的偏置值(OFFSET)。
LMN_FAC:实数,表示PID输出值的比例因子。
LMN_OFF:实数,表示PID输出值的偏置值(OFFSET)。
I_ITLVAL:实数,表示PID的积分初值,当I_ITL_ON为真时有效。
DISV:实数,表示允许的扰动量,通常在前馈控制中使用,但一般不设置。
部分输出参数的说明:
LMN:实数,表示PID的输出值。
LMN_P:实数,表示PID输出中P(比例)的分量,可用于调试过程中观察效果。
LMN_I:实数,表示PID输出中I(积分)的分量,可用于调试过程中观察效果。
LMN_D:实数,表示PID输出中D(微分)的分量,可用于调试过程中观察效果。
规格化的概念:
PID参数中重要的变量,如设定值、反馈值和输出值,都是使用0.0到1.0之间的实数表示。然而,在实际应用中,这些变量通常来自模拟输入或用于控制模拟输出。因此,需要将模拟输出转换为0.0到1.0的数据,或将0.0到1.0的数据转换为模拟输出,这个过程被称为规格化。
规格化的方法:
对于输入和反馈,执行以下操作:变量 * 100 / 27648,然后将结果传送到PV_IN和SP_INT。对于输出变量,执行以下操作:LMN * 27648 / 100,然后将结果取整并传送给PQW。
PID的调整方法:通常不使用微分控制(D),除非在一些大功率加热控制等具有较大惯性的系统中。在大多数情况下,仅使用比例(P)和积分(I)即可满足需求。
一般先使积分时间(I)等于0,然后逐渐增加比例增益(P),直到系统出现等幅振荡。记下此时的振荡周期,然后将积分时间(I)设置为振荡周期的0.48倍,这样可以满足大多数的应用需求。