Premium PID 功能模块调试实例浅析
Schneider Electric / TSC / HEC 陈伊明
在实际的 Premium 用户应用 PID 作过程调节时经常会遇到积分系数设置完成
后,PID 调节中的积分作用却没有输出,出现这种情况是因为用户对系统的配置
不当导致的,本文就以
PID
INT
功能模块为例具体说明。
对于
PID
INT
功能模块,在没有积分动作
0TI
的情况下执行如下算法:
t
P
K
100
OUT
D
t
在具有积分动作
0TI
TS
t
10/
K
P
OUT
/
5000
t
SP
PV
的情况下执行如下算法:
T
i
t
D
t
100
OUT
OUT
OUT
在实际的测试中,我们设计了如下的 3 个实验环境:
1. CPU 的扫描方式设置为循环扫描,
PID
INT
的控制参数中只设置 PK 参数,
积分参数设置为 0,其具体的输出如下图所示:
只设置比例参数,不设
置 积 分 参 数 , 同 时在
PV 值保持为 100,SP
值保持为 150 时,输出
值固定在 5050。
在这种情形下,显然是按没有积分动作下的算法,具体计算如下:
t
SP
PV
150
100
50
OUT
K
t
P
D
t
/
100
5000
100
50
/0
100
5000
5050
与实际情况相符。
2. CPU 的扫描方式设置为循环扫描,
PID
INT
的控制参数中设置比例及积分
参数,其具体的输出如下图所示:
比例参数 PK 设置为 100。
积分参数 iT 设置为 20。
采样周期 sT 在该实验环境下
无法设置一个非零值,一旦
设置,系统将自动回零。
设置比例参数,并设置
积分参数,同样在 PV
值保持为 100,SP 值保
持为 150 时,输出值固
定在 50。
在该情形下,我们设置了积分系数,按照我们的预想,PID 的输出应该按具
有积分动作的算法计算,在具有积分动作
0TI
的情况下执行的算法是:
K
P
t
TS
10/
T
i
t
D
t
OUT
100
OUT
OUT
OUT
从上述的公式我们可以看出,在 PV 值以及 SP 值保持不变时,即偏差 t 保
持不变时,由于
OUT ,将导致输出值持续增大,即积分作用在起作用。但从
0
上面的实际输出结果来看,输出值被固定在了 50 上,这显然是积分作用没有起
作用的现象,而根据上述的算法公式,能导致积分作用为零的唯一可能就是 sT 为
零,但此时如果我们对 sT 作设置时却发现根本就无法设置,一旦设置一个非零值
即会出现系统自动回零。为什么我们设置了积分系数,但 sT 却无法设置,同时实
际的积分作用也没有起作用呢?我们再作如下情形的测试:
3. 将 CPU 的扫描方式由默认的循环扫描设置修改为周期扫描,
PID
INT
的控
制参数中设置比例及积分参数,其具体的输出如下图所示:
在该实验环境下,我们仅仅只作了一个设置上的修改,即将 CPU 的扫描方
式设置由原来系统默认的循环扫描改为周期扫描,其它参数设置均与实验环境 2
相同,此时,PID 的实际输出情况如下图示:
在该实验环境下, sT 在
用 户 没 有 作 任 何 设置
的 情 况 下 系 统 自 动设
置 为 默 认 的 周 期 扫描
时间 20ms,而且只能
设 置 为 周 期 扫 描 的整
数倍。
CPU 扫描方式设置为
周期扫描,PID 控制参
数 设 置 比 例 参 数 和积
分参数,同样在 PV 值
保持为 100,SP 值保持
为 150 时,输出值显示
一个不断增加的数值。
从 PID 的实际输出结果,我们可以很明显地发现输出值显示一个不断增加的
数值。即在该实验环境下,积分作用才真的起了作用。
通过上述的实验,我们可以得出结论:在 Premium PID 功能模块的实际应用
过程中,如果用户想引入积分作用,单纯的设置 PID 功能模块中的积分系数是
不能正常引入积分调节的,还需要同时将 CPU 的扫描方式设置由原来系统默认
的循环扫描改为周期扫描。