周琪琪, 孫建平
(華北電力大學 控制與計算機工程學院,河北 保定 071003)
風力發電作為一種可再生能源,其有效利用對于資源的可持續發展、環境的保護等方面有著相當大的作用。近幾年來,隨著國家對風力發電產業的支持與重視,風電場數量不斷增加,風電市場前景越來越好[1]。但與此同時,風電人才緊缺的問題日益突出,因此提高風電技術人員的專業能力成為當務之急。目前,對于風電工作人員的培訓還處于比較落后的階段,培訓方式存在過于理論化,缺乏實用性,培訓內容單一、形式單調等缺點。在這樣的背景下,將虛擬現實技術應用到培訓中,可以形成更加直觀生動、理論聯系實際的教學方式,使學員身臨其境,從而更好的掌握相關技能[2]。虛擬現實技術,又稱靈境技術,是以沉浸性、交互性和構想性為基本特征的計算機高級人機界面。它利用了多學科的技術,例如仿真技術、計算機圖形學、接口技術和網絡技術等,從而使人能夠對虛擬世界進行視覺聽覺等方面的感知,同時還可以進行實時交互,具有廣闊的應用前景[3,4]。我國在虛擬現實技術研究方面起步較晚,但是隨著國家的重視,最近幾年取得了一些成果。陳奇朋等人將三維建模技術、虛擬場景搭建技術、可視化交互技術、網絡連接等與電力作業相結合,構建了電力作業虛擬仿真培訓系統[5];高龍等人提出了一種基于虛擬現實的火電站設備管理系統,將三維設備數據庫與MIS系統相連,通過運行數據實現設備的狀態檢修[6];楊中亞等人開發了一套基于虛擬現實的輸電線路巡視仿真培訓系統,該系統采用C/S架構,使用Windows操作系統和SQLservers數據庫,將實際工作流程與計算機軟硬件相結合[7]。在風電領域,基于虛擬現實技術的仿真產品取得了一定的成績。閻光偉等人建立了集風電機組結構三維仿真、設備運行仿真、虛擬人巡檢等于一體的風電虛擬系統[8],任巖等人提出了基于3D虛擬現實技術的風電場全數字化巡檢及監測平臺的構建方案[9]。
基于虛擬現實技術的風電仿真培訓系統是集風機三維場景、功能仿真、遠程監控和過程檢修模擬等于一體的培訓教學平臺,并通過實時數據關聯各平臺一體,進行實時數據交互和展示。結構圖如圖1所示。在此系統中,學員可以自由漫游整個風電場,同時可以使用鼠標任意選擇并對風電機組的設備(如發電機、葉片等)進行旋轉,了解其內部結構,學習主要設備的拆裝、檢修以及維護等;并可以進行遠程監控,進行不同運行方式的仿真實驗等。

圖1 系統結構圖
功能仿真支撐平臺負責管理風電機組仿真模型的建立和運行,開展完整的風電機組及風電場仿真技術研究。在系統中開發了從風能到機械能到電能轉化的完整過程各類模型及相應控制對象的控制模型,完成設備模型仿真,如控制模型(如變流器模型、發電機模型等)、周邊電網模型、升壓站模型等。
三維可視仿真支撐平臺負責管理3D運維仿真模型的開發及運行。在該平臺中完成了風機主要設備三維模型建立,包括葉片模型、低速軸模型、齒輪箱模型、高速軸模型、發電機模型、控制柜模型等。
集中監控系統是仿真實際風電場中央監控系統操作員站界面的仿真系統,能夠控制和操作風電機組啟動并網、正常運行、故障等過程,監視機組各種參數的變化情況,并可形成各種運行曲線[10]。
三維檢修培訓平臺負責在虛擬場景中,對學員進行理論、檢修等方面的培訓。在此平臺中完成了維護庫、圖紙庫、故障庫、拆裝庫、檢修庫、工具庫及原理庫等功能模塊的開發。
在開發風電虛擬現實仿真培訓系統時,首先要對虛擬場景進行搭建,盡可能地模擬真實的風電場。虛擬場景的搭建步驟如下:
(1)三維建模:三維模型是虛擬現實系統的基礎模型。風力發電機組是一種大型的結構復雜的設備,在風機建模的過程中,為了使所建立的三維模型具有高精度的仿真立體效果,需要采集現場真實數據,整理相關文檔、視頻等,同時參考大量的三視圖、實物照片、剖面圖等多種類型資料,對風電主要設備如葉片、低速軸、齒輪箱等進行建模[11]。建模所用軟件為3ds Max。在3ds Max中,可以從點、線、面等進行模型繪制,圖形操作方便靈活。具體建模流程如圖2所示。

