


摘要:針對雷達系統在教學實踐中受限于硬件資源條件的問題,搭建了基于Unity(一種游戲開發引擎)的雷達設備虛擬化教學平臺,提供了集教學、考試、綜合練習于一體的虛擬化教學實踐方案。結果表明,該平臺可以提高學生對雷達設備的認識和操作水平,降低實驗操作風險,具有良好的實際應用價值。
關鍵詞:雷達設備;虛擬化教學平臺;Unity
中圖分類號:TP319 文獻標識碼:A
0引言
二次雷達作為現代空中交通管制系統中的重要組成部分,極大地改善了空中管制環境,提高了管制效率[1-2]。為了更好地適應產業發展,越來越多的高等院校將雷達設備操作作為航空類專業的實踐內容之一。然而,雷達設備實踐教學環節受限于硬件資源條件,往往只能采用演示方式,教學效果不盡如人意[3-4]。
Unity 作為一款功能強大的跨平臺游戲開發引擎,不僅廣泛應用于游戲開發領域,也為虛擬現實和模擬程序的開發提供了強大的支持。Unity 豐富的應用程序編程接口和工具助力開發者打造沉浸式的交互體驗場景。因此,在虛擬教學平臺開發與應用中,Unity 常被用于創建基于真實場景的虛擬教學環境[5-7]。
本文根據雷達系統設備的實際組成,設計了基于Unity 的雷達設備虛擬教學平臺,并在平臺中規劃了雷達設備仿真教學課程和仿真操作考試,幫助學生深入理解雷達系統的工作原理和操作流程。
1 系統需求分析
1.1 功能需求分析
虛擬化教學平臺是在教學實踐資源有限的背景下設計的。其包含設備模擬仿真教學與操作實驗兩個部分,主要功能模塊有理論教學、操作教學、綜合考試、綜合操作、權限管理和教學分析。
(1)理論教學模塊利用文字、語音、圖片、視頻等信息媒介幫助學生了解系統的發展背景和工作原理,并對一些教學設備的用途、分類及其使用典型場景進行介紹。
(2)操作教學模塊利用一比一仿真設備模型對設備的外觀組成進行介紹,并通過操作設備的按鈕、旋鈕、撥片,觀察屏幕或設備指示燈的狀態改變,達到模擬真實設備操作的目的。
(3)綜合考試模塊通過安排理論考試和操作考試,檢驗學生的學習結果。理論考試可以直接通過評分檢驗學習成果,并將評分上傳到數據統計中心;操作考試以學生能否在規定時間內將設備修改至指定狀態判定其是否合格,并將判定結果上傳到數據統計中心。
(4)綜合操作模塊是在操作教學模塊的基礎上,整合所有的設備操作步驟,并去掉教學指引,讓學生可以對設備進行自由操作練習。
(5)權限管理模塊可以對用戶注冊登錄功能進行管理,系統設置多級權限,高級權限用戶可以對低級權限用戶的信息進行增加、刪除、修改、查詢等操作。
(6)教學分析模塊統計所有教學相關模塊的數據信息,并以圖表形式進行展示。
1.2 軟件運行環境
雷達設備虛擬化教學平臺由客戶端、服務端和數據庫服務器3 個部分組成。客戶端需考慮用戶方常用的操作系統,至少能滿足Windows 7 及以上操作系統運行;服務端由于需要長期不停機運行,通常選擇穩定的Linux 操作系統;數據庫服務器優先選擇開源且成熟穩定的產品。因此,雷達設備虛擬化教學平臺軟件運行環境如下。
客戶端:操作系統為Windows 7 及以上。
服務端:操作系統為CentOS 7 或者Ubuntu 18,運行環境為Node.js。
數據庫服務器:使用MySQL5.7 及以上管理系統。
2 系統設計
為了滿足虛擬教學平臺的設計需求,系統架構包括應用層、服務層和數據層,如圖1 所示。應用層面向用戶,提供理論教學、操作教學、綜合考試、綜合操作、權限管理和教學分析等核心功能模塊;服務層是應用層和數據層的橋梁,為應用層提供底層支撐,包括課程管理、數據管理、評分系統、用戶管理和日志管理等服務;數據層負責平臺數據的存儲和管理,包括用戶數據、課程數據和考試數據等。
3 數據表設計
虛擬教學平臺數據表包括用戶數據表、課程數據表、考試數據表、角色數據表、權限管理數據表和日志文件數據表等。本文僅對用戶數據表進行詳細設計和展示,其他數據表與其情況類似。
(1)用戶數據表用來存儲用戶信息,包括用戶ID、用戶名稱、用戶密碼、用戶注冊時間、學習進度、用戶考試分數和用戶角色,其中用戶ID 為用戶數據表的自增主鍵,如表1 所示。
(2)課程數據表用來存儲課程信息,包括課程ID、課程名稱、課程描述、課程數據配置文件路徑、課程教師ID、課程葉子結點標識符,其中課程ID 為自增主鍵。
(3)考試數據表用來存儲考試信息,包括考試科目ID、考試科目名稱、考試科目詳細描述、考試類別、考試總分、考試時長、考試數據配置文件路徑,其中考試科目ID 為自增主鍵。
(4)角色數據表用來存儲角色信息,包括角色ID、角色名、角色描述、權限ID,其中角色ID 為自增主鍵。
(5)權限管理數據表用來存儲權限信息,包括權限ID、權限名稱、權限描述、權限級別,其中權限ID 為自增主鍵。
(6)日志文件數據表用來記錄平臺操作日志,包括日志ID、日志記錄時間、操作人、記錄事件、事件類型、日志等級,其中日志ID 為自增主鍵。
4 功能模塊設計
理論教學模塊向用戶展示設備的理論知識教學。用戶登錄成功后進入該模塊,系統讀取理論教學數據配置文件,并加載對應的課程數據。用戶可以通過點擊“下一步”進入不同教學課程,直到完成全部課程結束學習。
操作教學模塊向用戶展示設備模型和教學文字信息。用戶登錄成功后進入該模塊,系統讀取操作教學數據配置文件,并加載對應的課程數據,用戶通過教學指引點擊“操作”完成不同的教學內容,直到完成全部課程內容結束學習。
綜合考試模塊向用戶展示考試信息。用戶登錄成功后點擊“綜合考試”進入該模塊,選擇想完成的考試類型:理論考試模塊讀取考試數據配置文件并隨機抽取考試題目,用戶需要在規定時間內完成考試題目,考試結束后可以查看考試分數、錯題,并可以選擇是否重新考試;操作考試模塊讀取考試數據配置文件并加載對應的設備模型,用戶在規定時間內完成指定操作即可通過考試,若未完成則提示考試未通過,用戶可以選擇是否重新考試。
綜合操作模塊在同一場景中向用戶展示多個設備如何聯動操作,用戶登錄成功后可以選擇綜合操作模塊,并根據自身需求對設備進行操作。
權限管理模塊為教師用戶和管理員用戶提供管理用戶信息的功能。教師用戶和管理員用戶在登錄后可以進入該模塊,對學生用戶的信息進行增加、刪除、修改、查詢等操作。
教學分析模塊向教師用戶展示了教學統計分析信息,包括學生在線人數、課程完成百分比、考試通過百分比、考試分數統計和學生學習時長等信息。
5 系統構建
5.1 場景跳轉
在虛擬教學平臺中,有許多教學和實踐場景,不同場景之間會有場景切換的需求。本文在開發時預設了多個場景,并采用全局單一實例的設計模式控制所有場景的跳轉,具體地,設置一個棧的數據結構存儲跳轉場景的標識符,通過將按鈕元素綁定點擊事件實現場景跳轉,并將跳轉前的場景標識符存入棧中,同時用一個變量保存當前的場景標識符。
在需要回退到前一個場景時,可以通過將回退按鈕綁定點擊事件,或者檢測鍵盤輸入并調用Input.GetKeyDown 函數判斷回退鍵是否按下,從而實現場景回退。在回退場景時,先隱藏當前場景,并清除當前場景下加載的游戲物體,再從棧中獲取棧頂的場景標識符,顯示并加載該場景下的游戲資源。為了避免場景跳轉時不同場景的加載與隱藏顯得過于突兀,可以在當前場景隱藏后調用協程函數,增加場景過渡動畫,使場景切換更為平滑。
5.2 碰撞檢測
碰撞檢測是虛擬教學平臺交互的核心,通過將模型和碰撞體進行綁定來實現對物體的操作。考慮到實際教學環節中常對設備采取按壓、點擊、旋轉、撥動撥片、插入讀寫卡等操作,對這類常用操作中可復用的物理運動邏輯和業務邏輯進行抽象并封裝,配合碰撞體可以實現對物體的操作。為了更好地控制物體的運動,采用DOTween 插件進行代碼編寫以實現物體的平滑運動。
5.3 狀態管理與消息訂閱
每臺教學設備都具有各自獨特的屬性,雖然將特定屬性分配給對應物體可以實現更低的耦合度,但在實踐中發現,由于不同設備聯動操作和狀態顯示需要它們之間進行交叉通信,在設備數量不斷增多的情況下,會導致項目維護難度越來越大。
借鑒web 開發的狀態管理機制,對項目的所有狀態進行統一管理,構建了一個可修改設備狀態的小型狀態管理中心,同時開發了消息訂閱模式。針對不同設備間共享狀態的情形,可以通過消息訂閱進行統一的狀態修改和通知,解決了單一設備狀態被修改而其他共享設備無法自動更新狀態的問題。
5.4 其他功能
實踐教學平臺還配置了一些其他用戶關心的教學資源,如設備的操作教學指南、可靈活配置的考試題庫等。本文通過遮罩層功能來實現設備的操作教學指引:在設備與攝像機之間增加一層遮罩,僅保留可以操作的物體部分;隨著操作的進行,通過隱藏與顯示指定的遮罩區域實現操作流程的指引。
可靈活配置的考試題庫是在教學環節中常見的需求。本文通過規定題庫的數據結構,讀取配置文件的方式加載題庫數據。為了避免考試中出現重復題目,用哈希表對選中的題目進行去重,最后生成試卷,從而實現靈活配置考試題庫的功能。
6 成果展示
在完成各個模塊的開發工作后,按照簡潔、明了、人性化的原則對平臺進行整體優化,并添加文字、箭頭等教學指引標注,同時對操作進度進行可視化反饋。
7 結語
本文基于Unity 開發了雷達設備的虛擬教學平臺,通過設計理論教學、操作教學、綜合考試、綜合操作、權限管理和教學分析6 個模塊,實現了雷達系統組成設備的虛擬化教學與操作練習。結果表明,本平臺有效提升了學生對雷達設備系統的整體認知水平,提高了學生實際操作能力,降低了實驗操作風險,同時使實踐教學擺脫了硬件資源的限制。