加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

工程量转换的方法(转贴)

(2013-11-17 17:01:46)
标签:

教育

分类: 工控

                            工程量转换的方法

 

 

1、基本概念

 

我们生活在一个物质的世界中。世间所有的物质都包含了化学和物理特性,我们是通过对物质的表观性质来了解和表述物质的自有特性和运动特性。这些表观性质就是我们常说的质量、温度、速度、压力、电压、电流等用数学语言表述的物理量,在自控领域称为工程量。这种表述的优点是直观、容易理解。在电动传感技术出现之前,传统的检测仪器可以直接显示被测量的物理量,其中也包括机械式的电动仪表。

 

2、标准信号

 

在电动传感器时代,中央控制成为可能,这就需要检测信号的远距离传送。但是纷繁复杂的物理量信号直接传送会大大降低仪表的适用性。而且大多传感器属于弱信号型,远距离传送很容易出现衰减、干扰的问题。因此才出现了二次变送器和标准的电传送信号。二次变送器的作用就是将传感器的信号放大成为符合工业传输标准的电信号,如0-5V、0-10V或4-20mA(其中用得最多的是4-20mA)。而变送器通过对放大器电路的零点迁移以及增益调整,可以将标准信号准确的对应于物理量的被检测范围,如0-100℃或-10-100℃等等。这是用硬件电路对物理量进行数学变换。中央控制室的仪表将这些电信号驱动机械式的电压表、电流表就能显示被测的物理量。对于不同的量程范围,只要更换指针后面的刻度盘就可以了。更换刻度盘不会影响仪表的根本性质,这就给仪表的标准化、通用性和规模化生产带来的无可限量的好处。

 

3、数字化仪表

 

到了数字化时代,指针式显示表变成了更直观、更精确的数字显示方式。在数字化仪表中,这种显示方式实际上是用纯数学的方式对标准信号进行逆变换,成为大家习惯的物理量表达方式。这种变换就是依靠软件做数学运算。这些运算可能是线性方程,也可能是非线性方程,现在的电脑对这些运算是易如反掌。

 

4、信号变换中的数学问题

 

信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。

 

声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。

 

假定物理量为A,范围即为A0-Am,实时物理量为X;标准电信号是B0-Bm,实时电信号为Y;A/D转换数值为C0-Cm,实时数值为Z。

 

如此,B0对应于A0,Bm对应于Am,Y对应于X,及Y=f(X)。由于是线性关系,得出方程式为Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过A/D转换后的数学方程Z=f(X)可以表示为Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的X就可以在显示器上直接表达为被检测的物理量。

 

5、PLC中逆变换的计算方法

 

以S7-200和4-20mA为例,经A/D转换后,我们得到的数值是6400-32000,及C0=6400,Cm=32000。于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。

 

例如某温度传感器和变送器检测的是-10-60℃,用上述的方程表达为X=70*(Z-6400)/25600-10。经过PLC的数学运算指令计算后,HMI可以从结果寄存器中读取并直接显示为工程量。

 

用同样的原理,我们可以在HMI上输入工程量,然后由软件转换成控制系统使用的标准化数值。

 

在S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个0-1.0(100%)的实数,可以直接送到PID指令(不是指令向导)的检测值输入端。PID指令输出的也是0-1.0的实数,通过前面的计算式的反计算,可以转换成6400-32000,送到D/A端口变成4-20mA输出。

 

以上讲述的是PLC中工程量转换的基本方法,程序的编写则因人、因事而异。但是万变不离其衷。如果大家感兴趣,我可以给出自己编写的程序供大家参考,同时也希望各位网友不吝赐教、互相交流。

 

 

如何使用S7-200CPU 的PID控制

 

第一部分、PID控制

 

S7-200 能够进行PID 控制。S7-200 CPU最多可以支持8 个PID 控制回路(8个PID 指

令功能块)。

 

PID 是闭环控制系统的比例-积分-微分控制算法。

 

PID 控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID 算法

计算出控制器的输出量,控制执行机构去影响被控对象的变化。

 

PID 控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈

跟随给定变化。

 

根据具体项目的控制要求,在实际应用中有可能用到其中的一部分,比如常用的是PI(比例-积分)控制,这时没有微分控制部分。

 

PID 算法在S7-200 中的实现

 

PID 控制最初在模拟量控制系统中实现,随着离散控制理论的发展,PID也在计算机化

