燃氣管網水力計算數學模型及水力計算程序的編制
孫玉寶 李成樂
摘要:利用Visual C++6.0和有限元節點法編制了燃氣管網水力計算程序,水力計算全部實現界面化。數學模型中采用了前蘇聯謝維列夫的摩阻系數公式。采用高斯——賽德爾迭代法解線性方程組,提高了收斂速度。探討了利用矩陣調行技術解決多氣源管網水力計算問題。
關鍵詞:燃氣管網 水力計算
隨著我國燃氣事業的發展,用氣城市越來越多,用氣量也越來越大,燃氣管網相應的變得越來越普及和龐大,其結構也越來越復雜。在管網的新建和擴建中,準確、迅速的燃氣管網水力計算是實現高質量的管網設計、施工以及運行調度的必要條件。目前國內存在的大多數水力計算程序,原始數據的準備以文本形式為主,管網的編號也是人工操作,非常麻煩,容易出錯;解水力計算線性方程組以雅克比法占多數,收斂速度慢,而且在處理多氣源管網時也不是十分方便。
本文從水力計算模型出發,采用有限元節點法,利用Visual C++6.0編制燃氣管網水力計算程序。管網初始數據的準備通過界面直觀輸入;利用高斯——賽德爾求解管網線性方程組;通過矩陣調行的方法處理所選基準點不位于最大編號的問題;同時對于多個給定壓力的氣源點,通過調行和對方程組進行常數項修正來解決。
在使用以下燃氣管道水力計算公式時有如下假設條件:燃氣管道中的氣體運動是穩定流;燃氣在管道中的流動時的狀態變化為等溫過程;燃氣狀態參數變化符合理想氣體定律。
2.1 燃氣管道水力計算公式
2.1.1 對于低壓燃氣管道
(1)
2.2.2 對于中高壓燃氣管道
(2)
(1)、(2)式中:
——壓力降(Pa),(注意:在高壓管網中表示2次方量); 、——管道起點、終點的燃氣絕對壓力(Pa); ——管道計算長度(Km); ——管道計算長度(m); ——燃氣的管段計算流量(); ——管道內徑(cm); S——燃氣對空氣的相對密度; λ——摩擦系數; ——局部阻力系數,取長度阻力的10%,即=1.1; ——溫度產生的膨脹系數,即; ——燃氣的熱力學溫度(K); ——標準狀態下的溫度(273K)。
2.2 摩擦阻力系數
本計算模型采用前蘇聯的謝維列夫適用于不同鋼管和紊流(Re>2050)的情況下不同阻力區的專用公式。
2.3.1 對于新鋼管:
水利光滑區:
(3)
第二過渡區:
(4)
阻力平方區:
(5)
2.3.2 對于新鑄鐵管:
水力光滑區:
(6)
第二過渡區:
(7)
阻力平方區:
(8)
上述諸式中:
d——管道內徑(m); w——平均流速(m/s); v——運動粘度; ——考慮實驗室和實際安裝管道的條件不同的系數,=1.15; ——考慮由于接頭而使阻力增加的系數,=1.18。
本文介紹的計算程序利用VC++開發,是一個可視化水力計算程序,一切過程都在windows界面下進行。下面就簡單介紹一下:
3.1 原始數據的準備
本程序管網圖的繪制(參見圖1)和原始數據的輸入均利用界面直接輸入,有管段參數(如圖3)和節點參數(如圖4)對話界面,包括節點編號,管段編號,管段起點,管段終點,管長,管徑,管材,節點流量,氣源點壓力,其中節點編號,管段編號,管段起點及管段終點均為自動生成,剩余參數為人為輸入,并且利用數據庫記錄,和傳統的數據準備相比,直觀、快捷、方便,可提高工作效率,節約時間。界面如圖3、4所示。
3.2 數學算法
3.2.1 有限元節點法
本文中介紹的水力計算程序是采用有限元節點法進行管網水力計算。
雙擊節點會彈出節點數據輸入的對話框: 雙擊管線會彈出管段數據輸入的對話框:
燃氣管網進行水力計算,滿足三個方程組:節點流量連續方程組Aq+Q=0;管段壓力降方程組ATP=Δp;管段流量方程組q=C·Δp。(注意:在高壓管網中Δp、P均表示2次方量)由上述三式可得求解節點壓力的方程組:
(9)
(10)
式中 A為由元素aij組成的節點關聯矩陣;C為由元素組成的節點對角矩陣; P為節點壓力向量;Q為節點流量向量;q為管段流量向量;Δp為管段壓降向量; AT為矩陣的轉置矩陣;G為管段導納矩陣,對于單氣源管網而言,,(多氣源點管網導納矩陣的處理見下文)。
3.2.2 C陣的生成
公式(1)(2)均為非線性方程我們采用線性逼近的方法來解這個非線性方程。將管段流量與管段壓力的關系式改寫為。然后將式中的作為已知量來處理,用來代表它的值。因此,,即管段壓降和管段流量q之間的關系由原來的非線性關系轉化為線性關系。通過不斷修正的值來進行迭代求解,是方程組前后二次接出的q值逐步逼近,直到滿足所要求達到的精度為止。
關系式還可以進一步改寫為。則在線性網絡圖中成為導納。用C來代表管段得導納,這樣。本數學模型在低壓和高壓管網中的C陣中對角線元素值如下所示:
低壓管網中:
(10)
高壓管網中:
(11)
式中 ——代表C陣中第j管段的C值; 、——分別代表高壓低壓管網中管段長度; ——代表管段的初設流量;其它參數同公式(1)(2)中的含義。
3.2.3 解線性方程組
求解性線性方程組是利用有限元節點法進行燃氣管網水力計算的關鍵,直接關系到水力計算的結果的精度。本文中的計算程序采用高斯——賽德爾迭代法,與傳統的雅克比解法相比,可以節約內存,編程方便,并且提高收斂速度。式(10)中,為非奇異矩陣,在高斯——賽德爾迭代法中可做矩陣分裂:
G=D—L—U
上式中,
設矩陣D—L非奇異,則高斯——賽德爾迭代計算式可以寫為:
得出高斯——賽德爾迭代的矩陣的表示式為:
3.3 有限元節點算法的計算過程
計算過程:首先初設管段流量q(0),代入方程(10),求解節點壓力P(1),計算出q(1);q(1)不滿足要求進行修正,再形成方程組(10)進行逐次逼近,直到第L+1次的q(L+1)與q(L)差的絕對值滿足計算精度要求為止。其具體步驟如圖4所示。
4.1 單氣源點的處理
在編號時,有可能氣源點不在最大編號處,那么在編制水力計算程序時就要對原先自動生成的陣進行調行處理,即把基準點所處的行與最大編號所處的行進行對調,然后再將基準點所處的行去掉,生成A陣,再代入方程式(9)按圖(4)所示的步驟進行計算。
4.2 多氣源點的處理
4.2.1 基準點的選擇
在生產實際中燃氣管網一般為多氣源,例如低壓管網系統中的各個區域調壓站,中高壓管網系統中的制氣廠、儲配站、調壓站以及天然氣門站等都屬于氣源性質。在水力計算中,這些氣源分為三種情況:部分氣源給定流量;部分氣源給定壓力;也可能是全部氣源給定流量或全部給定壓力。
對于給定流量的一些氣源點,可以把它們看作一般節點一樣,只不過在給定的流量前面加上“—”號,表示在這些節點上的流量是流入網絡而不是流出;若全部氣源給定流量,可取其中任一氣源作為基準點。若同時有給定壓流量的的氣源點又有給定壓力的氣源,或全部氣源都給定壓力時,則取其中一個給定的壓力的氣源節點作為基準點,在其他給定壓力的氣源點上注上與此基準點的壓力差(或壓力平方差)。若壓力比基準點高,在壓力差前面加上“—”號;比基準點壓力低時加“+”號。
在形成節點壓差線性方程組時,對于給定流量的氣源節點,Q取負值;對于給定壓力的氣源點,用帶有正號的或者負號的已知壓差值來取代方程式中未知量P,此時常數項Q則成為未知量。
在解方程組時,由于未知量P的個數隨著給定壓力氣源的已知壓力差(或壓力平方差)個數的增加而減少,因此需要解的方程個數只有個,其中h代表給定壓力氣源點(基準點除外)的個數,也就是說代表壓力氣源的節點壓差方程可以不參加計算。
4.2.2 導納矩陣的生成
關于給定流量的多個氣源點的管網關聯矩陣A的生成,與單氣源點A陣的生成相同。取其中一個氣源點為基準點,若所選基準點所處行不在最大編號所處的行時,在水力計算程序中要對自動生成陣對調,使基準點所處行位于最大行處,再將基準點的行去掉,生成A陣。即可代入方程式(9)按圖(4)所示的步驟進行計算。
給定壓力的多氣源點(假設有h+1個給定壓力的氣源點)的管網的導納矩陣的生成,是燃氣管網水力計算程序編制的難點。首先,選定基準點,按單氣源管網中所敘述的方法,生成A陣,利用公式,矩陣運算后的導納矩陣,要將除基準點以外的氣源節點所處的行與矩陣中最后h行進行對調后生成導納矩陣G。再代入方程式(10)生成線性方程組,但此時還要對方程組進行調整才可以求解方程。下面舉例說明,假設管網為雙氣源點的低壓管網,另一氣源點a的壓力比基準點b的壓力高100Pa。形成的方程組如下所示:
對常數項進行修正,得到如下方程組:
需要修正的常數項只限于與氣源節點a有關段相連的節點。在水力計算程序當中,計算機會根據人輸入的數據自動識別氣源點,自動進行調行,然后進行計算。
第一步:管網圖繪制完成后,先對管網進行初始數據的標注,然后單擊圖標欄中的燃氣水力計算圖標,就彈出如圖5所示的對話框:
第二步:氣體參數的計算,單擊氣體參數按鈕,彈出如圖6所示對話框,輸入氣體組分和計算氣體溫度后,單擊參數計算,即可得到相應的氣體參數,并且程序會自動獲取水力計算所需參數。
第三步:選擇管網的壓力級別,選定后請“確定”;
第四步:單擊水力計算按鈕,程序自動讀取管網數據進行水力計算。
不管單氣源還是多氣源對矩陣進行調整以后,在數據輸出的時候都要將其在調整回來。對于多氣源點來說,計算結果的顯示是一個要重點解決的問題,在做矩陣調整的時候,要對對調的行作相應紀錄,使數據按開始繪制管網圖自動編號的順序輸出計算結果。該程序可自動調整。數據顯示界面如圖7所示:
本文對燃氣管網水力計算數學模型及水力計算程序進行了較深的研究。采用有限元節點法,并利用可視化編程語言實現了燃氣管網水力計算的全程可視化,從原始數據準備一直到水力計算操作,一律以界面形式出現,真正的將可視化技術應用于燃氣管網水力計算。利用高斯——賽德爾迭代法解線性方程,提高了收斂速度和計算精度,同時利用矩陣調行,可對生成的關聯矩陣、導納矩陣進行相應的調整,解決各種形式的多氣源燃氣管網的水力計算問題。
[1] 管廷文, 張鳴, 李波等. 燃氣管網節點方程牛頓法數學模擬 [J].煤氣與熱力, 2003, 23(8): 454-458. [2] 彭繼軍, 田貫三, 劉燕. 燃氣管網水力計算圖的計算機生成[J]. 山東建筑工程學院學報, 2003, (1): 58-62. [3] 吳伯良. 煤氣管網的計算機輔助設計[J]. 煤氣與熱力,1983, (5):17-22. [4] 哈爾濱建筑工程學院. 燃氣輸配[M]. 北京:中國建筑工業出版社, 1995. [5] 謝子超. 燃氣管網設計計算程序的研制[J]. 煤氣與熱力,1985, (1):33-38. [6] 席德粹, 劉松林, 王可仁編著. 城市燃氣管網設計與施工[M]. 上海:上??茖W技術出版社, 1997. [7] 求是科技. Visual C++6.0程序設計與開發技術大全[M]. 北京:人民郵電出版社, 2004.9. [8] 何光渝. Visual C++ 常用數值算法集[M]. 北京:科學出版社, 2002. 61-81. [9] 蔣長錦. 科學計算和C程序集[M]. 合肥:中國科學技術大學出版社, 1998. 88-111. [10] 翟瑞彩, 謝偉松. 數值分析[M]. 天津:天津大學出版社, 2000. 13-66. [11] (美)Frank M.Carrano, Janet J.Prichard著. 田玉敏譯. 數據結構與C++高級編程(第3版)[M]. 北京:清華大學出版社, 2004. [12] (美)Ivor Horton著. 李予敏譯. C++入門經典 [M]. 北京:清華大學出版社, 2004.