?

基于WPF的3D雷達終端界面設計

2023-10-12 07:22盧珊珊
火控雷達技術 2023年3期
關鍵詞:雷達站線程神經網絡

盧珊珊 王 明 李 哲

(西安電子工程研究所 西安 710100)

0 引言

雷達終端界面作為人機交互的一種。為用戶提供空中目標的航跡信息,實現重要軍事用途。同時要求長時間存儲和錄取雷達系統的各項指標數據。通過對數據分析可以檢測雷達系統的性能和運轉狀態。

本文設計的雷達終端軟件,考慮從以下四個方面提高用戶的人機交互體驗:

1)采用WPF做為軟件開發環境,達到最優圖形渲染效果;

2)使用3D Unity工具實現雷達產品的3D顯示,并通過狀態參數的綁定達到對雷達運行動作的同步映射,可更直觀地展現雷達站的當前運動狀態;

3)采用TensorFlow.Net搭建CNN神經網絡模型。運用軟件長時間采集的雷達站狀態參數做為訓練集(前定長時刻數據為輸入,當前時刻數據為輸出),對神經網絡模型進行離線訓練。使模型具備對未來狀態的預判功能。通過用預判信息和實際信息的比較達到對雷達站運行的健康監測功能;

4)通過System.Speech程序集,加入語音識別、翻譯和文本朗讀功能,進一步提高人機交互的生動性。

本文將從這四個方面安排章節進行描述。

1 WPF環境

WPF(Windows Presentation Foundation)[1]是微軟推出的基于Windows的用戶圖形呈像框架。目前已經是一個成熟的GUI框架,擁有自己的一套完整的生態并且被納入微軟長期穩定更新計劃。

WPF前端使用xmal語言,后端使用c#語言,前后端分離可以提供UI設計人員和邏輯設計人員的分工協作,高效完成軟件任務。這種前后端分離的優越性也被進一步運用到了網站設計工作中,前端html語言和后端javascript語言也逐步形成了一股潮流。

WPF最大特點是對矢量圖的超強支持,支持XPS和消鋸齒以及浮點類型的像素坐標,比GDI+更具優越性。所以用WPF做出的軟件外觀會特別美觀,這也正是WPF的強大之處。

2 三維顯示設計

2.1 Unity 3D 開發工具

3D Unity[2]是一款跨平臺的開發工具,適用于開發游戲、體驗、媒體內容及交互應用程序。3D Unity 包含了集成開發環境、實時3D開發技術、腳本編程、資源管理系統以及實時成像技術等功能,讓你可以實現自己想要的動態3D影像。3D Unity 的開發技術可以在多種平臺上運行,包括PC、移動設備和VR/AR等。是一個全面整合的專業游戲引擎。

3D Unity個人版提供免費學習使用。

在WPF中嵌入Unity引擎有以下幾種方法:

1)在WPF項目中創建一個控件,如System. Windows.Forms.Integration.ElementHost,用于與Unity應用程序進行通信。

2)將Unity項目編譯為Windows應用程序,并將其作為ElementHost控件的子級。

3)使用Unity API與WPF應用程序進行通信,以便在兩個應用程序之間共享數據和功能。

4)創建一個WPF窗口。該窗口將允許WPF應用程序訪問Unity應用程序的內容。

其中最快又能最大限度發揮Unity渲染速度的方法就是使用Unity API與WPF應用進行通信來實現三維模型的顯示。在Unity開發環境中,可以使用腳本程序,嵌入socket內容,可以把三維模型推薦做成客戶端(client),使用WPF程序做服務器端,通過網絡來控制三維模型的展示方式。

本文為了避免涉密內容,所以并沒有使用實際項目的三維模型,而是以一個虛擬模型代替實際雷達站外觀,模型如圖1所示。

圖1 模擬雷達站的三維模型

2.2 三維控制邏輯