控制系统中实现。

 

为便于实现,S7-200中的PID 控制采用了迭代算法。详细的计算方法请参考《S7-200

系统手册》中PID 指令部分的相关内容。

 

计算机化的PID 控制算法有几个关键的参数Kc(Gain,增益),Ti(积分时间常

数),Td(微分时间常数),Ts(采样时间)。

 

在S7-200 中PID 功能是通过PID 指令功能块实现。通过定时(按照采样时间)执行

PID 功能块,按照PID 运算规律,根据当时的给定、反馈、比例-积分-微分数据,

计算出控制量。

 

PID 功能块通过一个PID 回路表交换数据,这个表是在V 数据存储区中的开辟,长度

为36 字节。因此每个PID 功能块在调用时需要指定两个要素:PID控制回路号,以及

控制回路表的起始地址(以VB 表示)。

 

由于PID 可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此有一

种通用的数据表示方法才能被PID 功能块识别。S7-200中的PID 功能使用占调节范围

的百分比的方法抽象地表示被控对象的数值大小。在实际工程中,这个调节范围往往

被认为与被控对象(反馈)的测量范围(量程)一致。

 


 

PID 功能块只接受0.0 - 1.0 之间的实数(实际上就是百分比)作为反馈、给定与控

制输出的有效数值,如果是直接使用PID 功能块编程,必须保证数据在这个范围之

内,否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数。

 

因此,必须把外围实际的物理量与PID 功能块需要的(或者输出的)数据之间进行转

换。这就是所谓输入/输出的转换与标准化处理。《S7-200系统手册》上有详细的介

绍。

 

 S7-200 的编程软件Micro/WIN 提供了PID 指令向导,以方便地完成这些转换/

标准化处理。除此之外,PID指令也同时会被自动调用。

 

调试PID 控制器

 

PID 控制的效果就是看反馈(也就是控制对象)是否跟随设定值(给定),是否响应

快速、稳定,是否能够抑制闭环中的各种扰动而回复稳定。

 

要衡量PID 参数是否合适,必须能够连续观察反馈对于给定变化的响应曲线;而实际

上PID 的参数也是通过观察反馈波形而调试的。因此,没有能够观察反馈的连续变化

波形曲线的有效手段,就谈不上调试PID 参数。

 

观察反馈量的连续波形,可以使用带慢扫描记忆功能的示波器(如数字示波器),波

形记录仪,或者在PC 机上做的趋势曲线监控画面等。

 

新版编程软件STEP 7 - Micro/WIN V4.0 内置了一个PID 调试控制面板工具,具有

图形化的给定、反馈、调节器输出波形显示,可以用于手动调试PID 参数。对于没有

“自整定PID”功能的老版CPU,也能实现PID 手动调节。

 

PID 参数的取值,以及它们之间的配合,对PID 控制是否稳定具有重要的意义。这些

主要参数是:

 

. 采样时间:

计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID 控制的计算。采样时

间就是对反馈进行采样的间隔。短于采样时间间隔的信号变化是不能测量到的。过短

的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应

要求高的场合。

编程时指定的PID 控制器采样时间必须与实际的采样时间一致。S7-200中PID 的采

样时间精度用定时中断来保证。

 

. 增益(Gain,放大系数,比例常数)

增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。过大的增益

会造成反馈的振荡。


 

. 积分时间(Integral Time)

偏差值恒定时,积分时间决定了控制器输出的变化速率。积分时间越短,偏差得到的

修正越快。过短的积分时间有可能造成不稳定。

积分时间的长度相当于在阶跃给定下,增益为“1”的时候,输出的变化量与偏差值相

等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间。

如果将积分时间设为最大值,则相当于没有积分作用。

. 微分时间(Derivative Time)

偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。微分时

间越长,输出的变化越大。微分使控制对扰动的敏感度增加,也就是偏差的变化率越

大,微分控制作用越强。微分相当于对反馈变化趋势的预测性调整。

如果将微分时间设置为0 就不起作用,控制器将作为PI 调节器工作。

常问问题

 

1、对于某个具体的PID 控制项目,是否可能事先得知比较合适的参数?有没有相关

的经验数据?

 

虽然有理论上计算PID 参数的方法,但由于闭环调节的影响因素很多而不能全部在数

学上精确地描述,计算出的数值往往没有什么实际意义。因此,除了实际调试获得参

