徐 凱,陳小強,鄭云水,王 英,常戰(zhàn)寧
(1. 蘭州交通大學 自動化與電氣工程學院,蘭州 730070;2. 中國鐵路蘭州局集團有限公司 供電處,蘭州 730000)
2013年,中國鐵路總公司將BIM技術作為未來鐵路信息化發(fā)展主要方向[1].四電站后工程專業(yè)眾多,牽引變電所內(nèi)場景復雜,BIM模型精度要求高,搭建場站模型產(chǎn)生巨大數(shù)據(jù)量[2],普通移動設備內(nèi)存容量、總線帶寬和處理能力不能滿足對牽引變電所設備仿真模擬,限制BIM技術在四電工程虛擬仿真中的應用[3].以往都是通過大型移動工作站解決問題[4],導致項目投入增大,降低了工程項目經(jīng)濟性.因此,鐵路行業(yè)BIM模型輕量化問題亟待解決,需要在保持模型幾何特征基礎上減少數(shù)據(jù)量,實現(xiàn)較高的實時交互性能.
文獻[5]提出一種基于三角形折疊簡化算法,通過控制模型中點到平面距離誤差達到模型輕量化目的,減少模型中三角形數(shù)量并保持拓撲結(jié)構(gòu).文獻[6]提出一種基于網(wǎng)格劃分三維模型輕量化算法,針對模型特征添加約束因子,減小模型輕量化誤差,提高模型輕量化質(zhì)量.文獻[7]提出一種基于簡單曲面檢測的三維模型輕量化算法,將三維模型中曲面進行分類并進行參數(shù)化描述,達到輕量化目的.文獻[8]提出一種基于二次誤差測度的邊界保持分級簡化算法,頂點加入預定權(quán)重進行分級簡化,保證漸進式簡化過程,保留模型邊界特征.文獻[9]提出一種特征保持混合折疊算法,算法進行三角網(wǎng)格分類,實現(xiàn)特征區(qū)域和非特征區(qū)域分類處理.
對BIM模型進行輕量化處理主要分為幾何元素輕量化處理與非幾何元素輕量化處理.幾何元素輕量化處理通過減少模型點、線、面來達到輕量化處理效果;非幾何元素輕量化處理是指對BIM模型全生命周期信息進行無損壓縮,達到信息輕量化目的.
基于此,引入針對BIM模型幾何元素輕量化處理算法—改進二次誤差測度算法(quadric error metrics,QEM),在三角形折疊誤差中加入鄰接三角形平均面積、多鄰域曲率、頂點重要度3個細節(jié)特征約束因子,優(yōu)化誤差矩陣,實現(xiàn)保持模型細節(jié)特征條件下模型輕量化處理.
1.1.1 模型定義
定義1:將包含設備設計數(shù)據(jù)、建造信息、維護信息等全生命周期信息的三維信息模型定義為BIM模型.
定義2:將模型尺寸、三角面數(shù)量、點數(shù)量和空間拓撲信息定義為BIM模型幾何元素.
定義3:將模型名稱、規(guī)格型號、材料材質(zhì)、生產(chǎn)廠商、功能與性能技術參數(shù),以及系統(tǒng)類型、施工方式、工程邏輯關系和設備運維信息等定義為非幾何元素[3].
1.1.2 三角形定義
定義1:模型中,將具有公共邊和公共頂點的三角形組成集合為三角形網(wǎng)格TM(triangle mesh),三角形網(wǎng)格包含三角形集合T與三角形頂點集合V[5].
定義2:三角形網(wǎng)格TM中,若存在一條邊沒有鄰接其他三角形,定義為邊界邊,其所在三角形定義為邊界三角形;不滿足該條件的三角形定義為內(nèi)部三角形[5].
定義3:三角形網(wǎng)格TM中,所有與頂點vi0相關三角形組成集合定義為與頂點vi0相關三角形集合[5].
定義4:三角形網(wǎng)格TM中,所有與三角形Ti三個頂點相關三角形構(gòu)成集合定義為與三角形Ti相關三角形集合[5].
三維模型輕量化實質(zhì)為三角形折疊,進行一次三角形折疊等同于兩次邊折疊,三角形折疊效率越高,折疊質(zhì)量越高[10].三角形折疊是一種迭代幾何元素刪除方法,基本思想是將三角面作為刪除元素,將三角形收縮為一個點.通過迭代減少三維模型中三角面數(shù)量來達到模型輕量化目的.圖1為三角形折疊,將折疊前三角形Ti簡化為折疊后點V.
圖1 三角形折疊Fig.1 Triangle folding
三角形折疊后效果好壞取決于折疊誤差大小[11],所以在折疊過程中確定使折疊誤差最小最優(yōu),改善折疊效果.輕量化處理后三維模型不改變設備細節(jié)特征,需要選擇折疊后新頂點vi0,新頂點vi0=[xi0yi0zi01]T位置的選擇決定折疊誤差大小.誤差越小,輕量化處理前后模型越相似.為解決新頂點最優(yōu)解問題,文獻[5]使用二次誤差測度算法進行折疊誤差度量,每個三角形中,用一個4×4的矩陣來表示三角形誤差矩陣Qi,則三角形折疊誤差α(Ti)為
(1)
其中:vi0為新頂點位置;x、y、z為新頂點坐標;三角形誤差矩陣Qi為
新頂點最優(yōu)解是將折疊誤差α(Ti)控制到最小.
(2)
若式(2)有解,則可求出新頂點位置vi0;若無解,則選擇三角形中點、三角形三邊中點或者三角形三個頂點作為新頂點,在給出7個點中,求出使式(1)值最小的點,將該點作為折疊后新頂點[12].
牽引變電所設備三維模型復雜度高,建模要求精度高,涉及多種設備,設備模型間位置精度要求高,電纜線路走線復雜.針對以上特點,將鄰接三角形平均面積、多鄰域曲率、頂點重要度加入折疊誤差計算中,找到適合牽引變電所設備模型輕量化方法.
由Garland于1997年首次提出,算法以三角形為折疊對象,產(chǎn)生新頂點,將新頂點到相關三角形所在平面距離平方作為衡量誤差的標準.使用QEM算法進行誤差度量可得到高質(zhì)量簡化模型,同時具有簡化效率高、占用內(nèi)存小等特點[13].
簡化前三角形網(wǎng)格TM中每一個三角形Ti三個頂點相關所有三角形組成一個集合為三角形Ti相關三角形集合C.在三維歐氏空間中,將網(wǎng)格中相關三角形所在平面方程定義為ax+by+cz+d=0,且滿足a2+b2+c2=1(d為任意常數(shù)),保證多個三角面在同一平面上,通過改進算法處理同一平面的三角形.將平面方程定義為P=[abcd]T,新頂點vi0到相關三角形平面距離平方為(PTvi0)2,將新頂點vi0到相關三角形所在平面距離的最大值作為誤差度量標準,誤差度量按標準越小,模型簡化效果越好.文獻[5]規(guī)定折疊誤差為
(3)
其中:P∈C,C為三角形Ti相關三角形集合;QP是4×4的誤差矩陣,是使得折疊誤差α(Ti)最小的誤差矩陣,
2.2.1 鄰接三角形平均面積
模型折疊后與原始模型相似度取決于折疊三角形面積大小[14],因此在折疊過程中應對折疊三角形鄰接區(qū)域面積進行評估,判斷對折疊三角形影響程度.平均面積指折疊前后,折疊區(qū)域附近模型表面變化面積.
牽引變電所設備模型中,特征明顯區(qū)域三角形網(wǎng)格分布密集,三角形網(wǎng)格面積分布小,鄰接三角形面積也相對較小;而在平面區(qū)域,例如牽引變壓器表面,三角形網(wǎng)格分布稀疏,鄰接區(qū)域面積較大.折疊過程迭代多次后,模型表面面積變化較大,模型特征信息丟失明顯,會使輕量化處理后效果變差.為盡可能使簡化后模型保持細節(jié)特征,將鄰接三角形平均面積作為約束因子添加到折疊誤差計算過程中,對模型不同特征區(qū)域進行局部簡化,改善折疊效果.
三角形鄰接區(qū)域由三角形T0與其相鄰三角形T1~Tj組成,如圖2所示.
鄰接三角形平均面積表示為
(4)
其中:STi為三角形T0第i個鄰接三角形面積;C(T0)為與三角形T0相關三角面集合;count(T0)為與三角形T0相關三角面數(shù)量.
2.2.2 多鄰域曲率
為減小鄰接三角形對折疊三角形的影響程度,將多鄰域曲率加入到折疊代價計算中.對于牽引變電所設備,在設備絕緣子邊緣特征明顯區(qū)域,三角面分布較為密集,局部區(qū)域面積小,曲率大;在輕量化處理過程中應重點保留特征明顯區(qū)域,防止幾何元素丟失過多,造成模型局部特征失真[15].文獻[6]指出,多鄰域曲率量化表示模型在某一局部鄰接區(qū)域特征.若三角面曲率大,則表示模型在該區(qū)域存在曲面特征區(qū)域,應著重保留該區(qū)域三角面.根據(jù)曲率大小與模型細節(jié)特征相關這一現(xiàn)象,用多鄰域曲率判斷三維模型細節(jié)特征區(qū)域.多鄰域曲率定義為
(5)
其中,nTi為三角形T0第i個鄰接三角形法向量.
由式(5)可見,多鄰域曲率決定折疊過程中三角形折疊順序.KT0較小時,說明此區(qū)域不屬于特征區(qū)域,三維模型細節(jié)特征不明顯,優(yōu)先進行多次折疊;KT0較大時,說明該區(qū)域內(nèi)存在細節(jié)特征區(qū)域,應暫緩執(zhí)行折疊;在KT0越大區(qū)域,盡量減少三角形折疊,避免折疊后三維模型失真、變形.將多鄰域曲率加入到折疊誤差計算中,可有效保留設備細節(jié)特征.
2.2.3 頂點重要度
三維模型特征區(qū)域集中在較小區(qū)域,例如絕緣子邊緣位置;現(xiàn)有算法是將三角形狹長度作為判斷依據(jù),算法復雜度高.頂點重要度指折疊過程中三角形頂點重要程度,它表示在其他指標不變情況下,頂點變化對簡化后結(jié)果的影響.頂點重要度大小與頂點重要程度有關,采用頂點重要度判定三角形區(qū)域特征變化[16].
將待折疊三角形權(quán)重系數(shù)全部初始化,通過計算曲率得出相對較為平坦區(qū)域,在平坦區(qū)域中,將三角形頂點權(quán)重累加,求平均值后可得出該三角形頂點重要度.三角形頂點重要度定義如下:
(6)
其中,WT1i、WT2i、WT3i為三角形三個頂點重要度.頂點重要度計算方法是對三角形三個頂點重要度取平均值.
2.2.4 改進折疊誤差
(7)
其中,ST0、KT0、WT0分別通過式(4)~(6)求得.
改進后折疊誤差α*(Ti)表示為
Qp)vi0].
(8)
2.2.5 新頂點選取
三角形網(wǎng)格中三角形分為兩種:一種為內(nèi)部三角形,即三角形三條邊都存在鄰接三角形;另一種為邊界三角形,即存在至少一條邊在模型邊界的三角形[17].
為盡可能保留牽引變電所設備三維模型局部特征,規(guī)定:當三角形屬于內(nèi)部三角形,需要通過計算折疊誤差,求出折疊誤差最小點,作為新頂點;當三角形屬于邊界三角形,且只有一條邊為邊界邊時,需要對邊界邊兩個頂點進行加權(quán)平均,求得新頂點;當三角形屬于邊界三角形,且兩條邊為邊界邊時,只有一個頂點為邊界頂點,則該頂點為新頂點.
三角形折疊過程中,對折疊三角形進行分類,可簡化新頂點計算步驟,對于不同特征區(qū)域進行分類折疊,避免重復計算,有效保留牽引變電所設備模型細節(jié)特征,提高折疊效率[18].
在算法執(zhí)行過程中,首先對模型中三角形進行分類,對于不同種類三角形運用不同新頂點確定辦法;其次利用改進二次誤差測度方法計算折疊誤差矩陣和折疊代價.針對牽引變電所設備模型,折疊代價中加入鄰接三角形平均面積、多鄰域曲率、頂點重要度3個影響因子,最后將三角形折疊進行迭代,進行牽引變電所設備模型簡化.
算法流程如下:
1) 按照所處位置對三角形網(wǎng)格中三角形進行分類并保存.
3) 從待折疊三角形中選取折疊誤差最小的三角形優(yōu)先進行折疊,判斷三角形類別;若為邊界三角形,再次判斷該邊界三角形類型,針對不同類型進行新頂點選取.若為內(nèi)部三角形,則進行折疊誤差計算,選折疊誤差最小點為新頂點.
4) 若已經(jīng)達到預期簡化效果,則結(jié)束算法;若沒有達到預期效果,則返回步驟3)繼續(xù)進行簡化.
牽引變電所中,高壓側(cè)隔離開關輕量化處理算法簡化誤差對比如圖3所示,可見QEM算法在簡化率較低情況下,簡化誤差與改進后算法相差不大,但是當簡化率達到50%以后,QEM算法簡化誤差大,設備細節(jié)簡化出現(xiàn)失真,簡化后模型與原始模型視覺差異大;改進QEM算法較QEM算法簡化誤差小,隨著簡化率增大,改進QEM算法簡化誤差更小.當簡化率達到95%時,簡化誤差較QEM算法降低30%.
圖3 算法簡化誤差對比Fig.3 Algorithm to simplify error comparison
算法運行時間曲線如圖4所示.改進QEM算法運行時間明顯低于QEM算法.由于改進QEM算法中加入鄰接三角形平均面積、多鄰域曲率、頂點重要度,在簡化階段可縮短特征區(qū)域簡化時間,減少非特征區(qū)域簡化時間.在保證簡化質(zhì)量前提下,優(yōu)化算法運行時間,可以提高輕量化處理效率.
對高壓隔離開關絕緣子進行簡化處理,簡化率為75%,分別采用改進QEM算法與QEM算法對其進行簡化處理,簡化效果如圖5~6所示.
模型簡化前后三角面數(shù)量和點數(shù)量變化如表1所列.
由圖5~6可得,改進QEM算法在設備絕緣子邊緣位置特征保持效果優(yōu)于QEM算法.由表1數(shù)據(jù)可知,簡化率為75%時,改進QEM算法三角面數(shù)量、點數(shù)量均低于QEM算法.
對表1進行分析得出,不同簡化情況下,改進QEM算法簡化后三角面數(shù)量、點數(shù)量均低于QEM算法.模型三角面數(shù)量、點數(shù)量越少,模型加載速度越快[18].由此可以得出,改進QEM算法效果較好.
圖4 算法運行時間對比Fig.4 Algorithm running time comparison
圖5 改進QEM算法輕量化處理后三角網(wǎng)格對比圖Fig.5 Comparison of triangular meshes after improved QEM algorithm lightweight processing
圖6 QEM算法輕量化處理后三角網(wǎng)格對比圖Fig.6 Comparison of triangular meshes after QEM algorithm lightweight processing
表1 簡化數(shù)據(jù)
使用改進QEM算法簡化率為35%時,模型細節(jié)特征清晰,邊界無失真現(xiàn)象,如圖7所示,模型保持設備真實性;當簡化率達到75%時,模型表面出現(xiàn)細微失真現(xiàn)象,如圖8所示,但不影響牽引變電所模型真實度.由此可得出,改進算法簡化后模型更接近真實模型,簡化效果較好.
圖7 簡化35%BIM模型Fig.7 Simplified 35% BIM model
圖8 簡化75%BIM模型Fig.8 Simplified 75% BIM model
以牽引變電所室外設備高壓側(cè)隔離開關為例,使用改進QEM算法進行輕量化處理,圖9為牽引變電所高壓側(cè)隔離開關BIM模型,圖10為輕量化處理后隔離開關BIM模型.
從圖9~10中可得,使用改進QEM算法對設備三維模型進行輕量化處理,設備外觀細節(jié)特征沒有發(fā)生明顯變化,隔離開關絕緣子邊緣特征較為完整.簡化后模型較為完整的保持模型邊界特征.
從圖11~12可得出,輕量化處理后,設備模型細節(jié)特征保持完整,在設備邊緣曲線區(qū)域無失真,曲線過度平滑.可見,在模型輕量化處理過程中加入模型表面特征約束因子,既可保持模型細節(jié)特征,又減少了模型數(shù)據(jù)量,能夠較好實現(xiàn)模型輕量化.
圖9 隔離開關BIM模型Fig.9 Isolation switch BIM model
圖10 輕量化處理后隔離開關BIM模型Fig.10 BIM model of isolating switch after lightweight processing
圖11 隔離開關動作機構(gòu)BIM模型Fig.11 BIM model of isolation switch action mechanism
圖12 輕量化處理后隔離開關動作機構(gòu)BIM模型Fig.12 BIM model of isolation switch action mechanism after lightweight processing
1) 針對牽引變電所設備模型特征,對二次誤差測度算法進行改進,在折疊過程中加入鄰接三角形平均面積、多鄰域曲率、頂點重要度,改善折疊誤差計算,能重點保留模型特征區(qū)域表面特征.
2) 通過實驗分析,得出改進QEM算法在模型簡化誤差與運行效率方面均優(yōu)于QEM算法.在相同簡化率情況下,改進QEM算法簡化后誤差較QEM算法降低約30%.同時,改進QEM算法性能整體優(yōu)于QEM算法,算法運行效率高.
3) 使用改進QEM算法進行牽引變電所模型輕量化處理,在保持模型表面細節(jié)特征條件下降低模型數(shù)據(jù)量,能夠?qū)﹁F路信息化發(fā)展中BIM技術應用起到重要指導作用.
改進QEM算法僅針對模型表面幾何數(shù)據(jù)進行輕量化處理,未考慮模型顏色、紋理等物理屬性信息.今后可將模型幾何數(shù)據(jù)與物理屬性同時進行分類處理,實現(xiàn)模型整體輕量化處理.