馬延玲,爨軍紅
延長油田股份有限公司富縣采油廠 (陜西 延安 727500)
在油田開發過程中,一口井鉆至設計井深位置以后,需要進行下套管、注水泥固井等完井作業;投產以后需要下油管、油桿及配套工具,將原油從井底舉升至井口。對井眼軌跡的充分了解和全面認識是提高設計效果和避免作業失效的重要前提,而井眼軌跡是最能直觀顯示井身結構的重要依據。以Visual Basic 6.0為開發平臺,運用MatrixVB動態鏈接庫進行井眼軌跡的三維仿真,對提高油田開發效率具有重要的現實意義。
國內主要采用轉盤旋轉帶動鉆具旋轉鉆井,鉆出的井眼形狀趨向于柱面螺旋線,所以采用圓柱螺旋線法更適合我國的實際井眼軌跡,計算模型相對更精確,計算結果更合理[1]。
由于在井眼軌跡實測時,只能測到每個測段兩端點處的數據(圖1)。為了更好的反映井眼軌跡的實際情況,需要通過軌跡內插法對測斜數據進行插值,求得更多的繪圖數據,這里選用直線內插法[2-3]。
設 2 測點(L1,α1,φ1,D1,E1,N1)和(L2,α2,φ2,D2,Ei2,N2),給定插入點井深 Li,通過已知條件得到插入點距離上端點的井段長度 ΔLi,利用公式(1)~(3)可以求得插入點i的井斜角、垂深以及井斜方位角,帶入公式(4)~(6)從而求得插入點 i的坐標。

圖1 圓柱螺線法內插


給定插值點垂深Di,通過已知條件可得到插入點距離上端點垂增 ΔDi。 利用(7)~(8)式可以求得插入點i的井斜角和井深,帶入(4)~(7)從而求得插入點i的井斜角及坐標值。

以Visual Basic 6.0為開發平臺實現基本算法,以MatrixVB COM組件來實現井眼軌跡的三維仿真,仿真軟件主要分為數據管理、三維顯示、結果保存3個主要模塊,其中三維顯示模塊是主要模塊(圖2)。

圖2 系統模塊框圖
將按規定格式處理過的文本文檔中的實測井眼軌跡數據導入到軟件,保存在相應的數組中,然后通過軟件中的坐標轉換模塊對實測井眼軌跡數據進行差值計算,計算結果存儲在對應的數組中。
MatrixVB只是一組DLL動態鏈接庫,它是專門針對VB與Matlab混合編程而設計的,它提供了大量的有效算法,可以加強VB內數學運算和圖形展示。MatrixVB繼承了MATLAB的大部分功能,且能夠使VB獨立于Matlab而使用[4]。
由于MatrixVB是一款外部動態鏈接庫,要想在VB平臺上使用,必須為其設置接口,將其引用到VB工程中。
MatrixVB安裝后自動將DLL動態鏈接庫復制到C:windowssysem32路徑下,無需其他操作。安裝完成后打開VB工程,點擊工程引用,選擇C:windowssysem32MMatrix.dll,確認添加后就可以在VB中使用MATLAB的部分函數了。
MatrixVB組件使用的是MATLAB編程語言,它所采用的數據類型是矩陣,有別于VB中的數組,它不能直接識別Visual Basic中的數組類型,需進行類型轉換才能使用。所以要對經過坐標轉換的數組進行數組類型轉換,將一維數組轉換成矩陣形式X(0,i)=ArryNBZB(i);Y(0,i)=ArryDXZB(i);Z(0,i)=-ArryCHS(i)。這樣才可以通過MatrixVB的內部函數將其轉換成MatrixVB可以識別的數據類型[5]。
井眼軌跡三維仿真軟件中調用MatrixVB內部的mabs數據轉換函數,通過XX=mabs(X);YY=mabs(Y);ZZ=mabs(Z)的轉換方式,分別將經過處理的井眼軌跡的坐標直接轉換為MatrixVB可以識別的矩陣形式。
MatrixVB的優點不僅僅是可以實現井眼軌跡的三維顯示,而且繪圖函數功能強大。在符合VB語言規范的條件下,可以在VB開發平臺上進行MATLAB語言編程,僅僅需要以下代碼就可以實現井眼軌跡的三維顯示 Call plot3(XX,YY,TT,“b-”)和坐標網格繪制grid“on”,結果顯示在一個獨立的圖形窗口中,完全繼承了MATLAB圖形界面的功能,用戶可以在這個顯示界面中實現對三維仿真圖形的各種操作,包括旋轉、平移、縮放、背景更換等功能,還可以實現各種視圖的轉換及圖形打印等功能。
以Visual Basic 6.0為開發平臺,將MatrixVB直接打包在軟件安裝包中,軟件獨立性非常強,內存占用率小,安裝后就可以直接運行軟件進入主要功能界面窗口。
以延長油田股份有限公司定邊采油廠定4930井區定4961-4井為例進行軟件的驗證,將該井的實測井眼軌跡數據以文本文檔的形式導入軟件中進行計算,進行井眼軌跡的三維仿真顯示(圖3)。
MatrixVB提供的可視化三維仿真功能在Visual Basic6.0中的成功調用,不但使工作量大幅度降低,而且三維仿真結果的展示功能較多,使油田工作人員可以從任意角度、任意位置全面的觀察井下環境,具有以下優勢及功能。

圖3 井眼軌跡三維顯示
1)引用MatrixVB動態鏈接庫,使VB完全獨立于MATLAB而使用其內部函數。在VB的開發規范下使用MATLAB語言編程,圖形界面繼承了MATLAB的所有功能。操作方便,軟件獨立性強,內存占用率低。
2)引用MATLAB強大的數據處理功能和繪圖功能,降低了VB編程的一大半工作量,可視化仿真界面的展示功能強大。實現了三維仿真圖形的平移、旋轉、縮放、視角轉換、背景顏色轉換、打印等功能。
3)三維仿真圖形網格化的三維坐標系,方便井眼軌跡坐標的讀取。
[1]王禮學,陳衛東,賈照清,等.井眼軌跡計算新方法[J].天然氣工業,2003,23(增刊):57-59.
[2]張積鎖,魯港,吳俊林.井眼軌跡位移插值計算的解析法[J].石油鉆探技術,2007,35(4):35-37.
[3]王鴻雁,肖文生,劉忠硯,等.基于MATLAB的鉆井井眼軌跡三維仿真研究[J].石油礦場機械,2014,43(4):1-6.
[4]徐軍輝.MatrixVB—基于MATLAB與VB的計算引擎[J].國外電子測量技術,2002(2):31-32.
[5]毛淑芳,過秉坤.基于 MatrixVB組件的數據處理技術[J].焦作工學院學報:自然科學版,2004,23(6):464-466.