圖2 建模流程圖
(2)模型導出:將3ds Max中模型導出為FBX格式的文件,然后將FBX文件導入Unity 3 d系統。根據實際風電場場景,調整這些模型的地理坐標、大小、朝向等。同時為了使系統場景明亮,更具有真實感,需要做一些模型渲染、燈光設置、場景調整等工作[12]。場景設置流程圖如圖3所示。

圖3 場景設置流程圖
在虛擬場景中,將模型與實時數據庫、歷史數據庫相鏈接,實現信息交互,從而使工作人員更好的監視風力發電機組的運行狀態、參數信息等。圖4、圖5分別為傳動鏈三維模型、風電機組虛擬現實模型。

圖4 傳動鏈三維模型圖

圖5 風電機組虛擬現實模型圖
(3)場景優化:由于風電機組設備較多,若在場景中任何時刻都采用高精度顯示,會增加unity負擔,因此為了優化unity性能使其在使用過程中更加順暢,系統使用了攝像機分層距離剔除技術。此技術為小物體標識層次,然后根據其距離主攝像機的距離判斷是否需要顯示[13]。
在此系統中,使用LODGroup組件設置了風機設備的LOD層級及所對應的模型,LOD:0所對應的模型精度最高,后面的數字越大代表模型精度越低,移動到culled插件,模型消失。同時為了使視覺效果更好,需要設置LOD精度的偏移數值,使過渡更平緩。最后根據攝像機與風機間的距離改變透明值,從而控制機艙內部設備的顯示。部分代碼如下:
void ChangeAlpha()
{
BoxMat.material.SetFloat(“_TestVal”, AlphaFloat);
if (Dis >=15)
{
BoxMat.gameObject.SetActive(true);
AlphaFloat -=0.03f;
if (AlphaFloat <=0)
AlphaFloat=0;
}
else if (Dis < 15)
{
AlphaFloat +=0.03f;
if (AlphaFloat >=1)
{
AlphaFloat=1;
BoxMat.gameObject.SetActive(false);
}
}
}
虛擬拆裝即在虛擬場景中,對設備進行拆裝操作。風力發電機組有很多零部件,結構復雜,虛擬拆裝能使學員高效的學習設備相關知識,提高培訓質量[14]。在系統中,學員通過鼠標點擊模型,同時拖拽模型至鼠標松開的位置,從而實現拆卸。實現的主要步驟為:
(1)三維拾取要拆卸的模型。三維拾取的方法有很多種,本文使用鼠標點擊的方法來完成拾取操作。該方法符合用戶習慣,人機交互良好。物體拾取流程如圖6所示。
通過調用Unity中的API函數進行射線構造以及碰撞檢測,從而拾取物體。其中包括Ray(射線)、Raycasthit(碰撞信息)、Raycast(Ray,outRaycasthit)函數等[15]。

圖6 物體拾取流程
(2)在transform組件和vector3類型數組變量分別保存拆卸模型、模型當前位置,并使用數組變量序號控制拆卸的邏輯順序[16]。
(3)為該拆卸模型添加拖拽腳本,腳本通過類型值返回,實時檢測并計算模型與點擊位置的偏移量,重新為模型位置賦值,最后完成拆卸。拆裝圖如圖7所示。

