康慶微
?
煤礦巷道繪圖軟件系統開發與應用
康慶微
(新疆天池能源有限責任公司,新疆 昌吉市 831100)
為提高礦山巷道設計制圖效率,設計開發自動化煤礦巷道繪圖軟件系統,采用自行設計的解析計算求交算法進行巷道自動化拓撲關系推斷、繪圖、結構標記、冗余裁剪以及圖形修補;為進一步解決自動化拓撲推斷計算帶來的性能消耗及資源調配不合理等問題,提出基于多線程技術的矢量矩陣解析求交計算方法;并以國內某礦三采區308條巷道為例在不同配置測試平臺中建立模擬仿真實驗,將文中算法在AutoCAD繪圖平臺中應用,并與采用原生碰撞求交算法的軟件系統進行性能對比,結果表明:矢量矩陣解析求交計算方法能大幅度提高軟件系統的繪圖效率,結合多線程技術使用時可發揮多核平臺性能優勢,優化繪圖系統資源合理調配。
導線點;線巷道;數字化礦山;多線程技術;二維拓撲關系
在礦山工程中,地質剖面圖和二維平面投影圖均為礦山設計施工的重要圖件[1],地質剖面圖有助于地質儲量核算及三維數字化構模,二維平面投影圖有助于反映施工平面進度狀態及作為底圖滿足相應的預警要求。巷道作為礦山工程的空間基礎構筑物,其繪制和更新長久以來都是二維平面投影圖繪制的一個關鍵問題,傳統的雙線巷道底圖繪制采用AutoCAD軟件手工繪制完成,圖件繪制復雜且重復工作較多,拓撲關系處理需要逐一對底板高程計算后,手工裁剪、連線形成拓撲構型,一旦遇到測量和繪圖錯誤,很難修改和更新。另一類經典解決方案是利用單線繪圖來代替巷道構型,忽略繁瑣的幾何拓撲關系,自動生成單線巷道,該法速度較快,但由于模型簡化后可視化及標志物信息消失,對于實際工程推演和災害預警等方面的需求實際意義不大。
近年來,國內外學者針對上述問題進行了大量的研究和實踐[2?10],取得了一系列的研究成果,劉偉[11]等提出基于導線點繪制巷道的解析幾何計算方法;朱建平[12]等提出基于圖論方法解算風流路徑形成巷道;倪景峰[13]等構建等寬的巷道模型用于通風仿真系統底圖的構建;魏連江等[14]通過構建“假雙線”的方法實現構建雙線巷道的效果;郝天軒[15]提出構建A、B兩幫進行求交判斷拓撲關系后,形成帶有拓撲關系的巷道;王東瑞[16]采用中線作為求交判據進行了幾何拓撲的判斷;譚正華和黃韻歆[17]等通過構建閉環結構,只需偏移便可直接得到拓撲結構;上述方法雖均取得了較好的效果,但研究多集中于替代方案尋找以及利用硬性幾何求交處理拓撲關系,并未從根本上解決浪費在拓撲計算上的性能開銷。綜上所述,筆者認為結合礦山實際情況,開發可快速判斷空間拓撲關系的軟件包,對于數字化礦山建設及指導實際施工具有深遠的意義。
本文在研究基于導線點判斷巷道拓撲關系的基礎上,提出了一種新的快速生成巷道拓撲關系的新算法—多線程標記解析法,算法屏蔽了圖形平臺提供的“實體碰撞求交”處理拓撲關系的方法,從底層采用求解數值解析方程來實現圖元拓撲關系的解析計算與判斷。該算法雖架構業務邏輯性要求較為嚴格,但算法實現簡單,資源性能開銷小,算法普適性能力較強,在密集圖形計算及快速圖形生成方面均有較好的表現。經仿真實驗證實,該方法可進一步提高二維巷道底圖拓撲關系處理效率,且應用效果良好。
導線點是礦山控制巷道延伸的重要測量數據,也是礦山制圖的重要繪圖依據,但由于測量條件限制及人為測量誤差的存在,測量布點無法沿中線或某一鉛直基線布置,布點位置常散布于巷道空間內。基于上述問題,一般只能采用手工制圖處理,制圖員需對導線點坐標位置處各邊界節點進行手工計算,以便直接繪制雙線巷道邊線。但考慮采用機器制圖時,直接計算邊線節點無法滿足拓撲推斷要求,需通過導線點信息進一步判斷巷道之間拓撲關系,為此文中提出巷道中線歸一化方法,將各導線點向中線做歸一化處理,并將歸一化處理屬性數據代入式(1)~式(3)中,計算各導線點處歸一化中點位置,構造巷道的理論計算中線,并采用中線作為構建巷道邊線以及計算拓撲關系的主要依據。計算滿足原理如圖1所示,即當C點為空間導線點,CD為導線點在X-Y平面的向量投影時,在C點建立坐標系,帶入公式計算分別獲得B、A、O 三點坐標,連續的O點可構建整條巷道的理論計算 中線。

