999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

油田多通路集輸管網基于圖的遍歷算法

2022-04-29 03:22:52顧永濤步凌飛王海文
科學技術與工程 2022年7期

顧永濤, 步凌飛, 王海文*

(1.中石化勝利油田分公司孤東采油廠, 東營 257237; 2.中國石油大學(華東)石油工程學院, 青島 266580)

在油井產出液經多通路集輸管網運輸到集油站的過程中,需要對管網內的流量、流向以及壓力分布做出預測計算,以滿足安全生產的需要[1-2]。其中,管道內的流量和流向決定了管道的各項參數以及使用壽命,壓力分布[3]即管網節點壓力和油井回壓,它們反映了流體在地面集輸管網內流動過程中水力損失的大小[4],從而決定了管道以及井口設施的強度。

實際生產中,多口油井公用集輸管網,有枝狀、環狀或兩者組合[5]。集輸管網上油井生產參數發生改變時,管網內的流量、流向以及壓力分布也隨之改變,為了滿足安全生產的需要,需要建立能夠遍歷計算出集輸管網內流量、流向以及壓力分布的方法[6]。地面管網的分布模式對集輸管網壓力分布影響較大[7],關德慧[8]、王強等[9]針對枝狀注水地面管網提出了新型矩陣分塊水力計算方法。王力等[10]針對單管環狀摻熱水的油氣集輸管網提出了一種基于二叉樹算法的水力計算方法。以實例化對象組合為基礎,將管網節點封裝成不同的類,建立了水力計算分析模型,利用二叉樹數據結構對系統管網的管線流量、節點壓力、等采用不同類的迭代順序進行求解。王力等[11]通過分析油田污水系統的結構及來水調度情況,建立了一套適用于有固定流向的污水環狀管網水力計算模型,并根據流體的連續性方程及管網環能量方程對污水管網進行水力計算。但上述成果大多適用于枝狀注水管網以及有已知流向的摻水環狀管網,對于集油、集氣管網的計算大多利用管元的能量平衡方程和節點流量方程構造方程組求解[12-13],計算量大且不易收斂。目前油田采用的多井多通路的環狀管網,因其拓撲結構復雜,油井壓力、流量調節時會互相影響,公用管道內流體流向不確定等因素造成用上述方法計算往往難以精確[14]。所以提出基于圖論思想,將復雜管網元件利用鄰接表數據結構儲存,廣度優先搜索遍歷管網各元件進行迭代計算,實現油田多通路環狀管網拓撲結構的建立以及管網各個參數的水力計算。

1 油田管網拓撲結構

1.1 枝狀集輸管網

干線貫穿油氣田中心,將位于干線兩側的油井管線接到干線上,干線連接至集油站,形如樹枝[15]。其布置形式如圖1所示。

圖1 枝狀集輸管網Fig.1 Dendritic pipe network

對于枝狀管網,可將管網拓撲結構簡化為二叉樹,由于管網中流體流向一定,所以可確定各管段內的流體流量,根據管道自身屬性和壓降公式計算出各管段的壓降,在集油站壓力已知的情況下,便可累加計算出各個節點壓力和井口回壓,最終完成整個管網的計算。

1.2 環狀集輸管網

每口油井管線連至集輸環路干線,干線呈環狀,每口油井的產出液有2條通道到達集油站,可在環狀干線上某處中斷的情況下維持管網上油井繼續生產[16],其布置形式如圖2所示。

編號1~5為連接節點,6~9為油井,10為集油站;①~⑤為環形環網管段,⑥~⑩為連接集油站和油井的運輸管道;箭頭方向為環狀管道內預設流體流動方向圖2 環狀集輸管網Fig.2 Ring pipe network

在求解環狀管網時,由于每口油井產出液有2條通道到達集油站,所以環狀環網內各管段的流量和流體方向無法確定,無法利用二叉樹模型簡單的累加計算出節點壓力和井口回壓。所以應建立一個數學模型,將管網中的各個元件賦予一個唯一的編號,用于儲存管網的拓撲結構,并按照編號順序遍歷計算,在計算的過程中可預先選定流體流動方向,待根據迭代計算收斂后,可得到壓力分布以及管段內流量,并通過管段兩端連接節點壓力大小判斷管道內正確流向。

2 數學模型

對一個管網進行遍歷計算時,一般需要一個完整的數學模型表達整個管網的拓撲結構[17],然而,某些管網含有太多管段且結構復雜[18],傳統分析方法工作量很大,若是根據圖論[19]的思想,將管網視為一個個元件按照特定順序連接而成,各個元件不僅表達各自的物理特性,同時也包含連接信息。其中,基本屬性是元件的各種物理參數,用于管道的壓降計算;連接屬性是元件之間相連順序的依據,用于構成管網拓撲結構。如表1所示常見元件的基本信息。

