陶聲祥,王書宇,沈 歡
(解放軍炮兵學院,合肥 230031)
捷聯圖像制導是將成像導引頭直接與彈體剛性捷聯,通過CCD獲取前方目標場景,由無線電傳回遙控中心并在其視頻圖像中找到目標,計算出偏差量輸出導引指令給導引頭,再通過彈上控制系統調整舵機偏轉進行目標修正,最終準確命中目標[1]。
文中介紹的基于虛擬場景的捷聯圖像制導半實物仿真系統是將導引頭實物和遙控中心引入回路,創建一個接近真實飛行場景的仿真平臺。該仿真平臺不僅能為測試、改進導引頭和目標識別與跟蹤算法提供試驗條件,并能同步顯示出彈丸的實時受控飛行彈道和相關數據。
基于虛擬場景的捷聯圖像制導半實物仿真系統是由虛擬場景生成系統、仿真控制工作站、多通道投影系統、遙控中心、三軸轉臺和導引頭組成,如圖1所示。

圖1 基于虛擬場景的捷聯圖像制導半實物仿真系統框圖
工作原理:虛擬彈丸開始制導時,先由仿真控制軟件將彈丸的當前位置和姿態傳給虛擬場景生成系統,分別產生彈丸飛行和目標仿真場景,由多通道投影系統分別投影到一個寬屏和一個大屏幕上;捷聯圖像制導導引頭從大屏幕上獲取目標視頻圖像,傳給遙控中心,遙控中心根據目標識別與跟蹤算法,結合外彈道控制模型,計算出制導指令并傳給仿真控制工作站和導引頭;仿真控制系統通過內置的制導彈動力學、運動學等數學模型解算出彈體在下一時刻的空間位置和姿態角,并將這些參數傳給虛擬場景生成系統,重繪并刷新這兩個場景,同時將彈體姿態角傳給三軸轉臺,通過伺服系統實現導引頭的姿態變化,完成遙控中心對制導彈的一次控制工作過程,再獲取下一幀視頻圖像,繼續控制,如此反復,直至結束。
系統硬件如圖2所示,由多臺圖形工作站和光纖網組成。系統軟件由仿真引擎、場景配置模塊、場景和模型庫組成,采用分布式多通道渲染。仿真引擎由Vega Prime 2.01[2]和OpenGL混合編程實現。場景配置模塊可根據需求選擇不同的場景,場景使用Creator建模(內建丘陵、平原、海面等三維廣域地形;制導彈三維模型;坦克、裝甲車等軍事目標模型以及模擬雨、雪、霧天氣等)。該系統內建3個獨立輸出通道(通道1~3)。通道1、2中視點位置重合,沿觀察方向拼接顯示彈丸飛行場景,在通道中通過場景疊加繪制彈道、各類輔助線和飛行參數等;通道3中視點設定在虛擬導引頭處,觀察方向與彈體中軸線重合,用于輸出目標仿真場景。如何進行場景疊加和配置是兩個最難解決的問題。

圖2 分布式渲染硬件結構框圖
2.1.1 場景疊加
彈丸飛行場景中需要疊加繪制各類輔助線和漢字,由于VP提供的疊加功能有限,如疊加字符功能僅限英文字符[3],而不能疊加漢字。其解決方案是在VP中嵌入OpenGL代碼來實現靈活多變的疊加繪制。具體做法是聲明一個類,繼承vsChannel類中的Subscriber,重載notify函數。在重載函數的實現過程中加入需要繪制的OpenGL的代碼,實現各類輔助線和漢字的疊加繪制。關鍵代碼如下所示:
class CVPChannelSubscriber∶public vsChannel∶∶Subscriber
{
virtual void notify(vsChannel∶∶Event event,
const vsChannel*channel,vrDrawContext
*context)
{
MyCode();//這里添加OpenGL代碼
}
}
由于VP中默認視線是沿著y軸,而OpenGL中默認視線是沿著z軸,因此還需要進行轉換將兩者的視線方向統一起來。
2.1.2 場景配置模塊設計
場景配置模塊用于選擇不同的場景(如地形、目標類型、目標位置及運動方式、天氣、觀察視點的位置和角度等)。通常做法是在文件中進行配置,缺點是不直觀。該系統按照“所見即所得”的原則,為用戶提供了一個方便快捷的配置界面。