数外,没有什么可用的经验参数值存在。甚至对于两套看似一样的系统,都可能通过

实际调试得到完全不同的参数值。

 

2、PID控制不稳定怎么办?如何调试PID?

 

闭环系统的调试,首先应当做开环测试。所谓开环,就是在PID 调节器不投入工作的

时候,观察:

 

. 反馈通道的信号是否稳定

. 输出通道是否动作正常

可以试着给出一些比较保守的PID 参数,比如放大倍数(增益)不要太大,可以小于

1,积分时间不要太短,以免引起振荡。在这个基础上,可以直接投入运行观察反馈的

波形变化。给出一个阶跃给定,观察系统的响应是最好的方法。

 

如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增

益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢,应该考虑是否

增益过小、积分时间过长……

 

总之,PID参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试

是非常重要的步骤,也是必须的。

 

S7-200 的新一代产品提供了自整定的PID 细调功能。

 


 

3、没有采用积分控制时,为何反馈达不到给定?

这是必然的。因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积

 

分控制的比例控制系统中,没有偏差就没有输出量,没有输出就不能维持反馈值与给

定值相等。所以永远不能做到没有偏差。

4、如何实现PID 反作用调节?

参见PID 向导中的常问问题。

5、S7-200控制变频器,在变频器也有PID 控制功能时,应当使用谁的PID 功能?

可以根据具体情况使用。一般来说,如果需要控制的变量直接与变频器直接有关,比

 

如变频水泵控制水压等,可以优先考虑使用变频器的PID 功能。

 

6、《S7-200系统手册》上的附录H.14“用S7-200 实现PID 控制”的例子,是否可

以直接使用?

《S7-200系统手册》中的附录H 在英文原版中并不存在。

 

H.14 的PID 例子是在第一代产品还不支持PID 运算指令时的产物。现在用户可以使用

PID 指令块,或者PID Wizard(PID 向导)编辑PID 控制程序。

PID Wizard - PID 向导

 

Micro/WIN 提供了PID Wizard(PID 指令向导),可以帮助用户方便地生成一个闭环

控制过程的PID 算法。此向导可以完成绝大多数PID 运算的自动编程,用户只需在主

程序中调用PID 向导生成的子程序,就可以完成PID 控制任务。

 

PID 向导既可以生成模拟量输出PID 控制算法,也支持开关量输出;既支持连续自动

调节,也支持手动参与控制。建议用户使用此向导对PID编程,以避免不必要的错

误。如果用户不能确定中文编程界面的语义,我们建议用户使用英文版本的

Micro/WIN,以免对向导中相关概念发生误解。

 

建议用户使用较新的编程软件版本。在新版本中的PID 向导获得了改善。

 

PID 向导编程步骤

 

在Micro/WIN 中的命令菜单中选择Tools > Instruction Wizard,然后在指令向导窗

口中选择PID 指令:

 


 

图1. 选择PID 向导

 

在使用向导时必须先对项目进行编译,在随后弹出的对话框中选择“Yes” ,确认编

译。如果已有的程序中存在错误,或者有没有编完的指令,编译不能通过。

 

如果你的项目中已经配置了一个PID 回路,则向导会指出已经存在的PID 回路,并让

你选择是配置修改已有的回路,还是配置一个新的回路:

 

 

图2. 选择需要配置的回路

 


 

第一步:定义需要配置的PID 回路号

 

 

图3. 选择PID 回路号

 

第二步:设定PID 回路参数

 

 

图4. 设置PID 参数

 


 

图4 中:

 

a. 定义回路设定值(SP,即给定)的范围:

在低限(Low Range)和高限(High Range)输入域中输入实数,缺省值为0.0 和

100.0,表示给定值的取值范围占过程反馈量程的百分比。

这个范围是给定值的取值范围。它也可以用实际的工程单位数值表示。参见:设置

给定-反馈的量程范围。

 

以下定义PID 回路参数,这些参数都应当是实数:

 

b. Gain(增益): 即比例常数。

c. Integral Time(积分时间):如果不想要积分作用,可以把积分时间设为无

穷大:9999.99

d. Derivative Time(微分时间):如果不想要微分回路,可以把微分时间设为

0 。

e. Sample Time(采样时间):是PID 控制回路对反馈采样和重新计算输出值的时

间间隔。在向导完成后,若想要修改此数,则必须返回向导中修改,不可在程序中或

