王 欣,郭 鑫,劉 旭
(沈陽理工大學裝備工程學院,沈陽 110159)
制導律的設計是導彈制導與控制系統設計中的重要組成部分,其性能的優劣直接決定著導彈的制導精度。而制導律仿真是針對設計出來的制導律進行相關特性的驗證[1]。
工程實踐中的制導與控制系統都是采用嵌入式系統來實現。嵌入式系統包含了嵌入式軟件和嵌入式硬件兩層概念[2]。虛擬現實技術是仿真技術和計算機圖形學最新成果的結合。可以實現飛行模擬、虛擬現實等,為人們創建一種逼真、實時的虛擬三維世界,近年來在人機交互技術中具有良好的前景[3]。
文中從導彈制導系統的工程實踐出發,有機結合嵌入式系統技術和虛擬現實技術,設計了一種虛擬的導彈制導過程的仿真平臺。該仿真平臺中的制導律采用嵌入式系統平臺進行設計和解算,三維虛擬視景仿真界面在虛擬現實系統平臺上設計完成,兩個系統平臺之間采用串口協議進行數據通信。其中,嵌入式系統平臺采用VxWorks5.5和MPC8247的軟硬件組合設計,虛擬現實系統平臺采用MultiGen Creator和Vega Prime進行三維虛擬視景仿真設計。因此在嵌入式系統平臺上就可以根據實際情況設計實現不同的制導律,而虛擬現實系統平臺就可以通過串口接收制導律的數據,進而在通用計算機的顯示器上顯示出虛擬的導彈制導過程。有利于直觀的驗證導彈制導律設計的正確性。
根據使用者自身的角度和行業特點的需求,實現虛擬現實技術的軟件發展了很多種,如virtools、Vega prime、OpenGL、GLStudio、OSG等。其中在目前軍事環境仿真中,由Multigen-Paradigm公司開發的Creator和Vega軟件組合應用較多,Creator用來實現三維場景的建模,Vega則實現三維場景模型的實時渲染,從而動態實現虛擬場景。
相關資料顯示,在國內對導彈或飛行器的制導仿真系統主要通過API編程方式,在Vega軟件內部實現。但在工程實踐中,導彈制導與控制系統主要的核心是彈載計算機,而彈載計算機系統使用的嵌入式系統,則在通用計算機上實現導彈制導過程仿真是存在一定的兼容問題。針對這個問題,文中首先在嵌入式系統平臺上完成對制導系統實現,然后采用虛擬實現技術在通用計算機平臺上顯示虛擬三維動畫。

圖1 仿真平臺結構圖

圖2 MPC8247內部模塊結構圖
圖1是文中整個仿真平臺的框架結構示意圖,左側紅色虛框為嵌入式系統平臺,嵌入式硬件應用MPC8247處理器,嵌入式操作系統為VxWorks5.5操作系統。該平臺主要實現制導律的設計與解算,并把解算結果(指令加速度)通過串口方式傳輸給右側紅色虛框的虛擬實現系統平臺。文中虛擬現實系統平臺通過Creator和Vega Prime開發設計,實現三維視景環境,主要實現對導彈制導過程及戰場環境的虛擬三維顯示,完成嵌入式系統平臺傳輸的制導律;并把其參數輸送給導彈模型,驅動導彈沿著預期的軌跡,從而實現精確攻擊目標。
目前嵌入式硬件平臺已經發展了很多種,根據內核不同可以分為不同的平臺,如ARM、PowerPC、MIPS等。考慮到軍工背景,文中采用型號為飛思卡爾MPC8247處理芯片的PowerPC處理器,其主頻高達400 MHz,具有低功耗,高可靠性,因此被廣泛應用于大型操作系統。
圖2為PowerPC處理器的MPC8247處理芯片內部模塊結構圖,其主要由PowerPC核、SIU(系統接口單元)、CPM(通信處理模塊)組成。文中PowerPC核采用603e核,由緩存和存儲器管理單元MMU組成;SIU主要實現內部總線和外部總線的連接;CPM主要是在不同的通信設備上實現發送、接收數據,結構設計可以滿足所有通信設備獨立工作。
MPC8247處理芯片具有兩種啟動方式,一種方式為在EEPROM(帶電可擦寫可編程讀寫存儲器)內啟動Bootrom(無盤啟動ROM接口),然后應用Bootrom從網絡下載開發板需要的內核和應用程序。另一種方式為在NorFlash中直接啟動,啟動過程:VxWorks系統鏡像首先下載并存儲在NorFlash的0xFFF00000處,當系統通電后,CPU馬上讀取NorFlash的0xFFF00000處VxWorks系統鏡像,初始化系統硬件,并啟動MPC8247內核,最后啟動相應的程。
圖3給出了MPC8247開發板的外設架構圖。

