杜猛 王大虎
摘 要:電氣設備培訓中,因電氣設備結構復雜、工作過程抽象,導致學生不易理解,一直是教學難點。為此,以斷路器為例,基于Unity3D開發引擎,運用C#腳本語言和UI框架設計,對斷路器培訓系統進行設計與開發,對斷路器分類、結構、拆裝和工作原理進行了展示。該系統交互性好,培訓人員理解方便,且可隨時隨地進行培訓,重復利用成本低廉。
關鍵詞:Unity3D;斷路器;交互性;UI框架設計
DOI:10. 11907/rjdk. 182163
中圖分類號:TP319 文獻標識碼:A 文章編號:1672-7800(2019)005-0102-04
Abstract: In the current training of electrical equipment, it has been the teaching hard point that students can hardly understand the complex structure of electrical equipment and abstract work process. In view of this difficulty, this paper takes the circuit breaker as an example, and uses the C# scripting language and UI framework design to design and develop the circuit breaker training system based on the Unity3D development engine. The classification, structure, disassembly and assembly and working principles of the circuit breaker and demonstrated. The system is of good interactivity, convenient for trainers to understand, and can be trained anytime and anywhere, and it has low recycling cost.
Key Words: Unity3D; circuit breaker; interactivity; UI framework design
0 引言
斷路器作為電力系統不可或缺的設備之一,其作用是對電力系統中的各種設備進行保護,當某一部分突發故障時,啟動其它裝置(如保護裝置等),將故障部分快速從系統中切除,使事故損失降到最低[1-3]。但是當前對斷路器的培訓還是傳統教學,以書本知識、教師講解為主。這樣的教學缺乏生動、形象性,不能很好地對斷路器內部結構、動作原理進行展示,而且有些斷路器頻繁拆開會導致其密封性下降,影響開斷性能。
針對傳統斷路器教學存在的問題,由伊永飛、朱遠達[4]提出的斷路器多媒體教學軟件,以文字、圖片、聲音、視頻、二維、三維動畫形成教學流程,實現了理論講解整體和內部結構講解、實際操作錄像相結合的培訓功能,但是該方法交互性較差,培訓人員難以產生身臨其境的感覺。王永生[5]將SF6斷路器應用在實訓教學中,結合實物、掛圖和三維動畫對斷路器進行講解,但費用較高。
本文設計的斷路器培訓系統,基于Unity3D開發引擎,通過3Ds Max軟件和Photoshop軟件建立三維場景,采用C#腳本語言作為開發交互語言,對斷路器的結構和工作原理實現了動態展示,不僅動態展示效果好,而且交互性強,培訓效果良好[6-7]。
1 系統概述
1.1 系統框架設計
開發斷路器培訓系統,首先要在變電站和電氣設備制造工廠對斷路器進行取景。通過3Ds Max軟件建立模型,采用Photoshop軟件對模型通過貼圖進行優化處理,導出為Unity3D兼容FBX格式,然后將模型導入Unity3D中,通過燈光、攝像機等完成培訓系統場景設計[8]。系統設計斷路器分類、設備信息、設備結構、設備工作原理4個模塊,通過UI界面設計和C#腳本語言進行開發,生成易于理解、操作簡單、結構清晰的高壓斷路器虛擬培訓系統[9]。總體設計流程如圖1所示。
2 虛擬培訓系統實現
2.1 三維建模
三維模型是高壓斷路器培訓系統的基礎模塊,選用3Ds Max軟件設計。該軟件有良好的兼容性,可通過安裝插件實現增設功能,除此之外該軟件上手容易、門檻比較低[10]。
在對斷路器模型進行建模時,必須嚴格按照所拍攝的模型圖片進行,本文以110kVLW型六氟化硫為例闡述建模過程。六氟化硫斷路器一般由基座、導電部分、滅弧單元、絕緣部件、操作機構、電氣控制和傳動元件等部分構成。在創建斷路器模型時,要認真觀察斷路器整體結構,注意各部分之間的比例,從基座開始制作,由基座大小確定其余各部分大小比例[11-12]。基座為軸對稱圖形,建造時可先建造一半,另一半通過鏡像操作得到,然后通過附加操作讓兩者變為一個圖形,最后通過點焊連接在一起。選用長方體對其中一半進行制作,將長方體通過點擊右鍵選擇轉換為可編輯多邊形。在制作模型時要注意在不影響整體形狀的情況下盡可能減少模型面的個數,以方便后期處理避免卡頓。通過選擇點、線、邊界、面等,進行一定的擠出、縮放、光滑等操作得到大致模型,然后通過連接、切角等操作進行細化,最后經過NURMS轉換得到和模型照片相像的模型。基座模型如圖2所示。
支持絕緣件由瓷柱、瓷套管、絕緣管等構成。制作支持絕緣件時,以圓柱體為主體(注意高度分段,一般選為1),選擇圓柱體的側邊所有邊進行卡線,卡好的線每隔一條選擇一條,經過循環后進行選擇并均勻縮放就可得到絕緣子的大致模型。各支持絕緣件都是一模一樣的,按住Shift+移動可進行復制,得到其它支持絕緣件。支持絕緣件如圖3所示。
除上述系列操作外,在面不夠光滑時給選中的面一個光滑組就可解決此問題。對建好的模型進行貼圖,通過PS軟件,把模型圖片拖進PS中,通過鋼筆工具進行摳圖,把摳出來的圖建立新的圖層,隱藏其它圖層,調出標尺,按Ctrl+T調出圖片變形對話框,按住鼠標右鍵選擇斜切,通過拖拽點形成想要的圖片,最后保存為PNG格式,以便在3Ds Max中貼圖使用。在3Ds Max中選定進行貼圖的面,通過材質編輯器在漫反射中選擇貼圖圖片應用到選擇面上,勾選視口中顯示明暗處理材質即可[13-14]。有時圖形是不規則的,需要在修改器列表中選擇UVW貼圖命令,在貼圖列表中選擇不同的選項進行操作,包括對齊方式等。操作機構如圖4所示。
2.2 模型導入平臺
Unity3D作為一款兼容性非常強大的引擎,支持多種格式文件,包括從3Ds Max中導出的FBX格式文件[15]。首先選擇導出為FBX格式,在下拉菜單的嵌入媒體進行勾選,否則把FBX導入到Unity中時模型是沒有貼圖的。如果一一在Unity中進行貼圖是一件很麻煩的事。然后把FBX格式的文件拖入到Unity中的Project中,注意文件夾名字的取用,方便后期查找。把Project中的模型文件拖入到Hierarchy就可在Scene中顯示模型[16-17]。模型導入Unity的圖片如圖5所示。
2.3 UI界面設計
系統界面采用Unity3D自帶的UI界面實現,創建界面步驟如下:首先在Hierarchy窗口中點擊鼠標右鍵,選擇UI選項,選擇Canvas(畫布)選項,在Canvas上點擊右鍵,在列表中選擇Image選項(注意UI圖片只在Canvas下才能看到)。然后在Asserts中導入一張作為背景的圖片,此時要在該圖片的Inspector中把TextureType類型改為Sprite(2D and UI),因為只有這種類型的圖片才能放到Image組件中[18]。直接將圖片拖入到Image的SourceImage中,就可將圖片渲染出來,得到想要的結果。
2.4 虛擬交互腳本設計
Unity3D支持多種編譯腳本,本文以C#語言對斷路器培訓系統進行交互設計。
通過編寫C#腳本,用鼠標對斷路器進行各種操作,不僅對斷路器進行移動、旋轉、從多方位觀察,還可對斷路器的拆裝過程及斷路器工作原理進行展示 [7,19]。
用鼠標右鍵對模型進行旋轉、鼠標滑輪滾動拉近模型、鼠標中鍵按住拖動模型部分腳本如下:
void Update ()
{
//平移旋轉
if(Input.GetMouseButton(1))
{
x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
y = ClampAngle(y, yMinLimit, yMaxLimit);
var rotation = Quaternion.Euler(y, x, 0);
var position = rotation * new Vector3(0.0f, 0.0f, -normalDistance) + CameraTarget;
transform.rotation = rotation;
transform.position = position;
//縮放
}else if (Input.GetAxis("Mouse ScrollWheel") != 0)
{
normalized = (transform.position - CameraTarget).normalized;
if (normalDistance >= MouseZoomMin && normalDistance <= MouseZoomMax)
{
normalDistance -= Input.GetAxis("Mouse ScrollWheel") * MouseWheelSensitivity;
}
if (normalDistance < MouseZoomMin)
{
normalDistance = MouseZoomMin;
}
if (normalDistance > MouseZoomMax)
{
normalDistance = MouseZoomMax;
}
transform.position = normalized * normalDistance;
//拖拽
}else if(Input.GetMouseButtonDown(2))
{
screenPoint = Camera.main.WorldToScreenPoint(target.transform.position);
offset = target.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
if(Input.GetMouseButton(2))
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
target.transform.position = curPosition;
}
transform.LookAt(CameraTarget);
}
3 效果展示
系統包含設備分類、設備信息、設備結構、設備工作原理4個部分, 設備分類介紹了斷路器的分類標準和日常生活中常見的斷路器[20]。設備信息展示當前選用設備的一些基本信息,比如設備名稱、額定電壓、額定電流、額定短路開斷電流等。設備結構展示當前的斷路器立體結構,包括各部件名稱。設備工作原理展示斷路器進行開斷電流時的動作過程,包括滅弧裝置進行滅弧的過程。效果界面如圖6所示。
4 結語
針對傳統教學方法的不足,借助unity3D這款支持多種腳本語言開發、兼容多種操作系統、易學易用、擁有超高效能的強大物理引擎,設計開發了基于unity3D的斷路器培訓系統,突破了傳統教學方法單一、只注重理論知識學習等缺陷,很好地將虛擬現實技術運用到電氣設備的培訓中。該培訓系統對斷路器的動態展示效果好、逼真度高,對了解和學習斷路器非常實用。
參考文獻:
[1] 胡頔,卓杰彬,王青云,等. 隔離斷路器在新一代智能變電站中的作用[J]. 電氣開關,2016,1(1): 83-85.
[2] 楊凌霄,朱亞麗. 基于概率神經網絡的高壓斷路器故障診斷[J].電力系統保護與控制,2015,43(10): 62-67.
[3] 史宗謙,賈申利. 高壓直流斷路器研究綜述[J]. 高壓電器,2015,51(11):1-9.
[4] 伊永飛,朱遠達. 高壓斷路器多媒體教學軟件的開發與應用[J]. 黑龍江電力,2010,32(5): 343-345.
[5] 王永生. SF6斷路器在實訓教學中的應用[J]. 中國電力教育, 2008,4(3): 245-247.
[6] 陳俠,王大虎,王敬沖,等. 基于Unity3D的PLC教學實訓平臺研究[J]. 軟件導刊, 2016, 15(10): 111-114.
[7] 王佳和,李龍華. 基于Unity3D的水輪機檢修培訓系統研究[J].自動化技術與應用,2015,34(9):98-102.
[8] 黃靜,張紅忠. 3dsMAX在虛擬現實中的應用[J].測繪與空間地理信息,2013,36(2):12-126.
[9] 相茂英,馬純永,韓勇. 基于Unity3D的化工設備虛擬培訓系統研究[J]. 計算機技術與發展,2014,24(7):196-200.
[10] 王大虎,盧正帥,賈倩. 基于Unity3D的恒壓供水虛擬實訓教學裝置開發[J]. 軟件導刊,2017,16(8):100-102.
[11] 王大虎, 史艷楠, 陳文博. 基于3DMAX和Premiere的煤礦安全培訓系統[J]. 煤礦安全, 2014, 45(12): 230-232.
[12] 李鴻. 3dsMAX建模技術分析[J]. 邢臺學院學報,2009,24(4):106-107.
[13] 黃躍成. PS軟件在效果圖后期制作中的作用[J]. 信息與電腦,2016(13): 113-114.
[14] 溫曉紅. 試析PS軟件在效果圖后期制作中的應用[J]. 數字技術與應用,2017(3):125-126.
[15] 周鵬,支雄飛,楊敏,等. 基于3dsMax與Unity3D三維海底場景建模[J]. 安徽電子信息職業技術學院學報,2014,1(13):14-17.
[16] 王星捷,李春花. 基于Unity3D平臺的三維虛擬城市研究與應用[J]. 計算機技術與發展,2013,23(4):241-244.
[17] 劉金明,馬鐵民,王娜. 基于Unity3D的電動機虛擬仿真展示平臺設計[J]. 黑龍江八一農墾大學學報,2014,26(3):66-69.
[18] 許琛. UI界面設計在視覺傳達設計專業教學中的應用研究[J]. 科教導刊, 2016, 3(12): 98-99.
[19] 陳育濱,曾玉珠. 基于Unity3D平臺的Web3D展示[J]. 電腦編程技巧和維護, 2012,1(12): 11-12.
[20] 謝天宇,吳馨,岳明奕. 基于Unity3D的變壓器仿真虛擬培訓平臺設計[J]. 企業技術開發,2015,34(14):166-167.
(責任編輯:杜能鋼)