江西洪屏抽水蓄能有限公司 徐利君 何茂鑫 韓 釗 洪云來 劉 軻 河海大學機電工程學院 栗嘉豪 李龍華
江西洪屏抽水蓄能電站主要由上水庫、下水庫、輸水系統、地下廠房、升壓站和地面開關站等建筑物組成,在電網中承擔調峰、填谷、調頻、調相和事故備用等任務。對水電設備進行檢修維護是保證電站安全穩定運行的必要手段,由于抽水蓄能電站機組為水泵水輪機、發電電動機的可逆形式,結構較為復雜,電站布置涉及上水庫、下水庫及其地下廠房,熟悉全站設備布置情況,對于日常運維及事故快速處理至關重要。
當前水電站檢修培訓仍采用集中授課和場地實訓等方式,集中授課成本低、培訓周期較長,因無直觀的工具連接和彌補抽象理論與工程實踐之間的鴻溝,學員技術素養對培訓效果影響很大,培訓效果不理想。手把手教學、現場示范系常見的實操訓練方式,目的是快速提高學員的動手能力、臨場故障及事故處置能力,但受檢修時空限制,動手機會不多,培訓效果有限,傳統培訓方式已無法滿足水電行業的發展需求。
隨著網絡技術、三維可視化技術,計算機技術的發展與應用,以虛擬現實技術為主的人機交互式培訓成為當前主流。三峽大學水利工程學院構建水電站邊坡虛擬開挖系統對開挖進度、開挖形象面貌進行動態控制[1];天津大學開發廠房設備可視化交互仿真系統進行設備運行和維護的管理[2];趙丹等人運用虛擬現實技術開發水輪機調速器液壓系統的虛擬安裝檢修系統,從而實現對水輪機調速器的虛擬安裝和檢修全過程[3]。利用虛擬現實技術實現水電站全廠漫游,通過鼠標鍵盤常規外設進行沉浸式體驗,熟悉電站整體布局、各機電設備具體布置,有助于提高電站日常運維及事故快速處置能力,為安全生產提供技術支撐。
以洪屏抽蓄電站的設計圖紙、上下游水庫以及實景場景為基礎,采用SolidWorks 等主流建模軟件,分別對洪屏電站周圍地形、混凝土重力壩、泄水建筑物、機組進水口、發電主副廠房、500kV 升壓站及500kV 開關站等主要建筑物、機電設備等進行三維建模。將模型導入Unity 3d 平臺進行整合和優化渲染,構建三維虛擬場景,添加角色控制器,最后加入鼠標鍵盤常規外設交互控制,實現全廠全景虛擬漫游。洪屏抽水蓄能電站虛擬漫游系統的總體設計架構如下:外部控制設備(鼠標、鍵盤、手柄);漫游方式(自動行走、自由瀏覽);虛擬場景(三維模型(地形、建筑物、檢修工具),粒子特效、天空盒、碰撞檢測、燈光渲染);數據庫(設備信息、實時數據)。
洪屏抽水蓄能電站虛擬漫游系統包含自動行走和自由瀏覽兩種漫游模式,其中自由瀏覽漫游模式提供導航縮略圖和主要的場景地點所構成的狀態欄,以便正確引導或實現快速漫游。與此同時系統提供PC 版及HTC VIVE 兩個版本,PC 版使用鼠標鍵盤進行交互外設,而HTC VIVE 版則使用頭顯及操作手柄為交互外設,實現高度沉浸式漫游,進一步提升體驗感。
洪屏抽水蓄能電站虛擬漫游系統的場景模型包含洪屏工程周圍地形模型、水工建筑模型和機電設備等模型,其中三維地形的創建采用DEM(Digital Elevation Model,數字高程模型)方法進行,創建步驟如下:導入數據-調整尺寸及高度范圍-生成等高線-投影轉換-導出為dwg 文件。
在中國科學院資源環境科學數據中心取得洪屏抽水蓄能電站地區90m 的DEM 數據,導入Global Mapper 軟件生成洪屏水電站地區的等高線,根據初始數據的尺寸調整文件的大小和高度范圍。在生成等高線后需設置投影轉換,否則導出的dwg 格式的等高線文件高度會出現較大的偏差;運用Global Mapper 軟件自帶的導出矢量圖形功能導出等高線文件。需注意的是,在導出等高線的同時選擇不顯示標簽,否則在3ds Max 中創建地形會出現標簽線條。通過在3ds Max 中設置地形單位,最終完成三維地形的創建。
三維建模中模型的面數決定著模型占用內存資源的大小,面數越多加載和傳輸的負擔就越重,因此在追求模型精細程度的同時也要考慮機器的負荷能力[4]。對于水電站中的建筑物而言,其面數可達到幾十萬面,漫游系統根據場景需對精模進行細致處理形成簡模,以此大幅度降低模型面片數,在保障三維效果的前提下確保交互時系統的流暢程度。
場景漫游時,為有效觀察部分管網中流體流動情況,需對內部的油水氣流動狀態等進行模擬,而系統內部的動態油水氣等的模擬離不開粒子系統的支持。粒子的屬性主要有粒子的生命數值、初始速度、初始坐標等多項特性[5]。利用初始化函數中循環的方式為每一個粒子進行屬性賦值,從而生出所需要的噴泉粒子。在進行粒子的繪制時,每個周期都要對粒子的屬性進行更新,對粒子進行添加、刪除和移動操作,主要代碼如下:
giBindTexture(GL_TEXTURE_2D,texture[0]);
AddParticles();//添加新的粒子
MoveParticles();//粒子運動函數
DeleteParticles();//刪除粒子
每個粒子在初始化時都被賦予生命值,當生命值衰減到0時系統認為粒子死亡,從系統中刪除。為保證粒子效果的持續性,系統在定義粒子死亡的同時又會產生新的一批粒子。圖1為技術供水管網中的水流流動狀態示意。