表1 常見元件基本信息Table 1 Basic information for common components

2.1 管段

管網的主體為管段,管段具有多種屬性,如管長、管徑、內部粗糙度等構造屬性;流量,阻力等流體屬性;所處管網位置,起點、終點、方向等連接屬性。其中,管段的構造屬性和流體屬性用于管段壓降計算,根據不同的流體條件,可采用相應的壓降計算公式,目前兩相管流壓降計算公式主要包括: Beggs-Brill法、DuklerII法和Baker法等方法[20]。下面以DuklerII法為例計算集輸管段壓降,計算管段壓降的公式[12]為

(1)

式(1)中:λ為管道摩阻系數;L為管路的長度,m;d為管路內徑,m;W為集輸管道內的混合速度,m3/h;ρm為校正密度,m3/h。

2.2 油井

在管網拓撲結構中,油井可看作為源。在計算過程中,源的作用主要是提供產出液流量以及產出液的物性參數,如溫度、黏度、含水率等。每口井的產出液通過管道運輸最終匯入公用環形管網流入集油站,通常情況下忽略沿程流量損失,產出液匯入公用環形管道時的流量以及物性參數與剛從油井產出時相同。

2.3 集油站

集油站是環形管網中流體流動的終點,各個油井的產出液經過環形管網的運輸最終流入集油站,在計算過程中,集油站的進站壓力已知,作為迭代條件之一求解管道遍歷計算。

2.4 連接節點

在管網拓撲結構中,油井以及集油站通過各自運輸管道與環形管道相連的點即為連接節點。連接節點具有流量和壓力兩種物理屬性以及位置信息,連接節點的壓力決定了管道內的流體流向以及集輸管網的壓力分布;連接節點作為環形管道中各管段的起點和終點,其位置信息決定了管網的拓撲結構。在迭代計算過程中,與油井相連的連接節點提供流入環形管道的初始流量,并且各連接節點處應滿足基爾霍夫第一定律,即流入節點的流量與流出節點的流量相等,表達式為

(2)

式(2)中:f(p)為節點壓力p下算出的節點處進出節點的流量之和,m3/h;n為與節點相連的管段數量;qv,i為節點處第i條與該節點相連管段的流量,m3/h,進入節點的流量取正,離開取負。

3 算法設計

3.1 利用鄰接表存儲管網拓撲結構

鄰接表是圖的一種鏈式存儲結構[21],在儲存管網拓撲結構時,對管網中每一個連接節點建立一個單鏈表,鄰接表中第i個單鏈表的結點表示為起點為vi的管段,每個結點由三個屬性組成,分別為鄰接點屬性(adj)、鏈屬性(nex)和數據屬性(len),在計算中用數組存儲這三個屬性,N個表結點則一共包含3個長度為N的數組。表結點的鄰接點屬性(adj)儲存的是與起點鄰接的點的編號,即該管段終點編號;鏈屬性(nex)指向下一條相鄰管道;數據屬性(len)存儲管段的構造屬性和流體屬性,用于壓降計算。每個鏈表上附設一個頭結點,頭結點同樣用數組儲存兩個屬性,分別為鏈屬性(head)以及數據屬性(data)。頭結點中,鏈屬性(head)指向起點vi連接的第一個管段,數據屬性(data)儲存起點vi的編號以及計算時該點的輸入流量以及初設壓力。以圖2中管段②為例,其為起點是編號1的邊,鏈表中表結點和頭結點存儲結構如圖3所示,圖2中整個管網的鄰接表結構如圖4所示,鄰接表實現代碼如下:

圖3 管段②的鏈表結構Fig.3 Linked list structure of pipe segment②

圖4 圖2中管網鄰接表結構Fig.4 Pipe network adjacency list structure in fig.2

double p[N],in[N];//p數組存儲連接節點壓力,in數組存儲節點輸入流量,兩個數組存儲在頭結點的數據屬性

int n,m,ee=0;//定義變量,n為節點總數,m為管道總數,ee為中間變量。

int adj[M<<1];//定義表結點鄰接點屬性數組。

int nex[M<<1];//定義表結點鏈屬性數組。

int head[N];//定義頭結點鏈屬性數組。

double len[M];//定義表結點數據屬性。

