中國(guó)石油大學(xué)(華東)
PipephaseAPI在油氣田集輸系統(tǒng)上的應(yīng)用
趙鵬飛 王武昌 李玉星中國(guó)石油大學(xué)(華東)
Pipephase軟件廣泛用于油氣生產(chǎn)、集輸網(wǎng)絡(luò)的分析計(jì)算,其非中文用戶(hù)界面及建模過(guò)程較為繁瑣,這使得很多工程人員短時(shí)間內(nèi)無(wú)法準(zhǔn)確、高效地使用此款軟件,但很多情況下還希望借助該軟件的管網(wǎng)分析能力,編制更加實(shí)用、高效的應(yīng)用程序。針對(duì)此問(wèn)題,對(duì)PipephaseAPI接口技術(shù)進(jìn)行了解析,確定了兩種接口調(diào)用方式和主要API函數(shù)的用法。基于VB語(yǔ)言和COMAPI編制了單管環(huán)狀摻水集油工藝參數(shù)優(yōu)化計(jì)算的示例軟件,給出了詳細(xì)的實(shí)現(xiàn)方法。與PipephaseEGUI相比,示例軟件操作簡(jiǎn)便、分析效率高,計(jì)算功能也得到了擴(kuò)展。
Pipephase;COMAPI;VB;單管環(huán)狀摻水流程
Pipephase軟件廣泛用于油氣生產(chǎn)、集輸網(wǎng)絡(luò)的分析計(jì)算,其非中文用戶(hù)界面及建模過(guò)程較為繁瑣,這使得很多工程人員短時(shí)間內(nèi)無(wú)法準(zhǔn)確、高效地使用此款軟件,但很多情況下還希望借助該軟件的管網(wǎng)分析能力,編制更加實(shí)用、高效的應(yīng)用程序。為解決此問(wèn)題,對(duì)PipephaseAPI接口調(diào)用方法及主要函數(shù)進(jìn)行了解析,確定了兩種接口調(diào)用方式和主要API函數(shù)的用法。基于VB語(yǔ)言和COM API編制了單管環(huán)狀摻水集油工藝參數(shù)優(yōu)化計(jì)算的示例軟件,給出了詳細(xì)的實(shí)現(xiàn)方法。
Pipephase軟件接口基于組件對(duì)象模型技術(shù),用戶(hù)可使用C++、VB、Fortran語(yǔ)言對(duì)Pipephase API接口進(jìn)行開(kāi)發(fā)[1]。軟件提供兩種不同類(lèi)型的COM組件:進(jìn)程內(nèi)組件FF_APIServerDLL.dll和進(jìn)程外組件FF_APIServerEXE.exe。使用.dll時(shí),易引起程序間的沖突且不允許多個(gè)Pipephase實(shí)例同時(shí)模擬;使用.exe時(shí),執(zhí)行效率雖不高但穩(wěn)定性好,可避免上述問(wèn)題的發(fā)生。在使用FF_APIServerEXE. exe組件時(shí),有以下兩種調(diào)用方式:
(1)將FF_APIServerEXE.exe組件對(duì)象分配給聲明為Object類(lèi)型的變量。其代碼為:DimMyPipe AsObject=CreateObject("FF_APIServerEXE.9.5")。
(2)添加對(duì)FF_APIServerEXE.exe的引用。該方法可使用VisualStudioIDE的智能提示功能,編譯器將自動(dòng)列出對(duì)象的方法、屬性等,這為編程提供了方便。其代碼為:DimMyPipeAs FF_APIServerEXELib.Pipephase,MyPipe=New FF_APIServerEXELib.Pipephase。PipephaseAPI接口包含Execute Command、Get_FF_VALS等16個(gè)函數(shù)。用戶(hù)可以通過(guò)對(duì)函數(shù)參數(shù)的設(shè)置在自行開(kāi)發(fā)的軟件中實(shí)現(xiàn)與Pipephase完全相同的功能。每個(gè)API函數(shù)在完成執(zhí)行后均返回一個(gè)HRESULT類(lèi)型的數(shù)據(jù),用戶(hù)可使用GetLastExitNumber和GetLastExit Message函數(shù)獲取最近一次函數(shù)的執(zhí)行情況。
2.1單管環(huán)狀摻水集油模型
摻水集油是國(guó)內(nèi)外油田輸送高黏、易凝原油時(shí)普遍采用的一種集油工藝。但該工藝能耗較高,需要確定合理的摻水量、摻水溫壓等工藝參數(shù)[2]。圖1為某油田單管環(huán)狀摻水集油的Pipephase流程圖,在環(huán)起點(diǎn)摻入熱水以改善管內(nèi)流動(dòng)狀況,油氣水混合物最后返回轉(zhuǎn)油站進(jìn)行分離外輸。該集油環(huán)長(zhǎng)1955m,共含有3口井,集油環(huán)產(chǎn)液量約為6.5t/d,回油溫度要求不低于35℃,回油壓力要求在255kPa左右。

圖1 某油田單管環(huán)狀摻水集油Pipephase流程
2.2 設(shè)計(jì)思路與實(shí)現(xiàn)方法
使用VB語(yǔ)言,在VisualStudio2012集成開(kāi)發(fā)環(huán)境下編制軟件。Pipephase模型選用Network模型,流體類(lèi)別為Compositional。軟件功能包括參數(shù)設(shè)置、運(yùn)行模擬、結(jié)果處理及顯示三個(gè)方面,軟件設(shè)計(jì)流程如圖2所示。