圖3 MPC8247開發板結構框圖
MPC8247處理芯片因為不含NandFlash控制器,文中應用NandFlash控制器不需要存儲很大數據,而是用于數學程序的運算,所以系統采用2片8M的NorFlash已滿足嵌入系統平臺的運算空間。串口1負責調試VxWorks操作系統,串口2負責與虛擬現實系統平臺下的通用計算機進行數據通信。
文中基于研究背景,嵌入式系統平臺的操作系統選用美國Wind River System公司的VxWorks實時操作系統[4-5]。VxWorks是一款非開源操作系統,它在開發程序過程中,采用Tornado2.2進行集成開發環境來編譯程序,在這個過程中,Tornado同時會結合系統內核和程序,產生可以由CPU識別的VxWorks_rom.bin二進制文件。圖4為MPC8247在Tornado2.2下編譯生成bin文件過程,在project文件夾中可以得到最終生成開發板可以運行的二進制文件。

圖4 Tornado開發環境和BSP編譯
圖5為VxWorks在MPC8247下的啟動界面,從啟動界面可以得到CPU型號、BSP版本信息、調試時間等相關信息。
制導律算法的仿真通常采用Matlab軟件編程實現,但在嵌入式系統只能通過C語言編程完成功能。在VxWorks操作系統使用C或C++語言實現,執行的最小單元是task(任務)。系統應用程序接口都存儲在usrAppInit.c文件中usrAppInit()函數里,即全部運行的應用程序在usrAppInit()開始,也會在這里結束運行。每個應用程序都是由一或幾個task組成,實現功能,其中每個task都通過一個函數接口來實現usrAppInit.c中的usrAppInit()的調用。
void Main (void)
{
taskSpawn(″tMain″,105,0,0xF000,Input_Main,0,0,0,0,0,0,0,0,0,0);
}
如上段為建立一個Main (void)任務的代碼,代碼中105為Main (void)任務的優先級,該參數建議設置范圍為大于100,代碼0xF000表示任務所需要棧空間內存,Input_Main主要實現這個任務的邏輯,也是任務調用的函數入口。“0,0,0,0,0,0,0,0,0,0”表示該任務所需要的參數(最大為10),默認為零。

圖5 VxWorks啟動界面
文中中需仿真的制導律為帶落角約束的變結構末制導律。為簡化導彈制導過程,導彈、目標和控制站運動為質點運動,且其運動始終在同一平面內,如圖6所示,導彈和目標相對運動可以分解為偏航平面分量、俯仰平面分量。

圖6 導彈與目標相對運動關系
導彈與目標相對運動分析基于假設和前提:導彈、目標和控制站運動為質點運動,導彈和目標速度為已知常量,控制、制導系統工作是理想的,彈速大于目標速度,且攻角很小,所以可得出俯仰平面內的彈目運動方程:
(1)

