基于嵌入式系統(tǒng)的典型雷達航跡仿真與實現(xiàn)
3 仿真實現(xiàn)
嵌入式系統(tǒng)是指根據(jù)特定的應用及要求,采用特定的開發(fā)板和特定的操作系統(tǒng)運行應用程序的系統(tǒng)。一般來說,嵌入式系統(tǒng)具有軟件代碼小,高度自動化,響應速度快等特點,與一般的PC系統(tǒng)相比,特別適合于要求實時和多任務的體系。
在對航跡進行可視化仿真時,選擇Win CE嵌入式操作系統(tǒng),在Visual Studio 2005開發(fā)平臺上,采用Visual C#語言進行程序編寫。
3.1 GDI+技術(shù)
GDI+技術(shù)指的是在.NET Framework 2.0中提供的二維圖形、圖像處理等功能,主要用于繪制各種圖像圖像,可以用于繪制各種數(shù)據(jù)圖形、數(shù)學仿真等。目前,GDI+技術(shù)是在Windows窗體應用程序中以編程方式呈現(xiàn)圖形的基本方法。
GDI+使用Graphies類來描述一個繪圖表面,并提供該表面可以進行的所有繪圖工作。當所需圖像包含大量基本圖形時,在內(nèi)存中的Bitm-ap上繪圖比直接在屏幕上繪圖要快的多。所以應用GDI+技術(shù)繪圖時,為了消除在畫圖時引起的屏幕抖動,常常采用雙緩沖技術(shù)。其實質(zhì)即在內(nèi)存中事先開辟出一塊空間作為緩沖區(qū),繪制圖片,再將緩沖區(qū)里的圖片繪制到用戶界面或輸出終端。具體步驟為:
(1)創(chuàng)建一個指定大小的空位圖Bitmap;
(2)調(diào)用Graphics類的FromImage靜態(tài)方法,從該位圖創(chuàng)建一個Graphics對象;
(3)利用創(chuàng)建的Graphics對象進行繪圖;
(4)釋放繪圖資源;
(5)調(diào)用窗體的Paint事件,刷新窗體。
3.2 航跡坐標點的定位
GDI+中的作圖函數(shù)建立在一個以像素為單位的邏輯坐標系中。該邏輯坐標系的原點是顯示屏幕的左上角,并且y軸向下為正方向,x軸向右為正方向,如圖3所示。在對航跡進行的可視化仿真,建立在對雷達PPI顯示器進行模擬的基礎(chǔ)上。因此,在做圖中,需要將PPI顯示的參數(shù)換算為以像素為單位的值。
這里需要定義一個意義為實際距離對應屏幕距離的全局比例尺m_Globalscale,單位:像素/m。假設(shè)系統(tǒng)所要模擬的PPI顯示界面分辨率為240×240(像素),且雷達最大作用范圍為m_Range(m),則有如下關(guān)系成立:
將圓心與屏幕PPI顯示區(qū)中心點的偏移量,定義為x_set和y_set,以航跡上的A點為例,假設(shè)在t時刻,目標到達A點。其斜距離為D,單位m;方位角為β,單位為(°)。A點對應在屏幕上的斜距離為D1,單位像素;方位角β1,單位弧度;坐標為x_cur,y_cur,單位像素。根據(jù)上述分析可以得出:
3.3 航跡坐標點的動態(tài)顯示
航跡的顯示可以在模擬PPI顯示器的繪圖面上,調(diào)用drawlines()方法對所有的航跡點進行連線即可。但是為了實時地了解仿真目標的空中運動情況,往往還要同時實現(xiàn)航跡坐標點動態(tài)顯示。重繪是一種經(jīng)常被采用的方法,其思想是對PPI顯示模擬界面上的靜態(tài)顯示部分進行重繪,將已經(jīng)畫好的航跡坐標點覆蓋掉,再在新的界面背景上繪制新的航跡坐標點。
但是考慮到嵌入式系統(tǒng)在內(nèi)存及處理速度方面的不足,每次重繪所調(diào)用大量的資源,勢必會造成CPU資源的浪費,同時影響到整個系統(tǒng)的時效性。為了克服上述問題,保證整個系統(tǒng)運行的實時性,本文采取“背景復制”的方法來解決。總體來講,實現(xiàn)的思想是:創(chuàng)建2個繪圖面,在一個繪圖面(g1)上繪制軌跡后再“貼在”另個繪圖面(g2)上,并在g2上繪制更新的點跡坐標,當進入下個循環(huán)時新的軌跡圖又再次貼在g2上,然后再在g2繪制新的點跡坐標,這樣顯示在窗體上始終只有運動的軌跡和隨軌跡運動的圖標,即可較為豐富地實現(xiàn)軌跡動態(tài)顯示。
評論