劉天堯,朱 峰,高??担螌W(xué)軍
(1. 中國石油管道科技研究中心,河北 廊坊 065000)
我國長輸油氣管道規(guī)模龐大,設(shè)計(jì)規(guī)格各異,結(jié)構(gòu)復(fù)雜,為了保證管道長期穩(wěn)定運(yùn)行,管道仿真軟件不可或缺[1]。管道仿真軟件市場主要由SPS、REEG和TGNET/TLNET等國外產(chǎn)品壟斷,然而國外軟件在國內(nèi)存在諸多不適用性,因此中國石油管道公司自主研發(fā)了商業(yè)級管道仿真軟件RealPipe,并在國內(nèi)油氣管網(wǎng)進(jìn)行了成功應(yīng)用[2]。目前,國內(nèi)外對管道仿真軟件的研究重仿真計(jì)算引擎算法的精度和效率問題,輕管道模型建立過程。模型構(gòu)建方式多為純文本手工編輯,使得管道模型建立過程較為復(fù)雜,學(xué)習(xí)成本高、建模效率低、錯(cuò)誤率高[3-4]。為了簡化管道仿真軟件建模過程,提高模型直觀效果,本文將WebGIS技術(shù)和油氣管道固有的空間屬性引入管道仿真軟件,為管道仿真模型構(gòu)建提供了一條新思路[5-6]。
管道仿真主要是通過水力、熱力計(jì)算的方式,模擬管道中介質(zhì)(液體或氣體)的流動狀態(tài)??偨Y(jié)現(xiàn)有管道仿真軟件工作原理,管道仿真的一般流程如圖1所示。
圖1 管道仿真流程圖
管道仿真流程主要分為4個(gè)步驟:
1)管道模型文件的構(gòu)建。SPS、TGNET等國際主流軟件主要按照其提供的拓?fù)湟?guī)則,通過手工編寫模型文本文件的方式,編寫管道模型文件。
2)管道模型驗(yàn)證。編寫好管道模型文件后,一般不可避免地存在拓?fù)浠蜻壿嬪e(cuò)誤,因此需進(jìn)行模型文件驗(yàn)證,若模型文件存在錯(cuò)誤則需返回修改。
3)仿真計(jì)算。對管道模型進(jìn)行驗(yàn)證后,利用仿真計(jì)算引擎對管道模型進(jìn)行數(shù)學(xué)解析,構(gòu)建計(jì)算矩陣,進(jìn)行仿真計(jì)算。
4)結(jié)果展示。通過報(bào)表、圖形、交互動畫等方式展示仿真計(jì)算的結(jié)果。
管道仿真的核心是仿真計(jì)算引擎,其求解方法、求解精度、運(yùn)算速度等決定了仿真軟件的可用性。隨著仿真計(jì)算引擎的成熟,管道模型的規(guī)模與復(fù)雜程度的增加,純手工文本編輯的方式不僅費(fèi)時(shí)費(fèi)力,而且缺乏直觀性,學(xué)習(xí)成本高,不易排錯(cuò),模型構(gòu)建效率和結(jié)果展示效果逐漸成為制約管道仿真計(jì)算軟件發(fā)展的瓶頸,急需開發(fā)基于圖形化的仿真模型構(gòu)建方式。
圖形化建模是否可行,取決于管道模型的數(shù)據(jù)規(guī)則與內(nèi)在邏輯是否嚴(yán)謹(jǐn)。管道模型是對真實(shí)管道簡化抽象后形成的關(guān)系模型,其最小單元為元件——管道及其沿線設(shè)備的抽象表示。管道仿真模型以元件為基礎(chǔ),以有向圖的方式對管道進(jìn)行關(guān)聯(lián)表達(dá),以SPS模型的組織形式為例,其按照“元件類型 元件ID 第一節(jié)點(diǎn)ID [第二節(jié)點(diǎn)ID] [節(jié)點(diǎn)屬性1] [換行+元件屬性名 屬性值]…”的格式進(jìn)行記錄,管道模型存儲示例記錄為:
E ES01 ND01 TAKE
+P 10
T PL01,ND01 ND02
B BV01 ND02 ND03
E ED01 ND03 SALE
+Q 80
T PL02 ND01 ND04
B BV02 ND04 ND05
E ED02 ND05 SALE
該存儲格式適合管道模型的線性化數(shù)學(xué)模型構(gòu)建,方便手工書寫模型代碼,在管網(wǎng)模型較小時(shí)可快速編寫,但隨著模型結(jié)構(gòu)的擴(kuò)大,其編寫難度和出錯(cuò)概率會呈倍數(shù)增長。
由管道模型有向圖可知,元件與元件以節(jié)點(diǎn)相連構(gòu)成管道模型,若將節(jié)點(diǎn)歸入元件自身屬性,則可將元件分為單節(jié)點(diǎn)元件(如注入、分輸)和雙節(jié)元件(如管段、閥門)[7]兩大類;若再將管道模型實(shí)際坐標(biāo)位置信息或工藝流程圖空間相對位置信息加入有向圖中,則管道模型存儲示例可表示為圖2的形式。
圖2 管道元件與仿真模型圖示樣例
綜上所述,管道模型圖形化構(gòu)建不僅可行,而且可加入地理空間信息這一新維度,將管道仿真模型表達(dá)得更直觀;同時(shí)可引入GIS相關(guān)分析功能,使得利用WebGIS技術(shù)開發(fā)管道模型構(gòu)建與展示系統(tǒng)切實(shí)可行。
管道仿真的核心部分是仿真計(jì)算引擎,而管道模型構(gòu)建過程主要是為仿真計(jì)算引擎提供初始參數(shù),因此管道仿真系統(tǒng)架構(gòu)需圍繞仿真計(jì)算引擎進(jìn)行設(shè)計(jì)。利用現(xiàn)有WebGIS工具,在保證對現(xiàn)有仿真數(shù)值計(jì)算引擎改動最小的前提下,結(jié)合軟件模塊化思想,設(shè)計(jì)高內(nèi)聚、低耦合的基于WebGIS的管道模型構(gòu)建系統(tǒng)架構(gòu)如圖3所示[8]。
通過B/S模式構(gòu)建Web應(yīng)用程序,系統(tǒng)架構(gòu)由用戶界面、文件通信和后臺模塊3部分構(gòu)成,各部分功能為:
1)用戶界面。利用開源WebGIS的Openlayers3設(shè)計(jì)管道模型圖形化構(gòu)建引擎,用于構(gòu)建與顯示管道模型,并負(fù)責(zé)結(jié)果顯示與用戶交互。
2)文件通信。系統(tǒng)涉及的主要交互文件和通信過程包括基于GML編寫的管道模型文件,便于快速計(jì)算的二進(jìn)制模型文件,基于網(wǎng)絡(luò)常用數(shù)據(jù)交換格式JSON的仿真結(jié)果文件以及管道模型保存和驗(yàn)證、仿真運(yùn)行、結(jié)果顯示過程等內(nèi)容[9]。
3)后臺模塊。管道仿真過程涉及兩個(gè)核心計(jì)算模塊,GML管道模型驗(yàn)證模塊負(fù)責(zé)驗(yàn)證管道模型中管道拓?fù)涞恼_性,并將正確的管道模型簡化為二進(jìn)制數(shù)學(xué)運(yùn)算模型;仿真計(jì)算引擎模塊負(fù)責(zé)調(diào)用二進(jìn)制模型文件,根據(jù)管網(wǎng)水力熱力學(xué)模型構(gòu)建數(shù)學(xué)矩陣模型,進(jìn)行仿真計(jì)算并返回結(jié)果。
圖3 系統(tǒng)架構(gòu)圖
用戶通過Openlayers3提供的WebGIS圖形編輯功能構(gòu)建模型,并以GML格式儲存模型文件;再經(jīng)過后臺管道模型驗(yàn)證后生成中間過程的二進(jìn)制模型文件;最后進(jìn)行仿真引擎計(jì)算,返回結(jié)果并顯示。
系統(tǒng)架構(gòu)通過文件通信的方式保證了用戶界面與后臺功能模塊的高效分離,Openlayers3與GML的結(jié)合可保證在Web上提供管道模型的圖形編輯與展示能力,二進(jìn)制模型文件由傳統(tǒng)模型文件壓縮而來,作為GML模型與傳統(tǒng)模型的中間緩沖,以保證對仿真計(jì)算引擎的改動最小。
由于傳統(tǒng)的基于有向圖的管道模型組織方式缺少坐標(biāo)信息,不利于GIS的編輯和展示,因此需要重新構(gòu)建。為了便于Openlayers3快速解析,在使用GIS通用數(shù)據(jù)格式的前提下,選用GML作為存儲格式對管道模型進(jìn)行全新設(shè)計(jì)。
管道模型整體呈線狀結(jié)構(gòu),由兩點(diǎn)可確定一條直線原理可知,雙節(jié)點(diǎn)元件的位置可由前后兩節(jié)點(diǎn)坐標(biāo)進(jìn)行定位,單節(jié)點(diǎn)元件由設(shè)備符號坐標(biāo)和節(jié)點(diǎn)坐標(biāo)進(jìn)行定位。管道模型元件類型通過GML格式擴(kuò)展功能進(jìn)行定義,構(gòu)建元件類型庫,以節(jié)點(diǎn)為元件的平級標(biāo)簽,然后在元件標(biāo)簽內(nèi)部進(jìn)行引用嵌套,避免節(jié)點(diǎn)坐
標(biāo)重復(fù)定義,設(shè)計(jì)的GML管道模型存儲格式為:
<RP:ND ID=”第一節(jié)點(diǎn)ID”>
<coord><X>x坐標(biāo)</X><Y>y坐標(biāo) </Y></coord>
</RP:ND>
[<RP:ND ID=”第二節(jié)點(diǎn)ID”>
<coord><X>x坐標(biāo)</X><Y>y坐標(biāo) </Y></coord>
</RP:ND>]
<RP:元件類型 ID=”元件ID”>
<!—單節(jié)點(diǎn)元件坐標(biāo)-->
[<coord><X>x坐標(biāo)</X><Y>y坐標(biāo)</Y></coord>]
<RP:ND ID=”第一節(jié)點(diǎn)ID”>
[<RP:ND ID=”第二節(jié)點(diǎn) ID”>]
[<RP:屬性 1 AT=“屬性 1”>]
</RP:元件類型>
GML管道模型最大程度地保留了傳統(tǒng)管道模型的結(jié)構(gòu)框架,在通過模型驗(yàn)證后僅需去掉一級節(jié)點(diǎn)標(biāo)簽和所有坐標(biāo)標(biāo)簽,順序解析即可恢復(fù)傳統(tǒng)管道模型的數(shù)據(jù)組織結(jié)構(gòu);并在二進(jìn)制壓縮后可被仿真計(jì)算引擎直接調(diào)用,解決了在保證仿真計(jì)算引擎改動最小的前提下對管道模型數(shù)據(jù)格式的重構(gòu)問題。
為了提高管道模型的構(gòu)建效率,減少錯(cuò)誤率,圖形化構(gòu)建引擎必不可少。Openlayers3不僅具有強(qiáng)大的WebGIS編輯與顯示能力,而且開源易用,是定制開發(fā)管道模型圖形化構(gòu)建引擎很好的選擇。
由于管道模型由元件組成,選用拖拽式的建模方式更為簡便、快速,因此本文設(shè)計(jì)的引擎界面(圖4)主要由兩部分組成:①管道模型元件選擇面板,對模型元件進(jìn)行封裝后提供選擇和拖拽功能;②圖形繪制面板,將從元件選擇面板中拖拽而來的模型元件以圖形的方式進(jìn)行表示,并提供元件節(jié)點(diǎn)的吸附連接功能,保存時(shí)通過解析Openlayers3圖層元素得到GML管道模型文件。除此之外,為了直觀顯示仿真結(jié)果,還設(shè)計(jì)了元件信息展示氣泡用于結(jié)果展示。
圖4 管道模型構(gòu)建界面
通過實(shí)際測試,單從滿足仿真建模的角度來講,基于WebGIS的管道模型構(gòu)建系統(tǒng)生成的模型文件格式更加清晰,在學(xué)習(xí)成本、建模效率和模型可靠性等方面遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)手工模型編寫方式,對比效果如表1所示。
實(shí)際上引入WebGIS構(gòu)建管道仿真模型的好處不僅在于提高了模型的構(gòu)建效率,更重要的是其引入的空間屬性維度,利用GIS相關(guān)分析能力,為管道在空間上的仿真拓展了更多可能。
表1 模型構(gòu)建對比
通過將WebGIS技術(shù)與管道仿真技術(shù)相結(jié)合,對基于有向圖方式的管道模型數(shù)據(jù)組織方式進(jìn)行了基于坐標(biāo)表示方式的重新構(gòu)建,設(shè)計(jì)了基于WebGIS的管道模型構(gòu)建系統(tǒng),可有效簡化管道模型構(gòu)建過程和提升易用性,提高管道仿真建模效率和可靠性。不僅如此,管道仿真模型引入的空間屬性可與GIS有效結(jié)合,為管道仿真系統(tǒng)的模型構(gòu)建以及管道仿真技術(shù)的發(fā)展提供了一種新思路。