状态表中修改。

注意:关于具体的PID 参数值,每一个项目都不一样,需要现场调试来定,没有所

谓经验参数。

 

第三步:设定回路输入输出值

 

 

图5. 设定PID 输入输出参数

 


 

在图5 中,首先 设定过程变量的范围:

 

a. 指定输入类型

o Unipolar: 单极性,即输入的信号为正,如0-10V 或0-20mA 等

o Bipolar:双极性,输入信号在从负到正的范围内变化。如输入信号为±10V、

±5V 等时选用

o 20% Offset:选用20%偏移。如果输入为4-20mA 则选单极性及此项,4mA是0-20mA 信号的20%,所以选20% 偏移,即4mA 对应6400,20mA 对应32000

b. 反馈输入取值范围

o 在a.设置为Unipolar 时,缺省值为0 - 32000,对应输入量程范围0 - 10V 或

0 - 20mA 等,输入信号为正

o 在a.设置为Bipolar 时,缺省的取值为-32000 - +32000,对应的输入范围根

据量程不同可以是±10V、±5V等

o 在a.选中20% Offset 时,取值范围为6400 - 32000,不可改变

此反馈输入也可以是工程单位数值,参见:设置给定-反馈的量程范围。

 

然后定义输出类型

 

c. Output Type(输出类型)

可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设

备,如比例阀、变频器等;数字量输出实际上是控制输出点的通、断状态按照一定的

占空比变化,可以控制固态继电器(加热棒等)

d. 选择模拟量则需设定回路输出变量值的范围,可以选择:

o Unipolar:单极性输出,可为0-10V 或0-20mA 等

o Bipolar:双极性输出,可为正负10V 或正负5V 等

o 20% Offset:如果选中20% 偏移,使输出为4 - 20mA

e. 取值范围:

o d 为Unipolar 时,缺省值为 0 到 32000

o d 为Bipolar 时,取值-32000到32000

o d 为20% Offset 时,取值6400 - 32000,不可改变

如果选择了开关量输出,需要设定此占空比的周期。

 


 

第四步:设定回路报警选项

 

 

图6. 设定回路报警限幅值

 

向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错

误状态。当报警条件满足时,输出置位为1。这些功能在选中了相应的选择框之后起

作用。

 

a.使能低值报警并设定过程值(PV)报警的低值,此值为过程值的百分数,缺省值为

0.10,即报警的低值为过程值的10%。此值最低可设为0.01,即满量程的1%

b.使能高值报警并设定过程值(PV)报警的高值,此值为过程值的百分数,缺省值为

0.90,即报警的高值为过程值的90%。此值最高可设为1.00,即满量程的100%

c. 使能过程值(PV)模拟量模块错误报警并设定模块于CPU 连接时所处的模块位

置。“0”就是第一个扩展模块的位置


 

第五步:指定PID 运算数据存储区

 

 

图7. 分配运算数据存储区

 

PID 指令(功能块)使用了一个120 个字节的V 区参数表来进行控制回路的运算工

作;除此之外,PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。需

要为它们定义一个起始地址,要保证该地址起始的若干字节在程序的其它地方没有被

重复使用。如果点击“Suggest Address”,则向导将自动为你设定当前程序中没有用

过的V 区地址。

 

自动分配的地址只是在执行PID 向导时编译检测到空闲地址。向导将自动为该参数

表分配符号名,用户不要再自己为这些参数分配符号名,否则将导致PID 控制不执

行。

 


 

第六步:定义向导所生成的PID 初使化子程序和中断程序名及手/自动模式

 

 

图8. 指定子程序、中断服务程序名和选择手动控制

 

向导已经为初使化子程序和中断子程序定义了缺省名,你也可以修改成自己起的名

字。

 

a. 指定PID 初使化子程序的名字。

b. 指定PID 中断子程序的名字

注意:

 

1. 如果你的项目中已经存在一个PID 配置,则中断程序名为只读,不可更改。因

为一个项目中所有PID 共用一个中断程序,它的名字不会被任何新的PID 所更改。

2. PID 向导中断用的是SMB34 定时中断,在用户使用了PID 向导后,注意在其它

编程时不要再用此中断,也不要向SMB34 中写入新的数值,否则PID 将停止工作。

c. 此处可以选择添加PID 手动控制模式。在PID 手动控制模式下,回路输出由