圖1 技術供水管網中的水流流動狀態
為避免在進行場景漫游時出現模型相互穿過的現象和保證模擬真實性,需在Unity 3d 中進行碰撞檢驗。本系統采用AABB 包圍盒算法進行物體間的碰撞檢測,即將物體用形狀簡單的包圍體包圍起來。對物體的包圍體進行布爾運算,如果兩個物體的包圍體不相交則兩個物體一定不相交;如兩個物體的包圍盒相交則繼續判斷內部物體是否發生碰撞相交??刹捎枚鄠€多邊形來表示包圍體,將這些多邊形物體包裹起來代替物體進行碰撞檢測,多邊形劃分的越細則碰撞檢測越準確。
部分代碼如下:Public boolean check(RigidBody ra,RigidBody rb)//true為撞上物體{Float[]over=calovertotal(//兩個物體的AABB包圍盒Ra.collobject.getCurrAABBBox(ra.currlocation),Rb..collobject.getCurrAABBBox(ra.currlocation));//三個方向的交疊值與設定的閾值進行比較Return over[0]>V_UNIT &&over[1]>V_UNIT && over[2]>V_UNIT;}。
AABB 包圍盒的各個面都平行于坐標平面,通過分別判斷包圍盒三個坐標軸方向上交疊部分的大小是否超過設定的閾值,即可判斷是否相交。與用原物體進行碰撞檢測相比,雖然檢測的精度下降,但檢測的效率大大提高,節約了大量資源。通過碰撞檢測的方法,有效規范了漫游過程中活動范圍,避免人物穿過所經建筑物、底面和設備等,使場景交互更加逼真。
在洪屏抽水蓄能電站虛擬場景漫游中,需對虛擬場景的數據進行調用。在調用相應模型數據、圖文信息、視頻音頻等數字資源的過程中需保持模型的一定精度,由此對虛擬場景運行環境的要求較高。因此為保證系統交互時的穩定性和流暢性,對虛擬場景進行優化是必備的工作。實時渲染優化方案是從系統運行時場景資源渲染入手,采用遮擋剔除技術(Occulusion Culling)和多層次細節技術(Levels of Detail)對場景進行渲染優化。
遮擋剔除技術通過剔除不可見對象的渲染工作來減少CPU 資源的消耗。通過對虛擬環境中建筑群、森林等遮擋特別多的場景進行遮擋剔除,在上一幀畫面和下一幀畫面不大的情況下,對上一幀沒有被遮擋的物體進行遮擋,使CPU 不等待遮擋查詢結果,直接檢查上一幀的結果。在不影響最終渲染畫面的同時,減少每幀的渲染量,以此降低GPU 的負載。
多層次細節技術根據物體模型節點在顯示環境中所處的位置和重要程度不同,決定物體渲染的資源分配,通過降低非重要物體的面數和細節數獲得高效率的渲染運算。通過對場景內的主要對象如機組設備、廠房、上下游水庫大壩等分別建立精模和簡模,將精模和簡模放在相應對象的層級視圖下作為它的子物體;利用目標對象添加LOD Group 組件,將精模和簡模放在對應位置中。當攝像機近距離觀察模型對象時采用精細度較高的精模顯示;當攝像機遠距離觀察這個模型時則采用精細度較低的簡模顯示;而在更遠處看不到的地方則使用空對象代替,大大降低漫游實時渲染的復雜性,有效提高系統流暢度。圖2為推力及上導軸承供油系統LOD 細節層次優化示意,優化的推力及上導軸承供油系統面片數由LOD1的3505344減少至LOD0的90201,即簡模為精模的2.57%。

