1 引言
电动调节阀因具有结构简单、维修方便、使用寿命长等优点被广泛地应用于造纸、石化、电站、制冷等过程控制领域。基于提高电动调节阀的控制精度、减少调试者和操作员的无用劳动这一目的,具有连续阀位反馈的阀门深受生产厂家和控制系统设计部门的青睐。而具有连续阀位反馈的阀门的造价远远高于无连续阀位反馈的阀门,为此,对无连续阀位反馈的阀门用软件来弥补硬件上的美中不足就显得很有必要。本文就是在进行某造纸厂工业控制系统DCS设计的同时,实现了这种无连续开度反馈的电动调节阀开度的计算,使其具有有连续开度反馈阀门的特性,经在实际中使用,效果良好,工作稳定可靠。
2 电动调节阀的控制机理

图1 压力控制回路
电动调节阀广泛地应用在DCS控制系统的压力、压差、液位等控制回路,下面就以典型的压力控制[1]回路为例,分析无连续开度反馈电动调节阀的控制机理,如图1所示。 压力变送器测得的现场压力信号PT通过功能模块SM331送给CPU模块,CPU结合电动阀的全开全关位置反馈,利用PID算法输出数字量的开/关阀信号给固态继电器对SR,从而驱动电动阀增大/减小其开度。
在图1所示的压力控制回路中,CPU中运行的PID控制算法[2,3]采用STEP7自带的FB42功能块,其相关端口[4]介绍如下: SP_INT:设定值输入端(浮点格式),范围为0.0~100.0; PV_IN:测量值输入端,范围为0.0~100.0; PV_PER:测量值输入端,范围为0~27648; CRP_IN:数值转换(将PV_PER外围设备数值转换为一个浮点格式的数值),范围为-100.0~100.0,CRP_IN的输出=PV_PER×100/27648; PV_NORM:对CRP_IN的输出进行标准化,PV_NORM的输出=(CRP_IN的输出)×PV_FAC+ PV_OFF,PV_FAC的缺省值为“1”, PV_OFF的缺省值为“0”; DISV:干扰信号输入端; LMNR_HS:阀门全开信号反馈; LMNR_LS:阀门全关信号反馈; LMNS_ON:手动选择端; LMNUP:手动开阀; LMNDN:手动关阀; MTR_TM:阀门的行程时间(默认值为30秒); QLMNUP:开阀信号; QLMNDN:关阀信号。
FB42的工作过程:由SP_INT和PV_IN(或PV_PER)得到范围在-100.0~100.0之间的偏差信号(PV),该偏差经过比例环节之后,其中一路先经过了一个积分环节,然后与计算得到的理论阀位开度增量值相比较,比较后的结果再通过一个积分环节算得当前的阀位估计值,该估计值与比例环节后的偏差在THREE_ST(三步元件)块里计算得到正负脉冲宽度,该结果再通过PULSEOUT(脉冲信号产生环节)产生不同占空比的脉冲信号,该脉冲信号直接控制电动阀开度的增大/减少。
3 阀门开度计算算法的实现
从上述功能块FB42的工作过程介绍中可以看到,在FB42中其实提供了一个计算阀门开度的功能,但由于这个功能块没有提供任何的结果输出,再加上FB42的源代码也无法获得,所以不能直接使用。为了解决这个问题,笔者提出了仿FB42的阀位开度计算算法。其主程序流程图如图2所示。

图2 阀位开度计算算法流程图
在该主程序流程图中,初始化部分主要完成阀门行程时间的获取以及各个所要用到的内存单元的复位。 开阀时间T1的计算由以下具体程序[5]实现:
COMM:A #QLMNUP //开阀信号上升沿启动定时器 L S5T#30S SP T 1 //设定定时器类型为脉冲定时器 AN #QLMNUP //当开阀信号终止时复位定时器 R T 1 LC T 1 BTI T LW 20 L 300记下每次在得到全开/全关 L LW 20 -I T LW 22 ITD DTR T LD 24 //读取定时器工作时间并转换为实数型数据 关阀时间T2的计算程序与此类似。在获得开关阀时间T1、 T2的基础之上计算阀门的开度增量: L LD 12 //该暂存存储单元存放本次循环周期内的开阀开度增量 L #OPN_PST //上次循环周期内的开阀开度增量 -R T LD 64 //开阀开度增量 L LD 12 T #OPN_PST L LD 16 //该暂存存储单元存放本次循环周期内的关阀开度增量 L #CLS_PST //上次循环周期内的关阀开度增量 -R T LD 72 //关阀开度增量 L LD 16 T #CLS_PST
开/关阀开度增量的周期累计,再通过一个积分环节,在原有开度的基础之上得到当前的理论开度值。
4 优化功能的实现
4.1 行程时间的自计算
在FB42中,默认的MTR_TM(行程时间)为30秒。可实际的阀门由于具体的生产厂家、规格型号等客观因素的影响,行程时间各有不同。从以上所述的计算算法可以看到,阀门的行程时间在整个计算过程中起到了至关重要的作用。为此,笔者就在开度计算前加入了一段计算行程时间的程序。其具体的功能实现为:手动设置QLMNDN为1,直至从LMNR_LS得到阀门全关信号,然后设置QLMNUP为1,同时启动定时器,当从LMNR_HS得到阀门全开信号时,停止定时,由此得到的时间值就是该阀门的行程时间。
4.2 调整功能
一般情况下,由于固态继电器以及阀门本身反应时间的影响,阀门不会很好地跟踪FB42的开/关阀信号输出,这种误差经过累计就会使上述算法计算得到的理论开度和实际开度有较大的出入。为了解决这个问题,就有必要添加自调整功能。借助电动阀门提供的全开/全关反馈信号,笔者提出了基于以下思想的自调整方案: (1) 在得到阀门反馈回来的全开/全关信号时,强制把当前计算得到的开度相应地置为100.0和0.0; (2) 信号时,计算得到的开度和当时的实际开度(0.0或100.0)的偏移量。该偏移量用于修正下次的理论开度。
4.3 自调整算法
为了使计算得到的理论开度尽可能准确地和实际开度保持一致,先从分析控制系统入手。该系统的构成框图如图3所示。

