專利名稱:鉆井模擬器氣體膨脹模擬方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種鉆井模擬器鉆井過程模擬方法,特別是涉及一種鉆井模擬器氣體
膨脹模擬方法。
背景技術(shù):
石油工業(yè)是一種技術(shù)密集型行業(yè),鉆井作業(yè)是石油工業(yè)拿儲量、上產(chǎn)能的重要手段之一。由于石油鉆井生產(chǎn)條件的限制和井下情況的復(fù)雜性,使石油鉆井作業(yè)面臨極大的風險。為了獲得更好生產(chǎn)效率和經(jīng)濟效益,減少人為事故的發(fā)生,對鉆井現(xiàn)場操作人員和工程技術(shù)人員的技術(shù)技能培訓(xùn)就顯得十分重要。鉆井過程的模擬處于鉆井過程中的較為重要的一部分,所以鉆井模擬器氣體膨脹的模擬也是舉足輕重。 目前,鉆井操作培訓(xùn)主要在生產(chǎn)現(xiàn)場進行,由于各種條件和因素的制約,使培訓(xùn)內(nèi)容受到極大的限制,培訓(xùn)的系統(tǒng)性、培訓(xùn)效果及培訓(xùn)人員數(shù)量等都受到極大的影響。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺點,提供一種基于計算機仿真技術(shù)的鉆井模擬器氣體膨脹模擬方法,該方法參照鉆井作業(yè)現(xiàn)場的實際場景,模擬鉆井過程中氣體溢流在環(huán)空內(nèi)上升時產(chǎn)生膨脹的過程,增強教學(xué)培訓(xùn)的現(xiàn)場感,提高培訓(xùn)效果、縮短培訓(xùn)周期、降低培訓(xùn)成本。 本發(fā)明的目的通過以下技術(shù)方案來實現(xiàn)鉆井模擬器氣體膨脹模擬方法,專門針對氣體膨脹模擬的控制程序,按照以下步驟實現(xiàn)氣體膨脹模擬
(1)讀取前端設(shè)備狀態(tài)參數(shù); (2)根據(jù)獲得的狀態(tài)參數(shù)和預(yù)先建立的氣體膨脹模型,計算出實現(xiàn)氣體膨脹模擬動畫的數(shù)據(jù); (3)按照設(shè)定的數(shù)據(jù)格式與專門設(shè)置的圖形處理單元通訊,交換作業(yè)數(shù)據(jù),圖形處理單元據(jù)此完成鉆井過程序中氣體膨脹動畫展現(xiàn); (4)按照設(shè)定的數(shù)據(jù)格式與圖形處理單元通訊,交換動畫狀態(tài)信息;
(5)重復(fù)(1) (4)。 氣體膨脹模擬控制程序必須持續(xù)不斷的與前端設(shè)備進行通信,以獲取前端的設(shè)備狀態(tài)以及獲取培訓(xùn)學(xué)員的操作過程。這樣做有以下幾個原因 (1)實時獲取前端硬件的設(shè)備狀態(tài)后,經(jīng)過氣體膨脹模擬控制程序處理,可以驅(qū)動圖形處理單元產(chǎn)生與硬件設(shè)備操作同步的動畫過程。 (2)實時獲取的前端設(shè)備狀態(tài)也是氣體膨脹模擬控制程序中模擬數(shù)學(xué)模型的基礎(chǔ)數(shù)據(jù)。 氣體膨脹模擬控制程序所計算出的氣體膨脹參數(shù)也需要實時傳輸給前端設(shè)備,所
以氣體膨脹模擬控制程序和前端設(shè)備之間的通信具備雙向、高速和穩(wěn)定的特性。 操作指令類別包括正常鉆進與關(guān)井指令、起鉆與關(guān)井指令、起鉆鋌與關(guān)井指令和空井與關(guān)井指令。 正常鉆進與關(guān)井的操作過程包括開始本次作業(yè),正常鉆進,判斷是否出現(xiàn)溢流,若未出現(xiàn)溢流則正常鉆進,若出現(xiàn)溢流,打開節(jié)流管匯,關(guān)閉環(huán)形防噴器、上半封防噴器、環(huán)形防噴器、節(jié)流閥、平板閥,然后錄井,結(jié)束本次作業(yè)。 起鉆與關(guān)井的操作過程包括開始本次作業(yè),卸方鉆桿,起立桿,判斷是否溢流,若
未發(fā)現(xiàn)溢流則返回起立桿,若發(fā)現(xiàn)溢流則搶接鉆具防噴器,關(guān)井,錄井,最后結(jié)束本次作業(yè)。 起鉆鋌與關(guān)井的操作過程包括開始本次作業(yè),起鉆鋌,判斷是否溢流,若未發(fā)現(xiàn)
溢流則返回起鉆鋌,若發(fā)現(xiàn)溢流則搶接防噴單桿,關(guān)井,錄井,最后結(jié)束本次作業(yè)。 空井與關(guān)井的操作過程包括開始本次作業(yè),起完鉆鋌,判斷溢流量是否大,如果
溢流量大則關(guān)井,錄井,最后結(jié)束本次作業(yè);如果溢流量小則搶接防噴單桿,關(guān)井,錄井,最
后結(jié)束本次作業(yè)。 本發(fā)明所述的氣體膨脹模擬必須建立在嚴格的數(shù)學(xué)模型基礎(chǔ)上,這樣才能使氣體膨脹模擬的各種參數(shù)符合實際現(xiàn)場的情況,才能達到良好的培訓(xùn)效果。 本發(fā)明所采用的氣體膨脹模型包氣體狀態(tài)模型、氣體溢流重量在環(huán)空內(nèi)產(chǎn)生的壓力模型和天然氣壓縮模型。模型使用的設(shè)備狀態(tài)參數(shù)包括括標準狀態(tài)下的壓縮系數(shù)Zs、標準狀態(tài)下的溫度Ts、橫截面積Aa、氣體常數(shù)R、標準狀態(tài)下的壓力Ps、標準狀態(tài)下的體積Vs、氣體常數(shù)R、標準狀態(tài)下的氣體密度P s、標準狀態(tài)下的壓縮系數(shù)Zs和標準狀態(tài)下的溫度Ts動態(tài)參數(shù)包括壓力P、氣體體積V、溫度T、氣體體積Vx、鉆頭總進尺F、井深H、地層有效壓力Pp、井底有效壓力Pb、排量Q、鉆轉(zhuǎn)速N、機械鉆速V、氣體上升到某一時刻氣柱中點的氣體壓力Px、氣體上升到某一時刻氣柱中點地層溫度Tx和在溫度為T,壓力為P的條件下的壓縮系數(shù)Z等。 氣體膨脹模型條件的假設(shè) (1)鉆井液環(huán)空攜巖能力Lc > 0. 5 ;環(huán)空鉆屑濃度Ca < 0. 09 ;環(huán)空流態(tài)穩(wěn)定參數(shù)值Z《井眼穩(wěn)定值Z值。 (2)所用通用鉆速方程是建立在地層統(tǒng)計可鉆性的基礎(chǔ)上的,它反映了不均質(zhì)地層可鉆性的宏觀規(guī)律。只要按《鉆井手冊(甲方)》選出相應(yīng)的鉆頭類型,建立準確的地層可鉆性梯度公式,納入設(shè)計的程序,即可得出符合實際的結(jié)果。 (3)波動壓力的分析與計算是建立在剛性液柱(鉆井液與井內(nèi)管柱為不可壓縮)理論基礎(chǔ)上的。
(4)鉆井中發(fā)生溢流時,單位時間內(nèi)進入環(huán)空的泥漿和氣體形成的混氣泥漿是均勻混合的。在這種假設(shè)下,我們可以將單位體積的混和泥漿中的氣體含量看成是相等的。
(5)發(fā)現(xiàn)溢流后,應(yīng)及時停泵關(guān)井。在井內(nèi)壓力平衡前,地層氣體仍然會不斷地進入井內(nèi)。因此,假設(shè)從停泵關(guān)井到關(guān)井穩(wěn)定這段時間內(nèi),井內(nèi)形成一段連續(xù)的純氣柱;且在壓井過程中,此連續(xù)氣柱不被破壞。
(6)氣體從地層中進入井筒符合達西定律。
(7)若進入井內(nèi)的溢流為氣體,則假設(shè)氣體溢流在環(huán)空內(nèi)上升時要膨脹,其膨脹過
程符合氣體狀態(tài)方程,且忽略氣體滑脫現(xiàn)象。若進入井內(nèi)的溢流為液體,則假設(shè)液體溢流在
上升過程中不發(fā)生膨脹和滑脫現(xiàn)象。
(8)電動機的輸出功率按恒定值考慮。
(9)假設(shè)井內(nèi)的地溫梯度為一常數(shù),則
井底壓力=地溫梯度X井深+井口溫度 (10)地層破裂壓力梯度為一常數(shù),則井內(nèi)任一點的地層破裂壓力為該點井深乘以地層破裂壓力梯度。
(11)通用鉆速方程式在假設(shè)影響鉆速的鉆壓指數(shù)、轉(zhuǎn)速指數(shù)、水力參數(shù)、鉆井液密度差與地層宏觀性等這些單因素是互不影響的獨立變量的基礎(chǔ)上建立起來的函數(shù)關(guān)系。
由于本模型主要用于模擬培訓(xùn),因此,在計算時間、計算精度和和準確度發(fā)生沖突時,原則上以保時間為主,而將過分復(fù)雜的數(shù)學(xué)模型進行了適當簡化,但保證定性方面的準確性。 建立的氣體膨脹模型包括 (1)氣體狀態(tài)模型
「 , PF ——=- 式中Ps—標準狀態(tài)下的壓力,千帕 Vs—標準狀態(tài)下的體積,米3 Zs—標準狀態(tài)下的壓縮系數(shù) P—壓力,千帕 V—氣體體積,米3 Ts—標準狀態(tài)下的溫度,° K T—溫度,° K Z—在溫度為T,壓力為P的條件下的壓縮系數(shù) 我們只要知道了某時刻的壓力,溫度以及壓縮系數(shù),就可以求得此時的氣體體積。
(2)氣體溢流重量在環(huán)空內(nèi)產(chǎn)生的壓力模型 根據(jù)氣體在環(huán)空內(nèi)上升過程中氣體重量不變,用氣體狀態(tài)方程求得氣柱在壓井某時刻的密度為 p g = ZsTs P sPx (ZxTxPs) 式中P s, Ps, Ts, Zs—分別表示標準狀態(tài)下的氣體密度,壓力,溫度及壓縮系數(shù),
Tx—氣體上升到某一時刻氣柱中點地層溫度,° K 則氣柱重量造成的壓力為 Pw = 9. 8 P gHx = 9. 8PxZsTs P sHx (ZxTxPs) 將氣體高度用氣體體積Vx (米3)和橫截面積Aa (米3)表示,則 Pw = 9. 8PxZsTs P sVx/ (PsZxTxAa) 由氣體狀態(tài)方程可知 PxVx/ (ZxTx) = PbVb/ (ZbTb) = R R為氣體常數(shù),對特定的氣體其值是不變的,將R帶入上式有 Pw = 9. 8RZsTs P s/ (PsAa) 式中Aa為氣體所在環(huán)空段的橫截面積,是要變化的;但為了計算方便,可將Aa的值取為整個環(huán)空的平均橫截面積,則氣體重量造成的壓力便是一個常數(shù)。因這個壓力的值本來就是很小的,這樣簡化處理后弓I起的誤差可不計。
(3)天然氣壓縮模型 引用Kenneth, R. Hall提出的公式經(jīng)簡化后,得以下計算公式來求Zx值
<formula>formula see original document page 6</formula>
式中<formula>formula see original document page 6</formula>
對比壓力<formula>formula see original document page 6</formula>
對比溫度<formula>formula see original document page 6</formula>
上式為超越函數(shù),用近似值逼近求解。 氣體膨脹模擬控制程序與圖形處理單元的通信通過廣泛使用的TCP/IP協(xié)議進行。氣體膨脹模擬控制程序?qū)⑼ㄟ^數(shù)據(jù)處理得到的與圖形有關(guān)的數(shù)據(jù)發(fā)向圖形處理單元,這些數(shù)據(jù)包括溢流量、控制圖形各種動作的信號和氣柱長度等。這樣就能夠把鉆井工藝流程中的各種動作以及鉆井現(xiàn)場各種設(shè)備的狀態(tài)、空間位置等控制信號和數(shù)據(jù)準確的發(fā)給圖形處理單元,使圖形能迅速、準確地反映前端操作者的各種動作。氣體膨脹模擬控制程序與圖形處理單元通信的數(shù)據(jù)格式如下 (1)氣體膨脹模擬控制程序發(fā)送給圖形處理單元的初始化及作業(yè)數(shù)據(jù)格式 { struct
{ unsigned short state ;〃0 :表示初始數(shù)據(jù),1 :表示作業(yè)數(shù)據(jù) unsigned short dl ;〃表示云力作指令 float d2 ;〃在初始狀態(tài)下表示吊環(huán)下平面離鉆臺平面高度,在作業(yè)狀
態(tài)下表示物體上下的速度(單位m/s,可正可負) float d3 ;〃在初始狀態(tài)下表示井深,在作業(yè)狀態(tài)下表示頂驅(qū)旋轉(zhuǎn)速度
(單位r/min,可正可負) unsigned short d4 ;〃在初始狀態(tài)下表示井下鉆桿數(shù)量(單位根),在
作業(yè)狀態(tài)下表示吊環(huán)前/后傾斜角度(單位度,可正可負) unsigned short d5 ;〃在初始狀態(tài)下表示大鉤下掛鉆桿數(shù)量(注意如
果d5有值,則d4的值沒有意義),在作業(yè)狀態(tài)下表示吊環(huán)旋轉(zhuǎn)角度(單位度,可正可負)
unsigned short d6 ;〃在初始狀態(tài)下表示立桿盒鉆桿數(shù)量(單位柱) unsigned short d7 ;〃在初始狀態(tài)下表示井下鉆挺數(shù)量(單位根) unsigned short d8 ;〃在初始狀態(tài)下表示立桿盒鉆挺數(shù)量(單位柱) unsigned short d9 ;〃在初始狀態(tài)下表示本次作業(yè)是否為壓井作業(yè) unsigned short d10 ;〃在初始狀態(tài)下表示鉆桿上是否有3根打撈線 } data ; struct
{ float js ;〃井深 float gaslengthl ;〃溢流氣體長度 float gasheightl ;〃溢流氣體底部距井底高度
float gaslength2 ;〃在現(xiàn)有的作業(yè)中無用,保留 float gasheight2 ;〃在現(xiàn)有的作業(yè)中無用,保留 float hkkillmudlength ;〃環(huán)空內(nèi)壓井泥槳長度 float hkkillmudheight ;〃環(huán)空內(nèi)壓井泥漿距井底高度 float hkove麗dlength ;〃環(huán)空內(nèi)重泥槳長度 float hkovermudheight ;〃環(huán)空內(nèi)重泥槳距井底高度 float zzkillmudlength ;〃鉆柱內(nèi)壓井泥漿長度 float zzkillmudheight ;〃鉆柱內(nèi)壓井泥漿距井口高度 float zzovermudlength ;//鉆柱內(nèi)重泥獎長度 float zzovermudheight ;〃鉆柱內(nèi)重泥漿距井口高度 unsigned short JingKongFlag ;〃在初始狀態(tài)下表示本次作業(yè)是否為
壓井作業(yè) 皿digned short fireflag ;//點火標志
}jk;
};
:0104] (2)圖形處理單元發(fā)送給氣體膨脹模擬控制程序的數(shù)據(jù)格式 :0105]union JSRevTUData
:0106] {
:0107] struct
:0108] {
:0109] f loat dl ;〃大鉤高度
:0110] f loat d2 ;〃大鉤速度
:0111] unsigned short d3 ;〃每個動作繪制完成標記
:0112] unsigned short d4 ;〃半封狀態(tài),0表示關(guān),1表示中間狀態(tài),2表示開
:0113] unsigned short d5 ;〃全封狀態(tài),0表示關(guān),1表示中間狀態(tài),2表示開
:0114] unsigned short d6 ;〃環(huán)形狀態(tài),0表示關(guān),1表示中間狀態(tài),2表示開
:0115] unsigned short d7 ;〃小鼠洞是否有桿,0表示無桿,1表示有桿
:0116] unsigned short d8 ;〃吊環(huán)下掛物體是否在鉆臺平面下,O表示在下面, 表示在上面
:0117] }data;
:0118] }; 由于系統(tǒng)規(guī)模較大,設(shè)計復(fù)雜,圖形繪制程序的設(shè)計是基于面向?qū)ο蟮?。鑒于在鉆 井模擬器氣體膨脹模擬中涉及到的物體較多,并且各個物體在不同的方面有不同的特性, 因此在設(shè)計之前,應(yīng)確定設(shè)計類的準則。對本發(fā)明而言,這里關(guān)心的是用物體如何展現(xiàn)氣體 膨脹模擬流程,所以類的設(shè)計應(yīng)該圍繞物體的動畫功能需要來進行,而所涉及到的圖形處 理單元包括圖形繪制程序和視景仿真控制程序。 其中,圖形繪制程序主要包括設(shè)備類圖形繪制、粒子類圖形繪制、管理類圖形繪制 和工藝動畫繪制,視景仿真控制程序主要包括場景初始化、工藝動畫控制、碰撞處理和特效 渲染。類的設(shè)計包括
(1)設(shè)備類 氣體膨脹模擬中涉及到動畫的物體具有一些相同的特點,例如每個物體都具有 場景坐標、旋轉(zhuǎn)角度等特點,就將各個類中的相同屬性和方法抽象出來集成為類Device。 類Device是一個父類,它向子類提供了一些公共屬性和方法。就屬性而言,類Device的 屬性中除了場景坐標、旋轉(zhuǎn)角度、上升速度之外、還應(yīng)有ID, Device. preObject、 Device. subObject等屬性。其中ID是用來標志物體類型,由于本發(fā)明中動畫涉及的物體類型較 多,利用ID可以方便查找物體的類型。而屬性Device. preObject、 Device. subObject 可以為查找某物體的前后物體帶來便利。另外,類Device還應(yīng)該具有公共方法,鉆井中 的物體都具有旋轉(zhuǎn)、移動等動作,因此方法中必定有移動方法MoveDevice()和旋轉(zhuǎn)方法 RotateDevice()。鑒于所有物體都要以三維圖形在計算機上顯示出來,因此還應(yīng)有物體的 繪制方法,即Draw()。
(2)粒子類 氣體膨脹模擬中模擬微觀事物具有多樣性,因此設(shè)計了粒子類,在系統(tǒng)設(shè)計中把 粒子系統(tǒng)抽象為一個類,命名為Particle。與Device相同Particle是為完成粒子模擬功 能中所設(shè)計的父類。父類Particle的屬性有粒子分別在XYZ坐標軸上的位置以及坐標軸 上的位置增量,還有粒子生命狀態(tài)。而Particle的子類有Fire類、Gas類和Blowout類。 Fire類主要用于火焰燃燒效果的模擬;Gas類主要用于正常鉆進過程中鉆到氣層時,氣體 溢出的模擬;Blowout類主要用于發(fā)生井噴時,井口泥漿噴涌的效果模擬。
(3)Shader管理類 Shader的使用是通過調(diào)用OpenGL API中的函數(shù),這個函數(shù)讓Shader的應(yīng)用可 以直接與OpenGL驅(qū)動相連接,它是存儲一個OpenGL著色片段不可缺少的數(shù)據(jù)結(jié)構(gòu)。這 些數(shù)據(jù)結(jié)構(gòu)被稱為著色對象(Shader Object)。在一個著色對象創(chuàng)建好后,應(yīng)用程序通過 調(diào)用glShaderSourceARB把著色代碼提供給著色對象。為了有效的使用和管理編寫好的 Shader,在設(shè)計過程中專門設(shè)計了 GLShader類。這個類主要用來設(shè)定Shader對象,讀入編 寫好的Vertex文件和Fragment文件,讀入?yún)?shù)類型和參數(shù)值,讀入紋理信息,Shader的使 用和刪除等。GLShader類的設(shè)計能使Shader的使用更為有效,提高了 Shader使用的靈活 性和可重用性。 視景仿真系統(tǒng)控制程序主要完成以下工作
(1)場景初始化 —個新的作業(yè)開始前,圖形處理單元在接收到氣體膨脹模擬控制程序發(fā)出的作業(yè) 指令后初始化當前場景,例如鉆井平臺上各操作部件當前的數(shù)量、狀態(tài)以及位置。 [OnO] (2)工藝動畫控制 將與氣體膨脹模擬控制程序相互通信得到的參數(shù)及數(shù)據(jù)進行處理,體現(xiàn)出鉆臺上 各種控制系統(tǒng)的運動參數(shù)、具體動作、視圖選擇(包括上視角、井下視角、防噴器視角、多視 圖顯示等)等。
(3)碰撞處理 在三維圖形的運動仿真過程中是不允許有"穿墻而過"的狀況發(fā)生的,因此要對運 動物體作碰撞檢測的處理。為了遵循模型運動的真實感,本發(fā)明的視景仿真當然也包括碰 撞的檢測與處理部分。
(4)特效渲染 實現(xiàn)對火焰、氣泡、液體噴涌效果的模擬,使用GLSL實現(xiàn)電影級的光照效果,可以
分別模擬白天,夜晚,探照燈等光照模式,大大地提高了圖形效果和真實感。 本發(fā)明的有益效果是提供了鉆井模擬器氣體膨脹的模擬方法,即參照鉆井作業(yè)
現(xiàn)場的實際場景,對鉆井過程中氣體溢流在環(huán)空內(nèi)上升時產(chǎn)生膨脹的過程進行逼真模擬,
增強教學(xué)培訓(xùn)的現(xiàn)場感,縮短培訓(xùn)周期、提高培訓(xùn)效果、降低培訓(xùn)成本。
圖l鉆井模擬器的組成結(jié)構(gòu)2鉆井模擬器氣體膨脹模擬控制程序組成框3鉆井模擬器氣體膨脹模擬控制程序流程4鉆井模擬器氣體膨脹模擬控制程序與前端設(shè)備通信框5正常鉆進與關(guān)井操作流程6起鉆與關(guān)井操作流程7起鉆鋌與關(guān)井操作流程8空井與關(guān)井操作流程9圖形處理單元的組成框10設(shè)備類及其部分子類的結(jié)構(gòu)圖11粒子類及其部分子類的結(jié)構(gòu)圖12Shader在0PENGL中的執(zhí)行過程圖13設(shè)備類、粒子類和Shader管理類之間的調(diào)用關(guān)系
具體實施例方式
下面通過實施例進一步描述本發(fā)明的技術(shù)方案,本發(fā)明不限于所述實施例。
為了實施本發(fā)明所述的技術(shù)方案,構(gòu)建了一個鉆井模擬系統(tǒng),如圖l,它包括主控 計算機、圖形處理計算機、前端設(shè)備和投影設(shè)備,主控計算機和圖形處理計算機通過TCP/IP 互聯(lián),前端設(shè)備與主控計算機通過Siemens PPI協(xié)議互聯(lián),圖形處理計算機連接投影設(shè)備, 主控計算機上運行氣體膨脹模擬控制程序,圖形處理計算機運行圖形處理單元,前端設(shè)備 包括節(jié)流管匯、高壓管匯、防噴器控制臺、阻流器控制臺、遠程控制臺和司鉆控制臺,投影設(shè) 備包括兩臺投影儀和一個大尺寸屏幕。 如圖2是氣體膨脹模擬控制程序的組成圖,氣體膨脹模擬控制程序包括與前端硬
件設(shè)備及圖形處理單元通信的通信模塊和氣體膨脹模擬模塊,與前端硬件設(shè)備通信是為了
實時獲得硬件設(shè)備狀態(tài),比如在氣體膨脹的模擬中,就需要獲得溢流量、氣體體積、溫度和
氣柱長度等參數(shù),然后在內(nèi)部通過相關(guān)數(shù)學(xué)模型,模擬氣體膨脹過程,氣體膨脹模擬包括正
常鉆進與關(guān)井模擬、起鉆與關(guān)井模擬、起鉆鋌與關(guān)井模擬和空井與關(guān)井模擬。進而通過TCP/
IP協(xié)議向圖形處理單元發(fā)送控制命令,驅(qū)動圖形處理單元產(chǎn)生與硬件設(shè)備操作同步的動畫
過程;并將信號反饋給前端硬件,使前端儀表參數(shù)的顯示符合現(xiàn)場情況。 如圖3,鉆井模擬器氣體膨脹模擬方法,氣體膨脹模擬控制程序,按照以下步驟實
現(xiàn)氣體膨脹模擬
(1)讀取前端設(shè)備狀態(tài)參數(shù)和操作指令; (2)根據(jù)獲得的設(shè)備狀態(tài)參數(shù)和操作指令類別以及預(yù)先建立的氣體膨脹模型,計 算出實現(xiàn)氣體膨脹模擬動畫的數(shù)據(jù); (3)按照設(shè)定的數(shù)據(jù)格式與專門設(shè)置的圖形處理單元通訊,交換作業(yè)數(shù)據(jù),圖形處 理單元據(jù)此完成鉆井過程序中氣體膨脹動畫展現(xiàn); (4)按照設(shè)定的數(shù)據(jù)格式與圖形處理單元通訊,交換動畫狀態(tài)信息;
(5)重復(fù)(1) (4)。 由于前端設(shè)備采用PLC進行控制和處理,因此本發(fā)明采用通用的0PC技術(shù)實現(xiàn)通 信過程。 鉆井模擬系統(tǒng)中,0PC服務(wù)器使用西門子公司提供的S7-200 OPC Server。并且在 西門子公司提供的PC Access軟件中建立OPC服務(wù)器和需要訪問的PLC硬件系統(tǒng)存儲單元 的映射關(guān)系。 在氣體膨脹模擬控制程序中實現(xiàn)0 (:客戶端功能。利用支持0++81111(1^的IOCOMP 組件能夠輕松建立客戶端和服務(wù)器的通信過程。 如圖4是氣體膨脹模擬控制程序與前端設(shè)備通信框圖。該通信框圖包括OPC客 戶機,OPC服務(wù)器和PLC系統(tǒng),其中OPC客戶機通過OPC接口與OPC服務(wù)器連接,OPC服務(wù)器 通過PPI電纜與PLC系統(tǒng)連接。 操作指令類別主要包括正常鉆進與關(guān)井指令、起鉆與關(guān)井指令、起鉆鋌與關(guān)井指 令和空井與關(guān)井指令。 如圖5是正常鉆進與關(guān)井操作流程圖,其工作流程大致可描述為開始本次作業(yè), 正常鉆進,判斷是否出現(xiàn)溢流,若未出現(xiàn)溢流則正常鉆進,若出現(xiàn)溢流,打開節(jié)流管匯,關(guān)閉 環(huán)形防噴器、上半封防噴器、環(huán)形防噴器、節(jié)流閥、J2A平板閥,然后錄井,結(jié)束本次作業(yè)。
如圖6是起鉆與關(guān)井操作流程圖,其工作流程大致可描述為開始本次作業(yè),卸方 鉆桿,起立桿,判斷是否溢流,若未發(fā)現(xiàn)溢流則返回起立桿,若發(fā)現(xiàn)溢流則搶接鉆具防噴器, 關(guān)井,錄井,最后結(jié)束本次作業(yè)。 如圖7是起鉆鋌與關(guān)井操作流程圖,其工作流程大致可描述為開始本次作業(yè), 起鉆鋌,判斷是否溢流,若未發(fā)現(xiàn)溢流則返回起鉆鋌,若發(fā)現(xiàn)溢流則搶接防噴單桿,關(guān)井,錄 井,最后結(jié)束本次作業(yè)。 如圖8是空井與關(guān)井操作流程圖,其工作流程大致可描述為開始本次作業(yè),起完 鉆鋌,判斷溢流量是否大,如果溢流量大則關(guān)井,錄井,最后結(jié)束本次作業(yè);如果溢流量小則 搶接防噴單桿,關(guān)井,錄井,最后結(jié)束本次作業(yè)。 本發(fā)明所述的氣體膨脹模擬必須建立在嚴格的數(shù)學(xué)模型基礎(chǔ)上,這樣才能使氣體 膨脹模擬的各種參數(shù)符合實際現(xiàn)場的情況,才能達到良好的培訓(xùn)效果。 本發(fā)明所采用的氣體膨脹模型包氣體狀態(tài)模型、氣體溢流重量在環(huán)空內(nèi)產(chǎn)生的壓 力模型和天然氣壓縮模型。模型使用的設(shè)備狀態(tài)參數(shù)包括括標準狀態(tài)下的壓縮系數(shù)Zs、標 準狀態(tài)下的溫度Ts、橫截面積Aa、氣體常數(shù)R、標準狀態(tài)下的壓力Ps、標準狀態(tài)下的體積Vs、 氣體常數(shù)R、標準狀態(tài)下的氣體密度P s、標準狀態(tài)下的壓縮系數(shù)Zs和標準狀態(tài)下的溫度Ts 動態(tài)參數(shù)包括壓力P、氣體體積V、溫度T、氣體體積Vx、鉆頭總進尺F、井深H、地層有效壓 力Pp、井底有效壓力Pb、排量Q、鉆轉(zhuǎn)速N、機械鉆速V、氣體上升到某一時刻氣柱中點的氣體壓力Px、氣體上升到某一時刻氣柱中點地層溫度Tx和在溫度為T,壓力為P的條件下的壓 縮系數(shù)Z。 如圖9是圖形處理單元的組成框圖,它包括一個全三維實體模型庫、圖形繪制程 序和視景仿真控制程序。 建立一個完美的模型,是鉆井模擬系統(tǒng)真實感體現(xiàn)最為重要的元素,鉆井模擬系 統(tǒng)中虛擬環(huán)境的實現(xiàn)過程基本分為三步第一步是幾何建模,主要包括用多邊形或三角形 構(gòu)成對象的立體外形;第二步是物理建模,主要包括對幾何建模的結(jié)果進行紋理、顏色、光 照等處理;第三步是具體程序控制,主要通過運動建模的方法實現(xiàn)虛擬環(huán)境下的物體運動 模擬。前兩步是虛擬場景的構(gòu)建過程,第三步則是運動建模。 幾何建模是開發(fā)虛擬現(xiàn)實系統(tǒng)中最基本、最重要的工作之一。虛擬環(huán)境中的幾何 模型是物體幾何信息的表示,涉及表示幾何信息的數(shù)據(jù)結(jié)構(gòu)、相關(guān)的構(gòu)造與操縱該數(shù)據(jù)結(jié) 構(gòu)的算法。虛擬環(huán)境中的每個物體包含形狀和外觀兩個方面。物體的形狀由構(gòu)造物體的各 個多邊形、三角形和頂點來確定,物體的外觀則由表面紋理、顏色、光照系數(shù)等來決定。因 此,用于存儲虛擬環(huán)境中幾何模型的模型文件應(yīng)該能夠提供以上信息,同時還要滿足虛擬 建模技術(shù)的三個常用指標交互顯示能力、交互式操縱能力、易于構(gòu)造的能力對虛擬對象模 型的要求。 幾何建模技術(shù)分為體素和結(jié)構(gòu)兩個方面。體素用來構(gòu)造物體的原子單位,體素的 選取決定了建模系統(tǒng)所能構(gòu)造的對象范圍。結(jié)構(gòu)用來決定體素如何組成新的對象。
物理建模指的是虛擬對象的質(zhì)量、重量、慣性、表面紋理、硬度、變形模式等特征的 建模,這些特征與幾何建模和行為法則相融合,形成一個更具真實感的虛擬環(huán)境。物理建模 是虛擬現(xiàn)實系統(tǒng)中比較高層次的建模,它需要物理學(xué)與計算機圖形學(xué)配合,涉及到力的反 饋問題,主要是重量建模、表面形變和軟硬度等物體屬性的體現(xiàn)。 在虛擬環(huán)境中,物體的特性還涉及到位置改變、碰撞、捕獲、縮放和表面變形等,僅 僅建立靜態(tài)三位幾何體對虛擬現(xiàn)實系統(tǒng)是不夠的。 對象位置包括對象的移動、旋轉(zhuǎn)和縮放。在虛擬現(xiàn)實系統(tǒng)中,不僅要涉及到絕對的 坐標系統(tǒng),還要涉及到每個對象相對的坐標系統(tǒng)。碰撞檢測是VR技術(shù)的重要技術(shù),它在運 動建模中經(jīng)常使用,例如虛擬環(huán)境中,人不能穿墻而過。碰撞檢測技術(shù)是虛擬環(huán)境中對象與 對象之間碰撞的一種識別技術(shù)。為了節(jié)省系統(tǒng)開銷,本發(fā)明采用矩形邊界檢測方法。
本實施例中用三維建模工具3ds max建立所有設(shè)備的模型,將3ds max所繪制 的模型導(dǎo)入到實時3D環(huán)境虛擬實境編輯軟件Virtools中,根據(jù)設(shè)備的物理特性配置 Virtools中模型的所有特性,使用Virtools控制模型的運動和顯示,在初始狀態(tài)下可以實 現(xiàn)全場景的漫游,搭建Cave環(huán)境實現(xiàn)全三維仿真。 圖形繪制程序的設(shè)計是面向?qū)ο蟮模景l(fā)明將氣體膨脹中涉及到的對象分為三 類設(shè)備類圖、粒子類和shader管理類。 系統(tǒng)中涉及到動畫的物體具有一些相同的特點,例如每個物體都具有場景坐標、 旋轉(zhuǎn)角度等特點,于是就可以將各個類中的相同屬性和方法抽象出來集成為類Device。 類Device是一個父類,它向子類提供了一些公共屬性和方法。就屬性而言,類Device的 屬性中除了場景坐標、旋轉(zhuǎn)角度、上升速度之外、還應(yīng)有ID, Device. preObject、 Device. sub0bject等屬性。其中ID是用來標志物體類型,由于本發(fā)明中圖形處理單元中動畫涉及的物體類型較多,利用ID可以方便查找物體的類型。而屬性Device. preObject、 Device. subObject可以為查找某物體的前后物體帶來便利。另外,類Device還應(yīng)該具有公共方法, 起鉆中的物體都具有旋轉(zhuǎn)、移動等動作,因此方法中必定有移動方法MoveDevice()和旋轉(zhuǎn) 方法RotateDevice()。鑒于所有物體都要以三維圖形在計算機上顯示出來,因此還應(yīng)有物 體的繪制方法,即Draw()。根據(jù)分析,從父類派生下來的是大鉤、液壓大鉗等子類,它們不僅 繼承了父類的公有屬性和方法,還具有自己的屬性和方法。例如大鉤就有SetState()這個 方法以設(shè)置大鉤當前的狀態(tài)。 圖10是鉆井模擬器氣體膨脹模擬過程中涉及到的設(shè)備類及其部分子類。 由于系統(tǒng)模擬微觀事物的多樣性,粒子系統(tǒng)的使用在整個系統(tǒng)中也有較高的重用
性,因此設(shè)計了粒子類。 圖ll展示了粒子類及其子類。在系統(tǒng)設(shè)計中把粒子系統(tǒng)抽象為一個類,命名為 Particle。與Device相同Particle是為完成粒子模擬功能中所設(shè)計的父類。父類Particle 的屬性有粒子分別在XYZ坐標軸上的位置以及坐標軸上的位置增量,還有粒子生命狀態(tài)。 而Particle的子類有Fire類、Gas類和Blowout類。Fire類主要用于火焰燃燒效果的模 擬;Gas類主要用于正常鉆進過程中鉆到氣層時,氣體溢出的模擬;Blowout類主要用于發(fā) 生井噴時,井口泥漿噴涌的效果模擬。這些子類還分別有自己的屬性,例如粒子大小、大小 增量、顏色分量R/G/B等。 Particle類的方法主要是Init() 、 Draw(),用于對粒子的初始化和繪制,而子類 中引入了繼承結(jié)構(gòu)中的多態(tài)性概念。由于Fire、 Gas、 Blowout粒子系統(tǒng)采用的數(shù)學(xué)模型不 同,所以各自的繪制方法都不盡相同,每個子類都有自己的初始化狀態(tài)和繪制方法。除了共 有的Init()、 Draw()方法,每個子類有自己的私有方法,例如Fire類就有計算尾焰、向量 計算等方法。 OpenGL是目前跨平臺最廣泛的三維圖形引擎,它在真實感圖形制作上的優(yōu)秀性能
使之成為諸大公司的圖形標準,所以O(shè)penGL成為新一代的三維圖形工業(yè)標準。 圖12說明了 Shader在0penGL中的執(zhí)行過程,Shader的使用是通過調(diào)用
OpenGLAPI中的函數(shù)。0penGL提供了一個新的函數(shù)glCreateShaderOb jectARB,這個函數(shù)讓
Shader的應(yīng)用可以直接與0penGL驅(qū)動相連接,它是存儲一個0penGL著色片段不可缺少的
數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)被稱為著色對象(Shader 0bject)。在一個著色對象創(chuàng)建好后,應(yīng)
用程序通過調(diào)用glShaderSourceARB把著色代碼提供給著色對象。 為了有效的使用和管理編寫好的Shader,在設(shè)計過程中專門設(shè)計了 GLShader類。 這個類主要用來設(shè)定Shader對象,讀入編寫好的Vertex文件和Fragment文件,讀入?yún)?shù) 類型和參數(shù)值,讀入紋理信息,Shader的使用和刪除等。GLShader類的設(shè)計能使Shader的 使用更為有效,提高了 Shader使用的靈活性和可重用性。 由于父類Device和Particle所有的屬性和方法都是公有的,因此子類可以調(diào)用 父類的所有方法。鑒于子類較多,這里只給出父類間的調(diào)用關(guān)系,如圖13所示。面向?qū)ο?的設(shè)計方法非常靈活,系統(tǒng)可以根據(jù)需要方便的添加新的類、屬性和方法,對程序的擴展是 非常有利的。 視景仿真控制程序主要負責與所體膨脹模擬控制程序通訊,獲取實時動畫的指令 和數(shù)據(jù),對圖形繪制程序發(fā)出作業(yè)指令完成實時動畫的繪制,由于在三維圖形的運動仿真過程中是不允許有"穿墻而過"的狀況發(fā)生的,所以視景仿真控制程序要對運動物體作碰撞
檢測與處理,為了提高圖形效果和真實感,采用渲染特效,模擬火焰、氣泡、液體噴涌效果,
還使用GLSL實現(xiàn)電影級的光照效果,可以分別模擬白天,夜晚,探照燈等光照模式。 在作業(yè)開始后,由氣體膨脹模擬控制程序發(fā)出指令讓視角固定,也可以通過氣體
膨脹模擬控制程序發(fā)出指令讓圖形分成三個部分進行分屏顯示,氣體膨脹模擬控制程序接
收來自前端操作者發(fā)出的各種指令及參數(shù)信息,并行數(shù)據(jù)處理。然后通過TCP/IP協(xié)議將數(shù)
據(jù)處理后得到的與圖形有關(guān)的數(shù)據(jù)發(fā)向圖形處理單元,這些數(shù)據(jù)包括溢流量、控制圖形各
種動作的信號和氣柱長度等,圖形處理單元得到數(shù)據(jù)后,做出具體反映,體現(xiàn)出鉆臺上各種
控制系統(tǒng)的運動參數(shù)、具體動作、視圖選擇(包括上視角、井下視角、防噴器視角、多視圖顯
示等)等,并將一些設(shè)備狀態(tài)參數(shù)和圖形繪制完成標記反饋回氣體膨脹模擬控制程序。 圖形處理單元與氣體膨脹模擬控制程序之間通信的數(shù)據(jù)格式如下 氣體膨脹模擬控制程序發(fā)送給圖形處理單元的初始化及作業(yè)數(shù)據(jù)格式 union JSSendTUData { unsigned char buff[100]; struct
{ unsigned short state ;〃0 :表示初始數(shù)據(jù),1 :表示作業(yè)數(shù)據(jù) unsigned short dl ;〃表示云力作指令 float d2 ;〃在初始狀態(tài)下表示吊環(huán)下平面離鉆臺平面高度,在作業(yè)狀態(tài)下
表示物體上下的速度(單位m/s,可正可負) float d3 ;〃在初始狀態(tài)下表示井深,在作業(yè)狀態(tài)下表示頂驅(qū)旋轉(zhuǎn)速度(單
位r/min,可正可負) unsigned short d4 ;〃在初始狀態(tài)下表示井下鉆桿數(shù)量(單位根),在作業(yè)
狀態(tài)下表示吊環(huán)前/后傾斜角度(單位度,可正可負) unsigned short d5 ;〃在初始狀態(tài)下表示大鉤下掛鉆桿數(shù)量(注意如果d5
有值,則d4的值沒有意義),在作業(yè)狀態(tài)下表示吊環(huán)旋轉(zhuǎn)角度(單位度,可正可負)unsigned short d6V在初始狀態(tài)下表示立桿盒鉆桿數(shù)量(單位柱)unsigned short d7V在初始狀態(tài)下表示井下鉆挺數(shù)量(單位根)unsigned short d8V在初始狀態(tài)下表示立桿盒鉆挺數(shù)量(單位柱)unsigned short d9V在初始狀態(tài)下表示本次作業(yè)是否為壓井作業(yè)unsigned short dlO〃在初始狀態(tài)下表示鉆桿上是否有3根打撈線}data ;structfloat js ;〃井深float gaslengthl 〃/'溢流氣體長度float gasheightl 〃/'溢流氣體底部距井底高度float gaslength2 〃/'在現(xiàn)有的作業(yè)中無用,保留
float gasheight2 ;〃在現(xiàn)有的作業(yè)中無用,保留
float hkkillmudlength 〃/環(huán)空內(nèi)壓井泥漿長度float hkkillmudheight 〃/環(huán)空內(nèi)壓井泥漿距井底高度float hkovermudlength 〃/環(huán)空內(nèi)重泥漿長度float hkovermudheight 〃/環(huán)空內(nèi)重泥漿距井底高度float zzkillmudlength ;//鉆柱內(nèi)壓井泥漿長度float zzkillmudheight ;//鉆柱內(nèi)壓井泥漿距井口高度float zzovermudlength 〃/鉆柱內(nèi)重泥漿長度float zzovermudheight 〃/鉆柱內(nèi)重泥漿距井口高度unsigned short JingKongFlag ;〃在初始狀態(tài)下表示本次作業(yè)是否為壓井作業(yè)皿digned short fireflag 5〃點火標志}jk;};圖形處理單元發(fā)送給氣體膨脹模擬控制程序的狀態(tài)信息數(shù)據(jù)格式
union 了SRevTUDataunsigned char buff[20] 5structfloat dl ;〃大鉤高度float d2 ;〃大鉤速度unsigned short d3 〃/每個動作繪制完成標記unsigned short d4 〃/半封狀態(tài),O表示關(guān),l表示中間狀態(tài),2表示開unsigned short d5 〃/全封狀態(tài),0表示關(guān),1表示中間狀態(tài),2表示開unsigned short d6 〃/環(huán)形狀態(tài),O表示關(guān),l表示中間狀態(tài),2表示開unsigned short d7 〃/小鼠洞是否有桿,O表示無桿,1表示有桿unsigned short d8 ;//吊環(huán)下掛物體是否在鉆臺平面下,o表示在下面,
1表示在上面}data 5}; 這樣就把氣體膨脹流程中的各種動作以及鉆井現(xiàn)場各種設(shè)備的狀態(tài)、空間位置等 控制信號和數(shù)據(jù)準確的發(fā)給圖處理單元,使圖形能迅速、準確地反映前端操作者的各種動 作,完成全三維實時氣體膨脹的模擬。
權(quán)利要求
鉆井模擬器氣體膨脹模擬方法,其特征在于專門針對鉆井過程中氣體膨脹模擬的控制程序,按照以下步驟實現(xiàn)鉆井過程中氣體膨脹模擬(1)讀取前端設(shè)備狀態(tài)參數(shù)和操作指令;(2)根據(jù)獲得的設(shè)備狀態(tài)參數(shù)和操作指令類別以及預(yù)先建立的氣體膨脹模型,計算出實現(xiàn)氣體膨脹模擬動畫的數(shù)據(jù);(3)按照設(shè)定的數(shù)據(jù)格式與專門設(shè)置的圖形處理單元通訊,交換作業(yè)數(shù)據(jù),圖形處理單元據(jù)此完成鉆井過程序中氣體膨脹動畫展現(xiàn);(4)按照設(shè)定的數(shù)據(jù)格式與圖形處理單元通訊,交換動畫狀態(tài)信息;(5)重復(fù)(1)~(4)。
2. 根據(jù)權(quán)利要求1所述的鉆井模擬器氣體膨脹模擬方法,其特征是所述的設(shè)備狀態(tài) 參數(shù)包括初始狀態(tài)參數(shù)和動態(tài)參數(shù),其中,初始狀態(tài)參數(shù)包括標準狀態(tài)下的壓縮系數(shù)Zs、標 準狀態(tài)下的溫度Ts、橫截面積Aa、氣體常數(shù)R、標準狀態(tài)下的壓力Ps、標準狀態(tài)下的體積Vs、 氣體常數(shù)R、標準狀態(tài)下的氣體密度P s、標準狀態(tài)下的壓縮系數(shù)Zs和標準狀態(tài)下的溫度TS ;動態(tài)參數(shù)包括壓力P、氣體體積V、溫度T、氣體體積Vx、鉆頭總進尺F、井深H、地層有 效壓力Pp、井底有效壓力Pb、排量Q、鉆轉(zhuǎn)速N、機械鉆速V、氣體上升到某一時刻氣柱中點的 氣體壓力Px、氣體上升到某一時刻氣柱中點地層溫度Tx和在溫度為T,壓力為P的條件下 的壓縮系數(shù)Z。
3. 根據(jù)權(quán)利要求1所述的鉆井模擬器氣體膨脹模擬方法,其特征是所述的操作指令 包括正常鉆進與關(guān)井指令、起鉆與關(guān)井指令、起鉆鋌與關(guān)井指令和空井與關(guān)井指令。
4. 根據(jù)權(quán)利要求1所述的鉆井模擬器氣體膨脹模擬方法,其特征是所述氣體膨脹模型包括氣體狀態(tài)模型、氣體溢流重量在環(huán)空內(nèi)產(chǎn)生的壓力模型和天然氣壓縮模型。
5. 根據(jù)權(quán)利要求1所述的鉆井模擬器氣體膨脹模擬方法,其特征是所述的數(shù)據(jù)格式包括初始化數(shù)據(jù)格式、作業(yè)數(shù)據(jù)格式和動畫狀態(tài)信息格式。
6. 根據(jù)權(quán)利要求1所述的鉆井模擬器氣體膨脹模擬方法,其特征是所述的圖形處理單元包括圖形繪制程序和視景仿真控制程序,其中,圖形繪制程序包括設(shè)備類圖形繪制、粒 子類圖形繪制、管理類圖形繪制和工藝動畫繪制,視景仿真控制程序包括工藝動畫控制、碰 撞處理、特效渲染和參數(shù)顯示。
全文摘要
本發(fā)明公開了一種鉆井模擬器氣體膨脹模擬方法,它包括以下步驟(1)讀取前端設(shè)備狀態(tài)參數(shù)和操作指令;(2)根據(jù)獲得的設(shè)備狀態(tài)參數(shù)和操作指令類別以及預(yù)先建立的氣體膨脹模型,計算出實現(xiàn)氣體膨脹模擬動畫的數(shù)據(jù);(3)按照設(shè)定的數(shù)據(jù)格式與專門設(shè)置的圖形處理單元通訊,交換作業(yè)數(shù)據(jù),圖形處理單元據(jù)此完成鉆井過程序中氣體膨脹動畫展現(xiàn);(4)按照設(shè)定的數(shù)據(jù)格式與圖形處理單元通訊,交換動畫狀態(tài)信息。本發(fā)明基于計算機仿真技術(shù),參照鉆井作業(yè)現(xiàn)場實際情況,對鉆井過程中氣體溢流在環(huán)空內(nèi)上升時產(chǎn)生膨脹的過程進行逼真模擬,增強了教學(xué)培訓(xùn)的現(xiàn)場感,縮短了培訓(xùn)周期、提高了培訓(xùn)效果、降低了培訓(xùn)成本。
文檔編號G09B25/02GK101710466SQ200910263420
公開日2010年5月19日 申請日期2009年12月16日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者梅大成, 胡衛(wèi)東, 趙剛, 鄭巧, 陳利學(xué), 龔捷 申請人:西南石油大學(xué)