摘要:通過對(duì)燃?xì)夤芫W(wǎng)拓?fù)浣Y(jié)構(gòu)的研究,開發(fā)了基于面向?qū)ο蠹夹g(shù)的可視化燃?xì)夤芫W(wǎng)水力計(jì)算程序。通過實(shí)例證明,計(jì)算程序應(yīng)用方便,通用性強(qiáng),可以大幅提高燃?xì)夤芫W(wǎng)水力計(jì)算的效率。
關(guān)鍵詞:燃?xì)夤芫W(wǎng);水力計(jì)算;Auto CAD接口;節(jié)點(diǎn)自動(dòng)編號(hào);點(diǎn)捕捉;線捕捉
Development of Hydraulic Calculation Program for Gas Network
ZHANG Ning,TIAN Guansan,LI Chengle,XIE Donglai
Abstract:Through the analysis of topology structure of gas network,a visual hydraulic calculation program for gas network based on object-oriented technology is developed.A case shows that the calculation program can be applied conveniently and has considerable generality,and it can greatly improve the hydraulic calculation efficiency of gas network.
Key words:gas network;hydraulic calculation;Auto CAD interface;automatic numbering of nodes;point snapping;line snapping
目前我國(guó)面臨能源結(jié)構(gòu)的調(diào)整,越來越多的居民使用熱效率高、清潔環(huán)保的管輸天然氣。隨著西氣東輸、川氣東送、沿海LNG等項(xiàng)目的開展,天然氣輸配工程在城市基礎(chǔ)設(shè)施建設(shè)中將占據(jù)越來越重要的地位。燃?xì)夤芫W(wǎng)水力計(jì)算是進(jìn)行管網(wǎng)設(shè)計(jì)和運(yùn)行的理論基礎(chǔ),是順利完成輸配任務(wù)的保證。計(jì)算機(jī)應(yīng)用技術(shù)的普及促使水力計(jì)算程序代替了傳統(tǒng)的手工平差計(jì)算。目前大多基于Windows界面利用可視化語言研制計(jì)算程序,在對(duì)話框中以表格的形式進(jìn)行數(shù)據(jù)的輸入、輸出,盡管計(jì)算用時(shí)和精度與手工平差相比有了很大的進(jìn)步,但是水力計(jì)算圖的拓?fù)浣Y(jié)構(gòu)全部抽象為數(shù)字表達(dá),沒有根本改變與管網(wǎng)結(jié)構(gòu)圖相分離的問題,設(shè)計(jì)人員在實(shí)際操作中很容易出錯(cuò)[1]。也有利用Auto CAD的Auto LISP、VBA等二次開發(fā)技術(shù)編寫程序,在Auto CAD平臺(tái)下進(jìn)行水力計(jì)算,雖然可以方便地在圖形界面下進(jìn)行水力計(jì)算圖的輸入和輸出,但是其在數(shù)據(jù)處理和數(shù)值計(jì)算方面還有欠缺,功能比較單[2~4]。針對(duì)目前天然氣管網(wǎng)水力計(jì)算現(xiàn)狀,有必要開發(fā)計(jì)算精度高、通用性強(qiáng)、自動(dòng)化程度高的可視化燃?xì)夤芫W(wǎng)水力計(jì)算軟件。
1 燃?xì)夤芫W(wǎng)水力計(jì)算程序的結(jié)構(gòu)設(shè)計(jì)
燃?xì)夤芫W(wǎng)水力計(jì)算程序利用Visual C++和Fortran混合編程技術(shù),基于Visual C++強(qiáng)大的圖形處理能力和人機(jī)交互功能,開發(fā)了用戶操作窗口,并結(jié)合Fortran強(qiáng)大的數(shù)值運(yùn)算功能,研制了水力計(jì)算內(nèi)核,程序在Windows操作環(huán)境下運(yùn)行,用戶操作方便、快捷。
1.1 程序的數(shù)據(jù)結(jié)構(gòu)
管網(wǎng)數(shù)據(jù)結(jié)構(gòu)是各種管網(wǎng)數(shù)據(jù)在記錄中的邏輯編排方式和數(shù)據(jù)文件的組織方法,反映了管網(wǎng)數(shù)據(jù)間的邏輯關(guān)系。燃?xì)夤芫W(wǎng)水力計(jì)算系統(tǒng)采用數(shù)組和鏈表的數(shù)據(jù)結(jié)構(gòu)。燃?xì)夤芫W(wǎng)的屬性數(shù)據(jù)(包括管段號(hào)、起點(diǎn)號(hào)和坐標(biāo)、終點(diǎn)號(hào)和坐標(biāo)、管長(zhǎng)、管徑、管材、管段流量等管段數(shù)據(jù),節(jié)點(diǎn)號(hào)和坐標(biāo)、節(jié)點(diǎn)流量、節(jié)點(diǎn)壓力等節(jié)點(diǎn)參數(shù))采用數(shù)組的數(shù)據(jù)結(jié)構(gòu),可以方便、條理清楚地儲(chǔ)存和調(diào)用管網(wǎng)數(shù)據(jù)。管網(wǎng)的圖形數(shù)據(jù)(包括管段、節(jié)點(diǎn)、環(huán)的拓?fù)浣Y(jié)構(gòu)關(guān)系)采用雙向鏈表的數(shù)據(jù)結(jié)構(gòu),每一條管段作為一個(gè)鏈節(jié)按繪制順序分布在鏈表中,可以方便地進(jìn)行管段的截?cái)?、刪除、添加等操作,通過管段鏈表的依次搜索,實(shí)現(xiàn)對(duì)管段和節(jié)點(diǎn)迅速、準(zhǔn)確地編號(hào)和查找。
1.2 程序的結(jié)構(gòu)設(shè)計(jì)
燃?xì)夤芫W(wǎng)水力計(jì)算程序的系統(tǒng)結(jié)構(gòu)見圖1。用戶通過系統(tǒng)界面上的選單欄、工具欄、單文檔界面客戶區(qū)等對(duì)系統(tǒng)進(jìn)行操作,操作的執(zhí)行者為主框架類、視圖類和其他對(duì)話框類,完成燃?xì)夤芫W(wǎng)圖形數(shù)據(jù)和屬性數(shù)據(jù)的人機(jī)對(duì)話輸入,進(jìn)行管網(wǎng)水力計(jì)算后,計(jì)算的結(jié)果通過文檔類保存至Access數(shù)據(jù)庫或打印輸出,相應(yīng)的數(shù)據(jù)保存在磁盤中,以方便下次查閱。
1.3 程序的功能模塊設(shè)計(jì)
燃?xì)夤芫W(wǎng)水力計(jì)算程序的功能模塊見圖2。管網(wǎng)輸入和管網(wǎng)組件模塊用來輸入管網(wǎng)的拓?fù)浣Y(jié)構(gòu)和管網(wǎng)計(jì)算參數(shù),管網(wǎng)編輯和觀察模塊方便管網(wǎng)結(jié)構(gòu)的變更和動(dòng)態(tài)觀察,管網(wǎng)計(jì)算模塊根據(jù)計(jì)算參數(shù)對(duì)低壓或者高中壓燃?xì)夤芫W(wǎng)進(jìn)行水力計(jì)算,管網(wǎng)標(biāo)注和計(jì)算結(jié)果模塊讀取計(jì)算結(jié)果并標(biāo)注在水力計(jì)算圖上,最后通過Auto CAD自動(dòng)輸出計(jì)算結(jié)果圖。

