郭子卉,王學文,岳忠奇,謝斌斌,付 浩
(北方自動控制技術(shù)研究所,太原 030006)
信息化時代背景下,作戰(zhàn)仿真訓練系統(tǒng)是當前研究軍事作戰(zhàn)活動的有效手段。軍用無人機作為現(xiàn)代空中軍事力量中的一員,具有無人員傷亡、使用限制少、隱蔽性好、效費比高等特點,在聯(lián)合作戰(zhàn)中配合各兵種參與火力支援、戰(zhàn)場偵察、電子對抗等作戰(zhàn)任務(wù),逐漸成為了不可或缺的作戰(zhàn)主體[1]。因此,在仿真作戰(zhàn)系統(tǒng)中,構(gòu)建無人機仿真模型成為作戰(zhàn)仿真模型研究的重要方向,而機動模型作為任務(wù)行動中最基本的行為模型,是作戰(zhàn)仿真訓練的基礎(chǔ)。
組件化建模作為近年來發(fā)展的建模方法,不但能夠解決模型開發(fā)工作量大的問題,同時也是增強模型互操作性和重用性的有效手段。本文的仿真環(huán)境使用Xsim5.0 可擴展仿真平臺,該平臺為國產(chǎn)化仿真平臺,支持組件化建模技術(shù)。蘇玉婷等運用Xsim3.2 平臺進行了戰(zhàn)術(shù)機動的基本構(gòu)建[2],劉波韜等也基于Xsim4.5 平臺對榴彈炮模型進行了開發(fā)設(shè)計工作[3],并且都得到了良好的實驗結(jié)果。本研究以無人機為模板,首先采用EATI 建模方法對無人機實體模型進行概念設(shè)計,通過編寫概念模型模板對描述對象及其動作過程和軍事規(guī)則給出一個集中和規(guī)范化的描述;其次對空中機動行為進行描述設(shè)計,并基于組件建模技術(shù),以固定翼為例,開發(fā)無人機空中機動組件,實現(xiàn)空中機動行為;通過模型組裝工具將無人機實體進行組裝,并在想定編輯工具中部署實體,最后通過仿真推演來驗證了模型的可用性與合理性。
組件化建模方法區(qū)別于傳統(tǒng)的建模方式,不再以實體對象為中心,而是以組建為核心,采用“組件化”的思想,將實體對象的功能和屬性單獨封裝成原子組件。組件通過共享數(shù)據(jù)和控制指令的形式傳遞信息[4],模型通過開放的接口接收數(shù)據(jù),執(zhí)行相應(yīng)的任務(wù)。仿真建模時,只需要根據(jù)實體對象的實際需求,將不同功能和屬性的組件與實體進行組裝完成建模。組件化建模技術(shù)在每次新建模型時無需從頭開發(fā),而是以模型組裝的方式直接形成仿真應(yīng)用模型,同類型的組件還可以根據(jù)實際修改參數(shù)形成新的組件復(fù)用到模型中,增加了模型的可重用性,在很大程度上提高了建模效率,節(jié)省了模型開發(fā)的工作時間。
組件是對武器裝備或作戰(zhàn)系統(tǒng)中最小可分辨單位進行建模。按照建模對象的功能類別,組件可以分為平臺組件、通信組件、機動組件、武器組件、認知組件、行動組件、傳感器組件和輔助組件等幾大類,每類組件則對應(yīng)一類特定功能的組件,它不能脫離實體模型運行。
實體模型是組件模型的組合,每類實體對應(yīng)一種軍事總體設(shè)計中模型體系的一類葉子模型,同類實體模型具有統(tǒng)一的模型框架,基于該框架,開發(fā)各類實體模型。
2.1.1 實體元描述
利用EATI 方法對無人機進行建模[5],以單個無人機為最小的作戰(zhàn)單元模塊,對無人機實體展開具體描述,實體元模型可通過四元組進行表示:
式中,N 為實體標識,描述實體的名稱;TE 為實體執(zhí)行任務(wù);AT 為實體屬性的集合;AC 為實體動作的集合,無人機實體元模型的具體描述如表1 所示。
表1 無人機實體元模型Table 1 Entity meta-model of UAV
2.1.2 動作元模型描述
動作是由實體模型執(zhí)行的,主要對模型主體所涉及的所有動作行為及其功能進行描述。動作元模型可以通過五元組進行表示
其中,ACN 為動作名稱,表示每一個原子行為模型的名稱;ACFS 為功能段,表示每一個動作所完成的具體功能;ACIS 為輸入信息,表示每一個動作的出發(fā)條件;ACOS 為輸出信息,表示動作執(zhí)行完成后的輸出信息;ACCS 為控制段,描述相關(guān)行為動作的規(guī)則。具體描述如表2~表3 所示。
表2 無人機動作元模型Table 2 Action meta-model of UAV
表3 機動系數(shù)修正表Table 3 Maneuver coefficient correction table
表4 無人機屬性元模型Table 4 Attribute meta-model of UAV
2.1.3 屬性元模型描述
屬性元模型(AT)表述實體模型的各種屬性[6],通過四元組表示:
其中,ATIS 表示標識屬性段,主要描述模型所屬方、級別和唯一標識符;ATOS 表示實體的實力屬性包括組成人數(shù)、裝備數(shù)等;ATDS 為實體的動態(tài)屬性,描述模型的承載狀態(tài)、行動方式、空間位置、毀傷程度等;ATTS 表示實體的任務(wù)屬性,表示該實體模型執(zhí)行任務(wù)的內(nèi)容,狀態(tài)標志等。
根據(jù)無人機的結(jié)構(gòu)組成和作戰(zhàn)需求,無人機模型需要具備空中機動、偵察和通信等功能來滿足作戰(zhàn)任務(wù)的基本需求,因此,無人機實體搭載的組件模板主要包括空中機動組件,傳感器組件和通信設(shè)備組件??罩袡C動組件的作用是通過模擬無人機運動狀態(tài),實現(xiàn)無人機實體運動過程仿真。以機動組件模板為基類,通過重寫關(guān)鍵方法類開發(fā)出適用于無人機的空中機動組件;傳感器組件主要實現(xiàn)無人機對目標的探測功能,是探測設(shè)備的基類,用于探測設(shè)備的仿真。不同的探測設(shè)備都是在通用類傳感器組件模板的基礎(chǔ)上,根據(jù)各類設(shè)備功能屬性的不同,例如探測距離,探測范圍大小等,擴展而成的多種類別的探測設(shè)備組件;通信組件是通信設(shè)備組件的基類,提供了通信設(shè)備開關(guān)機標志、加入的網(wǎng)絡(luò)列表等基本屬性和方法。通信設(shè)備組件是仿真作戰(zhàn)實體間信息交互所需的物理設(shè)備,實現(xiàn)實體對通信信號的收發(fā)及處理能力,如無線電臺、路由設(shè)備等。無人機實體模型設(shè)計圖如圖1 所示。
圖1 平臺級無人機實體模型設(shè)計Fig.1 Entity model design for platform-level UAV
空中機動模型由指揮員下達機動命令后開始執(zhí)行,模型開始需要判斷接收單位的實體是否為生存狀態(tài),若單位實體為死亡狀態(tài)則停止任務(wù),發(fā)送任務(wù)調(diào)度失敗報告;實體存活狀態(tài)判斷結(jié)束后進入任務(wù)參數(shù)判斷檢查,檢查是否正確輸入路徑點、任務(wù)開始和結(jié)束時間,若輸入的任務(wù)參數(shù)有誤或者缺少輸入信息,則任務(wù)終止并發(fā)送任務(wù)調(diào)度失敗報告;在任務(wù)調(diào)度成功后,獲取機動組件的最大機動速度和機動周期,獲取高程、天氣等環(huán)境數(shù)據(jù)進行速度修正;在執(zhí)行任務(wù)過程除考慮到環(huán)境因素外,增加了是否遇敵和油耗的判斷,并根據(jù)判斷來進行機動速度的調(diào)整和機動目的地的調(diào)整[7-9],模型的實現(xiàn)流程如圖2 所示。
圖2 機動組件實現(xiàn)流程圖Fig.2 Flow chart of mobile component implementation
基于Xsim5.0 的建模機制,在模型開發(fā)階段,主題作為數(shù)據(jù)的載體進行存儲與傳輸。所謂主題,概括來講為功能名稱和數(shù)據(jù)結(jié)構(gòu)的結(jié)合體,主題通過發(fā)布和訂閱模式進行數(shù)據(jù)的產(chǎn)生和消費。模型的靜態(tài)數(shù)據(jù)即基礎(chǔ)數(shù)據(jù)和初始化主題數(shù)據(jù)以主題的方式存儲,并保存在模板以及想定之中。模型的動態(tài)數(shù)據(jù)由各功能性組件在運行時產(chǎn)生并公布在域中,用于數(shù)據(jù)交互。因此,在機動組件開發(fā)階段,首先需要創(chuàng)建機動組件的初始化信息主題和定義基礎(chǔ)數(shù)據(jù)主題,梳理空中機動組件所需要的相關(guān)屬性并確定基礎(chǔ)數(shù)據(jù)內(nèi)容,再根據(jù)功能需求完成模型關(guān)鍵方法的實現(xiàn),最后在模型開發(fā)完畢并正確編譯后打包發(fā)布模型。
3.2.1 無人機基礎(chǔ)信息結(jié)構(gòu)
無人機固定翼機動組件主要描述無人機在戰(zhàn)場環(huán)境下的運動過程,針對平臺的運動進行建模,如機身的運動。固定翼機動組件繼承機動組件基類,通過提供的接口,設(shè)定的機動參數(shù)及屬性完成對機動的處理。
無人機固定翼機動組件定義了機動的初始化數(shù)據(jù)和基礎(chǔ)數(shù)據(jù)的結(jié)構(gòu)以及初始化數(shù)據(jù)和基礎(chǔ)數(shù)據(jù)的主題,其定義格式如圖3 所示。
圖3 定義機動組件主題Fig.3 Define mobile component topic
固定翼機動組件通過繼承的方式,在原本的機動基礎(chǔ)數(shù)據(jù)如機動的最大速度、積分步長的基礎(chǔ)上又新增了巡航速度、飛行高限、飛行低限、能源配置等相關(guān)數(shù)據(jù)屬性,如表5 所示。
表5 機動組件屬性表Table 5 Maneuver component attribute table
3.2.2 位置解算
在固定翼機動組件模型的構(gòu)件中,無人機實體起飛時模擬了機動勻加速直線運動的過程,采用沿機動點的機動方式進行位置解算。在無人機速度達到設(shè)定的巡航速度時,實體按照給定的速度,在相同的時間段內(nèi)向指定的方向運動相同的距離,按勻速直線運動機動,實體位置更新機制公式如下:
式中,P1表示下一時刻的實體位置坐標;P0表示實體的當前位置坐標;P0Pt表示P0與P1的直線距離;v為實體速度;ΔT 表示仿真步長。
3.2.3 路徑規(guī)劃
固定翼機動模型在該位置更新機制的基礎(chǔ)上,結(jié)合戰(zhàn)場地形環(huán)境因素,在模型中考慮了路徑規(guī)劃的問題,將基于蛇優(yōu)化智能算法的三維路徑規(guī)劃算法引入到機動模型組件當中。
蛇優(yōu)化算法(SO)是2022 年HASHIM F A 和HUSSIEN A G 兩位教授提出的一種基于蛇行為的元啟發(fā)式算法[10],該算法的基本思路可以概括為當蛇在沒有食物的條件下,就會去尋找食物;當蛇處于有食物且溫度較高的條件下,就向食物位置靠近即向全局最佳適應(yīng)度靠近;當蛇處于溫度較低且食物充足的情況下,蛇以一定的概率發(fā)生交配行為或者是戰(zhàn)斗行為。蛇優(yōu)化算法通過模擬蛇在自然界中的覓食、戰(zhàn)斗、交配等行為,能夠快速高效求解出目標函數(shù)的最優(yōu)解。在無人機固定翼機動模型中,考慮到飛行高度、飛行距離和安全性的約束條件[11],其代價公式如下。
無人機飛行所經(jīng)過的路徑點坐標用Pij=(xij,yij,zij)表示,用Xi用來存儲無人機飛行的第i 個路徑列表,兩個路徑點之間的距離用||PijPi,j+1||表示,路徑長度成本函數(shù)F1(Xi)為:
佛羅里達的迪士尼樂園里主要的云霄飛車,最高點“只有”兩百尺(約十五層樓高)。云霄飛車從十五層樓高的地方俯沖下來,很恐怖吧,怎么會說“只有”呢?
建立無人機實體模型,涉及無人機自身體型參數(shù)的影響,因此,在路徑規(guī)劃時要考慮無人機通過障礙所造成的威脅,以此來設(shè)計安全性成本函數(shù)。在實驗設(shè)計時,用圓柱體表示每一個威脅,K 為所有威脅的集合,設(shè)實驗環(huán)境中總共有m 個威脅障礙。取無人機直徑為D,分別設(shè)置一個以Ck 為圓心,Rk+D 為半徑的碰撞區(qū)域和以Ck 為圓心,S 為半徑的危險區(qū)域,如下頁圖4 所示。
圖4 威脅成本Fig.4 Threat cost
當無人機與Ck的直線距離dk小于Rk+D 時,無人機進入碰撞區(qū)域,有100%的概率發(fā)生碰撞;當無人機與Ck的直線距離dk大于Rk+D,小于S 時,無人機進入危險區(qū)域,考慮到如雷達探測信號減弱等因素的影響,有一定的概率發(fā)生碰撞;當無人機與Ck的直線距離dk大于S 時,無人機不會發(fā)生碰撞。結(jié)合無人機飛行路徑段,安全性成本函數(shù)F2(Xi)為:
根據(jù)無人機最大飛行高度hmax和最小飛行高度hmin兩個參數(shù),結(jié)合路徑點Pij得出高度代價公式F3(Xi)
結(jié)合無人機飛行路徑約束,飛行高度約束以及安全性約束,根據(jù)上述公式可得到總成本函數(shù)為:
其中,bk為權(quán)重系數(shù),F(xiàn)1(Xi)到F3(Xi)分別是路徑長度,安全性以及飛行高度,Xi作為決策變量,包括n個航路點的列表Pij=(xij,yij,zij)。
為了驗證蛇優(yōu)化算法性能,實驗運用matlab 工具并加入了粒子群算法(PSO)與基于蛇優(yōu)化的三維路徑規(guī)劃算法進行對比驗證[12]。在本次實驗中,設(shè)置了9 個不同大小的圓柱體構(gòu)成無人機飛行的威脅環(huán)境,設(shè)置兩架無人機作為實驗對象,第1 架無人機設(shè)置的起點坐標為(150,200,150),終點坐標為(800,800,150),途徑路徑點n 為12;第2 架無人機設(shè)置的起點坐標為(400,100,150),終點坐標為(900,550,150),實驗結(jié)果如圖5~圖6 所示。
圖5 SO 與PSO 算法運行結(jié)果Fig.5 Operation results of SO and PSO algorithms
圖6 最優(yōu)代價變化曲線圖Fig.6 Optimal cost change curve
從實驗結(jié)果可以看出,PSO 算法尋找的最優(yōu)路徑與障礙物發(fā)生碰撞,無法找到兩條成本約束下的最優(yōu)路徑,而SO 算法尋優(yōu)能力較強,成功避開障礙,尋找到兩條最優(yōu)路徑,因此,選取蛇優(yōu)化算法應(yīng)用在三維路徑規(guī)劃當中。
固定翼機動組件基于國產(chǎn)化操作系統(tǒng)平臺,使用qt 編程工具,C++語言進行開發(fā)。實體采用沿機動路線機動的方式進行機動,實體模型以機動路徑點參數(shù)為機動輸入數(shù)據(jù),記錄實體所處的路段,令路段數(shù)為i,則當前實體的目標點即為給定路線的第i+1 個路徑點,當路段變量達路線的路近點總數(shù)時,判定機動任務(wù)完成。
在模型開發(fā)階段,采用GetMotionParam()的方法設(shè)置機動參數(shù),通過CreateMotionParam()創(chuàng)建沿路徑點列表機動參數(shù),GetCurrentWaypoint()獲取路徑點機動參數(shù)的當前路徑點,GetNextWaypoint()獲取當前路徑點之后的一個路徑點,再調(diào)用GetWaypointByNumber(UINT32 Number)來根據(jù)路徑點編號從路徑點列表中獲取路徑點,任務(wù)所需機動參數(shù)獲取完成,通過PrepareData()方法為仿真運行作最后數(shù)據(jù)檢查;SO()方法將SO 算法進行封裝,在機動組件核心方法Motion()中,用GetMotionParam()來獲取實體的機動參數(shù),進而實現(xiàn)SO 算法的調(diào)用;最后ProcessTopicProc(TSITopicContextPtrCtx)負責處理主題回調(diào),實現(xiàn)數(shù)據(jù)交互。
組件編寫完相關(guān)功能函數(shù)編譯生成SO 動態(tài)鏈接庫,并加載模型完成模型注冊工作,打包后發(fā)布模型。
模型發(fā)布成功后,在模型裝配工具中找到對應(yīng)的空中組件模型進行實例化,命名該組件為_固定翼空中機動組件,并在右側(cè)屬性欄設(shè)定組件的基本屬性,如圖7 所示。
圖7 空中機動組件Fig.7 Air maneuver components
根據(jù)實體模型設(shè)計將無人機實體模型,機動組件,傳感器組件,通信組件組裝成一架完整的無人機,裝配完成的無人機模型,如圖8 所示。
圖8 無人機實體裝配Fig.8 Entity assembly of UAV
打開想定編輯工具,紅方兵力由上述裝配好的無人機實體和無人機站實體構(gòu)成,設(shè)立無人機與無人機的承載關(guān)系;藍方部署了多種兵力實體。想定部署完成,隨后啟動仿真引擎,控制想定開始,進行仿真推演。
在想定運行過程中,給無人機實體下達空中機動任務(wù),指令下達界面如圖9 所示。
圖9 指令下達界面Fig.9 Command issuing interface
無人機接收到指令開始執(zhí)行行動任務(wù),推演態(tài)勢圖如圖10~圖11 所示。
圖10 態(tài)勢顯示界面Fig.10 Situation display interface
圖11 日志輸出Fig.11 Log output
從態(tài)勢顯示圖和機動模型日志結(jié)果中可以看到,無人機在接收到機動命令后,機動組件被成功調(diào)度,無人機從無人機站飛出,態(tài)勢圖中紅色顯示曲線為無人機軌跡線,可以看到無人機按照規(guī)劃的機動路徑勻速機動,并最終達到終點位置,完成機動任務(wù)。
基于Xsim5.0 仿真平臺的建模機制,采用組件化建模的思想,詳細介紹構(gòu)建固定翼機動組件模型的過程方法,并將開發(fā)好的固定翼機動組件組裝在無人機實體上完成了功能測試,結(jié)果表明,該固定翼機動模型能夠逼真模擬空中的機動行為。后續(xù)將進一步開發(fā)無人機各類功能的通用性組件,減少建模工作量以滿足各類無人機的功能需求。