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