2 燃?xì)夤芫W(wǎng)水力計(jì)算程序的功能介紹
2.1 計(jì)算數(shù)據(jù)的輸入
程序首先根據(jù)用戶選擇的管網(wǎng)壓力級(jí)別進(jìn)入相應(yīng)的程序模塊。在可視化界面由用戶利用鼠標(biāo)繪制管網(wǎng)結(jié)構(gòu)圖,在用戶點(diǎn)擊鼠標(biāo)確定起點(diǎn)后,會(huì)有一條隨鼠標(biāo)移動(dòng)可自由伸縮的“橡皮線”幫助定位,當(dāng)再次點(diǎn)擊鼠標(biāo)確定,就繪制了連接兩點(diǎn)的管道,同時(shí)在管道中間繪制從起點(diǎn)到終點(diǎn)的流向三角形,在管段鏈表中建立一個(gè)鏈節(jié),狀態(tài)欄中實(shí)時(shí)顯示鼠標(biāo)當(dāng)前位置的橫、縱坐標(biāo)以方便用戶精確繪圖。在繪制管道的同時(shí),為了水力計(jì)算的需要,程序自動(dòng)對(duì)節(jié)點(diǎn)進(jìn)行編號(hào)[5]。正交繪制功能可以輔助用戶繪制水平或豎直管道。針對(duì)由Auto CAD繪制的大型或特大型管網(wǎng)圖中管段特別多、輸入管網(wǎng)拓?fù)浣Y(jié)構(gòu)圖工作量大的特點(diǎn),程序利用Auto CAD的DXF文件作為數(shù)據(jù)接口,可以根據(jù)選擇的圖層、線寬、線型、顏色等管段屬性信息選擇性地自動(dòng)導(dǎo)入管網(wǎng)拓?fù)浣Y(jié)構(gòu)圖。
定義以管道為中心線且平行于管道的小面積矩形為線捕捉區(qū)域,以節(jié)點(diǎn)為圓心的小面積圓形為點(diǎn)捕捉區(qū)域,鼠標(biāo)在上述區(qū)域內(nèi)雙擊會(huì)分別彈出節(jié)點(diǎn)屬性和管段屬性對(duì)話框帕J,見圖3、4,為相應(yīng)的節(jié)點(diǎn)輸入流量或壓力,為相應(yīng)的管段輸入管長(zhǎng)、管徑、管材。對(duì)于多氣源管網(wǎng)還需輸入氣源屬性,程序通過節(jié)點(diǎn)編號(hào)重排使得壓力基準(zhǔn)點(diǎn)編號(hào)最大,定壓點(diǎn)隨基準(zhǔn)點(diǎn)居后編排,便于節(jié)點(diǎn)方程組的求解。點(diǎn)捕捉和線捕捉技術(shù)實(shí)現(xiàn)了管網(wǎng)圖和數(shù)據(jù)的緊密結(jié)合,更加直觀、形象,輸入大量管段和節(jié)點(diǎn)參數(shù)時(shí),很大程度上減少了輸入的差錯(cuò),提高了效率。
程序具有窗口放大、縮小和平移等管網(wǎng)觀察功能,用戶滾動(dòng)鼠標(biāo)的滾輪實(shí)現(xiàn)管網(wǎng)的無級(jí)縮放,按下鼠標(biāo)左鍵拖動(dòng)鼠標(biāo)就可方便地實(shí)現(xiàn)管網(wǎng)圖的平移。為實(shí)現(xiàn)某一節(jié)點(diǎn)或管段在管網(wǎng)中的迅速定位,在管段和節(jié)點(diǎn)查詢對(duì)話框中輸入其編號(hào),程序即可將其移至屏幕的中心。
2.2 燃?xì)夤芫W(wǎng)水力計(jì)算
燃?xì)馐嵌喾N氣體的混合物,程序可以根據(jù)其組成和溫度計(jì)算密度和運(yùn)動(dòng)黏度,見圖5。在進(jìn)行水力計(jì)算時(shí),需要輸入管網(wǎng)的水力計(jì)算參數(shù),見圖6。各個(gè)參數(shù)說明如下:已知壓力參考點(diǎn)的編號(hào)和壓力值,其他節(jié)點(diǎn)的壓力以壓力參考點(diǎn)為基準(zhǔn),通過管段壓力降計(jì)算得出。節(jié)點(diǎn)流量比例系數(shù)是各個(gè)節(jié)點(diǎn)如圖3所示輸入的節(jié)點(diǎn)流量和計(jì)算時(shí)節(jié)點(diǎn)流量的比值,一般情況下此值取1,當(dāng)進(jìn)行不同流量負(fù)荷下的管網(wǎng)水力計(jì)算時(shí)可以取相應(yīng)比值。局部阻力系數(shù)是局部阻力與沿程阻力的比例,用來計(jì)算管網(wǎng)壓力降。燃?xì)獾拿芏群瓦\(yùn)動(dòng)黏度可以通過圖5所示間接計(jì)算得到或者作為已知條件直接輸入。對(duì)于多氣源管網(wǎng),定壓點(diǎn)數(shù)量和已知流量節(jié)點(diǎn)數(shù)量可以區(qū)分氣源點(diǎn)是已知壓力還是已知流量氣源點(diǎn)[7]。
由Fortran語言編寫的水力計(jì)算程序讀取管網(wǎng)的節(jié)點(diǎn)和管段計(jì)算參數(shù),采用經(jīng)濟(jì)流速和管徑得出管段初設(shè)流量,利用解節(jié)點(diǎn)方程法對(duì)由管段壓力降、節(jié)點(diǎn)流量、環(huán)能量方程組成的方程組進(jìn)行多次迭代求解,直到相鄰兩次的節(jié)點(diǎn)流量差的絕對(duì)值滿足計(jì)算精度要求為止,并依次計(jì)算各節(jié)點(diǎn)壓力和流量、管段流量和壓力降等水力計(jì)算結(jié)果。該方法與解環(huán)方程法和解管段方程法相比較,數(shù)據(jù)輸入量小,計(jì)算用時(shí)少,精度高[8~9]。
2.3 計(jì)算結(jié)果的標(biāo)注
程序讀取水力計(jì)算結(jié)果,沿管段走向標(biāo)注管徑、管長(zhǎng)、管段的流量和壓力降,在節(jié)點(diǎn)處用引線標(biāo)注流量和壓力,如果計(jì)算的管段壓力降是負(fù)值,則說明該管段的實(shí)際流向與初設(shè)流向相反,程序可以用背影色覆蓋管段原有流向三角形并重新繪制反方向流向三角形,自動(dòng)修改不合適的管段初設(shè)流向。如果管網(wǎng)結(jié)構(gòu)需要變更,可以通過刪除管段、打斷管段在中間增加節(jié)點(diǎn)、增加管段,改變管段流向,程序同時(shí)會(huì)自動(dòng)對(duì)管段的相應(yīng)數(shù)據(jù)進(jìn)行修改并進(jìn)行計(jì)算,也能夠改變管段顏色使需要重點(diǎn)考察的管段更加醒目。計(jì)算結(jié)果可以隨圖形保存,方便日后查閱。
程序還具有Auto CAD輸出接口,水力計(jì)算結(jié)果和節(jié)點(diǎn)坐標(biāo)記錄在DAT數(shù)據(jù)文件中,利用Auto CAD中Auto LISP二次開發(fā)技術(shù),讀取上述數(shù)據(jù)文件,自動(dòng)在Auto CAD中繪制管段和節(jié)點(diǎn)并標(biāo)注計(jì)算結(jié)果,輸出水力計(jì)算結(jié)果圖。程序同時(shí)可以根據(jù)用戶選擇的圖紙?zhí)枺詣?dòng)調(diào)整其縮放比例。
3 水力計(jì)算實(shí)例
某低壓燃?xì)夤芫W(wǎng),已知數(shù)據(jù)如下:節(jié)點(diǎn)數(shù)為18,管段數(shù)為18,氣源點(diǎn)壓力為3000Pa,局部阻力系數(shù)為0.05,管材為鋼管,管網(wǎng)計(jì)算溫度為10℃,氣體密度為0.81kg/m3,運(yùn)動(dòng)黏度為1.27×10-5m2/s。
圖7為燃?xì)夤芫W(wǎng)水力計(jì)算結(jié)構(gòu),進(jìn)行水力計(jì)算后在Auto CAD中自動(dòng)輸出的水力計(jì)算結(jié)果標(biāo)注圖見圖8。
4 結(jié)論
利用Visual C++開發(fā)了基于面向?qū)ο蠹夹g(shù)的可視化燃?xì)夤芫W(wǎng)水力計(jì)算程序,利用解節(jié)點(diǎn)方程法對(duì)非線性節(jié)點(diǎn)方程組進(jìn)行迭代求解,實(shí)現(xiàn)了管網(wǎng)拓?fù)浣Y(jié)構(gòu)圖的鼠標(biāo)輸入和Auto CAD圖紙自動(dòng)導(dǎo)入,管段節(jié)點(diǎn)自動(dòng)編號(hào),人機(jī)對(duì)話輸入管段和節(jié)點(diǎn)參數(shù);針對(duì)管網(wǎng)變更所造成的管網(wǎng)結(jié)構(gòu)變化,程序具有刪除、添加、打斷、改變顏色、流向等管段編輯功能;水力計(jì)算結(jié)果圖可隨隨Auto CAD自動(dòng)輸出,真正實(shí)現(xiàn)了管網(wǎng)輸入與拓?fù)浣Y(jié)構(gòu)圖的緊密結(jié)合,提高了燃?xì)夤芫W(wǎng)水力計(jì)算的效率和自動(dòng)化水平。
參考文獻(xiàn):
[1] 謝子超.燃?xì)夤芫W(wǎng)設(shè)計(jì)計(jì)算程序的研制[J].煤氣與熱力,1985,5(1):33-38.
[2] 姜東琪,杜建梅,崔建華,等.燃?xì)夤芫W(wǎng)水力計(jì)算及水力計(jì)算圖的繪制[J].煤氣與熱力,2001,21(5):453-455.
[3] 丁國(guó)玉,田貫三.AutoCAD VB(VBA)二次開發(fā)在燃?xì)夤芫W(wǎng)水力計(jì)算中的應(yīng)用[J].城市燃?xì)猓?008(1):15-18.
[4] 魯國(guó)文,馮良.基于Auto CAD的燃?xì)夤芫W(wǎng)水力計(jì)算和自動(dòng)繪圖系統(tǒng)的研究[J].上海煤氣,2006(1):26-29.
[5] 李成樂,田貫三.燃?xì)夤芫W(wǎng)水力計(jì)算圖節(jié)點(diǎn)計(jì)算機(jī)自動(dòng)編號(hào)的方法[J].山東建筑工程學(xué)院學(xué)報(bào),2005,20(4):51-54.
[6] 李成樂,田貫三.燃?xì)夤芫W(wǎng)水力圖計(jì)算機(jī)輸入的探討[J].煤氣與熱力,2005,25(2):32-35.
[7] 張寧,解東來,田貫三,等.多氣源燃?xì)夤芫W(wǎng)水力計(jì)算程序的開發(fā)[J].煤氣與熱力,2009,29(6):B05-B08.
[8] 田貫三,張?jiān)鰟偅瓋|.城鎮(zhèn)天然氣管網(wǎng)水力分析數(shù)學(xué)模型與計(jì)算方法[J].天然氣工業(yè),2002,22(3):96-98.
[9] 田貫三,劉燕,江億.燃?xì)夤芫W(wǎng)水力計(jì)算研究[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2003,35(7):770-772.
(本文作者:張寧1 田貫三2 李成樂3 解東來1 1.華南理工大學(xué) 化學(xué)與化工學(xué)院 廣東廣州 510640;2.山東建筑大學(xué) 熱能工程學(xué)院 山東濟(jì)南 250101;3.北京航天愛銳科技有限責(zé)任公司 北京 100176)
贊 賞 分享
您可以選擇一種方式贊助本站
支付寶轉(zhuǎn)賬贊助
微信轉(zhuǎn)賬贊助