常盛杰
(沈陽鐵道勘察設(shè)計院有限公司 建筑及電氣化設(shè)計所,遼寧沈陽 110012)
近年來,隨著我國高速鐵路運營里程的不斷增加和技術(shù)標準的不斷提升,對牽引供電系統(tǒng)運行的穩(wěn)定性、可靠性提出了更高要求[1]。牽引變電所是牽引供電系統(tǒng)的心臟,對牽引供電系統(tǒng)運行的穩(wěn)定性、可靠性起著舉足輕重的作用[2],需要牽引變電所運維人員掌握更扎實的業(yè)務(wù)知識和更熟練的操作技能。受牽引變電所設(shè)備價格昂貴、高壓設(shè)備危險性高、一級負荷供電可靠性要求高等限制,運維人員通過實踐操作進行業(yè)務(wù)能力提升的空間有限,培訓(xùn)成為提高其業(yè)務(wù)能力的主要手段。目前,各鐵路局集團公司的相關(guān)培訓(xùn)以視頻教學(xué)、資料學(xué)習(xí)、現(xiàn)場參觀為主,其直觀性、可操作性、系統(tǒng)性均較差,成本高,缺乏針對性,成為阻礙運維人員提升業(yè)務(wù)能力的重要因素。隨著計算機技術(shù)和計算機圖形學(xué)的快速發(fā)展,虛擬仿真培訓(xùn)系統(tǒng)的開發(fā)在很大程度上解決了上述培訓(xùn)形式的缺陷,使培訓(xùn)水平邁上一個新臺階。
2013年,鐵路BIM聯(lián)盟的成立推動BIM技術(shù)進入我國鐵路建設(shè)項目,BIM技術(shù)在鐵路行業(yè)全生命周期的應(yīng)用成為未來發(fā)展趨勢[3]。BIM模型集成了牽引變電所設(shè)備準確、完整的幾何與非幾何信息,為培訓(xùn)系統(tǒng)的實現(xiàn)提供了準確、可靠的信息支撐。因此,應(yīng)用BIM模型實現(xiàn)虛擬仿真培訓(xùn)系統(tǒng),可減少既有培訓(xùn)系統(tǒng)構(gòu)建時所需完成的建模和信息采集等工作量,大大提高了效率。然而,BIM建模軟件只能滿足最基本的三維可視化表達功能,實現(xiàn)業(yè)務(wù)培訓(xùn)系統(tǒng)還需要在BIM模型基礎(chǔ)上引入其他軟件平臺。
Unity3D是美國Unity Technologies公司開發(fā)的一款專業(yè)游戲引擎[4],其內(nèi)置NVIDIA PhysX物理引擎和優(yōu)化的圖形渲染管道可輕松構(gòu)建逼真的牽引變電所現(xiàn)場環(huán)境,而強大的計算機程序編譯能力將有力保障各人機交互功能的實現(xiàn)[5]。另外,Unity3D能夠良好地支持各主流3D模型文件[6],兼容由BIM模型導(dǎo)出的3D模型文件。因此,以牽引變電所全所Revit模型為基礎(chǔ),以Unity3D為系統(tǒng)實現(xiàn)平臺,對基于BIM模型的牽引變電所設(shè)備業(yè)務(wù)培訓(xùn)系統(tǒng)(簡稱培訓(xùn)系統(tǒng))進行設(shè)計與實現(xiàn)。
在培訓(xùn)系統(tǒng)的實現(xiàn)中,Revit支持將BIM模型導(dǎo)出為FBX文件,以便對模型進一步處理并實現(xiàn)更逼真的可視化功能。但是,由Revit導(dǎo)出的BIM模型面數(shù)過多,如直接導(dǎo)入Unity會占用較多的系統(tǒng)資源;Revit應(yīng)用矢量貼圖對設(shè)備材質(zhì)進行表達,存在貼圖不夠真實的問題。因此,需應(yīng)用3ds MAX對導(dǎo)出的BIM模型進一步處理。
在完成模型優(yōu)化及粗模構(gòu)建后,將模型導(dǎo)出,再導(dǎo)入Unity3D進行場景構(gòu)建,并對培訓(xùn)系統(tǒng)各功能進行實現(xiàn)。培訓(xùn)系統(tǒng)實現(xiàn)流程示意見圖1。
圖1 培訓(xùn)系統(tǒng)實現(xiàn)流程示意圖
根據(jù)培訓(xùn)系統(tǒng)實現(xiàn)流程,將由Revit導(dǎo)出的BIM模型導(dǎo)入3ds MAX進行模型優(yōu)化、貼圖和烘焙。
模型優(yōu)化的主要內(nèi)容為:刪除模型中不可見的面、重合的面及無關(guān)聯(lián)的線,使模型在保證不變形的前提下占用內(nèi)存最少[7]。
完成模型優(yōu)化后,對模型進行貼圖與烘焙,并最終導(dǎo)出為Unity3D支持的FBX文件。需要說明的是,由于3ds MAX與Unity3D這2個軟件的長度單位計量標準不一致,導(dǎo)致由3ds MAX導(dǎo)出的模型再導(dǎo)入Unity3D時發(fā)生模型“縮放”。因此,需將3ds MAX中系統(tǒng)單位設(shè)置為“厘米(cm)”。
在完成模型優(yōu)化、貼圖、烘焙并導(dǎo)出后,將模型導(dǎo)入Unity3D建立場景,為培訓(xùn)系統(tǒng)各功能的實現(xiàn)奠定基礎(chǔ)。在導(dǎo)入過程中,將貼圖文件與FBX文件放置于同一路徑下,并整體導(dǎo)入Unity3D,避免導(dǎo)入后丟失材質(zhì)信息。
Unity3D內(nèi)置強大的GUI界面編輯功能,滿足培訓(xùn)系統(tǒng)對UI界面的功能需求。培訓(xùn)系統(tǒng)擬采用GUI界面編輯功能完成界面設(shè)計,對系統(tǒng)各項功能進行觸發(fā)實現(xiàn)。UI界面需提供界面顯隱、視圖切換、隱蔽工程查看、設(shè)備快速定位等功能的控制按鍵。對于界面顯隱功能的控制與實現(xiàn),可應(yīng)用Toggle轉(zhuǎn)換鍵進行控制,并觸發(fā)相關(guān)代碼進行實現(xiàn)。其關(guān)鍵代碼如下:
其他功能控制按鍵與對應(yīng)功能的掛接由Unity3D提供的On Click()模塊完成。當用戶按下某功能控制按鍵時,系統(tǒng)將觸發(fā)執(zhí)行該按鍵On Click()模塊中所指定實體內(nèi)的指定函數(shù)。用戶只需于該模塊中對所需控制的實體和所需執(zhí)行的函數(shù)進行設(shè)置。按鍵觸發(fā)命令界面見圖2,最終的系統(tǒng)UI界面見圖3。
圖2 按鍵觸發(fā)命令界面
圖3 系統(tǒng)UI界面
三維場景漫游是培訓(xùn)系統(tǒng)的一項重要功能,用戶可快速了解牽引變電設(shè)備和變電所全所空間布局(見圖4)。該功能的實現(xiàn)共有3個關(guān)鍵步驟:
(1)建立完整、真實的三維場景,導(dǎo)入帶有動畫的角色模型,完成對角色的控制代碼[8];
(2)Unity3D內(nèi)置ThirdPersonCharacter包,直接導(dǎo)入場景并完成相關(guān)設(shè)置,即可實現(xiàn)三維場景漫游功能[9];
(3)通過鍵盤“↑”“↓”“←”“→”鍵控制角色移動,通過鼠標滾輪進行視角縮放,通過鼠標右鍵控制視角旋轉(zhuǎn)。
圖4 三維場景漫游
除三維場景漫游功能外,系統(tǒng)還可提供特定視角對牽引變電所進行查看(見圖5),其實現(xiàn)方式為:在場景特定位置放置相機,當需要以某一特定視角進行查看時,用戶可通過UI界面視圖一欄對主相機進行切換。其關(guān)鍵代碼如下:
培訓(xùn)系統(tǒng)支持對設(shè)備進行快速查找與定位,用戶可更加快捷、方便地定位到指定設(shè)備并執(zhí)行相關(guān)操作。通過點擊對應(yīng)的設(shè)備按鍵,確定所需定位的設(shè)備,并調(diào)整角色與相機到被查找設(shè)備處。其關(guān)鍵代碼如下:
培訓(xùn)系統(tǒng)采用以下2種方式對設(shè)備進行檢索:
(1)分類查找。將設(shè)備分為一次設(shè)備、二次設(shè)備和其他設(shè)備,當用戶勾選對應(yīng)類別的Toggle轉(zhuǎn)換鍵時,UI界面會顯示該類別所對應(yīng)的設(shè)備按鍵,點擊對應(yīng)的設(shè)備按鍵觸發(fā)設(shè)備定位功能;
(2)按名稱搜索。以設(shè)備名稱為關(guān)鍵字對設(shè)備進行檢索,當用戶開始檢索時,UI界面會顯示含有該關(guān)鍵字的設(shè)備所對應(yīng)的設(shè)備按鍵,點擊對應(yīng)的設(shè)備按鍵觸發(fā)設(shè)備定位功能。
圖5 特定視角查看
牽引變電所設(shè)備集中、隱蔽工程多,快速、直觀、準確地了解牽引變電所內(nèi)隱蔽工程的布置情況,對于運維人員了解牽引變電所整體布局、提升業(yè)務(wù)能力具有重要意義。牽引變電所內(nèi)隱蔽工程分為接地網(wǎng)、電纜溝槽、回流、防雷、油池等5類,培訓(xùn)系統(tǒng)可提供查看功能,直觀查看所內(nèi)隱蔽工程的位置和結(jié)構(gòu)。
對于隱蔽工程查看功能的實現(xiàn),系統(tǒng)應(yīng)用Toggle轉(zhuǎn)換鍵控制隱蔽工程查看功能的開啟與關(guān)閉,當勾選該按鍵時,系統(tǒng)對地面進行半透明化處理,并對所內(nèi)各隱蔽工程構(gòu)件的顏色進行適當修改,以實現(xiàn)隱蔽工程的突出顯示,進而實現(xiàn)對所內(nèi)隱蔽工程的直觀、準確查看(見圖6)。
圖6 隱蔽工程查看
牽引變電設(shè)備內(nèi)部結(jié)構(gòu)復(fù)雜,對設(shè)備進行分解查看,用戶可充分了解牽引變電設(shè)備的組成和結(jié)構(gòu)。培訓(xùn)系統(tǒng)提供對牽引變電所一次設(shè)備進行分解查看的功能,用戶可直觀、準確地查看一次設(shè)備的拆解狀態(tài)與裝配狀態(tài),全面了解設(shè)備的組成和結(jié)構(gòu)。
Unity3D提供以下2個動畫系統(tǒng)實現(xiàn)場景交互功能[10]:
(1)animator。以圖形化狀態(tài)機的形式對動畫狀態(tài)的轉(zhuǎn)換進行描述與控制;
(2)animation。對每個狀態(tài)下的動畫內(nèi)容進行描述。
對于設(shè)備拆裝功能的實現(xiàn),系統(tǒng)首先在animation中構(gòu)建設(shè)備拆裝動畫(見圖7),然后在animator中定義設(shè)備的拆解、安裝共2個狀態(tài),并定義變量condition以標記狀態(tài)機的當前狀態(tài)(見圖8)。
圖7 設(shè)備拆解動畫
圖8 設(shè)備拆裝狀態(tài)機
系統(tǒng)通過更改變量condition的數(shù)值完成狀態(tài)切換,通過點擊UI界面相應(yīng)的按鍵觸發(fā)程序運行。其關(guān)鍵代碼如下:
設(shè)備拆裝最終效果見圖9。
圖9 設(shè)備拆裝最終效果
從牽引變電所運維人員培訓(xùn)業(yè)務(wù)出發(fā),基于牽引變電所BIM模型搭建牽引變電所設(shè)備業(yè)務(wù)培訓(xùn)系統(tǒng)。利用3ds MAX對導(dǎo)出的BIM模型進行優(yōu)化、貼圖和烘焙,利用Unity3D完成培訓(xùn)系統(tǒng)場景搭建,并基于場景完成系統(tǒng)各功能的實現(xiàn)。培訓(xùn)系統(tǒng)基于BIM模型構(gòu)建場景,數(shù)據(jù)準確可靠;通過3ds MAX進行模型優(yōu)化,使場景更真實,易于現(xiàn)場操作人員接受;由Unity3D實現(xiàn)的各項功能為現(xiàn)場操作人員提供形式多樣的展現(xiàn)方式,表達更加直觀易懂。該培訓(xùn)系統(tǒng)數(shù)據(jù)準確、形式多樣,可有效提升培訓(xùn)質(zhì)量與效率,具有較好的推廣價值。另外,本系統(tǒng)的設(shè)計與實現(xiàn)方式也為BIM技術(shù)的應(yīng)用提供了新的思路。