圖2 推力及上導軸承供油系統LOD 細節層次優化
自由瀏覽功能通過鍵盤和鼠標任意控制角色前后左右移動和視角的改變,使角色可到達洪屏抽水蓄能電站虛擬場景中任何位置,方便全方位多角度的查看電站及其設備的情況。自由瀏覽為第三視角漫游,使用人物三維模型表示攝像機視線范圍內的漫游主體,同時將攝像機作為該模型的子對象,當腳本控制人體三維模型進行移動式攝像機也會跟著移動。為更方便的實現自由瀏覽漫游功能,對First Person Controller 腳本進行優化,修改腳本的相應參數,如移動速度、視覺旋轉速度等,使漫游更加符合系統要求。自由瀏覽漫游模式提供導航縮略圖和主要的場景地點所構成的狀態欄,以便正確引導或實現快速漫游。
自動行走是場景漫游的另一種方式,也被稱為自動漫游,系統根據用戶規劃的路線進行自行移動,不需要手動操作。通過自動漫游的方式,按系統設定的漫游路線實現全站自動瀏覽。采用NavMesh導航網格尋路的方法實現自動漫游功能,利用拐點算法將虛擬場景中復雜的組織結構關系簡化為簡單的網格,在網格的基礎上通過計算選出最短路徑。因此自動漫游進行路徑規劃時需確定所有目標點的坐標和目標點的訪問順序(圖3),通過手動添加目標地點的坐標點,制作標記預制體EffectClick 放入Resources 文件夾中,運用Add()函數把該三維坐標存入集合Points 中,使用SetDestination()函數訪問集合Points 中的第一個三維坐標實現角色模型的自動漫游,當角色模型到達該坐標的位置,則運用Destroy 函數將該坐標上的點擊標記銷毀。

圖3 漫游路徑規劃流程
數據庫是系統的重要部分之一,其作用是儲存和管理用戶、廠房和設備的信息。為方便數據庫的設計,需將場景中數據進行合理的組織和分類。場景數據結構分為三類:建筑、設備、人物的屬性信息,包括設備編號、設備名稱、操作人員的個人信息和設備的基本操作信息;設備和建筑圖件數據結構,包括建筑的各種平面圖信息。該數據通過點、線、多邊形等圖形來表示,由AutoCAD 平臺進行操作和儲存;設備、建筑屬性體數據結構,即前兩種數據經過分析映射到三維空間的體圖形數據庫。
基于上述三種數據結構,將三維空間圖形數據和非空間數據信息進行關聯,并建立綜合信息管理和查詢,從而實現數據的儲存和管理(圖4)。

圖4 虛擬漫游系統數據庫設計
本文以洪屏抽水蓄能電站的建筑和設備為對象開發了相應的虛擬漫游系統,后續可將設備傳感器數據接入虛擬設備中,實時顯示設備運行參數,有助于更好地了解機組實際運行情況。