剡熠琛 李雅梅 拜兵虎
(西安電子工程研究所 西安 710100)
某跟蹤雷達作為某武器系統中的一個單體,與其他單體之間通過CAN總線進行通信,因為總線上單體較多,CAN總線分配給雷達的只有兩幀數據。在雷達樣機研制以及調試過程中,涉及到信號處理、微波前端、伺服系統等多個分機,為了能夠在雷達調試過程中及時發現問題、解決問題,僅用兩幀CAN內容是不夠的,額外增加CAN命令可能增加總線負擔、引起系統混亂。
因此,為了兼顧雷達單體調試以及武器系統通訊鏈路的穩定,雷達樣機研制中,在滿足總體CAN總線通訊要求的基礎上增加了網絡通訊方式,調試顯控終端需要同時具備這兩種通訊方式的命令下發及狀態采集。
此外,為了便于調試過程中的雷達狀態分析,調試終端具備數據分析功能也尤為重要。對于該雷達系統而言,首先,需要對雷達狀態、雷達跟蹤數據、伺服編碼及全量數據進行解析;其次,在系統聯調時,搜索雷達通過CAN總線將目標信息發送給跟蹤雷達,導引跟蹤雷達完成對目標的截獲和跟蹤。由于調試中受雷達擺放位置的影響,經常需要對導引角度做修正。因此在聯調時,需要對導引精度進行分析,以便偏差較大時能夠進行修正;最后,跟蹤雷達作為武器系統的重要組成部分,其跟蹤精度直接影響了整個武器系統的作戰效能,因此在終端中進行動飛精度分析,是非常必要的。
我們希望設計一款調試軟件,能夠同時實現上述功能,即集雷達控制、狀態顯示及數據分析功能于一體。Matlab是一款功能強大的科研軟件,具有豐富的信號處理工具、強大的數據計算能力與實時繪圖功能,而且編程非常簡單,此外Matlab也有自己的界面設計模塊——用戶圖形界面(Graphical User Interface,GUI),GUI模塊可方便設計出圖形用戶界面。適用于在雷達總站調試過程中實現數據分析、控制、顯示等融為一體的軟件設計[1-2]。本文將借助Matlab GUI來實現該雷達的調試顯控終端設計。
根據雷達調試需求,為了Matlab GUI界面的清晰簡潔與操作簡便,可將其主要功能分為UDP網絡通訊模塊、CAN指令控制模塊、網絡指令控制模塊、雷達狀態顯示模塊、目標信息顯示模塊、目標AR顯示模塊、數據錄取模塊、數據分析模塊。組成框圖如圖1所示。

