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