手动输出设定控制,此时需要写入手动控制输出参数一个0.0-1.0 的实数,代表输出

的0%-100%而不是直接去改变输出值。

此功能提供了PID 控制的手动和自动之间的无扰切换能力。

 

第七步:生成PID 子程序、中断程序及符号表等

 

一旦点击完成按钮,将在你的项目中生成上述PID 子程序、中断程序及符号表等。

 


 

图9. 生成PID 子程序、中断程序和符号表等

 

第八步:配置完PID 向导,需要在程序中调用向导生成的PID 子程序(如下图)

 

 

图10. PID 子程序

 

 

图11. 调用PID 子程序

 


 

在用户程序中调用PID 子程序时,可在指令树的Program Block(程序块)中用鼠标

双击由向导生成的PID 子程序,在局部变量表中,可以看到有关形式参数的解释和取

值范围。

 

a. 必须用SM0.0 来使能PID,以保证它的正常运行

b. 此处输入过程值(反馈)的模拟量输入地址

c. 此处输入设定值变量地址(VDxx),或者直接输入设定值常数,根据向导中

 

的设定0.0-100.0,此处应输入一个0.0-100.0 的实数,例:若输入20,即为过程

值的20%,假设过程值AIW0 是量程为0-200 度的温度值,则此处的设定值20 代表

40 度(即200 度的20%);如果在向导中设定给定范围为0.0 - 200.0,则此处的20

相当于20 度

 

d. 此处用I0.0 控制PID 的手/自动方式,当I0.0 为1 时,为自动,经过PID 运

算从AQW0 输出;当I0.0 为0 时,PID将停止计算,AQW0输出为ManualOutput(VD4)中的设定值,此时不要另外编程或直接给AQW0 赋值。若在向导中没有选择

PID 手动功能,则此项不会出现

e. 定义PID 手动状态下的输出,从AQW0 输出一个满值范围内对应此值的输出

量。此处可输入手动设定值的变量地址(VDxx),或直接输入数。数值范围为0.0

1.0 之间的一个实数,代表输出范围的百分比。例:如输入0.5,则设定为输出的50%。若在向导中没有选择PID 手动功能,则此项不会出现

f. 此处键入控制量的输出地址

g. 当高报警条件满足时,相应的输出置位为1,若在向导中没有使能高报警功

能,则此项将不会出现

h. 当低报警条件满足时,相应的输出置位为1,若在向导中没有使能低报警功

能,则此项将不会出现

i. 当模块出错时,相应的输出置位为1,若在向导中没有使能模块错误报警功

能,则此项将不会出现

调用PID 子程序时,不用考虑中断程序。子程序会自动初始化相关的定时中断处理

事项,然后中断程序会自动执行。

 

第九步:实际运行并调试PID 参数

 

没有一个PID 项目的参数不需要修改而能直接运行,因此需要在实际运行时调试PID

参数。

 

查看Data Block(数据块),以及Symbol Table(符号表)相应的PID 符号标签的内

容,可以找到包括PID 核心指令所用的控制回路表,包括比例系数、积分时间等等。

将此表的地址复制到Status Chart(状态表)中,可以在监控模式下在线修改PID 参

数,而不必停机再次做组态。

 


 

参数调试合适后,用户可以在数据块中写入,也可以再做一次向导,或者编程向相应

的数据区传送参数。

 

常问问题

 

1、做完PID 向导后,如何知道向导中设定值,过程值及PID 等参数所用的地址?

 

. 做完PID 向导后可在Symbol Table(符号表)中,查看PID 向导所生成的符号

表(上例中为PID0_SYM),可看到各参数所用的详细地址,及数值范围。

. 在Data Block(数据块)中,查看PID 指令回路表的相关参数。如图所示:

图12. PID 数据块

 

2、做完PID 向导后,如何在调试中修改PID参数?

 

可以在Status Chart(状态表)中,输入相应的参数地址,然后在线写入用户需

要的PID 参数数值,这样用户就可根据工艺需要随时对PID 参数、设定值等进行调

整。

 

3、PID已经调整合适,如何正式确定参数?

 

可以在Data Block(数据块)中直接写入参数。

 


 

4、做完PID 向导后,能否查看PID 生成的子程序,中断程序?

 

PID 向导生成的子程序,中断程序用户是无法看到的,也不能对其进行修改。没有密

