蔣成龍,楊應(yīng)迪,黃建達(dá)
(安徽理工大學(xué) 安全科學(xué)與工程學(xué)院,安徽 淮南 232001)
隨著智能礦山的建設(shè)和煤礦的不斷深入開采,煤礦安全管理人員為了更加直觀的去了解煤礦井下的基本情況,對(duì)井下巷道的三維顯示需求日益提高。三維可視化顯示已在三維礦山平臺(tái)建設(shè)的方向且取得了一定的成果[1-2]。計(jì)算機(jī)仿真模塊及交互式應(yīng)用的發(fā)展,更是為煤礦安全管理人員提供了便利的可視化三維模型[3]。
國內(nèi)外很多學(xué)者都在基于OpenGL強(qiáng)大功能的基礎(chǔ)上對(duì)礦井三維仿真技術(shù)進(jìn)行研究,與此同時(shí)也開發(fā)出了許多程序來實(shí)現(xiàn)礦井通風(fēng)系統(tǒng)的三維可視化模擬顯示。如張思卿等[4]基于OpenGL模擬巷道內(nèi)外部全景,最后通過貼圖使巷道具有真實(shí)感;多依麗等[5]利用三角形拼構(gòu)法對(duì)巷道及內(nèi)部設(shè)施進(jìn)行建模,利用三角剖分算法對(duì)拼接處的處理,利用粒子系統(tǒng)對(duì)動(dòng)態(tài)風(fēng)流進(jìn)行模擬;海軍等[6]采用三角剖分算法對(duì)巷道的建模進(jìn)行研究,同時(shí)提出用圖像紋理映射的方法對(duì)構(gòu)筑物和通風(fēng)裝置進(jìn)行可視化研究;趙建忠等[7]利用虛擬現(xiàn)實(shí)技術(shù)在礦業(yè)中為礦山優(yōu)化設(shè)計(jì)、生產(chǎn)管理危險(xiǎn)性評(píng)價(jià)及礦工培訓(xùn)等方面提供重要可靠判斷依據(jù)。
在當(dāng)下的國內(nèi)外學(xué)者的研究中,礦山可視化進(jìn)程有了一定程度的突破,可以對(duì)一般的礦井實(shí)現(xiàn)三維建模模擬,但是所建井巷大都停留在表面的模擬,不能交互式了解井巷內(nèi)部具體情況。為此,以建立起一個(gè)綜合性的三維巷道仿真平臺(tái)為目標(biāo),方便用戶對(duì)巷道的起伏、轉(zhuǎn)向、變化以及巷道內(nèi)部參數(shù)進(jìn)行了解,同時(shí)還可以直接讀入平面圖紙和巷道參數(shù)來自動(dòng)生成完整的礦井井巷三維模型。
OpenGL(即Open Graphics Library)是一款開源的三維計(jì)算機(jī)圖形與模型庫。作為一個(gè)跨編程語言、跨操作平臺(tái)的專業(yè)的圖形程序接口,同時(shí)還是繪制高真實(shí)感三維圖形、實(shí)現(xiàn)交互式視景仿真和虛擬現(xiàn)實(shí)的高性能開發(fā)軟件包,其圖形優(yōu)越性十分出眾。
由于OpenGL開源性的特點(diǎn)使得以其為基礎(chǔ)開發(fā)的程序可以十分方便地在不同平臺(tái)之間進(jìn)行兼容性移植,同時(shí)能高質(zhì)量的顯示二維和三維圖形,因此OpenGL的應(yīng)用領(lǐng)域相當(dāng)?shù)膶拸V。在OpenGL龐大的函數(shù)庫中,它主要具有以下幾個(gè)方面的功能:物體建模與圖元繪制、矩陣變化、顏色管理、光照和材質(zhì)、紋理映射、位圖和圖像、圖像效果增強(qiáng)、變換操作與交互選擇[8]。
OpenGL作為一種圖形接口需要在一定的開發(fā)平臺(tái)上才能實(shí)現(xiàn)所需要的一系列功能。所采用的平臺(tái)開發(fā)語言是VB.NET。由于VB.NET是基于.NET框架且完全面向?qū)ο蟮木幊陶Z言,因此具有精練、靈活高效、易于維護(hù)和移植的特點(diǎn)[9]。可以有效地減少Windows應(yīng)用程序開發(fā)人員的工作量,使開發(fā)界面的內(nèi)容與功能更加豐富。
基于OpenGL的礦井通風(fēng)系統(tǒng)的三維可視化模型構(gòu)建流程如圖1。
圖1 礦井三維模型構(gòu)建流程Fig.1 Mine3D model construction process
礦井三維建模是在OpenGL和vb.net編程語言的基礎(chǔ)上,通過運(yùn)用交互式采集[10-11]對(duì)巷道各處的節(jié)點(diǎn)進(jìn)行坐標(biāo)定位、利用三角形剖分算法構(gòu)建三維巷道模型并處理好節(jié)點(diǎn)處的連接關(guān)系,再將通風(fēng)系統(tǒng)模型同步到三維系統(tǒng)中,最終生成完整的三維礦井模型。
就一般情況而言,每條巷道的兩端都可以視為不同的節(jié)點(diǎn),不同巷道的節(jié)點(diǎn)以一定的規(guī)律首尾相連就可以形成完整的礦井三維巷道模型。在建模過程中需要使用巷道中線來大致表示井巷走勢與起伏情況,而巷道中線是由多段線有邏輯的組合而成。多段線是由一系列節(jié)點(diǎn)的空間坐標(biāo)有序連接而成,簡單的理解為A、B2個(gè)節(jié)點(diǎn)間的巷道走勢變化情況。巷道多段線表示如圖2。
圖2 巷道多段線表示Fig.2 Roadway represented by multi-segment line
巷道中線[12]是從原始的煤礦工程平面圖與煤礦通風(fēng)系統(tǒng)圖的CAD文件中經(jīng)過多次交互式采樣將CAD平面圖上的井下巷道分解轉(zhuǎn)換為三維空間中有邏輯關(guān)系的不同多段線。多段線的初步構(gòu)建可以搭建起礦井巷道的初步框架,對(duì)于多段線而言只要確定了各個(gè)巷道多段線中不同關(guān)鍵節(jié)點(diǎn)的坐標(biāo)就可以將巷道的走勢與空間關(guān)系較好的表達(dá)出來。
在確定節(jié)點(diǎn)坐標(biāo)前需要先對(duì)原始煤礦工程平面圖進(jìn)行圖層處理以方便進(jìn)一步對(duì)各個(gè)節(jié)點(diǎn)的識(shí)別,然后對(duì)圖紙的基準(zhǔn)參考面進(jìn)行參數(shù)設(shè)置,使其在構(gòu)建的三維平臺(tái)中始終處于xoy平面上且根據(jù)指北針方向進(jìn)一步確定三維平臺(tái)的空間位置。對(duì)于不同的巷道中線對(duì)應(yīng)的連接關(guān)系需要不斷確定不同節(jié)點(diǎn)的x、y、z值坐標(biāo)來確定不同節(jié)點(diǎn)的具體位置。巷道節(jié)點(diǎn)坐標(biāo)確定如圖3。
圖3 巷道節(jié)點(diǎn)坐標(biāo)確定Fig.3 Determined coordinates of roadway nodes
巷道斷面的確定則是通過在井下收集相應(yīng)的巷道參數(shù)并進(jìn)行相關(guān)的理論分析后直接計(jì)算出來。巷道斷面具體的表現(xiàn)形式為在已經(jīng)確定巷道節(jié)點(diǎn)上通過三維多段線呈現(xiàn),巷道斷面上的三維多段線根據(jù)之前選定節(jié)點(diǎn)上預(yù)先設(shè)定的算法進(jìn)行自動(dòng)設(shè)計(jì)并根據(jù)不同的巷道參數(shù)呈現(xiàn)不同的斷面形式。
首先依據(jù)井下收集的巷道寬度、墻高以及拱高等巷道參數(shù)數(shù)據(jù)來確定梯形、圓形、半圓拱形和自定義形狀等斷面,然后利用不同的巷道三維多段線斷面計(jì)算結(jié)果來呈現(xiàn)。
以半圓拱形斷面為例結(jié)合井下收集的巷道參數(shù)來呈現(xiàn)半圓拱形斷面三維多段線的計(jì)算方法,拱形巷道斷面多段線的擬合如圖4。
圖4 拱形巷道斷面多段線的擬合Fig.4 Fitting of multi-segment line of arch roadway section
半圓拱形斷面的直線部分直接選取各線段的端點(diǎn),上部的拱形部分可以通過折線擬合逼近的方法來近似的代替??紤]到半圓拱形巷道三維模型的精度要求,將巷道斷面中三維多段線上部的拱形部分按照?qǐng)D4中的方法轉(zhuǎn)變?yōu)?段或8段以上才可以滿足要求,以8段為例進(jìn)行計(jì)算。
對(duì)于半圓拱形巷道,在斷面多段線上選取特征點(diǎn),在圖4中就是指點(diǎn)1~點(diǎn)11。因?yàn)樵贠penGL圖形庫中的圓形以及弧形都是由連續(xù)不斷的折線擬合而成,因此可以將上部的拱形部分以一定角度平分后以線段代替。將拱形部分均分為8等份,因此拱形有7個(gè)點(diǎn)特征點(diǎn)不在直線部分的擬合區(qū)間內(nèi)。現(xiàn)以特征點(diǎn)1到特征點(diǎn)4的方向?yàn)閤軸,巷道的中線中點(diǎn)o到特征點(diǎn)8的方向?yàn)閦軸,以o點(diǎn)為中心垂直紙面向外的方向?yàn)閥軸,現(xiàn)假設(shè)o點(diǎn)坐標(biāo)為(x0,y0,z0),則巷道斷面中非拱部特征點(diǎn)1、特征點(diǎn)2、特征點(diǎn)3、特征點(diǎn)4的坐標(biāo)為:
半圓拱的拱部特征點(diǎn)P坐標(biāo)為:
式中:r為巷道拱高,m;h為巷道墻高,m。
將以上所描述的各個(gè)特征點(diǎn)的坐標(biāo)按特征點(diǎn)的順序首尾相連就可以構(gòu)造出半圓拱形巷道三維多段線斷面。
巷道三維模型的構(gòu)建在常見的方法中往往是將斷面三維多段線直接簡單的向指定方向拉伸成巷,但是由于直接拉伸會(huì)造成巷道拐彎以及連接節(jié)點(diǎn)處的巷道缺口,使得巷道的連接不夠連貫,不夠圓潤。因此采用在斷面多段線之間利用三角形剖分算法將巷道劃分為一系列相互連接的三角形并進(jìn)一步通過算法解決連接形成的巷道缺口[13]問題。
在巷道斷面確定好后,將巷道斷面多段線延巷道方向每隔幾個(gè)單位長度重復(fù)繪制,它們之間的巷道利用三角形剖分算法[14]進(jìn)行構(gòu)建。由于需要構(gòu)建三角形數(shù)目較多,所以巷道三維模型的基本組成部分為三角形條帶。三角形條帶中彼此相鄰的2個(gè)三角形共用1條公用邊,三角形的頂點(diǎn)可以重復(fù)使用,相較于不斷重復(fù)選擇、存儲(chǔ)、顯示三角形頂點(diǎn)的方式大大節(jié)約了內(nèi)存并顯著調(diào)高了軟件的運(yùn)行效率。拱形巷道三角剖分模型如圖5。
圖5 拱形巷道三角剖分模型Fig.5 Triangulation model of arch tunnel
巷道三維模型的生成需要多個(gè)三角形條帶在三維空間內(nèi)相交而成,每個(gè)條帶以各個(gè)斷面上的三維多段線線段為起點(diǎn)生成。頂點(diǎn)形成的是模型的其中1個(gè)三角形條帶。如果需要巷道模型兩端封閉,則需要將起點(diǎn)和終點(diǎn)處斷面上的點(diǎn)分別生成三角形條帶,從而進(jìn)一步生成礦井三維可視化模型的雛形。
井下巷道的彼此相連還需要處理巷道拐彎和連接節(jié)點(diǎn)處的巷道缺口不能順暢連通的問題。三角形相交的位置關(guān)系如圖6。
圖6 三角形相交的位置關(guān)系Fig.6 The position of intersection of triangles
由圖6,在三維空間內(nèi)定義2個(gè)平面三角形T1和T2的相交情況。T1為平面α中的三角形,T2為平面β中的三角形,T1和T2相交于直線L。直線L與三角形T1、T2的交點(diǎn)依次記為A、B、C、D。若[A,B]和[C,D]2個(gè)區(qū)間如圖6在三維空間內(nèi)存在相同的集合[B,C],則三角形T1與T2相交且[B,C]就是交線;否則,則不相交。對(duì)于這樣的在三維空間相交的2個(gè)三角形,僅需對(duì)三角形的相交求解進(jìn)行1次即可,但是要注意標(biāo)記當(dāng)前的三角形為空間內(nèi)相交三角形。
巷道相交時(shí)的交線段處理如圖7。在給定的巷道實(shí)體模型A和實(shí)體模型B之中實(shí)體模型A與實(shí)體模型B在三維空間內(nèi)相交,實(shí)體模型A和實(shí)體模型B中的各個(gè)三角形條帶相交形成了交線段多段線。
圖7 巷道相交時(shí)的交線段處理Fig.7 Processing of intersection segment when roadway intersects
經(jīng)過以上的礦井三維建模過程之后,已經(jīng)能夠較好的表達(dá)出現(xiàn)實(shí)礦井的大致情況,但是對(duì)于實(shí)際的情況來說還是不夠精細(xì)與逼真,因此還需要對(duì)礦井三維可視化模型運(yùn)用紋理映射技術(shù)以實(shí)現(xiàn)礦井巷道呈現(xiàn)的效果更加真實(shí)。將OpenGL出色的圖形光照與紋理映射模塊與之前構(gòu)建出的礦井巷道三維模型結(jié)合后得到礦井三維巷道局部效果圖。礦井三維巷道局部效果圖如圖8。
圖8 礦井三維巷道局部效果圖Fig.8 Local effect of3D mine roadway
完整的礦井三維模型構(gòu)建除了主體巷道的三維建模,還需要對(duì)礦井系統(tǒng)中的通風(fēng)構(gòu)筑物以及通風(fēng)機(jī)等內(nèi)容進(jìn)行建模和構(gòu)造[15]。這就需要到現(xiàn)場測算出它們的控制點(diǎn),采用與礦井巷道三維建模的原理,利用四邊形或者拉伸實(shí)體來構(gòu)造通風(fēng)構(gòu)筑物實(shí)體模型,并將其同步到三維巷道模型中,生成對(duì)應(yīng)的礦井通風(fēng)系統(tǒng)模型,然后仿照對(duì)巷道進(jìn)行可視化的流程實(shí)現(xiàn)其模擬效果。通風(fēng)設(shè)施三維模型如圖9。
圖9 通風(fēng)設(shè)施三維模型Fig.93 D model of ventilation facilities
對(duì)于風(fēng)門模型的構(gòu)造來說,需要收集風(fēng)門所在巷道、風(fēng)門的開關(guān)狀態(tài)、風(fēng)門的尺寸等相關(guān)信息并將數(shù)據(jù)存儲(chǔ)至風(fēng)門屬性數(shù)據(jù)庫的集合當(dāng)中;對(duì)于通風(fēng)機(jī)模型的構(gòu)造來說,需要收集通風(fēng)機(jī)的尺寸、通風(fēng)機(jī)工作參數(shù)、通風(fēng)機(jī)的空間位置等相關(guān)信息并存儲(chǔ)至通風(fēng)機(jī)屬性數(shù)據(jù)庫的集合之中。
平頂山煤業(yè)集團(tuán)有限責(zé)任公司一礦的通風(fēng)方式為為多進(jìn)風(fēng)井、多回風(fēng)井混合式通風(fēng),通風(fēng)方法為抽出式通風(fēng)。礦井通風(fēng)系統(tǒng)有一水平主井、一水平副井、一水平主斜井、戊七進(jìn)風(fēng)斜井、二水平主斜井、北一進(jìn)風(fēng)井、北二進(jìn)風(fēng)井、北三進(jìn)風(fēng)井共8個(gè)進(jìn)風(fēng)井,北一回風(fēng)井、北二回風(fēng)井、北三回風(fēng)井3個(gè)回風(fēng)井。北一風(fēng)井擔(dān)負(fù)一水平保留巷道及硐室、二水平煤柱回收區(qū)和三水平戊一上山采區(qū)回風(fēng),北二風(fēng)井擔(dān)負(fù)三水平丁二采區(qū)回風(fēng),北三風(fēng)井擔(dān)負(fù)三水平戊一下山采區(qū)和三水平戊二采區(qū)回風(fēng)。
將礦井三維建模方式應(yīng)用于一礦。打開處理好圖層設(shè)置的CAD文件,在平面圖上選定基準(zhǔn)參考后采集節(jié)點(diǎn)坐標(biāo),節(jié)點(diǎn)生成的同時(shí)會(huì)存入節(jié)點(diǎn)信息集合,自動(dòng)生成的巷道會(huì)存入巷道信息集合。在一礦的實(shí)際井巷情況下,主要繪制了3個(gè)水平的進(jìn)回風(fēng)大巷、進(jìn)回風(fēng)風(fēng)井、工作面、風(fēng)門、通風(fēng)機(jī)等空間位置及相應(yīng)參數(shù)數(shù)據(jù)。一礦的立體圖基本信息如下:①采集定位點(diǎn):957個(gè);②巷道分支:1158條;③巷道類型:半圓拱形、梯形、矩形等;④通風(fēng)設(shè)施:風(fēng)門、擋風(fēng)墻、通風(fēng)機(jī)等。平煤一礦礦井三維可視化模型如圖10。
圖10 平煤一礦礦井三維可視化模型Fig.103 D visualization model of Pingmei No.1Mine
考慮到需要保證軟件操作界面的簡潔性,因此一般情況下所有巷道內(nèi)部所含有的信息都會(huì)隱藏在后臺(tái)數(shù)據(jù)庫之中,當(dāng)使用人員需要查看或修改某條巷道的信息時(shí)只需要通過左鍵雙擊選擇需要查看的巷道或者在菜單欄中選擇巷道信息顯示就可以顯示出指定巷道內(nèi)所含信息,礦井巷道信息庫如圖11。
圖11 礦井巷道信息庫Fig.11 Mine roadway information
將這種建模方法應(yīng)用于平頂山煤業(yè)集團(tuán)有限責(zé)任公司一礦,改變了礦上人員以往傳統(tǒng)的繪圖方式,更加逼真的顯示出一礦巷道的起伏與轉(zhuǎn)折的同時(shí)也對(duì)工作面的情況一覽無余。井上工作人員可以隨時(shí)訪問礦井巷道信息資源庫并對(duì)三維井巷模型中的具體巷道參數(shù)數(shù)據(jù)隨時(shí)進(jìn)行查詢與修改。巷道信息庫的信息也可以實(shí)時(shí)更新,保證了建模的效率。
基于OpenGL的礦井三維可視化模型系統(tǒng),通過加載各節(jié)點(diǎn)截面并處理巷道岔口,礦井三維模型得到正確顯示,實(shí)現(xiàn)了預(yù)期效果。
1)程序在VB.NET平臺(tái)上結(jié)合OpenGL功能模塊實(shí)現(xiàn)建模目標(biāo),程序的運(yùn)行效率得以提高,并且可以方便的實(shí)現(xiàn)程序移植以及后續(xù)功能的擴(kuò)充。
2)采用簡單可行的方法實(shí)現(xiàn)了礦井工程平面圖到礦井三維可視化模型的轉(zhuǎn)變,提高了制圖人員的工作效率。通過對(duì)計(jì)算機(jī)三維圖形坐標(biāo)的轉(zhuǎn)換和任意視角景觀的設(shè)置,得到的巷道立體圖表達(dá)井巷效果明顯,立體性強(qiáng),具有放大、縮小、任意視角觀看等展示功能。
3)除了對(duì)三維巷道的模擬之外,程序中還添加了交互功能,人員可以使用鼠標(biāo)來選擇和控制巷道。交互功能結(jié)合上建立的巷道信息庫可以讓使用人員對(duì)巷道的具體信息進(jìn)行增加、刪減、修改等操作。以便于適應(yīng)后續(xù)實(shí)際的生產(chǎn)變化,同時(shí)也為進(jìn)一步的通風(fēng)網(wǎng)絡(luò)解算與圖形轉(zhuǎn)換提供一個(gè)較為優(yōu)良的平臺(tái)。