常盛杰
(沈陽鐵道勘察設計院有限公司 建筑及電氣化設計所,遼寧沈陽 110012)
近年來,隨著我國高速鐵路運營里程的不斷增加和技術標準的不斷提升,對牽引供電系統運行的穩定性、可靠性提出了更高要求[1]。牽引變電所是牽引供電系統的心臟,對牽引供電系統運行的穩定性、可靠性起著舉足輕重的作用[2],需要牽引變電所運維人員掌握更扎實的業務知識和更熟練的操作技能。受牽引變電所設備價格昂貴、高壓設備危險性高、一級負荷供電可靠性要求高等限制,運維人員通過實踐操作進行業務能力提升的空間有限,培訓成為提高其業務能力的主要手段。目前,各鐵路局集團公司的相關培訓以視頻教學、資料學習、現場參觀為主,其直觀性、可操作性、系統性均較差,成本高,缺乏針對性,成為阻礙運維人員提升業務能力的重要因素。隨著計算機技術和計算機圖形學的快速發展,虛擬仿真培訓系統的開發在很大程度上解決了上述培訓形式的缺陷,使培訓水平邁上一個新臺階。
2013年,鐵路BIM聯盟的成立推動BIM技術進入我國鐵路建設項目,BIM技術在鐵路行業全生命周期的應用成為未來發展趨勢[3]。BIM模型集成了牽引變電所設備準確、完整的幾何與非幾何信息,為培訓系統的實現提供了準確、可靠的信息支撐。因此,應用BIM模型實現虛擬仿真培訓系統,可減少既有培訓系統構建時所需完成的建模和信息采集等工作量,大大提高了效率。然而,BIM建模軟件只能滿足最基本的三維可視化表達功能,實現業務培訓系統還需要在BIM模型基礎上引入其他軟件平臺。
Unity3D是美國Unity Technologies公司開發的一款專業游戲引擎[4],其內置NVIDIA PhysX物理引擎和優化的圖形渲染管道可輕松構建逼真的牽引變電所現場環境,而強大的計算機程序編譯能力將有力保障各人機交互功能的實現[5]。另外,Unity3D能夠良好地支持各主流3D模型文件[6],兼容由BIM模型導出的3D模型文件。因此,以牽引變電所全所Revit模型為基礎,以Unity3D為系統實現平臺,對基于BIM模型的牽引變電所設備業務培訓系統(簡稱培訓系統)進行設計與實現。
在培訓系統的實現中,Revit支持將BIM模型導出為FBX文件,以便對模型進一步處理并實現更逼真的可視化功能。但是,由Revit導出的BIM模型面數過多,如直接導入Unity會占用較多的系統資源;Revit應用矢量貼圖對設備材質進行表達,存在貼圖不夠真實的問題。因此,需應用3ds MAX對導出的BIM模型進一步處理。
在完成模型優化及粗模構建后,將模型導出,再導入Unity3D進行場景構建,并對培訓系統各功能進行實現。培訓系統實現流程示意見圖1。

圖1 培訓系統實現流程示意圖
根據培訓系統實現流程,將由Revit導出的BIM模型導入3ds MAX進行模型優化、貼圖和烘焙。
模型優化的主要內容為:刪除模型中不可見的面、重合的面及無關聯的線,使模型在保證不變形的前提下占用內存最少[7]。
完成模型優化后,對模型進行貼圖與烘焙,并最終導出為Unity3D支持的FBX文件。需要說明的是,由于3ds MAX與Unity3D這2個軟件的長度單位計量標準不一致,導致由3ds MAX導出的模型再導入Unity3D時發生模型“縮放”。因此,需將3ds MAX中系統單位設置為“厘米(cm)”。
在完成模型優化、貼圖、烘焙并導出后,將模型導入Unity3D建立場景,為培訓系統各功能的實現奠定基礎。在導入過程中,將貼圖文件與FBX文件放置于同一路徑下,并整體導入Unity3D,避免導入后丟失材質信息。
Unity3D內置強大的GUI界面編輯功能,滿足培訓系統對UI界面的功能需求。培訓系統擬采用GUI界面編輯功能完成界面設計,對系統各項功能進行觸發實現。UI界面需提供界面顯隱、視圖切換、隱蔽工程查看、設備快速定位等功能的控制按鍵。對于界面顯隱功能的控制與實現,可應用Toggle轉換鍵進行控制,并觸發相關代碼進行實現。其關鍵代碼如下:
其他功能控制按鍵與對應功能的掛接由Unity3D提供的On Click()模塊完成。當用戶按下某功能控制按鍵時,系統將觸發執行該按鍵On Click()模塊中所指定實體內的指定函數。用戶只需于該模塊中對所需控制的實體和所需執行的函數進行設置。按鍵觸發命令界面見圖2,最終的系統UI界面見圖3。

