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