void add(int u,int v,double c)//u為管段作為起點的連接節點編號,v為管段作為終點的連接節點編號,c為管段的數據屬性,如管段的內徑,長度,管段內流體黏度等。

{

adj[++ee]=v;nex[ee]=head[u];head[u]=ee;len[ee]=c;// 建立鄰接表結構。

}

int main()

{

scanf("%d%d",&n,&m);//輸入連接節點總數n,管段總數m。

int u,v,c;//u為管段作為起點的連接節點編號,v為管段作為終點的連接節點編號,c為管段的數據屬性,如管段的內徑,長度,管段內流體黏度等。

for (int i=1;i<=m;i++)

{

scanf("%d%d%d",&u,&v,&c);//輸入u、v、c。

add(u,v,c);

add(v,u,c);//根據輸入的編號建立鄰接表儲存拓撲結構。

}

}

3.2 廣度優先搜索遍歷管網

在遍歷管網時,需要從某一連接節點出發,訪問該連接節點后依次訪問該點的鄰接點,然后分別從這些鄰接點出發再依次訪問它們的鄰接點,直至圖中所有的連接節點的鄰接點都被訪問到[21]。所以,基于廣度優先搜索的方法(breadth-first search,BFS)適合進行整個管網的遍歷。在管網拓撲結構中,集油站作為管道流體的終點,其連接節點唯一,所以從集油站連接節點開始訪問鄰接點,最后將訪問后的連接節點倒序存入數組,即管網中距離集油站最遠的連接節點編號為數組中首個數字,集油站連接節點編號為數組中末尾數字,在之后的迭代計算中,則調取數組中的順序進行遍歷計算。廣度優先搜索的實現代碼如下:

void bfs(int x)

{

int t[N];//建立存儲連接節點順序的數組t。

int a[N];//建立輔助隊列a,用于存放節點。

int vis[N];//建立輔助隊列vis,用于存放為訪問過的節點。

int head,tail;//建立隊首指針head和隊尾指針tail。

head=tail=1;

a[1]=x;//將集油站連接節點編號放入隊列。

vis[x]=1;//這個點x被標記為被訪問過。

while (head<=tail)//當隊列不為空。

{

int u=a[head];//給出隊首節點。

t[n-num]=u;//給隊首節點標記求解順序,其中n為連接節點總數,num為被訪問過的節點總數。

num++;

for (int j=head[u];j>0;j=nex[j])

{

if (vis[e[j]]==0)

{

a[++tail]=e[j];

vis[e[j]]=1;

}

}//將隊首節點相鄰的未被訪問的節點加入隊列。

head++;//隊首節點出隊。

}

return;

}

3.3 迭代計算

在迭代求解時,參考趙丹銘等[22]提出的牛頓迭代法進行計算,該方法穩定性好、收斂快、結果準確。表達式為

(3)

γ=γδ

(4)

式中:p′為節點壓力p的修正值;γ為收斂因子,初始取1;f(p)為壓力p下算出的連接節點的進出流量之和;f(p′)為節點壓力p′下算出的連接節點的進出流量之和;f(p′)為f(p)的導數;δ為收斂系數,取值為0~1。

在遍歷計算時,p0為設置的初始壓力,p為待求的連接節點壓力,qvi為待求的管段流量,p′為壓力p的修正值,ε為設置的迭代精度。該迭代法步驟如下[15]:

Step 1從數組中調取連接節點編號順序,設置各連接節點壓力初值p0,按式(1)依次算出各環狀管段流量qvi。

Step 2根據式(2),按順序計算得到f(p),再依據式(3)算出新的連接節點壓力p′。

Step 3判斷連接節點是否同時滿足符合收斂條件f(p)<ε,若是,結束計算并顯示結果。若否,進行step 4。

Step 4采用step 2計算出的p′根據式(1)、式(2)計算出f(p′),并判斷是否符合收斂條件。若符合收斂條件,結束計算并顯示結果。若不符合收斂條件,繼續判斷;若f(p′)≤f(p),p′代替p回到step1進行新一輪迭代,γ取1; 否則,進入step5并循環直到f(p′)≤f(p)。

Step 5根據式(4)和設置的δ計算γ,再把算得的新γ代回式(3)和式(2)重新計算p′和f(p′),如此不斷縮小γ值更新p′,直到滿足f(p′)≤f(p)。

迭代計算結束后,輸出結果為各連接節點壓力和各管段流量,通過判斷各管段兩端的壓力大小即可得到流體流向,再根據式(1),求得各個油井運輸管段(如圖2管段⑦~⑩)的壓降,與連接節點壓力相加,可計算出各個油井的回壓,從而可得到整個集輸管網的計算結果。