圖3 內存映射文件中的數據結構
受到 VP本身功能限制,配置界面無法由VP進程產生,為此把場景配置模塊設計成一個單獨的MFC窗口程序,由它啟動VP進程,并完成用戶操作。這種方案的難點在于這兩個進程之間需要進行快速有效的通信和數據交換,綜合考慮實現的快捷性和通信性能,采用共享內存映射文件的方式。
內存映射文件中的數據結構如圖 3所示,由MFC進程與VP進程共享。系統中的VP進程是一個控制臺程序,不能通過消息響應機制與MFC進程交互。為此,在VP進程中創建一個數據隊列,啟動一個單獨的線程,不斷的讀取該內存映射文件并檢測是否有操作消息。若有,則將共享數據放入數據隊列中,同時渲染主循環不斷的從隊列中取數據進行處理,完成操作。另外,由于MFC進程是一個獨立的窗口應用程序,它本身具有接收消息的功能,只需向其發送Windows消息即可。

圖4 導引頭-目標場景相互關系圖
如圖4所示,當導引頭偏轉一定角度時,其光學中心延長線與大屏幕投影幕交于A點,以自身最大視場角建立觀察體,觀察體在大屏幕上形成攝像區V3。VP中指定的虛擬視點等同于導引頭的光學中心,虛擬視點的偏轉角應隨時與導引頭保持一致,則由視點生成的虛擬場景V1在大屏幕上的投影中心與A點重合。假設全部投影出來,則為虛擬投影區,其中兩邊與大屏幕邊緣重合。由于只能在大屏幕上投影,所以要對V1進行裁剪,將裁剪后的場景V2投影在大屏幕上[4]。為實現上述目的,必須計算虛擬場景的裁剪比例和虛擬視點的視場角。
2.2.1 計算虛擬場景的裁剪比例
記V1的長與高分別為L1、H1;V2的長與高分別為L2、H2,則裁剪比例如下:

2.2.2 計算虛擬視點的視場角
記虛擬視點的水平、垂直視場角分別為α′和β′;導引頭水平、垂直視場角分別為θ和γ;f為大屏幕的水平分辨率,d′為VP中虛擬視點沿觀察方向與地面之間的距離;W1、W2分別為V1和V3的水平長度(像素),則有:

為實現各子系統之間的實時數據通訊,在每個主機上插入VMIC反射內存卡,通過光纖連成一個星形VMIC反射內存實時網絡[5],以確保整個系統的實時性。由仿真控制工作站控制各分系統之間的協同同步,使用CPU時間戳和多線程技術,完成高精度計時器,可達到納秒級的計時精度。
系統可根據不同類型的制導彈選擇相應的外彈道迭代算法,以迭代時間步長作為仿真步長,發送控制指令進行協調同步。
文中主要討論研究了基于虛擬場景的圖像制導半實物仿真系統中的關鍵技術,并提出了相應的解決方案,本系統已成功應用于某型捷聯電視制導彈武器系統的半實物仿真試驗中,取得了令人滿意的效果。
[1]黃世奇,禹春來,劉代志,等.成像精確制導技術分析研究[J].導彈與航天運載技術,2005(5):20-25.
[2]王乘,李利軍,周均清,等.Vega實時三維視景仿真技術[M].武漢:華中科技大學出版社,2005.
[3]MultiGen-Paradigm Inc.MultiGen-Paradigm Inc Vega Prime Programmer's Guide Ver 2.0[M].2005.
[4]呂品,張金芳.分布式仿真系統的多通道視景生成[J].系統仿真學報,2007,19(6):1291-1295.
[5]高立娥,康鳳舉,王彥愷.一種基于反射內存實時網絡的半實物仿真系統[J].計算機仿真,2004,22(3):29-32.