圖1 軟件組成框圖
Matlab中創建GUI界面通常有兩種方式:一是使用m文件直接動態添加控件,利用程序編寫產生對象(如uicontrol、uimenu)來開發GUI界面;二是通過Matlab自帶的GUIDE來快速建立GUI對象,事件處理的代碼可以再m文件中進行編寫,需修改程序代碼時可快捷地在m文件中修改[3]。顯然第二種可視化編輯方法更適合編寫設計大型程序。本文中選擇第二種方法對調試顯控終端進行設計。使用GUIDE來建立GUI的設計過程如下:
1)在Matlab命令行窗口中輸入GUIDE、或者從菜單欄新建app選擇GUIDE創建GUI界面文件,新建且保存后,會生成相應的fig文件和m文件。
2)可以通過在命令行輸入guide+文件名.fig進入編輯界面,可以在編輯界面中按照程序功能設計將所需要的控件添加到編輯界面中。常用控件有按鈕(Pushbutton)、彈出式菜單(Popup Menu)、坐標軸(Axes)、復選框(CheckBox)、可編輯文本框(Edit Text)、靜態文本(Static Text)、面板(Panel)等。
3)每一個控件都有自己的屬性,可以在編輯界面中雙擊該控件進入屬性編輯器來設置或修改控件屬性,包括控件的名稱(Name)、文本(String)、標簽(Tag)、位置(Position)、使能狀態(Enable)、回調函數(Callback)等各種屬性。在m文件中可以通過使用set、get等函數來設置和獲取控件屬性值。
4)回調函數(Callback)是連接界面和整個程序系統的實質性功能紐帶,利用回調函數實現Matlab GUI界面與數據計算的相互交互。編輯某控件回調函數時,右擊該控件,在彈出菜單中點擊Callback子菜單,激活系統自動生成的hName_Callback(hObject,eventdata,handles)函數,hName表示該控件的Tag屬性,hObject表示當前控件的的句柄。在該回調函數下完成相應的功能程序編寫即可。
5)在界面設計完畢后,可以對程序進行封裝。首先在Matlab命令行窗口輸入deploytool,按下回車后彈出窗口,選擇第一項“Application Compiler”。在打開的窗口里,點擊“加號”,選擇打開要生成exe文件的代碼,然后選中Runtime included in package,最后點擊Package按鈕,完成打包,生成可執行exe文件。
該雷達與調試終端之間通過UDP網絡進行通訊。利用Matlab進行UDP通信的主要程序指令如下:
1)新建UDP對象與連接
u1=udp(remote_ip); %新建一個udp通信對象
set(u1,‘RemotePort’,remote_port);
set(u1,‘LocalHost’,local_ip);
set(u1,‘LocalPort’,local_port);
set(u1,‘DatagramReceivedFcn’,{@udp_read,handles});
fopen(u1); %打開終端與雷達之間的網絡連接
2)通過UDP發送信息和讀取
fwrite(u1,data _frame,‘uint8’); %發送
num=u1.BytesAvailable;
udp_read_buf=fread(u1,num,‘uint8’); %讀取
3)關閉UDP
fclose(u1);
delete(u1);
為了雷達調試的便捷性,這里借助通用計算機外設CANET-2E-U將CAN-bus數據轉換為以太網數據,CANET-2E-U設備具有一路10M/100M/1000M自適應以太網接口,2路CAN-bus接口, 實現CAN-bus網絡和以太網網絡互連互通。在接入該設備后,雷達調試時的拓撲結構如圖2所示。

圖2 拓撲圖
調試終端通過該設備可以將CAN命令通過UDP幀發送出去。一個UDP幀可以包含若干CAN幀(最多40個,最少1個),一個CAN幀包含13個字節,CAN幀數據格式如圖3所示。

圖3 CAN幀格式示意圖
其中:Byte1用于標識該CAN幀的類型和長度;Byte2~Byte5用于表示該CAN幀的幀ID;Byte6~Byte13表示CAN幀內容。在調試界面CAN指令控制模塊程序編寫的時候,只需在回調函數中將協議中的CAN指令內容轉換為圖3格式,便可以通過UDP幀將CAN指令發送出去。
該雷達的數據分析主要包括雷達狀態、雷達跟蹤數據、伺服編碼及全量的解析,導引精度分析,動態檢飛精度分析等。對于雷達狀態、雷達跟蹤數據、伺服編碼及全量、導引精度分析而言,不涉及過多運算,按照協議對相應參數進行解析,再按照需求進行一些計算即可。動態檢飛精度分析中涉及到數據插值、時間對準、坐標系轉換[4-5]等,較為復雜。
本小節中主要對動態檢飛精度分析的實現進行說明。圖4為動態檢飛精度分析流程圖,其具體步驟如下:

圖4 精度分析流程圖
1)步驟1:獲取雷達站心位置數據,目標靶機GPS軌跡數據,雷達探測到的目標數據,雷達車體的姿態數據等。其中,雷達站心數據,目標軌跡數據主要包括時間、經度、緯度、高度等信息,該數據基于大地坐標系,可標記為LLA(Longtitude、Latitude、Altitude)坐標;車體姿態數據包括橫滾角、縱搖角、偏航角;雷達觀測數據包含距離、方位角、俯仰角,該數據基于雷達極坐標。
2)步驟2:步驟1中獲取的四組數據采樣率不同,為了精度分析的準確性,需要將數據進行插值、平滑濾波處理,然后將四組數據的時間進行對齊,以便于做出更加客觀準確的對比。
3)步驟3:將LLA坐標下的雷達站心數據和目標軌跡數據轉換到地心地固直角坐標系,標記為ECEF(Earth-Centered Earth-Fixed)坐標,然后旋轉平移得到目標相對于雷達站心東北天(East-North-Up,ENU)直角坐標系下的數據,最后將數據轉換到ENU極坐標系。
4)步驟4:將雷達極坐標下的雷達觀測數據轉換到直角坐標,再通過旋轉將其轉到ENU直角坐標系下,最后將數據轉換到ENU極坐標系。
5)步驟5:通過步驟3和步驟4的坐標系轉換操作,已將目標真值數據和雷達觀測數據轉換到同一坐標系下,即可對受檢雷達的檢飛精度進行計算,得到精度分析結果。
雷達調試顯控終端的設計,其控件組織要簡潔、合理,且操作使用要方便。最終設計的該雷達調試顯控終端界面如圖5所示。

