利用FB42工作机理实现精确控制电动调节阀的开度

发布时间:2011-04-18  点击数:3848

    调节阀开度反馈的类型可分为无开度反馈、只有两点(全开、全关)状态反馈和有连续开度反馈等。而具有连续开度反馈的阀门则是厂家和调试者的理想追求,但是,对同一种类型的阀门而言,具有连续开度反馈的阀门造价远远高于无开度反馈和仅有两点状态反馈的阀门。因此,对无连续开度反馈阀门进行软件弥补,使之具有连续开度反馈很有必要。

    文中介绍了西门子STEP7中PID功能块FB42的工作机理,并详细分析了该功能块精确控制电动阀的开度。

一、PID控制器的原理

    PID(Proportional Integral Differential)控制算法源于经典的闭环反馈控制,它是线性定常连续系统中技术最成熟、应用最广泛的调节方式。PID调节的实质就是根据输入的偏差值,按比例、积分和微分的函数关系进行运算,其运算结果用以输出控制。PID控制器的控制规律为

    

    由于式(1)为模拟量表达式,而PLC程序只能处理离散数字量,为此,必须将连续形式的微分方程化成离散形式的差分方程 。令

    

    则可得到位置式数字PID算法:

    

    使用位置式PID数字控制器,是对偏差进行处理,然后输出控制量,即执行机构的位置。将位置式数字PID算法经过转换得到增量式算法 :

    

    增量式PID控制算法是对偏差增量进行处理,然后输出控制量的增量,即执行机构位置的增量。

二、FB42的工作机理

    西门子PLC的CPU中运行的步进(增量式)PID控制算法采用STEP7自带的FB42功能块,其控制组态结构如图1所示。

图1 FB42的结构

    SP-INT:设定值输入(浮点格式),范围为0.0~100.0;PV-INT:测量值输入,范围为0.0~100.0;LMNR-HS:阀门全开信号反馈;LMNR-LS:阀门全关信号反馈;LMNUP:手动开阀;LMNDN:手动关阀;MTR-TM:阀门的行程时间(默认值为30s);QLMNUP:开阀信号;QLMNDN:关阀信号。

    FB42的工作过程:由SP-INT和PV-IN得到范围在-100.0~100.0之间的偏差信号。该偏差经过比例环节之后,其中一路先经过一个积分环节,然后与计算得到的理论阀位开度增量值相比较,比较后的结果再通过一个积分环节算得当前的阀位估计值。

    该估计值与比例环节后的偏差在THREE-ST(三步元件)块里计算得到正负脉冲宽度。其结果再通过PULSE-OUT(脉冲信号产生环节)产生不同占空比的脉冲信号(当偏差信号为正信号且该信号大于死区值时,FB42中的QLMNUP为1,该信号驱动电动机正转,使阀门开度增加;当QLMNUP变为0时,电动阀伺服停止,阀门保持原位,阀门位置增加的程度由QLMNUP脉冲的宽度决定。当偏差信号为负信号且该信号小于死区值时,FB42中的QLMNDN信号变为1,该信号驱动电动机反转,使阀门开度减小;当QLMNDN变为0时,电动机静止,阀门保持原位,阀门位置减小的程度由QLMNDN脉冲信号的宽度决定),该脉冲信号直接控制电动阀开度的增大或减少 。

    1、电动阀门开度算法的实现

    从上述功能块FB42的工作过程介绍中可以看到,在FB42中其实提供了一个计算阀门开度的功能,但由于这个功能块没有提供任何的结果输出,再加上FB42的源代码也无法获得,所以不能直接使用。为了解决这个问题,文中提出了仿FB42的阀门开度计算算法。主程序流程如图2所示。

图2 阀门开度计算程序流程

    图2中,初始化部分主要完成了阀门行程时间的获取以及各个所要用到的内存单元的复位。开阀时间T1的计算由以下程序实现:

    COMM:A#QLMNUP

          //开阀信号上升沿启动定时器

    L S5T#30 s

    SPT 1

               //设定定时器类型为脉冲定时器

    AN#QLMNUP

               //当开阀信号终止时复位定时器

    R T 1

    LC T 1

    BTI

      TLW 20

    L 300

    L LW 20

    -I

    TLW 22

    ITD

    D TR

    TLD 24 //读取定时器工作时间并转换为实数型数据关阀时间T2的计算程序与此类似。在获得开关阀时间T1,T2的基础上计算阀门的开度增量:

    L LD 12 //该暂存存储单元存放本次循环周期内的开阀开度增量

    L#OPN-PST

    //上次循环周期内的开阀开度增量

    -R

    TLD 64 //开阀开度增量

    L LD 12

    T#OPN-PST

    L LD 16 //该暂存存储单元存放本次循环周期内的关阀开度增量

    L#CLS-PST

    //上次循环周期内的关阀开度增量

    - R

    TLD 72 //关阀开度增量

    L LD 16

    T#CLS-PST

    开/关阀开度增量的周期累计,通过一个积分环节,在原有开度的基础上得到当前的开度值。

    2、算法验证及仿真结果

图3 阀门开度仿真

    在FB41,FB42中行程的时间(开阀或关阀的最大时间)默认为30s,所以横坐标的最大时间取30s。如图3所示,阀门开度的实际值与理论开度存在一定的误差,这是因为固态继电器和阀门本身反应时间的影响,但是该误差非常小,控制精度已能满足工业要求。

三、控制机理分析

    电动阀的开度控制运用的是步进PID控制器(增量式)FB42,该控制器将设定值与测量值的误差信号运算得到阀门位置的增大值或减小值,然后输出为QLMNUP与QLMNDN的脉冲信号,再由该信号驱动电动机正转或反转,以达到控制阀门的目的。当阀门要保持在某一位置式,控制器不需要任何输出信号。

四、结论

    在深入研究FB42的基础上结合电动阀门的特点,实现了无连续开度反馈阀门的连续开度控制与开度计算方法,改造后的阀门控制精度较高,能满足各种工业场合的要求,并通过仿真验证了该方法的有效性。