宋云雪,張 穎
(中國民航大學(xué) 航空工程學(xué)院,天津 300300)
現(xiàn)階段國內(nèi)外學(xué)者對機場地面保障研究大多集中在機場地面保障流程優(yōu)化[1-3],機場保障能力驗證評估[4,5],機場運輸決策[6,7]等方面,針對上述文獻(xiàn)進(jìn)行總結(jié)分析,由于機場環(huán)境的特殊性、機場信息的離散性和復(fù)雜性,現(xiàn)有部分保障流程優(yōu)化研究難以對方案和研究方法進(jìn)行實地應(yīng)用驗證; 而對機場保障能力評估時多數(shù)學(xué)者缺乏真實詳細(xì)的機場方案實施數(shù)據(jù),結(jié)果具有一定的主觀性; 在機場運輸決策等領(lǐng)域需要大量機場實時監(jiān)測信息,信息的匱乏和機場試驗的局限性會導(dǎo)致研究方法和方案的可行性難以判別.對于機場運動仿真研究,Alomar 等人基于FlexSim 構(gòu)建機場地面車輛移動仿真模型來優(yōu)化其在運動過程中的運輸流程[8],潘衛(wèi)軍等人基于Unity 對機場應(yīng)急演練過程進(jìn)行了仿真評價[9]; 分析國內(nèi)外現(xiàn)有機場仿真研究多數(shù)借助了需要付費的第三方平臺仿真引擎軟件,建立的仿真模型使用受平臺限制難以遷移,開發(fā)的程序缺乏復(fù)用性,軟件學(xué)習(xí)和使用復(fù)雜度較高.本文為解決上述問題,獨立設(shè)計并開發(fā)了一種機場運動目標(biāo)仿真模型,借助計算機仿真技術(shù)對機場地面保障過程進(jìn)行仿真,構(gòu)建的模擬環(huán)境為機場保障中設(shè)施分配、路線規(guī)劃等流程優(yōu)化提供驗證環(huán)境; 對機場旅客、行人、保障車輛和航空器運輸工具等目標(biāo)進(jìn)行運動仿真,能復(fù)現(xiàn)機場各部門組織工作狀態(tài)和機場保障設(shè)備的作業(yè)情況,產(chǎn)生的數(shù)據(jù)可為機場保障預(yù)案和保障能力評估驗證提供依據(jù); 仿真模型的真實地理環(huán)境數(shù)據(jù)和機場目標(biāo)實時位置數(shù)據(jù)可為機場應(yīng)急處理、運輸決策等提供判斷依據(jù);同時機場保障過程仿真也是基于民航安全無誤原則下對人員進(jìn)行培訓(xùn)的有效方法,可以為民航從業(yè)人員提供指導(dǎo)思路.此外,本研究設(shè)計實現(xiàn)的仿真模型可獨立運行,也可嵌入機場保障相關(guān)的復(fù)雜系統(tǒng),應(yīng)用于民航機場研究相關(guān)的多個領(lǐng)域,具有廣泛的適用性,對提高機場航班過站保障能力具有重要意義.
實現(xiàn)底層數(shù)據(jù)的存儲和關(guān)聯(lián)是構(gòu)建機場地面目標(biāo)仿真模型的基礎(chǔ).機場地面保障全過程基于機場復(fù)雜的內(nèi)部環(huán)境,而GIS 圖層的要素、表面和模型能夠構(gòu)建模擬不同機場的環(huán)境地形.Xu 等人基于C#程序和ArcObjects 提出了一種數(shù)字地圖瓦片編碼和計算方法,生成的瓦片地圖可供在線和離線應(yīng)用程序使用[10].本文在文獻(xiàn)[10]研究基礎(chǔ)之上,借助GIS 開發(fā)平臺生成機場瓦片地圖為仿真提供環(huán)境數(shù)據(jù).
由于涉及的機場瓦片數(shù)據(jù)體量和數(shù)量巨大,離線環(huán)境下如何對其進(jìn)行合理存儲和有效管理是面臨的一大挑戰(zhàn).近年來Zhang 等人提出了一種基于Hadoop 的分布式文件系統(tǒng)柵格瓦片存儲策略[11],Lv等人提出了一種基于嵌入式數(shù)據(jù)庫的海量地圖瓦片存儲技術(shù)[12].基于上述研究,結(jié)合分布式文件系統(tǒng)和數(shù)據(jù)庫存儲特點,本文采用分布式文件系統(tǒng)和關(guān)系數(shù)據(jù)庫相結(jié)合的方式來管理機場瓦片地圖數(shù)據(jù): 構(gòu)建共享目錄樹將不同機場瓦片地圖和拼接圖存儲在多個服務(wù)器,用戶訪問單個路徑結(jié)點就能讀取到所需機場衛(wèi)星瓦片地圖資源; 使用關(guān)系數(shù)據(jù)庫存儲城市基礎(chǔ)信息、機場點數(shù)據(jù)層和道路設(shè)施分布層等標(biāo)注信息,機場運動目標(biāo)仿真底層關(guān)聯(lián)數(shù)據(jù)模型如圖1 所示.
圖1 仿真底層數(shù)據(jù)關(guān)聯(lián)模型
圖1 中點數(shù)據(jù)層的機場受控點和分布點標(biāo)注功能基于.Net 的GDI+實現(xiàn),底層數(shù)據(jù)關(guān)聯(lián)圖中點數(shù)據(jù)層的坐標(biāo)系使用GDI+的頁面坐標(biāo)系,該坐標(biāo)系原點位于仿真繪圖窗口左上角.如圖2 為南寧吳圩國際機場的道路及設(shè)施分布層頁面,在該層標(biāo)注了機場的關(guān)鍵設(shè)施以及機場運動目標(biāo)行駛部分路線網(wǎng)絡(luò).
圖2 南寧吳圩國際機場設(shè)施道路分布層
機場目標(biāo)運動仿真過程要得到真實的地理數(shù)據(jù)測算結(jié)果,需要實際環(huán)境和仿真環(huán)境比例關(guān)系,即表示地圖上一個像素坐標(biāo)點所代表地球上實際距離長度的地面分辨率參數(shù).結(jié)合圖1 中數(shù)據(jù)關(guān)聯(lián)模型,根據(jù)選定的機場瓦片地圖層級計算地圖分辨率,圖1 中機場衛(wèi)星地圖各層每個切片統(tǒng)一為256×256像素,level0對應(yīng)單個瓦片,level1對應(yīng)4 個瓦片,以此類推,得到levelZ的機場地圖瓦片個數(shù)CountlevelZ為:
機場瓦片地圖采取Web 墨卡托投影坐標(biāo)系,設(shè)赤道半徑為Re,其坐標(biāo)系范圍X方向最大值為Maxx,拼接地圖對應(yīng)的瓦片地圖層級為levelZ,瓦片數(shù)量為CountlevelZ,各級瓦片拼接圖總像素寬度為WidthlevelZ,levelZ級機場衛(wèi)星地圖的地面分辨率為GRlevelZ,單個瓦片的像素寬度為Width,由式(2)和式(3)得到式(4)地面分辨率GRlevelZ,公式如下:
為了保證仿真效果的清晰度和良好的用戶體驗,仿真模型中的底層機場瓦片數(shù)據(jù)默認(rèn)為16-18 級的瓦片地圖拼接圖,各級機場拼接地圖對應(yīng)的切片個數(shù)CountlevelZ和地面分辨率GRlevelZ計算結(jié)果如表1 所示.
表1 機場地圖層級關(guān)系對應(yīng)表
研究以天津濱海國際機場的18 級瓦片拼接圖為例,在機場點數(shù)據(jù)層標(biāo)注編號TJ01 的跑道坐標(biāo)4 點分別為(1842,1318)、(1930,1275)、(3902,5619)、(3993,5577),該跑道內(nèi)移坐標(biāo)點為(2095,1850)、(2185,1807)結(jié)合地圖層級關(guān)系對應(yīng)表,可計算出天津濱海國際機場西跑道可用著陸距離(LDA)約為2 500 m,可用起飛距離(TODA)約為2 850 m 等數(shù)據(jù),為后續(xù)機場地面保障仿真過程計算奠定基礎(chǔ).
機場地面目標(biāo)在繪圖平面上的交互基礎(chǔ)是對模型所在坐標(biāo)系和仿真展示頁面坐標(biāo)系進(jìn)行坐標(biāo)轉(zhuǎn)換.針對坐標(biāo)系平移,通過仿射變換增加矩陣維數(shù),將二維矩陣表示形式轉(zhuǎn)換為三維矩陣,使用三維矩陣左乘的方式實現(xiàn)運動目標(biāo)所在坐標(biāo)系和仿真繪圖平面坐標(biāo)系的平移、旋轉(zhuǎn)和縮放.以圖3 飛機為例,把目標(biāo)運動坐標(biāo)系中飛機模型放置在繪圖界面坐標(biāo)系中.
圖3 運動目標(biāo)坐標(biāo)系與繪圖坐標(biāo)系轉(zhuǎn)換
首先針對機場繪圖界面坐標(biāo)系XOY在 X軸方向上平滑移動m個單位,Y軸方向平移n個單位,設(shè)平移變換的系數(shù)矩陣為M1; 再對XOY繪圖界面坐標(biāo)系Y 軸反向縮放,縮放變換的系數(shù)矩陣為M2將經(jīng)上述矩陣變換后的繪圖界面坐標(biāo)系旋轉(zhuǎn)順時針旋轉(zhuǎn)θ度,旋轉(zhuǎn)系數(shù)矩陣M3; 最后通過計算繪圖界面坐標(biāo)系與運動目標(biāo)坐標(biāo)系的像素比例關(guān)系為1:f進(jìn)行縮放,系數(shù)矩陣為M4,那么圖3 的轉(zhuǎn)換過程可以表示為:
結(jié)合矩陣復(fù)合轉(zhuǎn)換方式,將M1M2M3M4四個矩陣相乘表示為單個矩陣M,通過計算M可表示為:
結(jié)合矩陣式(5)、式(6)運算,在已知運動目標(biāo)坐標(biāo)系中運動模型某點坐標(biāo)情況下可計算出該點在繪圖界面坐標(biāo)系中的坐標(biāo).結(jié)合GDI+坐標(biāo)全局轉(zhuǎn)換設(shè)計程序?qū)崿F(xiàn)運動目標(biāo)在仿真界面坐標(biāo)系中的繪圖操作,如圖4為飛機在機場某時刻降落滑行的運動狀態(tài).
圖4 仿真界面飛機運動目標(biāo)滑行過程
機場運動目標(biāo)在機場路網(wǎng)運動行駛前需要確定移動路徑,本文對A*算法加以改進(jìn),利用改進(jìn)的A*算法來確定機場運動目標(biāo)的最佳行駛路徑.A*算法是一種啟發(fā)式搜索算法,它的計算效率相比與Dijkstra 算法更快,利用其估價函數(shù)對節(jié)點加以擴展能夠找到最合適的目標(biāo)節(jié)點; 利用A*算法求解最佳路線過程中,雖然搜索節(jié)點明顯少于Dijkstra 算法,但其在大規(guī)模路網(wǎng)條件下搜索節(jié)點數(shù)量依舊會影響計算性能.本文對機場分區(qū)處理,將各區(qū)域路徑坐標(biāo)點進(jìn)行區(qū)域編號; 通過分區(qū)預(yù)處理操作對各區(qū)域運動目標(biāo)行駛路線范圍加以限制達(dá)到A*算法在預(yù)處理環(huán)節(jié)減少搜索節(jié)點的目的.其中機場路網(wǎng)的點坐標(biāo)信息存儲結(jié)構(gòu)如表2 所示.
表2 機場路網(wǎng)點坐標(biāo)信息
A*算法的節(jié)點a估價函數(shù)如式(7):
其中,g(a)是從機場運動目標(biāo)的設(shè)定運動起點到點a的實際成本,h(a)是節(jié)點a到目標(biāo)節(jié)點的最優(yōu)路徑估計成本,啟發(fā)式函數(shù)h(a)的設(shè)計是A*算法的關(guān)鍵.分析機場路網(wǎng)特點,排除同一種類的機場目標(biāo)同一時間段超速現(xiàn)象,機場的機場運動目標(biāo)行駛路線網(wǎng)絡(luò)滿足時變網(wǎng)絡(luò)的先入先出條件(FIFO),也就是同一時段同種類機場運動目標(biāo)先出發(fā)的比后出發(fā)的先到達(dá).設(shè)機場運動目標(biāo)給定出發(fā)時刻為Tstart,起點Vstart,終點為Vend,所有點坐標(biāo)集合為Vlist,坐標(biāo)連接的路段集合為Alist,現(xiàn)有未找到的運動目標(biāo)最佳路徑剩余節(jié)點集合為NFlist,節(jié)點a的編號為Na,它的前驅(qū)節(jié)點為FNa,Tab(t)是機場運動目標(biāo)t(t∈T)時刻在ab路段的出發(fā)時間,T是機場運動目標(biāo)完成運動過程的總時間分段集合.對于任意(a,b)∈Alist,(t)=minTab(t),用(t)構(gòu)造靜態(tài)網(wǎng)絡(luò)G,tmin(a,b)表示機場運動目標(biāo)在G中從a點到b點的最短路徑的行程時間.對啟發(fā)式函數(shù)h(a)定義如下:
根究式(7)、式(8)設(shè)計改進(jìn)的A*算法計算流程如下:
(1)利用數(shù)據(jù)庫分組篩選出與當(dāng)前機場目標(biāo)所在點區(qū)域編號相鄰的點坐標(biāo)集合Plist;
(2)采用Dijkstra 算法計算集合Plist中點坐標(biāo)到目標(biāo)節(jié)點的h(a);
(3)初始化變量Va,Ta且對于變量?b≠a,Tb=+∞,FNa=0,Slist={Va},NFlist=Φ.
(4)改變節(jié)點編號,對所有a的后繼節(jié)點,如果Tb>Ta+Tab(Ta)+h(a),則Tb=Ta+Tab(Ta)+h(a),FNb=FNa若b?NFlist,則NFlist=NFlist∪.
(5)選擇節(jié)點,設(shè)Vmin=min(b),b∈NFlist,令Va=Vmin,則Flist=Flist∪{a},NFlist=NFlist-.
(6)如果Va=Vend,停止計算,否則回轉(zhuǎn)到步驟(1).
(7)通過反向追蹤節(jié)點a的前驅(qū)節(jié)點FNa,得到最短路徑.
通過改進(jìn)的A*算法,可以在仿真過程中提前對機場運動目標(biāo)運動最佳路線進(jìn)行規(guī)劃,提高機場運動目標(biāo)作業(yè)效率.
GDI+的原始畫圖模式采用了Graphics 接口,該方法畫圖效率緩慢,而且在仿真測試過程中出現(xiàn)了嚴(yán)重的閃爍效果.在對圖像處理過程中很多學(xué)者采用緩沖技術(shù)提高圖像處理效率,如Zhou 等人研究了一種實時固定比例幀緩沖壓縮技術(shù)應(yīng)用于嵌入式圖形系統(tǒng)中[13];王宇飛等人利用雙緩沖技術(shù)顯著提高了測井曲線的繪制速度[14]; 為了避免繪圖效率對機場地面運動目標(biāo)仿真過程的時效性造成不必要的干擾,影響仿真的準(zhǔn)確度,本文采用GDI+自帶的雙緩沖類BufferedGraphicsContext實現(xiàn)雙緩沖畫圖模式,較大程度上減少了程序繪圖運行速度對仿真實時性的影響.
基于實時仿真理論,要將運動目標(biāo)移動狀態(tài)與具體時間相關(guān)聯(lián),在坐標(biāo)變換繪圖過程中,模型的移動距離需要隨時間變化而做出調(diào)整.利用GDI+技術(shù)調(diào)整繪圖瞬間對應(yīng)的坐標(biāo)點位置,以目標(biāo)運動過程總時間劃分合適的單位時間步長T,結(jié)合單位時間內(nèi)的速度變化和運動目標(biāo)朝向角度變化值,計算單位時間步長T時段內(nèi)X軸和 Y軸方向的位移增量,進(jìn)而計算確定繪圖坐標(biāo)點位置.排除了繪圖效率對仿真模型中繪圖過程的客觀影響,并結(jié)合模型中機場目標(biāo)運動路徑的存儲結(jié)構(gòu)和運動規(guī)律,對確定繪圖坐標(biāo)點的實際問題建立計算模型.
圖5 左邊繪圖坐標(biāo)系中是機場運動目標(biāo)移動行駛路線網(wǎng)絡(luò),其中擺渡車路線01 是利用改進(jìn)的A*算法求解確定的擺渡車最佳行駛路線,以該條路線為例,將路線中已知的相鄰坐標(biāo)兩點分解放大,已知機場運動目標(biāo)模型對應(yīng)的行駛移動路徑、運動速度、運動加速度和運動時間等信息,每隔單位步長T,確定繪圖對應(yīng)坐標(biāo)Pn的位置計算模型如圖5 所示.
圖5 路線相鄰路徑點分解計算模型
為方便機場運動目標(biāo)屬性的描述與其相關(guān)數(shù)據(jù)的合理存儲,為機場運動目標(biāo)建立統(tǒng)一的數(shù)據(jù)模型Model,如表3 所示.
表3 運動目標(biāo)模型Model 屬性
令路徑中已知坐標(biāo)點為P(i),其相鄰坐標(biāo)點為P(i+1),兩點之間距離為Dis(i,i+1),兩點之間連線與水平方向夾角為 β,單位時間T間隔內(nèi) X方向和 Y方向增量分別為 Δx,Δy,N個T時間間隔內(nèi)的模型位移增量為incrementNT,結(jié)合表3 中Model 的相關(guān)屬性數(shù)據(jù)描述,對目標(biāo)模型勻速和非勻速運動過程繪圖坐標(biāo)點Pn求解流程梳理如圖6 所示.
圖6 目標(biāo)模型繪圖坐標(biāo)點求解流程圖
基于上述計算模型,本文采用面向?qū)ο蟮某绦蛟O(shè)計方式,設(shè)計Model 類封裝其相關(guān)屬性,初始化構(gòu)造函數(shù),移動距離、運動速度、旋轉(zhuǎn)角度等計算函數(shù),模型旋轉(zhuǎn)角度計算方法主要功能是以對象綁定的移動路徑已知坐標(biāo)點為基礎(chǔ),計算目標(biāo)在運動目標(biāo)坐標(biāo)系到繪圖仿真界面坐標(biāo)系繪圖操作時的旋轉(zhuǎn)角度circle_angle(i,i+1),結(jié)合GDI+繪圖仿真坐標(biāo)系特點,該角度值主要包括以下4 種情況:
(1)當(dāng)yP(i+1)>yP(i)時:
(2)當(dāng)yP(i+1)<yP(i)時:
(3)當(dāng)yP(i+1)=yP(i)且xP(i+1)≥xP(i)時:
(4)除上述情況外,旋轉(zhuǎn)角度值為:
綜合式(9)-式(12)可在已知模型路徑點坐標(biāo)條件下正確控制仿真過程中機場運動目標(biāo)的運動朝向角度.根據(jù) X軸和 Y軸方向上的位移增量,在確定單位步長時間段內(nèi)對應(yīng)的繪圖坐標(biāo)點Pn時也包括了多種情況,如表4 所示.
表4 不同條件下 Pn坐 標(biāo)值
結(jié)合坐標(biāo)計算流程圖對相關(guān)數(shù)學(xué)理論模型,編寫程序接口將機場地面目標(biāo)實時運動仿真過程產(chǎn)生的數(shù)據(jù)可視化,以天津濱海國際機場某航班地面保障擺渡車行駛運動過程為例,該運動目標(biāo)仿真過程的實時坐標(biāo)位置、運動速度、朝向角度等數(shù)據(jù)展示如圖7 所示.其中詳細(xì)的軌跡坐標(biāo)和對應(yīng)位置的時刻信息可以為運動目標(biāo)行駛路線碰撞檢測評估提供數(shù)據(jù)支撐,運動目標(biāo)的速度位移變化可以用來評判目標(biāo)從出發(fā)地到目的地的運動可行性.
圖7 Model 運動仿真過程數(shù)據(jù)可視化
機場運動目標(biāo)實時運動二維仿真過程實際上是結(jié)合具體時間不斷實現(xiàn)圖像繪制和數(shù)據(jù)計算的同步過程.機場地面運動目標(biāo)運動過程仿真涉及到的地面保障車輛、旅客、保障人員、各類航空器的運動過程對應(yīng)多個時間階段,而每個時間階段也可能包括多個目標(biāo)同時運動的過程,如圖8 截取的某機場部分地面保障環(huán)節(jié)涉及到多個機場運動目標(biāo)進(jìn)行作業(yè),根據(jù)機場地面目標(biāo)運動特點,設(shè)計并發(fā)程序?qū)⒎抡娓鱾€階段任務(wù)合理分工交給多個線程完成.
圖8 機場保障部分作業(yè)流程
本文采用多線程技術(shù),利用計時器來控制和管理不同時間階段對應(yīng)的多線程任務(wù),System.Timers.Timer 是.Net 基于服務(wù)器的多線程計時器,可以按照設(shè)定的時間間隔執(zhí)行事件處理程序,非常適合機場保障過程中不同目標(biāo)按照固定時間間隔執(zhí)行任務(wù)的情景,直接使用該計時器管理仿真計算過程流程如圖9所示.
圖9 多線程仿真繪圖流程
在計時器管理多線程任務(wù)過程中,如果一個計時器對象綁定的Elapsed 事件函數(shù)沒有處理完成,到達(dá)下一個時間點新的線程依舊會按時啟動執(zhí)行Model 信息更新的回調(diào)事件,當(dāng)遇到回調(diào)事件計算耗時而方法未在設(shè)置的interval 間隔內(nèi)執(zhí)行完畢的情況下,很容易出現(xiàn)超時導(dǎo)致的多線程重入問題,也就是多個線程進(jìn)入了計時器對象綁定的Elapsed 事件,導(dǎo)致線程不安全.圖10 是按照上述流程某罐式加油車的仿真實時坐標(biāo)更新情況,設(shè)置事件引發(fā)間隔為100 ms,到達(dá)間隔引發(fā)事件: 時間軸增長步長T秒,Model 信息計算更新; Timer不管回調(diào)事件是否執(zhí)行完畢,它只負(fù)責(zé)每隔100 ms 觸發(fā)一次,由于系統(tǒng)處理效率存在不穩(wěn)定性,出現(xiàn)了部分線程未在規(guī)定時間范圍內(nèi)完成數(shù)據(jù)計算情況,由此引發(fā)多線程重入問題導(dǎo)致坐標(biāo)重復(fù)更新.
圖10 改進(jìn)前目標(biāo)位置更新時間表
本文對上述仿真繪圖流程加以改進(jìn),讓定時器定時引發(fā)的回調(diào)事件能夠阻塞執(zhí)行,并且能夠動態(tài)的添加和移除多個不同機場目標(biāo)定時運動任務(wù).
基于鎖的同步機制是多線程并行應(yīng)用中同步操作的主要實現(xiàn)機制[15].可重入鎖可解決多線程重入導(dǎo)致的線程不安全問題,但是考慮到本文頻繁調(diào)用回調(diào)事件,簡單的對回調(diào)函數(shù)部分進(jìn)行加鎖操作會嚴(yán)重影響仿真性能,本文對于單個機場運動目標(biāo)仿真過程,結(jié)合回調(diào)次數(shù)來阻塞定時器達(dá)到線程安全的目的.首先對計時器進(jìn)行類封裝,在封裝類中對計時器調(diào)用時先將計時器阻塞,設(shè)置函數(shù)回調(diào)次數(shù)為單次保證回調(diào)函數(shù)線程安全,回調(diào)事件執(zhí)行完畢后再對計時器重啟.通過上述操作能夠定時阻塞調(diào)用回調(diào)方法并且很大程度上提高了仿真性能,并保證了單個運動目標(biāo)的線程安全性.
考慮到機場地面保障作業(yè)任務(wù)的多目標(biāo)多時段等特點,要實現(xiàn)多個機場運動目標(biāo)的多個定時任務(wù)仿真過程正常運行,設(shè)計靜態(tài)類SimulateTimerTask 實現(xiàn)多個不同機場目標(biāo)不同時段的定時運動任務(wù).該封裝類主要包括以下函數(shù)屬性如表5.
表5 SimulateTimerTask 類關(guān)鍵屬性函數(shù)
為了在添加和移除不同機場運動目標(biāo)的定時作業(yè)任務(wù)時保證線程的安全問題,在類內(nèi)部通過字典管理所有的SimulateTimer,同一個Model 的定時任務(wù)在添加時只會增加SimulateTimer 的調(diào)用次數(shù),而不會再次實例化新的計時器封裝對象,在添加和移除定時任務(wù)函數(shù)中使用鎖機制保證線程安全,添加機場運動目標(biāo)定時任務(wù)部分偽代碼如下:
readonly object dicLock;Dictionary<Modelname,SimulateTimer> timerDic;AddModelTask(ModelName){lock (dicLock){if (timerDic != null)isCreateTimer = true;if (timerDic.ContainsKey(ModelName)){SimulateTimer tarTimer = timerDic[ModelName];tarTimer.callCount++;isCreateTimer = false;}if (isCreateTimer){timerDic.Remove(ModelName);newTimer = new SimulateTimer(ModelName);newTimer.timerCallBack += Timercallback;newTimer.callCount = 1;timerDic.Add(newTimer);newTimer.RunTimer();}}
對程序改進(jìn)后的某罐式加油車的仿真實時坐標(biāo)更新情況如所示,圖11 與圖10 改進(jìn)前的結(jié)果比較,對仿真過程的并發(fā)改進(jìn)設(shè)計有效解決了多線程重入導(dǎo)致的線程安全問題,提升了仿真程序性能和線程執(zhí)行任務(wù)的準(zhǔn)確性.
圖11 改進(jìn)后目標(biāo)位置更新時間表
對仿真過程進(jìn)行總體實現(xiàn),某機場在特定時間段保障車輛行駛過程、飛機滑行過程、人員軌跡繪制等實時二維仿真效果如圖12、圖13 所示,界面下方時間軸記錄當(dāng)前具體時間變化,動畫仿真窗口展示對應(yīng)時刻的機場地面目標(biāo)實時運動狀態(tài).
圖12 機場運動目標(biāo)實時運動仿真過程展示
圖13 機場運動目標(biāo)實時運動仿真過程展示
本文利用復(fù)演法對建立的仿真系統(tǒng)模型進(jìn)行終態(tài)仿真試驗,機場運動目標(biāo)每次仿真運行都是相互獨立的,采用相同的初始條件和相同的目標(biāo)運動參數(shù)對系統(tǒng)模型進(jìn)行N次仿真,設(shè)每次仿真運行結(jié)果Xi是服從正態(tài)分布的隨機變量,隨機變量X的期望E(X)為:
其中,
制定試驗方案,以天津濱海國際機場某時段地面保障過程運動仿真為例,設(shè)定多次試驗以相同速度、時間間隔和相同路徑距離進(jìn)行仿真模擬.明確仿真初始狀態(tài)后定義多個定時任務(wù),對上述運動過程重復(fù)運行程序監(jiān)測采樣50-80 次,為避免每次試驗仿真運行速度對結(jié)果產(chǎn)生影響,將所有試驗方案的仿真運行速度統(tǒng)一設(shè)置為100 ms/步長; 記錄不同地圖級別和不同仿真步長對應(yīng)的橫縱坐標(biāo)變化像素值、運行時間、仿真軌跡坐標(biāo)等數(shù)據(jù),結(jié)合式(13)和式(14),對仿真誤差百分比和仿真效率進(jìn)行分析計算,根據(jù)試驗采樣數(shù)據(jù)計算結(jié)果生成統(tǒng)計分析圖,如圖14、圖15 所示,圖中第1-8、9-17、18-24 組數(shù)據(jù)分別從左到右對應(yīng)機場瓦片地圖的層級數(shù)為16、17、18 級,仿真結(jié)果詳細(xì)分析如下.
使用本文研究的仿真模型系統(tǒng)進(jìn)行上述試驗,如圖14 為多次試驗采樣中16-18 級瓦片拼接地圖不同仿真步長情況下的誤差距離與上述仿真實驗路徑總距離的比值,結(jié)果顯示在1-14 s 步長范圍內(nèi)誤差值控制在0.50%以下,隨著地圖級別增加,仿真誤差逐步減小; 圖15 是不同地圖層級在不同仿真步長范圍的仿真繪圖程序運行時間數(shù)值變化情況,隨著仿真步長增大,運行時間相對減少,程序運行效率隨之提高; 結(jié)合仿真動畫中目標(biāo)運動軌跡連續(xù)性及誤差比值、程序運行時間等多個因素,從實驗結(jié)果和數(shù)據(jù)分析圖中可總結(jié)出: 將仿真步長設(shè)定在4-10 s 范圍內(nèi)不僅能夠取得良好的動畫效果且能將誤差控制在較小范圍內(nèi),在地圖層級數(shù)較低情況下可適當(dāng)降低仿真步長,層級較高情況下可適當(dāng)增加仿真步長來改善仿真效果和程序運行效率.
圖14 多個定時任務(wù)下不同仿真步長誤差占比趨勢
圖15 多個定時任務(wù)下不同步長仿真過程運行時間
本文對機場運動目標(biāo)運動仿真過程進(jìn)行數(shù)學(xué)建模,利用改進(jìn)的A*算法確定機場運動目標(biāo)行駛路徑,結(jié)合并發(fā)機制對仿真過程進(jìn)行改進(jìn),針對具體的仿真試驗對仿真結(jié)果進(jìn)行統(tǒng)計分析,最終實現(xiàn)了一種機場地面目標(biāo)實時運動仿真過程模型,具有形象、安全、經(jīng)濟、實效等特點.該仿真模型現(xiàn)可應(yīng)用于機場地面保障流程推演,應(yīng)急方案驗證、運輸決策等多個領(lǐng)域,充分體現(xiàn)了四型機場的“平安、綠色,智慧、人文”核心思想.