大慶煉化公司180萬噸/年ARGG裝置三機組(軸流風機、煙機、主電機)控制系統(tǒng)是TRICONEX公司的TS3000控制系統(tǒng),如圖1,自1998年投運以來運行平穩(wěn),但自2002年控制系統(tǒng)頻繁出現燒卡的現象(參見附表),已更換各類卡件18塊,嚴重地威脅裝置的安全生產。對此,煉化公司領導非常重視,曾多次組織召開專業(yè)技術分析會,組織儀表及電氣等技術人員對整個系統(tǒng)詳細檢查,同時聯(lián)系了北京設計院、陜鼓、美國TRICONEX公司、ELLIOTT公司,及施工單位中油一公司,于2000年6月召開三天專業(yè)分析會,分析故障原因。各單位一致認為對接地系統(tǒng)及電源系統(tǒng)要進行檢查、測試和整改。并于2002年裝置停工檢修期間進行了徹底整改,耗資約30余萬元。為保證生產,公司成立技術攻關組,利用富士智能調節(jié)器及西門子S7-200PLC創(chuàng)建一套應急系統(tǒng),保證在徹底整改前事故情況下緊急啟動備機系統(tǒng)。

圖1 TRICON系統(tǒng)示意圖
借此機會,儀表專業(yè)對防喘振的源程序進行了認真的解讀,發(fā)現在TPS系統(tǒng)中完全可以實現該功能,與源程序相比,技術上更可靠,功能上更豐富,控制精度更高。在此,筆者對自動化專業(yè)應用程序的轉化和移植的思路及方案做以詳盡的闡述,旨在促進專業(yè)技術的交流與應用。
1、防喘振控制方案分析
就目前國內外煉化企業(yè)來看,防喘振控制通常用兩種方法:一是早期專用的防喘振控制器,如WORDWARD公司的505C控制器、ELLIOT公司的ASCC控制器等;二是目前常用的PLC專用軟件包。如GE公司的9070系列PLC(用Logic Master或Field Control編的軟件包)、TRICONEX公司的TS3000(用MSW311或TS1131軟件包)等。但每個廠家出于對知識產權的保護,均不會公開其防喘振控制的算法。專用的控制器只給用戶提供接口參數,專用的軟件包是用高級語言編寫的軟件包(如C語言)。用戶無法打開,只能在程序中調用。這些技術封索直接影響用戶對防喘振控制方案的深入理解,給程序的移植帶來了相當大的難度。筆者通過對多套機組喘振方案的研究,發(fā)現只有TS3000系統(tǒng)中的源程序對用戶是相對開放的,于是對其進行了反復實驗,最終弄清了其算法。這種算法僅僅是不同廠家、不同設備中眾多算法中常用的,也是相對減化的算法。
1、防喘振控制的主要功能
喉部差壓低選、出口壓力高選
喉部差壓溫度補償算法
喉部差壓和比例增益參數的折線運算
防喘振線下移功能
可遠程給定的PID運算
實現放空閥的快開慢關功能
實現兩個放空閥的分程控制
實現聯(lián)鎖停機放空閥自動打開控制
實現防喘振曲線圖
2、防喘振控制技術方案
根據測量壓縮機的喉部差壓、出口壓力、入口溫度這三量,TRICONEX有一套完整的喘振技術,該算法中氣體分子量變化不會影響機組的防喘振控制。當風機正常運行時,它的工作點應該在圖2防喘振線的下方,此時偏差e=PV-SP<0,調節(jié)器的作用方式為反作用。當工作點越過防喘振線