fbx格式的三維模型可以導入到3DUnity環境中。在3D Unity端對虛擬雷達站三維模型進行骨架搭建。進一步把雷達站模型的天線部分、架設撤收機構和車體部分,分開成獨立部分并對每一個部分建立獨立坐標系。當腳本接收到相應控制命令時,可以使獨立部分完成繞指定坐標軸轉動,變換姿態等相對位置變化來展現實際雷達站工作中的空間狀態。

WPF軟件端使用包含所接收到的雷達天線方位、俯仰、架設撤收工作狀態等信息的網絡通信協議,與Unity腳本端進行定周期網絡通信。在腳本中應用數據綁定方法把雷達天線方位、俯仰數據與模型中的天線部分z坐標變換角度和x坐標變換角度建立數據綁定。當腳本接收到變化的方法、俯仰信息時,會自動更新模型相對坐標軸的位置變化角度,從而實現天線方位旋轉,俯仰高低角變化的展示。進一步控制三維雷達站模型完成架設、撤收、圓周掃描、目標位置跟蹤等雷達站的動作模擬。在架設撤收這種沒有指定變化參數的運動展示任務中,可以通過雷達站設計指定的架設撤收時間,建立指定時間的架設撤收動畫來展示。當對展示的同步性有嚴格要求時,也可通過網絡轉發(或使用組播)把實際雷達站數據發送給Unity三維模型,腳本將直接解析雷達站協議,模型將依照實際雷達站的運動,實時復現雷達站正在進行的運動,實現雷達站動作的實時監控。比如,雷達站正在做目標跟蹤動作,雷達站本身上報的天線位置信息可以通過終端轉發給Unity三維模型,這樣模型的相對位置和雷達站的天線運動位置可以保持一致。就可以實現實際雷達站狀態到三維模型的映射,位置信息是很基礎的雷達站信息,通常PPI或者圖表就可以反映其影響效果,同時可以將雷達站的其他信息比如升降架設、調平、油機狀態等復雜信息都映射到三維模型上,通過通信使模型呈現一個特殊狀態或警告狀態,這對于終端技術和操控管理都是具有深遠意義的。

本文軟件界面如圖2所示,對三維模型中的模塊添加材質和貼圖描述,再加入光線配置。得益于3DUnity強大的渲染功能,可以得到較好的模型展示效果。

圖2 軟件界面圖

終端作為人機交互的一種形式,以控制命令下發和顯示設備信息反饋為作用。三維技術不僅可以提升終端軟件的觀感體驗,還可以更直觀地反映設備信息和動態影響,可以促進終端技術面向更高質量方向發展。

3 健康管理

設備健康管理[3]技術主要由計算機軟件和硬件相結合而成,它能夠檢測設備的運行情況,以及發現可能的故障,并及時采取合理的措施來維護設備的健康和安全性。它可以根據設備的工作復雜情況,實時調整設備的參數,以提高設備的性能和可靠性。此外,它還可以通過遠程監控和管理,實現設備的自動化管理。它還可以通過數據分析,發現設備的性能問題,從而改善設備的質量和可靠性。

在WPF環境下有適用于C#語言的基于.NET的開源人工智能庫,如Accord.NET或者Encog可以調用。此外還可選擇,如Microsoft Cognitive Toolkit或Keras的API來構建神經網絡模型。本文僅采用TensorFlow.Net訓練CNN神經網絡模型,來實現對雷達站數據的建模和訓練。TensorFlow.NET是SciSharp STACK團隊做的一個開源機器學習平臺,集成了大量API和底層封裝,使TensorFlow的Python代碼風格和編碼習慣可以無縫移植到.NET平臺。特別適合C#語言的WPF來應用。

本文對雷達站搜索、扇掃、跟蹤工作模式,分別做了神經網絡建模,因為單一工作狀態下數據不會有很大變化,建模所需的神經網絡單元數也會相對少一些。每種工作模式使用一種神經網絡,可以得到較好的預測精度。訓練結果如圖3所示。

圖3 扇掃模式下訓練精度圖

