胡訓(xùn)強(qiáng) 楊 鵬
(海軍91976部隊 廣州 510430)
隨著蛙人輸送艇等特戰(zhàn)裝備的不斷發(fā)展,蛙人已經(jīng)成為在近海港口水域進(jìn)行滲透、偵察和破壞的主角。因此,為了保衛(wèi)軍用港口、碼頭及其內(nèi)駐泊艦艇的安全,世界各國海軍都在積極發(fā)展反蛙人裝備并探索其作戰(zhàn)使用,反蛙人探測聲吶就是其中的重要一員[1~2]。隨著多波束聲吶技術(shù)、目標(biāo)識別技術(shù)、實時數(shù)字信號處理技術(shù)等的發(fā)展和結(jié)合,反蛙人聲吶已經(jīng)成為當(dāng)前對蛙人目標(biāo)最有效的探測手段[3]。
在進(jìn)行反蛙人聲吶訓(xùn)練時,必須在湖上或者海上進(jìn)行,這種實裝訓(xùn)練方式一來容易受到場地和天氣的限制,二來所耗費(fèi)的人力、物力和財力較大。所以有必要在反蛙人聲吶訓(xùn)練中引入虛擬訓(xùn)練這種新的訓(xùn)練方式,一來使得受訓(xùn)者可以“足不出戶”地完成訓(xùn)練,降低訓(xùn)練成本;二來可以對訓(xùn)練過程中出現(xiàn)的問題進(jìn)行相同條件下的復(fù)現(xiàn),以準(zhǔn)確定位錯誤,并及時反饋給研制部門,從而對反蛙人聲吶裝備進(jìn)行改進(jìn)提高。為此,本文應(yīng)用裝備仿真相關(guān)技術(shù),設(shè)計了一種基于HLA的反蛙人聲吶虛擬訓(xùn)練系統(tǒng)。
為了對系統(tǒng)的數(shù)據(jù)和功能進(jìn)行解耦,方便系統(tǒng)的開發(fā)和提高系統(tǒng)的復(fù)用性,反蛙人聲吶虛擬訓(xùn)練系統(tǒng)的組成架構(gòu)采用層次式設(shè)計,總體上從上到下依次劃分為公共資源層、仿真服務(wù)層和訓(xùn)練應(yīng)用層三個層次,系統(tǒng)的總體架構(gòu)如圖1所示。
公共資源層對反蛙人聲吶虛擬訓(xùn)練中所涉及的各類數(shù)據(jù)和模型進(jìn)行分類與規(guī)范,并實施統(tǒng)一管理,提高數(shù)據(jù)和模型的標(biāo)準(zhǔn)化和可復(fù)用性。
圖1 反蛙人聲吶虛擬訓(xùn)練系統(tǒng)的總體架構(gòu)
公共資源層中的資源分為模型資源和數(shù)據(jù)資源兩大類。其中,模型資源是根據(jù)訓(xùn)練環(huán)境、參訓(xùn)裝備和戰(zhàn)場態(tài)勢等需求所建立的各類仿真模型,存儲在仿真模型庫當(dāng)中,主要包括機(jī)動模型、戰(zhàn)場環(huán)境模型、探測模型、信號處理模型、數(shù)據(jù)處理模型等,為虛擬訓(xùn)練提供模型解算支撐;數(shù)據(jù)資源主要用于系統(tǒng)運(yùn)行中的數(shù)據(jù)查詢、運(yùn)算調(diào)用、態(tài)勢顯示和結(jié)果存儲等方面,主要包括數(shù)字海圖庫、軍標(biāo)庫、三維場景庫、三維模型庫、訓(xùn)練想定庫、水聲參數(shù)庫和裝備參數(shù)庫,為虛擬訓(xùn)練提供數(shù)據(jù)支撐。
仿真服務(wù)層主要是為虛擬訓(xùn)練提供必要的仿真服務(wù)支撐,包括RTI服務(wù)、數(shù)據(jù)庫服務(wù)、模型解算服務(wù)和指令傳輸服務(wù),各類服務(wù)都通過自定義的服務(wù)接口被訓(xùn)練應(yīng)用層調(diào)用。
RTI服務(wù)采用RTI運(yùn)行支撐平臺,為分布式單聯(lián)邦反蛙人聲吶虛擬訓(xùn)練系統(tǒng)的運(yùn)行提供網(wǎng)絡(luò)信息交互的支撐服務(wù);數(shù)據(jù)庫服務(wù)主要為系統(tǒng)運(yùn)行提供數(shù)據(jù)查詢、數(shù)據(jù)存儲和運(yùn)算調(diào)用功能;模型解算服務(wù)調(diào)用數(shù)據(jù)資源,運(yùn)行仿真模型,同時還要更新兵力或裝備的狀態(tài),生成并發(fā)布戰(zhàn)場態(tài)勢;指令傳輸服務(wù)模擬組訓(xùn)人員向受訓(xùn)人員傳輸指令的過程,包括信道管理、語音采集、文字編輯、指令壓縮和解壓,指令發(fā)送和接收等。
訓(xùn)練應(yīng)用層是體現(xiàn)系統(tǒng)功能的核心所在,也是支撐反蛙人聲吶虛擬訓(xùn)練的主要表現(xiàn)方式。根據(jù)訓(xùn)練功能的需求,訓(xùn)練應(yīng)用層由訓(xùn)練組織臺、輔助評估臺、反蛙人聲吶操作臺以及蛙人及運(yùn)載器操作臺4個部分組成。
訓(xùn)練組織臺是系統(tǒng)的中樞,主要是組訓(xùn)人員的工作臺位,完成訓(xùn)練想定的編輯與生成、態(tài)勢監(jiān)控、運(yùn)行控制、行動干預(yù)、發(fā)布指令等功能;輔助評估臺是考核評估人員的工作臺位,主要完成態(tài)勢記錄與回放、數(shù)據(jù)記錄、成績統(tǒng)計、評估打分等功能;反蛙人聲吶操作臺是受訓(xùn)人員的工作臺位,主要完成聲吶系統(tǒng)的操作、目標(biāo)錄取與識別等功能;蛙人及運(yùn)載器操作臺是扮演敵方兵力的人員的工作臺位,主要用于控制蛙人和蛙人運(yùn)載器的機(jī)動以及蛙人的作戰(zhàn)行動。
高層體系結(jié)構(gòu)(High Level Architecture,HLA)是美國國防部為解決國防領(lǐng)域內(nèi)所有類型的模型、仿真和C4I系統(tǒng)的互操作和可重用性問題而提出的仿真技術(shù)框架,它對虛擬訓(xùn)練系統(tǒng)的功能實現(xiàn)、運(yùn)行管理和數(shù)據(jù)交互進(jìn)行了徹底解耦,使得系統(tǒng)的各個部分可以獨(dú)立開發(fā),實現(xiàn)系統(tǒng)的即插即用。
由于反蛙人聲吶虛擬訓(xùn)練系統(tǒng)涉及系統(tǒng)運(yùn)行控制、蛙人運(yùn)載器和蛙人的機(jī)動仿真、蛙人作戰(zhàn)行動仿真、目標(biāo)探測識別、聲吶設(shè)備操作、訓(xùn)練效果評估等多個過程,因此適合基于HLA設(shè)計其軟件,基于HLA的反蛙人聲吶虛擬訓(xùn)練系統(tǒng)軟件共計7個聯(lián)邦成員,系統(tǒng)的軟件組成結(jié)構(gòu)如圖2所示。
圖2 反蛙人聲吶訓(xùn)練系統(tǒng)的軟件組成結(jié)構(gòu)
每個聯(lián)邦成員對應(yīng)著一個軟件分系統(tǒng),各聯(lián)邦成員的功能如下所示。
1)導(dǎo)調(diào)控制聯(lián)邦成員
導(dǎo)調(diào)控制聯(lián)邦成員在反蛙人聲吶虛擬訓(xùn)練系統(tǒng)中處于核心地位,其主要實現(xiàn)四項功能:一是擬制虛擬訓(xùn)練的想定,設(shè)置虛擬訓(xùn)練的海域、天氣、時間等參數(shù),以及設(shè)定參與訓(xùn)練的蛙人運(yùn)載器、蛙人潛水設(shè)備以及反蛙人聲吶的類型、數(shù)量和初始部署;二是控制虛擬訓(xùn)練的進(jìn)度,包括開始、結(jié)束、暫停、繼續(xù)、重置、重啟;三是由組訓(xùn)人員向受訓(xùn)人員發(fā)送文字或語音指令;四是進(jìn)行在訓(xùn)練過程中進(jìn)行態(tài)勢調(diào)理,設(shè)置臨時情節(jié),增加虛擬訓(xùn)練的隨機(jī)性。
2)態(tài)勢顯示聯(lián)邦成員
態(tài)勢顯示聯(lián)邦成員以二維電子海圖和三維虛擬視景兩種方式實時顯示虛擬訓(xùn)練海域敵我雙方的情況,主要有兩項功能:一是通過RTI訂購態(tài)勢信息,以軍標(biāo)、圖形、表格、三維模型、三維特效等形式顯示訓(xùn)練海域、戰(zhàn)場環(huán)境、兵力行動、探測結(jié)果;二是對顯示方式進(jìn)行控制,從空間維度、敵我屬性、縮放比例等多個不同角度對虛擬訓(xùn)練的態(tài)勢進(jìn)行觀察。
3)輔助評估聯(lián)邦成員
輔助評估分系統(tǒng)通過訂購所有的戰(zhàn)場信息,并進(jìn)行分類統(tǒng)計、記錄、管理和顯示,為訓(xùn)練評估提供數(shù)據(jù)支持,主要實現(xiàn)三項功能:一是數(shù)據(jù)記錄與統(tǒng)計功能,為輔助評估提供所需的戰(zhàn)場數(shù)據(jù)和分類信息;二是輔助評估功能,根據(jù)戰(zhàn)場數(shù)據(jù)和指揮過程對參加訓(xùn)練的操作員的表現(xiàn)進(jìn)行輔助評估;三是態(tài)勢記錄與回放功能,對訓(xùn)練的全過程進(jìn)行態(tài)勢記錄,并在評估和講評階段對態(tài)勢進(jìn)行回放。
4)水聲仿真聯(lián)邦成員
水聲仿真聯(lián)邦成員主要對訓(xùn)練海域的海洋水聲特性進(jìn)行仿真,主要實現(xiàn)兩項功能:一是仿真反蛙人聲吶的聲波信號在海水中的傳播損失、聲波吸收以及頻率變化;二是仿真海水的聲環(huán)境噪聲和海洋混響等干擾信號。
5)蛙人運(yùn)載器聯(lián)邦成員
蛙人運(yùn)載器聯(lián)邦成員對蛙人運(yùn)載器裝備進(jìn)行仿真,主要實現(xiàn)兩項功能:一是仿真蛙人運(yùn)載器的機(jī)動過程;二是根據(jù)選定的運(yùn)載器型號,仿真蛙人運(yùn)載器的輻射噪聲和聲散射特征。
6)蛙人聯(lián)邦成員
蛙人聯(lián)邦成員對蛙人進(jìn)行仿真,主要實現(xiàn)兩項功能:一是仿真蛙人的運(yùn)動過程;二是根據(jù)選定的潛水器材,對蛙人的輻射噪聲和聲散射特性進(jìn)行仿真。
7)反蛙人聲吶聯(lián)邦成員
反蛙人聲吶聯(lián)邦成員主要對反蛙人聲吶裝備進(jìn)行仿真,主要實現(xiàn)三項功能:一是設(shè)定反蛙人聲吶的工作頻率、距離分辨率、角度分辨率等裝備參數(shù);二是仿真反蛙人聲吶的波束形成、發(fā)射接收、信號處理和數(shù)據(jù)處理過程;三是仿真反蛙人聲吶的操作和顯示界面。
為促進(jìn)仿真系統(tǒng)之間的互聯(lián)、互通和互操作,HLA為聯(lián)邦成員之間按照公共的、標(biāo)準(zhǔn)化的格式進(jìn)行數(shù)據(jù)交換提供了聯(lián)邦對象模型(Federal Object Model,F(xiàn)OM),以此來描述聯(lián)邦運(yùn)行過程中需要交換的對象類、對象類屬性、交互類、交互類參數(shù)等信息[4]。在HLA聯(lián)邦開發(fā)實踐當(dāng)中,以表格形式的對象模型模板(Object Model Template,OMT)來描述FOM,反蛙人虛擬訓(xùn)練系統(tǒng)的FOM的部分內(nèi)容如表1~表4所示。
表1 復(fù)雜數(shù)據(jù)類型POSITION的FOM
表2 對象類Entity的FOM
復(fù)雜數(shù)據(jù)類型POSITION表示實體的位置,在程序代碼中對應(yīng)著一個結(jié)構(gòu)體。根據(jù)系統(tǒng)的軟件組成結(jié)構(gòu),系統(tǒng)中的蛙人和蛙人運(yùn)載器類繼承了FOM中Entity對象類的所有屬性;反蛙人聲吶類則繼承了Sonar對象類的所有屬性;聲吶探測類則繼承了交互類Detect的所有參數(shù)。
系統(tǒng)硬件布局采用千兆局域網(wǎng),連接訓(xùn)練組織臺、輔助評估臺、反蛙人聲吶操作臺以及蛙人及運(yùn)載器操作臺,如圖3所示。
在圖3中,除了輔助評估臺之外,訓(xùn)練組織臺、蛙人及運(yùn)載器操作臺、反蛙人聲吶操作臺具有三臺主機(jī)及配套的大屏幕顯示器組成,三臺主機(jī)分別運(yùn)行二維態(tài)勢顯示軟件、三維態(tài)勢顯示軟件和其他應(yīng)用軟件。為了較好地展示三維和二維態(tài)勢以及支持基于CUDA的并行運(yùn)算,主機(jī)均帶有高性能GPU。在局域網(wǎng)中還接入了兩臺網(wǎng)絡(luò)投影儀,分別將二維和三維態(tài)勢投送到幕布上顯示,便于組訓(xùn)人員和評估人員進(jìn)行觀察。數(shù)據(jù)庫服務(wù)器用于存儲各類資源和數(shù)據(jù),RTI服務(wù)器則用于運(yùn)行RTI基礎(chǔ)支撐軟件。為了進(jìn)行“背靠背”的訓(xùn)練,蛙人及運(yùn)載器操作臺、反蛙人操作臺與訓(xùn)練組織臺和輔助評估臺之間需要利用隔斷、移動墻等方式進(jìn)行視覺隔離。
表3 對象類Sonar的FOM
表4 交互類Detect的FOM
圖3 反蛙人聲吶虛擬訓(xùn)練系統(tǒng)的硬件布局
要想提高反蛙人聲吶虛擬訓(xùn)練系統(tǒng)的仿真可信度,必須模擬水聲信道對聲吶所發(fā)射聲波造成的影響,包括聲波的傳播損失、聲波吸收、頻率變化、海水噪聲以及海洋混響等[5]。由于水聲特性涉及復(fù)雜的數(shù)值計算,在系統(tǒng)運(yùn)行時根據(jù)水聲特性的原理進(jìn)行實時處理效率會非常低下。因此,可以事先構(gòu)建完整的水聲特性模型,利用Matlab仿真軟件將水聲特性的參數(shù)事先計算出來并存儲到水聲特性數(shù)據(jù)庫當(dāng)中,在系統(tǒng)運(yùn)行時再根據(jù)需要調(diào)用數(shù)據(jù)庫中的水聲特性參數(shù)進(jìn)行少量的計算,如此一來,在保證系統(tǒng)的仿真逼真度的同時,又保證了其運(yùn)行效率不會受到很大影響。
系統(tǒng)中的圖形繪制難點(diǎn)主要涉及到兩個方面,一是在二維電子海圖上疊加繪制運(yùn)動軌跡、聲波波束、兵力狀態(tài);二是繪制逼真的聲吶系統(tǒng)操作界面。
對于前者,由于動軌跡、聲波波束、兵力狀態(tài)都不屬于標(biāo)準(zhǔn)的軍標(biāo),不能通過軍標(biāo)庫調(diào)用接口直接繪制在二維電子海圖上,只能通過矢量繪圖的方式調(diào)用系統(tǒng)API進(jìn)行繪制。實驗證明,直接進(jìn)行矢量繪制會造成系統(tǒng)畫面的閃爍感。因此,系統(tǒng)可采用雙緩沖繪制技術(shù),即首先將矢量圖形繪制到與當(dāng)前顯示設(shè)備環(huán)境兼容的內(nèi)存緩沖區(qū)當(dāng)中,然后將內(nèi)存緩沖區(qū)中繪制好的圖形整體復(fù)制粘貼到顯示緩沖區(qū)中,以此來消除閃爍感[6]。
對于聲吶系統(tǒng)操作界面的繪制,則必須要求盡量接近于實裝外觀。傳統(tǒng)的繪制方式,如GDI、GDI+等雖然可以實現(xiàn),但是存在繪制過程復(fù)雜、難以復(fù)用的缺點(diǎn)。因此,可以采用Qt編程繪制聲吶系統(tǒng)的操作界面。Qt是一款基于C++的GUI應(yīng)用開發(fā)框架,它利用內(nèi)含的Qt Designer工具繪制軟件界面,利用信號—槽事件過濾機(jī)制關(guān)聯(lián)界面控件和后臺代碼,從而實現(xiàn)對界面和功能的解耦[7]。并且還可以利用Qt的插件機(jī)制開發(fā)實現(xiàn)聲吶操作界面中常用的開關(guān)、旋鈕、顯示器等組件,為這些自定義的界面組件定制信號和事件過濾器,將它們集成為完整的聲吶操作界面,實現(xiàn)GUI界面的靈活裝配和復(fù)用。
由于反蛙人聲吶虛擬訓(xùn)練屬于裝備級虛擬訓(xùn)練,因此不能僅滿足于聲吶的功能仿真,而必須實現(xiàn)其波束形成、信號處理和數(shù)據(jù)處理的全過程。目前,反蛙人聲吶的可用工作頻段大多在10 kHz量級,根據(jù)采樣定理,采樣率可達(dá)到100 k/s,這樣就會造成后續(xù)信號處理和數(shù)據(jù)處理面臨龐大的數(shù)據(jù)量,處理速度會急劇下降。
針對CPU在聲吶信號處理和數(shù)據(jù)處理方面的實時性不足的缺點(diǎn),可以借鑒文獻(xiàn)[8~10]的做法,根據(jù)圖形處理器(GPU)擅長并行通用計算的特點(diǎn),利用支持CUDA的GPU進(jìn)行發(fā)蛙人聲吶的信號處理和數(shù)據(jù)處理。將聲吶信號處理和數(shù)據(jù)處理的流程劃分為若干個功能模塊,將每個功能模塊映射為可并行執(zhí)行的線程塊,將一個功能模塊內(nèi)的細(xì)分步驟映射為線程塊內(nèi)可并行執(zhí)行的若干線程,利用CUDA的兩層并行運(yùn)算能力提高聲吶信號處理和數(shù)據(jù)處理的速度[11]。
在三維態(tài)勢顯示分系統(tǒng)中,必須利用人體運(yùn)動仿真技術(shù)模擬蛙人在水中的肢體動作。目前,人體運(yùn)動仿真技術(shù)主要分為運(yùn)動捕獲、前向動力學(xué)、逆向動力學(xué)和人體動畫等幾種實現(xiàn)方式[12]。由于蛙人的肢體動作較為簡單和單一,主要體現(xiàn)在腳部、腿部、手部和腰部的擺動上,因此可以采用人體動畫的方式實現(xiàn)。
由于當(dāng)前主流的三維虛擬仿真引擎都能直接或者間接地支持3DSMax或Maya中的蒙皮動畫,因此可以首先在人體動作制作軟件Poser中制作BVH格式的蛙人動作文件,保存蛙人運(yùn)動時的骨骼和肢體關(guān)節(jié)旋轉(zhuǎn)數(shù)據(jù)[13];然后在3DS或Maya中打開蛙人三維模型,調(diào)用BVH文件制作蒙皮動畫;最后在三維虛擬仿真引擎中調(diào)用特定的API播放蒙皮動畫。通過以上三個步驟,即可逼真地模擬蛙人在三維空間內(nèi)的肢體動作。
本文設(shè)計了一種基于HLA的反蛙人聲吶虛擬訓(xùn)練系統(tǒng),針對系統(tǒng)的總體架構(gòu)、軟硬件設(shè)計和涉及的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)論述。文中所提出的設(shè)計思路和方法為系統(tǒng)的實現(xiàn)打下了良好基礎(chǔ),也為其他類似虛擬訓(xùn)練系統(tǒng)的研制提供了有益借鑒。