摘 要: 針對基于Web的實時三維可視化應用需求,結合鄰近井段的結構形狀、變化規律,改進了貝塞爾曲線擬合算法,提高了測斜數據處理速率和曲化度,并采用Away3D技術實現軌跡的三維展示。應用結果表明,軌跡繪制細膩流暢,系統具備良好的實時性。
關鍵詞: 井眼軌跡;Away3D;Web;實時;可視化
0 引言
在隨鉆測井LWD[1]過程中,井眼軌跡的可視化是實時監測的重要手段,也是實現軌跡控制的基礎,其表現的準確性、實時性,直接影響鉆井導向的決策。
隨著Internet的不斷普及,B/S模式Web技術成為一種流行的信息交互平臺[2]。但對于顯示效率、實時性要求較高的井眼軌跡可視化來說,傳統B/S模式其固有的缺陷[3]使得實時數據發布受到限制。借助Web3D技術的3D引擎對圖形圖像實時渲染,則可有效地緩解這一問題。
根據生產實際和Web技術的特點,采用基于Web的B/S結構,借助C#.NET開發環境[4],通過改進的軌跡優化算法,結合Web3D技術實現三維實時井眼軌跡可視化,使測井人員隨時隨地通過瀏覽器方便快捷地對軌跡狀態進行準確高效的實時監測。
1 Web3D技術及平滑算法
1.1 Web3D技術支持
Web3D技術主要有基于HTML5方式和基于瀏覽插件方式。HTML5方式中,WebGL直接以OpenGL為接口,從Web腳本生成3D圖形渲染[5],但在它安全性方面還存在缺陷,標準的制定和推廣還有很大風險。
基于插件方式的Web3D技術眾多。其中Java3D是Java語言在三維圖形領域的擴展,提供一個高性能的面向對象編程模型。參考文獻[6]對基于Java3D的井眼軌跡可視化過程做了詳細描述,可視化效果較為理想,但Java3D中沒有提供基本形體,給編程帶來不便。
Away3D是一個Flash平臺[7]的實時3D引擎技術,其基本思想是利用Flex中Stage3D API技術在網頁上創建3D對象[8]。相比較于其他三維技術,借助該技術完成三維實時井眼軌跡可視化有以下技術上的優勢。
(1)播放器插件。Away3D所使用的Flash Player借助硬件加速功能,使其具備較高的顯示效率和超群的渲染能力,為井眼軌跡的實時渲染提供保障。同時,其普遍性保證了技術人員使用方便。
(2)良好的跨平臺性。ActionScript3.0作為該技術的開發語言,其文檔對象模型(SWF格式動畫)可以嵌入其他多種應用程序,這大大優化了該技術的跨平臺性。利用高級語言高效的數據結構進行井眼數據的復雜處理,將結果直接傳入動畫文件進行軌跡顯示,進一步確保軌跡顯示的實時性。
(3)容易實現,展現豐富效果。Away3D提供基本形體的庫函數,方便基本形體的創建。此外,該技術也支持鼠標和觸摸交互,提供豐富的后處理效果。
1.2 井眼軌跡平滑算法
軌跡數據是由測斜數據經過井眼軌跡算法[9-10]得到的離散數據,從軌跡結構計算模型的微元分析角度看,軌跡數據進行有序排列并連接得到的是一條軌跡折線。因此,坐標增量計算要求測點間隔不宜過長,以保證離散帶來的誤差足夠小;而如果原始數據間隔較大,則需進行插值處理增加數據點以彌補測斜數據的不足,從而提高軌跡曲化程度。
參考文獻[11]提出一種三次樣條插值及多項式擬合平滑方法。通過構造三次樣條函數求得插值,采用多項式最小二乘擬合技術對測量數據進行平滑處理[11]。該方法處理效果明顯,但計算量大,原理復雜,應用于Web井眼軌跡可視化,實時性受到影響。本文以三階貝塞爾曲線擬合為基礎對軌跡數據的插值處理加以改進。算法原理簡單、計算量小、計算效率較高。
2 改進的軌跡平滑算法原理
三階貝塞爾曲線擬合是將曲線定義為起始點、終止點以及兩個控制點,通過控制點的滑動,求得圓弧所有點,完成曲線擬合。將其直接應用于井眼軌跡繪制,由于曲線只通過起止點,距控制點偏移較大[12],會丟失大量真實井眼坐標信息,從而導致軌跡走樣。因此,對控制點的選取加以改進,提出一種改進的貝塞爾曲線擬合方法。
該方法是利用軌跡坐標通過算法構造特殊三角形,求得能反映相鄰井段彎折趨勢的三角形內切圓圓心作為局部控制點,再利用貝塞爾曲線擬合使局部曲率半徑增大,從而在保證不失真的前提下提高軌跡曲化度。具體原理如圖1所示。
圖1(a)中,A、B、C三點為井眼軌跡坐標點。設其全局坐標為A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3),獲取控制點O0、O1的全局坐標的步驟如下:
(1)全局坐標轉換為局部坐標。軌跡段先沿全局坐標軸(x、y、z軸)進行平移,使A點和全局坐標的原點O重合;再繞全局坐標軸逆時針旋轉α、β、θ角,使平面ABC法向量與z軸正方向平行,AC線段與x軸重合[13](如圖1(b)所示)。由以上變換可得全局坐標轉換為局部坐標的關系式為:
其中,x1、y1、z1是A點的全局坐標值;x′、y′、z′是局部坐標系坐標;x、y、z是全局坐標系坐標。
(2)求控制點O0、O1的局部坐標。局部坐標系如圖1(b)所示,利用AC作為邊,過點B作矩形,利用矩形頂點M、N,形成AMB、BMC。取兩三角形內切圓圓心O0、O1為兩井段的控制頂點,設B、C點局部坐標為B(x2′,y2′,0)、C(x3′,y3′,0),則M、N點坐標為M(0,y2′,0)、N(x3′,y2′,0),由式(2)求得O0、O1的局部坐標。
(3)控制點的局部坐標轉換為全局坐標。在式(1)的基礎上,經過相反操作,使井段回到原來位置。局部坐標轉換為全局坐標的公式為:
(x,y,z)=(x′,y′,′z)·R(-α,-β,-θ)+(x1,y1,z1)(3)
求得所有單位井段控制點坐標,起止段有一個控制點,中間井段有兩個控制點。為了計算的一致性,將起止段的一個控制點看作兩個,并分段應用三階貝塞爾曲線擬合繪制軌跡。精簡圖如圖2所示,效果對比圖如圖3所示。3 Away3D技術實現井眼軌跡可視化
3.1 可視化實現過程
井眼軌跡的形態是由坐標系統描述的。坐標系統主要包括:坐標軸、坐標刻度和軌跡。結合Away3D一般開發步驟,實現井眼軌跡可視化基本開發流程如下:
(1)基本構件設置
完成各構件參數設定,為3D展示搭建舞臺。具體包括視口、燈光、攝像機等。
(2)坐標系統繪制
該部分實現分兩個子模塊:坐標軸及軌跡繪制、刻度值顯示。坐標軸及軌跡主要由網格平面和線段構成。軌跡數據通過VS2005平臺完成復雜的坐標計算及轉換。Flash平臺直接讀取數據展示軌跡。如此一來,Away3D引擎減少了計算量,提高了軌跡可視化效率。三維字體結構復雜、顯示效率低,為提高效率,刻度值顯示以二維文本生成、二三維轉換方式實現。
(3)軌跡控制設置
該設置是對軌跡的交互控制添加事件監聽器,通過控制旋轉、放縮、移動參數實現軌跡的交互式控制。
(4)渲染視口
渲染視口是將所繪制的三維坐標系統“投影”到二維屏幕上,完成三維效果展示。
3.2 可視化效果及對比
下面給出一口井的實測數據:某定向井的垂深為 2 076 m,正東和正北位移達到676 m和446 m。采用上述方法進行平滑處理,并實現三維可視化。處理前后的軌跡效果分別如圖4、圖5所示。
可以看出,Away3D技術可視化效果優越,平滑處理前井眼軌跡鋸齒狀較明顯,處理后鋸齒基本消退,提高了軌跡曲化程度,同時軌跡更新也滿足實時性的要求。
4 結論
本文針對網絡技術發展產生的油田信息化的新的應用需求,以及傳統基于Web可視化中存在的顯示效率低、顯示效果差等問題,提出了一種Away3D技術的三維實時井眼軌跡可視化方法。該方法使用改進的井眼軌跡平滑算法,在傳統三階貝塞爾曲線擬合的理論基礎上尋找合理的局部井段控制點完成軌跡平滑處理,算法高效,效果明顯。同時發揮Away3D的技術優勢實現Web井眼軌跡可視化,過程容易快捷,顯示細膩流暢。系統實時性好、通用性強,并具有良好的交互性,能夠滿足實際生產中工程技術人員進行過程監督以及協同工作的需求。
參考文獻
[1] 張辛耘,王敬農,郭彥軍.隨鉆測井技術進展和發展趨勢[J].測井技術,2006,30(1):10-15,100.
[2] 張麗,張艷.從C/S到B/S,再到三層(多層)結構——論體系結構的發展[J].河南師范大學學報(自然科學版),2002,30(3):24-27.
[3] 侯淑英.B/S模式和C/S模式優勢比較[J].沈陽教育學院學報,2007,9(2):98-100.
[4] 任開銀,黃東.在.NET上構架企業級應用程序[J].微型機與應用,2003,22(1):29-31.
[5] 馮科融,王和興,連加美,等.基于HTML5的3D多人網頁游戲實現方案[J].微型機與應用,2013,32(1):4-6.
[6] 李艷華,徐英卓.導向鉆井信息三維可視化系統的實現[J].西安石油大學學報(自然科學版),2007,22(1):75-78,124.
[7] 楊敏,王英華,唐有明.Flash CS5中文版從新手到高手[M].北京:清華大學出版社,2011.
[8] 雷忠誠,胡文山,鄔靜陽,等.基于Web的3D智能家居系統設計與實現[J].電子技術應用,2014,40(9):114-117.
[9] 王禮學,陳衛東,賈昭清,等.井眼軌跡計算新方法[J].天然氣工業,2003,32(21):57-59,8.
[10] 陳庭根,管志川.鉆井工程理論與技術[M].東營:石油大學出版社,2000.
[11] 黃志強,田海,鄭雙進,等.定向井實鉆井眼軌跡三維可視化描述[J].西安石油大學學報(自然科學版),2009,24(4):79-82,113.
[12] 張祖媛.貝塞爾曲線的幾何構型[J].四川工業學院學報,1998,17(4):33-36,45.
[13] 倪明田,吳良芝.計算機圖形學[M].北京:北京大學出版社,1999.