O 引言
在各種雷達訓練和信號模擬器中,,都需要進行航跡模擬及航跡顯示,以便于為仿真平臺提供信號源,。對于便攜式雷達模擬器來說,,無法使用PC,需用嵌入式系統(tǒng)來實現人機交互及信號處理,。但當前絕大部分的航跡模擬均建立在PC機上,,雖然功能強大,,但航跡模型較為復雜,計算量較大,,不易于在嵌入式設備設備上實現,。針對上述問題,在嵌入式系統(tǒng)內,,采用雙緩沖技術,,并通過“背景復制”的方法對3種典型雷達航跡模型進行了模擬仿真,解決了嵌入式系統(tǒng)在進行仿真時內存處理速度與繪圖資源消耗較大的矛盾,,實現了對典型雷達航跡的圖形化顯示和航跡點坐標的實時動態(tài)模擬,。
1 典型航跡模型
所謂航跡是指飛行物的雷達測量時間序列,它是反映目標飛行航線,、航速,,乃至飛行目的的重要參數。直線型航跡,、水平圓周型航跡和垂直圓周型航跡是3種典型的空中航跡模型,,對3種典型航跡進行組合,可有效地模擬出空中各種復雜航跡,。
1.1 坐標系的建立
雷達系統(tǒng)常用坐標系有直角坐標系和極坐標系,。二者均以雷達作為坐標系的原點且原點重合。在直角坐標系內,,以y軸正方向為正北方,,正東為x軸的正方向,與水平垂直且向上的方向為h軸正方向,;極坐標系內,,從觀測點到目標點連線的延長線方向為目標的斜距離D的正方向。
1.2 航跡模型的建立
1. 2.1 直線型航跡
空間直線型航跡較為簡單,,是最常用到的一種航跡模型,。在直角坐標系內其運動學方程可以由其初始速度v0,加速度a,,飛行俯仰角θ,,航向角φ以及航跡時間t來表示,△t內有如下關系成立:
1.2.2 水平圓周型航跡
水平圓周型航跡主要分為左轉和右轉2種類型,。在直角坐標系內,,單位時間增量△t內其運動方程如下:
式中:s=2Rsin(△φ/2),用來表示圓周運動起始點到終止點的直線距離,;R為半徑,;φ為初始航向角,△φ=(v△t)/R為航向角增量(方位角變化量),。當目標左轉時,,F=1,,右轉時,F=-1,。
1.2.3 垂直圓周型航跡
垂直圓周段航跡指的是目標在與水平面垂直的平面里做恒向心加速度圓周運動,,其特點是飛行方位角保持不變。假設單位時間增量△t內,,由目標運動起始點到終止點的直線距離為s,,則s在x軸上的投影為△z,在xoy平面上的投影為△L,,可以得到如下關系:
式中:R為半徑,;θ為初始飛行俯仰角;φ為初始航向角,。俯仰角增量△θ=(v△t)/R,。如圖1所示,若目標由A點運動到C點,,則當目標從A點運動到B點時,,F=1,而當目標在BC段運動時,,F=-1,。
1.3 目標飛行的雷達坐標
在雷達應用中,測定目標坐標常用極(球)坐標系統(tǒng),,空間任一目標的位置可用斜距D,,方位角β,高低角θ來表示,。在1.2節(jié)中為了簡化,,算出的都是單位時間增量△t內的坐標增量,但是在實際運算中,,應該使用實時坐標值。假設目標在直角坐標系中的位置為(xt,,yt,,zt),則有:
2 仿真流程
航跡仿真流程如圖2所示,。
3 仿真實現
嵌入式系統(tǒng)是指根據特定的應用及要求,,采用特定的開發(fā)板和特定的操作系統(tǒng)運行應用程序的系統(tǒng)。一般來說,,嵌入式系統(tǒng)具有軟件代碼小,,高度自動化,響應速度快等特點,,與一般的PC系統(tǒng)相比,,特別適合于要求實時和多任務的體系,。
在對航跡進行可視化仿真時,選擇Win CE嵌入式操作系統(tǒng),,在Visual Studio 2005開發(fā)平臺上,,采用Visual C#語言進行程序編寫。
3.1 GDI+技術
GDI+技術指的是在.NET Framework 2.0中提供的二維圖形,、圖像處理等功能,,主要用于繪制各種圖像圖像,可以用于繪制各種數據圖形,、數學仿真等,。目前,GDI+技術是在Windows窗體應用程序中以編程方式呈現圖形的基本方法,。
GDI+使用Graphies類來描述一個繪圖表面,,并提供該表面可以進行的所有繪圖工作。當所需圖像包含大量基本圖形時,,在內存中的Bitm- ap上繪圖比直接在屏幕上繪圖要快的多,。所以應用GDI+技術繪圖時,為了消除在畫圖時引起的屏幕抖動,,常常采用雙緩沖技術,。其實質即在內存中事先開辟出一塊空間作為緩沖區(qū),繪制圖片,,再將緩沖區(qū)里的圖片繪制到用戶界面或輸出終端,。具體步驟為:
(1)創(chuàng)建一個指定大小的空位圖Bitmap;
(2)調用Graphics類的FromImage靜態(tài)方法,,從該位圖創(chuàng)建一個Graphics對象,;
(3)利用創(chuàng)建的Graphics對象進行繪圖;
(4)釋放繪圖資源,;
(5)調用窗體的Paint事件,,刷新窗體。
3.2 航跡坐標點的定位
GDI+中的作圖函數建立在一個以像素為單位的邏輯坐標系中,。該邏輯坐標系的原點是顯示屏幕的左上角,,并且y軸向下為正方向,x軸向右為正方向,,如圖3所示,。在對航跡進行的可視化仿真,建立在對雷達PPI顯示器進行模擬的基礎上,。因此,,在做圖中,需要將PPI顯示的參數換算為以像素為單位的值。
這里需要定義一個意義為實際距離對應屏幕距離的全局比例尺m_Globalscale,,單位:像素/m,。假設系統(tǒng)所要模擬的PPI顯示界面分辨率為240×240(像素),且雷達最大作用范圍為m_Range(m),,則有如下關系成立:
將圓心與屏幕PPI顯示區(qū)中心點的偏移量,,定義為x_set和y_set,以航跡上的A點為例,,假設在t時刻,,目標到達A點。其斜距離為D,,單位 m,;方位角為β,單位為(°),。A點對應在屏幕上的斜距離為D1,,單位像素;方位角β1,,單位弧度,;坐標為x_cur,y_cur,,單位像素,。根據上述分析可以得出:
3.3 航跡坐標點的動態(tài)顯示
航跡的顯示可以在模擬PPI顯示器的繪圖面上,調用drawlines()方法對所有的航跡點進行連線即可,。但是為了實時地了解仿真目標的空中運動情況,,往往還要同時實現航跡坐標點動態(tài)顯示。重繪是一種經常被采用的方法,,其思想是對PPI顯示模擬界面上的靜態(tài)顯示部分進行重繪,,將已經畫好的航跡坐標點覆蓋掉,再在新的界面背景上繪制新的航跡坐標點,。
但是考慮到嵌入式系統(tǒng)在內存及處理速度方面的不足,,每次重繪所調用大量的資源,勢必會造成CPU資源的浪費,,同時影響到整個系統(tǒng)的時效性,。為了克服上述問題,保證整個系統(tǒng)運行的實時性,,本文采取“背景復制”的方法來解決??傮w來講,,實現的思想是:創(chuàng)建2個繪圖面,在一個繪圖面(g1)上繪制軌跡后再 “貼在”另個繪圖面(g2)上,,并在g2上繪制更新的點跡坐標,,當進入下個循環(huán)時新的軌跡圖又再次貼在g2上,,然后再在g2繪制新的點跡坐標,這樣顯示在窗體上始終只有運動的軌跡和隨軌跡運動的圖標,,即可較為豐富地實現軌跡動態(tài)顯示,。
具體步驟為:
(1)定義2個位圖Bitmap1和Bitmap2,并設定其大小
(2)定義兩個Graphics繪圖面(以下簡稱g1,,g2),,并把Bitmapl填充到g1中去,以便于接下來進行繪圖操作,。
(3)進行航跡模型運算,,循環(huán)算出各航跡坐標點的坐標值(x,y),,將所有的航跡坐標點存入List
(4)將整個已經畫有航跡的Bitmapl保存下來,。
(5)利用C#中的計時器控件,,以ts為時間間隔,循環(huán)從List
然后在g2繪圖面上調用DrawEllipse()函數,以繪點的方式畫出模擬目標的實時航跡點坐標,。重復步驟(5)的操作即可實現航跡坐標點的動態(tài)顯示,。
圖4為采用這里所述方法在一嵌入式系統(tǒng)內實現的某雷達模擬器顯控終端截圖,圖4中所繪航跡為一段直線型航跡,。
4 結語
建立對典型雷達航跡模型,,并成功在仿真平臺上實現模擬,是實現復雜航跡仿真的前提,。在此旨在通過對典型雷達航跡的仿真,,驗證軟件運行環(huán)境,優(yōu)化程序結構,,并解決航跡在圖形化顯示上所面對的一些問題,。目前,該方法已經被應用到某雷達模擬器的顯控終端上,,經外場調試,,性能較好,實時性強,可以滿足雷達模擬器訓練要求,。