劉立新 ,蘇 鋒 ,肖仕紅,陳 斌,張汝彬,楊 安,徐著華
(1.海洋石油工程股份有限公司,天津 300451;2.西南石油大學 機電工程學院,四川 成都 610500;3.四川海洋特種技術(shù)研究所,四川 成都 610043)
隨著海洋油氣勘探開發(fā)從淺海發(fā)展到深水甚至超深水域,越來越多的海上油氣田采用水下生產(chǎn)系統(tǒng)開發(fā)。水下生產(chǎn)系統(tǒng)開發(fā)屬于高風險和高技術(shù)領域,開發(fā)過程中幾乎不能容忍失敗,否則代價極其高昂[1]。作為一個復雜的系統(tǒng)工程,單靠傳統(tǒng)設計難以進行整體分析和評估,需借助計算機仿真技術(shù)實現(xiàn)系統(tǒng)設計和優(yōu)化設計;此外,隨著水下控制路徑的不斷增加,傳統(tǒng)的測試難以模擬真實的控制系統(tǒng)和測試環(huán)境,無法準確驗證到貨系統(tǒng)的性能,需借助仿真測試驗證[2-3]。目前,中海油、浙江大學、中國石油大學等研究機構(gòu)主要利用AMESim 軟件或SimulationX 軟件進行水下液控系統(tǒng)的仿真研究[4-7]。AMESim 軟件無專門的水下液壓元件庫且軟件設計過程繁瑣,為此,中海油和浙江大學聯(lián)合對AMESim 軟件進行了二次開發(fā)。開發(fā)者根據(jù)水下生產(chǎn)系統(tǒng)特點,在AMESim 軟件中將水下生產(chǎn)相關的液壓元件整合成獨立的模塊并封裝,建成水下液壓元件庫,并設計VB接口程序,從而開發(fā)出了專業(yè)的設計軟件平臺。但其開發(fā)工作量大,且相關開發(fā)軟件僅為少數(shù)研究者掌握。SimulationX 軟件是一款具有專門的水下仿真環(huán)境和相關水下液壓元件庫的仿真軟件,但該軟件人機交互性差,數(shù)據(jù)存取不方便,且專業(yè)化程度高,再加上SimulationX 仿真軟件目前在國內(nèi)應用較少,相關參考資料欠缺[8]。這對于水下液壓系統(tǒng)設計人員,特別是測試人員來說,很難掌握或工作量大。
為了讓更多人員方便進行水下生產(chǎn)設備的設計或測試工作,或者能把精力集中在設計和測試工作本身,本研究針對SimulationX 軟件和VC 軟件的特點,研究出基于VC 的SimulationX 軟件二次開發(fā)方法,并將其應用在水下液控系統(tǒng)中。
SimulationX 軟件采用功能模塊化建模策略、支持通用的建模語言Modelica和具有開放的外部接口,其接口使SimulationX 的模型與CAD、CAM、CAE 等軟件兼容。同時能提供模型導出功能,整個SimulationX 模型能以C 代碼形式導出,并可生成獨立的可執(zhí)行文件、具有固定文件名及文件類型的模型參數(shù)文件(parameters.txt)、仿真控制參數(shù)文件(solversettings.txt)和仿真結(jié)果文件(Outputs1.txt)。所生成的可執(zhí)行文件能夠在無SimulationX 軟件環(huán)境下運行。
然而,SimulationX 軟件建模及其參數(shù)設置需要較強的專業(yè)知識;同時,仿真模型參數(shù)眾多,而SimulationX 軟件中只默認一個輸入值,若與默認值不同,則需手工輸入,當被設計設備或被測設備的參數(shù)重復出現(xiàn)時易造成操作繁瑣,重復工作量大;此外,軟件輸出的結(jié)果文件以數(shù)值形式保存,不便于直觀展現(xiàn)結(jié)果變量的動態(tài)性能,且不便于文檔后期查閱、分析。
Visual C++是當前應用最廣泛的開發(fā)軟件之一,具有優(yōu)秀的界面設計和強大的數(shù)據(jù)處理和存取功能,開發(fā)出的程序可移植能力強。VC 軟件的優(yōu)勢可以用于彌補SimulationX 軟件的缺陷。因此,可通過VC 軟件進行SimulationX 軟件的二次開發(fā),編制出有系統(tǒng)針對性的仿真分析或測試軟件。
本研究通過分析SimulationX 軟件和VC 軟件特點,確定基于VC 的SimulationX 軟件的二次開發(fā)流程如圖1 所示。
圖1 軟件二次開發(fā)流程圖
不同油氣田,其水下液控系統(tǒng)不同,但基于SimulationX 二次開發(fā)的方法相同。本研究以分析水下基本液控系統(tǒng)中水下閘閥執(zhí)行器的壓力特性來優(yōu)選執(zhí)行器參數(shù)為例,進行SimulationX 二次開發(fā)設計。
水下液控系統(tǒng)主要有直接液壓式控制系統(tǒng)、先導式液壓控制系統(tǒng)和復合電液控制系統(tǒng)三大類。其中,最復雜且深海開采中最常用的是復合電液控制系統(tǒng),其液壓控制原理[9]為:液壓動力單元(HPU)出口的液壓液通過水面控制纜終端(TUTA)進入臍帶纜后到達水下分配單元,通過水下液壓分配單元分配后傳輸?shù)礁魃a(chǎn)設施上的水下控制模塊(SCM)(或再通過分支臍帶纜輸送至下一個水下分配單元后再傳輸?shù)絊CM),然后由SCM 引出的液壓管線控制水下執(zhí)行器的運動,再通過執(zhí)行器控制對應的水下閥門的啟閉。不同的油氣田開發(fā),其控制距離、水下井口布置、遠程控制閥門數(shù)等都不同,但其水下液控系統(tǒng)都是唯一的。不過,相同水下井口布置和遠程控制閥數(shù)可以建立相同的仿真模型。根據(jù)水下液控系統(tǒng)和建模的特點,水下液控系統(tǒng)仿真模型實際上是由基本液控系統(tǒng)模型[10](該模型如圖2 所示)與分支模塊組成。圖2 中,基本液控系統(tǒng)模型包括HPU、節(jié)流閥(除了表示節(jié)流閥本身外,還可以用來表述液阻模型,如過濾器、接頭、彎頭等,TUTA、水下分配單元也可簡化為節(jié)流閥單元)、臍帶纜、水下蓄能器、水下電磁閥、水下閥和連接管線組成。復雜的液控系統(tǒng)只需在基本液控模型上增加水下蓄能器、水下電磁閥和水下閥等分支模塊。
圖2 水下基本液控系統(tǒng)模型
本研究在SimulationX 軟件里建立了水下基本液控系統(tǒng)模型和設置完初始參數(shù)后,下一步需進行C 代碼輸出設置。開發(fā)的關鍵步驟如下:
(1)在SimulationX 菜單Export(輸出)命令中單擊“C-Code”(C—代碼)命令,則彈出的Code Export Wizard(代碼輸出向?qū)?操作界面如圖3 所示。
圖3 Code Export Wizard 界面
(2)確定Project Type(工程類型)。SimulationX軟件可輸出14 種工程類型,以滿足不同應用軟件和硬件的需求。本研究選用“Executable Model”(可執(zhí)行模型)工程,該工程可輸出帶求解器的C 代碼源程序,源程序經(jīng)過編譯后生成可執(zhí)行文件。
(3)設置Project 界面內(nèi)容。圖3 中,最左側(cè)列舉出了該工程實現(xiàn)C 代碼輸出所需完成的主要操作,中間部分則為工程類型,最右側(cè)主要由用戶根據(jù)測試需要確定的工程名稱、工程輸出路徑、求解器類型和數(shù)據(jù)輸出方式。SimulationX 提供了Sundials CVODE(外部求解器)、ITI Fixed-Step Solvers(固定步長求解器)和ITI Standard Solver(ITI 標準求解器)3 種求解器。外部求解器適用于沒有太多中斷的剛性模型,與其他求解器相比,求解速度更快;固定步長求解器主要用于測試模型的實時性能,用于實時仿真;ITI 標準求解器適用于非剛性和剛性模型,相對外部求解器,更適用于含有中斷的模型,計算的準備較快,但計算比外部求解器稍慢。數(shù)據(jù)輸出方式選擇框中有7 種方式,包含Save all(所有數(shù)據(jù))、Save equidistant(等最小輸出步長)、Last Value(最后結(jié)果)等方式。該實例設置的Project 界面內(nèi)容如圖3 所示,其工程名稱為“fangzhen”,求解器為“ITI Standard Solver”,數(shù)據(jù)輸出方式為“Save equidistant”。
(4)Inputs(動態(tài)參數(shù)輸入)界面內(nèi)容不適用于本工程類型,該界面不需設置,直接進入下一界面。
(5)設置Outputs(結(jié)果輸出)界面內(nèi)容,該界面如圖4 所示。圖4 的Elements(單元)框中列舉出了仿真模型中所有單元能動態(tài)輸出結(jié)果的變量,用戶可通過雙擊對應變量或鼠標拖曳到Selection(選擇框)里,以確定仿真最終輸出的結(jié)果變量。該界面列舉出的所有參數(shù)(未含表達式)都可被選擇,選項數(shù)不受限,但實際選擇的參數(shù)由本研究所關心的對象確定。該實例主要研究水下閘閥執(zhí)行器的壓力特性,則需選擇SCM 蓄能器壓力、執(zhí)行器開啟腔壓力、執(zhí)行器關閉腔壓力和執(zhí)行器位置作為輸出的結(jié)果變量。
圖4 Outputs 界面
(6)設置Parameters(參數(shù)輸出)界面內(nèi)容。Elements 框中列舉出了仿真模型中能參數(shù)化的所有參數(shù),同Outputs 操作一樣,通過雙擊對應變量或鼠標拖曳到Selection 里。二次開發(fā)的仿真模型是固定模型,水下液控設備設計中需優(yōu)化的參數(shù)和測試系統(tǒng)中有變化的參數(shù)都需列舉在選擇框里。該實例的目的是優(yōu)選執(zhí)行器參數(shù),則選擇執(zhí)行器參數(shù)作為Parameters 中的參數(shù)。在執(zhí)行第7 步前,需為所有仿真參數(shù)賦初始值,Parameters 定義外的參數(shù)值固化在仿真模型中(該實例中水下液控系統(tǒng)的主要參數(shù)[11]如表1 所示)。
(7)完成了前面的設置后,點擊Code Generation(代碼生成)命令??梢杂^察到,在輸出目錄下產(chǎn)生了大量相關文件,這些文件可用于在目標平臺上的進一步處理,如編譯,鏈接等。其中,源代碼文件fangzhen.c包含了仿真模型的所有信息,Parameters.txt 記錄了Parameters 界面中選擇框里的參數(shù)符號及其賦值(Parameters.txt 文件內(nèi)容如圖5 所示,其參數(shù)初始值設置主要參考文獻[4]和SimulationX 軟件默認值,其數(shù)值單位為Parameters.txt 文件默認單位,如長度單位為m,壓強單位為Pa),solversettings.txt 記錄了仿真控制參數(shù)中的相關信息。
表1 水下液控系統(tǒng)主要參數(shù)
圖5 Parameters.txt 文件內(nèi)容
(8)生成可執(zhí)行文件和仿真結(jié)果文件。計算機中需安裝VC 軟件作為開發(fā)平臺,將源代碼文件編譯為可執(zhí)行文件。有兩種編譯方法:第一種方法:如計算機中已安裝VS2010 軟件,則在“Complier”(編譯器)中選擇“Microsoft Visual C/C++2010”(支持從VC6 到VC2010 的所有版本),再點擊“Build”(編譯)則可生成可執(zhí)行文件,之后點擊“Run”(運行),則生成的可執(zhí)行文件自動調(diào)用包含Parameters.txt和solversettings.txt 文件,并生成Outputs1.txt 文件,記錄Outputs 中選擇框里確定的參數(shù)的動態(tài)變化值。第二種方法:直接打開Code Generation 命令生成的fangzhen.dsw 工程文件進入編譯平臺,調(diào)試編譯為可執(zhí)行仿真程序,再運行產(chǎn)生Outputs1.txt 文件。
因可執(zhí)行文件在每次運行時都會調(diào)用模型參數(shù)文件和仿真控制參數(shù)文件,同時會產(chǎn)生或更新仿真結(jié)果參數(shù)文件。因此,筆者可通過修改模型參數(shù)文件和仿真控制參數(shù)文件參數(shù)值來完成不同設計參數(shù)的優(yōu)化或不同的測試系統(tǒng)。VC 操作軟件至少包括仿真數(shù)據(jù)輸入、仿真運行和仿真結(jié)果輸出3個功能模塊,其模塊對話框的設置需參照C 代碼輸出設置進行。
2.3.1 仿真數(shù)據(jù)輸入模塊設置
仿真數(shù)據(jù)輸入模塊輸入框的設置由C 代碼輸出的模型參數(shù)文件和仿真控制參數(shù)文件界定,包含文件中所有參數(shù)的輸入,可通過多個對話框分類實現(xiàn)。同時,對話框內(nèi)設置“保存”命令,當用戶點擊“保存”命令時,VC 更新同一文件夾的模型參數(shù)文件和仿真控制參數(shù)文件內(nèi)相應參數(shù)的數(shù)值。此外,軟件建立測試件模型庫,之前輸入過的測試件參數(shù)可以直接整體調(diào)入到數(shù)據(jù)輸入框中,以減輕輸入工作量。
2.3.2 仿真運行模塊設置
VC 軟件通過ShellExecute 函數(shù)來調(diào)用可執(zhí)行文件并運行,其調(diào)用命令為:
ShellExecute(NULL,_T(" open"),(FilePath1),NULL,(FilePath2),SW_SHOWNORMAL)
其中:FilePath1—可執(zhí)行文件路徑,F(xiàn)ilePath2—仿真結(jié)果輸出路徑。系統(tǒng)通過調(diào)用命令驅(qū)動可執(zhí)行文件運行,并讀取同目錄下的Parameters.txt 文件和solversettings.txt 文件,運行完成后在指定位置輸出或更新仿真結(jié)果文件。
2.3.3 仿真結(jié)果輸出模塊設置
本研究在仿真結(jié)果輸出模塊中設置圖形框,以顯示由SimulationX 軟件的Outputs 命令界定的結(jié)果變量曲線。同時設置有“圖像保存”按鈕,實現(xiàn)圖像的單獨保存。系統(tǒng)可根據(jù)用戶需求設置多個仿真結(jié)果輸出界面,以便于分析對比。該實例仿真結(jié)果輸出界面可用于設置仿真結(jié)果輸出界面(同時顯示SCM 蓄能器壓力、執(zhí)行器開啟腔壓力、執(zhí)行器關閉腔壓力和執(zhí)行器位置曲線)和結(jié)果變量的多狀態(tài)單參數(shù)曲線輸出界面。
此外,二次開發(fā)軟件設置“結(jié)果保存”對話框,可以將與設計或測試相關的信息,如時間、對象、結(jié)果等信息以文字或圖片的形式保存在Word 文檔里,方便文檔后期查閱、分析。
本研究按照2.2 節(jié)和2.3 節(jié)所研究的開發(fā)方法,開發(fā)出該實例的二次開發(fā)仿真軟件。操作者打開仿真軟件,在仿真數(shù)據(jù)輸入操作界面默認執(zhí)行器參數(shù)值和默認或修改仿真控制參數(shù),然后點擊仿真運行操作按鈕,待仿真運行結(jié)束后,進入仿真結(jié)果輸出操作界面??蛇x擇仿真結(jié)果輸出命令,操作界面上顯示本實例當前執(zhí)行器參數(shù)下水下閘閥執(zhí)行器的壓力特性(仿真結(jié)果輸出界面如圖6 所示)。
圖6 仿真結(jié)果輸出界面
其曲線變化趨勢與參考文獻[4]基本一致。操作者可通過分析所獲取的曲線特點判斷水下閘閥執(zhí)行器參數(shù)是否滿足水下液壓系統(tǒng)的要求。
此外,還可通過在仿真數(shù)據(jù)輸入操作界面上變換執(zhí)行器參數(shù)值,來優(yōu)選執(zhí)行器參數(shù)。如,修改執(zhí)行器彈簧預緊力大小,可獲取不同彈簧預緊力下執(zhí)行器的壓力特性,不同彈簧預緊力下執(zhí)行器的位置曲線如圖7所示。從圖7 中可以看出,在預緊力小于50 kN 時,執(zhí)行器不能完全關閉;預緊力大于160 kN 時,執(zhí)行器不能打開;預緊力在50 kN~160 kN 之間時,執(zhí)行器能夠完全打開并且完全關閉。則通過執(zhí)行器位置曲線初步確定彈簧預緊力取值區(qū)間為50 kN~160 kN。從圖7 中還可以看出,隨著預緊力增大,執(zhí)行器開啟時間變長,關閉時間縮短。再結(jié)合軟件生成的壓力曲線和彈簧疲勞壽命分析,則可快速優(yōu)選出彈簧預緊力。同理,還可以修改其他執(zhí)行器參數(shù)并分析相應結(jié)果曲線,實現(xiàn)參數(shù)優(yōu)選。
圖7 不同彈簧預緊力下執(zhí)行器的位置曲線
鑒于SimulationX 軟件是一款具有專門的水下仿真環(huán)境和相關的水下液壓元件庫的仿真軟件,及其所具備的C 代碼輸出特性,結(jié)合VC 軟件強大的界面設計和數(shù)據(jù)處理能力,筆者研究出了利用VC 軟件進行SimulationX 軟件的二次開發(fā)方法,并編制了二次開發(fā)流程。
本研究以水下液控系統(tǒng)仿真為例,明確了SimulationX 軟件輸出文件的操作步驟,以及VC 三大功能模塊的設置內(nèi)容和方法,并進行了實例應用。其開發(fā)方法簡單、易行,開發(fā)出的軟件操作方便且易為一般人掌握,有助于水下生產(chǎn)設備的設計人員或測試工作人員的高效運用,加速水下生產(chǎn)裝備的國產(chǎn)化或安全運行。
[1]余國核,周美珍,程寒生.水下執(zhí)行器液壓控制仿真[J].機床與液壓,2010,38(11):116-118.
[2]周美珍,程寒生,余國核,等.水下生產(chǎn)復合電液控制液壓仿真分析研究[C]//第十四屆中國海洋(岸)工程學術(shù)討論會論文集.北京:海洋出版社,2009:425-428.
[3]張 濤,劉立新,劉冬冬,等.基于AMESim 的深水液壓控制仿真分析研究[C]//第十五屆中國海洋(岸)工程學術(shù)討論會論文集.北京:海洋出版社,2011:602-605.
[4]周美珍,程寒生,余國核.水下執(zhí)行機構(gòu)的液壓控制研究[J].中國海洋平臺,2009,24(3):31-34.
[5]李華鳳,顧臨怡,李 林.應用于水下生產(chǎn)系統(tǒng)的控制閥設計與仿真[J].輕工機械,2010,28(4):51-53.
[6]周美珍,高 明,王宇臣,等.水下生產(chǎn)設施液壓控制仿真系統(tǒng)[J].機電工程,2012,29(12):1414-1418.
[7]胡雪峰,封延松.電液復合式控制系統(tǒng)的組成及分析工況[J].中國造船,2012,53(S1):189-199.
[8]劉艷芳.SimulationX 精解與實例[M].北京:機械工業(yè)出版社,2010.
[9]周美珍,張維慶,程寒生,等.水下生產(chǎn)控制系統(tǒng)的比較與選擇[J].中國海洋平臺,2007,22(3):47-51.
[10]德國ITI 有限公司.Simulation of subsea control systems[EB/OL].[日期不詳].http://www.iti.de/fileadmin/EN/ressources/application_sheets/App_Subsea_Control_Systems.pdf.
[11]李華鳳.近海油田水下生產(chǎn)設施液壓控制系統(tǒng)設計及仿真研究[D].杭州:浙江大學機械工程學系,2010.