趙春暉,史艷鵬
(哈爾濱工程大學,哈爾濱 150001)
利用計算機仿真技術進行雷達系統建模與仿真實驗,具有成本低、開發方便、不依賴特定的硬件、適應性強等特點。目前的仿真軟件大多采用Matlab/Simulink或SystemView,其優點是使用方便、開發周期短,缺點是仿真過程不夠逼真、操作界面不夠美觀、可移植性較差。針對界面問題,有人提出采用VC++結合OpenGL實現雷達顯示界面。然而OpenGL作為軟件第三方,其學習與操作本身亦十分復雜。眾所周知,VC++是一種可視化的編程語言,借助于MFC類庫和應用程序框架能夠輕易開發出Windows標準界面的應用程序。本文介紹了基于VC++單文檔界面(SDI)實現雷達實驗系統界面的設計方法,著重闡述了其實現過程中的重點和難點問題,最后給出了本系統的運行結果。
實驗系統主界面由菜單區、工具欄區、客戶顯示區和狀態欄區四部分組成。其中菜單部分包括文件、編輯、設置、運行、查看、幫助6個一級菜單,相對應的二級菜單及1個右鍵快捷菜單;工具欄部分除SDI框架提供的外包括設置、開始、暫停、停止、幫助5個按鈕;顯示部分包括雷達主顯、目標參照、系統參數3個顯示區;狀態欄包括坐標、掃描量程、時間顯示3部分,如圖1所示。

圖1 實驗系統界面構成要素及布局
其中菜單、工具欄按鈕主要用于新建、打開、保存及關閉系統文件,設置雷達、環境、目標、對抗實驗等相關參數,控制系統運行、暫停與停止,查看目標坐標、系統運行時間、系統使用說明及版本。客戶顯示區及狀態欄用于顯示雷達掃描圖、實驗目標參照圖、雷達/環境參數以及指示目標坐標、雷達作用距離和系統運行時間。
系統實現過程中,絕大部分采用MFC中提供的基礎類,因此節省了大量的開發時間和成本。其中P型雷達顯示器的模擬、目標產生與運動跟蹤、SDI程序的窗體分割、系統參數的動態調整與數據處理是本系統設計仿真過程中的重點和難點。
2.1.1 P型雷達顯示器
在雷達顯示器中,使用最廣泛的是平面顯示器,它提供了360°范圍內全部平面信息,因此被稱為全景或環視顯示器,簡稱PPI或P型顯示器。P型顯示器能夠提供平面范圍的目標分布情況,這種分布情況與通用的平面地圖一致;可以顯示目標的斜距離和方位2個坐標,是極坐標形式的二維顯示器;中心表示雷達站的位置,帶有余輝的距離掃描線隨著天線的方位掃描在畫面上同步轉動。
2.1.2 掃描線余輝的實現
2.1.2.1 余輝的數學模型
當電子束停止對熒光物質的轟擊后,熒光質的發光仍能持續一定的時間才消失的現象叫余輝。在計算機的屏幕模擬雷達顯示器時,無法自動產生掃描過程中熒光質的余輝,因此必須進行人為的模擬。資料表明:指數函數曲線與余輝衰減曲線較為吻合,文獻[6]中給出了2個衰減曲線方程,可以利用該方程對余輝進行數學描述。本文采用一次指數衰減曲線方程,即:

式中:I為熒光質余輝亮度;I0為一次衰減圖層亮度;k為一次衰減常數;t為衰減時間。
2.1.2.2 余輝的實現方法
實現掃描線余輝的方法有畫線法、固定扇掃法和逐點消隱法等,諸多文獻對這幾種方法進行了描述和討論。結合前人工作,本文采用可變扇區內畫線法,即通過改變扇區內線條顏色實現余輝效果。優點是扇區范圍可控、效果逼真、實現方便,過程為:
(1)設定扇形區域范圍θ。系統為用戶提供30°~180°間隔不等的8個扇區范圍。用戶可根據需要自行選擇扇區大小。
(2)確定衰減步數(線數)n。它是由前面確定的扇區大小與相鄰線間夾角共同確定的,本文兩線夾角設為0.5°。以90°扇區為例,n等于180°。
(3)確定線色并繪制。將公式(1)相對于I0進行歸一處理,并將衰減過程離散化,最后方程兩側取對數,得到:

式中:tn為離散時刻;In為離散余輝亮度。
將亮度表示為顏色,以空間信息替代時間信息,則:

式中:Cn為第n條線的顏色;C0為第1條線的顏色;θn=0.5n為2條線間的夾角;kθ為單位夾角顏色衰減值,等于(Cθ-C0)/n。
所以,給定首末線顏色C0、Cθ,則扇區內任意線顏色均可計算得出。通過設定一個循環即可完成線條繪制。表1中列出了系統扇區范圍、線數及線色間的對應關系。