圖2 軟件設(shè)計(jì)流程
設(shè)置參數(shù)前,需要用Set_FF_VALS函數(shù)為模擬指定關(guān)鍵字輸入文件及初始化文件,并用Execute-Command函數(shù)依次完成以下命令:"Initialize"、"CleanStart"、"GUIDatabaseOpen"、"RunPreprocessor"、"RunThermoModule"、"RunCrossChecker"、"RunCalculations",這些命令完成了模擬的初始化及Pipephase運(yùn)行環(huán)境的創(chuàng)建,并對(duì)實(shí)例的數(shù)學(xué)模型進(jìn)行檢查。
2.2.1 參數(shù)設(shè)置
可以直接使用API函數(shù)Set_FF_VALS對(duì)參數(shù)進(jìn)行設(shè)置。以管道環(huán)境溫度的設(shè)置為例:
CallMyPipe.Set_PPDATR("Pipe","AMBIENTTEMP",cName,0,"",Rabuff,Iabuff,7,3)。
上述代碼中數(shù)字7和3含義分別為溫度單位選擇、攝氏度。還可使用VB文件操作語(yǔ)句直接修改關(guān)鍵字輸入文件的方式完成參數(shù)設(shè)置,如圖2中虛線所示,采用這種方式可以避開(kāi)使用較為復(fù)雜的API函數(shù)。但注意在設(shè)置某一變量時(shí),需要同時(shí)修改inp文件中所有該指定變量。
2.2.2 運(yùn)行模擬
CallMyPipe.ExecuteCommand("RerunCalculations","")。
2.2.3 結(jié)果處理及顯示
運(yùn)行結(jié)束后,可使用Get_FF_VALS函數(shù)獲取運(yùn)行結(jié)果,以回油壓力的獲取為例:
CallMyPipe.Get_PPDATR("NODE","PRESSURE",cName,0,"",rabuff,iabuff,9,8)
圖2中雙點(diǎn)劃線所示為另一種獲取結(jié)果的方式,將運(yùn)行結(jié)果導(dǎo)入數(shù)據(jù)庫(kù)中,通過(guò)操作數(shù)據(jù)庫(kù),可獲得更詳盡的數(shù)據(jù)并減少了數(shù)據(jù)損毀的可能性。為提高代碼的穩(wěn)定性及可測(cè)試性,使用GetLastExitNumber函數(shù)并結(jié)合VBIf…Then…GoToFailed/ Successful語(yǔ)句對(duì)部分API函數(shù)的執(zhí)行情況做出判斷,必要時(shí)拋出異常。完成全部計(jì)算后,為避免下次運(yùn)行時(shí)出現(xiàn)錯(cuò)誤,需要使用Shell函數(shù)關(guān)閉FF_APIServerEXE.exe進(jìn)程:
Shell("taskkill/imFF_APIServerEXE.exe/f",vbHide)。
2.3 界面設(shè)計(jì)與計(jì)算實(shí)例
用戶(hù)在輸入油井及管線參數(shù)、摻水溫壓、摻水量后,點(diǎn)擊運(yùn)行,軟件將在后臺(tái)調(diào)用Pipephase模型進(jìn)行計(jì)算,并將回油溫壓等運(yùn)行結(jié)果返回主界面。與PipephaseGUI相比,該軟件存在兩項(xiàng)優(yōu)勢(shì):參數(shù)設(shè)置簡(jiǎn)便快速,結(jié)合批量計(jì)算的方法,使得分析效率得到極大提高,這種優(yōu)勢(shì)在計(jì)算復(fù)雜管網(wǎng)時(shí)顯得尤為重要;軟件可利用運(yùn)行結(jié)果,結(jié)合VB程序,計(jì)算月耗氣量、耗電量和運(yùn)行費(fèi)用,便于用戶(hù)確定最優(yōu)運(yùn)行方案,在功能上得到了擴(kuò)展。
表1是環(huán)境溫度為-6℃(冬季)時(shí)摻水量與耗電量的計(jì)算實(shí)例。從表1中可以看出,隨著摻水溫度的降低,摻水量與耗電量不斷增加,耗氣量與運(yùn)行費(fèi)則用先降低后增大。通過(guò)對(duì)比運(yùn)行費(fèi)用的大小,建議該油田冬季摻水溫度維持在70℃左右。

表1 軟件計(jì)算實(shí)例
(1)基于PipephaseAPI接口編制了摻水集油工藝參數(shù)優(yōu)化計(jì)算的示例軟件,驗(yàn)證了接口技術(shù)的可行性及穩(wěn)定性。示例軟件操作簡(jiǎn)便,分析效率高,未接觸過(guò)Pipephase的人員亦可使用。
(2)PipephaseGUI處理復(fù)雜管網(wǎng)時(shí),模型及參數(shù)設(shè)置工作量大且易出錯(cuò)。此時(shí)可以考慮使用API接口編制便于操作的應(yīng)用程序。借助Pipephase軟件先進(jìn)的網(wǎng)絡(luò)算法,可開(kāi)發(fā)更加實(shí)用、高效的油氣田集輸計(jì)算軟件。
[1]BaruaS,LansanganR.Multi-PhaseCoriolisFlowmeter:U.S.Patent7,614,312[P].2009-11-10.
[2]李心凱,孫延明,胡琪,等.摻水集油參數(shù)優(yōu)化研究[J].石油化工應(yīng)用,2013,32(5):115-117.
(欄目主持 張秀麗)
10.3969/j.issn.1006-6896.2014.10.044