侯國(guó)超
(解放軍91336部隊(duì),河北 秦皇島 066000)
作戰(zhàn)仿真實(shí)體是開(kāi)展作戰(zhàn)仿真實(shí)驗(yàn)、推演、訓(xùn)練等工作必不可缺的物質(zhì)基礎(chǔ),是對(duì)作戰(zhàn)仿真要素及其組織關(guān)系的高度抽象,對(duì)其進(jìn)行建模的質(zhì)量與科學(xué)管理已成為當(dāng)前作戰(zhàn)仿真領(lǐng)域研究的關(guān)鍵環(huán)節(jié)。當(dāng)前作戰(zhàn)仿真實(shí)體模型的構(gòu)建已經(jīng)覆蓋了各個(gè)軍兵種專業(yè)的諸多領(lǐng)域,由于各單位采用的建模手段和技術(shù)體制千差萬(wàn)別,導(dǎo)致在進(jìn)行作戰(zhàn)仿真具體應(yīng)用時(shí)實(shí)用性不強(qiáng),往往是不同的應(yīng)用開(kāi)發(fā)不同的模型,資源浪費(fèi)嚴(yán)重[1]??紤]軍事仿真的現(xiàn)實(shí)需求,本文摒棄華而不實(shí)、高大前沿的理論方法,一切從用戶體驗(yàn)和需求出發(fā)[2],提出一種組件化建模方法。
組件化的工作方式信奉獨(dú)立、完整、自由組合[3],目標(biāo)就是盡可能把設(shè)計(jì)與開(kāi)發(fā)中的元素獨(dú)立化,使它具備完整的局部功能,通過(guò)自由組合來(lái)構(gòu)成整個(gè)產(chǎn)品,從而滿足不同模型粒度的需求,使其在支持不同規(guī)模的仿真應(yīng)用的同時(shí),能夠兼具較高的可信度[4]。
作戰(zhàn)實(shí)體是戰(zhàn)場(chǎng)空間中具有特定軍事行為能力的對(duì)象,這些軍事行為需要通過(guò)作戰(zhàn)實(shí)體仿真模型實(shí)現(xiàn)?;谧鲬?zhàn)實(shí)體的各項(xiàng)能力,采用組件化建模思想,將作戰(zhàn)實(shí)體具有的運(yùn)動(dòng)能力、感知能力、通信能力、干擾能力、行為能力、數(shù)據(jù)處理能力、資產(chǎn)管理能力等設(shè)計(jì)為功能組件,通過(guò)組件的合理裝配得到作戰(zhàn)實(shí)體的仿真模型[5],如圖1所示。
圖1 作戰(zhàn)實(shí)體仿真模型框架
實(shí)體模型是作戰(zhàn)實(shí)體的集成平臺(tái)(就像計(jì)算機(jī)的主板),提供其他組件的集成交互接口以及作戰(zhàn)實(shí)體與外界的交互接口。
行為組件實(shí)現(xiàn)作戰(zhàn)實(shí)體的指揮決策能力(實(shí)現(xiàn)指揮決策過(guò)程)及作戰(zhàn)行動(dòng)能力(實(shí)現(xiàn)任務(wù)執(zhí)行過(guò)程)。行為組件需要處理來(lái)自于本作戰(zhàn)實(shí)體所帶傳感器的感知報(bào)告、來(lái)自于通信網(wǎng)絡(luò)的由上/下/平級(jí)發(fā)送的命令/報(bào)告/請(qǐng)求消息、來(lái)自于事件管理器的“非感知事實(shí)”態(tài)勢(shì)事件(比如想定初始化、被摧毀、機(jī)動(dòng)到制定地點(diǎn)等)。在這些情況的處理過(guò)程中可以調(diào)度其它任務(wù)組件并與之進(jìn)行交互。行為組件分為任務(wù)能力組件和行為樹(shù)組件。
任務(wù)能力組件是對(duì)作戰(zhàn)實(shí)體某種特定行動(dòng)或決策實(shí)施過(guò)程的描述,主要實(shí)現(xiàn)相關(guān)活動(dòng)的執(zhí)行邏輯、流程及異常的處理,如空域巡邏、對(duì)地突擊、防空指揮、海軍搜潛反潛任務(wù)能力以及其它各類指揮、作戰(zhàn)任務(wù)能力。開(kāi)發(fā)任務(wù)能力組件前,模型設(shè)計(jì)人員需事先明確某特定作戰(zhàn)實(shí)體能夠執(zhí)行的特定行動(dòng)和決策任務(wù)類型。若多個(gè)作戰(zhàn)實(shí)體(如不同類型飛機(jī)或水面艦艇等)均具備某種類似的指揮決策或作戰(zhàn)行動(dòng)能力(如機(jī)動(dòng)、巡邏等),可以將這種能力抽象設(shè)計(jì)成任務(wù)能力組件,通過(guò)為作戰(zhàn)實(shí)體配置/移除任務(wù)組件而不是將某些能力固化在模型內(nèi)部,能更靈活地賦予或限制實(shí)體的能力。
任務(wù)能力組件適合于規(guī)則非常確定且流程復(fù)雜的行為建模,如空域巡邏、對(duì)地突擊等,而對(duì)于規(guī)則多變、流程短小的行為模型,則可以通過(guò)行為樹(shù)模型來(lái)實(shí)現(xiàn)。行為樹(shù)組件本身提供了一套完備的行為建模體系,它由一系列原子節(jié)點(diǎn)和子行為樹(shù)組合而成,行為樹(shù)編輯工具提供了各節(jié)點(diǎn)的可視化編輯,包括節(jié)點(diǎn)的調(diào)用流程及數(shù)據(jù)流向的可視化編輯,模型開(kāi)發(fā)人員只需描述清楚原子節(jié)點(diǎn)的輸入和輸出參數(shù)以及任務(wù)的執(zhí)行邏輯、流程及異常的處理,再由模型使用人員根據(jù)實(shí)際任務(wù)需要,組合出特定的行為樹(shù),再裝配到實(shí)體中即可使用,因此行為樹(shù)節(jié)點(diǎn)越豐富,涵蓋的任務(wù)越廣,可復(fù)用程度也越高。
機(jī)動(dòng)組件模擬作戰(zhàn)實(shí)體的空間移動(dòng)能力。開(kāi)發(fā)機(jī)動(dòng)組件時(shí),模型設(shè)計(jì)人員需事先明確某特定作戰(zhàn)實(shí)體的戰(zhàn)場(chǎng)空間(如地面、空中、空間、水面、水下等),實(shí)體運(yùn)動(dòng)的特性、精細(xì)程度、環(huán)境因素等,選擇合適的運(yùn)動(dòng)外推算法,完成相應(yīng)機(jī)動(dòng)組件的開(kāi)發(fā)[6]。實(shí)體建模人員只需根據(jù)實(shí)際情況讓作戰(zhàn)實(shí)體掛載所使用的機(jī)動(dòng)組件并提供必要的驅(qū)動(dòng)數(shù)據(jù),作戰(zhàn)實(shí)體及其所屬組件可以在任何需要運(yùn)動(dòng)需求時(shí)通過(guò)實(shí)體向機(jī)動(dòng)組件發(fā)送機(jī)動(dòng)控制指令,機(jī)動(dòng)組件根據(jù)該需求來(lái)完成作戰(zhàn)實(shí)體在空間上的移動(dòng),同時(shí)也會(huì)主動(dòng)將運(yùn)動(dòng)過(guò)程中的一些情況(比如路徑點(diǎn)變化)通過(guò)事件通知作戰(zhàn)實(shí)體,并將最新的位置狀態(tài)信息(如速度、位置、姿態(tài)等)更新至所屬的作戰(zhàn)實(shí)體;作戰(zhàn)實(shí)體及其所屬組件也可以在任何有運(yùn)動(dòng)信息需求的地方調(diào)用實(shí)體的查詢接口來(lái)獲取關(guān)注的信息(如速度、位置等)[7]。
傳感器組件模擬作戰(zhàn)實(shí)體的探測(cè)能力,是對(duì)雷達(dá)、可見(jiàn)光、紅外、聲納、人體感知器官等類型探測(cè)設(shè)備的功能模擬。傳感器組件的發(fā)現(xiàn)/丟失目標(biāo)事件是其本身經(jīng)過(guò)周期性探測(cè)獲得的,進(jìn)而將發(fā)現(xiàn)目標(biāo)上報(bào)實(shí)體模型,由實(shí)體模型負(fù)責(zé)對(duì)目標(biāo)進(jìn)行下一步處理。開(kāi)發(fā)傳感器組件時(shí),模型設(shè)計(jì)人員需事先明確要開(kāi)發(fā)的傳感器類型及相應(yīng)的探測(cè)算法等,完成開(kāi)發(fā)實(shí)現(xiàn),建模人員需根據(jù)實(shí)際情況讓作戰(zhàn)實(shí)體掛載所使用的傳感器組件并提供必要的驅(qū)動(dòng)數(shù)據(jù),同時(shí)處理傳感器發(fā)送的探測(cè)報(bào)告。
通信設(shè)備組件是實(shí)體間完成通信的重要設(shè)備組件,模擬了作戰(zhàn)實(shí)體的通信能力,是對(duì)有線、無(wú)線(微波、超短波、短波、高速電臺(tái)等)通信設(shè)備等功能模擬。當(dāng)作戰(zhàn)實(shí)體需要向其它實(shí)體發(fā)送消息時(shí),在指定消息類型、消息內(nèi)容及消息接收者后直接調(diào)用實(shí)體模型的消息發(fā)送接口;當(dāng)其它作戰(zhàn)實(shí)體向自己發(fā)送消息時(shí),目標(biāo)實(shí)體模型將通過(guò)通信設(shè)備的入網(wǎng)情況,模擬網(wǎng)絡(luò)傳輸延遲后將消息送至本實(shí)體的消息處理接口,建模人員需要在各消息處理接口中添加處理邏輯。通信設(shè)備組件讓實(shí)體擁有收發(fā)消息的能力,但實(shí)體間的通信效果(聯(lián)通性和延遲)不取決于通信設(shè)備組件本身,而取決于網(wǎng)絡(luò)仿真模型。
干擾設(shè)備組件模擬作戰(zhàn)實(shí)體的電子干擾能力,主要針對(duì)傳感器、通信設(shè)備、GPS等干擾功能模擬。干擾設(shè)備組件周期性地向指定方向發(fā)送輻射數(shù)據(jù),通過(guò)底層提供的輻射源注冊(cè)機(jī)制,將干擾設(shè)備注冊(cè)成為輻射源。目標(biāo)電子設(shè)備通過(guò)搜索周圍的輻射源,調(diào)用干擾處理算法計(jì)算輻射數(shù)據(jù)對(duì)自己的干擾效果。因此,開(kāi)發(fā)干擾設(shè)備組件時(shí),模型設(shè)計(jì)人員確定輻射數(shù)據(jù)的構(gòu)成,并將自身注冊(cè)為輻射源,被輻射電子設(shè)備給出對(duì)自身輻射計(jì)算的效果算法,完成該模型及相關(guān)模型被干擾計(jì)算的開(kāi)發(fā)實(shí)現(xiàn),建模人員需根據(jù)實(shí)際情況讓作戰(zhàn)實(shí)體掛載所使用的干擾設(shè)備組件并提供必要的驅(qū)動(dòng)數(shù)據(jù)。
數(shù)據(jù)處理組件模擬作戰(zhàn)實(shí)體的情報(bào)數(shù)據(jù)處理能力,主要針對(duì)傳感器探測(cè)、下級(jí)上報(bào)的情報(bào)信息進(jìn)行數(shù)據(jù)融合處理。數(shù)據(jù)處理組件管理未處理情報(bào)數(shù)據(jù)表和已處理情報(bào)數(shù)據(jù)表,通過(guò)周期性檢查所在實(shí)體接收到的和所在實(shí)體搭載的傳感器探測(cè)產(chǎn)生的情報(bào)數(shù)據(jù),調(diào)用數(shù)據(jù)融合算法處理情報(bào),生成或更新已有情報(bào)數(shù)據(jù)。開(kāi)發(fā)數(shù)據(jù)處理組件時(shí),模型開(kāi)發(fā)人員需要在模型設(shè)計(jì)工具提供的建??蚣艿幕A(chǔ)上,添加相應(yīng)的數(shù)據(jù)融合算法,或者繼承修改其他算法接口(如更新情報(bào)、情報(bào)編批等接口),即可完成數(shù)據(jù)處理組件的開(kāi)發(fā),底層建模框架已完成數(shù)據(jù)處理交互實(shí)現(xiàn)。
資產(chǎn)管理器管理作戰(zhàn)實(shí)體所擁有的資產(chǎn)(如裝備、物質(zhì)、設(shè)施、人員等),實(shí)現(xiàn)資產(chǎn)的查詢、存儲(chǔ)、消耗和預(yù)留等管理功能。戰(zhàn)場(chǎng)空間中所有被作戰(zhàn)實(shí)體持有、占據(jù)、存儲(chǔ)、裝載和使用的資源,被稱之為作戰(zhàn)實(shí)體的資產(chǎn),如作戰(zhàn)飛機(jī)裝載的彈藥和油料。資產(chǎn)在仿真過(guò)程中的存在形態(tài)僅是資源的屬性數(shù)據(jù)集。資產(chǎn)作為作戰(zhàn)實(shí)體所持有和使用的資源,體現(xiàn)和約束了作戰(zhàn)實(shí)體的軍事行為能力。作戰(zhàn)實(shí)體建模時(shí)可通過(guò)資產(chǎn)管理器配置不同類型、數(shù)量的資產(chǎn),以體現(xiàn)作戰(zhàn)實(shí)體本身所應(yīng)具備的打擊、探測(cè)、運(yùn)輸、通信等各種行為能力。
作戰(zhàn)實(shí)體模型是在底層仿真運(yùn)行支撐平臺(tái)的調(diào)度和服務(wù)支持下運(yùn)行的,如圖2所示。圖2左邊是仿真引擎的調(diào)度邏輯,中間是實(shí)體模型框架核心接口,右邊是組件模型。
圖2 模型與仿真引擎的調(diào)用關(guān)系圖
仿真開(kāi)始后,仿真引擎首先加載動(dòng)態(tài)庫(kù)并對(duì)其進(jìn)行初始化。實(shí)體模型的加載及初始化接口在響應(yīng)仿真引擎的這項(xiàng)調(diào)度時(shí),除了完成指控關(guān)系綁定、自身屬性設(shè)置、初始任務(wù)設(shè)置、初始戰(zhàn)場(chǎng)態(tài)勢(shì)等作戰(zhàn)實(shí)體層面初始化工作外[8],還會(huì)要求所屬的其他組件也作相應(yīng)的初始化工作,并向仿真引擎的事件管理器提交初始化事件。
然后,啟動(dòng)仿真循環(huán),不斷對(duì)事件列表中的頭事件進(jìn)行處理并在處理完成后刪除這個(gè)頭事件,直到事件列表為空。在這個(gè)過(guò)程中,實(shí)體模型通過(guò)不斷提交事件完成相關(guān)功能模塊的處理,同時(shí)調(diào)度所屬的其他組件模型執(zhí)行相應(yīng)接口。例如,通過(guò)機(jī)動(dòng)組件的機(jī)動(dòng)解算完成實(shí)體位置、姿態(tài)信息的更新,通過(guò)傳感器組件探測(cè)產(chǎn)生原始情報(bào)觸發(fā)實(shí)體模型的探測(cè)報(bào)告處理模塊,實(shí)體間收發(fā)信息則需要通過(guò)通信設(shè)備及所屬網(wǎng)絡(luò)模型完成消息的傳遞,此外,還有模型運(yùn)行過(guò)程中產(chǎn)生的態(tài)勢(shì)及周期性事件等。仿真循環(huán)結(jié)束后,注銷卸載模型動(dòng)態(tài)庫(kù),同時(shí)通知實(shí)體模型進(jìn)行仿真結(jié)束處理,除了完成內(nèi)存清理、實(shí)體注銷等作戰(zhàn)實(shí)體層面的清理工作外,還會(huì)要求其他組件也作相應(yīng)的清理工作。
模型的運(yùn)行流程如圖3所示,描述了從仿真開(kāi)始到結(jié)束整個(gè)過(guò)程中,模型參與的各個(gè)階段。
圖3 模型運(yùn)行流程圖
仿真運(yùn)行開(kāi)始后,首先完成引擎的初始化,主要包括創(chuàng)建并初始化仿真框架、初始化各個(gè)管理器(如時(shí)間管理器、對(duì)象管理器、戰(zhàn)場(chǎng)管理器、服務(wù)管理器等),然后加載模型動(dòng)態(tài)庫(kù),加載模型基礎(chǔ)數(shù)據(jù),加載運(yùn)行的想定,并根據(jù)想定中包含的實(shí)體數(shù)結(jié)合所在計(jì)算機(jī)的CPU性能,為各實(shí)體均勻分配運(yùn)行簇,對(duì)應(yīng)具體的事件管理器,然后啟動(dòng)時(shí)間管理器,調(diào)度模型的初始化接口,完成初始事件的提交,接著進(jìn)入事件隊(duì)列的處理循環(huán),期間引擎會(huì)處理模型發(fā)出的交互、根據(jù)用戶設(shè)置采集模型數(shù)據(jù)(初始數(shù)據(jù)、運(yùn)行期數(shù)據(jù)等),直到仿真結(jié)束時(shí)間,執(zhí)行仿真結(jié)束處理,包括引擎各個(gè)模塊的清理工作、模型的卸載以及內(nèi)存資源的回收等,最后整個(gè)仿真運(yùn)行結(jié)束[9]。
作戰(zhàn)實(shí)體在仿真運(yùn)行過(guò)程當(dāng)中,不可避免地需要同其他實(shí)體進(jìn)行交互,組件化建模必須要解決組裝之后模型內(nèi)部各組件間的交互問(wèn)題,如圖4所示。XSIM建模框架將模型間的交互方式分為3種,分別是消息、控制指令和態(tài)勢(shì),分別設(shè)計(jì)了各自的定義標(biāo)準(zhǔn)及接口實(shí)現(xiàn),符合框架高內(nèi)聚松耦合的特性,各個(gè)組件模型之間、實(shí)體與實(shí)體之間的所有交互均可通過(guò)這3種方式完成[10]。
圖4 模型間的交互方法
消息是實(shí)體之間真實(shí)通信的方式,可仿真戰(zhàn)術(shù)指令的收發(fā)、情報(bào)數(shù)據(jù)的共享等。真實(shí)的戰(zhàn)場(chǎng)環(huán)境中,消息一定要通過(guò)實(shí)體的通信設(shè)備發(fā)出,經(jīng)由網(wǎng)絡(luò)最終到達(dá)接收端的通信設(shè)備,因此本文設(shè)計(jì)方法建模框架中給出了這一流程的完整實(shí)現(xiàn),并給出了圖形化的編輯界面,供用戶在編輯想定時(shí)添加通信設(shè)備組件和網(wǎng)絡(luò)組件,組織網(wǎng)系結(jié)構(gòu)。實(shí)體間消息收發(fā)過(guò)程如圖5所示。
圖5 實(shí)體間消息收發(fā)過(guò)程
組件化模型仿真的過(guò)程中,除了實(shí)體模型本身和行為組件可仿真作戰(zhàn)人員的邏輯分析、規(guī)劃部署等能力外,不可或缺地需要多種功能裝備組件的配合。裝備組件何時(shí)工作、以怎樣的方式工作、如何相互配合工作等問(wèn)題就需要“控制指令”來(lái)解決,在合適的時(shí)機(jī)分別向各個(gè)裝備組件發(fā)出控制指令,就可達(dá)到協(xié)調(diào)多個(gè)組件共同實(shí)現(xiàn)某種作戰(zhàn)能力的目的。所以,控制指令實(shí)現(xiàn)的是同一實(shí)體內(nèi)部對(duì)裝備組件的操作,如滿足條件打開(kāi)火控雷達(dá),這時(shí)的實(shí)現(xiàn)就是向火控雷達(dá)組件發(fā)送一條類型為“開(kāi)機(jī)”的控制指令。
一般在實(shí)體模型或行為模型中實(shí)現(xiàn)對(duì)裝備組件的控制,但只有獲取到控制權(quán)限才可以向其發(fā)送控制指令,控制行為完成后,再釋放掉控制權(quán)。所以,對(duì)裝備的控制過(guò)程一般分為獲取控制權(quán)、發(fā)送控制指令及釋放掉控制權(quán)這3個(gè)步驟。這種控制權(quán)競(jìng)爭(zhēng)模式在多個(gè)行為并行執(zhí)行時(shí)是十分必要的,如圖6所示。
圖6 實(shí)體內(nèi)部控制指令產(chǎn)生及處理
態(tài)勢(shì)指戰(zhàn)場(chǎng)環(huán)境中的狀態(tài)及形式,主要用于記錄在仿真過(guò)程中產(chǎn)生的關(guān)鍵事件,如實(shí)體加入仿真、實(shí)體消亡、武器發(fā)射等。從仿真元素類繼承的所有對(duì)象均可產(chǎn)生態(tài)勢(shì),而具體哪些事件可以作為態(tài)勢(shì)記錄下來(lái),完全由模型開(kāi)發(fā)者的應(yīng)用需求決定。例如某個(gè)設(shè)備開(kāi)機(jī)時(shí),態(tài)勢(shì)顯示工具需要顯示其開(kāi)始狀態(tài),就要通過(guò)記錄的態(tài)勢(shì)“設(shè)備開(kāi)機(jī)”使繪制工具感知;又例如某實(shí)體死亡時(shí),友方或?qū)Ψ叫枰鶕?jù)這一事實(shí)做出反應(yīng),該實(shí)體就需要記錄“實(shí)體死亡”態(tài)勢(shì)。
記錄的態(tài)勢(shì)可用于界面繪制工作、后期對(duì)態(tài)勢(shì)的統(tǒng)計(jì)及分析工作,也可以作為基于真實(shí)事件感知模式的一種模型交互仿真。這種感知能力基于作戰(zhàn)人員的分析和處理需求,所以實(shí)體模型類及行為組件模型中包含感知處理態(tài)勢(shì)能力的接口。圖7為態(tài)勢(shì)記錄與感知處理過(guò)程。
圖7 態(tài)勢(shì)記錄與感知處理過(guò)程
圖8、圖9為通過(guò)本文作戰(zhàn)仿真實(shí)體模型組件化構(gòu)建方法的實(shí)現(xiàn)案件,模型結(jié)構(gòu)簡(jiǎn)潔明了,符合實(shí)裝裝配邏輯。簡(jiǎn)單表現(xiàn)了由幾個(gè)模型組件自由組合便可形成一個(gè)實(shí)體模型的過(guò)程,仿真系統(tǒng)可以調(diào)用實(shí)體模型開(kāi)始一次仿真推演,整個(gè)仿真過(guò)程中模型內(nèi)部和模型之間自由解算、分工合作、信息交互,完成作戰(zhàn)兵力仿真模擬動(dòng)作,充分證明了該方法的實(shí)用性。
圖8 通過(guò)界面添加飛機(jī)實(shí)體模型
圖9 通過(guò)界面裝配飛機(jī)模型組件
本文提出的建模方法從作戰(zhàn)仿真實(shí)踐出發(fā),模型體系健全,能夠覆蓋全部作戰(zhàn)實(shí)體和裝備,具有很強(qiáng)的操作性和實(shí)用性,真正解決了當(dāng)前的仿真模型體系構(gòu)建的難點(diǎn)問(wèn)題,可以直接面向用戶[11]。