码能够打开这些子程序,一般的应用也没有必要打开查看。

 

5、PID参数有经验值吗?

 

每一个项目的PID 参数都不一样,没有经验参数,只能现场调试获得。

6、我的PID 向导生成的程序为何不执行?

 

. 必须保证用SM0.0 无条件调用PID0_INIT程序

. 在程序的其它部分不要再使用SMB34 定时中断,也不要对SMB34 赋值

7、如何实现PID 反作用调节?

在有些控制中需要PID 反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过

程值)低于设定温度,需要关阀,减小输出控制(减少冷水流量等),这就是PID 反

 

作用调节(在PID 正作用中若过程值小于设定值,则需要增大输出控制)。

若想实现PID 反作用调节,需要把PID 回路的增益设为负数。对于增益为0 的积分或

微分控制来说,如果指定积分时间、微分时间为负值,则是反作用回路。

 

8、如何根据工艺要求有选择地投入PID 功能?

可使用“手动/自动”切换的功能。PID向导生成的PID 功能块只能使用SM0.0 的条件

调用。

 

PID Wizard 中的给定-反馈设置

 

完成PID Wizard 组态后,会为每个PID 回路生成一个子程序PIDx_INIT

 

(x = 0 - 7)。在用户程序中,必须使用SM0.0 始终调用这个子程序才能实现PID 功

能。

下图是一个最简单的PID 子程序调用程序段:

 


 

图1. 调用PID 子程序

 

其中:

 

. PV_I: 过程反馈参数值的入口

. Setpoint: 给定参数值的入口

. Output: PID 调节器的输出值

在这里,给定、反馈的入口参数不是PID 指令功能块所需要的0.0 - 1.0 之间的实

数,而可以是实际的反馈地址,或是其他变量。例如,PV_I可以是模拟量输入地址

AIW0,也可以是存储器地址VW100 等;Setpoint则往往来自V 变量存储区,这样可以

从人机操作界面(HMI)设备输入给定值。

 

注意:

 

对于PID 控制系统来说,必须保证给定与过程反馈的一致性:

 

. 给定与反馈的物理意义一致

这取决于被控制的对象,如果是压力,则给定也必须对应于压力值;如果是温度,则

给定也必须对应于温度。

 

. 给定与反馈的数值范围对应

如果给定直接是摄氏温度值,则反馈必须是对应的摄氏温度值;如果反馈直接使用模

拟量输入的对应数值,则给定也必须向反馈的数值范围换算。

 

如果给定与反馈的换算有特定的比例关系也可以。如给定也可以表示为以反馈的数值

范围的百分比数值。

 

给定与反馈的数值具体是什么数值,其取值范围究竟如何,完全取决于我们在使用

“PID 向导”编程时指定的给定与反馈的数值范围。其中,反馈量的数值范围不能随

便自己定义,而要取决于具体应用的模拟量输入模块。

 


 

图2. 在图中a.处设置给定范围

 

 

图3. 在图中b.处设置反馈范围

 

实例

 

假定一个PID 控制系统的控制对象是压力,反馈元件的测量范围为0 - 16MPa。反馈

器件的信号经过变换,以0 - 20mA(或4 - 20mA)电流信号的形式输入到EM231 模拟

量输入模块中。据此,我们可以按下表设置给定、反馈的范围。

 


 

表1.

 

反馈(单极性)

实际

物理

模拟量输

入数值

16

MPa

32000

0 (0 -

20mA)

0 MPa

6400 (4

- 20mA)

给定

百分比形式(占0

- 16MPa 的百分

比)

100.0

0.0

物理工程单

位形式

n×16.0

0.0

 

n 为比例系数,为了精度高些可以设置n=10 等等

 

又如一个温度控制的PID 系统,温度值直接由热电偶测量,输入到EM231 TC(热电

偶)模块转换为温度值。热电偶为J 型,其测量范围为 -150.0°C - 1200.0 °C。则

可按如下设置给定的范围。

 

表2.

 

反馈(双极性)

实际物

理量

模拟量

输入数

1200.0

°C

12000

-150.0

°C

-1500

给定

百分比形式(占

150°C -

1200.0°C 的百分

比)

100.0

0.0

物理工

程单位

形式

1200

-150

 

在上面的例子中,反馈和给定可以按照如下方法设置

 


 

图4. 反馈范围设置

 

 

图5. 给定范围设置

 


 