图3 阀门控制系统的构成框图
在这个控制系统中,由于固态继电器、阀门本身的动作时间,所以阀门作为一个被控对象是具有较为明显的纯滞后特性。理论开度和实际开度的偏差正是由于这些纯滞后所造成的。为此,有必要得到纯滞后时间和偏差量之间的定量关系。以图4所示的阀门动作过程为例。

图4 阀门动作过程
其中,T1是固态继电器、阀门得电动作的滞后时间,T2是固态继电器、阀门失电动作的滞后时间,Δk是阀门的静态开度偏差量。 在图4中,可以看到阀门的一次开过程引入的偏差量是: (1) 一次关过程引入的偏差量是: (2) 由(1)、(2)式得到了偏差量Δk和纯滞后时间ΔT的关系表达式:
(3) 其中,ΔT=T2-T1,m是输出开阀信号的次数,n是输出关阀信号的次数。假定在阀门全开时得到的理论开度和实际开度的差值为Δk,而开/关阀门信号的输出次数是可以统计得到的,由上面的关系式就可以简单地整定出一个ΔT,如此反复,每次到达全开/全关位置时就整定出一个新的ΔT,然后在每次阀门的开/关过程中补偿因为固态继电器、阀门动作所引入的开度偏差,这样就保证了理论开度值始终可以跟上实际开度值的变化。
4.4 算法验证及试验结果
注:图5、图6中横坐标表示开/关阀门信号的输出次数之差m-n(次),纵坐标表示阀门开度k(%); ‘*’为未经自调整的阀门实际开度采样值,‘o’为未经自调整的阀门实际理论开度采样值。

图5 未经自调整的阀门实际、理论开度对比
为了验证本开度计算算法以及优化功能的正确性,采用了一台和无连续阀位反馈的电动阀有同样控制机理,而且还有连续阀位反馈的ZAP-20型电动阀门进行试验。 FB42作为阀门的PID控制器,结合开度计算程序,在阀门由全关到全开的过程中依次取样,其试验结果如图5所示。 由图5试验曲线通过(3)式可以整定出一个ΔT≈0.1983s,用它去补偿其开度偏差,得到如图6所示的曲线。 对照图5、图6两组曲线,可以看到自调整前的理论开度和实际开度的偏差较大,并且其值与m-n值之间存在着近似线性关系。经过自调整后,两者的偏差明显减小,理论开度能很好地跟踪实际开度。

图6 自调整后的实际、理论阀门开度对比
5 算法的扩展
该算法具有很好的通用性。针对仅有两点(全开、全关)状态反馈的阀门,可以弥补没有连续准确开度反馈的缺点,针对有连续开度反馈的阀门同样也可以起到提高精度的作用。 将自调整算法应用到有连续开度反馈的阀门中可以发现,实际开度和理论开度之间的偏差不光和ΔT(开关阀门滞后时间之差)有关,更是和阀门本身的精度有关,精度越高的阀门,其实际开度跟踪设定开度的程度越好,相反地,精度不高的阀门往往因为开度误差导致工艺质量下降,但阀门精度的提高是以牺牲成本为基础的,本算法就可以通过自调整程序得到实际阀门数学模型的主要参数,在此基础上,结合相关的算法优化阀门的开度信号,从而达到控制效果的最优。
6 结语
在深入研究FB42的基础上,结合从控制系统的角度分析得到的自调整结论,通过具体程序实现了无连续开度反馈电动调节阀的开度计算算法。该算法经调试已经在河北某造纸厂正式投入使用,减轻了调试和操作的难度和复杂度,达到了预期控制效果。同时,节约了成本,拓宽了阀门的使用范围,具有较高的实用推广价值。
|