表1 系統扇區范圍線數線色對照表
(4)扇區旋轉。通過設置定時器,定期修改首線位置,使扇區不停旋轉,進而實現雷達掃描效果。圖2展示了系統的兩幅P型顯示器余輝效果圖。

圖2 扇區范圍分別為90°和120°的余輝效果圖
雷達的主要功能就是對空中和地(海)面的目標進行探測與跟蹤,本文設計了實驗目標跟蹤顯示圖,用于動態顯示目標運動過程,與雷達掃描結果進行對比,以使雷達實驗結果更具有說服力。其中,目標的產生、運動模擬、目標的跟蹤顯示是仿真實現過程中的關鍵。
2.2.1 目標的產生
(1)坐標轉換
雷達通常以正北方向為0°,假定按逆時針方向旋轉,則雷達掃描坐標系如圖3(a)所示。目標參數表示為(D,θ),其中D表示目標距離,θ表示目標方位角。而SDI視圖中極坐標形式的邏輯坐標系如圖3(b)所示,點的坐標表示為(r,α),其中r表示極徑,α表示極角。

圖3 雷達掃描坐標系與SDI視類邏輯坐標系圖
對比2種坐標系可以看出,距離D和極徑r是一致的,但方位角θ和極角α之間有一定的差異。因此,在生成目標時,需將目標方位角轉換為邏輯坐標系中的極角。由圖中關系可知:

求出α后即可確定目標邏輯坐標。
(2)目標區域
所謂目標的區域,就是為簡化實驗系統且不失一般性,將目標的活動范圍設定到某一固定的區域。本文設定雷達掃描圖最大等距圓的外切正方形區為目標區域,邊長200 km。
(3)目標生成
本文設計了靜止和活動2類目標,數量上限均為10個。除數量、坐標、雷達截面積(RCS)3種靜止信息外,運動目標還包含速度和加速度信息。其中,目標初始坐標信息的隨機生成是本系統的一個亮點。首先,在系統文件建立過程中,設置隨機數發生器初始函數srand;之后目標生成時,2次調用偽隨機數發生函數rand,并將結果對200(目標區邊長)求余以產生0~200間的隨機數;最后,將2個隨機數各減掉100,并將結果分別賦予目標的x和y坐標。結合前面的討論可知,目標初始位置可以隨機分布于目標區的 4個象限內。實現效果如圖4(a)。圖中“士”表示活動目標,“▲”代表靜止目標。
2.2.2 目標的運動及其跟蹤
(1)目標運動
系統中設定運動目標x和y方向各具有100~1 000 m/s的10個等間隔速度,可以根據目標數量分別賦予不同序號的目標。為將問題簡化,所有目標加速度初始化為0,即目標均做勻速運動。當其運動到目標區邊緣時,相應坐標速度進行取反處理,以達到運動不間斷的目的。
(2)目標的跟蹤與顯示
一方面,隨著目標的建立,實驗目標跟蹤視圖始終保持著目標的顯示。通過定時器,每2 s進行一次目標位置更新,固定目標位置不做更新,運動目標坐標為:

式中:(x1,y1)為目標當前坐標值;(x0,y0)為上一次目標停留坐標;vx,vy分別為2個坐標方向的速度。
圖4(b)展示了經過2 min 10 s后的目標位置分布。
另一方面,雷達掃描視圖中,首先使用系統PtInRegion函數判斷目標是否在扇區內,如果判斷有目標,則根據坐標公式(5)和變換公式(4)進行目標顯示。當扇區經過目標后,停止該目標的顯示,如圖4(c)所示。
對比圖4中(a)、(b)可以發現,活動目標位置發生改變,靜止目標位置則未發生變化。對比圖4中(b)、(c)可以看出,量程90 km,120°的雷達 P 型顯示器掃描扇區內標識出存在的4個目標,扇區外目標未被標識,符合系統設計要求。

