理论教育 重要指令解析:S7-200 PID调节优化

重要指令解析:S7-200 PID调节优化

时间:2023-07-01 理论教育 版权反馈
【摘要】:使用PID指令要注意如下几个要点:1.回路控制类型的选择在许多控制系统中,只需要一种或两种回路控制类型。PID指令在对这些量进行运算以前,必须把它们转换成标准的浮点型实数。

重要指令解析:S7-200 PID调节优化

使用PID指令要注意如下几个要点:

1.回路控制类型的选择

在许多控制系统中,只需要一种或两种回路控制类型。例如只需要比例回路或者比例积分回路。通过设置常量参数,可先选中想要的回路控制类型。

如果不想要积分回路,可以把积分时间设为无穷大。即使没有积分作用,积分项还是不为零,因为有初值MX

如果不想要微分回路,可以把微分时间置为零。

如果不想要比例回路,但需要积分或积分微分回路,可以把增益设为0.0,系统会在计算积分项和微分项时,把增益当作1.0看待。

2.采样时间间隔

为了让PID运算以预想的采样频率工作,PID指令必须用在定时发生的中断程序中,或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到PID运算中。

3.回路输入的转换和标准化

每个PID回路有两个输入量,给定值(SP)和过程变量(PV)。给定值通常是一个固定的值,比如是设定的汽车速度。过程变量是与PID回路输出有关,可以衡量输出对控制系统作用的大小。在汽车速度控制系统中,过程变量可以是测速仪的输入(衡量车轮转速高低)。

给定值和过程变量都可能是现实世界的值,它们的大小、范围和工程单位都可能不一样。PID指令在对这些量进行运算以前,必须把它们转换成标准的浮点实数

转换的第一步是把16位整数值转成浮点型实数值。下面的指令序列提供了实现这种转换的方法:

转换的下一步是把实数值进一步标准化为0.0~1.0之间的实数。下面的算式可以用来标准化给定值或过程变量。

Rnorm=(Rraw/Span)+Offset

式中 Rnorm——标准化的实数值;

Rraw——没有标准化的实数值或原值;

Offset——单极性为0.0,双极性为0.5;

Span——值域大小,可能最大值减去可能最小值,单极性为32000(典型值),双极性为64000(典型值)。

下面的指令把双极性实数标准化为0.0~1.0之间的实数。通常用在第一步转换之后:

4.回路输出值转换成刻度整数值

回路输出值一般是控制变量,比如在汽车速度控制中,可以是油阀开度的设置。同时,输出是0.0~1.0之间的标准化了的实数值,在回路输出驱动模拟输出之前,必须把回路输出转换成相应的16位整数。这一过程,是给定值或过程变量的标准化转换的反过程。该过程的第一步把回路输出转换成相应的实数值,公式如下:

Rscal=(Mn-Offset)∗Span

式中 Rscal——回路输出的刻度实数值;

Mn——回路输出的标准化实数值;

Offset——单极性为0.0,双极性为0.5;

Span——值域大小,可能最大值减去可能最小值,单极性为32000(典型值),双极性为64000(典型值)。

这一过程可以用下面的指令序列完成:

下一步是把回路输出的刻度转换成16位整数,可通过下面的指令序列来完成:

5.正作用或反作用回路

如果增益为正,那么该回路为正作用回路。如果增益为负,那么是反作用回路。对于增益为零的积分或微分控制来说,如果指定积分时间、微分时间为正,就是正作用回路;指定为负值,则是反作用回路。(www.daowen.com)

6.变量范围控制

过程变量和给定值是PID运算的输入值,因此在回路表中,这些值只能被回路指令读而不能改写。

输出变量是由PID运算产生的,所以在每一次PID运算完成之后,需更新回路表中的输出值,输出值被限定在0.0~1.0之间。当PID指令从手动方式转变到自动方式时,回路表中的输出值可以用来初始化输出值(有关PID指令的方式详见下面的“控制方式”一节)。

如果使用积分控制,积分项前值要根据PID运算结果更新。这个更新了的值用作下一次PID运算的输入,当输出值超过范围(大于1.0或小于0.0),那么积分项前值必须根据下列公式进行调整:

MX=1.0-(MPn+MDn)当计算输出Mn>1.0

MX=-(MPn+MDn)当计算输出Mn<0.0

式中 MX——经过调整了的积分和(积分项前值);

MPn——第n采样时刻的比例项值;

MDn——第n采样时刻的微分项值;

Mn——第n采样时刻的输出值。

这样调整积分前值,一旦输出回到范围后,可以提高系统的响应性能。而且积分项前值也要限制在0.0~1.0之间,然后在每次PID运算结束之后,把积分项前值写入回路表,以备在下次PID运算中使用。

用户可以在执行PID指令以前修改回路表中积分项前值。在实际运用中,这样做的目的是找到由于积分项前值引起的问题。手工调整积分项前值时,必须小心谨慎,还应保证写入的值在0.0~1.0之间。

回路表中的给定值与过程变量的差值(e)是用于PID运算中的差分运算,用户最好不要去修改此值。

7.自动、手动切换

S7-200的PID回路没有设置控制方式,只要PID块有效,就可以执行PID运算。在这种意义上说,PID运算存在一种“自动”运行方式。当PID运算不被执行时,称之为“手动”方式。

从手动方式无扰动好切换到自动方式,为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的Mn栏。

8.使用PID向导

STEP 7-Micro/WIN 32提供PID向导,为模拟量控制程序定义PID算法子程序。选择菜单命令工具→指令向导,并从指令向导窗口选择PID。即可一步步按提示操作。具体操作步骤是:

1)指定回路编号:只能在0~7间选择,且不能重复。

2)设定回路参数:指定表的首地址、回路参数及输入设定值地址。参数有采样时间、增益、积分时间、微分时间。

3)设定回路输入、输出:指定输入和输出地址、极性(单向还是双向)及高、低限。

单极(可编辑默认范围0~32000);

双极(可编辑默认范围-32000~32000)。

4)设定报警:指定回路警报选项,有过程值(PV)低警报警、过程值(PV)高警报及模拟输入模块出错报警,以及这些报警的输出位。同时,要指明该输入模块安放加在PLC上的位置。

5)为计算指定内存区:使用PID指令,除了要用V内存中的一个36个字节的参数表,还要求一个“暂存区”,用于存储临时计算结果。在此须指定该计算区开始的V内存字节地址。还可以选择增加PID的手动控制。如选用也可手动控制,则还要指定使用的控制输入点。

6)指定初始化子程序和中断例行程序名称。

以上选项全部做完,回答完成,即开始生成代码。当生成代码完成,将在子程序中增加所命名的初始化子程序项及中断子程序项。要使用它,在主程序中调用此初始化子程序就可以了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