王大虎 寧彤
摘? 要: 基于虛擬仿真的思想,以電機(jī)教學(xué)設(shè)備為原型,使用3dsMax和Unity3D軟件設(shè)計(jì)開(kāi)發(fā)電機(jī)實(shí)驗(yàn)仿真教學(xué)系統(tǒng),實(shí)現(xiàn)結(jié)果表明,該系統(tǒng)交互性能良好,能對(duì)設(shè)備結(jié)構(gòu)和實(shí)驗(yàn)原理進(jìn)行直觀的展示,幫助學(xué)生理解內(nèi)容抽象的知識(shí),同時(shí)也能提供給學(xué)生不限時(shí)間的使用學(xué)習(xí),有效地提高了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效率。
關(guān)鍵詞: 電機(jī)實(shí)驗(yàn); Unity3D; 虛擬仿真; 3ds Max
中圖分類號(hào):TM33? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2022)05-48-04
Application of virtual reality technology in motor experimental teaching
Wang Dahu, Ning Tong
Abstract: Based on the idea of virtual simulation, taking the motor teaching equipment as a prototype, a motor experimental teaching system is designed and developed with 3ds Max and Unity3D. The results show that this system has a good interaction and can visually display the device structure and experimental principles, which effectively improves students’ learning interest and learning efficiency.
Key words: motor experiment; Unity3D; virtual reality; 3ds Max
引言
電機(jī)作為一種機(jī)電能量轉(zhuǎn)換或信號(hào)轉(zhuǎn)換的電磁機(jī)械裝置,既可生產(chǎn)電能也能產(chǎn)生機(jī)械能,用以滿足生產(chǎn)生活需要,電機(jī)因此特性在國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域中起到了極其重要的作用。
電機(jī)學(xué)課程具有較強(qiáng)的工程性,理論知識(shí)的學(xué)習(xí)必須依據(jù)工程實(shí)際,但傳統(tǒng)教學(xué)以文字、圖片和視頻為主,教材大多較為成熟系統(tǒng)化,結(jié)構(gòu)圖高度符號(hào)化,理論學(xué)習(xí)較為困難。現(xiàn)階段實(shí)驗(yàn)教學(xué)多為引領(lǐng)式,雖在一定程度上確保了實(shí)驗(yàn)的科學(xué)客觀性以及操作安全性,但是對(duì)于學(xué)生自主學(xué)習(xí)習(xí)慣的養(yǎng)成缺乏引導(dǎo)[1]。針對(duì)傳統(tǒng)教學(xué)方式單一化的問(wèn)題,張文娟等[2]提出借助多媒體技術(shù)在原有基礎(chǔ)上進(jìn)行改革,增加了二維、三維動(dòng)畫部分,實(shí)現(xiàn)了理論和實(shí)物教學(xué)的結(jié)合,但該方法交互性較差。2018年董立巖教授[3]借助Unity3D開(kāi)發(fā)平臺(tái)設(shè)計(jì)開(kāi)發(fā)了基于Unity3D的電機(jī)拖動(dòng)實(shí)驗(yàn)仿真系統(tǒng),該系統(tǒng)為解決實(shí)驗(yàn)的危險(xiǎn)性和教學(xué)成本高等問(wèn)題提供了一種較好的思路。虛擬現(xiàn)實(shí)(VR)技術(shù)綜合了多門技術(shù),拓寬了人機(jī)交互通道,提高了圖像信息的認(rèn)知度,體現(xiàn)了多媒體技術(shù)的進(jìn)步[4]。
綜上,虛擬現(xiàn)實(shí)技術(shù)展現(xiàn)出高集成性和強(qiáng)交互性,因此在教育培訓(xùn)行業(yè)有著極大的發(fā)展?jié)摿Γ疚慕柚撻T技術(shù),使用3ds Max和Adobe PhotoShop軟件搭建電機(jī)實(shí)驗(yàn)室場(chǎng)景,在Unity3d平臺(tái)上借助C#編程語(yǔ)言開(kāi)發(fā)系統(tǒng)交互腳本[5],借助該電機(jī)虛擬仿真教學(xué)系統(tǒng),較好的解決了教學(xué)上設(shè)備受限的問(wèn)題[6]。
1 電機(jī)實(shí)驗(yàn)仿真教學(xué)設(shè)計(jì)
1.1 實(shí)驗(yàn)選材
開(kāi)發(fā)電機(jī)教學(xué)系統(tǒng),應(yīng)首先進(jìn)行實(shí)物設(shè)備素材拍攝。本文選用電機(jī)實(shí)驗(yàn)教學(xué)常用設(shè)備DDSZ-1型電機(jī)及電氣技術(shù)實(shí)驗(yàn)裝置,該裝置可用于變壓器空載和短路實(shí)驗(yàn);直流電動(dòng)機(jī)起動(dòng)、調(diào)速;異步電動(dòng)機(jī)基本性能診斷檢查等實(shí)驗(yàn)。
1.2 實(shí)驗(yàn)教學(xué)系統(tǒng)的設(shè)計(jì)過(guò)程
1.2.1 實(shí)驗(yàn)教學(xué)系統(tǒng)的模塊設(shè)計(jì)
該實(shí)驗(yàn)教學(xué)系統(tǒng)的設(shè)計(jì)初期目標(biāo)在于使學(xué)生對(duì)電機(jī)實(shí)驗(yàn)原理、設(shè)備結(jié)構(gòu)有更加深入的了解,借助新興技術(shù)手段提高學(xué)習(xí)興趣。該實(shí)驗(yàn)室系統(tǒng)初步設(shè)計(jì)如下四個(gè)模塊[7]。
⑴ 場(chǎng)景漫游模塊。在搭建的虛擬實(shí)驗(yàn)室場(chǎng)景中進(jìn)行漫游,在該場(chǎng)景下實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室環(huán)境以及實(shí)驗(yàn)設(shè)備外形結(jié)構(gòu)的近距離觀察。
⑵ 三維動(dòng)畫模塊。該模塊旨在以動(dòng)畫視頻的形式講解實(shí)驗(yàn)原理和實(shí)驗(yàn)步驟,并展示實(shí)驗(yàn)開(kāi)始前的基本工作內(nèi)容。
⑶ 實(shí)驗(yàn)設(shè)備拆裝模塊。該模塊用于實(shí)驗(yàn)開(kāi)始前對(duì)本次實(shí)驗(yàn)所需用到的實(shí)驗(yàn)設(shè)備進(jìn)行結(jié)構(gòu)、參數(shù)以及主要用途的了解,可以對(duì)工作原理有更加直觀的認(rèn)知。
⑷ 實(shí)驗(yàn)操作模塊。該模塊用以學(xué)生自主進(jìn)行實(shí)驗(yàn)操作練習(xí),該模塊下會(huì)有系統(tǒng)自動(dòng)提示實(shí)驗(yàn)操作重難點(diǎn)以及操作注意事項(xiàng),在保證操作的規(guī)范性基礎(chǔ)上,給與學(xué)生最大程度上的自由操作空間。
1.2.2 設(shè)計(jì)流程
虛擬試驗(yàn)系統(tǒng)各模塊及總體設(shè)計(jì)流程如圖1所示,首先收集和整理有關(guān)電機(jī)實(shí)驗(yàn)的資料,如設(shè)備照片、內(nèi)部結(jié)構(gòu)、實(shí)驗(yàn)原理和操作步驟等,然后使用3ds Max軟件對(duì)實(shí)驗(yàn)設(shè)備進(jìn)行初步建模及模型優(yōu)化,再結(jié)合資料對(duì)實(shí)驗(yàn)步驟、實(shí)驗(yàn)原理部分進(jìn)行動(dòng)畫制作,最后將處理好的模型導(dǎo)入U(xiǎn)nity3D中,并完成整個(gè)系統(tǒng)的交互功能設(shè)計(jì)和系統(tǒng)UI頁(yè)面設(shè)計(jì)[8]。
2 實(shí)驗(yàn)室三維建模
本文中描述的虛擬電機(jī)實(shí)驗(yàn)室場(chǎng)景主要包括實(shí)驗(yàn)設(shè)備模型、實(shí)驗(yàn)臺(tái)模型以及實(shí)驗(yàn)室環(huán)境模型。建模過(guò)程中需要遵照一定的操作規(guī)范,這樣才能夠確保建模精度,以此增強(qiáng)虛擬實(shí)驗(yàn)室環(huán)境的真實(shí)感。
下面以DDSZ-1型電機(jī)及電氣技術(shù)實(shí)驗(yàn)裝置為對(duì)象,對(duì)三維建模進(jìn)行簡(jiǎn)單介紹。
2.1 使用3ds建立模型
3ds Max軟件作為美國(guó)Autodesk旗下的一款基于PC端的三維動(dòng)畫制作軟件,旨在通過(guò)逼真的三維模型和強(qiáng)大的物理引擎來(lái)實(shí)現(xiàn)對(duì)真實(shí)環(huán)境的模擬,該軟件具備強(qiáng)大的功能板塊,且操作簡(jiǎn)單、容易上手,因此應(yīng)用廣泛,隨著時(shí)代的發(fā)展,該軟件也逐漸應(yīng)用于教學(xué)領(lǐng)域。三維建模需要做到力爭(zhēng)還原實(shí)物細(xì)節(jié),確保模型能夠在視覺(jué)效果上與實(shí)物相近[9]。圖2所示為DDSZ-1型實(shí)驗(yàn)裝置。
建模的基本步驟:首先觀察分析物體的結(jié)構(gòu),對(duì)復(fù)雜物體進(jìn)行各部件單獨(dú)建模,對(duì)單一結(jié)構(gòu)物體可進(jìn)行整體建模。第一步根據(jù)設(shè)備部件外形選擇相應(yīng)的基礎(chǔ)幾何體,如長(zhǎng)方體、圓柱體等,根據(jù)實(shí)際比例設(shè)置參數(shù)的大小;第二步按照層級(jí)結(jié)構(gòu)優(yōu)先順序先從較大部件進(jìn)行建模,即將該部分幾何體轉(zhuǎn)換成可編輯多邊形,并通過(guò)頂點(diǎn)、邊線等不同操作層級(jí)對(duì)幾何體進(jìn)行擠出、倒角等修改,不斷調(diào)整參數(shù)以達(dá)到實(shí)際物體的外觀形狀;最后將各部分組件進(jìn)行位置移動(dòng)和旋轉(zhuǎn)等操作,還原真實(shí)物體結(jié)構(gòu)。已建模型如圖3所示。
2.2 優(yōu)化處理
由初步模型圖可見(jiàn),雖然完成了對(duì)設(shè)備外形的還原,但為了增強(qiáng)使用過(guò)程的真實(shí)感,還需對(duì)模型進(jìn)行優(yōu)化處理:
⑴ 對(duì)模型文件賦予材質(zhì)貼圖,要增加模型的真實(shí)感,需要對(duì)模型的細(xì)節(jié)部分進(jìn)行貼圖處理,這里使用PhotoShop軟件對(duì)設(shè)備實(shí)物進(jìn)行貼圖裁取并做出優(yōu)化處理,將貼圖通過(guò)材質(zhì)球賦予到模型表面;適當(dāng)調(diào)整模型本身的光照效果,增設(shè)局部光源和整體光源,改變自身光反射參數(shù),使模型更具真實(shí)感。優(yōu)化處理后的模型如圖4所示。
⑵ 優(yōu)化處理后的模型具有更真實(shí)的視覺(jué)效果,但對(duì)細(xì)節(jié)的過(guò)度刻畫會(huì)使模型的面數(shù)陡增,在導(dǎo)入U(xiǎn)nity3D中會(huì)出現(xiàn)卡頓的情況,因此需要對(duì)模型部分面做遮擋剔除,并借助烘焙技術(shù)[10]將模型外觀細(xì)節(jié)加到簡(jiǎn)化處理過(guò)的模型上,保證模型精度的基礎(chǔ)上保證系統(tǒng)流程運(yùn)行。
3 三維場(chǎng)景交互
3.1 基于Unity3D平臺(tái)的人機(jī)交互
選用Unity3D引擎作為系統(tǒng)交互開(kāi)發(fā)平臺(tái),因?yàn)閁nity作為Unity Technologies開(kāi)發(fā)的跨平臺(tái)游戲引擎,對(duì)圖形渲染管道做出了高度的優(yōu)化改進(jìn)設(shè)計(jì),其最大的好處是允許配置較低的硬件設(shè)備實(shí)現(xiàn)流暢的場(chǎng)景漫游、交互式動(dòng)畫等,且能夠構(gòu)造出高質(zhì)量的三維仿真系統(tǒng)和沉浸感更強(qiáng)的模擬體驗(yàn)環(huán)境。模型搭建完成后,將其轉(zhuǎn)換成FBX格式文件,導(dǎo)入U(xiǎn)nity3D平臺(tái),設(shè)計(jì)人機(jī)交互,從而完成預(yù)期目標(biāo)。實(shí)驗(yàn)室模型導(dǎo)入U(xiǎn)nity3D平臺(tái)的效果圖如圖5所示。
3.2 碰撞檢測(cè)技術(shù)
文中的系統(tǒng)交互包括對(duì)實(shí)驗(yàn)原理以及實(shí)驗(yàn)過(guò)程等內(nèi)容的三維展示、使用者拾取實(shí)驗(yàn)設(shè)備進(jìn)行單獨(dú)拆裝觀察操作。前者使用按鈕以及文本框組件,并編寫腳本即可實(shí)現(xiàn)相應(yīng)功能,而后者涉及到物體間的接觸,需要借助碰撞檢測(cè)技術(shù)[11]對(duì)使用者的操作行為進(jìn)行實(shí)時(shí)計(jì)算檢測(cè),防止出現(xiàn)交互時(shí)虛擬物體之間相互穿透的異常現(xiàn)象,例如場(chǎng)景漫游時(shí)“穿越”墻體和地面等,并能選中物體對(duì)其進(jìn)行拆裝和結(jié)構(gòu)觀察。
Unity3D中的碰撞檢測(cè)基于層次包圍盒算法,主要分為AABB立方體邊界框檢測(cè)、OBB定向包圍盒以及包圍球三種。針對(duì)本文中的實(shí)驗(yàn)室模型,層次包圍盒法通過(guò)使用構(gòu)造簡(jiǎn)單且體積略大于模型的長(zhǎng)方體作為包圍盒,碰撞檢測(cè)時(shí),系統(tǒng)實(shí)時(shí)分析計(jì)算包圍盒與物體之間的相交情況,綜合考慮系統(tǒng)運(yùn)行環(huán)境,AABB邊界框檢測(cè)算法在保證系統(tǒng)交互時(shí)碰撞檢測(cè)計(jì)算的一定準(zhǔn)度的前提下,實(shí)時(shí)計(jì)算量較小,能夠在硬件設(shè)備條件有限的環(huán)境下流暢運(yùn)行。
3.3 虛擬交互腳本程序
在Unity3D中要想實(shí)現(xiàn)交互功能,不僅需要給模型物體添加相關(guān)組件,同樣需要編寫相關(guān)的運(yùn)行程序,該系統(tǒng)使用C#語(yǔ)言進(jìn)行交互腳本程序的編寫。
整個(gè)系統(tǒng)中最重要的交互功能體現(xiàn)實(shí)現(xiàn)使用者對(duì)設(shè)備結(jié)構(gòu)、參數(shù)信息等進(jìn)行觀察了解。通過(guò)移動(dòng)和旋轉(zhuǎn)物體可實(shí)現(xiàn)拾取和拆裝設(shè)備,實(shí)現(xiàn)該功能的部分代碼如下:
void Update()
{ if (Input.GetMouseButton (0))
//表示獲取鼠標(biāo)左鍵作為輸入值,用以選中并移動(dòng)物體
{ //將屏幕坐標(biāo)轉(zhuǎn)化成世界坐標(biāo)
Vector3 temp=Camera.main.ScreenToWorldPoint
(new Vector3(Input.mousePosition.x, Input
.mousePosition.y, 10));
transform.position=temp;
}
else if (Input .GetMouseButton (1))
//表示獲取鼠標(biāo)右鍵作為輸入值,用以旋轉(zhuǎn)物體
{ //getaxis("mouse x")獲取鼠標(biāo)移動(dòng)的距離
x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
y = ClampAngle(y, yMinLimit, yMaxLimit);
Quaternion ratation = Quaternion.Euler(y, x, 0);
transform.rotation = ratation;
}
else if (Input.GetAxis ("Mouse ScrollWheel")!=0)
{ //鼠標(biāo)滑動(dòng)滾輪 縮放所選物體
if (Input.GetAxis ("Mouse ScrollWheel")<0)
{ //范圍值限定
if (Camera.main.fieldOfView <= 100)
Camera.main.fieldOfView += 2;
if (Camera.main.orthographicSize <= 20)
Camera.main.orthographicSize += 0.5f;
}
if (Input.GetAxis ("Mouse ScrollWheel")>0)
{ //范圍值限定
if (Camera.main.fieldOfView > 2)
Camera.main.fieldOfView -= 2;
if (Camera.main.orthographicSize >= 1)
Camera.main.orthographicSize -= 0.5f;
}
}
4 系統(tǒng)測(cè)試與發(fā)布
在系統(tǒng)設(shè)計(jì)完成之后,需要對(duì)系統(tǒng)性能進(jìn)行測(cè)試,圖6所示為系統(tǒng)主頁(yè)面,根據(jù)系統(tǒng)設(shè)計(jì)需求分為四個(gè)模塊:場(chǎng)景展示模塊、實(shí)驗(yàn)設(shè)備展示模塊、設(shè)備裝拆模塊和工作原理模塊[12]。通過(guò)點(diǎn)擊各模塊窗口,進(jìn)入其展示模塊。測(cè)試后各模塊功能基本滿足設(shè)計(jì)要求。
系統(tǒng)測(cè)試完后,在Unity3D中在Project視圖下進(jìn)行Assets資源包的打包,在Build Setting中進(jìn)行發(fā)布配置,借助Unity軟件強(qiáng)大的系統(tǒng)兼容性可以滿足該系統(tǒng)在各大平臺(tái)下的運(yùn)行。
5 結(jié)束語(yǔ)
VR技術(shù)的不斷更新發(fā)展為實(shí)驗(yàn)教學(xué)和電力行業(yè)培訓(xùn)帶來(lái)了極大的便利,本文借助強(qiáng)大的3ds Max建模軟件和Unity3D開(kāi)發(fā)引擎,構(gòu)建了一個(gè)較為完整的虛擬電機(jī)實(shí)驗(yàn)室場(chǎng)景,并設(shè)計(jì)實(shí)現(xiàn)了基礎(chǔ)的人機(jī)交互,在一定程度上彌補(bǔ)了傳統(tǒng)教學(xué)方法單一、偏重于理論教學(xué)和實(shí)際操作教學(xué)部分課時(shí)較短等缺陷,很好的利用了VR這一高新技術(shù)手段,為工科學(xué)生的實(shí)驗(yàn)教學(xué)環(huán)節(jié)增添了趣味性,并在最大程度上避免了因場(chǎng)地和設(shè)備使用時(shí)間受限而導(dǎo)致學(xué)習(xí)勁頭不高的問(wèn)題,從而提高學(xué)習(xí)熱情和學(xué)習(xí)效率。
參考文獻(xiàn)(References):
[1] 宋戰(zhàn)鋒,劉濤.《電機(jī)學(xué)》教學(xué)方法改革探究[J].中國(guó)電力教育,
2021(1):66-67
[2] 張文娟,張志剛.多媒體技術(shù)在《電機(jī)學(xué)》中的改革與實(shí)踐[J].
中國(guó)電力教育,2017(8):71-73
[3] 董立巖,王越群,李永麗.基于Unity3D的電機(jī)拖動(dòng)仿真系統(tǒng)[J].
吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2018,36(5):456-459
[4] 周前祥,姜世忠,姜國(guó)華.虛擬現(xiàn)實(shí)技術(shù)的研究現(xiàn)狀與進(jìn)展[J].
計(jì)算機(jī)仿真,2003(7):1-4,93
[5] 王大虎,陳俠,高會(huì)爭(zhēng).虛擬現(xiàn)實(shí)技術(shù)在PLC燃?xì)忮仩t培訓(xùn)系
統(tǒng)中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2017,29(12):3010-3015
[6] 李舒明.虛擬現(xiàn)實(shí)VR技術(shù)在實(shí)訓(xùn)教學(xué)中的創(chuàng)新應(yīng)用[J].海
峽科技與產(chǎn)業(yè),2018(8):85-87
[7] 閆紀(jì)紅,張奮揚(yáng).虛擬可重組制造系統(tǒng)仿真優(yōu)化模塊開(kāi)發(fā)[J].
實(shí)驗(yàn)室研究與探索,2013,32(7):81-86,98
[8] 殷復(fù)鵬,鄧曉紅,張雷.基于模塊化的虛擬仿真實(shí)驗(yàn)室建設(shè)[J].
實(shí)驗(yàn)技術(shù)與管理,2020,37(6):259-262
[9] 王大虎,高會(huì)爭(zhēng),陳俠.基于Quest3D的變電站仿真培訓(xùn)系統(tǒng)[J].
中國(guó)電力,2016,49(9):62-65
[10] 李永強(qiáng),牛路標(biāo),楊莎莎,等.大型仿古建筑三維精細(xì)建模方
法研究[J].河南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,34(5):640-644
[11] 和莉,劉惠義.碰撞檢測(cè)技術(shù)在三維交互漫游系統(tǒng)中的應(yīng)用[J].
計(jì)算機(jī)技術(shù)與發(fā)展,2006(6):92-94
[12] 李婷婷,余慶軍.虛擬交互系統(tǒng)開(kāi)發(fā)及關(guān)鍵技術(shù)研究[J].計(jì)
算機(jī)技術(shù)與發(fā)展,2017,27(12):124-127
收稿日期:2021-05-25
作者簡(jiǎn)介:王大虎(1969-),男,江蘇徐州人,博士,副教授,主要研究方向:虛擬現(xiàn)實(shí)技術(shù)。
通訊作者:寧彤(1997-),男,河南人,河南理工大學(xué)電氣工程碩士研究生,主要研究方向:虛擬現(xiàn)實(shí)技術(shù)。