引入落角約束:
(2)
式中γf為落點的期望速度傾角。
為了有效解決式(2)中的變結構問題,引入了滑模面切換函數和趨近律系數,如式(3)所示。
(3)
整理式(1)~式(3),最終可以化簡得到帶落角約束的變結構末制導律表達式:
(4)
文中設計嵌入式系統平臺的最終目的就是在VxWorks操作系統下編程實現解算式(4),然后將式(4)中的數據通過串口任務傳遞給虛擬現實系統平臺進行數據處理。所以,在VxWorks下面主要有兩個任務,一個是Guidance任務,另一個是Serial任務。具體代碼如下所示。
void Guidance (void)
{
taskSpawn(″tGuidance″,105,0,0xF000,
Guidance_Main,0,0,0,0,0,0,0,0,0,0);
}
void Serial (void)
{
taskSpawn(″tSerial″,110,0,0x4000,
Serial_Main,0,0,0,0,0,0,0,0,0,0);
}
VxWorks操作系統下的系統編程符合C語言編程規則,所以只需要控制好這兩個任務間的數據共享,以及每個任務的棧空間大小,就可以完成制導律的解算和數據通信工作。
實現三維視景首先要建立三維模型,模型的建立決定著整個三維視景仿真的效果。考慮到研究基于軍工背景,文中使用了在三維視景仿真中廣泛應用的三維模型建立軟件Multigen Creator[6]。該模型建立軟件的獨創性是使用層次化數據結構技術對三維虛擬場景實現。傳統三維模型建立軟件的數據結構,很難實現對局部進行修改調整,文中層次化數據結構為OpenFight數據結構,采用了節點式的數據分層結構,可以實現對每個小模塊迅速調整,建立效果更佳的三維模型。
Vega Prime是Multigen Paradigm公司推出的一種虛擬現實實時開發工具,具有強大的功能,高度的易用性、兼容性,在樓宇視景、城市仿真、航天航空及軍工等不同領域得到廣泛的應用[7]。Vega Prime軟件系統最底層是具有很好軟硬件兼容性的OpenGL圖形開發庫,在OpenGL上為VSG(Vega Scene Graph)模塊,它為高級三維開發提供了最佳平臺,是Vega Prime實現的基礎。如圖7 Vega Prime軟件結構可看作Vega Prime封裝了底層OpenGL,這種設計結構可以使開發人員通過Vega Prime模塊,實現對OpenGL的操作[8-10]。

圖7 Vega Prime軟件結構
Vega Prime為用戶提供一個簡單明了的開發界面,提供了一種可擴展的跨平臺的LynX Prime圖形用戶界面配置工具。Vega Prime為開發人員使用C++語言編程實現復雜的功能,提供了基于C++面向對象的Vega Prime庫。
文中設計就是采用Visual Studio2005中MFC的文檔視圖架構來編程實現復雜算法。其中,在該架構下將Lynx Prime設計的三維模型底層框架作為一個線程在MFC中運行,同時創建一個Serial線程來接收嵌入式系統平臺解算好的制導律,然后再通過這個Serial線程的數據來驅動三維模型運動起來。圖8為基于MFC下的Vega Prime程序結構流程圖。

圖8 基于MFC的Vega Prime結構流程圖
下面幾行代碼就是當點擊仿真開始按鈕后產生的消息響應函數。其中Guidance.acf文件作為一個實例被Vega Prime的內核程序調用,進而將在Lynx Prime中設計好的三維模型導入到MFC中,然后配置窗口相關參數,最后啟動窗口。
void CGuidanceView::OnStartSim()
{
∥TODO:在此添加命令處理程序代碼
vp::initialize(__argc,__argv);
vpKernel::instance()->define(″Guidance.acf″);
vpKernel::instance()->configure();
vpWindow *vpWin=*vpWindow::begin();
vpWin->setParent(this->GetSafeHwnd());
vpWin->setBorderEnable(false);
vpWin->setFullScreenEnable(true);
vpKernel::instance()->beginFrame();
vpKernel::instance()->endFrame();
const int TIMER_ID=1;
SetTimer(TIMER_ID,0,NULL);
∥響應鍵盤:
::SetFocus(vpWin->getWindow());
m_bStarted=TRUE;
}
Serial線程主要是接收嵌入式系統解算得到的制導律,采用串口協議進行數據通信,類似于傳統的上位機與下位機通信,這里就不做介紹。
文中根據資料建立以下數學模型:某武裝直升飛機在高度2 000 m處發現前方地面裝甲目標,要求發射空地導彈精確摧毀目標。模型假設目標初始速度為VT=0 m/s,導彈相對目標的速度為VM=300 m/s,導彈初始位置與目標初始位置的水平距離為1 000 m,且末端落角約束為-70°。
在2.4小節中嵌入式系統平臺下實現帶落角約束的滑模變結構制導律實現了在擊中目標的同時,保證落角要求。圖9是通過Matlab軟件仿真得到的彈道曲線,從圖中可以看出彈道曲線較為平滑,能夠按照算法要求命中目標。

