黃魯蒙,齊明俠,張彥廷,2,唐甫世
(1.中國石油大學(xué)(華東)機電工程學(xué)院,山東青島 266555;2.浙江大學(xué)流體傳動及控制國家重點實驗室,浙江杭州 310058)
高校石油鉆井作業(yè)實習(xí)受到教學(xué)資源、人身安全等方面的限制,嚴(yán)重影響了教學(xué)質(zhì)量。進行鉆井可視化教學(xué)軟件的開發(fā)可以為鉆井行業(yè)提供規(guī)范化、科學(xué)化的培訓(xùn)、教學(xué)手段,是虛擬實驗室教學(xué)的發(fā)展趨勢[1-3]。傳統(tǒng)的鉆井模擬器圖形開發(fā)采用3D MAX、MAYA 等工具進行,但畫面固定,不能根據(jù)外部的操作而實時變化[4]。虛擬現(xiàn)實技術(shù)具有實時交互、渲染的能力,可以在實驗室內(nèi)營造一個逼真的鉆井現(xiàn)場環(huán)境。
VRML(虛擬現(xiàn)實建模語言)具有創(chuàng)建三維造型與場景的能力,并可嵌入JAVA、JavaScript等語言,實現(xiàn)復(fù)雜的人機交互,形成更為逼真的虛擬世界[5-7]。針對傳統(tǒng)教學(xué)方法的不足,提出一種新型鉆井可視化軟件開發(fā)方案,降低了開發(fā)及教學(xué)成本,提高了建模效率,尤其適合于機械設(shè)備復(fù)雜、裝配要求精度高的系統(tǒng)。
海洋鉆井可視化教學(xué)軟件主要采用了結(jié)構(gòu)分析與建模(Solidworks)、虛擬現(xiàn)實運動仿真(VRML)、瀏覽器ActiveX 控件二次開發(fā)的技術(shù)流程。首先對各種鉆井設(shè)備進行結(jié)構(gòu)分析與設(shè)計,利用三維軟件進行建模、裝配,并將3D 模型輸出到VRML 文件中,同時在程序詞法分析的基礎(chǔ)上,利用多種手段進行模型優(yōu)化;其次利用VRML內(nèi)部及外部節(jié)點實現(xiàn)系統(tǒng)動態(tài)設(shè)計;最后利用VB.net語言對VRML 瀏覽器控件進行二次開發(fā)。這樣不僅增強了整個系統(tǒng)的仿真和交互功能,并且界面更加簡潔,有利于用戶使用和學(xué)習(xí),技術(shù)路線如圖1所示。
圖1 仿真軟件開發(fā)技術(shù)流程圖
Solidworks導(dǎo)出的VRML 文件雖然可以直接載入VRML器使用,但分析該文件的語法結(jié)構(gòu)可以發(fā)現(xiàn)其中存在著一些無用節(jié)點、默認(rèn)域值、空格以及過于精確的數(shù)據(jù)。因此有必要對其進行優(yōu)化預(yù)處理,在盡量不影響其顯示質(zhì)量的前提下,減少文件體積。采用的VRML文件優(yōu)化方法包括:
(1)基于面片數(shù)的優(yōu)化。在構(gòu)造虛擬場景模型時,其構(gòu)成的多邊形面片數(shù)越多,則曲面過渡越光滑,其真實感也就越強,但是一旦面片數(shù)過大,就造成虛擬場景實時渲染困難。所以創(chuàng)建模型時,在保證一定模型品質(zhì)的情況下,盡可能地減少模型的面片數(shù),以提高虛擬場景的實時渲染速度。
(2)基于節(jié)點復(fù)用的優(yōu)化。在虛擬場景中經(jīng)常有部分節(jié)點有著相同或相近的特點,比如石油鉆機中的立根,1個立根由完整的3個單根連接而成,它們的外形是完全相同的,僅有位置上的區(qū)別。可以使用DEF和USE對單根的模型進行節(jié)點復(fù)用。
(3)基于數(shù)據(jù)精度的優(yōu)化。Solidworks導(dǎo)出的VRML文件中,頂點三維坐標(biāo)數(shù)據(jù)的精度很高,精確到微米,因此在不影響視覺效果的前提下,進行精度修正。
(4)基于文件壓縮的優(yōu)化。由于VRML 文件屬于純文本文件,其壓縮空間是相當(dāng)大的。目前主流的VRML瀏覽器都支持直接瀏覽壓縮的VRML 文件,因此該方法是切實可行的。該方法屬于文件無損壓縮,只會減少文件的占用空間,但對于文件的載入、渲染速度沒有影響。
以鉆機大鉤的VRML 模型優(yōu)化為例(如表1 所示),通過優(yōu)化,文件體積是原文件的3.3%,面片數(shù)減少70%,而模型品質(zhì)僅稍有下降,如圖2所示。
表1 大鉤VRML模型優(yōu)化結(jié)果
圖2 大鉤文件優(yōu)化效果對比
對半潛式深水鉆井平臺結(jié)構(gòu)進行分析,以實際某型號深水鉆井平臺為參考,在Solidworks中,嚴(yán)格按照1∶1的比例建立平臺零部件,然后裝配出鉆井平臺系統(tǒng)模型(如圖3 所示)。海洋鉆井平臺總裝配體包括:半潛式鉆井平臺、鉆井起升系統(tǒng)、天車升沉補償系統(tǒng)、鉆桿自動排放系統(tǒng)、鉆井循環(huán)系統(tǒng)及其他平臺相關(guān)設(shè)備[8],該總裝配體共擁有零部件5 500余個。通過干涉檢查工具對鉆井平臺系統(tǒng)模型進行檢查,得出干涉率為0,符合建模要求。
此外,采用VRML 中Background(空間背景)節(jié)點、ElevationGrid(高程網(wǎng)格)節(jié)點來分別實現(xiàn)天空與海洋的仿真效果,并利用紋理貼圖與紋理變換模擬一個運動的大海。
圖3 半潛式深水鉆井平臺模型圖
鉆井運動建模。石油鉆機的運動部件如大鉤、游車、鉆桿等均可視為剛體,任何剛體運動都可以分為平動與轉(zhuǎn)動,或是平動與轉(zhuǎn)動的合成。因此對虛擬場景中運動對象的平動和轉(zhuǎn)動分別通過虛擬現(xiàn)實建模語言中自帶的Translation與Rotation 2個節(jié)點進行控制,從而實現(xiàn)鉆機的復(fù)雜運動[9-10]。此外,石油鉆機中還有2種特殊的運動部件:鋼絲繩運動與泥漿流動,這2種運動是需要解決的難題。
(1)鋼絲繩運動建模。鋼絲繩是彈性件,在拉升過程中其長度與方向會發(fā)生實時變化,為了實現(xiàn)鋼絲繩的特殊運動,設(shè)計了一個基于三維坐標(biāo)系的Line原型節(jié)點,通過調(diào)用該節(jié)點并對起點坐標(biāo)、終點坐標(biāo)及鋼絲繩直徑賦值,即可實現(xiàn)六自由度鋼絲繩建模。其語法定義如下:
(2)泥漿流動建模。相對于剛體運動,流體的運動過程非常復(fù)雜。利用流體紋理的旋轉(zhuǎn)、平移、縮放來實現(xiàn)流體效果,結(jié)果證明該方法實現(xiàn)簡單、效果逼真。其語法定義如下:
按照以上方法,完成了鉆井系統(tǒng)的靜態(tài)與動態(tài)建模(如圖4所示)。
圖4 鋼絲繩、鉆井泥漿、鉆井系統(tǒng)模型圖
海洋鉆井教學(xué)仿真系統(tǒng)是一個擁有大型場景和復(fù)雜交互能力的虛擬現(xiàn)實系統(tǒng)。VRML 自帶的Script節(jié)點和VRMLScript、JavaScript腳本語言功能滿足不了較大系統(tǒng)設(shè)計的要求,因此必須借助其他編程語言。目前常用的有JSAI、EAI和瀏覽器ActiveX 控件2次開發(fā)等3種方案[11-12]。通過對比,第3種方案無論在交互能力、軟件界面,還是在開發(fā)環(huán)境、可移植性方面都具有較大的優(yōu)勢。
所謂的瀏覽器控件二次開發(fā)就是在Visual Basic、Visual C++、Delphi 等可視化編程環(huán)境中導(dǎo)入VRML瀏覽器的相關(guān)控件,通過VB、VC 等語言編程實現(xiàn)控件與VRML 場景的交互,在此基礎(chǔ)進行選單(菜單)、圖形界面等部分的定制修改,開發(fā)出滿足自己需求的新軟件。因此,在 Windows XP SP3 系統(tǒng)VB2005開發(fā)環(huán)境中導(dǎo)入Blaxxun Contact瀏覽器的blaxxuncc3d.ocx控件,進行二次開發(fā)。在VB2005中通過blaxxun CC3D 特有的屬性、事件與方法來實現(xiàn)其與VRML場景的交互功能。一些常用的重要方法見表2。
表2 blaxxunCC3D組件部分常用方法
為了便于實現(xiàn)后續(xù)軟件的模塊化設(shè)計,海洋鉆井可視化教學(xué)軟件包括海洋平臺鉆井過程的鉆進、起鉆、下鉆、循環(huán)系統(tǒng)和升沉補償5個模塊,考慮了海洋平臺的震動與升沉補償作用,可以較好地演示深水鉆井平臺的相關(guān)鉆井過程和設(shè)備結(jié)構(gòu)。圖5為軟件部分模塊截圖。
圖5 深水鉆井仿真軟件部分模塊圖
經(jīng)驗數(shù)據(jù)表明:當(dāng)運動畫面的幀率不低于15時,運行流暢,軟件運行計算機配置需求見表3。
硬件配置需求表
表3
(1)采用三維CAD 軟件加VRML的開發(fā)方法簡單、方便、技術(shù)難度小,大大增強了建模與轉(zhuǎn)換的效率,尤其適合于大型復(fù)雜機械場景的仿真。
(2)Solidworks導(dǎo)出的VRML文件必須經(jīng)過優(yōu)化才有實用價值,否則會造成顯示不連貫的現(xiàn)象。經(jīng)過多種方法的優(yōu)化,達到了理想的效果,文件體積是原文件的3.3%,面片數(shù)減少70%,而模型品質(zhì)僅稍有下降。
(3)利用VB 語言數(shù)據(jù)處理和通信能力,以及VRML瀏覽器ActiveX 控件二次開發(fā)的方式實現(xiàn)了復(fù)雜運動數(shù)據(jù)的處理、軟件的編制。深水鉆井可視化教學(xué)軟件界面友好、安裝方便,三維場景的動態(tài)交互及靈活變化可以較好地演示深水鉆井平臺主要結(jié)構(gòu)和鉆井作業(yè)相關(guān)過程,使學(xué)生或用戶對石油鉆機及其作業(yè)流程有一個整體、直觀的了解。
(
)
[1]張進海,潘麗華.淺談鉆井模擬器在行業(yè)培訓(xùn)中的作用[J].鉆采工藝,2000,23(5):60-61.
[2]寧超,張世英,高巍然,等.網(wǎng)絡(luò)虛擬實驗的研究與開發(fā)[J].實驗技術(shù)與管理,2005,22(4):76-78.
[3]宋象軍.虛擬實驗室在高校實驗教學(xué)中的應(yīng)用前景[J].實驗技術(shù)與管理,2005,22(1):35-37.
[4]王武禮,李瑞民,王延江.基于Virtools技術(shù)的鉆井三維場景動態(tài)仿真[J].科學(xué)技術(shù)與工程,2010,10(30):7554-7557.
[5]Hodgson R,Hassard P.Advanced drilling simulators offer realistic models to reduce crews learning curve[J].DRILLING CONTRACTOR,2006(8):23-25.
[6]李占利,孫秀英.RP 軟件中VRML模型的可視化研究[J].計算機工程與設(shè)計,2007,28(5):1185-1187.
[7]盧碧紅,徐軍,葛研軍.VRML圖形文件瀏覽器的開發(fā)[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2004,16(8):1176-1178.
[8]孫松堯.鉆井機械[M].北京:高等教育出版社,2006:15-2.
[9]郭海新,周秋利.VRML 與Java交互技術(shù)在虛擬裝配中的應(yīng)用[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報,2007,9(3):60-62.
[10]那順.VRML原理及應(yīng)用探討[J].內(nèi)蒙古民族大學(xué)學(xué)報,2009,15(2):17-18.
[11]何圣華,袁清珂,曾挺潮.利用VRML及其EAI實現(xiàn)機械運動仿真與性能展示同步化[J].機電工程技術(shù),2004,33(3):36-38.
[12]游萬里,姚涵珍.VRML虛擬現(xiàn)實中EAI的研究及應(yīng)用[J].天津科技大學(xué)學(xué)報,2005,20(4):73-76.