龔 偉 姜文志 孫玉玉
(海軍航空工程學(xué)院 煙臺 264001)
海島戰(zhàn)場環(huán)境數(shù)據(jù)庫結(jié)構(gòu)及API設(shè)計(jì)*
龔 偉 姜文志 孫玉玉
(海軍航空工程學(xué)院 煙臺 264001)
戰(zhàn)場環(huán)境數(shù)據(jù)具有涉及范圍廣、數(shù)據(jù)量大的特點(diǎn),基于綜合自然環(huán)境數(shù)據(jù)表示與交換規(guī)范協(xié)議(SEDRIS)的體系結(jié)構(gòu),利用戰(zhàn)場環(huán)境數(shù)據(jù)表示的高效性與精確性,設(shè)計(jì)了一個(gè)適用于海島防空作戰(zhàn)的戰(zhàn)場環(huán)境數(shù)據(jù)庫分層存儲模型及應(yīng)用程序接口(API)函數(shù)。
戰(zhàn)場環(huán)境數(shù)據(jù)庫; 分層存儲模型; 應(yīng)用程序接口
Class Number TP391.1
在研究海島防空作戰(zhàn)推演系統(tǒng)時(shí),戰(zhàn)場環(huán)境數(shù)據(jù)庫結(jié)構(gòu)及應(yīng)用程序接口(API)函數(shù)是必須研究的。所謂推演就是“通過對預(yù)定行動(dòng)環(huán)境逼真地、交互式地表現(xiàn),完成計(jì)劃任務(wù)和功能的演練,而且這些演練對于任務(wù)成功有重大意義”[1]。
戰(zhàn)場環(huán)境[2]是作戰(zhàn)推演系統(tǒng)的重要組成部分,在分布式仿真中主要有廣義和狹義兩種定義。廣義上,美國國防部DMSO建模與仿真主計(jì)劃(M&S Master Plan)將綜合環(huán)境定義為實(shí)現(xiàn)分布式系統(tǒng)建立和運(yùn)行的所有軟硬件環(huán)境,包括計(jì)算機(jī)網(wǎng)絡(luò)、各個(gè)仿真節(jié)點(diǎn)、仿真模型庫、仿真通信協(xié)議等;狹義上,按照美國國防部DMSO綜合環(huán)境數(shù)據(jù)表示與交換標(biāo)準(zhǔn)(SEDRIS)[3]對綜合環(huán)境的定義,綜合環(huán)境即分布式仿真系統(tǒng)中的統(tǒng)一的虛擬物理環(huán)境(Virtual Physical Environment),主要包括空間、大氣、海洋、陸地、電磁場以及各種人文環(huán)境和參戰(zhàn)實(shí)體的外部特性,其體系結(jié)構(gòu)[4]如圖1所示。
圖1 SEDRIS的體系結(jié)構(gòu)
傳統(tǒng)的推演系統(tǒng)在進(jìn)行戰(zhàn)場環(huán)境仿真時(shí),多采用自然環(huán)境建模方法實(shí)現(xiàn),技術(shù)難度大、開發(fā)周期長[5]。本文依據(jù)圖1所示體系結(jié)構(gòu),對戰(zhàn)場環(huán)境數(shù)據(jù)組成進(jìn)行分析,設(shè)計(jì)了作戰(zhàn)推演系統(tǒng)的環(huán)境數(shù)據(jù)庫存儲模型,同時(shí)為它們設(shè)計(jì)了API函數(shù),使得接口更加友好,為推演系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)奠定良好基礎(chǔ)。
2.1 數(shù)據(jù)組成
虛擬戰(zhàn)場環(huán)境[6]中的數(shù)據(jù)包括地形高程數(shù)據(jù)和文化特征數(shù)據(jù)。地形高程數(shù)據(jù)一般采用六角網(wǎng)格或方形網(wǎng)格量化表示[7]。對于文化特征,按照SEDRIS的分類,它是以形狀為標(biāo)準(zhǔn),分為點(diǎn)、線、面三種特征。點(diǎn)狀信息是指一些比較孤立、面積相對較小的文化特征。線狀信息是指那些長度比較長、寬度相對于長度可以忽略的文化特征,比如道路、河流等。面狀信息是指面積比較大的特征,比如樹林、湖泊、島嶼等。它們之間的區(qū)別比較明顯,但有時(shí)也是模糊的,這就要看該特征是作為點(diǎn)狀信息容易處理還是作為面狀信息容易處理[8]。
真實(shí)環(huán)境中,有的海域包括許多島嶼、沙洲和礁灘,有的是露出水面的,而有的則藏在水下。對于其中面積較大的島礁沙洲,我們可以用面狀抽象信息來表示;對于面積很小,影響戰(zhàn)場通視性的礁石,我們可以用點(diǎn)狀抽象信息表示;對于沒有露出水面的礁石暗沙,在防空作戰(zhàn)中可以忽略不計(jì),不予表示。而在島礁上部署的防空設(shè)施和建筑物可以用點(diǎn)狀信息表示。
綜合上述分析,我們把戰(zhàn)場環(huán)境數(shù)據(jù)庫的數(shù)據(jù)分成三部分,即基本網(wǎng)格信息、點(diǎn)狀索引信息、面狀抽象信息。
2.2 數(shù)據(jù)庫分層結(jié)構(gòu)的設(shè)計(jì)
戰(zhàn)場環(huán)境數(shù)據(jù)庫結(jié)構(gòu)模型是指戰(zhàn)場環(huán)境數(shù)據(jù)庫中環(huán)境數(shù)據(jù)的編排方式和組織關(guān)系[9]。這種組織方式的優(yōu)劣對戰(zhàn)場環(huán)境數(shù)據(jù)庫的數(shù)據(jù)采集、存儲、查詢、檢索和應(yīng)用分析都有著重要影響。
從以往的GIS[10]環(huán)境數(shù)據(jù)庫看,描述地形地貌和地形上的文化特征的方法有兩類:一是柵格法;二是矢量法。柵格法是用網(wǎng)格的方法來量化戰(zhàn)場環(huán)境,因此可以很好地定位戰(zhàn)場環(huán)境,便于搜索整個(gè)戰(zhàn)場環(huán)境,各種查詢、調(diào)度、描述等都能很方便地進(jìn)行。但柵格細(xì)化與系統(tǒng)實(shí)時(shí)性會產(chǎn)生矛盾,所以柵格法在量化戰(zhàn)場環(huán)境中只適用于很小的局部地域,不適合于大地形。矢量法可以精確地描述戰(zhàn)場環(huán)境中各種要素的特點(diǎn)和關(guān)系,但往往算法復(fù)雜,建模困難。
兩種方法各有利弊,可以使用網(wǎng)格化與矢量化相結(jié)合的方法來設(shè)計(jì)一個(gè)戰(zhàn)場環(huán)境數(shù)據(jù)庫的分層模型,如圖2所示。
圖2 戰(zhàn)場環(huán)境數(shù)據(jù)庫的分層結(jié)構(gòu)
這種分層方法可以把各種環(huán)境信息都明確地歸入設(shè)計(jì)的模型中,當(dāng)戰(zhàn)場環(huán)境發(fā)生較大變化時(shí),在其中添加或刪除信息都可以歸入分層的結(jié)構(gòu),而不用改變其模型結(jié)構(gòu)。
2.2.1 基本網(wǎng)格信息層
基本網(wǎng)格信息以地形高程網(wǎng)格為基本網(wǎng)格,以左上角頂點(diǎn)為本網(wǎng)格的索引,對每個(gè)網(wǎng)格進(jìn)行編號,以方便搜索和查找。每個(gè)網(wǎng)格還包括很多其他的海戰(zhàn)場環(huán)境屬性,防空作戰(zhàn)中主要考慮的是在大氣中飛行的空中實(shí)體,如巡航導(dǎo)彈、轟炸機(jī)、運(yùn)輸機(jī)等,因此在影響戰(zhàn)場的自然環(huán)境中,我們可以只考慮影響空中實(shí)體的大氣環(huán)境因素,如氣候溫度、通視性、電磁環(huán)境等。根據(jù)屬性的不同,又可以把基本網(wǎng)格信息層分為地形高程信息層、氣候溫度信息層、電磁環(huán)境信息層、通視性信息層,如圖3所示。
圖3 基本網(wǎng)格信息層分層結(jié)構(gòu)
氣候溫度層用來存儲該網(wǎng)格的天氣、溫度、風(fēng)力等大氣參數(shù)信息,對于在該網(wǎng)格中飛行的空中實(shí)體會受到大氣參數(shù)的影響。電磁環(huán)境主要存儲該網(wǎng)格上電磁對通信狀況的影響。通視性是指該網(wǎng)格上的作戰(zhàn)實(shí)體是否在可視范圍內(nèi)。
2.2.2 點(diǎn)狀索引信息層
基本網(wǎng)格信息層把一個(gè)戰(zhàn)場環(huán)境屬性分在很多網(wǎng)格里,而點(diǎn)狀索引信息層要求每一個(gè)索引的戰(zhàn)場環(huán)境特征要素完全處在它的索引網(wǎng)格里。因此,點(diǎn)狀索引信息層是用一張比基本網(wǎng)格信息層網(wǎng)格間距大一些的網(wǎng)格,并用網(wǎng)格索引號來索引該網(wǎng)格內(nèi)文化特征的集合,這個(gè)集合包括一些用矢量表示的點(diǎn)狀特征信息包括建筑物、面積較小的島礁、島嶼上的防空設(shè)施、軍事要塞等。
網(wǎng)格索引的信息都是點(diǎn)狀特征物,可以把它抽象成以下形式:
Point=(phID,position,*pNext)
(1)
其中,Point為點(diǎn)狀物特征物抽象屬性;phID為特征代號,用來映射具體的特征對象結(jié)構(gòu);而position指明了該點(diǎn)狀特征物在戰(zhàn)場環(huán)境中的x、y坐標(biāo);*pNext用來指向該網(wǎng)格內(nèi)的另一個(gè)點(diǎn)狀信息。特征代號如表1所示。
表1 點(diǎn)狀特征物代碼
點(diǎn)狀索引信息層中每個(gè)網(wǎng)格的內(nèi)容如下:
gridPoint=(gridID,*pHead)
(2)
其中:gridPoint為網(wǎng)格屬性;gridID為網(wǎng)格ID,代表該網(wǎng)格在索引網(wǎng)格中的網(wǎng)格ID號;*pHead為點(diǎn)狀信息鏈表頭,它存儲了該網(wǎng)格內(nèi)所有點(diǎn)狀信息組成的鏈表的表頭,而每張表格的內(nèi)容是式(1)所示的內(nèi)容。
由以上定義可知,在點(diǎn)狀信息索引層根據(jù)給定位置按照ID號索引搜索網(wǎng)格,取得該網(wǎng)格內(nèi)點(diǎn)狀特征物鏈表表頭。然后對鏈表進(jìn)行遍歷,就可以訪問到戰(zhàn)場環(huán)境內(nèi)任何一個(gè)角落的網(wǎng)格索引信息。
2.2.3 面狀抽象特征層
面狀抽象信息是指一些面積較大的特征,一般使用矢量方法來描述,用一組有序閉合的點(diǎn)來表示,兩個(gè)相鄰的點(diǎn)之間用線段連接起來就成了折線,然后把首尾連接起來就成了多邊形。它無法在網(wǎng)格里表示,可以建立一張面狀抽象特征鏈表,只要記住表頭位置,就可遍歷到戰(zhàn)場中的每一個(gè)面狀特征對象。
面狀抽象特征的特征類SHAPE可以定義如下:
SHAPE={s_featrueID,s_featrueName,
s_points[PointSUM],s_pointsum,*pNext}
(3)
其中,SHAPE表示面狀抽象屬性;s_featrueID用整型來表示指面狀特征編號;s_featrueName用字符串來表示,存儲面狀特征對象的名稱;s_points[PointSUM]是一個(gè)三維點(diǎn)坐標(biāo)數(shù)組,從頭到尾有序并且閉合地存儲面狀特征的拐點(diǎn);s_pointsum用整型來表示,指表示該面狀特征物的拐點(diǎn)總數(shù);*pNext是一個(gè)指針,指向下一個(gè)面狀特征物。
綜合上述分層情況,海戰(zhàn)場環(huán)境數(shù)據(jù)庫的對象模型主要定義了環(huán)境中各要素特征的一些屬性,對象屬性的定義方法基本是一致的,只是在具體的對象中有不同的屬性,可以給出其抽象的定義方法:
OBJECT={dbf_ID,dbf_sumID,
dbf_FeatrueObjName,dbf_nPointSum,
dbf_pos[n],dbf_Attribution}
(4)
其中:OBJECT表示屬性集合;dbf_ID指特征編號;dbf_sumID存儲當(dāng)前鏈表中對象編號;dbf_FeatrueObjName存儲對象名稱;dbj_nPointSum表示信息的拐點(diǎn)總數(shù);dbf_pos[n]是一個(gè)三維點(diǎn)坐標(biāo)數(shù)組,可以用dbf_pos[x]、dbf_pos[y]、dbf_pos[z]分別取x、y、z的值;dbf_Attribution是這個(gè)對象的特殊屬性集。
2.3 應(yīng)用程序接口(API)函數(shù)的設(shè)計(jì)
API的實(shí)現(xiàn)機(jī)制可看成這個(gè)數(shù)據(jù)庫的實(shí)現(xiàn)引擎,它是海戰(zhàn)場環(huán)境數(shù)據(jù)庫的實(shí)時(shí)處理程序,完成數(shù)據(jù)庫的信息提取和處理以及內(nèi)嵌的各種操作處理。通過設(shè)計(jì)的各種API函數(shù),海島防空作戰(zhàn)推演系統(tǒng)的應(yīng)用程序可以方便地提取、處理、設(shè)置各種數(shù)據(jù),透明地完成對海戰(zhàn)場環(huán)境數(shù)據(jù)庫的各種操作處理[11]。
設(shè)計(jì)的所有的API函數(shù)應(yīng)由初級API和高級API兩部分組成。其中初級API中主要包括一些數(shù)據(jù)信息提取的函數(shù),有位置獲取、屬性提取等;高級API包括根據(jù)初級API提取的信息分析綜合得到的信息。下面給出每一部分的描述,由于具體API函數(shù)比較復(fù)雜,給出典型的舉例。
2.3.1 初級API
初級API包括兩大部分:一是那些運(yùn)行API引擎所必需的接口函數(shù);另一些是基本的獲取戰(zhàn)場環(huán)境信息的接口函數(shù)。
1) 引擎函數(shù)
包括數(shù)據(jù)庫文件加載函數(shù),初始化函數(shù)等,如:
LoadFieldDB(char* fileName)
參數(shù)是字符串,表示海戰(zhàn)場環(huán)境數(shù)據(jù)庫的路徑名,目的是把環(huán)境數(shù)據(jù)讀入到內(nèi)存中。
void InitFieldDB() 初始化海戰(zhàn)場環(huán)境數(shù)據(jù)庫。
2) 信息獲取函數(shù)
struct Position{float x,y,z};
Position是定義一個(gè)三維點(diǎn)坐標(biāo)數(shù)據(jù)格式;
Position GetPointPosition(*char name)
根據(jù)輸入的對象名稱,函數(shù)返回一個(gè)三維點(diǎn)坐標(biāo)結(jié)構(gòu),表示該點(diǎn)信息在戰(zhàn)場環(huán)境中的位置。
2.3.2 高級API
在獲取了戰(zhàn)場環(huán)境信息后,對其進(jìn)行分析、處理得到的結(jié)果。主要反映戰(zhàn)場環(huán)境中特征對象之間的關(guān)系以及戰(zhàn)場環(huán)境與實(shí)體之間的關(guān)系。主要API函數(shù)如下:
float GetPointAndPoint(Position p1,Position p2)
參數(shù)分別表示兩個(gè)三維點(diǎn)的坐標(biāo),函數(shù)計(jì)算并返回兩點(diǎn)之間的距離。
BOOL IsPointSeePoint(Position p1,Position p2)
參數(shù)分別表示兩個(gè)三維點(diǎn)的坐標(biāo),函數(shù)計(jì)算兩點(diǎn)之間的通視情況,返回為真表示兩點(diǎn)之間是通視的,否則為假。
傳統(tǒng)的戰(zhàn)場環(huán)境建模方法技術(shù)難度大,開發(fā)周期長,本文提出的分層結(jié)構(gòu)將環(huán)境特征物分層考慮,把體積小、數(shù)量多的點(diǎn)狀特征物歸到一個(gè)索引網(wǎng)格中分塊治理,而把數(shù)量少的面狀特征物用鏈表的方法查詢,并為此數(shù)據(jù)庫設(shè)計(jì)了API函數(shù),為海島防空作戰(zhàn)推演系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)打下了良好基礎(chǔ)。
[1] 劉海峰,陳景,林波.面向戰(zhàn)術(shù)飛機(jī)任務(wù)推演的威脅空間分析[J].計(jì)算機(jī)仿真,2007,24(11):38-41.
[2] 張欣.兵棋推演系統(tǒng)全球地理環(huán)境建模方法研究[D].鄭州:中國人民解放軍信息工程大學(xué),2011:5-10.
[3] 孫麗卿,王行仁.綜合自然環(huán)境數(shù)據(jù)庫開發(fā)的研究[J].系統(tǒng)仿真學(xué)報(bào),2007,19(16):3688-3692.
[4] 龐國峰.虛擬戰(zhàn)場理論研究與工程實(shí)踐[M].北京:電子工業(yè)出版社,2009:217-218.
[5] 林華,莫建軍,吳中紅.基于組件式GIS的海軍兵力對抗推演系統(tǒng)[J].計(jì)算機(jī)仿真,2013,30(3):22-25.
[6] 劉濤,常顯奇,謝劍薇.虛擬戰(zhàn)場環(huán)境系統(tǒng)的軍事需求分析[J].飛航導(dǎo)彈,2007(5):35-37.
[7] 楊倫,彭春光,黃健,等.兵棋推演中地形量化算法與研究[J].計(jì)算機(jī)仿真,2008,25(9):96-99.
[8] 郭齊勝,等.計(jì)算機(jī)生成兵力導(dǎo)論[M].北京:國防工業(yè)出版社,2006:34-35.
[9] 董志明.適于CGF的戰(zhàn)場環(huán)境數(shù)據(jù)庫研究[D].北京:裝甲兵工程學(xué)院,2004:10-25.
[10] 王亞民,趙捧未.地理信息系統(tǒng)及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006:10-15.
[11] 郭齊勝,董志明.戰(zhàn)場環(huán)境仿真[M].北京:國防工業(yè)出版社,2005:80-82.
Island Battlefield Environment Database Structure and API Design
GONG Wei JIANG Wenzhi SUN Yuyu
(Naval Aeronautical and Astronautical University, Yantai 264001)
The battlefield environment data has the characteristics of a wide range and the large amount of data. Based on the architecture of SEDRIS, using the efficiency and accuracy of the battlefield environment data representation, a battlefield environment database hierarchical storage model which is suitable for island air defense combat is designed. And the API function for the model is designed.
the battlefield environment database, hierarchical storage model, API
2014年4月20日,
2014年6月3日
龔偉,男,碩士研究生,研究方向:軍用仿真。姜文志,男,教授,博士生導(dǎo)師,研究方向:計(jì)算機(jī)應(yīng)用、武器裝備與作戰(zhàn)指揮一體化。孫玉玉,女,工程師,研究方向:人事管理。
TP391.1
10.3969/j.issn1672-9730.2014.10.024