馬延玲,爨軍紅
延長油田股份有限公司富縣采油廠 (陜西 延安 727500)
在油田開發(fā)過程中,一口井鉆至設(shè)計井深位置以后,需要進(jìn)行下套管、注水泥固井等完井作業(yè);投產(chǎn)以后需要下油管、油桿及配套工具,將原油從井底舉升至井口。對井眼軌跡的充分了解和全面認(rèn)識是提高設(shè)計效果和避免作業(yè)失效的重要前提,而井眼軌跡是最能直觀顯示井身結(jié)構(gòu)的重要依據(jù)。以Visual Basic 6.0為開發(fā)平臺,運用MatrixVB動態(tài)鏈接庫進(jìn)行井眼軌跡的三維仿真,對提高油田開發(fā)效率具有重要的現(xiàn)實意義。
國內(nèi)主要采用轉(zhuǎn)盤旋轉(zhuǎn)帶動鉆具旋轉(zhuǎn)鉆井,鉆出的井眼形狀趨向于柱面螺旋線,所以采用圓柱螺旋線法更適合我國的實際井眼軌跡,計算模型相對更精確,計算結(jié)果更合理[1]。
由于在井眼軌跡實測時,只能測到每個測段兩端點處的數(shù)據(jù)(圖1)。為了更好的反映井眼軌跡的實際情況,需要通過軌跡內(nèi)插法對測斜數(shù)據(jù)進(jìn)行插值,求得更多的繪圖數(shù)據(jù),這里選用直線內(nèi)插法[2-3]。
設(shè) 2 測點(L1,α1,φ1,D1,E1,N1)和(L2,α2,φ2,D2,Ei2,N2),給定插入點井深 Li,通過已知條件得到插入點距離上端點的井段長度 ΔLi,利用公式(1)~(3)可以求得插入點i的井斜角、垂深以及井斜方位角,帶入公式(4)~(6)從而求得插入點 i的坐標(biāo)。
圖1 圓柱螺線法內(nèi)插
給定插值點垂深Di,通過已知條件可得到插入點距離上端點垂增 ΔDi。 利用(7)~(8)式可以求得插入點i的井斜角和井深,帶入(4)~(7)從而求得插入點i的井斜角及坐標(biāo)值。
以Visual Basic 6.0為開發(fā)平臺實現(xiàn)基本算法,以MatrixVB COM組件來實現(xiàn)井眼軌跡的三維仿真,仿真軟件主要分為數(shù)據(jù)管理、三維顯示、結(jié)果保存3個主要模塊,其中三維顯示模塊是主要模塊(圖2)。
圖2 系統(tǒng)模塊框圖
將按規(guī)定格式處理過的文本文檔中的實測井眼軌跡數(shù)據(jù)導(dǎo)入到軟件,保存在相應(yīng)的數(shù)組中,然后通過軟件中的坐標(biāo)轉(zhuǎn)換模塊對實測井眼軌跡數(shù)據(jù)進(jìn)行差值計算,計算結(jié)果存儲在對應(yīng)的數(shù)組中。
MatrixVB只是一組DLL動態(tài)鏈接庫,它是專門針對VB與Matlab混合編程而設(shè)計的,它提供了大量的有效算法,可以加強(qiáng)VB內(nèi)數(shù)學(xué)運算和圖形展示。MatrixVB繼承了MATLAB的大部分功能,且能夠使VB獨立于Matlab而使用[4]。
由于MatrixVB是一款外部動態(tài)鏈接庫,要想在VB平臺上使用,必須為其設(shè)置接口,將其引用到VB工程中。
MatrixVB安裝后自動將DLL動態(tài)鏈接庫復(fù)制到C:windowssysem32路徑下,無需其他操作。安裝完成后打開VB工程,點擊工程引用,選擇C:windowssysem32MMatrix.dll,確認(rèn)添加后就可以在VB中使用MATLAB的部分函數(shù)了。
MatrixVB組件使用的是MATLAB編程語言,它所采用的數(shù)據(jù)類型是矩陣,有別于VB中的數(shù)組,它不能直接識別Visual Basic中的數(shù)組類型,需進(jìn)行類型轉(zhuǎn)換才能使用。所以要對經(jīng)過坐標(biāo)轉(zhuǎn)換的數(shù)組進(jìn)行數(shù)組類型轉(zhuǎn)換,將一維數(shù)組轉(zhuǎn)換成矩陣形式X(0,i)=ArryNBZB(i);Y(0,i)=ArryDXZB(i);Z(0,i)=-ArryCHS(i)。這樣才可以通過MatrixVB的內(nèi)部函數(shù)將其轉(zhuǎn)換成MatrixVB可以識別的數(shù)據(jù)類型[5]。
井眼軌跡三維仿真軟件中調(diào)用MatrixVB內(nèi)部的mabs數(shù)據(jù)轉(zhuǎn)換函數(shù),通過XX=mabs(X);YY=mabs(Y);ZZ=mabs(Z)的轉(zhuǎn)換方式,分別將經(jīng)過處理的井眼軌跡的坐標(biāo)直接轉(zhuǎn)換為MatrixVB可以識別的矩陣形式。
MatrixVB的優(yōu)點不僅僅是可以實現(xiàn)井眼軌跡的三維顯示,而且繪圖函數(shù)功能強(qiáng)大。在符合VB語言規(guī)范的條件下,可以在VB開發(fā)平臺上進(jìn)行MATLAB語言編程,僅僅需要以下代碼就可以實現(xiàn)井眼軌跡的三維顯示 Call plot3(XX,YY,TT,“b-”)和坐標(biāo)網(wǎng)格繪制grid“on”,結(jié)果顯示在一個獨立的圖形窗口中,完全繼承了MATLAB圖形界面的功能,用戶可以在這個顯示界面中實現(xiàn)對三維仿真圖形的各種操作,包括旋轉(zhuǎn)、平移、縮放、背景更換等功能,還可以實現(xiàn)各種視圖的轉(zhuǎn)換及圖形打印等功能。
以Visual Basic 6.0為開發(fā)平臺,將MatrixVB直接打包在軟件安裝包中,軟件獨立性非常強(qiáng),內(nèi)存占用率小,安裝后就可以直接運行軟件進(jìn)入主要功能界面窗口。
以延長油田股份有限公司定邊采油廠定4930井區(qū)定4961-4井為例進(jìn)行軟件的驗證,將該井的實測井眼軌跡數(shù)據(jù)以文本文檔的形式導(dǎo)入軟件中進(jìn)行計算,進(jìn)行井眼軌跡的三維仿真顯示(圖3)。
MatrixVB提供的可視化三維仿真功能在Visual Basic6.0中的成功調(diào)用,不但使工作量大幅度降低,而且三維仿真結(jié)果的展示功能較多,使油田工作人員可以從任意角度、任意位置全面的觀察井下環(huán)境,具有以下優(yōu)勢及功能。
圖3 井眼軌跡三維顯示
1)引用MatrixVB動態(tài)鏈接庫,使VB完全獨立于MATLAB而使用其內(nèi)部函數(shù)。在VB的開發(fā)規(guī)范下使用MATLAB語言編程,圖形界面繼承了MATLAB的所有功能。操作方便,軟件獨立性強(qiáng),內(nèi)存占用率低。
2)引用MATLAB強(qiáng)大的數(shù)據(jù)處理功能和繪圖功能,降低了VB編程的一大半工作量,可視化仿真界面的展示功能強(qiáng)大。實現(xiàn)了三維仿真圖形的平移、旋轉(zhuǎn)、縮放、視角轉(zhuǎn)換、背景顏色轉(zhuǎn)換、打印等功能。
3)三維仿真圖形網(wǎng)格化的三維坐標(biāo)系,方便井眼軌跡坐標(biāo)的讀取。
[1]王禮學(xué),陳衛(wèi)東,賈照清,等.井眼軌跡計算新方法[J].天然氣工業(yè),2003,23(增刊):57-59.
[2]張積鎖,魯港,吳俊林.井眼軌跡位移插值計算的解析法[J].石油鉆探技術(shù),2007,35(4):35-37.
[3]王鴻雁,肖文生,劉忠硯,等.基于MATLAB的鉆井井眼軌跡三維仿真研究[J].石油礦場機(jī)械,2014,43(4):1-6.
[4]徐軍輝.MatrixVB—基于MATLAB與VB的計算引擎[J].國外電子測量技術(shù),2002(2):31-32.
[5]毛淑芳,過秉坤.基于 MatrixVB組件的數(shù)據(jù)處理技術(shù)[J].焦作工學(xué)院學(xué)報:自然科學(xué)版,2004,23(6):464-466.