沈鳳
(四川大學計算機學院,成都610065)
計算機生成兵力(Computer Generated Force,CGF)是指用計算機模型來實現參與仿真的作戰人員或武器系統等仿真對象,其目的在于減少真實作戰人員和武器裝備的參與,降低仿真訓練的成本[1]。其中,實體模型包含實現兵力對象所需的各種子系統模型及參數,最主要的是兵力對象的動力學模型[2]。本文針對計算機生成兵力中的目標動力模型進行設計,主要描述飛機和導彈的動力模型,采用相對簡化的模型,以減少動態模型所占用的計算時間[3]。
飛機的運動模型主要包括:起飛、延航路飛等,其中最具有代表性的是延航路飛模型。延航路飛模型即飛機按照指定的航路點飛行,要求當飛機飛到指定航路點時也達到指定的速度和方向[4]。
飛機收到延航路飛的指令之后,先計算出相應的關鍵信息,再依據飛機機動庫里面的機動函數實現飛機運動的生成,其主要流程如圖1 所示。
設h0、P0點為飛機當前的方向和位置,h1、P1點為飛機目標的方向和位置。飛機從P0飛向P1,可以分為三個階段:一次航向調整、直線飛行、二次航向調整,如圖2 所示。

圖1 航路飛行運動流程

圖2 飛機可能飛行路線示意圖
如圖2 所示,飛機當前點和目標點各有兩個圓可以調整方向,故從當前點到目標點有四種情況:①右右;②左右;③右左;④左左。在飛機轉彎方向未定的情況下,選擇最短的飛行路徑。確定了飛機兩次轉彎方向的航路飛行路線的關鍵點如圖3 所示。

圖3 飛行航路關鍵信息
其中點P0、h0表示飛機的起始位置和起始方向,點P1、h1表示飛機的目標位置和目標方向,點O0、O1表示飛機第一、二次航向調整圓心,點A、B 表示直線飛行開始點和結束點,hab表示直線飛行的方向,a0、b0表示第一、二次旋轉角度。
導彈飛行過程有發射段、轉彎段、制導段和遭遇段四個階段,根據導彈飛行各階段分別建立運動模型。
(1)發射段
從導彈發射到導彈開始轉彎這一階段被稱為導彈的發射段,該段的描述為:到達發射時延后,導彈從發射筒離開并按照某個傾角射出,如圖4。

圖4 導彈的發射示意圖
圖4 中,彈道傾角θ(導彈的速度矢量V 與水平面的夾角),水平向上為正,反之為負。彈道偏角φ(導彈的速度矢量V 在水平面的投影與地面坐標x 軸的夾角),逆時針為正,反之為負。
實驗中不考慮導彈的氣動力情況[5],故在導彈的發射段不考慮Fv(垂直升力)、Fh(水平面側向力)、Fr(水平阻力),只考慮重力情況。其中:

導彈的運動學方程如下所示:

Vx,Vy,Vz分別為導彈速度矢量V 在坐標軸上的分量,x0,y0,z0為導彈發射點在地面坐標系的位置。在不考慮空氣阻力等環境因素的情況下,導彈的發射過程可認為在重力作用下做曲線上拋運動。
(2)轉彎段
從導彈轉彎開始到轉向完畢的階段,稱為導彈轉彎段,其示意圖如圖5。

圖5 導彈轉彎示意圖
將導彈轉彎開始的速度矢量Vi和轉彎結束的速度矢量Ve可分解為:

由此可得到,轉彎段轉動的空間夾角μ 在xy 平面的夾角為:

轉彎段轉動的空間夾角μ 在xz 平面的夾角為:

(3)制導段
導彈的制導段分為中制導段和末制導段。導彈轉彎結束以后將導彈引至一定的距離范圍,此階段稱為中制導段。目標進入一定距離范圍,導彈進入末制導段[5]。當前最普遍使用的末制導引律是比例導引律[6]。下面是比例導引律方程:


圖6 導彈比例導引律的示意圖
如圖6 所示,將導彈和目標的運動簡化為質點的運動(將導彈與目標的運動限制在平面內)。圖中ON表示基準參考線,目標在T 點,導彈在M 點;VM為導彈的速度,?M為導彈航跡角,表示導彈速度與視線MT 的夾角,導彈速度向量前置角θM,表示導彈速度與基準線ON 的夾角;目標的速度為VT,目標航跡角?T,表示目標速度與視線MT 的夾角,目標速度向量前置角θT,表示目標速度與基準線ON 的夾角;r 表示彈目距離,q 表示基準線夾角(基準線ON 與視線MT的夾角)。距離和角度變化律方程如下:

得到導彈的運動學方程組如下:

在有限時間內必須滿足r →0,才能讓導彈命中目標,故對導彈的運動施加不同的約束條件產生不同的引導方法。
(4)遭遇段
導彈的遭遇段是指導彈根據目標信息進行飛行,并與目標發生碰撞、爆炸并摧毀目標的階段[5]。
設計運動模型(CBaseDriver)基類,飛機運動模型(CPlaneDriver)、導彈(CMissileDriver)分別繼承CBase-Driver,生成用于目標機動計算的運動學模型庫,供目標機動計算使用。
CBaseDriver 類的DoUpdate()函數為目標機動計算主函數:首先,根據目標實體類型調用CMissileDriver類或CPlaneDriver 類的GetPerformance()函數獲取要計算的目標實體的運動參數,調用GetObject()函數獲取目標實體當前狀態,包含位置、速度、損傷狀態等,完成目標機動計算所需數據的準備工作;然后依次調用CBaseObj 類中的DoCMD()函數,順序執行指令隊列中的指令,根據指令類型,分別調用AdjustSpd()、Adjust-Alt()、FlyToPoint()、Hold()、Crash()、Attack()等函數模擬飛機和導彈的運動,計算目標在當前幀的位置信息和速度信息,采用SetObjPos()、SetObjPose()等函數設置目標當前狀態;最后,將指令執行結果發送至CCMDManager 類。實現類圖如圖7。
計算機生成兵力是分布式交互仿真的一個重要組成部分[7]。本文針對計算機生成兵力的目標動力模型進行了分析,其中重點對飛機的航路飛行模型和導彈的運動模型進行了介紹,并給出了目標設計的實現思路,模型采用模塊化的設計方式,可重用性好,為計算機生成兵力系統的快速開發提供有效支撐。CGF 系統是未來作戰仿真所必備的技術支持,發展前景廣闊[8]。我們在開發過程中不僅要總結以前還要注意瞄準未來,未來的戰術思想、戰爭模型等會有新的特點,只有抓住這些特點才能讓我們的CGF 系統跟上世界潮流。

圖7 目標計算設計實現類圖