圖3中train對應的曲線為模型訓練曲線。把一段長時間扇掃模式下的數據分組,每11個連續時刻數據為一組進行隨機抽取。每組前10個時刻數據做為輸入,第11個時刻數據做為輸出,以達到根據前10個時刻數據預測下一時刻數據的功能。用隨機抽取的1萬個數據組做為訓練集,在剩下的數據組隨機抽200組來測試訓練的效果,做為測試集。圖3中test對應測試曲線。訓練曲線的精度是訓練集的輸入,經過模型得到的輸出與對應訓練集結果的比較誤差,而測試曲線的精度是測試集的輸入,經過模型得到的輸出與測試集結果的比較誤差??梢钥吹接柧毲€的誤差和測試曲線的誤差都在隨著訓練樣本數的增加而減小,并最終維持在一個很小的誤差范圍內。經過大量的數據訓練和合理的神經網絡拓撲結構設計,最終可以使兩條曲線重合并維持在很小的誤差內。

4 語音識別和翻譯工具

微軟針對.NET應用推出了System.Speech[5]程序集,即語音合成程序集,可以將文本轉換成口語通過程序播放出來,同時還具備語音識別能力,可以將話筒捕捉到的口語轉換為文本。當引入System.Speech程序集后,在 System.Speech.Synthesis 命名空間中的 SpeechSynthesizer 類可以朗讀安裝語言庫對應的段落,可以豐富人機交互的生動性,同時配合SpeechRecognitionEngine類來監聽語音命令,可以在程序里直接轉換成字符串,經過簡單語義分析處理就可以當作指令命令直接下發??梢詭砀鷦拥牟僮黧w驗。

5 多線程數據處理

多線程[6]多數用在實時操作系統中。像Windows這樣的非實時操作系統通常是通過分配時間碎片(CPU時間的基本單元)并進行輪詢來實現多線程的。其實這種多線程是異步運行的。在避免線程之間數據競爭的前提下,本文終端軟件分別為網口通信線程、數據錄取線程、健康監測線程和目標信息解析線程。而神經網絡的訓練運算是作為觸發事件,對保存數據的文件進行數據訓練刷新健康監測線程里的神經網絡參數。語音識別也是做為觸發事件按需要進行響應。得益于WPF獨特的數據綁定機制,可以把后臺數據和前臺圖形進行綁定,來做到同步更新,所以數據顯示功能都是通過數據綁定實現的,并不占用過多線程任務。

在多線程應用中,為了避免發生數據競爭??梢允褂肅#下WaitOneEevent來分時觸發并行任務,進一步保證了程序的線程安全。本文軟件中的線程框圖如圖4所示。

圖4 多線程框圖

如圖4所示,本軟件的主線程是通信線程。優先輪詢網絡通信數據的接收,在數據不丟失的情況下可以下發對雷達站的控制命令,并進行數據錄取。神經網絡的訓練線程并行預測新狀態,如果網絡接收的新狀態數據和預測狀態存在很大差距,則提示故障。語音服務作為觸發式線程。模型訓練線程也是觸發性的執行用保存下的數據進行神經網絡模型訓練工作,并同步更新模型用于健康監測。

6 結束語

本文測試了用神經網絡單元組成的模型可以實現狀態參數曲線的預測。但是本文的神經網絡是分模式建立的,即用單一工作模式下的數據訓練該模式下的神經網絡模型,對于不同模式下的健康監測使用對應模式下的神經網絡進行狀態監測。對于工作模式切換帶來的擾動采用延時判斷或門限回避。因此在工作模式切換時容易出現較大預測誤差。所以希望在以后的工作學習中可以通過神經網絡的合理規劃,來應對工作狀態改變時的數據準確預測需求。

猜你喜歡
雷達站線程神經網絡
神經網絡抑制無線通信干擾探究
淺談linux多線程協作
基于神經網絡的拉矯機控制模型建立
復數神經網絡在基于WiFi的室內LBS應用
基于支持向量機回歸和RBF神經網絡的PID整定
雷達站
紫帽山雷達站防雷系統幾個關鍵參數分析
基于上下文定界的Fork/Join并行性的并發程序可達性分析*
Linux線程實現技術研究
么移動中間件線程池并發機制優化改進
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合