祁永超,田銘興,陳小強,張海喜
(1. 蘭州交通大學(xué) 自動化與電氣工程學(xué)院,蘭州 730070; 2. 蘭州交通大學(xué) 甘肅省軌道交通電氣自動化工程實驗室,蘭州 730070)
保障電網(wǎng)安全可靠運行一直以來是各級電力部門的核心工作,變電站作為電能輸送、分配的重要環(huán)節(jié),其安全運行顯得尤為重要[1].隨著堅強智慧電網(wǎng)概念的提出,電力系統(tǒng)更為龐大,設(shè)備結(jié)構(gòu)更為復(fù)雜,對電網(wǎng)運維人員的安全意識和技能素質(zhì)提出了更高的要求[2].當前變電站培訓(xùn)模式大都存在著理論與實際脫節(jié)現(xiàn)象,理論學(xué)習(xí)抽象、枯燥,不利于吸收消化,而實操學(xué)習(xí)由于設(shè)備經(jīng)費問題,往往不能大規(guī)模進行培訓(xùn),且易誤操作,導(dǎo)致安全事故頻發(fā),傳統(tǒng)的培訓(xùn)方式已無法適應(yīng)當前需求.因此,迫切需要設(shè)計一套沉浸感強、交互性好、趣味性強的變電站培訓(xùn)系統(tǒng)來滿足當前發(fā)展趨勢.
虛擬現(xiàn)實技術(shù)可以很好地克服以上傳統(tǒng)培訓(xùn)的不足.虛擬現(xiàn)實技術(shù)利用計算機技術(shù)、圖形圖像技術(shù)、人機交互技術(shù)等,將真實場景復(fù)現(xiàn)在計算機中,并進行各類仿真,實現(xiàn)“人在畫中游”效果[3].在電力培訓(xùn)中,各級電力部門和研究人員對虛擬現(xiàn)實技術(shù)進行了大量的研究和應(yīng)用:文獻[4]對站內(nèi)二次設(shè)備仿真培訓(xùn)系統(tǒng)的可視化方法進行了研究,建立了系統(tǒng)網(wǎng)絡(luò)架構(gòu),并真實模擬了站內(nèi)二次設(shè)備,但其培訓(xùn)內(nèi)容和方法較為單一,且系統(tǒng)缺乏良好的人機交互功能;文獻[5]采用沉浸式虛擬仿真技術(shù),搭建了變電站故障仿真系統(tǒng),但該系統(tǒng)需要使用虛擬現(xiàn)實設(shè)備,培訓(xùn)成本較高,且該系統(tǒng)只是單純的故障仿真,并沒有涉及故障原因分析、故障處理方法、故障防范措施等必要的培訓(xùn)手段;文獻[6]在虛擬現(xiàn)實技術(shù)基礎(chǔ)上增加了Kinect體感交互技術(shù),提高了學(xué)員的臨場感,但該系統(tǒng)側(cè)重于漫游功能的研究,且培訓(xùn)只是站內(nèi)設(shè)備的簡單認知;文獻[7]提出一種變電站仿真三維可視化裝配組件技術(shù),提高了軟件開發(fā)效率;文獻[8]利用Quest3D提供的Channel模塊按一定邏輯連接,提高了培訓(xùn)系統(tǒng)的可擴展性和維護性.
在既有研究基礎(chǔ)上,結(jié)合實際項目需求,基于Unity3d三維開發(fā)引擎,構(gòu)建了成本低廉、功能全面的變電站虛擬仿真培訓(xùn)系統(tǒng).系統(tǒng)遵循軟件設(shè)計組件化的架構(gòu)思想,集中實現(xiàn)了建模、仿真、交互、培訓(xùn)等功能,實現(xiàn)了一個平臺能提供全面培訓(xùn)的設(shè)計要求,解決了當前培訓(xùn)系統(tǒng)功能單一、跨平臺維護不便等問題,提高了變電站培訓(xùn)工作的靈活性.
基于Unity3d的變電站仿真培訓(xùn)系統(tǒng)架構(gòu)如圖1所示,分為4層:應(yīng)用層包括系統(tǒng)實現(xiàn)的培訓(xùn)功能,采用模塊化的設(shè)計思路,分為總體介紹模塊、設(shè)備學(xué)習(xí)模塊、漫游巡視模塊、模擬演練模塊、答題考核模塊、故障重現(xiàn)模塊等6個功能模塊;支撐層除了實現(xiàn)桌面式顯示、人機交互、模型拆分組合、教學(xué)視頻嵌入播放等基礎(chǔ)虛擬仿真功能,還提供了3D建模、場景布置、數(shù)據(jù)庫連接、快速渲染等輔助功能;接口層是實現(xiàn)交互的重要組件,包括人機交互接口、三維圖像引擎接口、可穿戴設(shè)備接口.由于本系統(tǒng)采用桌面式虛擬現(xiàn)實技術(shù),因此,可穿戴設(shè)備接口預(yù)留;硬件層是支持仿真系統(tǒng)實現(xiàn)的基礎(chǔ)[10],主要包括管理主機、圖形工作站、可穿戴設(shè)備(預(yù)留).系統(tǒng)進行分層架構(gòu)設(shè)計,從邏輯上將各模塊劃分成許多集合.通過分層,限制了子系統(tǒng)之間的依賴關(guān)系,層與層之間耦合度顯著減低,易于軟件的維護和修改,同時符合軟件工程組件化架構(gòu)思想.
圖1 仿真培訓(xùn)系統(tǒng)整體架構(gòu)Fig.1 General structure of the simulation system
針對電力培訓(xùn)實際需求,分別開發(fā)了6個培訓(xùn)模塊,設(shè)計遵循“高內(nèi)聚、低耦合”原則,各模塊之間相互獨立,降低了各模塊直接的耦合度,提高了軟件運行的穩(wěn)定性和可擴展性.圖2為各模塊功能細化樹形圖.各模塊主要功能如下:
1) 總體介紹模塊.作為培訓(xùn)的入門培訓(xùn)模塊,主要講解變電站概況,如地理信息、承擔任務(wù)、總體結(jié)構(gòu)、設(shè)備信息等,通過Unity3d布置虛擬變電站場景,讓受訓(xùn)者初步認知變電站.
2) 漫游巡視模塊.在虛擬場景中,添加人物并編寫控制腳本,使用鍵盤及鼠標進行控制操作,可以巡視變電站任何設(shè)備.另外,自動漫游功能借助Unity3d內(nèi)嵌的DO Tween插件實現(xiàn),通過調(diào)用DO Path函數(shù)添加關(guān)鍵點來確定漫游路徑,并設(shè)置人物走動或跑動速度來實現(xiàn)變電站全站自動漫游,為受訓(xùn)人員提供一種身臨其境的真實感受[10],彌補了學(xué)員難以進入變電站現(xiàn)場培訓(xùn)的不足,提高培訓(xùn)效率.
3) 設(shè)備學(xué)習(xí)模塊.為了化解實際操作與理論學(xué)習(xí)的矛盾,設(shè)計了拆分組合和視頻講解功能,例如變壓器的學(xué)習(xí):通過拆分,學(xué)習(xí)各部件的主要功能及構(gòu)造;通過組合,使受訓(xùn)人員熟悉變壓器結(jié)構(gòu)組成,并且在視頻教學(xué)結(jié)合的情況下,提高學(xué)員學(xué)習(xí)興趣.
4) 模擬演練模塊.模擬演練以變電站重要事件為演練內(nèi)容,例如:倒閘操作,通過3dsMax動畫效果的制作及Unity3d邏輯腳本的設(shè)計,模擬變電站倒閘操作;火災(zāi)逃生中,使用Unity3d平臺中的粒子系統(tǒng),模擬火焰、煙霧效果,并規(guī)劃出逃路線,使學(xué)員控制人物進行逃離,達到模擬火災(zāi)逃生的培訓(xùn)效果.
5) 故障重現(xiàn)模塊.由于受訓(xùn)人員在現(xiàn)場學(xué)習(xí)機會較少,遇到故障的情況也極為少見.因此,故障重現(xiàn)模塊對學(xué)員培訓(xùn),顯得尤為重要,通過故障的重現(xiàn)功能,學(xué)員可以在三維場景真實經(jīng)歷故障情況,并學(xué)習(xí)處理步驟及防范辦法等.
6) 答題考核模塊.作為理論知識的考核,答題模塊可以檢驗學(xué)員的學(xué)習(xí)情況.該功能模塊通過連接MySQL數(shù)據(jù)庫對學(xué)員信息、答題信息、考核得分等信息進行存儲.
圖2 仿真培訓(xùn)系統(tǒng)功能樹形圖Fig.2 Function tree of the simulation training system
由于系統(tǒng)開發(fā)過程中,應(yīng)用軟件較多,涉及技術(shù)較廣,因此合理規(guī)劃系統(tǒng)開發(fā)路線顯得十分重要,不僅提高了開發(fā)效率,同時做到軟件設(shè)計的規(guī)范性.該培訓(xùn)系統(tǒng)流程開發(fā)主要分為4個部分:資料收集、三維建模、系統(tǒng)搭建、程序測試.詳細的開發(fā)步驟及方法如圖3所示.
仿真環(huán)境的搭建是實現(xiàn)培訓(xùn)系統(tǒng)功能的基礎(chǔ),包括變電站設(shè)備三維建模和場景建模,精細化的建??梢允拐鎸嵶冸娬就昝缽?fù)現(xiàn)在虛擬場景中.
1) 設(shè)備三維建模主要包括變電站主設(shè)備模型、輔助設(shè)施模型、監(jiān)控室模型等.對于主設(shè)備模型,作為培訓(xùn)系統(tǒng)的重要模型,且由于結(jié)構(gòu)復(fù)雜、零部件較多,采用SolidWorks進行精細化建模;對于輔助設(shè)施、監(jiān)控室、圍墻等一些細節(jié)呈現(xiàn)要求不高的模型,通過3dsMax進行建模,利用其豐富的貼圖效果、強大的烘焙能力,使模型更接近于實際.
2) 場景建模主要包括地形建模和天氣建模.地形建模使用Unity3d中的Terrain組件[11],使用筆刷工具根據(jù)變電站實際情況繪制需要的地形,如高地、樹木、草坪、地面等;天氣建模主要使用Skybox插件進行天空制作,如晴天、雨天、黑夜等效果.
圖3 系統(tǒng)開發(fā)路線Fig.3 System development route
將搭建好的模型以“.FBX”格式導(dǎo)出,然后導(dǎo)入Unity3d中分類存放,形成模型庫,隨時選用.需要對模型進行單位的調(diào)整,避免尺寸放大后模型失真;若操作模型時,其軸向發(fā)生偏離,需要建立世界坐標系,重新在3dsMax中進行調(diào)整.建模流程如圖4所示.
圖4 仿真培訓(xùn)系統(tǒng)建模流程Fig.4 Modeling process of simulation training system
2.3.1 細節(jié)層次技術(shù)
由于變電站場景復(fù)雜,在實際測試中,軟件運行占用計算機內(nèi)存較大,導(dǎo)致畫面出現(xiàn)不流暢及卡頓現(xiàn)象.為了減少模型渲染的頂點數(shù)及三角面數(shù),本系統(tǒng)采用細節(jié)層次(levels of detail,LOD)技術(shù),LOD技術(shù)可以根據(jù)物體模型的節(jié)點在顯示環(huán)境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數(shù)和細節(jié)度,從而獲得更高效率的渲染運算[12].根據(jù)實際情況,變電站主設(shè)備如變壓器、斷路器、隔離開關(guān)、壓互、流互等設(shè)備為重要模型,在模型制作時,需完成幾種不同細節(jié)的模型.在現(xiàn)場中,配合攝像機,在近處使用細節(jié)較高的模型,在遠處使用細節(jié)較低的模型.圖5為Unity3d的LOD Group管理窗口,利用LOD Group組件來管理物體的LOD等級,通過Add按鈕為當前LOD等級設(shè)置網(wǎng)格對象,即不同細節(jié)的模型可以分別從LOD0、LOD1、LOD2和Culled設(shè)置網(wǎng)格對象,其中百分比值為物體在屏幕的高與屏幕高的比例.這樣當LOD發(fā)生變化時,就會使用不同的網(wǎng)格對象.圖6(a)和圖6(b)是使用LOD技術(shù)前后效果對比,可以看出使用LOD技術(shù)后,在進行漫游巡視時,視圖每一幀渲染時間從38.8 s下降至14.3 ms左右,大大減輕了計算機CPU處理壓力,畫面恢復(fù)清晰流暢.
圖5 LOD Group管理窗口Fig.5 LOD group management window
2.3.2 圖形幾何變換實現(xiàn)
三維圖形的幾何變換實質(zhì)上是利用三維坐標變換完成的,主要有圖形平移、旋轉(zhuǎn)定位、比例縮放3種重要變換.同二維幾何變換,三維圖形變換也是基于坐標原點和坐標軸進行的幾何變換,可以表示成空間中某點的齊次坐標與四階的三維變換矩陣相乘[13].設(shè)某點的三維坐標為P(x,y,z),經(jīng)過變換后坐標為P′(x′,y′,z′),其三維變換的矩陣形式為
P′=[x′y′z′ 1]=P·T3D=[xyz1]
(1)
根據(jù)在幾何變換中作用的不同,可將式(1)中的T3D進一步劃分成4個矩陣,見表1.
1) 若進行平移變換,點P的平移變換矩陣可表示為
P′=[x′y′z′ 1]=P·Tt=[xyz1]
(2)
2) 若進行旋轉(zhuǎn)變換,點P繞z軸進行旋轉(zhuǎn)時,其z坐標不變,x,y坐標可由二維點繞原點旋轉(zhuǎn)公式得到,變換矩陣可表示為
P′=[x′y′z′ 1]=P·TRZ=[xyz1]
(3)
在虛擬現(xiàn)實系統(tǒng)開發(fā)中,圖形幾何變換占有重要的地位[14].本系統(tǒng)中,設(shè)備學(xué)習(xí)模塊中的拆分組合功能很好地應(yīng)用了平移變換和旋轉(zhuǎn)變換原理.學(xué)員可以使用鼠標拖動變壓器組成構(gòu)件進行拆分和組合操作,熟悉變壓器結(jié)構(gòu)和原理,在相應(yīng)模塊上按住拖動會旋轉(zhuǎn)模塊,使學(xué)員360°全方位觀察組件結(jié)構(gòu),并配以文字進行講解.圖7(a)為組合后變壓器模型,圖7(b)為拆分后變壓器模型.
2.3.3 人機交互功能開發(fā)
良好的人機交互界面可以為用戶提供極大的方便,也是軟件開發(fā)的基本要求[15].Unity3d平臺提供了UGUI系統(tǒng),內(nèi)嵌了豐富的標準GUI插件,在開發(fā)時可以方便在Inspector視圖中編輯GUI控件的外觀和屬性,同時也可以掛載相應(yīng)的控制腳本[16].對于變電站的GUI界面設(shè)計,不僅僅是簡單的界面設(shè)計,而是利用腳本掛載、坐標轉(zhuǎn)換、碰撞檢測、聲音加載、場景轉(zhuǎn)換等方法將設(shè)備參數(shù)、動畫模擬、功能演示、視頻聲音和專業(yè)知識展示給用戶,實現(xiàn)人機交互.圖8是系統(tǒng)模擬演練模塊中倒閘操作功能,受訓(xùn)人員根據(jù)操作指令點擊按鈕來控制隔離開關(guān)和斷路器,完成倒閘操作,具體流程如圖9所示.
圖6 使用LOD技術(shù)前后渲染占CPU內(nèi)存情況Fig.6 CPU memory of rendering before and after using LOD technology
表1 分矩陣及功能
圖7 拆分組合功能Fig.7 Functions of splitting and combining
圖8 倒閘操作模擬演練Fig.8 Simulation exercise of switching operation
對系統(tǒng)性能測試和功能測試是檢驗軟件優(yōu)劣的重要標志.在4臺配置不同的計算機中安裝此軟件進行實測,主要對頁面跳轉(zhuǎn)速度和系統(tǒng)流暢度進行測試,培訓(xùn)系統(tǒng)性能測試結(jié)果見表2,可以看到4臺主機畫面流暢度均滿足動畫30幀/s的最低值要求,該系統(tǒng)可安全可靠地運行在此配置的電腦上.將系統(tǒng)發(fā)布成“.exe”格式文件并運行,進行功能測試.
系統(tǒng)加載成功后,進行注冊和登錄,在各模塊進行功能驗證,并逐步完善系統(tǒng).
圖9 倒閘操作功能流程圖Fig.9 Flow chart of switching operation function
表2 培訓(xùn)系統(tǒng)性能測試
結(jié)合實際項目,構(gòu)建了桌面式變電站虛擬仿真培訓(xùn)系統(tǒng).以模塊化的設(shè)計思路,采用了虛擬現(xiàn)實技術(shù)和圖形變換技術(shù),實現(xiàn)了變電站總體介紹、設(shè)備學(xué)習(xí)、漫游巡視、模擬演練、答題考核、故障重現(xiàn)等六大基本功能.通過性能測試和功能測試,該軟件穩(wěn)定可靠,系統(tǒng)交互界面良好,將枯燥的理論教學(xué)用逼真的三維模型和三維場景代替,激發(fā)了學(xué)員的學(xué)習(xí)興趣,提高了培訓(xùn)效率,降低了培訓(xùn)成本和培訓(xùn)周期,具有良好的現(xiàn)實意義及推廣價值.后續(xù)將繼續(xù)在預(yù)留接口進行沉浸式培訓(xùn)系統(tǒng)的開發(fā),更進一步提高學(xué)員的臨場感.