圖1 導線點歸一化幾何計算



式中:C點坐標=(,);CD與Y軸夾角,長度為;BC為巷道左邊距,其長度為L;CA為巷道右邊距,其長度為r。
通過對雙線巷道底圖的分析,將拓撲類型歸納為如圖2所示的4種拓撲類型,進一步分析拓撲類型的圖形差異,發現4種類型巷道中線間均存在交點,且不同類型相交方式存在差異且各具特點,如圖2交點G為偽交點在兩巷道間存在高程差,其余類型圖中O、M、MorC均為實交點,但交點分布位置具有差異,其中圖2中O點分布于線段間,而圖2中M點分布MN端點,MorC點分布于BC和MN公共端點位置。因此,可通過設計程序對中線進行自動化求交計算并進一步針對上述交點類型分類,以獲得整個底圖的拓撲類型推斷。
考慮多節點中線求交計算的性能消耗,為提高線段求交計算效率,研究中提出線段矢量矩陣求交計算方法,該方法可在矩陣中顯示求交結果并標識出交點位置,具體矢量矩陣如式(4)所示,其中11為相鄰節點構成的線段矢量,下角標分別代表矢量所屬中線序號以及自身首節點編號。

式中:r、p為[0,n]區間內任意常數。
矢量矩陣中矢量間運算遵循兩相交向量應保證其中一向量線段投影起止點位于另一向量線段投影兩側或位于投影線段上,即如式(5)所示計算結構用以判斷相交關系。

式中:(1,1),(2,2),(x,y),(x,y)分別為向量的起止位置坐標以及起止位置坐標中的任意一點。
為定義運算方法,利用式(5)分別計算S和S兩個分項計算結果,并利用*=S?S作為交點檢驗判據,當*≤0時線段兩端點將分別位于線段兩側或存在公共交點,即認為線段存在交點,滿足此判據即可采用運算符重載技術構建線段向量矩陣求交變換及類型推斷算法,算法設計應注意如下幾方面要求:
(1) 定義矢量矩陣變換方法需采用運算符重載技術;
(2) 規定矢量在下角標相同時不可以參與求交計算;
(3) 設置緩沖容器對參與計算過的進行駐留,用以剔除冗余求交現象;
(4) 當出現null等補位符時,仍使用補位符輸出;
(5) 最終輸出結果應包含一個標識位矩陣,如式(6)所示,用于為拓撲位置快速判斷提供位置索引;
(6) 需對標識位矩陣映射一張巷道屬性二維數據表格(見表1),用于處理拓撲時快速提供整體巷道的屬性信息。


表1 推斷結果映射的二維屬性數據
表中:(3-6,,3,6)代表巷道編號1在2-3節點位置處相交于巷道編號3的6-7節點,相交類型為a類,該點距巷道左幫3 m,距右幫6 m。
(1) 裁剪位置計算。由圖2的4種拓撲類型及演化的4種處理效果可知,需對雙線巷道的兩幫進行裁剪以及消隱處理,才可完成自動化巷道繪制。對不同類型關系的裁剪處理可歸納為如圖3所示的3種結構,裁剪位置計算主要是對此3種結構藍色虛線部分頂點進行坐標計算,實現方式是在矢量矩陣中獲得拓撲位置關聯矢量的位置索引,計算交點位置坐標,并提取相關巷道方位及巷道寬度屬性。綜合上述信息,裁剪位置計算問題可通過計算平行四邊形已知邊長、角度以及中心點坐標的頂點坐標反算來完成,設計程序實現上述問題模塊化計算單元,并逐個結構計算待裁剪位置坐標,并對位置坐標追加擴展數據。
(2) 消隱邊搜索。巷道邊線消隱是圖形可視化的重要環節,也是對上述拓撲關系判斷以及裁剪計算方法的可視化過程。巷道邊線消隱處理存在兩個關鍵環節,首先利用坐標的擴展數據作為索引獲取待裁剪邊線,并裁剪結構單元如圖3中效果,對結構單元進行拓撲類型推斷,分容器管理藍色虛線,最后對容器整體進行批量的消隱處理。

