張 震,朱權(quán)潔,2,晁海杰,李青松,張爾輝
(1. 華北科技學(xué)院 安全工程學(xué)院,北京 東燕郊 065201;2.華北科技學(xué)院 河北省礦井災(zāi)害防治重點(diǎn)實(shí)驗(yàn)室,北京 東燕郊 065201;3. 國(guó)家能源集團(tuán)寧夏煤業(yè)紅石灣煤礦有限責(zé)任公司,寧夏 靈武 750409;4. 貴州省煤礦設(shè)計(jì)研究院,貴州 貴陽(yáng) 550025)
隨著我國(guó)東部等地區(qū)多數(shù)煤礦進(jìn)入深部開(kāi)采,沖擊地壓等動(dòng)力災(zāi)害越來(lái)越嚴(yán)重[1]。為了保障礦山正常生產(chǎn),人們利用具有監(jiān)測(cè)地域廣等優(yōu)勢(shì)的微震監(jiān)測(cè)預(yù)警系統(tǒng),進(jìn)行沖擊地壓等災(zāi)害的分析、預(yù)警。但現(xiàn)有的微震監(jiān)測(cè)預(yù)警系統(tǒng)多為C/S結(jié)構(gòu)模式,不適用于多用戶遠(yuǎn)程操作,這為進(jìn)行多層級(jí)礦山災(zāi)害實(shí)時(shí)分析帶來(lái)不利。因此,將B/S結(jié)構(gòu)模式引入礦山災(zāi)害預(yù)警平臺(tái),對(duì)礦山災(zāi)害的及時(shí)分析、預(yù)警有著重要現(xiàn)實(shí)意義。
近年來(lái),我國(guó)在利用微震技術(shù)進(jìn)行災(zāi)害預(yù)警方面取得了重大進(jìn)展[2-5]。姜福興[3]等聯(lián)合多種參量對(duì)沖擊地壓進(jìn)行監(jiān)測(cè)預(yù)警,提高了沖擊地壓監(jiān)測(cè)預(yù)警的準(zhǔn)確性。隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,三維建模軟件被應(yīng)用于各個(gè)領(lǐng)域[4]。夏勇學(xué)[5]基于OpenGL平臺(tái)聯(lián)合數(shù)據(jù)庫(kù)技術(shù)開(kāi)發(fā)了礦山微震三維顯示及應(yīng)用軟件,為用戶提供了較好的輔助功能。李懷良[6]等通過(guò)GPU可編程圖形管線代替OpenGL固定管線,對(duì)微震監(jiān)測(cè)區(qū)域三維模型的渲染,提高了建模效率。韓軍等以Untily3D軟件為建模平臺(tái),以C#語(yǔ)言為編程語(yǔ)言,實(shí)現(xiàn)了三維地質(zhì)模型的構(gòu)建與微震數(shù)據(jù)的可視化,完成了整個(gè)系統(tǒng)地質(zhì)數(shù)據(jù)、采掘數(shù)據(jù)與微震數(shù)據(jù)的集成和實(shí)時(shí)顯示[7]。隨著X3DOM技術(shù)的問(wèn)世與發(fā)展,國(guó)內(nèi)外學(xué)者以X3DOM為框架做了大量研究[8,9],胡文玲[10]基于X3DOM技術(shù)對(duì)電力系統(tǒng)三維模型進(jìn)行了可視化構(gòu)建及操作功能的開(kāi)發(fā),并以Web的形式進(jìn)行展示。證實(shí)了基于B/S構(gòu)架進(jìn)行電力系統(tǒng)可視化應(yīng)用的可行性。楊婷[11]以X3DOM為引擎,以三維地質(zhì)模型數(shù)據(jù)為基礎(chǔ)建模數(shù)據(jù),基于同一平臺(tái)實(shí)現(xiàn)與復(fù)雜數(shù)據(jù)相對(duì)應(yīng)的空間模型的構(gòu)建和查詢。
綜上所述,針對(duì)三維建模技術(shù)難度大、資源耗費(fèi)多等問(wèn)題,基于X3DOM開(kāi)發(fā)了B/S架構(gòu)的礦山微震數(shù)據(jù)分析與三維可視化展示平臺(tái)。該平臺(tái)是由X3DOM、PostgreSQL數(shù)據(jù)庫(kù)以及互聯(lián)網(wǎng)技術(shù)等聯(lián)合建立的B/S結(jié)構(gòu)平臺(tái)??傮w而言,該平臺(tái)開(kāi)發(fā)效率高、資源耗費(fèi)少,可以實(shí)現(xiàn)礦山三維模型以及微震監(jiān)測(cè)數(shù)據(jù)的網(wǎng)頁(yè)展示與交互操作,支持多用戶異地訪問(wèn)。
Blender是一款優(yōu)質(zhì)的三維建模軟件,其擺脫了傳統(tǒng)商業(yè)性建模軟件的不足,為用戶提供了免費(fèi)、功能齊備、使用簡(jiǎn)單的多功能建模工具。Blender還提供有Python運(yùn)行窗口,為模型的自動(dòng)構(gòu)建創(chuàng)造了條件。利用Blender可生成高逼真度的礦山井巷、巖體等三維模型,可為真實(shí)還原礦山井下采場(chǎng)形態(tài)等提供良好的建模平臺(tái)。Blender還有物理仿真模塊,能真實(shí)模擬水災(zāi)、火災(zāi)的災(zāi)變情況,對(duì)礦山災(zāi)害的應(yīng)急救援等有著重要意義。
X3DOM(X-Freedom)是一個(gè)開(kāi)源的JavaScript框架。用戶可用創(chuàng)建層次化、文本化的語(yǔ)句表示方式取代復(fù)雜代碼編寫的傳統(tǒng)方式,完成交互式3D場(chǎng)景的創(chuàng)建與顯示。同時(shí),X3DOM技術(shù)支持跨平臺(tái)使用,谷歌、IE系列等瀏覽器均支持其網(wǎng)頁(yè)展示。通過(guò)此框架可使傳統(tǒng)礦山災(zāi)害預(yù)警平臺(tái)從桌面端走向Web端、移動(dòng)端,為用戶提供一個(gè)訪問(wèn)快捷、遠(yuǎn)程操作方便的礦山三維虛擬平臺(tái)。
礦山微震三維交互平臺(tái)是以B/S架構(gòu)進(jìn)行開(kāi)發(fā)的。與傳統(tǒng)的C/S架構(gòu)監(jiān)測(cè)系統(tǒng)相比,該系統(tǒng)平臺(tái)無(wú)需客戶端專業(yè)軟件,降低了系統(tǒng)開(kāi)發(fā)、維護(hù)的技術(shù)難度,方便用戶使用。圖1為礦山微震三維可視化平臺(tái)B/S架構(gòu)示意圖。
圖1 礦山微震三維可視化平臺(tái)B/S架構(gòu)示意圖
礦山微震三維可視化平臺(tái)采用三層架構(gòu)進(jìn)行開(kāi)發(fā)。三層架構(gòu)項(xiàng)目結(jié)構(gòu)明確,提高了平臺(tái)的開(kāi)發(fā)速度,便于系統(tǒng)后期維護(hù)。如圖2為礦山微震三維交互平臺(tái)開(kāi)發(fā)流程圖。
圖2 礦山微震三維交互平臺(tái)開(kāi)發(fā)流程圖
該平臺(tái)利用PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行微震監(jiān)測(cè)數(shù)據(jù)、巷道截面參數(shù)等的儲(chǔ)存管理。PostgreSQL具有面向?qū)ο?、?shù)據(jù)類型豐富以及大數(shù)據(jù)庫(kù)等特點(diǎn),可為具有多源異構(gòu)特點(diǎn)的微震數(shù)據(jù)、礦山井巷系統(tǒng)基礎(chǔ)建模數(shù)據(jù)等大型數(shù)據(jù)的高效操作、分析提供穩(wěn)定的環(huán)境。
業(yè)務(wù)邏輯層是三層架構(gòu)的中間層。其主要作用是對(duì)具體問(wèn)題進(jìn)行邏輯判斷與執(zhí)行操作等。對(duì)于該平臺(tái)而言,業(yè)務(wù)邏輯層的開(kāi)發(fā)主要是對(duì)HTML文件的編寫,具體開(kāi)發(fā)內(nèi)容如下:
(1) 模型導(dǎo)入:該平臺(tái)以礦山井巷系統(tǒng)、工作面幾何模型,作為礦山微震數(shù)據(jù)可視化平臺(tái)創(chuàng)建的基礎(chǔ)。因此,本研究先利用Python調(diào)用Blender建模函數(shù),基于三維空間生成井巷系統(tǒng)幾何模型,并導(dǎo)出該幾何模型的x3d文件;再在X3DOM技術(shù)框架下,利用HTML5標(biāo)準(zhǔn)語(yǔ)言的
(2) 微震模型算法編寫:本研究利用JavaScript與HTML聯(lián)合編寫微震事件模型生成腳本。創(chuàng)建對(duì)象:通過(guò)具有不同顏色、大小的球體具象化描述微震事件,因此,先利用
① 連接數(shù)據(jù)庫(kù):利用SQL語(yǔ)句連接PostgreSQL數(shù)據(jù)庫(kù),調(diào)取微震事件坐標(biāo)、所釋放能量等數(shù)據(jù)。
② 能量等級(jí)劃分:根據(jù)監(jiān)測(cè)到的微震事件能量大小將微震事件劃分為六個(gè)等級(jí),依次對(duì)應(yīng)的能量范圍為大于106、105~106、104~105、103~104、102~103、0~102J。
③ 確定球體模型的顏色與大?。好總€(gè)能量等級(jí)對(duì)應(yīng)的球體模型顏色分別為紅、黃、綠、青、藍(lán)、紫,半徑由大逐漸減小。通過(guò)JavaScript的if語(yǔ)句判斷微震事件能量等級(jí),并獲取相應(yīng)的顏色與半徑。
④ 確定球體模型空間位置:如式(1)為微震事件在虛擬場(chǎng)景中的空間位置坐標(biāo)表達(dá)式。其中,(x,y,z)為監(jiān)測(cè)到的微震事件坐標(biāo);k為縮放比例系數(shù);x0、y0、z0分別表示,微震模型在不同坐標(biāo)軸平移的距離。
(1)
⑤ 連接創(chuàng)建的對(duì)象ID,并利用標(biāo)簽函數(shù),調(diào)用③、④中解算出的顏色、半徑、三維坐標(biāo),為生成微震事件三維模型提供數(shù)據(jù)支撐。
⑥ 關(guān)閉數(shù)據(jù)庫(kù)。
具體代碼示例如下:
//創(chuàng)建對(duì)象
width:82px;height:25px;"/>//創(chuàng)建功能按鈕
function Sphere_model (){ //定義函數(shù)
var conn newActiveXObject("ADODB.
Connection");//創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象;
if (energy<100){C=E[5];F=6;DD=D[0];}……//依據(jù)能量等級(jí),賦予事件顏色及大??;
b.setAttribute("radius",DD);……//為模型半徑賦予具體數(shù)值;
var ot = document.getElementById ('root');
conn.close();
表示層是以Web網(wǎng)頁(yè)等形式為客戶端提供交互操作界面。該平臺(tái)利用JavaScript與CSS聯(lián)合開(kāi)發(fā)簡(jiǎn)潔、規(guī)范、易懂的用戶界面,實(shí)現(xiàn)利用鼠標(biāo)方式完成數(shù)據(jù)饋送及交互控制[10],如微震事件與巖體模型的顯示、隱藏,巷道及巖體的名稱標(biāo)記,微震信息的查詢等。
以山東某礦井為例,對(duì)本文所提出方法進(jìn)行實(shí)踐驗(yàn)證。該礦首采區(qū)主要開(kāi)采3煤層。3煤層位于山西組中下部,開(kāi)采深度在530m~1200 m之間。由于深部巖體位于“三高一擾動(dòng)”復(fù)雜地質(zhì)環(huán)境,因此,3煤層開(kāi)采過(guò)程中地壓顯現(xiàn)次數(shù)多,面臨著礦山動(dòng)力災(zāi)害的威脅。本文所研究的區(qū)域?yàn)?煤層1302工作面。1302工作面開(kāi)采深度超過(guò)900 m,采場(chǎng)與巷道圍巖失穩(wěn)嚴(yán)重,沖擊地壓等災(zāi)害的突發(fā)性強(qiáng)。如圖3標(biāo)記的區(qū)域?yàn)?302工作面。
圖3 工作面布置圖
本文利用“參數(shù)化建模方法”生成礦山井巷系統(tǒng)幾何模型,即通過(guò)巷道長(zhǎng)、寬、高等參數(shù)生成閉合的巷道截面輪廓線;接著以生成的巷道截面輪廓線為基礎(chǔ),利用巷道中心導(dǎo)線點(diǎn)坐標(biāo),以“點(diǎn)構(gòu)面構(gòu)體”的方式生成三維巷道幾何模型。由于現(xiàn)實(shí)中巷道存在偏斜、曲折、平直等多種形態(tài),為了真實(shí)還原井巷系統(tǒng)空間位置關(guān)系及起伏變化情況,本文對(duì)偏斜、曲折等巷道,通過(guò)“差值”的方式添加巷道中心導(dǎo)線點(diǎn)數(shù)量,以保障巷道的連續(xù)性。在Python環(huán)境下利用Blender API執(zhí)行井巷系統(tǒng)幾何模型生成算法,調(diào)用數(shù)據(jù)庫(kù)數(shù)據(jù)為基礎(chǔ)模型的生成提供數(shù)據(jù)支撐,再聯(lián)合Blender bpy、math、mesh等建模函數(shù),快速生成礦山井巷系統(tǒng)幾何模型。圖4為礦山井巷系統(tǒng)三維模型展示圖,圖4(a)為以Blender為建模平臺(tái)生成的礦山井巷系統(tǒng)模型效果圖,圖4(b)為將Blender生成的井巷模型以文件的格式導(dǎo)入至網(wǎng)頁(yè)的展示圖。
圖4 礦山井巷系統(tǒng)三維模型
(1) 基本操作功能
基本操作功能包括:旋轉(zhuǎn)、平移、縮放。用戶利用基本操作功能可從任意角度、位置觀察微震事件的空間位置關(guān)系、能量分布等情況。按住鼠標(biāo)左鍵向目標(biāo)位置拖動(dòng),即可對(duì)場(chǎng)景中的三維模型進(jìn)行旋轉(zhuǎn);向下點(diǎn)擊鼠標(biāo)滾輪,用戶界面鼠標(biāo)指針隨即發(fā)生變化,接著點(diǎn)擊鼠標(biāo)左鍵滑動(dòng)鼠標(biāo)即可操作模型平移,再次點(diǎn)擊鼠標(biāo)左鍵則可取消平移功能;通過(guò)滾動(dòng)鼠標(biāo)滾輪可將視角拉大、縮小。圖5為系統(tǒng)用戶界面以及功能菜單的展示,其中白色的模型為導(dǎo)入的井巷系統(tǒng)、工作面等模型。
圖5 系統(tǒng)界面效果圖
(2) 操作功能展示
該平臺(tái)是集模型生成與信息查詢于一體的系統(tǒng)平臺(tái),借助互聯(lián)網(wǎng)、數(shù)據(jù)庫(kù)等前沿技術(shù)以3D形式將隨采掘工程誘發(fā)的微震事件直觀的展示出來(lái)。該平臺(tái)具體開(kāi)發(fā)有如下功能:
① 表名輸入、事件添加:用戶通過(guò)表名輸入框輸入指定日期,單擊事件添加功能按鈕發(fā)送請(qǐng)求。該平臺(tái)立刻以“請(qǐng)求—應(yīng)答”的方式獲取用戶請(qǐng)求,并快速調(diào)用指定日期發(fā)生的微震事件信息生成Sphere反饋至用戶界面,完成微震事件具體化、形象化展示。
② 事件撤回:事件撤回功能是基于事件添加的基礎(chǔ)上進(jìn)行操作的。主要作用是將三維場(chǎng)景中生成的微震事件模型撤回;
③ 名稱標(biāo)記、標(biāo)記撤回:通過(guò)數(shù)據(jù)與文本功能結(jié)合,對(duì)巷道、工作面、硐室等添加名稱標(biāo)記。標(biāo)記撤回是對(duì)名稱標(biāo)記功能的返回,撤除生成的名稱標(biāo)記;
④ 煤層生成、煤層撤回:煤層生成功能按鈕與輸入表名功能框相聯(lián)系。用戶根據(jù)需求,在輸入表名功能框輸入指定日期,點(diǎn)擊“煤層生成”按鈕發(fā)布請(qǐng)求,借助Apache接受、解析請(qǐng)求,調(diào)用煤層生成功能函數(shù),迅速獲取指定日期對(duì)應(yīng)的工作面開(kāi)采進(jìn)尺,自動(dòng)完成煤層模型中心點(diǎn)重新定位、長(zhǎng)度參數(shù)調(diào)整,生成煤層模型。最后,將煤層模型反饋至用戶界面進(jìn)行顯示。為了便于煤層內(nèi)部微震事件的查看、分析,本研究對(duì)煤層進(jìn)行了透明化處理,并設(shè)置有煤層撤回功能可隨時(shí)去除煤層模型。如圖6是對(duì)系統(tǒng)功能應(yīng)用效果的展示,其中,與圖6(a)(b)對(duì)應(yīng)的操作功能分別為事件添加,煤層生成與名稱標(biāo)記,圖6(c)是對(duì)三維模型生成等操作功能的綜合展示。下述為自定義煤層生成功能模塊的部分代碼:
圖6 系統(tǒng)操作功能效果展示
function CoalSeam( )//定義煤層功能函數(shù)
var a=document.getElementById("tow").value;
//獲取輸入的進(jìn)尺數(shù)據(jù)
c=b*3.14/180;
var d=document.getElementById('root0');//功能函數(shù)與button綁定};
(3) 事件信息查詢。為了在用戶界面靈活、快捷地查看單個(gè)微震事件信息,該平臺(tái)以小框的形式動(dòng)態(tài)進(jìn)行單個(gè)微震事件的信息展示。用戶通過(guò)鼠標(biāo)懸浮或點(diǎn)擊微震事件模型,網(wǎng)頁(yè)界面自動(dòng)彈出信息窗口顯示微震事件信息。當(dāng)鼠標(biāo)移至下一個(gè)目標(biāo)模型時(shí),信息小窗位置跟隨目標(biāo)物體改變,小框信息內(nèi)容自動(dòng)更新。圖7為對(duì)單個(gè)微震事件信息查詢的效果圖,小框中顯示微震事件所釋放的能量大小、位置坐標(biāo)信息。
圖7 信息小框效果展示
(1) 基于X3DOM引擎建立了B/S模式的礦山微震數(shù)據(jù)分析與三維可視化展示平臺(tái)。與C/S模式災(zāi)害預(yù)警系統(tǒng)相比,該平臺(tái)無(wú)需安裝專用客戶端軟件,投資、維護(hù)成本低,支持多用戶異地統(tǒng)計(jì)、分析礦山微震數(shù)據(jù)。
(2) 利用Python和Blender開(kāi)源軟件實(shí)現(xiàn)了礦山井巷系統(tǒng)幾何模型的自動(dòng)、快速建立,真實(shí)還原了礦山井巷系統(tǒng)的起伏變化情況。
(3) 針對(duì)礦山微震事件監(jiān)測(cè)數(shù)據(jù)冗雜多源的問(wèn)題,利用X3DOM與數(shù)據(jù)庫(kù)技術(shù),將繁雜的微震監(jiān)測(cè)信息轉(zhuǎn)化為形象、具體的球體模型。結(jié)果表明,該方式可將微震事件空間分布、能量特征直觀地表現(xiàn)出來(lái),為用戶提供一個(gè)強(qiáng)有力的災(zāi)害監(jiān)測(cè)、分析平臺(tái)。