风机的两个出口压力采用高选控制,即选择HILOAVG(HI)算法;同样两个喉部差压采用低选控制,即选择HILOAVG(LO)算法。
笔者针对图3的防喘振控制框图,在ARGG中央控制室TPS系统中,逐个功能反复实验最终确立新的算法方框图,如图5所示。
结合图5的框图功能创建了一些功能点,如表1所示。
本控制算法最大的技术难点,也是核心技术是:
l 防喘振线的形成
l 比例增益K自整定运算
l 放空阀的快开慢关功能
l 防喘振曲线工作点的动态干预
下面就作以详细的阐述。
一、温压补偿算法
在TPS系统中Regulatory PV温压补偿算法有固定的计算公式。有如下几种:
在这里,笔者选择了公式EQB算法。下面是公式中的变量说明。
P = Measured actual gage pressure.
T = Measured actual temperature.
RP = Design pressure, converted to an absolute value (Default value = 1.0).
RT = Design temperature, converted to an absolute value (Default value =1.0).
P0 = Factor to convert gauge pressure to an absolute value. Typically 14.696
psia or 101.325 kPa. Enter the absolute value of the number.Default value = 0. If the measured pressure is already an absolute value, enter 0.
T0 = Factor to convert Celsius and Fahrenheit temperatures to an absolute
value. Typically 459.69°F or 273.15°C (use the absolute value of the number when entering a value in T0).
备机防喘振控制参考温度为T0 = 25°C。
其中:
IN0 = 0.0 IN1 = 30.0 Beginning of 1st segment
IN2 = 55.0 IN3 = 85.0 End of 1st segment
OUT0 = 0.0 OUT1 = 20.0 End of 2nd segment
OUT2 = 45.0 OUT3 = 100.0 End of 3rd segment
Solution A (P1 = IN2):
PVCALC = OUT2 = 45.0
Solution B (P1 > IN1):
说明:
Each time this algorithm is processed the input value P1 is compared with each segment,starting with the first and continuing until a segment is found that intersects with the input.When that segment is found, PVCALC is calculated as follows:
If the P1 value is exactly equal to the input value at the beginning of any segment (P1 =IN i , for i in a range from 0 to the value in SEGTOT),
其中变量:
PVCALC = The output of this algorithm. It is selected as the PV for this
data point when the PV source is AUTOmatic.
P1 = The input value.
IN(i) = Input value at the beginning of the intersecting segment.
IN (i+1) = Input value at the end of the intersecting segment.
OUT (i) = Output value at the beginning of the intersecting segment.
OUT (i+1) = Output value at the end of the intersecting segment.
segtot = A subscript indicating the user-entered value in SEGTOT.
1、喉部差压的折线函数
不同的静叶角度对应的喘振点是不同的,而静叶角度和喉部差压有关。因此,根据补偿后的喉部差压作为坐标的横坐标,计算出对应的出口压力作为纵坐标,纵坐标即为PID控制的设定值SP。为安全起见,通常将坐标点向下偏移7%的裕度来确定一点,将若干点相连,就形成了防喘振线。在新控制方案中,防喘振线仍采用原11点10段的折线算法,确定了近似于理论防喘振线。选用GENLIN折线函数,输入坐标值即可。具体坐标值见表2。
2、防喘振线的下移
当偏差e大于7%(即42)并且逆流报警存在,则防喘振线下移1%(即7)。为了保证风机的功效,最多下移5次,还设置了手动复位功能,即NN(3)=0。当防喘振线下移时,此时的设定值SP为折线算出的SP'减去移动次数N乘以下移量1%(即7)。即:
SP= SP'-7*N
详细程序如下:
SEQUENCE XY(HPM;POINT XY1840)
EXTERNAL PI1841,PDZ1840
PHASE AA
STEP BB
SET NN(2)=PDZ1840.PV
Q: SET NN(1)=PI1841.PV-NN(2)
IF NN(1)>=42 AND NN(3)<5 THEN(SET NN(2)=NN(2)-7;
& SET NN(3)=NN(3)+1;GOTO Q)
IF NN(3)>=5 THEN SET NN(3)=5
IF NN(1)>=42 AND NN(3)<=5 THEN(SET NN(2)=PDZ1840.PV-NN(3)*7
GOTO STEP BB
END XY
3、比例增益K自整定运算
自整定控制是调节器的参数需要根据被控对象的特性调整。原控制方案中采用折线运算,得出一条反应曲线的方法,再作以计算,得出比例增益K,送给PID调节器。根据这个要求,在TPS系统中可仍选用GENLIN折线运算块即可实现。其中公式Regulatory PV中的Calculator模块即可。具体坐标值见表2。
当偏差e大于0时(即喘振条件具备)发生喘振,K值自动置为初始值90,然后K通过和折线运算后的K'计算得出。
计算公式: K=(90×25.0)÷(K'+25.0)
笔者研究发现可采用两种方式:一是采用CL语言可实现;二是运用Logic块实现。但经分析后决定采用Logic块方案,因为逻辑块在系统中运行比CL语言占用空间和PU都少,安全可靠,负载小。逻辑功能框图如图7所示。
4、放空阀的快开慢关
放空阀的快开慢关的特性对压缩机而言尤为重要,是工艺及设备的特性所决定的。原方案在Tricon系统中实现很容易,它根据PID的输出趋势作成正常打开,缓慢关闭,而关闭是以0.1%递加而得的。即当PID的输出是开(减小)的趋势时阀正常打开;反之,即当PID的输出是关(增大)的趋势时阀的输出是以0.1%递加关闭。
但在TPS系统中,由于受各功能点的参数属性的限制,实现PID的输出快开慢关相当困难,原因是:
(1)、在同一UCN网中PID的输出连接只有以下几种情况:
A、 AO点(半点)的 .OP参数(单回路)
B、 RC点的 . X1(X2、X3、X4)参数(连手操器或选择开关)
C、 RC点的 .SP参数(串级回路)
D、 DO点的 .SO参数(脉宽调制)
E、 RC点的 .Ratio参数(比值控制)
F、 无输出
(2)、在TPS系统中PID的输出不能与下列点参数连接:
A、 Logic.NN(i)
B、 PM.NN(i)
C、 RV点参数
D、 Array.NN(i)
第(1)种情况满足不了输出快开慢关的要求,因为这几个连接点参数都达不到要求,即不能将PID输出作成动态的加减变速运动。而第(2)种情况可以满足控制要求,但却无法连接。于是问题的关键便浮出水面,即如何找到一个能将PID的输出与AO点的.OP参数相连,实现快开慢关的功能。笔者经过反复实验,最终得出结论:只有通过CL语言才能实现这种参数的连接,但只是两个PID模块之间的参数连接,否则将无法实现。这就要求:
A:主PID的输出连接置空(无连接)
B:副PID的输入用Pull关系连入主PID的输出,但不参与控制,只用于显示。副PID的输出完全由CL语言控制,其始终处于P-MAN 控制方式。
C:副PID的输出连接AO点的.OP参数。
D:CL语言要根据主PID的输出变化趋势来控制副PID的输出,实现快开慢关功能。
以上四点若能实现,则此方案完全可行。但在实际测试中发现D项中的如何判断主PID的输出变化趋势是关键、更是难点,其于三项很容易实现。为此,笔者通过AI点的上一个周期采样值LastPV可推断PID的输出很可能也有此参数。在查找了所有资料后笔者发现只有三个参数可以试运。
OPCMD=0 IDLE(Output is not being affected by Output Command)
OPCMD=1 Lower(Output is being lowered)
OPCMD=2 Raise(Output is being raised)
但在实际中发现三个参数均不行,还是达不到控制要求。
在经过反复实验后,最终不得不采用了下述方法,即在CL语言中每隔1秒钟对主PID(ASC1840)的输出作一次采样。根据二次采样的差值来判断主PID的输出是增大还是减小,来控制副PID(SENT1840)的输出,进而得到完美解决。在整个控制过程中,副PID只是起到信号传递作用。完整的程序如下:
SEQUENCE PID(HPM;POINT PM1840)
EXTERNAL ASC1840,SENT1840
PHASE AA
STEP BB
SET SENT1840.MODATTR=PROGRAM
SET SENT1840.MODE=MAN
SET SENT1840.OP=ASC1840.OP
SET NN(1)=ASC1840.OP
WAIT 1 SECS
SET NN(2)=ASC1840.OP
Q: IF NN(2)>NN(1) THEN SET SENT1840.OP=SENT1840.OP+1
IF SENT1840.OP<ASC1840.OP THEN (SET SENT1840.OP=SENT1840.OP+1;GOTO Q)
IF NN(2)<NN(1) THEN SET SENT1840.OP=SENT1840.OP-5
IF SENT1840.OP> ASC1840.OP THEN(SET SENT1840.OP=SENT1840.OP-5;GOTO Q)
IF SENT1840.OP=ASC1840.OP THEN (SET SENT1840.OP=SENT1840.OP; GOTO Q)
GOTO STEP BB
END PID
程序中可以看出,关闭时是以1%的递加式,打开时是以5%的递减式。
为安全起见,辅PID后连接了两个手操器,手操器再和AO点相连。分程控制在AO点中实现,信号分割点是44.9%。。
5、联锁停机时的喘振处理
当联锁停机时,二放空阀自动全开,程序如下:
SEQUENCE ESD(HPM;POINT PMESD)
EXTERNAL ESD,ASC1840
PHASE AA
STEP BB
IF ESD.PVFL=OFF THEN (SET ASC1840.MODATTR=OPERATOR;GOTO Q)
SET ASC1840.MODATTR=PROGRAM
SET ASC1840.MODE=MAN
SET ASC1840.OP=0
Q:GOTO STEP BB
END ESD
防喘振曲线图动态监控
在Display Builder绘图软件中,提供了基于Microsoft VB功能强大的Script语言,用于完成GUS流程图对过程变化的实时显示及过程操作。常规的动态显示很容易变化,但对某个对象而言,根据事件的动态变化而变化,则很难实现。
防喘振曲线中最关键、最难的技术是工作点和设定点的实时动态变化。这种变化是上下左右全方位的变化,而不是单方向的变化。
一、防喘振曲线绘制
笔者曾采用“抽点隐现法”实现,但效果不是很好,且很麻烦。在通篇翻阅了TPS的系统资料和做了大量实验后,最终采用了函数TRANSX和TRANSY得以实现。分别为横坐标和纵坐标,坐标值为像素值。防喘振曲线图如图8和图9所示。同时自制了控制面板,以便于操作。
其中:
l 蓝色●代表工作点
l 绿色+代表设定点
l 红线代表喘振线
l 黄线代表防喘振线
l 红线左侧代表喘振区
l 黄线右侧代表防喘振区
l 红黄两线之间为安全裕度
l Reset为防喘振偏差复位键
l MODE为调节器控制方式选择:MAN AUTO CAS
点击信号可进入该点的细目(Native Window)画面。
设定点的Script语言:
Sub OnDataChange()
ME.TRANSX=LCN.PDC1840.PV*320/25
ME.TRANSY=-LCN.ASC1840.SP*320/300
End Sub
工作点的Script语言:
Sub OnDataChange()
ME.TRANSX=LCN.PDC1840.PV*320/25
ME.TRANSY=-LCN.PI1841.PV*320/300
End Sub
防喘振线下移次数:
LCN.XY1840.NN(3)
下移复位:
Sub OnLButtonClick()
LCN.XY1840.NN(3)=0
End Sub
喘振偏差:
LCN.PI1841.pv-LCN.XY1840.NN(2)
二、仿真实验
在线模拟现场实际情况,笔者本着科学负责的态度对所做的方案进行了严细认真的测试,对第一部分介绍的防喘振的十大功能逐个核实,结果全部实现,非常成功。
图8和图9对比可发现,曲线图直观的反映出喘振前后各个参数的变化情况。尤其是设定点和工作点的变化特点。在正常状况下,设定点应始终延防喘振线波动,工作点应始终在设定点的下方。但在喘振时,图9的防喘振线已经下移了5次(防喘振偏差已超过42),设定点“+”已远离防喘振线一段距离,工作点“●”到达了喘振区。防喘振的输出最小(放空阀全开)。
操作注意事项:
(1)ASCC1840正常时处于CAS方式,因为SP值远程控制。
(2)HIC1840AB正常时处于CAS方式,处于MAN时可以手动开阀。
(3)联锁停机后,ASC1840的控制方式自动置为P-MAN程序控制。停机信号解除后,由程序控制自动转化操作员控制(置成MAN),再次启机时需操作员将ASC1840投为CAS方式。