顧海榮, 張雅倩, 葉 敏, 蘇燕芹, 郭項(xiàng)偉
(長(zhǎng)安大學(xué)公路養(yǎng)護(hù)裝備國(guó)家工程實(shí)驗(yàn)室,西安710064)
采礦事故的頻繁發(fā)生造成了嚴(yán)重的經(jīng)濟(jì)損失和人員傷亡[1]。鉆孔救援是近年來(lái)出現(xiàn)的一種新型快速救援方式,通過(guò)地面大直徑鉆孔,配合提升裝備實(shí)現(xiàn)被困人員的快速救援[2]。由于救援提升過(guò)程大多是在裝有套管的井筒內(nèi)進(jìn)行,套管在地層壓力等因素的作用下可能會(huì)發(fā)生變形破壞,對(duì)救援工作造成不利影響。
現(xiàn)有的井筒變形監(jiān)測(cè)技術(shù)多數(shù)局限于對(duì)局部變形的監(jiān)測(cè)。常見(jiàn)的監(jiān)測(cè)方法是在垂直方向設(shè)置基準(zhǔn),然后測(cè)量不同深度井筒與基準(zhǔn)距離,對(duì)井筒變形情況進(jìn)行分析。郭同江等[3]在井筒內(nèi)部罐籠的灌道外側(cè)懸掛4 根鋼絲,選擇成對(duì)角狀態(tài)的2 根鋼絲與井筒交點(diǎn)作為監(jiān)測(cè)點(diǎn),測(cè)量不同深度監(jiān)測(cè)點(diǎn)至鋼絲的距離,獲取不同深度中心坐標(biāo),完成井筒變形監(jiān)測(cè)。劉尚國(guó)等[4]針對(duì)井筒深度過(guò)大的情況,提出長(zhǎng)距離情況下激光作為基準(zhǔn)的監(jiān)測(cè)方法,達(dá)到減小誤差的效果。這些方法可以有效監(jiān)測(cè)井筒局部變形,但是對(duì)井筒的變形監(jiān)測(cè)局限于部分深度,監(jiān)測(cè)范圍覆蓋不全面。在救援過(guò)程中,救援設(shè)備在井筒內(nèi)上下移動(dòng),增加了井筒變形監(jiān)測(cè)的難度。
房華光[5]從變形監(jiān)測(cè)點(diǎn)位置的布設(shè)等角度進(jìn)行分析變形情況,并以MATLAB為編程環(huán)境構(gòu)建井筒模型。段友祥等[6]在模型基礎(chǔ)上對(duì)其進(jìn)行光滑處理并對(duì)井壁加以渲染,很好地實(shí)現(xiàn)立體效果。蔣必辭等[7]采用坐標(biāo)旋轉(zhuǎn)法構(gòu)建了井壁外殼。本文提出了井筒變形動(dòng)態(tài)監(jiān)測(cè)試驗(yàn)方案以及基于Windows窗體應(yīng)用程序和OpenGL類(lèi)庫(kù)(SharpGL)的軟件實(shí)現(xiàn)方案,最終通過(guò)LabVIEW調(diào)用界面完成了井筒變形動(dòng)態(tài)監(jiān)測(cè)軟件設(shè)計(jì),實(shí)時(shí)顯示井筒變形情況。
搭建實(shí)驗(yàn)平臺(tái)模擬礦井環(huán)境,采用非接觸式井徑測(cè)量裝置模擬救生艙,電動(dòng)機(jī)帶動(dòng)控制測(cè)量裝置上下移動(dòng)。將6 個(gè)激光位移傳感器呈60°均勻布置在井徑測(cè)量裝置水平面上,保證傳感器的測(cè)量射線共面且射線反向延長(zhǎng)線相交于一點(diǎn)。在測(cè)量裝置上下移動(dòng)過(guò)程中,使用激光位移傳感器采集傳感器到井壁的距離數(shù)據(jù),將采集的距離數(shù)據(jù)轉(zhuǎn)化為電信號(hào)后傳輸至模數(shù)轉(zhuǎn)換模塊,模數(shù)轉(zhuǎn)換模塊將電信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)后經(jīng)信號(hào)傳輸通道傳送至上位機(jī)用于處理及顯示。
6個(gè)激光位移傳感器在井壁上形成6 個(gè)光點(diǎn),每3個(gè)光點(diǎn)構(gòu)造1 個(gè)以井壁為外接圓的三角形,通過(guò)解析三角形模型確定對(duì)應(yīng)高度的井筒直徑。在同一深度,取20 組直徑數(shù)據(jù)的最小值作為這個(gè)截面的通過(guò)直徑。如圖1 所示為井筒直徑解析原理圖,圖中:P1、P2、P3為激光傳感器的激光輸出端口;A、B、C 為井壁上的對(duì)應(yīng)光點(diǎn)。
根據(jù)余弦公式,有:
圖1 井筒直徑解析原理圖
設(shè)三角形ABC面積為S,根據(jù)海倫公式,有:
采用三角形外接圓法計(jì)算井筒直徑,井筒半徑R為
同一截面上,通過(guò)O1點(diǎn)坐標(biāo)以及O1到井壁上6個(gè)點(diǎn)的距離可以獲得井壁上6 點(diǎn)坐標(biāo),進(jìn)而利用6 點(diǎn)坐標(biāo)采用最小二乘法擬合圓,獲得東西方向偏移量和南北方向偏移量。通過(guò)計(jì)算鋼絲繩的移動(dòng)距離獲得井深數(shù)據(jù)。
監(jiān)測(cè)方案很好地解決了豎直方向監(jiān)測(cè)范圍覆蓋不全面的情形,能實(shí)時(shí)獲得不同深度井筒截面數(shù)據(jù)。
井筒變形分為橫向和縱向。橫向變形的主要表現(xiàn)形式為水平位移,包括水平面東西方向偏移量、南北方向偏移量、井筒半徑變化;縱向變形表現(xiàn)為垂深變化[8]。井筒模型可以看作由多個(gè)不同深度的圓截面拼接而成,基于動(dòng)態(tài)監(jiān)測(cè)時(shí)所獲截面的井筒半徑以及圓心坐標(biāo)可以構(gòu)建井筒模型。
首先建立坐標(biāo)系,如圖2 所示,取井筒井口位置為坐標(biāo)原點(diǎn)O,從上至下為Y軸正方向,正東方向?yàn)閄軸正方向,正南方向?yàn)閆軸正方向。
圖2 O-XYZ坐標(biāo)系
在三維直角坐標(biāo)系中繪圖時(shí)需要將井深轉(zhuǎn)換為垂深[9]。理論計(jì)算基本參數(shù)為:測(cè)段長(zhǎng)度ΔL,mm;東西向增量ΔE,mm;南北向增量ΔN,mm;水平方向位移變化矢量和ΔS,mm;垂深增量ΔH,mm;井斜角α;方位角φ。如圖3 所示為井筒模型構(gòu)建基本參數(shù)示意圖。
圖3 井筒模型構(gòu)建基本參數(shù)示意圖
計(jì)算公式為:
如表1 所示為試驗(yàn)和計(jì)算所得的井筒變形監(jiān)測(cè)數(shù)據(jù)。
表1 井筒變形監(jiān)測(cè)試驗(yàn)相關(guān)數(shù)據(jù)
OpenGL作為編程接口,通常用于視覺(jué)圖形和3D游戲開(kāi)發(fā)中[10]。它可以應(yīng)用在不同的平臺(tái),而且調(diào)用非常方便[11]。Windows窗體應(yīng)用程序作為一個(gè)平臺(tái),可以很方便地實(shí)現(xiàn)圖像更新[12]。SharpGL 是一個(gè)OpenGL被封裝后的C#類(lèi)庫(kù)集合,將C#和SharpGL聯(lián)合,開(kāi)發(fā)圖形程序可以提高效率[13]。相比于MFC 框架,在Windows窗體應(yīng)用程序中使用SharpGL 有更強(qiáng)的可掌控性。因此,本文在VisualC#下建立Windows窗體應(yīng)用程序,結(jié)合OpenGL類(lèi)庫(kù)(SharpGL)構(gòu)建井筒模型。通過(guò)Access數(shù)據(jù)庫(kù)[14]鏈接Excel表格,在編程中獲取數(shù)據(jù)庫(kù)路徑,最終通過(guò)LabVIEW調(diào)用窗體應(yīng)用程序?qū)崿F(xiàn)Excel 表格中數(shù)據(jù)改變,窗體圖形隨之相應(yīng)變化的效果,即實(shí)現(xiàn)動(dòng)態(tài)變化。如圖4 所示為軟件關(guān)系示意圖。
圖4 軟件關(guān)系示意圖
(1)為了方便在救援過(guò)程中及時(shí)地觀察到井筒變形是否超限,對(duì)于圓心坐標(biāo)偏差較大以及所測(cè)直徑過(guò)小的部分用不同顏色標(biāo)記。圓心坐標(biāo)偏差包括東西方向偏差值和南北方向偏差值,偏差值過(guò)大或直徑過(guò)小用紅色顯示。井筒變形在安全界限以內(nèi)用青色顯示。豎井井筒底部相對(duì)穩(wěn)定,所以以最底部截面半徑以及圓心坐標(biāo)建立井筒模型,作為參考模型觀察垂直方向變形情況。
如圖5 所示為水平偏差對(duì)井筒變形范圍影響示意圖。本示例將東西方向和南北方向偏差值的最大范圍控制在10 mm以內(nèi),即水平面內(nèi)的總偏差值安全范圍在mm(約14.14 mm)以內(nèi)。本示例井筒內(nèi)徑為606 mm,救生艙艙體外徑為560 mm,井筒直徑的變化范圍在31.86 mm 以內(nèi),即在救生艙總偏移值不超過(guò)14.14 mm 時(shí),井筒內(nèi)徑只要大于591.86 mm 就在安全范圍內(nèi)。
圖5 水平偏差對(duì)井筒變形范圍影響示意圖(mm)
(2)井筒變形圖不僅要求滿足監(jiān)測(cè)作用,在圖形界面也應(yīng)具有良好的視覺(jué)效果。在監(jiān)測(cè)過(guò)程中,為了將已監(jiān)測(cè)部分全部顯示在窗體中,不論監(jiān)測(cè)裝置運(yùn)行到什么位置,已經(jīng)監(jiān)測(cè)部分井筒的變形圖可以根據(jù)長(zhǎng)度自動(dòng)伸縮比例。
(3)在救援過(guò)程中,救生艙是持續(xù)運(yùn)行的,因此相關(guān)數(shù)據(jù)實(shí)時(shí)變化。當(dāng)?shù)竭_(dá)某一深度,若井筒變形超出安全界限,用戶可以對(duì)危險(xiǎn)部分進(jìn)行縮放、平移及旋轉(zhuǎn)。
LabVIEW是一種圖形化編程語(yǔ)言,使用簡(jiǎn)單、便捷[15]。動(dòng)態(tài)鏈接庫(kù)(DLL)是Windows 操作系統(tǒng)的基礎(chǔ)[16],它獨(dú)立于編程語(yǔ)言,因此大多數(shù)語(yǔ)言編寫(xiě)的DLL都可為L(zhǎng)abVIEW 所用[17-18]。在Visual Studio 中顯示井筒變形界面需要點(diǎn)擊“運(yùn)行”,改變表格中數(shù)據(jù)需要重新點(diǎn)擊“運(yùn)行”方可觀察到界面變化。但是在LabVIEW中調(diào)用DLL 文件則不同,Excel 表格中數(shù)據(jù)改變,Access 數(shù)據(jù)庫(kù)中數(shù)據(jù)隨之改變,LabVIEW 中的圖形界面也隨之改變,實(shí)現(xiàn)了動(dòng)態(tài)監(jiān)測(cè)。
將Visual Studio中編好的程序打包為DLL 文件。調(diào)用C#編程的DLL文件需要選擇構(gòu)造器節(jié)點(diǎn)。利用屬性節(jié)點(diǎn)、構(gòu)造器節(jié)點(diǎn)以及調(diào)用節(jié)點(diǎn)調(diào)用DLL 文件,最終實(shí)現(xiàn)直接在LabVIEW中顯示窗體應(yīng)用程序界面。這樣不僅可以觀察到井筒變形動(dòng)態(tài)圖,也可以節(jié)省電腦空間內(nèi)存。如圖6 所示為根據(jù)試驗(yàn)數(shù)據(jù)所獲得的井筒變形動(dòng)態(tài)監(jiān)測(cè)界面。
圖6 井筒變形動(dòng)態(tài)監(jiān)測(cè)界面(mm)
井筒變形示例圖中整體框架使圖形顯得更有立體感。當(dāng)變形圖中出現(xiàn)紅色時(shí),用戶收到信號(hào)及時(shí)停止提升救援裝置(本示例圖中未出現(xiàn)紅色表示截面圓心坐標(biāo)偏移量以及井筒半徑變化值滿足要求)。用戶可以根據(jù)實(shí)際要求設(shè)置偏差值安全界限、直徑安全界限以及自動(dòng)伸縮比例,直徑大于安全界限并且偏移量小于安全界限時(shí),救援提升裝備正常運(yùn)行。若兩者有一個(gè)不滿足,則需要停止提升救援裝置。
本項(xiàng)目在LabVIEW中建立相關(guān)界面,井筒運(yùn)行過(guò)程中,可實(shí)時(shí)顯示井深數(shù)據(jù)、半徑大小等相關(guān)數(shù)據(jù)。用戶可根據(jù)實(shí)例自行標(biāo)注刻度。
本文基于Visual C#和LabVIEW 軟件并結(jié)合OpenGL類(lèi)庫(kù)實(shí)現(xiàn)井筒變形動(dòng)態(tài)監(jiān)測(cè),很大程度提高安全系數(shù)以及救援效率:用電動(dòng)機(jī)控制井徑測(cè)量裝置上下移動(dòng)實(shí)時(shí)獲得不同深度井筒截面數(shù)據(jù),擴(kuò)大豎直方向井筒變形監(jiān)測(cè)范圍,提高救援工作的安全性?;赩isual C#編程環(huán)境,創(chuàng)建Windows窗體應(yīng)用程序并將C#語(yǔ)言與SharpGL 聯(lián)合開(kāi)發(fā)程序構(gòu)建井筒變形模型,程序簡(jiǎn)潔且方便調(diào)用。調(diào)用窗體應(yīng)用程序界面可以通過(guò)直接改變Excel表格中數(shù)據(jù)改變窗體應(yīng)用程序界面顯示圖形,實(shí)現(xiàn)井筒變形動(dòng)態(tài)監(jiān)測(cè),而且可以節(jié)省內(nèi)存,加快軟件運(yùn)行速度。整套軟件的開(kāi)發(fā)具有普遍適用性,為后續(xù)對(duì)救援井實(shí)施動(dòng)態(tài)監(jiān)測(cè)提供一定的參考價(jià)值。用戶可以根據(jù)自身需求增加救援裝置提升速度、穩(wěn)定性監(jiān)測(cè)等實(shí)用性功能。