蘇玉婷,侯 磊,李艷飛
(1.北方自動控制技術研究所,太原 030006;2.北方信息控制研究院集團有限公司,南京 211100)
傳統的模塊化和面向對象的建模方法因其在重用性和互操作性方面的限制,無法滿足現代作戰模擬訓練系統對模型重用性和靈活性的要求。開發作戰模擬訓練系統亟需有效手段以適應系統模型擴展頻繁、內容復雜的特點[1-2]。組件化建模技術的出現[3-8],使得模型開發具有了可重用性,大大提高了開發效率。組件化建模方法繼承自面向對象的建模方法,其建模的步驟可抽象為:分解(實體)->建模實現(組件)->組裝(實體)->應用。
在對復雜作戰系統進行建模的過程中,行為建模是其中很重要的一個環節,因此,探索作戰訓練中各種行為建模的有效方法是作戰演練仿真的基礎[9-10]。計算機生成兵力(Computer Generated Forces,CGF)機動行為是指CGF為達成作戰目的,在虛擬戰場上進行有組織、有計劃的兵力轉移活動[11]。CGF機動行為受到包括地質、地形、道路、天候等自然因素和戰場實體、人工防御工事、建筑等人為因素的制約。
傳統的作戰仿真實體建模多采用的是以對象為中心,綜合功能抽象和數據抽象的面向對象的建模方法。目前由該方法構建的作戰仿真實體模型,在推動部隊信息化建設和模擬訓練方面發揮了積極的促進作用。但由于各單位所采用的設計方法和技術體制不盡相同,導致在進行軍兵聯合作戰仿真等具體應用時存在一些典型問題,包括模型粒度、模型重用和建模效率等。組件化建模的方法則是以組件為中心,按照對象本身固有的功能屬性或者承擔的任務屬性進行拆解,將其封裝為組件,再將其組裝為實體進行應用。組件化建模方法的建模流程包括組件設計、組件開發、組件裝配、組件參數化,以及對象存儲等5個環節,其中組件設計是組件化建模的關鍵環節。組件化建模開發方法如圖1所示[1]。

圖1 組件化建模開發方法
以美陸軍機械化步兵與坦克營為例,在現代戰場上,機械化步兵與坦克營(連)通常采取特遣隊(戰斗隊)的戰斗編組組織實施主動式的攻防機動戰斗。機動作為戰斗力的四大要素(機動、火力、防護和領導)之一,其重要性可見一斑。營特遣隊(連或連戰斗隊)的基本使命是接近敵方,其主要的機動效果包括:1)接近敵方目標;2)通過進攻機動行為進行突破、包圍;3)實施追擊戰斗;4)進攻中向任何方向機動等等。
需要注意的是其機動力受地形、水障礙、道路條件、天候條件等限制,需根據限制條件修正其機動速度和行進隊形。營特遣隊在不同的任務、敵情和地形下可選擇采用包圍、突破、正面進攻、迂回和滲透等機動樣式。
實施包圍的要求是:利用隱蔽的路線接近敵軍,發起沖擊的點為敵方的防御薄弱點,占領敵方無兵力防守的關鍵地形,迫使敵方放棄預先準備的陣地。另外,迂回是包圍的一個變種。實施突破需要在一條或幾條進攻軸線上實施。滲透通常是突破或包圍行動的一部分。正面進攻需要沿著最直接的路線機動,打擊正面上的敵人。
運用上述進攻機動樣式時,還需具體規定下述控制措施:目標、戰斗分界線、行動地域、進攻軸線、進攻方向、進攻出發線、連戰斗隊或連的進攻出發陣地、最后協調線、集結地域、檢查點。其中,目標包括當前目標和最終目標、中間目標,指定方向的目標和不規定目標時用檢查點代替的目標,檢查點一般需沿著機動計劃設置。
作戰仿真實體最基本的機動行為有前進、后退、加減速和左右轉向。除此之外,還需構建仿真實體與具體戰場情景相結合的各種復雜機動行為[12-18]。在向目標位置機動的建模過程中,需要通過構造路徑并沿著生成路徑上的坐標點進行位置解算來完成。追逐或躲避目標時,需要通過不斷比較追逐與被追逐實體的坐標來選擇遞增或遞減追逐實體的位置坐標。徘徊行為也屬于移動路徑中機動行為的一種,該行為在位置解算需要隨機移動目標位置。偏移跟隨行為一般多用于作戰仿真實體的跟蹤行為或者隊形保持行為等。此外,還有兩種避障機動行為,即靜態避障和動態避障,需要建立一定的避障策略。
實體位置信息的更新機制是實體行為模型的基礎,本文中模型測試時所采用的機動路徑是路徑跟隨行為。可處理的機動指令包括按照既定的路徑點機動、機動到指定位置、返回基地、武器向目標機動和按指定方向機動等等。
路徑跟隨行為使可移動實體沿著構成路徑的一系列點順次移動,路徑可以是循環路徑也可以設定起點與終點。通過路徑跟隨行為,可以完成實體的巡邏、偵察、道路導航、特殊地形導航等功能。路徑點的數量與具體的應用環境有關,一般設立的路徑點越多越緊密,可以使實體的移動呈現出越高的精度[9]。