圖4 限定區域內實驗目標分布及對應的掃描結果圖
2.3.1 系統參數調整
實驗系統的主要參數包括雷達參數、環境/目標參數和對抗實驗參數,其設置過程主要由初始化設置和運行時調整兩部分組成。
初始化設置較為簡單,通過調用OnInitialUpdate函數,在視圖類首次連接到文檔時,使用文檔中的數據對象對視類數據進行初始化。
運行時調整則較為復雜,為方便用戶操作,本文采用屬性表(CPropertySheet)結構設計了參數設置表CSetSheet。系統根據用戶的不同請求,修改“全部參數”、“雷達參數”、“環境/目標參數”、“對抗實驗參數”等加載標記,再根據標記為設置表添加不同的參數設置頁,進而實現“全部參數設置”和“單一參數設置”2種模式。圖5展示了“全部參數設置”模式下的雷達參數設置頁截圖。
2.3.2 系統數據的傳遞
其一,由于雷達P顯、系統參數、實驗目標跟蹤3個視類共享同一文檔類中的數據對象,所以調用SDI程序中視類成員函數GetDocument即可獲得系統文檔類的指針pDoc,使用該指針即可實現文檔與視圖、視圖與視圖之間的數據傳遞。
其二,用戶通過觸發參數設置請求,在參數設置類與雷達P顯視類之間建立關聯,通過賦值方式實現二者間的數據傳遞。再利用文檔指針pDoc調用文檔類中的UpdateAllViews函數,實現其他視類的數據更新。
2.3.3 系統數據的顯示
通過前面的討論可知,系統數據顯示主要分為3個部分:首先,雷達參數、環境參數、目標個數等信息通過文本形式在系統參數視圖中顯示;其次,目標位置信息分別在實驗目標跟蹤視圖和雷達P顯視圖中以圖標進行標示;最后,目標位置坐標、系統量程、運行時間等以文本形式在狀態欄中輸出,具體情況參照圖4、圖6。

圖5 全部參數設置模式下雷達參數設置圖
所謂SDI程序,就是在這樣的應用程序中,只使用一個文檔和一種視圖類型,并且對這些類只分別實例化一個對象。
與之相反的是多文檔界面(MDI)程序,它允許同時操作多個文檔,可以有多個子窗口。鑒于只包含一個文檔和MDI文檔管理的復雜性,本文采用SDI。設想將系統運行參數、參照目標同時顯示在一個窗體內,實驗對比效果更加明顯,系統將更加逼真,因此需要對SDI程序進行窗體分割。

圖6 雷達實驗系統暫停狀態界面圖
本文采用靜態拆分法,向原有工程中添加實驗目標視類和系統參數視類,分別用于顯示目標跟蹤圖和系統參數,通過重寫主框架類CMainFrame中的OnCreateClient函數,利用CSplitterWnd對象達到一個窗體切分顯示多視窗口的目的,其效果與圖1中的構想一致。
根據SDI程序菜單及工具欄設計的方法,利用VC++6.0開發平臺提供的擴展接口,可以較方便地得到圖1所示的各種菜單項(含快捷菜單)和工具按鈕。通過將某一菜單項和工具欄中的按鈕設定相同的ID標識,可以實現二者的關聯并最終完成相同的任務。
然而在系統建立、運行和停止、退出過程中,菜單(按鈕)間的相互關系及其狀態需要不斷發生變化,這也是系統終端設計與實現過程中解決的另一個主要問題。
例如:系統建立初期需要進行“參數設置”,運行時則“參數設置”按鈕不可用,“運行”按鈕也將失效,系統“暫停/停止”運行后,“參數設置”等按鈕再次有效。其邏輯關系如表2所示。其中“1”表示按鈕可用,“0”表示按鈕不可用,系統其他按扭使能過程相類似。

表2 系統狀態與按鈕使能關系表
根據系統設計想定,結合前面的討論,對系統界面各部分加以整合,最終得到了系統調試和發布兩個版本的可執行程序。程序運行結果如圖6所示,其編譯、調試環境為:Pentium 4(CPU:3.0 GHz,顯卡:GeForce FX 5200)PC機,Window s XP系統,Visual C++6.0開發平臺。
本文討論了基于VC++SDI設計雷達實驗系統人機交互終端的方法,提出了用可變扇形區畫線法實現P型顯示器的余輝效果,完成了相關功能設計與仿真實現,其可執行文件能脫離VC++環境單獨運行。結果表明:該終端操作界面美觀,操作簡便,實驗對比效果直觀,可移植性強,達到了設計要求與仿真目的。該系統為雷達實驗系統整體實現打下了良好的基礎,具有較高的實用價值。
[1] 湯禮建,黃建沖,章桂永.脈沖壓縮多普勒雷達信號處理系統仿真[J].艦船電子對抗,2008,31(3):37-40.
[2] 王小光,唐宏,高山,等.基于Simulink的機載 PD雷達系統的建模與仿真[J].航空計算技術,2007,37(5):77-79.
[3] 李軍.基于SystemView的雷達測距系統設計與實現[J].實驗室研究與探索,2009,28(6):207-209.
[4] 張劍,楊雷,董曉明.基于OpenGL的雷達顯示器仿真[J].中國艦船研究,2009,4(5):71-74.
[5] 劉焱,張宏偉,曹成俊.基于 Visual C++和 OpenGL的具有余輝效果的P型雷達顯示器仿真[J].科學技術與工程,2009,9(10):2751-2754.
[6] 齊越.基于計算機的雷達顯示系統設計[D].大連:大連海事大學,2008.
[7] David Simon,周瑜平.Visual C++6編程寶典[M].北京:電子工業出版社,2005.
[8] 羅斌.Visual C++編程技巧精選集[M].北京:中國水利水電出版社,2008.