圖3 巷道拓撲裁剪位置
當兩巷道相交存在如圖4示意結構時,外邊界由于自動化偏移而導致殘缺,需要縫補形成巷道整體,為方便織補處理,文中采用1.3小節設計的坐標反算模塊進行處理,直接計算巷道外延交點,在識別拓撲類型后,直接連接巷道外邊線與外延交點,以縫補巷道殘缺位置。
文中算法設計主要目的在于減輕手工繪圖工程量以及提高自動化制圖效率,為圖形快速繪制以及預報、預警等輔助決策環境提供圖形快速更新平臺。針對上述需求,文中提供的計算算法雖可較為理想的替代傳統圖形引擎幾何碰撞求交的性能消耗問題,但當巷道數量以及節點數據規模龐大時,對于普通繪圖平臺計算壓力仍十分繁重,為充分利用現代計算機多核計算優勢,系統設計采用多線程計算技術,從線程池中維護工作線程,由不同工作線程托管各自服務任務隊列,數據預處理及求交計算部分業務邏輯偽代碼實現流程如下:
算法偽代碼實現邏輯:
/*實例化數據訪問層接口*/
New DalInterface();
#region MultiThreads Technology Start;
2) for{
//查詢巷道導線點數據;
new sqlconnection();→sqlcommand();
//調用自定義的巷道歸一化處理方法;
NormDBpoint();
//規則化數據,并做存儲標記;
InsertMidPoint();
}
# end region MultiThreads Technology End;
3) //統一處理數據保存入數據庫;
SaveChanges();
4) //模塊化向量間求交計算方法;
CalX();
5)//調用數據訪問層接口;
New DalInterface();
#region MultiThreads Technology Start;
6) //實例化矢量矩陣模型
new DBPointMatrix();
7) //序列化導線點數據格式;
SerializeMatrixType();
8) //遍歷數據編入矢量矩陣;
for{InsertDBPoint(dbpont_matrix);}
# end region MultiThreads Technology End;
9)//運算符重載定義矩陣內變換法則;
dbpont_matrix.reLoad();
#region MultiThreads Technology Start;
10)//遍歷矩陣實施變換;
dbpont_matrix=>(a){a.Calx; }
11)//輸出標示位矩陣;
OutPutSignMat();
12)//二維屬性表轉換
TransOper();
13)//數據寫入
InsertDatabase();
# end region MultiThreads Technology End;

圖4 巷道殘缺時的位置縫補
為體現性能提升效果,實驗設計3組測試平臺,測試平臺機器配置如表2所示,為提供直觀的效能對比,作者在AutoCAD圖形平臺,分別利用文中算法和AutoCAD SDK中提供的幾何求交API制作了2套自動化巷道繪圖軟件,并以國內某礦三采區內308條巷道為例,應用表2中提供的3組測試機器進行測試實驗。

表2 測試平臺配置
對3組測試平臺應用兩種算法的執行效率進行統計,其執行效率以及核心占用情況統計如表3。通過對比可知,解析計算優化算法對比于傳統算法執行效率有較大幅度提升,應用多核技術后,核心平均占用率也明顯高于傳統算法。對于非多線程AutoCAD系統,通過實驗結果反映可認為程序仍以單線程執行為主,各核心會按照核心數折減占用率,即對于I5 6600k的四核平臺,其單核心執行效率不會超過25%,但當采用多核優化算法時,各核心平均占用可提高到70%~80%,可充分調用各核心資源,提高執行效率。在多線程環境中核心數及線程數對整體運算有較大影響,在I5 6600k平臺以及I7 6700平臺對比,在相同核心數條件下,線程數的提升對核心占用率有顯著影響,可進一步提升各核心利用率,提高算法整體效能。3個測試平臺提供了3組商用以及高端民用顯示卡,但通過試驗對比及對各級別顯卡頻率的檢測發現,采用解析計算及傳統求交方式處理拓撲關系時,對處理器性能要求較高,由于未引入CUDA技術,顯卡性能對于此實驗并未產生任何明顯的影響。

