郭東辰,崔權維,王亞輝,崔岱曦,蘇浩楠
(新疆大學 機械工程學院,新疆 烏魯木齊 830047)
傳統的力學實驗教學不僅較難滿足學生獨立實驗的需求,而且成本較高,具有危險性。伴隨著我國高等教育事業的發展,這些現實問題更加嚴峻[1]。此外,在新型冠狀病毒導致的公共衛生危機中,如何消除線下教學阻隔、保證實驗教學環節的正常開展是當前亟待解決的問題。
目前應用于教學的虛擬仿真技術已較為成熟。國內已有一定數量的院校開發出與材料力學相關的虛擬仿真實驗系統[2]。Unity 3D是一種廣泛應用的實時內容開發平臺[3],用于創建多種可視化交互場景。在應用Unity 3D環境方面,大連海事大學的度紅望等實現了氣動虛擬實驗的開發[4];石家莊鐵道大學的郝孜奇等進行了鐵路實訓虛擬仿真系統開發[5]。C#可作為Unity 3D的腳本編程語言,在C#編程語言應用與開發方面,中國石油大學的萬勇等搭建了面向用戶的操作界面,研發出一套管道缺陷類型識別實驗系統[6]。此外,實驗系統的部分功能依賴于Windows窗體。在Visual Studio(以下簡稱VS)內可編寫Windows Forms Application項目(以下簡稱WinForms),并進行版面和組件設計。因此,在軟件開發過程中將Unity 3D和C#編程技術相結合,能夠使系統功能更加完備。以上高校開展的虛擬仿真實驗項目特色鮮明,但尚不能成熟應用于邊疆高校系統性的力學實驗教學中。為解決該問題,本文基于上述技術開發出一套沖擊韌性實驗虛擬仿真系統。其中軟件根據實體教學中獲取的數據樣本建立數學模型;通過觸發按鍵和動畫模擬功能,提高了系統的交互性和體驗感[7];實驗步驟示范和提示保證了教學的指導作用;選擇題模塊則可鞏固學生的學習成果。系統在各項功能得到實現的同時又不至過于復雜,便于安裝和投放至網站,對設備的版本、性能要求低。
沖擊韌性實驗需要在多個環節獲取數據,因此需要確定各個測量項目中數據的合理范圍和閾值,建立相關的數學模型。Random類是一種產生偽隨機數字的類,采用其構造函數New Random(),可用于生成指定范圍內的數值,不需要特別調用其他功能復雜的函數。為保證數據的精確性,還需將數據類型設置為雙精度浮點數。應用以上函數可在合理范圍內生成試樣的外部尺寸、截面尺寸和沖擊吸收功數據。
實驗中試樣的材料分別為塑性材料和韌性材料,故需要兩個功能相同的模板分別進行計算。
由于擺錘式沖擊試驗機不能直接讀出材料的沖擊韌性,需要將所得的沖擊吸收功數據進行處理,故須引入沖擊韌性計算的數學模型,即:
(1)
其中:αK為沖擊韌性;AK為試樣的沖擊吸收功;S0為試樣缺口底部處的橫截面積。該部分無需引入其他函數,直接在代碼中輸入運算符號即可。
基于SolidWorks 2016和Unigraphics NX設計視窗軟件,通過拉伸、切除和裝配等指令建立場景模型。其中試驗機支架、擺錘工作半徑、刀刃部分和試樣均根據標準GB/T 229—2007[8]確定規格,如圖1所示。

圖1 SolidWorks模型制作環節
為使實驗場景更貼近真實環境,借助KeyShot和3D Studio Max進行材質的渲染,如圖2所示。

圖2 KeyShot中場景渲染界面
為表現實驗的動態過程,借助3D Studio Max和Unity 3D進行動畫的制作[9],其主要步驟如圖3所示。

圖3 實驗動畫的制作流程
虛擬實驗系統的交互性設計高度依賴腳本的編寫,腳本是使用特定描述性語言、根據一定格式編寫的可執行文件。Unity的腳本化使開發效率得以提高,所以沖擊韌性實驗系統開發過程中使用C#語言編寫腳本,實現演示動畫的播放、鍵盤控制視角、鼠標拖拽物體和旋轉觀察實驗試樣等操作。系統交互性開發的實現方法如圖4所示。

