理论教育 实现PID控制程序的优化方案

实现PID控制程序的优化方案

时间:2023-07-01 理论教育 版权反馈
【摘要】:图3-44 PID控制梯形图程序对图3-44a,如设定值比实际值大才作此相减。不必考虑图3-39程序所做的各种计算。用户所要作的工作只是进行有关PID控制参数的设定。

实现PID控制程序的优化方案

978-7-111-39745-8-Chapter04-63.jpg

图3-43 PID控制的算法框图

1.离散系统PID控制算法

图3-43表示了离散系统PID控制的算法框图。从图知,它的控制值Pn)是IKEnD三部分的和。这里未计及偏差为零时的控制值M,但这可通过执行积分运算实现。图中M2为干扰量,R0为设定值,C为实际值,T为采样周期(PID运算间隔时间)。

2.离散系统PID控制梯形图程序

图3-44为与图3-43框图算法对应的一种梯形图。它用的是符号地址,较便于理解。

图上标有18个注解,分别说明如下:

⓪对图3-44b,考虑到模拟量输入格式,把AW8(假设为模拟量输入字)的内容右移3位,并存于“实际值”中。对图3-44c读取模拟量输入值,并存于“实际值”中。

①图3-44a用定时器TIM001、图3-44b用定时器T101、图3-44c用定时器TI、实现每1s(此值可设)执行一次PID运算。这里1s即为采样周期T

②求设定值与实际值之差。

③对图3-44a,如设定值比实际值小,则先求偏差的绝对值(因借位位也参与运算,故加了1)。然后,用它去减积分值0。

④对图3-44a,如积分值0小于0,则其取值为0(最小值控制)。

⑤对图3-44a,如设定值比实际值大,则把偏差En加积分值0。

⑥对图3-44a,如加后积分值0超过9999,则其取值为9999(最大值控制)。对图3-44b,如加后积分值加后进位(SM1.1 ON),则其取值为32727(最大值控制)。对图3-44c,如加后积分值加后进位(M8022 ON),则其取值为32727(最大值控制)。

⑦积分值0除积分常数。

⑧求偏差的变化,978-7-111-39745-8-Chapter04-64.jpg保存原偏差值。

⑨对图3-44a,如偏差为负变化,则求其补码

⑩偏差的变化乘微分常数。

(11)偏差值En与比例系数K相承,其积存于“KEn”。

(12)分值与“KEn”偏差相加,其和存于“控制值”。而对图3-44a,如设定值比实际值大才做此相加。978-7-111-39745-8-Chapter04-65.jpg图3-44a,如加后有进位,即大于9999,则“控制值”取值为9999(最大值控制)。对图3-44b,如加后积分值加后进位(SM1.1 ON),则其取值为32727(最大值控制)。对图3-44c,如加后积分值加后进位(M8022 ON),则其取值为32727(最大值控制)。(www.daowen.com)

978-7-111-39745-8-Chapter04-66.jpg

图3-44 PID控制梯形图程序

(13)对图3-44a,如设定值比实际值大才作此相减。其后如需要也可作最小值控制。

(14)“微分值”与“控制值”相加,并存于“控制值”。而对图3-44a,如偏差正变化才作此相加。

(15)对图3-44a,如加后有进位,即大于9999,则“控制值”取值为9999(最大值控制)。对图3-44b,如加后积分值加后进位(SM1.1 ON),则其取值为32727(最大值控制)。对图3-44c,如加后积分值加后进位(M8022 ON),则其取值为32727(最大值控制)。

(16)对图3-44a,如偏差为负变化,则“控制值”与“微分值”相减,并存于“控制值”。

(17)如“控制值”小于0,则其取值为0(最小值控制)。

(18)把“控制值”转换为二进制数,并送通道13,即模拟量输出通道。对图3-44b,考虑到模拟量输出格式,把“控制值”又左移3位传QW10,即模拟量输出通道。对图3-44c,把“控制值”传模拟量输出模块的指定通道。到此才产生实际模拟量输出。

提示:用一个字的BCD码表达一个数,其值可从0~9999,无法表达负数。当相减出现负值时,无法处理。为此,要做相应判断,好在欧姆龙PLC提供了用进位位(P-CY)可作判断。但还是相当麻烦。此外,BCD表达的数值范围也小。故最好用双字表达,运算指令也用双字长。特别存储积分结果值的数据格式,尽量用双字长。这样,可提高控制精度,而且也便于PID参数整定。

提示:用一个字带符号位的十六进制表达一个数,其值可从-32768~+32767,正、负数均可表达,也都可处理。图3-38b、c用的是带符号位的十六进制数,所以,程序简单多了。欧姆龙新型或稍高档的PLC也可用此码表达与处理。相反,西门子三菱PLC则无法用BCD码对数值进行计算,它们用的都只能用十六进制。

提示:为了确保结果正确,应判断计算结果是否越界,并做相应处理。

提示:一般讲,当今PLC多有PID指令,直接使用它即可实现模拟量的PID控制。不必考虑图3-39程序所做的各种计算。用户所要作的工作只是进行有关PID控制参数的设定。有的PLC,这些参数还可通过执行自整定(有的称调谐)命令自动获得,用起来就更方便了。

3.离散系统PID控制ST程序

下面给出和利时LM机PID控制基本离散算法功能块的ST语言功能块程序。此功能块可以同时提供位置式输出和增量式输出。功能块的变量声明如下:

978-7-111-39745-8-Chapter04-67.jpg

978-7-111-39745-8-Chapter04-68.jpg

功能块程序代码如下:

978-7-111-39745-8-Chapter04-69.jpg

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

我要反馈