表3 測試結果對比
(1) 利用計算機技術及圖形學算法構建的自動化繪圖系統,可有效克服傳統利用導線點手工繪圖時產生的主觀錯誤,大幅度提高制圖效率;
(2) 從性能測試結果來看,傳統算法在多核多線程機器上運行時,隨各核心具有分擔計算,但各核心資源占用不會超過核心資源的(100/)%,多核解析計算方法能大幅度提高自動化巷道繪圖軟件執行效率,充分調動宿主機器資源,提高計算性能;
(3) 采用傳統算法在執行計算任務時,本質上還是采用單核計算,因此當主頻較高時對計算效率有較為明顯的提升;
(4) 采用文中算法應用在多核多線程測試平臺時,主頻影響并不明顯,但核心數以及線程數對執行效率有顯著提升。
[1] 張幼蒂,王玉浚.采礦系統工程[M].北京:中國礦業大學出版社,2000.
[2] 王學偉,邵亞琴,汪云甲.基于ArcGIS Engine 的礦井巷道三維自動建模方法的研究與實現[J].工礦自動化,2009(5):22?25.
[3] 榮向東,徐金陵,劉德成.陳四樓煤礦通風及檢測系統仿真研究[J].煤炭科學技術,2010,38(10):55?58.
[4] 趙千里,劉 劍.用礦井通風仿真系統(MVSS)確定通風系統優化改造方案[J].中國安全科學學報,2002,12(2):14?18.
[5] 劉忠海,郭達志,余姚平.計算機繪制礦圖中巷道立體交叉的自動判別和隱藏巷道的消除[J].中國礦業大學學報,1992,21(3): 33?39.
[6] 譚正華,王李管,陳建宏,等.基于中心線的雙線巷道自動生成算法與實現[J].計算機應用研究,2009,26(11).
[7] 周志勇,陳建宏,湯其旺,等.巷道自動成圖及三維建模[J].測繪科學,2010,35(4):182?183+216.
[8] 魏連江,郝憲杰,張宏捷,等.礦井通風仿真系統區分井巷層位關系的新方法研究[J].金屬礦山,2008,384(6):105?107.
[9] 李 剛,陳開巖,何學秋,等.礦井通風巷道自動繪制方法研究[J].煤炭科學技術,2006,34(6):50?53.
[10] 熊綿國,朱權潔,劉曉云,等.基于Blender的礦山井巷模型自動生成研究[J].武漢科技大學學報,2012,35(4):261?261+271.
[11] 劉 偉,張榮海,余勁松弟.煤礦巷道自動生成模塊的研究與開發[J].測繪科學,2007,32(6):128?129.
[12] 朱建平,張水平.礦井通風系統網路解算及優化的可視化研究[J].有色金屬,2009,61(3):130?134.
[13] 倪景峰,劉 劍.礦井通風系統可視化固定寬度巷道雙線處理[J].遼寧工程技術大學學報,2005,24(5):636?638.
[14] 魏連江,朱華新,張雷林,等.礦井通風仿真系統雙線巷道圖[J].中國安全科學學報,2008,18(11):55?59.
[15] 楊應迪,張國樞,秦汝祥.礦井通風系統平面圖專用繪制軟件研制[J].2008,18(4):121?125.
[16] 王東瑞.一種新的基于中心線的雙線巷道自動生成算法[J].工礦自動化,2011(3):51?54.
[17] 黃俊歆,王李管,張 力,等.一種新的礦井通風系統雙線巷道自動生成算法[J].計算機工程與應用,2011,47(24).
(2018?08?23)
康慶微(1987—),男,遼寧沈陽人,工程師,主要從事采礦工程方面的研究,Email:276205433@qq.com。