4 算例計算及分析

某區塊集輸管網示意圖如圖5所示,區塊中有四口油井,一個集油站,油井的產液量以及流體參數、環形管網中管段的構造屬性和流體屬性、集油站壓力等參數已知。實際測量值與算法計算值數據如表2與表3所示。

圖5 環狀管網計算模型示意圖Fig.5 Schematic diagram of ring pipe network calculation model

表2 計算壓力與實測壓力Table 2 Calculate the pressure value and the measured pressure value

表3 計算流量與實測流量Table 3 Calculate the flow value and the measured flow value

計算后可根據管道兩端的壓力差判別流動方向,流動方向如圖5所示,由計算結果表明,該算法計算的環狀管網壓力值相對誤差最大3.5%,流量值絕對誤差最大3.1%,工程應用具有較高的精度,可作為集輸管網的遍歷計算方法。

5 結論

(1)針對實際生產中管網拓撲結構復雜的特點,利用圖論的思想將復雜管網模型簡化為各種元件順序相連的拓撲結構,每個管網元件包含了用于構成管網拓撲結構的連接屬性和進行壓降計算中所需的各種參數。

(2)由于環狀管網公用管道內流向不確定造成各個管段內的壓降以及連接節點壓力難以計算,無法通過簡單的壓降累加管網的壓力分布,所以提出了一種基于圖論算法,將簡化管網拓撲結構中的各種元件賦予唯一編號,利用鄰接表儲存管網拓撲結構,廣度優先搜索遍歷管網連接節點確定求解順序,在連接節點處建立方程并采用牛頓迭代法迭代計算,最終完成整個環狀管網的遍歷計算。

(3)通過計算實例表明,利用該算法的計算結果與實測數據誤差較小,工程應用具有較高的精度,可以成為遍歷計算集輸管網流向、流量和壓力的分布的有效工具。

主站蜘蛛池模板: 最新国产网站| 国产一区二区影院| 久久夜色精品国产嚕嚕亚洲av| 毛片免费高清免费| 永久免费av网站可以直接看的 | 激情亚洲天堂| 国产在线视频导航| 亚洲经典在线中文字幕| 欧美精品亚洲精品日韩专区| 久草性视频| 亚洲中文在线看视频一区| 国产精品hd在线播放| 婷婷久久综合九色综合88| 日韩在线观看网站| 久夜色精品国产噜噜| 被公侵犯人妻少妇一区二区三区| 亚洲自偷自拍另类小说| 国产99精品视频| 国产美女视频黄a视频全免费网站| 国产美女自慰在线观看| 久久96热在精品国产高清| 中文字幕在线日本| 91色在线视频| 国产丝袜丝视频在线观看| 老色鬼久久亚洲AV综合| 国产一在线| 亚洲黄色视频在线观看一区| 欧美一区日韩一区中文字幕页| 一级片一区| aa级毛片毛片免费观看久| 夜精品a一区二区三区| 天天爽免费视频| 一级毛片在线播放免费观看| 亚洲天堂网视频| 在线高清亚洲精品二区| 国产爽妇精品| 欧美成人精品一级在线观看| 无码免费的亚洲视频| 亚洲天堂精品视频| 国产精品极品美女自在线看免费一区二区| 国产精品人成在线播放| 性欧美在线| 免费观看三级毛片| 国产精品国产主播在线观看| 99精品视频播放| аⅴ资源中文在线天堂| 亚洲国产成人超福利久久精品| 五月婷婷亚洲综合| 亚洲精品手机在线| 亚洲男人的天堂久久香蕉网| 无遮挡国产高潮视频免费观看| 99热这里只有精品在线播放| 日本手机在线视频| 久久久久久尹人网香蕉| 欧美成人一级| 国产成人精品无码一区二 | 亚洲国产系列| 中文字幕有乳无码| 国产麻豆aⅴ精品无码| 成人精品午夜福利在线播放| 久久精品国产精品青草app| 欧美激情视频在线观看一区| 久久99国产综合精品1| 日韩色图在线观看| 欧洲熟妇精品视频| 少妇精品网站| 最新国产在线| 久久国产亚洲偷自| 国产女人18毛片水真多1| 日韩福利视频导航| 91精品国产91久无码网站| 精品中文字幕一区在线| 久久久受www免费人成| 99视频只有精品| 色135综合网| 亚洲国产黄色| 中文字幕无码制服中字| 国产肉感大码AV无码| 无码AV动漫| 欧美福利在线观看| 色妞永久免费视频| 国产精品自在在线午夜区app|