圖2 由路徑點順次構成的移動路徑
本文中的機動模型是在XSIM可擴展仿真平臺上進行設計的,主要采用組件化建模思想,將作戰仿真實體和機動組件分別進行開發,再將已完善過的機動組件裝配到作戰仿真實體中,完成建模過程。利用XSIM可擴展仿真平臺提供的想定編輯軟件部署實體模板,在想定場景中驗證對真實裝備建模的正確性。仿真實體模型的組成機構如圖3所示。

圖3 仿真實體模型組成
實體模型規定了實體可具備的基本特征,可控制和協同組件模型工作,實現對實體能力的仿真。機動組件用于描述實體的運動方式,實體的運動能力通過機動組件進行模擬。根據實體戰場控件及運動特性的不同可構建分層次多樣化的機動組件,可通過關鍵方法AddComponent()將機動組件裝配到實體上構成機動模型。模型開發流程主要包括以下幾個步驟:仿真模型設計、模型代碼實現、模型測試、入庫等。模型設計工具用于設計生成仿真實體、組件等模型的基本代碼框架,其工作流程圖如圖4所示,戰術機動模型的戰術機動邏輯流程圖如圖5所示。

圖4 模型設計工具工作流程圖

圖5 戰術機動邏輯流程圖
實體和組件模型編輯主要是選擇所需要集成的父類,添加自有屬性、自有方法,以及添加能夠處理的消息、態勢或指令類型,并聲明處理接口。其中,實體模型能夠對消息和態勢進行處理,組件模型可以對指令進行處理。
實體和組件類創建完成后,生成C++代碼框架,生成完畢后,在其生成的代碼框架上添加模型方法實現,完善模型功能。機動組件的功能就是對實體的位置、速度等進行處理和更新。本文在設計模型時自定義“加速度”屬性對實體的位置Position、速度Velocity、航向角Heading和俯仰角Pitch等機動狀態進行更新。
類“屬性”的注冊相關的宏BEGIN_METADATA(HRDemoMotionData)與 END_METADATA()宏協同工作,完成了機動類屬性信息采集器的定義;REG_BASE(TSMotionCom::DataType):通過該宏完成父類信息的注冊;REG_PROP(AccSpeed,“加速度”):通過該宏完成類屬性的注冊。
在機動模型設計工具中,選取機動組件基類TSMotionCom作為新建的父類,重寫關鍵方法Motion()來進行運動狀態的解算和更新,重寫OnControl()方法來處理指令C2_MOVEWAYPOINT,并將指令參數作為機動參數SetMotionParam()。機動參數獲取方法為GetMotionParameter(),返回值類型轉換為TSWaypointMotionParamPtr,其中包含路徑點信息等實體運動的依據,例如,獲取航跡點列表Get-WaypointList(),獲取當前位置點坐標GetDesirePos(),獲取指令速度GetCmdSpeed()。當前仿真時間的獲取方法為GetSimTime(),獲取位置更新時間的方法為 GetBSE()->GetUpdateTime(),獲取積分步長的方法為GetDt(),可通過宏TD2SECS轉換為DOUBLE類型,單位為(s)。判斷到達當前路徑點時,調用接口AdjustCurrentWaypoint()調整目標點為下一個航跡點。根據當前的位置及速度,可以計算航向角和俯仰角。最終的目的是為了設置計算出的實體新的位置(SetPosition)、速度(SetVelocity)、航向(SetHeading)以及俯仰角(SetPitch)。
編寫完畢的代碼在應用到模型裝配工具中時需對其進行編譯,生成動態鏈接庫文件。
表1中列出了與機動模型設計相關的方法及其描述,下頁表2中列出了與機動組件相關的控制消息,表3列出了基本的機動態勢。