圖5 調試顯控終端界面
1)UDP通信模塊:采用“終端網絡”復選框控件,當選中“終端網絡”復選框后,回調函數會按照預先設置好的IP地址、端口號打開UDP網絡,雷達與終端之間開始有數據交互,取消選中“終端網絡”復選框時,該UDP網絡斷開,數據傳輸中斷。
2)網絡指令控制模塊:當按下“發送”按鈕時,回調函數會調用get函數從各交互控件中獲取用戶設置雷達參數,然后按照通信協議格式使用UDP協議將設置的參數打包發送給雷達信號處理機。按下“模擬”按鈕時,會將目標模擬設置的參數下發給雷達信號處理機。
3)CAN指令控制模塊:按下相應功能的控件,回調函數會按照CAN協議將CAN幀轉換為圖3格式發送給信號處理機。
4)雷達狀態、目標信息、AR顯示模塊:主要采用可編輯文本框和坐標軸控件,當終端網絡連通后,回調函數會實時讀取雷達信號處理機回報的數據,并按照協議對其進行解析,調用set函數將其回報內容顯示在調試終端上。
5)數據錄取模塊:選擇存儲路徑后,點擊“存儲”按鈕,就開始實時錄取雷達回報的數據,點擊“停止”按鈕,停止存儲。
6)數據分析模塊:菜單欄中的“導引精度分析”、“CAN數據分析”和“動飛精度分析”是對錄取的雷達數據進行分析的模塊,當選中這三個菜單時,會彈出三個子界面。圖6為導引精度分析子界面,圖7為CAN數據分析子界面,圖8為動態檢飛精度分析子界面。按下“文件選擇”按鈕選擇錄取的數據文件,回調函數會對該錄取數據進行解析,按下參數顯示控件,會對相應參數進行計算并繪圖輸出。

圖6 導引精度分析子界面圖

圖7 CAN數據分析子界面

圖8 動態檢飛精度分析子界面
目前該調試顯控終端已經應用到了該雷達總站調試中,為發現問題、分析問題、解決問題提供了有力支持。正常工作時的調試終端主界面如圖9所示。控制主界面左邊的參數,雷達會響應終端下發的指令,右邊顯示欄會發生相應變化。

圖9 調試終端主界面
圖10為某次調試過程中自檢狀態下的方位路幅度,圖10中可見其幅度為97,而正常工作時自檢狀態下,和路、方位路、俯仰路幅度均應該在115左右,由此可見方位路信號有大幅衰減,通過分析查找發現方位路有一處線纜不通,整改之后幅度恢復,雷達自檢正常。

圖10 自檢方位路幅度
某次跟飛試驗中,為了跟飛過程中導引的準確性,在雷達站標定完成后,對一組數據進行導引精度分析,結果如圖11、圖12所示。圖11為距離導引精度,圖12為角度導引精度。可根據圖11的距離導引誤差對其距離進行修正。由圖12可見,俯仰誤差較大,在標定準確的前提下,出現大誤差是不合理的,通過分析發現跟蹤雷達俯仰零位沒進行標定,重新標完零位后,導引精度在正常范圍。

圖11 距離導引精度圖

圖12 角度導引精度
某次跟飛試驗中,利用圖8子界面對跟蹤雷達的檢飛精度進行分析,在Y軸數據選擇欄選擇方位誤差,得到方位精度分析結果如圖13所示。選擇俯仰誤差和距離誤差同樣會出現相應精度分析結果,這里不再羅列。

圖13 方位精度分析結果
基于Matlab GUI的界面設計,編程簡單,開發快速、且界面友好,而且Matlab自身強大的數據處理能力和繪圖功能有助于數據分析[6]。在調試顯控界面中集成了主要的總站調試功能,能夠為分析問題和系統改進提供有力支持,可以大幅提高雷達的調試效率,有一定的實際工程意義。