丁佳杰,李旭航,王云飛
(青島科技大學機電工程學院,山東青島 266061)
虛擬現(xiàn)實是一項集計算機圖形學、電子信息處理技術、傳感器技術、多媒體技術于一體的綜合電子信息技術,典型特征為真實性、沉浸性、交互性[1-2]。虛擬現(xiàn)實與教育的結合有效提高了教學質量,主要表現(xiàn)為借助三維建模和渲染技術建立接近真實情境的虛擬環(huán)境,學生在與其相互作用過程中五官都能獲得真實體驗,親身感受知識點[3-4]。該文基于虛擬現(xiàn)實技術開發(fā)一套功能完善且具有一定可行性的LNG工廠虛擬仿真系統(tǒng),對于提高課堂效率、提高實訓能力有積極良好作用。
基于軟件工程的設計思想,LNG 工廠虛擬仿真系統(tǒng)的開發(fā)流程主要分為兩個階段[5]:第一階段是通過前期需求分析和材料收集確定系統(tǒng)模塊;第二階段是在Unity3D 平臺開發(fā)系統(tǒng)主要功能。首先通過線上資料分析和線下實地考察確定場景布局和工藝路線,并根據(jù)院校課程標準制定模塊功能;第二階段采用Unity3D 引擎來實現(xiàn)場景構建和功能開發(fā),Unity3D 是一個對編輯器、地形編輯、著色器、腳本等特性全面整合的專業(yè)游戲引擎,其內置程序編輯器支持C#、JavaScript、Python 等多種編程語言,其開發(fā)的產(chǎn)品可在Windows、iOS、Mac、Android 等多平臺進行發(fā)布[6-7]。首先采用Solid Works 建立并裝配LNG工廠,將其導入3D Max 進行渲染,并以FBX 格式導入Unity 工程;通過場景集成、光源設置、創(chuàng)建陰影、添加Sky Box、添加火焰粒子特效等操作對場景進行優(yōu)化,達到高度的場景實體仿真和物理仿真[8];通過動畫設計并結合碰撞檢測技術實現(xiàn)站場巡檢,通過C#編寫腳本模擬閥門啟動,采用UGUI 進行人機交互設計,利用場景相機實現(xiàn)多視角轉換,最后,通過多次人機交互反饋修改設計,完成系統(tǒng)發(fā)布并交付用戶使用,主要開發(fā)流程如圖1 所示。

圖1 開發(fā)流程
2.1.1 人物動畫
LNG 虛擬仿真系統(tǒng)設置一工人模型,用以站場巡檢,該人物有跑動和待機兩種狀態(tài)。該文通過外部方式導入動畫,利用3Dmax 建立人物模型并添加骨骼節(jié)點、蒙皮綁定,以拖動關鍵幀方式將人物運動過程中肢體位置變化記錄下來,實現(xiàn)動畫制作,并導出FBX 格式[8]。動畫準備完畢后,通過在Unity3D 進行設置實現(xiàn)動畫效果,具體流程:將動畫模型拖進Assets 中,勾選Model、Loop Time 和Materials 的默認值選項,設置完成后,新建Animator Controller 并將其拖進模型自動生成的Animator,通過Inspector 菜單進入Base Layer,將“普通工人待機”“普通工人跑”拖進去并改名為“站立”“跑”,通過Make Transition 添加連接線,最后通過C#腳本傳入動畫觸發(fā)參數(shù)指令。這里主要采用如下代碼來觸發(fā):
2.1.2 火焰粒子特效
LNG 工廠開車之前,需要對管線和設備進行氮氣置換,即利用氮氣推動管道殘余天然氣至火炬,通過燃燒方式實現(xiàn)放空,為增強場景真實感,利用Unity3D 內置粒子系統(tǒng)(Particle System)制作火焰特效,粒子系統(tǒng)是Unity 用來實現(xiàn)火焰、煙霧、流動等其他特效插件,主要由粒子發(fā)射器(Particle Emitter)、粒子動畫(Particle Animator)、粒子渲染器(Particle Render)三部分構成[9]。該系統(tǒng)采用使用粒子發(fā)射器(Particle Emitter)產(chǎn)生粒子,采用粒子動畫(Particle Animator)在時間軸上移動調整至合適的火焰外形和擺動頻率,最后由粒子渲染器(Particle Render)完成渲染,具體效果如圖2 所示。

圖2 粒子系統(tǒng)火焰特效
碰撞檢測是虛擬現(xiàn)實技術在進行模擬過程中處理運動規(guī)劃的關鍵所在,主要是指在指定時間域內某一時刻,檢測場景中一對或多對物體之間是否有接觸[10]。Unity3D 內置六種碰撞器,分別為盒狀碰撞器、球狀碰撞器、膠囊碰撞器、網(wǎng)格碰撞器、輪胎碰撞器和地形碰撞器,不同碰撞器適用算法不同[11]。該系統(tǒng)碰撞檢測技術體現(xiàn)在工人巡檢過程中的面板調用,采用盒狀碰撞器,算法采用層次包圍盒算法[12]。當包圍盒發(fā)生相交、處于相交狀態(tài)和相交狀態(tài)取消時,會分別調用OnTriggerEnter()、OnTriggerStay()、OnTriggerExit()三個函數(shù),執(zhí)行邏輯關系從而實現(xiàn)碰撞檢測功能[13]。當工人與吸收塔距離達到最小檢測距離時,吸收塔參數(shù)面板調出,實訓人員可查看壓降、溫度等重要參數(shù),當面板壓降達到報警值時指示吸收塔運行出現(xiàn)異常,如發(fā)生填料堵塞、淹塔或胺液發(fā)生起泡,此時需采取相應措施,以保證吸收塔正常運行從而達到巡檢目的[14]。參數(shù)面板碰撞檢測效果如圖3 所示。