并在其上方時,即偏差e>=0時,則要求防喘振閥快速打開。由于防喘振閥的打開,使工作點開始回到防喘振線以下時,閥的動作又應減慢,即要求防喘振閥在開關時,是以變速動作的。在偏差e>=0時,放空閥打開的快速取決于PID參數比例增益K的自適應能力(自動增大或減?。?,如果K值不變,放空閥則以正常的速度打開(一般要求在3秒鐘之內);
而當喘振發(fā)生的趨勢得以控制時,即偏差e=<0時,放空閥則以0.1%漸進式緩慢關閉。
防喘振控制算法,是通過溫度補償后的喉部差壓值(防喘振曲線的橫坐標X軸)經過折線運算得出的出口壓力作為PID控制的設定值SP(防喘振曲線的縱坐標Y軸),來控制測量值出口壓力PV。防喘振控制的偏差e=PV-SP即為出口壓力的控制偏差。防喘振PID作用為反作用,正常狀況下偏差e<0,當e>=0時發(fā)生喘振。防喘振控制框圖如圖3所示。

當偏差e大于2%時系統(tǒng)發(fā)出喘振報警,當偏差e大于7%并且逆流報警存在,則防喘振線下移1%。為了保證風機的功效,最多下移5次,還設置了手動復位功能。當防喘振線下移時,此時的設定值SP為折線算出的SP'減去移動次數N乘以下移量1%。即:
SP= SP'-N×1%。
PID參數比例增益K自整定功能是通過折線運算實現的,共11點坐標形成3段斜坡折線得出K'。在沒有發(fā)生喘振情況下,當偏差e大于0.1%時(即喘振條件具備)發(fā)生喘振,K值自動置為初始值90,然后K通過和折線運算后的K'計算逐漸減小。計算公式:
K=(90×25.0)÷(K'+25.0)
當偏差e 小于0.1%時,K值值保持不變。在比例增益K值自動變化過程,積分T1值始終為4,微分T2值始終為0。如圖4所示。

防喘振程序的轉化和移植
功能模塊是TPS系統(tǒng)商提供的系統(tǒng)應用程序,用戶可根據需要進行選擇,然后將結構參數(功能參數和結構參數)設置好就可以調用,實現特定功能。
如高選模塊:功能是輸出等于輸入中最大的一個輸入。
其數學方程式是:
M=X1 (當X1≥X2時)
M=X2 (當X1≤X2時)
圖形描述:

風機的兩個出口壓力采用高選控制,即選擇HILOAVG(HI)算法;同樣兩個喉部差壓采用低選控制,即選擇HILOAVG(LO)算法。
筆者針對圖3的防喘振控制框圖,在ARGG中央控制室TPS系統(tǒng)中,逐個功能反復實驗最終確立新的算法方框圖,如圖5所示。
結合圖5的框圖功能創(chuàng)建了一些功能點,如表1所示。
本控制算法最大的技術難點,也是核心技術是:
防喘振線的形成
比例增益K自整定運算
放空閥的快開慢關功能
防喘振曲線工作點的動態(tài)干預
下面就作以詳細的闡述。
一、溫壓補償算法
在TPS系統(tǒng)中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。



表1喘振功能點清單
二、防喘振線的確定
原方案采用折線運算得出,這種控制算法在DCS理論上稱之為預測控制,它采用工業(yè)過程中較易得到的對象階躍響應曲線,把它們在采樣時刻的一系列參數作為控制對象的設定值,從而使在未來一段時間內使測量值與經過“柔化”后的設定值之間的偏差最小。不同時刻采樣的設定值連成的曲線是經過在線“柔化”后的一條所期望的平緩曲線,通常稱為參考軌跡。
原控制方案中的防喘振線既是由11點坐標構成的一條參考軌跡。在TPS 系統(tǒng)中的Regulatory PV運算類模塊中就有專門的折線函數運算General Linearization(GENLIN)。其功能圖如圖6所示。

圖6 TPS系統(tǒng)中GENLIN 功能圖
其中:
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):

Solution C (P1 intersects any but 1st and last segment):

Solution D (P1 intersects the last segment):

其中變量:
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自整定運算
自整定控制是調節(jié)器的參數需要根據被控對象的特性調整。原控制方案中采用折線運算,得出一條反應曲線的方法,再作以計算,得出比例增益K,送給PID調節(jié)器。根據這個要求,在TPS系統(tǒng)中可仍選用GENLIN折線運算塊即可實現。其中公式Regulatory PV中的Calculator模塊即可。具體坐標值見表2。

表2 參考軌跡坐標
當偏差e大于0時(即喘振條件具備)發(fā)生喘振,K值自動置為初始值90,然后K通過和折線運算后的K'計算得出。
計算公式: K=(90×25.0)÷(K'+25.0)
筆者研究發(fā)現可采用兩種方式:一是采用CL語言可實現;二是運用Logic塊實現。但經分析后決定采用Logic塊方案,因為邏輯塊在系統(tǒng)中運行比CL語言占用空間和PU都少,安全可靠,負載小。邏輯功能框圖如圖7所示。
4、放空閥的快開慢關
放空閥的快開慢關的特性對壓縮機而言尤為重要,是工藝及設備的特性所決定的。原方案在Tricon系統(tǒng)中實現很容易,它根據PID的輸出趨勢作成正常打開,緩慢關閉,而關閉是以0.1%遞加而得的。即當PID的輸出是開(減小)的趨勢時閥正常打開;反之,即當PID的輸出是關(增大)的趨勢時閥的輸出是以0.1%遞加關閉。
但在TPS系統(tǒng)中,由于受各功能點的參數屬性的限制,實現PID的輸出快開慢關相當困難,原因是:
(1)、在同一UCN網中PID的輸出連接只有以下幾種情況:
AO點(半點)的 .OP參數(單回路)
RC點的 . X1(X2、X3、X4)參數(連手操器或選擇開關)
RC點的 .SP參數(串級回路)
DO點的 .SO參數(脈寬調制)
RC點的 .Ratio參數(比值控制)
無輸出
(2)、在TPS系統(tǒng)中PID的輸出不能與下列點參數連接:
Logic.NN(i)
PM.NN(i)
RV點參數
D、 Array.NN(i)

圖 7 邏輯功能框圖
第(1)種情況滿足不了輸出快開慢關的要求,因為這幾個連接點參數都達不到要求,即不能將PID輸出作成動態(tài)的加減變速運動。而第(2)種情況可以滿足控制要求,但卻無法連接。于是問題的關鍵便浮出水面,即如何找到一個能將PID的輸出與AO點的.OP參數相連,實現快開慢關的功能。筆者經過反復實驗,最終得出結論:只有通過CL語言才能實現這種參數的連接,但只是兩個PID模塊之間的參數連接,否則將無法實現。這就要求:
A:主PID的輸出連接置空(無連接)
B:副PID的輸入用Pull關系連入主PID的輸出,但不參與控制,只用于顯示。副PID的輸出完全由CL語言控制,其始終處于P-MAN 控制方式。
C:副PID的輸出連接AO點的.OP參數。
D:CL語言要根據主PID的輸出變化趨勢來控制副PID的輸出,實現快開慢關功能。
以上四點若能實現,則此方案完全可行。但在實際測試中發(fā)現D項中的如何判斷主PID的輸出變化趨勢是關鍵、更是難點,其于三項很容易實現。為此,筆者通過AI點的上一個周期采樣值LastPV可推斷PID的輸出很可能也有此參數。在查找了所有資料后筆者發(fā)現只有三個參數可以試運。
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)
但在實際中發(fā)現三個參數均不行,還是達不到控制要求。
在經過反復實驗后,最終不得不采用了下述方法,即在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、聯(lián)鎖停機時的喘振處理
當聯(lián)鎖停機時,二放空閥自動全開,程序如下:
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
防喘振曲線圖動態(tài)監(jiān)控
在Display Builder繪圖軟件中,提供了基于Microsoft VB功能強大的Script語言,用于完成GUS流程圖對過程變化的實時顯示及過程操作。常規(guī)的動態(tài)顯示很容易變化,但對某個對象而言,根據事件的動態(tài)變化而變化,則很難實現。
防喘振曲線中最關鍵、最難的技術是工作點和設定點的實時動態(tài)變化。這種變化是上下左右全方位的變化,而不是單方向的變化。
一、防喘振曲線繪制
筆者曾采用“抽點隱現法”實現,但效果不是很好,且很麻煩。在通篇翻閱了TPS的系統(tǒng)資料和做了大量實驗后,最終采用了函數TRANSX和TRANSY得以實現。分別為橫坐標和縱坐標,坐標值為像素值。防喘振曲線圖如圖8和圖9所示。同時自制了控制面板,以便于操作。
其中:
o 藍色●代表工作點
o 綠色+代表設定點
o 紅線代表喘振線
o 黃線代表防喘振線
o 紅線左側代表喘振區(qū)
o 黃線右側代表防喘振區(qū)
o 紅黃兩線之間為安全裕度
o Reset為防喘振偏差復位鍵
o MODE為調節(jié)器控制方式選擇: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)
二、仿真實驗
在線模擬現場實際情況,筆者本著科學負責的態(tài)度對所做的方案進行了嚴細認真的測試,對第一部分介紹的防喘振的十大功能逐個核實,結果全部實現,非常成功。
圖8和圖9對比可發(fā)現,曲線圖直觀的反映出喘振前后各個參數的變化情況。尤其是設定點和工作點的變化特點。在正常狀況下,設定點應始終延防喘振線波動,工作點應始終在設定點的下方。但在喘振時,圖9的防喘振線已經下移了5次(防喘振偏差已超過42),設定點“+”已遠離防喘振線一段距離,工作點“●”到達了喘振區(qū)。防喘振的輸出最?。ǚ趴臻y全開)。
操作注意事項:
(1)ASCC1840正常時處于CAS方式,因為SP值遠程控制。
(2)HIC1840AB正常時處于CAS方式,處于MAN時可以手動開閥。
(3)聯(lián)鎖停機后,ASC1840的控制方式自動置為P-MAN程序控制。停機信號解除后,由程序控制自動轉化操作員控制(置成MAN),再次啟機時需操作員將ASC1840投為CAS方式。

圖8未喘振時的狀態(tài)

圖9 喘振時的狀態(tài)
結束語
由于TPS系統(tǒng)可靠性高,易操作性強,組態(tài)靈活,功能強大而豐富,因此便于組態(tài)各種復雜控制。本論文所闡述的壓縮機防喘振功能在DCS上的實現,是化工自動化領域程序移植的突破性嘗試,在科技功關方面邁出了重要一步!
附表:系統(tǒng)故障一覽表