表1 機動模型設計相關方法及其描述

表2 機動組件相關的控制消息

表3 基本的機動態勢
模型開發需安裝Microsoft Visual Studio 2010開發平臺及XSimStudio仿真平臺,以完成代碼編寫、模型發布、模型裝配、測試等工作。打開模型設計工具應用程序XCreator.exe,點擊“模型設計”菜單下的“新建”選項,彈出“項目屬性”窗口。為模型添加一個新屬性,點擊屬性列表的“添加”按鈕,彈出“屬性編輯”對話框。“基礎數據”選項表明該屬性在組件實例化后即不會改變,生成代碼時會被添加到模型數據類中。填寫完屬性的名稱、類型等,點擊【確定】按鈕,一個屬性添加完成。
基礎數據類TSMotionComBasicData中主要包含以下屬性:最小速度和最大速度。
機動組件基類TSMotionCom中主要包含以下屬性:用于對運動過程精細解算時的仿真時間間隔的積分步長和外部傳入的機動參數。
實體和機動組件模型設計視圖如圖6所示,參數編輯對話框如圖7所示。

圖6 模型設計視圖界面示意圖

圖7 參數編輯對話框
機動模型的關鍵屬性是最大速度、最小速度、積分步長、機動參數等,調試模型代碼時可根據具體要調試的對象設置斷點。在模型項目中附加引擎進程時,打開想定運行工具,勾選“引擎運行時需用戶確認(便于程序調試跟蹤)”選項,點擊【開始運行】按鈕,啟動仿真引擎運行。模型測試流程圖如下頁圖8所示。
在想定編輯工具中,在可部署實體模板庫中將所需實體模型部署地圖中,部署好之后設定起始點和目標點,測試戰術機動模型的機動性能,想定編輯界面如圖9所示。啟動仿真引擎之后勾選“運行完畢后自動開始回放”選項,在態勢顯示工具中測試模型的機動性能,態勢顯示界面如圖10所示。

圖8 模型測試流程圖

圖9 想定編輯工具部門界面示意圖

圖10 態勢顯示結果
測試結果表明:組裝完成的戰術機動模型,能夠按照勻變速運動的規律,沿著“機動計劃”中路徑點的位置和速度前進,并在到達最后一個路徑點后靜止。
本文以XSIM仿真平臺為基礎,運用組件化建模技術,結合戰術機動概念和移動路徑(測試中為路徑跟隨行為),初步構建了作戰實體機動模型。詳細介紹了基于組件化建模技術的戰術機動模型建模過程,并運用平臺自帶的想定編輯和態勢顯示工具,驗證了戰術機動模型的可用性。可通過修改模型的參數進行實例化,將其應用在具體型號的仿真實體機動中。在今后的研究工作中,將繼續開發諸如傳感器組件、探測組件、火力組件等模型,將戰術概念與組件化建模技術進行更加深入的結合,以期實現復雜系統的作戰仿真,并根據具體的模型進行算法的改進,提高模型的效率和逼真度。