黃玉錢,胡保坤,刁灣灣,夏征華
(杭州師范大學信息科學與技術(shù)學院,浙江 杭州 311121)
技術(shù)進步使當今世界的作戰(zhàn)場景變化多端,為國家強大而研發(fā)新型作戰(zhàn)系統(tǒng)的任務(wù)日益復雜和困難.作戰(zhàn)系統(tǒng)包括戰(zhàn)略、戰(zhàn)術(shù)、訓練和資源(如工具,供應和設(shè)施)[1]等方面.設(shè)計開發(fā)這類新型作戰(zhàn)系統(tǒng)通常包括5個步驟:概念設(shè)計、設(shè)計驗證、原型制作、評估和測試.完成和實現(xiàn)這些步驟需要花費大量的時間和金錢,因為在每個步驟中都使用獨自的方法和技術(shù).擁有強大國防力量的國家在概念設(shè)計階段就開始使用建模和仿真技術(shù)[2-3]以減少作戰(zhàn)系統(tǒng)開發(fā)的時間和成本.建模和仿真技術(shù)的另一個優(yōu)點是:可以通過考慮各種作戰(zhàn)要素,回顧作戰(zhàn)過程中實時變化的數(shù)據(jù),為武器的設(shè)計和研發(fā)帶來便利性和高效性.為此還需要一個能夠獲取作戰(zhàn)過程實時數(shù)據(jù)的方法,以減少因數(shù)據(jù)變化而導致的反復實驗.
基于模型的系統(tǒng)工程(Model Based System Engineering,MBSE)[4-6]是一種使用模型表達設(shè)計的系統(tǒng)工程方法.為了對MBSE進行更好的支持,對象管理組織 (Object Management Group, OMG)和國際系統(tǒng)工程學會 (International Council of Systems Engineering, INCOSE)聯(lián)合開發(fā)了系統(tǒng)建模語言SysML[7-8].SysML是領(lǐng)域無關(guān)的建模語言,可以通過SysML的可擴展性[9]對其進行擴展,以形成領(lǐng)域相關(guān)建模語言(Domain-specific Modeling Language,DSML).
目前基于模型的系統(tǒng)工程概念已被工業(yè)界廣泛研究,并于航天、航空、作戰(zhàn)、動車等領(lǐng)域得到一定應用[10-12].彭斯明[3]等研究人員提出了將系統(tǒng)建模語言(SysML)用于作戰(zhàn)概念的可視化和規(guī)范化描述的方法,并分析了將國防部體系結(jié)構(gòu)框架(Department of Defense Architecture Framework,DoDAF)和SysML相結(jié)合用于作戰(zhàn)概念描述的思想,采用多視圖產(chǎn)品的形式對作戰(zhàn)概念的作戰(zhàn)背景、能力需求、體系構(gòu)成和作戰(zhàn)活動等多個方面進行規(guī)范化描述,最后通過“分布式殺傷”作戰(zhàn)概念作為實例,論證了其所提方法的有效性和可行性.謝文才[13]等研究人員針對當前體系結(jié)構(gòu)的建模方法不是基于統(tǒng)一的元模型規(guī)范,提出了基于元模型的軍事信息系統(tǒng)體系結(jié)構(gòu)建模方法,能夠?qū)崿F(xiàn)不同體系結(jié)構(gòu)框架方法論及體系結(jié)構(gòu)工具下所開發(fā)體系結(jié)構(gòu)的可理解、可比較、可交換等優(yōu)點,促進了體系結(jié)構(gòu)數(shù)據(jù)的共享和重用.蘇瑾[14]等研究人員探索了車輛顯控系統(tǒng)智能構(gòu)建方案中基于元模型的需求建模方法,通過擴展標準系統(tǒng)建模語言定義顯控領(lǐng)域的專用語言,在此基礎(chǔ)上構(gòu)造包含需求域元任務(wù)的可重用模型庫,使系統(tǒng)能夠依照戰(zhàn)場任務(wù)目標自動確定顯控信息內(nèi)容和提供布局方案.該模型的優(yōu)點是使用了元模型建模,使開發(fā)過程更加高效率、規(guī)范化,并且可以支持后續(xù)的任務(wù)功能分解和顯控界面布局.但缺點是當戰(zhàn)場上的任務(wù)目標變化時,需要重新修改模型中的數(shù)據(jù)再次實驗,實驗過程繁瑣,造成一定的局限性.
綜上所述,在作戰(zhàn)領(lǐng)域中基于MBSE方法和任務(wù)建模方面已有較多相關(guān)研究.但在數(shù)據(jù)交互上仍存在一定的局限性,為解決該問題,本文以作戰(zhàn)場景監(jiān)測為研究對象,提出基于SysML的作戰(zhàn)場景監(jiān)測仿真的統(tǒng)一流程框架,研究基于元模型的構(gòu)建方法,并且在仿真模型的基礎(chǔ)上,探索了模型與外部平臺之間的數(shù)據(jù)交互方式,實現(xiàn)模型數(shù)據(jù)動態(tài)變化功能.
本文擬定將作戰(zhàn)場景監(jiān)測仿真系統(tǒng)應用于海上軍事系統(tǒng)中.假設(shè)該系統(tǒng)包括:監(jiān)測系統(tǒng)、中央指控系統(tǒng)、作戰(zhàn)系統(tǒng)、武器系統(tǒng).本文假設(shè)系統(tǒng)之間的交互如下:監(jiān)測系統(tǒng)能夠監(jiān)聽到其他客戶端發(fā)出的數(shù)據(jù)信號,捕獲該數(shù)據(jù)信號并且發(fā)送數(shù)據(jù)信息給中央指控系統(tǒng).中央指控系統(tǒng)處理數(shù)據(jù),再把數(shù)據(jù)發(fā)送給作戰(zhàn)系統(tǒng).作戰(zhàn)系統(tǒng)接收數(shù)據(jù)并分析各個數(shù)據(jù),根據(jù)結(jié)果發(fā)送信號給武器系統(tǒng).收到信號的武器系統(tǒng)做出進一步操作.總體流程如圖1所示.
圖1 作戰(zhàn)場景監(jiān)測仿真設(shè)計流程Fig.1 Combat scene monitoring simulation design process
針對本文的研究內(nèi)容和領(lǐng)域,可以進一步細分為以下步驟:
1)需求表達,采用基于模型的需求圖和約束組件,表達作戰(zhàn)場景的功能領(lǐng)域相關(guān)需求;
2)系統(tǒng)上下文關(guān)系表達,采用基于模型的模塊定義圖,表達系統(tǒng)上下文之間關(guān)系;
3)設(shè)計領(lǐng)域元模型,采用基于模型的構(gòu)造型組件《stereotype》,設(shè)計一套作戰(zhàn)場景領(lǐng)域元模型;
4)信息流表達,采用基于模型的內(nèi)部模塊圖,表達作戰(zhàn)場景功能之間的信息流內(nèi)容;
5)接口表達,采用基于端口的組件,表達作戰(zhàn)場景的對外接口以及接口之間的連接;
6)數(shù)據(jù)監(jiān)聽,采用JAVA代碼對軟件進行二次開發(fā),基于通訊協(xié)議,獲取外部界面?zhèn)鬟f來的相關(guān)數(shù)據(jù);
7)數(shù)據(jù)賦值,采用JAVA代碼對軟件添加數(shù)據(jù)接收功能,基于SysML語言底層代碼邏輯,將外部數(shù)據(jù)傳到模型系統(tǒng)中;針對以上內(nèi)容,提出了總體設(shè)計方案,如圖2所示.本文采用JAVA語言中的Socket通訊框架實現(xiàn)數(shù)據(jù)交互,為了提高通訊的性能以及考慮到代碼與建模軟件的適配性,選擇異步與非阻塞方式(AIO)進行數(shù)據(jù)的捕獲與發(fā)送.
基于SysML模型的作戰(zhàn)場景建模與仿真,通過對元模型的擴展進行模型搭建.詳細方案如圖3所示,步驟如下:
首先,深入學習、總結(jié)專家的作戰(zhàn)領(lǐng)域知識,定義作戰(zhàn)場景的功能模型集合和組件庫,將領(lǐng)域知識充分應用在仿真模型中.
其次,在建模語言SysML(System modeling language)原本的元模型基礎(chǔ)上,充分利用它的擴展機制,根據(jù)仿真的需求擴展領(lǐng)域元模型并且遵守元模型搭建原則(MOF),包括在活動(Activity)的基礎(chǔ)上擴展功能類型、在類(Class)的基礎(chǔ)上擴展組件元模型、在端口(Port)的基礎(chǔ)上擴展適合表達作戰(zhàn)場景監(jiān)測領(lǐng)域的新端口類型.本文以在活動(Activity)的基礎(chǔ)上擴展功能元模型為例.
最后,基于擴展的元模型,搭建作戰(zhàn)場景監(jiān)測仿真模型.并且在模型基礎(chǔ)上,擴展其數(shù)據(jù)交互功能.
圖2 作戰(zhàn)場景監(jiān)測仿真總體設(shè)計方案Fig.2 Combat scene monitoring simulation overall design scheme
圖3 模型驅(qū)動作戰(zhàn)場景設(shè)計技術(shù)方案Fig.3 Model driven combat scene design technical scheme
元模型是模型系統(tǒng)建模的基礎(chǔ),領(lǐng)域元模型是在基于領(lǐng)域知識的基礎(chǔ)上建立的,它描述了領(lǐng)域相關(guān)的模型內(nèi)容以及它們之間的關(guān)系,并規(guī)范這些模型元素的使用方法.
元對象機制Meta-Object Facility(簡稱MOF),它起源于統(tǒng)一建模語言(Unified Modeling Language,UML).MOF是模型驅(qū)動架構(gòu)(Module Driven Architecture, MDA)4個標準之一,它共包含4個模型層次:元元模型層、元模型層、模型層、對象層.
元元模型層:元元模型層位于頂部,它是MOF建立元模型的基礎(chǔ),是為了描述元模型而定義的一種“抽象語言”.一個元元模型可以定義多個元模型,在本文中可以將元元模型理解為SysML語言.
元模型層:元模型層由元元數(shù)據(jù)組成,元數(shù)據(jù)的組件和語義由元元數(shù)據(jù)定義,元模型是元元數(shù)據(jù)的集合.在本文中可以將元模型理解為構(gòu)造的領(lǐng)域模型庫,用于搭建領(lǐng)域內(nèi)一類產(chǎn)品的模板.
模型層:模型層包含各種模型,元模型層的實例就是它們的結(jié)構(gòu).模型層是為了描述模型層而定義的抽象語言,一個模型即是元模型的一個實例.在本文中可理解為領(lǐng)域內(nèi)一類產(chǎn)品的模板.
對象層:對象是由我們希望描述的數(shù)據(jù)組成,這些數(shù)據(jù)可以是特定領(lǐng)域中數(shù)據(jù),主要職責是描述領(lǐng)域中的詳細信息.在本文中可以理解為領(lǐng)域內(nèi)一個具體型號的產(chǎn)品.
SysML是一種領(lǐng)域無關(guān)的建模語言,為了使模型能夠更加貼切地表達作戰(zhàn)場景領(lǐng)域的相關(guān)需求和功能,需要基于SysML進行擴展以構(gòu)建領(lǐng)域相關(guān)建模語言.構(gòu)建生成的領(lǐng)域元模型庫需要能夠為同一型號模型復用,以減少設(shè)計階段的工作量.目前,SysML的擴展方法主要有兩種:
1)輕量級擴展方法:主要是在SysML語言所提供的模型元素基礎(chǔ)上,創(chuàng)建一些包含領(lǐng)域相關(guān)語義模型元素的構(gòu)造類型(Stereotype),通過創(chuàng)建的構(gòu)造類型定義相關(guān)領(lǐng)域模型.
2)重量級擴展方法:將SysML語言的元模型根據(jù)自身的需求進行修改,創(chuàng)造符合特定領(lǐng)域的全新模型元素.
輕量級擴展方法具有效率高、靈活性強等特點.但是輕量級方法是在SysML語言元素基礎(chǔ)上通過繼承的方式進行擴展,其局限性比較大,可擴展范圍小.重量級擴展方法需要了解SysML元模型內(nèi)部結(jié)構(gòu),從而對其進行相應的修改,其擴展空間比輕量級擴展方法大,但是工作量大,效率低.兩者各有其優(yōu)缺點,本文依據(jù)作戰(zhàn)場景領(lǐng)域的擴展內(nèi)容和需求,選擇SysML輕量級擴展方法進行研究.
基于上述元模型的生成原理以及SysML元模型輕量級擴展方法,設(shè)計出圖4所示的功能元模型以及對應的功能類型和流類型.
功能是系統(tǒng)的核心,功能表示系統(tǒng)應該實現(xiàn)某種預期的行為,與功能最貼切的SysML模型元素是Activity.故而此處選擇SysML中的Activity作為它的基類.
1)function表示的是作戰(zhàn)場景中的系統(tǒng)功能,它的類型是functionType.其中最為關(guān)鍵的功能是信號傳遞、數(shù)據(jù)捕獲.
·信號傳遞:一個組件從等候的狀態(tài)進入執(zhí)行狀態(tài),需要依靠信號進行數(shù)據(jù)或者消息傳輸,因此信號傳遞的功能在仿真系統(tǒng)中是必不可少的.例如本文的研究內(nèi)容,在中央指控系統(tǒng)中發(fā)送“數(shù)據(jù)信號”給作戰(zhàn)系統(tǒng).
·數(shù)據(jù)捕獲:在本次研究中,外部數(shù)據(jù)捕獲起著重要作用,只有它的成功執(zhí)行才能真正實現(xiàn)仿真系統(tǒng)與外部平臺軟件之間的交互,將外部數(shù)據(jù)傳入到模型系統(tǒng)中,實現(xiàn)數(shù)據(jù)的實時變化,將仿真系統(tǒng)由單一模型向多元交互的方向發(fā)展.
(2)inputFlow表示的是輸入流,從輸入數(shù)據(jù)到輸出數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換是一個產(chǎn)品在系統(tǒng)設(shè)計層主要強調(diào)的.因此,關(guān)鍵的一個任務(wù)是指定功能的輸入流,其類型為flowType.例如作戰(zhàn)系統(tǒng)發(fā)送“X-x防空導彈發(fā)射”給武器系統(tǒng),這里的“X-x防空導彈發(fā)射”就是作為輸入流輸入到武器系統(tǒng)中.
(3)outputFlow表示的是輸出流,它和inputFlow類似,用于指定復雜產(chǎn)品在系統(tǒng)設(shè)計層面表示的輸出元素,通常以流的形式呈現(xiàn).輸出流的類型也是flowType.
SysML提供的<
同樣的,通過<
圖4 基于SysML構(gòu)造類型定義的功能元模型、功能類型和流類型Fig.4 Construct the functional metamodel, functional types, and flow types of type definitions based on SysML
圖5 功能元模型Fig.5 Functional metamodel
表1 數(shù)據(jù)流參數(shù)Tab.1 Data flow parameter
具體的功能元模型如圖5所示,“復雜功能”和“元功能”構(gòu)造類型是由“功能”構(gòu)造類型繼承而來.“元功能”再進一步可以細分為驅(qū)動、數(shù)據(jù)傳遞、制動、輸入、輸出、支撐、輔助功能等元功能,其中輔助功能也可再進一步細分為信號監(jiān)測、異端傳輸、信號傳遞、數(shù)據(jù)捕獲等元功能.
模型中的流,則是繼承了來自SysML中的Parameter構(gòu)造類型.對于流又可以進一步分為輸入流、輸出流和信號流.本文中對于流中的數(shù)據(jù)字段,設(shè)定了一個名為Block的類,該類中包含isEnable、missileCount、isReady和isCaptureTargeted 4個參數(shù).參數(shù)描述和類型如表1所示.
元功能是模型系統(tǒng)中較為重要的一部分,它是系統(tǒng)中各個功能的基石.因此元功能設(shè)計在整個過程中是十分重要的環(huán)節(jié),元功能的設(shè)計需要依據(jù)以下原則:
1)元功能應盡量達到各資源實體的要求.每個元功能是由具體的資源實體來承擔的,因此元功能不能超過各資源實體的能力范圍,否則不能被有效執(zhí)行,即分解失效.
2)元功能需要明確且獨立.首先元功能作為資源實體執(zhí)行的不可再分的功能單元,必須要明確目標,才能匹配對應的資源實體.其次元功能必須獨立,以減少功能之間的耦合度.
基于上述元功能設(shè)計原則,構(gòu)建作戰(zhàn)場景監(jiān)測的元功能模型.首先創(chuàng)建Activity組件,對于復雜的任務(wù)需要將其分解為多個子任務(wù).其次根據(jù)每個Activity所擔任的功能將其命名為所要創(chuàng)建的元功能名稱.
圖6展示了功能分解關(guān)系.在模型中條件校驗功能可以被認為是父任務(wù),信號接收、發(fā)射環(huán)境校驗、發(fā)送信號、導彈發(fā)射狀態(tài)校驗、導彈數(shù)量校驗、捕獲目標校驗、數(shù)據(jù)捕獲則被認為是子任務(wù).
圖6 條件校驗功能詳細信息及其關(guān)系Fig.6 Conditional verification function details and relationships
為了推進模型的多樣化發(fā)展,本文在上述內(nèi)容的基礎(chǔ)上研究了模型與外部平臺之間的數(shù)據(jù)交互功能.基于Cameo Systems Modeler軟件,研發(fā)了“SIM”插件,使該插件能夠兼容Cameo Systems Modeler軟件并且實現(xiàn)模型與外部平臺之間的數(shù)據(jù)交互.
圖7 定制化作戰(zhàn)場景監(jiān)測流程及原理Fig.7 Customized battle scene monitoring process and principle
本文通過Java代碼模擬外部平臺的數(shù)據(jù)發(fā)送,定制化作戰(zhàn)場景監(jiān)測流程及原理如圖7所示.具體步驟如下:
1)在java代碼中編寫異步且非阻塞(Asynchronous IO)的Socket通信代碼,并且監(jiān)聽指定IP地址和端口號;
2)在軟件中通過插件的方式導入開發(fā)功能,并且開啟數(shù)據(jù)監(jiān)聽;
3)在外部平臺中發(fā)送missileCount、isReady、isEnabled、isCaptureTargeted等數(shù)據(jù),數(shù)據(jù)的發(fā)送同樣是基于Socket通信的基本原理,并且采用異步非阻塞的方式進行;
4)監(jiān)測系統(tǒng)捕獲到所有數(shù)據(jù),通過中央指控系統(tǒng)進行數(shù)據(jù)的處理.
為驗證上述方法的有效性,本文建立了如下遐想任務(wù):在某一作戰(zhàn)場景中,雷達系統(tǒng)監(jiān)測到前方存在非法入侵,數(shù)據(jù)傳送系統(tǒng)將數(shù)據(jù)發(fā)送至指定IP及端口,具體內(nèi)容為如下:前方30 n mile發(fā)現(xiàn)非法入侵船只,正在向西南方向以30 Knot的速度行駛.我方導彈狀況數(shù)據(jù):’missileCount’:15,’isEnabled’:true,’isReady’:true,’isCaptureTargeted’:true.
首先在模型中通過開啟監(jiān)聽任務(wù),之后將對應數(shù)據(jù)賦值到模型指定位置中,替換舊的數(shù)據(jù)同時開啟仿真.以上文的“條件校驗功能”為例,由上文可知,條件校驗功能可視為父任務(wù),其還可以具體細分為發(fā)射環(huán)境校驗、狀態(tài)校驗、導彈數(shù)量校驗、捕獲目標校驗等子功能.如圖8所示,該圖為模型中的狀態(tài)圖,在通過初始化檢查后,可分別對數(shù)據(jù)信號中的missileCount、isReady、isEnabled、isCaptureTargeted參數(shù)進行校驗.
圖8 條件校驗狀態(tài)圖Fig.8 Conditional check status diagram
圖9 發(fā)射環(huán)境校驗活動圖Fig.9 Launch environment verification activity diagram
圖9為發(fā)射環(huán)境校驗的具體內(nèi)容,在校驗過程中,采用readSelf組件獲取信號,使用readStructuralFeature組件讀取信號中的對應參數(shù)(注意此時該參數(shù)已經(jīng)替換為最新數(shù)據(jù)).當isEnabled參數(shù)的值為false時,則通過OpaqueAction組件在控制臺輸出“當前環(huán)境不符合發(fā)射條件”,并且退出整個系統(tǒng).反之在控制臺輸出“當前環(huán)境符合發(fā)射條件”,之后進入下一個參數(shù)校驗.
圖10 發(fā)送信號活動圖Fig.10 Send signal activity diagram
當所有的參數(shù)都校驗成功后,進入“發(fā)送信號”狀態(tài)中,圖10為發(fā)射信號狀態(tài)下的具體內(nèi)容,在該部分,通過StartObjectBehavior啟動“導彈系統(tǒng)”(在此之前導彈系統(tǒng)是處于等待狀態(tài)),然后在參數(shù)中添加一個名為“l(fā)aunch”的參數(shù)并通過addStructuralFeatureValue組件給該參數(shù)賦值為true.最后通過“sent_signal”發(fā)送信號到導彈系統(tǒng)中,其中“send_signal”中編寫的代碼為“ALH.sentSignal(sig,o)”,最終再由導彈系統(tǒng)完成發(fā)射指令操作.
本次實驗,以“條件校驗功能”行為為例,在模型中開啟數(shù)據(jù)監(jiān)聽,系統(tǒng)能夠成功收到其他客戶端發(fā)來的數(shù)據(jù),在數(shù)據(jù)解析后順利地將數(shù)據(jù)賦值到模型對應的組件中,使模型在仿真的過程能夠讀取到最新的數(shù)據(jù).該實驗驗證了外部平臺與模型之間數(shù)據(jù)交互的可行性.當系統(tǒng)的數(shù)據(jù)量十分龐大時,就能體現(xiàn)出該方法的優(yōu)越性,能夠極大地減少勞動時間和勞動量,并且降低手動修改模型的次數(shù),在一定程度上為模型仿真提升了效率.
以MBSE思想為基礎(chǔ),以基于SysML模型的作戰(zhàn)場景監(jiān)測仿真為研究對象,研究了作戰(zhàn)場景監(jiān)測仿真構(gòu)建方案中基于元模型的建模方法,擴展了標準的SysML語言,通過創(chuàng)建構(gòu)造類型的方式,建立系統(tǒng)功能的領(lǐng)域元模型,基于領(lǐng)域元模型搭建作戰(zhàn)場景監(jiān)測仿真模型.并且實現(xiàn)了將模型中的數(shù)據(jù)與外部數(shù)據(jù)進行交互的功能.在數(shù)據(jù)交互方面,將單一化的模型向多元化的方向發(fā)展.
在未來的研究中,將繼續(xù)探索和實踐模型多元化方法.擬在現(xiàn)有的基礎(chǔ)上,一是提升軟件自動化建模能力,減少建模花費的人力物力及時間,提高建模效率.二是進一步提升數(shù)據(jù)交互的多樣性,研究將模型的數(shù)據(jù)實時傳遞到外部客戶端的方法.形成多平臺模型關(guān)聯(lián)的智能建模方案,為完成作戰(zhàn)任務(wù)建模提供先進的技術(shù)手段.