圖9 數值仿真的彈道軌跡
圖10展現了基于MFC的Vega Prime的制導律仿真平臺界面。文中仿真程序都是基于MFC的文檔視圖架構,在默認架構的菜單欄中設計兩個新項目,一個為仿真程序開始和結束控制按鈕。另一個為串口配置按鈕。新增的串口配置按鈕設置是基于MPC8247底層參數實現的。在該設計的編程架構中,嵌入式系統平臺要實現的彈道模型可通過與Vega Prime的程序進行無縫連接,達到實現導彈制導律的三維虛擬仿真。

圖10 基于MFC的Vega Prime程序界面
當武裝直升機發現地面目標,并發射了空地導彈時,圖11中展示了導彈按照嵌入式系統平臺計算出來的彈道軌跡在空中飛行,可以通過對比圖10發現,新型仿真平臺下的初段彈道軌跡和Matlab仿真的彈道軌跡十分接近。

圖11 導彈在空中飛行
圖12中導彈精準命中目標,在下方的計算機終端可以清楚看到目標被擊中的瞬間情形,同時,將該圖與圖10中的彈道軌跡進行比較可以看出,該仿真平臺得到的彈道軌跡與Matlab平臺仿真結果基本相同,且仿真畫面更為直觀。

圖12 導彈精準命中目標
圖13為三維虛擬仿真平臺的實物圖展示,計算機平臺左側為嵌入式系統平臺MPC8247開發板,當開發板上紅燈亮時說明該平臺處于正常工作狀態。虛擬現實系統平臺在計算機平臺搭建實現,顯示器上為整個仿真界面。計算機平臺與開發板之間通過串口協議通信,文中仿真采用的USB轉串口完成數據傳輸。

圖13 仿真平臺實物
文中設計了一種新型制導律仿真平臺。該仿真平臺結合嵌入式系統平臺和虛擬現實技術實現了對三維虛擬視景仿真界面設計。仿真結果表明,該制導律仿真平臺非常直觀地展示了空地導彈末端制導過程,更好地制導導彈的運行軌跡。其主要結論如下:
1)首先確保嵌入式系統平臺能正常工作,即MPC8247硬件、VxWorks5.5的BSP順利運行,這是仿真平臺的基礎。
2)為緩解嵌入式系統下程序的調試工作,文中使用VS2005軟件對C語言實現的算法進行驗證看其是否正確,調試成功后將其移植到嵌入式系統中。
3)保證嵌入式系統平臺與虛擬現實系統平臺通過串口協議通信能實現數據傳輸正確、順暢。
4)文中MFC中設計兩個新項目,即在MFC中增加了Vega Prime工作線程,因此Vega Prime工作線程和串口通信線程之間的沖突需要處理好。
該平臺通過嵌入式系統設計模擬了真實的彈載計算機實現了制導律的整個工作過程,虛擬現實系統平臺的視景仿真系統直觀地展現了導彈的制導過程,由此分析彈道的設計是否合理。給制導律的設計提供更為簡單明了的實驗依據,從而縮短研究周期,節約研發成本。