專利名稱:使用松弛變量確定網(wǎng)絡(luò)中的有效約束的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及用于確定地面設(shè)施網(wǎng)絡(luò)中的有效約束的系統(tǒng)和方法。本發(fā)明尤其涉及在系統(tǒng)方程中使用松弛變量和乘數(shù)值以消去無關(guān)(無效)約束。
背景技術(shù):
在石油和天然氣生產(chǎn)領(lǐng)域,可以將地面設(shè)施網(wǎng)絡(luò)系統(tǒng)表示為節(jié)點、節(jié)點之間的連接、節(jié)點和油藏網(wǎng)格單元(射孔)之間的連接,以及節(jié)點和油庫(開采)或源(噴射)之間的連接的組。圖1說明了具有約束的示例性的地面設(shè)施網(wǎng)絡(luò)。流程網(wǎng)絡(luò)計算的主要難點是確定哪個可能的約束是有效的。例如,可能有數(shù)以百計或可能數(shù)以千計的以各種方式相互作用的約束。這最可能使制作簡單的試驗和誤差策略過分昂貴,因為每個試驗需要分解設(shè)施矩陣。此外,特定的約束可以互不兼容。例如,在單一的出油管線內(nèi)不可以有兩個有效的速率約束,因為這造成奇異矩陣。可以將不同種類的速率約束應用到連接,例如,地面條件的最大油相速率約束 Q0SMAX。同樣,可以將不同種類的最小/最大壓力約束(Pmin/Pmax)應用于節(jié)點。速率約束通常由在連接處的閥施加。節(jié)點處的Pmin約束由在節(jié)點的下游連接處的閥施加,并且Pmax約束由在節(jié)點的上游連接處的閥施加。如果沒有規(guī)定約束(或約束是無效的),可以將液壓方程應用于連接處,以將流體成分速率和末端節(jié)點壓力聯(lián)系起來。必須建立方程組,以求解連接中的流體成分速率和節(jié)點處的壓力。方程通常基于網(wǎng)絡(luò)的性質(zhì)和給定約束,并可以包括(a)節(jié)點處的流體成分質(zhì)量平衡(mass balance)方程。(b)連接處的連接方程,其可以是(i)液壓方程,(ii)速率約束方程,(iii)節(jié)點下游連接處的具有Pmin約束的,或節(jié)點上游連接處的具有Pmax約束的壓力約束方程,或(iv) 其它種類的約束,諸如分離/分流約束方程。(c)射孔處的射孔方程。將方程(a)和(c)固定,同時需要一種算法以為每一個連接選擇僅一個可能的連接方程,每一個連接有不只一個可能的連接方程。該算法必須決定為給定的連接選擇哪一個可能的連接方程,需記住不能求解過約束網(wǎng)絡(luò)系統(tǒng)且每一個連接僅可以有一個連接方程。如果網(wǎng)絡(luò)系統(tǒng)是過約束的,那么當使用牛頓法求解網(wǎng)絡(luò)的非線性方程組時,建立不能在牛頓步通過線性解法(linear solver)求解的系統(tǒng)方程的奇異矩陣。牛頓法是求解非線性方程組的標準方法中的一種;其使用線性方程組的解,該解根據(jù)非線性方程的泰勒級數(shù)展開而得到以估計非線性方程的解。該線性化過程可以在多次迭代中重復,直至解收斂。將每一次迭代稱作牛頓步。圖2說明了過約束的地面_設(shè)施網(wǎng)絡(luò)的示例性部分。在該示例中,假設(shè)流體只有一種成分,因此系統(tǒng)的未知數(shù)是分別為連接1處的速率、連接2處的速率和節(jié)點2處的壓力的qi、q2和p2 ;而P1 (節(jié)點1處的壓力)和p3(節(jié)點3處的壓力)是常數(shù)(P1 = 5000, P3 = 150)。對于該示例還假設(shè),節(jié)點1和節(jié)點3之間的壓降足夠大,使得當連接1和連接2處的閥完全打開時,這兩個速率約束被破壞。被選作連接1和連接2處的連接方程的兩個速率約束方程和在節(jié)點2處的質(zhì)量平衡方程分別為qi = 1000,...............................................................(1)q2 = 2000,...............................................................(2)qrq2 = 0,...............................................................(3)很清楚,這三個方
程是矛盾的,所以不能都被滿足,并且節(jié)點2處的壓力是不確定的,因為該壓力沒有出現(xiàn)在任何方程中。如果將未知數(shù)排序為qi、Q2和P2,那么系統(tǒng)方程矩陣變?yōu)?br>
"1 0 0"
O 1 0 ..................................................................................................................................(4)
_1 -1 0_該矩陣為奇異矩陣所以不能被求解??梢詫⑦B接2處的QMAX約束除去,因為其值大于連接1處的QMAX約束。換言之, 速率必須等于或小于兩個QMAX約束中較小的,該較小的是連接1處的QMAX = 1000。連接 2處的QMAX約束(方程(2))可以由液壓方程替代-p2+p3+b2q2+c2 = 0,................................................ (5)其中,b2 和 C2 是液
壓相關(guān)性(hydraulics correlation)確定的常數(shù)?,F(xiàn)在可以求解網(wǎng)絡(luò)系統(tǒng),因為方程系統(tǒng)
的矩陣
ο ο'
0 1 0 ................................................................................................................................(6)
_o b2 -1_不是奇異的。由蘭德馬克圖形公司銷售的商業(yè)_油藏-模擬應用Nexus ,通常以圖3和圖4 說明的方式通過啟發(fā)式地(heuristically)消去無關(guān)約束,做出完全連結(jié)的方式的油藏和地面設(shè)施網(wǎng)絡(luò)系統(tǒng)(包括油井)的模型,因此,Nexus 只是與其它傳統(tǒng)的確定有效約束的方法一樣昂貴。圖3說明了 Nexus 時間-步模擬的全部工作流程300。工作流程300的開始于第一個牛頓_也稱作時間步的開端。在步驟304中,參考圖4中更為詳細的描述的方式,使用固定的油藏條件求解獨立地面網(wǎng)絡(luò)模型。在步驟306中,工作流程300確定獨立-地面-網(wǎng)絡(luò)模型牛頓步是否收斂。如果沒有收斂,則工作流程300在步驟304重復下一個牛頓步。如果收斂,則工作流程300在步驟308求解連結(jié)的油藏/地面網(wǎng)絡(luò)模型,并在步驟310確定獨立-地面-網(wǎng)絡(luò)模型牛頓步是否收斂。在步驟312,工作流程300繼續(xù)至下一個時間步。
圖4中的方法400說明了求解圖3中步驟304的獨立-地面-網(wǎng)絡(luò)模型的傳統(tǒng)方法。方法400開始于獨立-網(wǎng)絡(luò)求解的第一個牛頓,并通過消去無關(guān)的約束啟發(fā)式地確定有效約束。在步驟404中,在當前時間步對用戶規(guī)定的網(wǎng)絡(luò)配置和約束的任何變化進行檢查。如果沒有變化,那么方法400進行至步驟406 ;否則,網(wǎng)絡(luò)在步驟404(b)重新初始化并且隨后方法400繼續(xù)至步驟406。在步驟406中,將每一個當前牛頓步的流體速率和節(jié)點壓力的值與約束值作比較,從而確定每一個約束的破壞因子。換言之,分析每一個連接和節(jié)點,以確定是否有任何破壞的約束以及其被破壞的程度。選擇每一個連接和節(jié)點的具有最大破壞因子的約束,作為有效約束的候選(candidate)。在步驟408中,將網(wǎng)絡(luò)中所有的無關(guān)約束移除作為有效約束候選。所有保留的約束為有效約束。例如,在圖1中,連接P-I和P-2的QOSMAX約束的總和小于集油1的QOSMAX 約束。如果必須滿足的P-I和P-2的約束被滿足,集油1的約束也自動被滿足。因此,集油 1的約束是無關(guān)的,因而應該被移除。然而,當連接集油1被由數(shù)以百計或者可能數(shù)以千計的連接(其可能本身具有多種約束)組成的復雜網(wǎng)絡(luò)從連接P-I和連接P-2分開,這種檢查邏輯的方式會過分昂貴并且不可靠。例如,可能遺漏一些無關(guān)的約束,這導致奇異矩陣,或者可能移除一些應該被保留的約束,這導致不準確的解。在步驟410中,將約束方程作為具有有效約束的每一個連接的連接方程。否則,將液壓方程作為連接方程。在步驟412中,使用已知的線性解法求解線性化的網(wǎng)絡(luò)系統(tǒng)方程。 在步驟414中,線性解法確定網(wǎng)絡(luò)系統(tǒng)方程是否產(chǎn)生奇異矩陣。如果矩陣是奇異的,方法繼續(xù)至步驟420并確定網(wǎng)絡(luò)是否已被重新初始化。如果網(wǎng)絡(luò)已經(jīng)被重新初始化,那么方法 400在步驟422提前終止。如果網(wǎng)絡(luò)還沒有被重新初始化,那么方法400在步驟404(b)重復并重新初始化網(wǎng)絡(luò)。然而,如果矩陣不是奇異的,那么方法400確定在步驟416是否發(fā)生收斂。如果沒有發(fā)生收斂,那么方法400在步驟406重復,這是下一個牛頓步。如果獲得了收斂,那么方法400繼續(xù)至步驟418的求解連結(jié)的油藏/地面網(wǎng)絡(luò)模型求解。當使用方法400時,使用通過步驟304確定的有效約束組(具有固定的油藏條件),以建立網(wǎng)絡(luò)方程。然而,如果油藏條件改變,這會導致有效約束組與步驟304的約束組不同,這意味著網(wǎng)絡(luò)方程不正確。這迫使進行一個或更多的牛頓步。用于確定地面設(shè)施網(wǎng)絡(luò)的有效約束的其它已知和公認的方法可能會一樣昂貴,不可靠和 / 或效率低,例如,由 R. Fletcher 發(fā)表的 “Practical Methods of Optimization”, 第二版,Linear Programming中所描述的優(yōu)化方法,當應用約束時,其需要待計算的一定目標函數(shù)的最大值。因此,需要比傳統(tǒng)手段更加有效并可靠的系統(tǒng)化方法,以確定地面-設(shè)施網(wǎng)絡(luò)中的有效約束。
發(fā)明內(nèi)容
本發(fā)明通過提供一種用于確定網(wǎng)絡(luò)中的有效約束的系統(tǒng)和方法,克服了現(xiàn)有技術(shù)中的一個或更多的缺點。在一個實施例中,本發(fā)明包括一種用于確定網(wǎng)絡(luò)中的有效約束方程的方法,其包括i)選擇至少一個所述網(wǎng)絡(luò)中的連接的約束方程,每一個約束方程包括各自的松弛變量和各自的松弛變量乘數(shù);ii)選擇所述網(wǎng)絡(luò)中的每一個連接的基礎(chǔ)方程,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程包括所述每個約束方程的各自的松弛變量和另一個各自的松弛變量乘數(shù);iii)求解每一個各自的松弛變量;iv)根據(jù)每個各自的松弛變量的解,對于每個各自的松弛變量乘數(shù)和每個各自的另一個松弛變量乘數(shù),在兩個預定值之間調(diào)整各自的參數(shù);V)重復求解每個各自的松弛變量以及對于每個各自的松弛變量乘數(shù)和每個各自的另一個松弛變量乘數(shù)調(diào)整各自的參數(shù)的步驟,直至每個各自的參數(shù)等于所述兩個預定值中的一個;以及Vi)根據(jù)每個各自的參數(shù)的所述兩個預定值中的一個,確定每個約束方程是否有效。在另一個實施例中,本發(fā)明包括一種用于確定網(wǎng)絡(luò)中的有效約束方程的具有計算機可執(zhí)行指令的計算機可讀介質(zhì)。指令是可執(zhí)行的,以實現(xiàn)i)選擇至少一個所述網(wǎng)絡(luò)的連接的方程,每一個約束方程包括各自的松弛變量和各自的松弛變量乘數(shù);ii)選擇所述網(wǎng)絡(luò)的每一個連接的基礎(chǔ)方程,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的基礎(chǔ)方程包括所述每個約束方程的各自的松弛變量和另一個各自的松弛變量乘數(shù);iii)求解每一個各自的松弛變量;iv)根據(jù)每個各自的松弛變量的解,對于每個各自的松弛變量乘數(shù)和每個各自的另一個松弛變量乘數(shù),在兩個預定值之間調(diào)整各自的參數(shù);ν)重復求解每個各自的松弛變量以及對于每個各自的松弛變量乘數(shù)和每個各自的另一個松弛變量乘數(shù)調(diào)整各自參數(shù)的步驟,直至每個各自的參數(shù)等于所述兩個預定值中的一個;以及Vi)根據(jù)每個各自的參數(shù)的所述兩個預定值中的一個,確定每個約束方程是否有效。從下面的各種實施例和相關(guān)附圖的描述,本發(fā)明的其它方面、優(yōu)點和實施例對本領(lǐng)域的技術(shù)人員將會變得顯而易見。
下面將參考附圖描述本發(fā)明,其中,相同的部分使用相同的參考標號,其中圖1說明了示例性的具有約束的地面設(shè)施網(wǎng)絡(luò)。圖2說明了過約束地面_設(shè)施網(wǎng)絡(luò)的示例性部分。圖3為說明Nexus丨 工作流程的流程圖。圖4為說明傳統(tǒng)的用于確定地面_設(shè)施網(wǎng)絡(luò)中的有效約束的方法的流程圖。圖5為說明用于實現(xiàn)本發(fā)明并確定地面-設(shè)施網(wǎng)絡(luò)中的有效約束的方法的流程圖。圖6為用于說明根據(jù)本發(fā)明的有效約束的確定的示例性的地面_設(shè)施網(wǎng)絡(luò)。圖7為說明用于實施本發(fā)明的系統(tǒng)的方框圖。
具體實施例方式下面具體地描述了本發(fā)明內(nèi)容的主題,但描述本身并不限制本發(fā)明的范圍。因而, 結(jié)合現(xiàn)有或未來的技術(shù),本發(fā)明的主題也可以以其它方式實施,以包括不同的步驟或類似于在此描述的步驟的結(jié)合。此外,雖然在此可以使用術(shù)語“步驟”以描述采用的方法的不同組成部分,但不應該將術(shù)語解釋為暗示在此公開的各種步驟之間的任何特定的順序,除非通過特定順序的描述明確限制。
松弛變量提供一種方式確保約束方程總是被滿足。將松弛變量加入約束方程。然后,如果約束是無效的,松弛變量繼續(xù)松弛-也就是,其變?yōu)椴荒苡闷錆M足原始寫入的無效約束方程的量。通常在一組不等式約束方程中使用松弛變量,其中一些是有效的。然而,在本發(fā)明中方程典型地成對出現(xiàn)。存在基礎(chǔ)方程,如果約束無效,應用該基礎(chǔ)方程,還存在約束方程, 如果約束是有效的,應用該約束方程。這兩個方程中有一個并且只有一個是有效的。因此將松弛變量加至無效的方程而不是有效的方程。為此,定義了兩個乘數(shù)。將第一個乘數(shù)乘以松弛變量加至基礎(chǔ)方程,并且第二個乘數(shù)乘以松弛變量加至約束方程。下面描述的過程用于確定兩個乘數(shù)。逐漸地,過程導致一個乘數(shù)為零而另一個為一。乘數(shù)為零的方程不包含松弛變量,因此是有效的,乘數(shù)為一的方程包含松弛變量,因此是無效的。乘數(shù)作為參數(shù) (w)的函數(shù)計算。設(shè)置第一個乘數(shù)等于(w),并且設(shè)置第二個乘數(shù)等于(1-w)??梢允褂闷?br>
它函數(shù)的形式,例如,
權(quán)利要求
1.一種用于確定網(wǎng)絡(luò)中有效約束方程的方法,包括選擇所述網(wǎng)絡(luò)中連接的至少一個約束方程,每一個約束方程包括各自的松弛變量和各自的松弛變量乘數(shù);選擇所述網(wǎng)絡(luò)中每一個連接的基礎(chǔ)方程,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程包括每一個約束方程的所述各自的松弛變量和另一個各自的松弛變量乘數(shù);求解每一個各自的松弛變量;根據(jù)每一個各自的松弛變量的解,對于每一個各自的松弛變量乘數(shù)和每一個各自的另一個松弛變量乘數(shù),在兩個預定值之間調(diào)整各自的參數(shù);重復求解每一個各自的松弛變量以及對于每一個各自的松弛變量乘數(shù)和每一個各自的另一個松弛變量乘數(shù)調(diào)整各自的參數(shù)的步驟,直至每一個各自的參數(shù)等于所述兩個預定值中的一個;以及根據(jù)每一個各自的參數(shù)的所述兩個預定值中的一個,確定每一個約束方程是否有效。
2.如權(quán)利要求1所述的方法,還包括選擇所述網(wǎng)絡(luò)中每一個節(jié)點的質(zhì)量平衡方程。
3.如權(quán)利要求1所述的方法,其中,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程是液壓方程,并且所述至少一個約束方程是速率約束方程。
4.如權(quán)利要求1所述的方法,其中,所述兩個預定值是O和1。
5.如權(quán)利要求1所述的方法,還包括選擇所述網(wǎng)絡(luò)中另一個連接的另一個約束方程。
6.如權(quán)利要求4所述的方法,其中,將每一個各自的參數(shù)初始設(shè)置為0.5,并且如果各自的松弛變量的所述解小于或等于零,將所述每一個各自的參數(shù)調(diào)整接近0,并且如果所述各自的松弛變量的解大于零,將所述每一個各自的參數(shù)調(diào)整接近1。
7.如權(quán)利要求4所述的方法,其中,如果所述每一個約束方程的各自的參數(shù)的值等于 1,所述網(wǎng)絡(luò)中每一個約束方程是有效的。
8.如權(quán)利要求6所述的方法,其中,通過將一減去所述參數(shù)乘以減小因子,將每一個各自的參數(shù)調(diào)整接近1,并且通過將所述參數(shù)乘以另一個減小因子,將每一個各自的參數(shù)調(diào)整接近0。
9.如權(quán)利要求7所述的方法,還包括如果所述每一個約束方程的各自的參數(shù)等于1,將所述每一個約束方程的各自的松弛變量加至具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程。
10.如權(quán)利要求2所述的方法,還包括求解所述網(wǎng)絡(luò)中每一個有效約束方程;求解所述網(wǎng)絡(luò)中每一個質(zhì)量平衡方程;以及對于沒有約束方程的每一個網(wǎng)絡(luò)連接求解所述網(wǎng)絡(luò)中每一個基礎(chǔ)方程。
11.一種用于確定網(wǎng)絡(luò)中有效約束方程的具有計算機可執(zhí)行指令的計算機可讀介質(zhì), 包括選擇所述網(wǎng)絡(luò)中連接的至少一個約束方程,每一個約束方程包括各自的松弛變量和各自的松弛變量乘數(shù);選擇所述網(wǎng)絡(luò)中每一個連接的基礎(chǔ)方程,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程包括每一個約束方程的所述各自的松弛變量和另一個各自的松弛變量乘數(shù);求解每一個各自的松弛變量;根據(jù)每一個各自的松弛變量的解,對于每一個各自的松弛變量乘數(shù)和每一個各自的另一個松弛變量乘數(shù),在兩個預定值之間調(diào)整各自的參數(shù);重復求解每一個各自的松弛變量以及對于每一個各自的松弛變量乘數(shù)和每一個各自的另一個松弛變量乘數(shù)調(diào)整各自的參數(shù)的步驟,直至每一個各自的參數(shù)等于所述兩個預定值中的一個;以及根據(jù)每一個各自的參數(shù)的所述兩個預定值中的一個,確定每一個約束方程是否有效。
12.如權(quán)利要求11所述的計算機可讀介質(zhì),還包括選擇所述網(wǎng)絡(luò)中每一個節(jié)點的質(zhì)量平衡方程。
13.如權(quán)利要求11所述的計算機可讀介質(zhì),其中,具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程是液壓方程,并且所述至少一個約束方程是速率約束方程。
14.如權(quán)利要求11所述的計算機可讀介質(zhì),其中,所述兩個預定值是O和1。
15.如權(quán)利要求11所述的計算機可讀介質(zhì),還包括選擇所述網(wǎng)絡(luò)中另一個連接的另一個約束方程。
16.如權(quán)利要求14所述的計算機可讀介質(zhì),其中,將每一個各自的參數(shù)初始設(shè)置為 0. 5,并且如果各自的松弛變量的所述解小于或等于零,將所述每一個各自的參數(shù)調(diào)整接近 0,并且如果所述各自的松弛變量的解大于零,將所述每一個各自的參數(shù)調(diào)整接近1。
17.如權(quán)利要求14所述的計算機可讀介質(zhì),其中,如果每一個約束方程的各自的參數(shù)的值等于1,所述網(wǎng)絡(luò)中每一個約束方程是有效的。
18.如權(quán)利要求16所述的計算機可讀介質(zhì),其中,通過將一減去所述參數(shù)乘以減小因子,將每一個各自的參數(shù)調(diào)整接近1,并且通過將所述參數(shù)乘以另一個減小因子,將每一個各自的參數(shù)調(diào)整接近0。
19.如權(quán)利要求17所述的計算機可讀介質(zhì),還包括如果每一個約束方程的各自的參數(shù)等于1,將每一個約束方程的松弛變量加至具有所述至少一個約束方程的所述網(wǎng)絡(luò)連接的所述基礎(chǔ)方程。
20.如權(quán)利要求12所述的計算機可讀介質(zhì),還包括求解所述網(wǎng)絡(luò)中每一個有效約束方程;求解所述網(wǎng)絡(luò)中每一個質(zhì)量平衡方程;以及對于沒有約束方程的每一個網(wǎng)絡(luò)連接求解所述網(wǎng)絡(luò)中每一個基礎(chǔ)方程。
全文摘要
用于確定地面設(shè)施網(wǎng)絡(luò)中的有效約束的系統(tǒng)和方法,其包括在系統(tǒng)方程中使用松弛變量和乘數(shù),以消去無關(guān)(無效)約束。
文檔編號G06F17/11GK102160050SQ200880118396
公開日2011年8月17日 申請日期2008年11月25日 優(yōu)先權(quán)日2007年11月28日
發(fā)明者格雷漢姆·弗萊明, 琴·陸, 詹姆斯·威廉·Ⅲ·沃茨 申請人:蘭德馬克繪圖國際公司,哈里伯頓公司