圖3 參數(shù)面板查驗
LNG 虛擬仿真系統(tǒng)中的閥門是控制生產(chǎn)負荷的關鍵設備,原料氣進口流量以及儲罐裝存流量均通過閥門控制,該系統(tǒng)主要采用自力式調節(jié)閥和截止閥,自力式調節(jié)閥將管道介質流動產(chǎn)生的壓力傳輸至彈簧壓力裝置進而推動閥桿改變閥門開度,截止閥則需手動轉動手輪推動閥桿改變閥室開度[15]。該系統(tǒng)采用材質球調用和浮點數(shù)插件實現(xiàn)閥門開度的變化,場景中的調節(jié)閥和截止閥閥蓋手輪位置添加了碰撞器組件,通過Input.GetMouseButtonDown()[16]系統(tǒng)API 檢測實訓人員否單擊鼠標左鍵,鼠標左鍵單擊閥蓋時,通過ColorChange() 方法調用Green Material 至閥蓋以及所連管道,表示閥門開啟,具體對比效果如圖4 所示。

圖4 閥門啟停
通過浮點數(shù)插件模擬手輪扭矩力累加,達到最大扭矩手輪轉動,最大扭矩計算公式為:
式中,MF為截止閥手輪最大扭矩,DN為閥門口徑,PN為設計壓力,Kε為螺紋摩擦系數(shù)。當API檢測鼠標點擊手輪時,程序自動將該事件定義為一次浮點數(shù)并存儲至后臺計算程序,達到預設最大扭矩值時執(zhí)行手輪旋轉效果,該插件采用C#編寫,核心程序如下:
LNG 虛擬仿真系統(tǒng)登錄和場景轉換通過UGUI插件實現(xiàn),User Interface 是用戶與系統(tǒng)進行交互控制和信息交換的重要媒介,Unity3D 集成了功能完善的UGUI,設計人員通過在Canvas 畫布上部署系統(tǒng)所需元素,可以靈活、快速地實現(xiàn)人機交互操作[17]。學員在登錄界面正確輸入學號密碼后點擊登錄,將彈出“學習模塊”、“實訓模塊”場景入口按鈕,點擊相應場景入口即可進入。登錄界面如圖5 所示。

圖5 登錄界面
場景入口Button 掛載場景轉換腳本,以學習模塊為例,主要代碼為functionOnGUI(){GUI.Label(React(300,50,600,300),str);If(GUI.Button(Tect(250,450,200,50“)進入學習模塊”))}
LNG 虛擬仿真系統(tǒng)主要由學習模塊和實訓模塊兩部分構成,學習模塊主要為教師提供知識講解平臺,包括工藝流程、操作演示、設備簡介等內容,其中通過對關鍵設備的拆解和透明化處理,學員可學習主要生產(chǎn)設備的結構和運行原理;此外,學習模塊還提供LNG 工廠工藝流程分部展示和理論知識講解,使學員快速掌握工廠操作規(guī)程;實訓模塊則要求學生親自動手進行模擬投產(chǎn)、正常運行、正常停車、緊急停車等操作。學習模塊用戶主要操作方式為場景漫游,通過改變相視角從而進行全局漫游,該功能依靠場景中掛載FreeCamera 腳本的Main Camera 實現(xiàn),用戶通過鍵盤按鍵和鼠標右鍵控制相機空間方位,具體效果為W、S、A、D 控制視角前后左右移動,Q、E鍵控制視角升沉,長按鼠標右鍵可進行環(huán)繞四周,從而全面了解整個場景的布局,實訓模塊則在次基礎上增加了第一人稱功能,用戶可選擇工人視角作為第一人稱視角,通過該“化身”進行站場巡檢、工藝控制等操作。設備介紹和視角效果如圖6 所示。

圖6 效果展示
該文以LNG 工廠為工業(yè)背景,重點討論虛擬現(xiàn)實系統(tǒng)的設計和開發(fā),系統(tǒng)設置學習模塊和實訓模塊,將理論和操作相結合,既滿足傳統(tǒng)課堂教師授課要求,又能實現(xiàn)學生由單方面接收知識到動手操作的轉變。LNG 工藝流程復雜,并具有易燃易爆低溫特性,傳統(tǒng)實訓方式存在一定風險,而目前LNG 操作仿真系統(tǒng)多采用scada 組態(tài)軟件開發(fā)[18],相較傳統(tǒng)實訓式具有高效安全低成本等優(yōu)勢,但受限于只能進行二維展示,無法真實展示站場總體布局和關鍵設備外形結構,實現(xiàn)LNG 工廠真實場景的沉浸式教學,基于虛擬現(xiàn)實技術的LNG 工廠虛擬仿真系統(tǒng)的開發(fā)利用計算機三維建模和渲染技術,高度還原真實站場,采用編程語言實現(xiàn)虛擬生產(chǎn)過程,有效解決傳統(tǒng)仿真教學缺乏沉浸性、交互性、趣味性等難題,同時也將為其他領域的虛擬仿真項目開展提供一定參考價值。