第二部分、PID自整定

 

PID 自整定

 

新的S7-200 CPU 支持PID 自整定功能,在STEP 7-Micro/WIN V4.0 中也添加了PID 调

节控制面板。

 

用户可以使用用户程序或PID 调节控制面板来启动自整定功能。在同一时间最多可以

有8 个PID 回路同时进行自整定。PID调节控制面板也可以用来手动调试老版本的

(不支持PID 自整定)CPU的PID 控制回路。

 

用户可以根据工艺要求为调节回路选择快速响应、中速响应、慢速响应或极慢速响

应。PID自整定会根据响应类型而计算出最优化的比例、积分、微分值,并可应用到

控制中。

 

PID 调节控制面板

 

STEP 7-Micro/WIN V4.0 中提供了一个PID 调节控制面板,可以用图形方式监视PID

回路的运行,另外从面板中还可以启动、停止自整定功能。

 

 

图1. PID 调节控制面板

 


 

在图1 中:

 

a. 过程值指示

显示过程变量的值及其棒图

b. 当前的输出值指示

显示当前使用的设定值、采样时间、PID 参数值及显示当前的输出值和棒图

c. 可显示过程值、设定值及输出值的PID 趋势图

图2. 图形显示区

 

图中:

 

A. 过程变量和设定值的取值范围及刻度

B. PID 输出的取值范围及刻度

C. 实际PC时间

D. 以不同颜色表示的设定值、过程变量及输出的趋势图

d. 调节参数

这里你可以:

o 选择PID 参数的显示:当前参数(Current)、推荐参数(Suggested)、手

动输入(Manual)

o 在Manual 模式下,可改变PID 参数,并按Update PLC 按钮来更新PLC 中的

参数

o 启动PID 自整定功能

o 选择Advanced(高级)按钮进入高级参数设定

e. 当前的PID 回路号

这里你可以选择需要监视或自整定的PID 回路

f. 时间选项设定

这里你可以设定趋势图的时基,时基以分为单位

g. 图例颜色

这里你可以看到趋势图中不同的颜色代表不同的值的趋势


 

h. 帮助按钮

i. PID 信息显示窗口

j. 关闭PID 调节面板

 

要使用PID 调节控制面板,PID编程必须使用PID 向导完成。

 

PID 自整定步骤

 

第一步:在PID Wizard (向导)中完成PID 功能组态

要想使用PID 自整定功能,PID编程必须用PID 向导来完成

 

第二步:打开PID 调节控制面板,设置PID 回路调节参数

在Micro/WIN V4.0 在线的情况下,从主菜单Tools > PID Tune Control Panel 或点

 

击进入PID 调节控制面板中,如果面板没有被激活(所有地方都是灰

色),可点击Configure(配置)按钮运行CPU。

 

在PID 调节面板的e.区选择要调节的PID 回路号,在d.区选择Manual(手动),调

节PID 参数并点击Update(更新),使新参数值起作用,监视其趋势图,根据调节状

况改变PID 参数直至调节稳定。

 

为了使PID 自整定顺利进行,应当做到:

 

. 使PID 调节器基本稳定,输出、反馈变化平缓,并且使反馈比较接近给定

. 设置合适的给定值,使PID 调节器的输出远离趋势图的上、下坐标轴,以免PID 自

整定开始后输出值的变化范围受限制

参见:手动调整PID 回路参数

 


 

第三步:在d.区点击Advanced(高级)按钮,设定PID 自整定选项。如果不是很特

殊的系统,也可以不加理会。

 

 

图3. 设置PID 自整定高级选项

 

在此允许你设定下列参数:

 

a. 你可以选中复选框,让自整定来自动计算死区值和偏移值

对于一般的PID 系统,建议使用自动选择。

 

b. Hysteresis(滞回死区):

死区值规定了允许过程值偏离设定值的最大(正负)范围,过程反馈在这个范围内的

变化不会引起PID 自整定调节器改变输出,或者使PID 自整定调节器“认为”这个范

围内的变化是由于自己改变输出进行自整定调节而引起的。PID自整定开始后,只有

过程反馈值超出了该区域,PID自整定调节器才会认为它对输出的改变发生了效果。

这个值用来减少过程变量的噪声对自整定的干扰,从而更精确地计算出过程系统的自

然振动频率。如果选用自动计算,则缺省值为2%。

 


 