圖4 虛擬實驗系統交互性的實現
以場景漫游為例,實現鍵盤按鍵控制系統操作的基本方法是:首先對UnityEngine命名空間進行引用, 并創建空物體和攝像機camera,將按鍵、空物體和攝像機綁定在一起;然后聲明變量 m_movSpeed等,限制視角移動速度;綁定Transform、GetAxis組件變量,賦予物體和視角的位置參數并使攝像機跟隨鼠標移動;最終使用GetKey組件,綁定鍵盤“W”、“S”、“A”、“D”和“Space”鍵,從而實現物體的“前”、“后”、“左”、“右”和“跳躍”動作[10-12]。
除場景漫游之外,系統還具備拖拽實驗用具的功能,以及對制作的動畫文件進行播放設置,使用戶操作時收到虛擬實驗現象反饋的功能。腳本代碼的編輯既可先在VS中進行然后導入Unity 3D的項目編輯器中,也可直接在Unity 3D內部使用MonoDevelop編輯器編寫。MonoDevelop是一種同時適用于Linux、Mac OS X和Windows系統的代碼集成開發環境。
實驗數據、課后測試部分和實驗器材交互相對獨立,使用VS創建WinForms應用程序和用戶界面,用該工具可直接對窗體的版面和功能進行設計,毋需編輯過多代碼?;镜牟僮鞣椒ㄓ型献ЫM件、編輯組件屬性和功能算法編寫等,將按鍵和文本框同程序聯系起來。
將窗體文件編輯完成后,需要通過腳本將這些文件與在Unity中的實驗界面對接。Graphical User Interface(以下簡稱GUI)也稱作圖形用戶界面,是指以圖形形式顯示的計算機操作界面。引用窗體文件時首先需要將窗體文件轉換為.exe格式,然后在腳本中創建一個GUI,再于實驗界面中制作一個button按鈕,最后在button下寫入讀取.exe文件的路徑。
沖擊韌性實驗虛擬仿真系統各項實驗模塊功能完整,與線下實驗內容保持一致,滿足了工程力學教學大綱的需要。該系統可劃分為五個部分,如圖5所示。

圖5 沖擊韌性虛擬仿真實驗菜單
“實驗原理”是實驗的理論基礎部分,內容介紹了實驗目的、沖擊吸收功和沖擊韌性的概念和測定方法。用戶只需點擊按鍵就能開始閱讀。
“實驗步驟”、“數據處理”、“課后習題”和“生成報告”屬于虛擬實驗部分,需要學生動手操作。點擊“實驗步驟”,按照文本框內的提示,通過點擊相應的模型觸發動畫模擬實驗過程,例如安裝試樣、啟動試驗機等。
試樣被試驗機擺錘沖斷后點擊菜單按鈕,系統通過窗體給出合理范圍內沖擊功的隨機值。學生獲得數據后,點擊“數據處理”,將所得數值填入表格中,系統將通過程序自動計算該材料的沖擊韌性。實驗操作界面如圖6和圖7所示。

圖6 測量試樣尺寸

圖7 沖擊吸收功測量界面
結束實驗操作,點擊“生成報告”即可導出一份可編輯的實驗報告,學生可根據需要進行完善、保存和打印。
實驗完成,學生可點擊“課后習題”按鍵進入課后鞏固環節,完成相關習題,系統將根據提交結果核算分數并給出正確答案供學生參考。
因某高校沖擊韌性實驗設備短缺,故于2020-2021學年第一學期,對五個教學班級115名學生使用該軟件進行沖擊韌性虛擬仿真實驗教學,通過提交實驗報告和整個實驗過程,學生反饋虛擬仿真實驗容錯率較高,操作更加方便,可以短時間內完成多項數據的處理,一致認為虛擬仿真實驗可以結合真實實驗,達到混合式實驗教學的目的。學生實驗報告得分統計如圖8所示。

圖8 學生實驗得分統計圖
本文在使用C#語言編程實現數據處理功能的基礎上,通過Unity 3D平臺建立了沖擊韌性虛擬仿真的數學模型,完成了場景模型、動畫的制作和系統交互性設計,制作的沖擊韌性虛擬仿真試驗系統具備交互性和沉浸感[13]。通過學生使用該仿真實驗平臺并反饋,結果表明該虛擬仿真實驗可調動學生的學習主動性和學習興趣,提高學生的動手能力和科研素養,又不失實驗本身的嚴肅性、科學性,同時能夠以較低成本達到教學目標[14]。針對邊疆高校力學實驗設備臺件數不足的現狀,改變思路,將線上線下的教學方式相結合,對于建設高等教育信息化、探索混合式實踐教學模式有較強的指導意義。