宋小鵬,何秀錦,古小敏,吳國(guó)珊,王斌武
(桂林航天工業(yè)學(xué)院 能源與建筑環(huán)境學(xué)院,廣西 桂林 541004)
傳統(tǒng)實(shí)驗(yàn)課內(nèi),實(shí)驗(yàn)內(nèi)容受限于實(shí)驗(yàn)設(shè)備. 而信息時(shí)代,虛擬現(xiàn)實(shí)的發(fā)展彌補(bǔ)了傳統(tǒng)實(shí)驗(yàn)課的不足,在線虛擬實(shí)驗(yàn)可以不受實(shí)驗(yàn)場(chǎng)地、學(xué)時(shí)、人數(shù)、設(shè)備等條件的影響,甚至成本更低廉. 近十幾年,越來越多教育工作者探討虛擬仿真技術(shù)在一些實(shí)驗(yàn)教學(xué)中的應(yīng)用[1-7]. 由于早期Flash覆蓋面廣,很多高校探討使用Flash作為工具開發(fā)在線虛擬實(shí)驗(yàn)[5-7]. 隨著Adobe公司對(duì)Flash技術(shù)支持接近尾聲,且Flash對(duì)三維支持不夠全面,越來越多的在線虛擬實(shí)驗(yàn)使用了WebVR技術(shù)[8-14]. 熊燕帆等探討了VR技術(shù)在實(shí)訓(xùn)教學(xué)中的應(yīng)用[8],羅凱輝[9]基于WebGL與增強(qiáng)現(xiàn)實(shí)技術(shù)開發(fā)了虛擬化學(xué)實(shí)驗(yàn)室,何麗[10]等探討了WebGL技術(shù)在機(jī)械制圖網(wǎng)絡(luò)授課中的應(yīng)用,郭神福[11]等基于WebGL技術(shù)實(shí)現(xiàn)了在線高速列車運(yùn)行虛擬仿真,邊金龍[12]等利用WebGL三維可視化技術(shù)實(shí)現(xiàn)了交通監(jiān)控管理系統(tǒng),馮姣[13]等使用WebGL框架Three.js實(shí)現(xiàn)了飛行仿真系統(tǒng),何博[14]等使用WebGL技術(shù)開展了三維物理模型設(shè)計(jì). 由于2020年的疫情導(dǎo)致線下實(shí)驗(yàn)教學(xué)中斷,一些高校開展了線上虛擬實(shí)驗(yàn)[15-17],以貫徹“停課不停學(xué)”的指導(dǎo)思想.
但目前基于VR頭盔/眼睛式設(shè)備的線上實(shí)驗(yàn)平臺(tái)成本較高,尚不便于大面積推廣,而且開發(fā)相關(guān)應(yīng)用及三維建模需使用專業(yè)軟件,開發(fā)周期長(zhǎng),學(xué)習(xí)成本較高,不利于疫情期間快速搭建線上虛擬實(shí)驗(yàn)平臺(tái). 在線的基于裸眼虛擬現(xiàn)實(shí)的實(shí)驗(yàn)平臺(tái)相對(duì)而言更加適合開展線上實(shí)驗(yàn)教學(xué). 本文以流體力學(xué)實(shí)驗(yàn)為例,探究利用WebGL開發(fā)線上裸眼虛擬實(shí)驗(yàn)平臺(tái).
WebGL(Web Graphics Library)是一個(gè)JavaScript的API,可用于在支持WebGL的瀏覽器中呈現(xiàn)高性能交互式3D與2D圖形,提供了與OpenGL ES 2.0接近的程序接口并易于支持硬件加速.)
由于HTML5具備良好的跨平臺(tái)性能,選擇WebGL進(jìn)行三維可視化程序開發(fā),從而規(guī)避了不同操作系統(tǒng),不同設(shè)備的適配問題. 基于WebGL開發(fā)的程序,對(duì)于學(xué)生用戶只需要支持HTML5標(biāo)準(zhǔn)的瀏覽器即可開展線上虛擬實(shí)驗(yàn),而對(duì)于開發(fā)者而言只需要開發(fā)一套程序就能夠支持在各主流操作系統(tǒng),同時(shí)支持各類主流電腦平板手機(jī).
為了培養(yǎng)學(xué)生的動(dòng)手能力,購置了某公司生產(chǎn)的流體力學(xué)綜合實(shí)驗(yàn)臺(tái),如圖1所示. 實(shí)驗(yàn)臺(tái)通過恒壓水箱,可更換試件管道、回水管、儲(chǔ)水箱等器件構(gòu)成了開路循環(huán)水系統(tǒng),其中儲(chǔ)水箱中使用潛水泵實(shí)現(xiàn)水路循環(huán). 恒壓水箱由潛水泵不斷提供水源,同時(shí)結(jié)合溢流回水管路共同保持水位恒定,以保障實(shí)驗(yàn)過程的基本條件恒定. 實(shí)驗(yàn)臺(tái)提供若干測(cè)壓管,以測(cè)量管路中的壓力. 多年使用經(jīng)驗(yàn)表明,該實(shí)驗(yàn)臺(tái)能夠較好地滿足學(xué)生實(shí)驗(yàn)需求,以培養(yǎng)學(xué)生動(dòng)手能力.
1.儲(chǔ)水箱 2.上水流量調(diào)節(jié)閥 3.溢流回水管4.恒壓水箱 5.溢流板 6.顏料供給系統(tǒng) 7.標(biāo)尺組8.測(cè)壓管固定背板 9.流量調(diào)節(jié)、切斷閥 10.計(jì)量水箱 11.回水管 12.實(shí)驗(yàn)桌(a)
(b)圖1 流體力學(xué)綜合實(shí)驗(yàn)臺(tái)結(jié)構(gòu)示意圖
例如測(cè)量局部阻力系數(shù)時(shí),可以更換突擴(kuò)突縮管道,根據(jù)測(cè)壓管數(shù)據(jù),流量和管道幾何尺寸等數(shù)據(jù)計(jì)算局部阻力系數(shù). 同樣的方法可以測(cè)量沿程阻力系數(shù),驗(yàn)證能量守恒方程等.
虛擬實(shí)驗(yàn)平臺(tái)按邏輯可抽象為4層,如圖2所示. 底層為Web服務(wù)器,提供網(wǎng)頁請(qǐng)求服務(wù). 第2層為WebGL引擎,本文選用開源項(xiàng)目three.js作為三維引擎. 第3層基于WebGL引擎,創(chuàng)建各類實(shí)驗(yàn)器材及三維動(dòng)畫. 第4層為用戶交互層,用于操作虛擬設(shè)備進(jìn)而完成實(shí)驗(yàn)操作步驟.
圖2 平臺(tái)架構(gòu)示意圖
為了讓線上虛擬實(shí)驗(yàn)比較接近真實(shí)實(shí)驗(yàn)過程,或者實(shí)驗(yàn)過程需要特別提醒學(xué)生注意事項(xiàng),實(shí)驗(yàn)過程設(shè)置了若干個(gè)步驟. 選擇安裝或更換實(shí)驗(yàn)所需部件,開啟總電源開關(guān),開啟水泵電源開關(guān),開啟閥門,等待各容器水位正常,迭代測(cè)壓管穩(wěn)定,記錄實(shí)驗(yàn)數(shù)據(jù),依次關(guān)閉系列電源和閥門.
設(shè)計(jì)了一系列動(dòng)畫,以使線上虛擬實(shí)驗(yàn)有較好的用戶體驗(yàn). 例如開啟閥門,閥門旋轉(zhuǎn);管道內(nèi)流體流動(dòng)通過,管道內(nèi)紋理移動(dòng)模擬流體流動(dòng);開啟電源和上水閥門后,潛水泵將水抽到恒壓水箱,水位達(dá)到可更換管道原件高度時(shí),管道流動(dòng)動(dòng)畫才開啟,同時(shí)測(cè)壓管內(nèi)液體高度開始上升,直到穩(wěn)定;設(shè)計(jì)動(dòng)畫使回水箱液位逐漸上升并保持恒定. 同時(shí),可以模擬閥門開度以實(shí)現(xiàn)管道內(nèi)流體的速度調(diào)節(jié),實(shí)現(xiàn)流體快速、中速、慢速的切換.
以沿程阻力和局部阻力系數(shù)測(cè)定說明實(shí)驗(yàn)演示. 流體在邊壁沿程無變化的管道內(nèi)流動(dòng)(均勻流)會(huì)伴隨有能量損失,由流體和管道壁面摩擦力或流體與流體間摩擦力造成的能量損失稱作沿程阻力損失;由管道突擴(kuò)、突縮、閥門等因素引起的能量損失稱作局部阻力損失. 1)沿程阻力系數(shù)測(cè)定使用圖1(b)中“雷諾”管道:實(shí)驗(yàn)過程中該管道左右兩側(cè)布置靜壓管,根據(jù)壓差結(jié)合達(dá)西公式計(jì)算局部阻力系數(shù);2)局部阻力系數(shù)測(cè)定使用圖1(b)中“突擴(kuò)突縮”管道:如僅測(cè)突擴(kuò)管局部阻力系數(shù),在突擴(kuò)管布置附近布置3個(gè)靜壓管,如圖3示意,根據(jù)測(cè)壓管讀數(shù)、管道物理尺寸、流速等參數(shù)計(jì)算突擴(kuò)局部阻力系數(shù).
實(shí)驗(yàn)完成后在主界面生成虛擬實(shí)驗(yàn)數(shù)據(jù),根據(jù)實(shí)驗(yàn)數(shù)據(jù)即可進(jìn)行數(shù)據(jù)處理,如圖3所示.
圖3 線上仿真實(shí)驗(yàn)示意
為了根據(jù)圖3中虛擬實(shí)驗(yàn)數(shù)據(jù),計(jì)算突擴(kuò)局部阻力系數(shù),將圖中的主要元件簡(jiǎn)化為圖4. 其中管道內(nèi)體積流量Q可測(cè),p表示壓強(qiáng),g和ρ分別表示重力加速度和流體密度.d1和d2是突擴(kuò)前后的管道直徑;點(diǎn)2位于點(diǎn)1和點(diǎn)3的中間,v1,v2和v3分別是對(duì)應(yīng)點(diǎn)的流速;h1,h2和h3分別是測(cè)壓管高度. 假設(shè)突擴(kuò)管局部損失水頭為hj,hf表示沿程損失的水頭,如點(diǎn)1到點(diǎn)2間的沿程損失水頭表示為hf12.
圖4 突擴(kuò)局部阻力計(jì)算
根據(jù)伯努利方程,得到
整理可得突擴(kuò)局部阻力系數(shù)為
其中各截面速度可以根據(jù)流量和相應(yīng)管道截面積計(jì)算,壓力可以根據(jù)測(cè)壓管道測(cè)得,hf13=2hf23,而hf23可根據(jù)測(cè)壓管高度相減得到,最終可以計(jì)算得到局部阻力系數(shù).
線上實(shí)驗(yàn)平臺(tái)使得學(xué)生能夠通過一系列操作步驟和動(dòng)畫演示加深對(duì)實(shí)驗(yàn)原理的理解. 而基于WebGL的線上實(shí)驗(yàn)平臺(tái)易于開發(fā)和部署,在疫情期間有效快速配合理論課. 對(duì)線上虛擬實(shí)驗(yàn)數(shù)據(jù)的處理,同樣也能對(duì)學(xué)生掌握理論知識(shí)有較強(qiáng)的促進(jìn)作用. 線上虛擬實(shí)驗(yàn)可用于預(yù)習(xí)實(shí)驗(yàn),通過虛擬實(shí)驗(yàn)平臺(tái)的手動(dòng)操作步驟,動(dòng)畫演示,學(xué)生能夠更好預(yù)習(xí)和理解實(shí)驗(yàn)內(nèi)容.