如果过程变量反馈干扰信号较强(噪声大)自然变化范围就大,可能需要人为设置一

个较大的值。但这个值的改变要与下面的偏差值保持1:4 的关系。

 

c. Deviation(偏差):

偏差值决定了允许过程变量偏离设定值的峰峰值。如果选择自动计算该值,它将是死

区的4 倍,即8%。

 

有些非常敏感的系统不允许过程量偏离给定值很多,也可以人工设置为比较小的值,

但是要和上述“死区”设置保持比例关系。这就是说,一个精度要求高的系统,其反

馈信号必须足够稳定。

 

d. Initial Output Step(初始步长值):PID调节的初始输出值

PID 自整定开始后,PID自整定调节器将主动改变PID 的输出值,以观察整个系统的反

应。初始步长值就是输出的变动第一步变化值,以占实际输出量程的百分比表示。

 

e. Watchdog Time(看门狗时间):过程变量必须在此时间(时基为秒)内达到

或穿越给定值,否则会产生看门狗超时错误。

PID 自整定调节器在改变输出后,如果超过此时间还未观察到过程反馈(从下至上或

从上至下)穿越给定曲线,则超时。如果能够事先确定实际系统响应非常慢,可以加

长这个时间。

 

f. 动态响应选项:根据回路过程(工艺)的要求可选择不同的响应类型:快

速、中速、慢速、极慢速

o 快速:可能产生超调,属于欠阻尼响应

o 中速:在产生超调的边缘,属于临界阻尼响应

o 慢速:不会产生任何超调,属于过阻尼响应

o 极慢速:不会产生任何超调,属于严重过阻尼响应

用户在这里指定需要达到的系统控制效果,而不是对系统本身响应快慢的判断。

 

g. 设定完参数点击OK 键回到PID 调节控制面板的主画面

第四步:在手动将PID 调节到稳定状态后,即过程值与设定值接近,且输出没有不规

律的变化,并最好处于控制范围中心附近。此时可点击d.区内的Start Auto Tune 按

钮启动PID 自整定功能,这时按钮变为Stop Auto Tune。这时只需耐心等待,系统完

成自整定后会自动将计算出的PID 参数显示在d.区。当按钮再次变为Start Auto

Tune 时,表示系统已经完成了PID 自整定。

 


 

要使用自整定功能,必须保证PID 回路处于自动模式。开始自整定后,给定值不能

再改变。

 

第五步:如果用户想将PID 自整定的参数应用到当前PLC 中,则只需点击Update

PLC。

 

完成PID 调整后,最好下载一次整个项目(包括数据块),使新参数保存到CPU 的

EEPROM 中。

 

PID 自整定失败的原因

 

1.PID 输出在最大值与最小值之间振荡(曲线接触到坐标轴)

解决方法:降低PID 初始输出步长值(initial output step)

 

2.经过一段时间后,PID自整定面板显示如下信息:“ The Auto Tune algorithm

was aborted due to a zero-crossing watchdog timeout.” 即自整定计算因为等待

反馈穿越给定值的看门狗超时而失败。

解决方法: 确定在启动PID 自整定前,过程变量和输出值已经稳定。并检查

Watchdog Time 的值,将其适当增大。

 

对于其它错误,可参考手册中表15-3 中的错误代码的描述。

 

如何获得一个稳定的PID 回路

 

在开始PID 自整定调整前,整个PID 控制回路必须工作在相对稳定的状态。

 

稳定的PID 是指过程变量接近设定值,输出不会不规则的变化,且回路的输出值在控

制范围中心附近变化。

问题与解决方法:

 


 

1.PID 输出总是输出很大的值,并在这一区间内调节变化

产生原因:

 

o 增益(Gain)值太高

o PID 扫描时间(sample time)太长(对于快速响应PID 的回路)

解决方法:降低增益(Gain)值并且/或选择短一些的扫描时间

2.过程变量超过设定值很多(超调很大)

产生原因:积分时间(Integral time)可能太高

解决方法:降低积分时间

 

3.得到一个非常不稳定的PID


 

产生原因:

 

o 如果用了微分,可能是微分参数有问题

o 没有微分,可能是增益(Gain)值太高

解决方法:

 

o 调整微分参数到0-1 的范围内

o 根据回路调节特性将增益值降低,最低可从0.x 开始逐渐增大往上调,直到

获得稳定的PID。


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有