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