蘇玉婷,侯 磊,李艷飛
(1.北方自動控制技術(shù)研究所,太原 030006;2.北方信息控制研究院集團(tuán)有限公司,南京 211100)
傳統(tǒng)的模塊化和面向?qū)ο蟮慕7椒ㄒ蚱湓谥赜眯院突ゲ僮餍苑矫娴南拗疲瑹o法滿足現(xiàn)代作戰(zhàn)模擬訓(xùn)練系統(tǒng)對模型重用性和靈活性的要求。開發(fā)作戰(zhàn)模擬訓(xùn)練系統(tǒng)亟需有效手段以適應(yīng)系統(tǒng)模型擴(kuò)展頻繁、內(nèi)容復(fù)雜的特點[1-2]。組件化建模技術(shù)的出現(xiàn)[3-8],使得模型開發(fā)具有了可重用性,大大提高了開發(fā)效率。組件化建模方法繼承自面向?qū)ο蟮慕7椒ǎ浣5牟襟E可抽象為:分解(實體)->建模實現(xiàn)(組件)->組裝(實體)->應(yīng)用。
在對復(fù)雜作戰(zhàn)系統(tǒng)進(jìn)行建模的過程中,行為建模是其中很重要的一個環(huán)節(jié),因此,探索作戰(zhàn)訓(xùn)練中各種行為建模的有效方法是作戰(zhàn)演練仿真的基礎(chǔ)[9-10]。計算機(jī)生成兵力(Computer Generated Forces,CGF)機(jī)動行為是指CGF為達(dá)成作戰(zhàn)目的,在虛擬戰(zhàn)場上進(jìn)行有組織、有計劃的兵力轉(zhuǎn)移活動[11]。CGF機(jī)動行為受到包括地質(zhì)、地形、道路、天候等自然因素和戰(zhàn)場實體、人工防御工事、建筑等人為因素的制約。
傳統(tǒng)的作戰(zhàn)仿真實體建模多采用的是以對象為中心,綜合功能抽象和數(shù)據(jù)抽象的面向?qū)ο蟮慕7椒āD壳坝稍摲椒?gòu)建的作戰(zhàn)仿真實體模型,在推動部隊信息化建設(shè)和模擬訓(xùn)練方面發(fā)揮了積極的促進(jìn)作用。但由于各單位所采用的設(shè)計方法和技術(shù)體制不盡相同,導(dǎo)致在進(jìn)行軍兵聯(lián)合作戰(zhàn)仿真等具體應(yīng)用時存在一些典型問題,包括模型粒度、模型重用和建模效率等。組件化建模的方法則是以組件為中心,按照對象本身固有的功能屬性或者承擔(dān)的任務(wù)屬性進(jìn)行拆解,將其封裝為組件,再將其組裝為實體進(jìn)行應(yīng)用。組件化建模方法的建模流程包括組件設(shè)計、組件開發(fā)、組件裝配、組件參數(shù)化,以及對象存儲等5個環(huán)節(jié),其中組件設(shè)計是組件化建模的關(guān)鍵環(huán)節(jié)。組件化建模開發(fā)方法如圖1所示[1]。

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

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

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

圖4 模型設(shè)計工具工作流程圖

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

表1 機(jī)動模型設(shè)計相關(guān)方法及其描述

表2 機(jī)動組件相關(guān)的控制消息

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

圖6 模型設(shè)計視圖界面示意圖

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

圖8 模型測試流程圖

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

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