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