圖2 按鍵觸發命令界面

圖3 系統UI界面
三維場景漫游是培訓系統的一項重要功能,用戶可快速了解牽引變電設備和變電所全所空間布局(見圖4)。該功能的實現共有3個關鍵步驟:
(1)建立完整、真實的三維場景,導入帶有動畫的角色模型,完成對角色的控制代碼[8];
(2)Unity3D內置ThirdPersonCharacter包,直接導入場景并完成相關設置,即可實現三維場景漫游功能[9];
(3)通過鍵盤“↑”“↓”“←”“→”鍵控制角色移動,通過鼠標滾輪進行視角縮放,通過鼠標右鍵控制視角旋轉。

圖4 三維場景漫游
除三維場景漫游功能外,系統還可提供特定視角對牽引變電所進行查看(見圖5),其實現方式為:在場景特定位置放置相機,當需要以某一特定視角進行查看時,用戶可通過UI界面視圖一欄對主相機進行切換。其關鍵代碼如下:

培訓系統支持對設備進行快速查找與定位,用戶可更加快捷、方便地定位到指定設備并執行相關操作。通過點擊對應的設備按鍵,確定所需定位的設備,并調整角色與相機到被查找設備處。其關鍵代碼如下:

培訓系統采用以下2種方式對設備進行檢索:
(1)分類查找。將設備分為一次設備、二次設備和其他設備,當用戶勾選對應類別的Toggle轉換鍵時,UI界面會顯示該類別所對應的設備按鍵,點擊對應的設備按鍵觸發設備定位功能;
(2)按名稱搜索。以設備名稱為關鍵字對設備進行檢索,當用戶開始檢索時,UI界面會顯示含有該關鍵字的設備所對應的設備按鍵,點擊對應的設備按鍵觸發設備定位功能。

圖5 特定視角查看
牽引變電所設備集中、隱蔽工程多,快速、直觀、準確地了解牽引變電所內隱蔽工程的布置情況,對于運維人員了解牽引變電所整體布局、提升業務能力具有重要意義。牽引變電所內隱蔽工程分為接地網、電纜溝槽、回流、防雷、油池等5類,培訓系統可提供查看功能,直觀查看所內隱蔽工程的位置和結構。
對于隱蔽工程查看功能的實現,系統應用Toggle轉換鍵控制隱蔽工程查看功能的開啟與關閉,當勾選該按鍵時,系統對地面進行半透明化處理,并對所內各隱蔽工程構件的顏色進行適當修改,以實現隱蔽工程的突出顯示,進而實現對所內隱蔽工程的直觀、準確查看(見圖6)。

圖6 隱蔽工程查看
牽引變電設備內部結構復雜,對設備進行分解查看,用戶可充分了解牽引變電設備的組成和結構。培訓系統提供對牽引變電所一次設備進行分解查看的功能,用戶可直觀、準確地查看一次設備的拆解狀態與裝配狀態,全面了解設備的組成和結構。
Unity3D提供以下2個動畫系統實現場景交互功能[10]:
(1)animator。以圖形化狀態機的形式對動畫狀態的轉換進行描述與控制;
(2)animation。對每個狀態下的動畫內容進行描述。
對于設備拆裝功能的實現,系統首先在animation中構建設備拆裝動畫(見圖7),然后在animator中定義設備的拆解、安裝共2個狀態,并定義變量condition以標記狀態機的當前狀態(見圖8)。

圖7 設備拆解動畫

圖8 設備拆裝狀態機
系統通過更改變量condition的數值完成狀態切換,通過點擊UI界面相應的按鍵觸發程序運行。其關鍵代碼如下:

設備拆裝最終效果見圖9。

圖9 設備拆裝最終效果
從牽引變電所運維人員培訓業務出發,基于牽引變電所BIM模型搭建牽引變電所設備業務培訓系統。利用3ds MAX對導出的BIM模型進行優化、貼圖和烘焙,利用Unity3D完成培訓系統場景搭建,并基于場景完成系統各功能的實現。培訓系統基于BIM模型構建場景,數據準確可靠;通過3ds MAX進行模型優化,使場景更真實,易于現場操作人員接受;由Unity3D實現的各項功能為現場操作人員提供形式多樣的展現方式,表達更加直觀易懂。該培訓系統數據準確、形式多樣,可有效提升培訓質量與效率,具有較好的推廣價值。另外,本系統的設計與實現方式也為BIM技術的應用提供了新的思路。