圖7 發電機拆裝圖
場景漫游在虛擬現實培訓系統中具有重要作用。在此系統中,通過編寫腳本加載在攝像機上,設置鼠標的右鍵來進行場景的旋轉,鍵盤的6個按鍵(Q鍵、E鍵向上、向下移動,A鍵、D鍵向左、向右移動,W鍵、S鍵向前、向后移動)進行不同方向的移動,操作方式簡單方便,可以使用戶在虛擬場景中進行自由漫游[17,18]。以右鍵旋轉為例,部分程序如下:
using UnityEngine;
using System.Collections;
public class CameraController:
MonoBehaviour
{
public float sensitivityX=5f;
public float sensitivityY=5f;
void Update ()
{
if (Input.GetMouseButton(1))
{
float rotationX=Input.GetAxis(“Mouse X”) * sensitivityX;
float rotationY=Input.GetAxis(“Mouse Y”) * sensitivityY;
transform.Rotate(-rotationY, rotationX, 0);
}
}
}
在此系統中,設有關鍵設備的培訓,點擊設備會彈出圖片,學員可以通過圖片的學習了解設備結構以及工作原理。為了能更好的實現人機交互,學員可以滑動鼠標滾輪控制圖片大小[19]。設定圖片放大縮小的范圍,利用unity中的API函數實現滾輪對圖片放大或縮小的實時控制,當向后滾動時,縮小圖片,直到最小設定值;當向前滾動時,放大圖片,直到最大設定值。
在控制腳本調用了響應函數(Input.GetAxis(
(“Mouse ScrollWheel”)),通過float類型值返回,向前滾是返回正數,向后滾是返回負數。向前滾動代碼如下:
if (Input.GetAxis(“Mouse ScrollWheel”) > 0)
{
if(image.transform.parent.localScale.x < 5
image.transform.parent.localScale=new Vector3
(image.transform.parent.localScale.x + 0.2f, image.transform.parent.localScale.y + 0.2f, image.transform.parent.localScale.z + 0.2f);
if (image.transform.parent.localScale.x >=5)
image.transform.parent.localScale=new
Vector3(5, 5, 5);
}
(1)學習功能:在虛擬系統中有維護庫、圖紙庫、故障庫、拆裝庫、檢修庫、工具庫及原理庫等功能模塊。用戶在虛擬場景中,可以學習設備各主要零部件的基礎理論知識、結構構造和電氣原理圖(如塔基柜、塔筒)等,掌握設備的拆裝、檢修、維護等,同時可以了解常用維護工具,使用戶掌握基本維修技能[20]。
(2)實時數據監測功能:與實時數據集成,在三維場景下觀看風機實時狀態參數,如功率大小、風速大小、無功功率數值、實際風向等。
(3)仿真功能: 能針對用戶模擬檢修完成后,通過觀察設備運行情況,來檢查檢修方法是否適當。
(4)交互功能:用戶可以在虛擬環境中實現交互操作,包括放大、縮小、旋轉、漫游等。
(5)考核功能:能夠進行理論和檢修操作考核,用戶可以檢驗學習效果,鞏固知識。
(6)管理功能:能夠實現系統維護管理、題庫管理、權限管理等功能。
本文通過完成對系統架構的設計、虛擬場景搭建、虛擬拆裝、交互控制等問題的處理,系統終于搭建成型。基于虛擬現實技術的風電仿真培訓系統做到了將虛擬與實際結合,讓用戶在虛擬中就能更好的掌握風電知識。根據80后、90后員工的特點,在培訓形式上采取更為生動、直觀的三維模式,引入了類似游戲的場景設計理念,提高培訓的趣味性,變被動受訓為主動學習,從而能有效的提高培訓效果。同時可將本系統推廣到一些院校進行教學合作,把該成果用于高等院校的學生學習,具有較好的推廣價值。