?

民航機場運動目標實時運動仿真①

2022-11-07 09:07宋云雪
計算機系統應用 2022年10期
關鍵詞:步長瓦片坐標系

宋云雪,張 穎

(中國民航大學 航空工程學院,天津 300300)

1 引言

現階段國內外學者對機場地面保障研究大多集中在機場地面保障流程優化[1-3],機場保障能力驗證評估[4,5],機場運輸決策[6,7]等方面,針對上述文獻進行總結分析,由于機場環境的特殊性、機場信息的離散性和復雜性,現有部分保障流程優化研究難以對方案和研究方法進行實地應用驗證; 而對機場保障能力評估時多數學者缺乏真實詳細的機場方案實施數據,結果具有一定的主觀性; 在機場運輸決策等領域需要大量機場實時監測信息,信息的匱乏和機場試驗的局限性會導致研究方法和方案的可行性難以判別.對于機場運動仿真研究,Alomar 等人基于FlexSim 構建機場地面車輛移動仿真模型來優化其在運動過程中的運輸流程[8],潘衛軍等人基于Unity 對機場應急演練過程進行了仿真評價[9]; 分析國內外現有機場仿真研究多數借助了需要付費的第三方平臺仿真引擎軟件,建立的仿真模型使用受平臺限制難以遷移,開發的程序缺乏復用性,軟件學習和使用復雜度較高.本文為解決上述問題,獨立設計并開發了一種機場運動目標仿真模型,借助計算機仿真技術對機場地面保障過程進行仿真,構建的模擬環境為機場保障中設施分配、路線規劃等流程優化提供驗證環境; 對機場旅客、行人、保障車輛和航空器運輸工具等目標進行運動仿真,能復現機場各部門組織工作狀態和機場保障設備的作業情況,產生的數據可為機場保障預案和保障能力評估驗證提供依據; 仿真模型的真實地理環境數據和機場目標實時位置數據可為機場應急處理、運輸決策等提供判斷依據;同時機場保障過程仿真也是基于民航安全無誤原則下對人員進行培訓的有效方法,可以為民航從業人員提供指導思路.此外,本研究設計實現的仿真模型可獨立運行,也可嵌入機場保障相關的復雜系統,應用于民航機場研究相關的多個領域,具有廣泛的適用性,對提高機場航班過站保障能力具有重要意義.

2 底層數據模型構建與實現

2.1 數據存儲關聯模型構建

實現底層數據的存儲和關聯是構建機場地面目標仿真模型的基礎.機場地面保障全過程基于機場復雜的內部環境,而GIS 圖層的要素、表面和模型能夠構建模擬不同機場的環境地形.Xu 等人基于C#程序和ArcObjects 提出了一種數字地圖瓦片編碼和計算方法,生成的瓦片地圖可供在線和離線應用程序使用[10].本文在文獻[10]研究基礎之上,借助GIS 開發平臺生成機場瓦片地圖為仿真提供環境數據.

由于涉及的機場瓦片數據體量和數量巨大,離線環境下如何對其進行合理存儲和有效管理是面臨的一大挑戰.近年來Zhang 等人提出了一種基于Hadoop 的分布式文件系統柵格瓦片存儲策略[11],Lv等人提出了一種基于嵌入式數據庫的海量地圖瓦片存儲技術[12].基于上述研究,結合分布式文件系統和數據庫存儲特點,本文采用分布式文件系統和關系數據庫相結合的方式來管理機場瓦片地圖數據: 構建共享目錄樹將不同機場瓦片地圖和拼接圖存儲在多個服務器,用戶訪問單個路徑結點就能讀取到所需機場衛星瓦片地圖資源; 使用關系數據庫存儲城市基礎信息、機場點數據層和道路設施分布層等標注信息,機場運動目標仿真底層關聯數據模型如圖1 所示.

圖1 仿真底層數據關聯模型

圖1 中點數據層的機場受控點和分布點標注功能基于.Net 的GDI+實現,底層數據關聯圖中點數據層的坐標系使用GDI+的頁面坐標系,該坐標系原點位于仿真繪圖窗口左上角.如圖2 為南寧吳圩國際機場的道路及設施分布層頁面,在該層標注了機場的關鍵設施以及機場運動目標行駛部分路線網絡.

圖2 南寧吳圩國際機場設施道路分布層

2.2 地圖層級關系

機場目標運動仿真過程要得到真實的地理數據測算結果,需要實際環境和仿真環境比例關系,即表示地圖上一個像素坐標點所代表地球上實際距離長度的地面分辨率參數.結合圖1 中數據關聯模型,根據選定的機場瓦片地圖層級計算地圖分辨率,圖1 中機場衛星地圖各層每個切片統一為256×256像素,level0對應單個瓦片,level1對應4 個瓦片,以此類推,得到levelZ的機場地圖瓦片個數CountlevelZ為:

機場瓦片地圖采取Web 墨卡托投影坐標系,設赤道半徑為Re,其坐標系范圍X方向最大值為Maxx,拼接地圖對應的瓦片地圖層級為levelZ,瓦片數量為CountlevelZ,各級瓦片拼接圖總像素寬度為WidthlevelZ,levelZ級機場衛星地圖的地面分辨率為GRlevelZ,單個瓦片的像素寬度為Width,由式(2)和式(3)得到式(4)地面分辨率GRlevelZ,公式如下:

為了保證仿真效果的清晰度和良好的用戶體驗,仿真模型中的底層機場瓦片數據默認為16-18 級的瓦片地圖拼接圖,各級機場拼接地圖對應的切片個數CountlevelZ和地面分辨率GRlevelZ計算結果如表1 所示.

表1 機場地圖層級關系對應表

研究以天津濱海國際機場的18 級瓦片拼接圖為例,在機場點數據層標注編號TJ01 的跑道坐標4 點分別為(1842,1318)、(1930,1275)、(3902,5619)、(3993,5577),該跑道內移坐標點為(2095,1850)、(2185,1807)結合地圖層級關系對應表,可計算出天津濱海國際機場西跑道可用著陸距離(LDA)約為2 500 m,可用起飛距離(TODA)約為2 850 m 等數據,為后續機場地面保障仿真過程計算奠定基礎.

3 運動數學模型構建與實現

3.1 坐標復合全局轉換

機場地面目標在繪圖平面上的交互基礎是對模型所在坐標系和仿真展示頁面坐標系進行坐標轉換.針對坐標系平移,通過仿射變換增加矩陣維數,將二維矩陣表示形式轉換為三維矩陣,使用三維矩陣左乘的方式實現運動目標所在坐標系和仿真繪圖平面坐標系的平移、旋轉和縮放.以圖3 飛機為例,把目標運動坐標系中飛機模型放置在繪圖界面坐標系中.

圖3 運動目標坐標系與繪圖坐標系轉換

首先針對機場繪圖界面坐標系XOY在 X軸方向上平滑移動m個單位,Y軸方向平移n個單位,設平移變換的系數矩陣為M1; 再對XOY繪圖界面坐標系Y 軸反向縮放,縮放變換的系數矩陣為M2將經上述矩陣變換后的繪圖界面坐標系旋轉順時針旋轉θ度,旋轉系數矩陣M3; 最后通過計算繪圖界面坐標系與運動目標坐標系的像素比例關系為1:f進行縮放,系數矩陣為M4,那么圖3 的轉換過程可以表示為:

結合矩陣復合轉換方式,將M1M2M3M4四個矩陣相乘表示為單個矩陣M,通過計算M可表示為:

結合矩陣式(5)、式(6)運算,在已知運動目標坐標系中運動模型某點坐標情況下可計算出該點在繪圖界面坐標系中的坐標.結合GDI+坐標全局轉換設計程序實現運動目標在仿真界面坐標系中的繪圖操作,如圖4為飛機在機場某時刻降落滑行的運動狀態.

圖4 仿真界面飛機運動目標滑行過程

3.2 運動目標最短路徑

機場運動目標在機場路網運動行駛前需要確定移動路徑,本文對A*算法加以改進,利用改進的A*算法來確定機場運動目標的最佳行駛路徑.A*算法是一種啟發式搜索算法,它的計算效率相比與Dijkstra 算法更快,利用其估價函數對節點加以擴展能夠找到最合適的目標節點; 利用A*算法求解最佳路線過程中,雖然搜索節點明顯少于Dijkstra 算法,但其在大規模路網條件下搜索節點數量依舊會影響計算性能.本文對機場分區處理,將各區域路徑坐標點進行區域編號; 通過分區預處理操作對各區域運動目標行駛路線范圍加以限制達到A*算法在預處理環節減少搜索節點的目的.其中機場路網的點坐標信息存儲結構如表2 所示.

表2 機場路網點坐標信息

A*算法的節點a估價函數如式(7):

其中,g(a)是從機場運動目標的設定運動起點到點a的實際成本,h(a)是節點a到目標節點的最優路徑估計成本,啟發式函數h(a)的設計是A*算法的關鍵.分析機場路網特點,排除同一種類的機場目標同一時間段超速現象,機場的機場運動目標行駛路線網絡滿足時變網絡的先入先出條件(FIFO),也就是同一時段同種類機場運動目標先出發的比后出發的先到達.設機場運動目標給定出發時刻為Tstart,起點Vstart,終點為Vend,所有點坐標集合為Vlist,坐標連接的路段集合為Alist,現有未找到的運動目標最佳路徑剩余節點集合為NFlist,節點a的編號為Na,它的前驅節點為FNa,Tab(t)是機場運動目標t(t∈T)時刻在ab路段的出發時間,T是機場運動目標完成運動過程的總時間分段集合.對于任意(a,b)∈Alist,(t)=minTab(t),用(t)構造靜態網絡G,tmin(a,b)表示機場運動目標在G中從a點到b點的最短路徑的行程時間.對啟發式函數h(a)定義如下:

根究式(7)、式(8)設計改進的A*算法計算流程如下:

(1)利用數據庫分組篩選出與當前機場目標所在點區域編號相鄰的點坐標集合Plist;

(2)采用Dijkstra 算法計算集合Plist中點坐標到目標節點的h(a);

(3)初始化變量Va,Ta且對于變量?b≠a,Tb=+∞,FNa=0,Slist={Va},NFlist=Φ.

(4)改變節點編號,對所有a的后繼節點,如果Tb>Ta+Tab(Ta)+h(a),則Tb=Ta+Tab(Ta)+h(a),FNb=FNa若b?NFlist,則NFlist=NFlist∪.

(5)選擇節點,設Vmin=min(b),b∈NFlist,令Va=Vmin,則Flist=Flist∪{a},NFlist=NFlist-.

(6)如果Va=Vend,停止計算,否則回轉到步驟(1).

(7)通過反向追蹤節點a的前驅節點FNa,得到最短路徑.

通過改進的A*算法,可以在仿真過程中提前對機場運動目標運動最佳路線進行規劃,提高機場運動目標作業效率.

3.3 仿真過程數據可視化

GDI+的原始畫圖模式采用了Graphics 接口,該方法畫圖效率緩慢,而且在仿真測試過程中出現了嚴重的閃爍效果.在對圖像處理過程中很多學者采用緩沖技術提高圖像處理效率,如Zhou 等人研究了一種實時固定比例幀緩沖壓縮技術應用于嵌入式圖形系統中[13];王宇飛等人利用雙緩沖技術顯著提高了測井曲線的繪制速度[14]; 為了避免繪圖效率對機場地面運動目標仿真過程的時效性造成不必要的干擾,影響仿真的準確度,本文采用GDI+自帶的雙緩沖類BufferedGraphicsContext實現雙緩沖畫圖模式,較大程度上減少了程序繪圖運行速度對仿真實時性的影響.

基于實時仿真理論,要將運動目標移動狀態與具體時間相關聯,在坐標變換繪圖過程中,模型的移動距離需要隨時間變化而做出調整.利用GDI+技術調整繪圖瞬間對應的坐標點位置,以目標運動過程總時間劃分合適的單位時間步長T,結合單位時間內的速度變化和運動目標朝向角度變化值,計算單位時間步長T時段內X軸和 Y軸方向的位移增量,進而計算確定繪圖坐標點位置.排除了繪圖效率對仿真模型中繪圖過程的客觀影響,并結合模型中機場目標運動路徑的存儲結構和運動規律,對確定繪圖坐標點的實際問題建立計算模型.

圖5 左邊繪圖坐標系中是機場運動目標移動行駛路線網絡,其中擺渡車路線01 是利用改進的A*算法求解確定的擺渡車最佳行駛路線,以該條路線為例,將路線中已知的相鄰坐標兩點分解放大,已知機場運動目標模型對應的行駛移動路徑、運動速度、運動加速度和運動時間等信息,每隔單位步長T,確定繪圖對應坐標Pn的位置計算模型如圖5 所示.

圖5 路線相鄰路徑點分解計算模型

為方便機場運動目標屬性的描述與其相關數據的合理存儲,為機場運動目標建立統一的數據模型Model,如表3 所示.

表3 運動目標模型Model 屬性

令路徑中已知坐標點為P(i),其相鄰坐標點為P(i+1),兩點之間距離為Dis(i,i+1),兩點之間連線與水平方向夾角為 β,單位時間T間隔內 X方向和 Y方向增量分別為 Δx,Δy,N個T時間間隔內的模型位移增量為incrementNT,結合表3 中Model 的相關屬性數據描述,對目標模型勻速和非勻速運動過程繪圖坐標點Pn求解流程梳理如圖6 所示.

圖6 目標模型繪圖坐標點求解流程圖

基于上述計算模型,本文采用面向對象的程序設計方式,設計Model 類封裝其相關屬性,初始化構造函數,移動距離、運動速度、旋轉角度等計算函數,模型旋轉角度計算方法主要功能是以對象綁定的移動路徑已知坐標點為基礎,計算目標在運動目標坐標系到繪圖仿真界面坐標系繪圖操作時的旋轉角度circle_angle(i,i+1),結合GDI+繪圖仿真坐標系特點,該角度值主要包括以下4 種情況:

(1)當yP(i+1)>yP(i)時:

(2)當yP(i+1)<yP(i)時:

(3)當yP(i+1)=yP(i)且xP(i+1)≥xP(i)時:

(4)除上述情況外,旋轉角度值為:

綜合式(9)-式(12)可在已知模型路徑點坐標條件下正確控制仿真過程中機場運動目標的運動朝向角度.根據 X軸和 Y軸方向上的位移增量,在確定單位步長時間段內對應的繪圖坐標點Pn時也包括了多種情況,如表4 所示.

表4 不同條件下 Pn坐 標值

結合坐標計算流程圖對相關數學理論模型,編寫程序接口將機場地面目標實時運動仿真過程產生的數據可視化,以天津濱海國際機場某航班地面保障擺渡車行駛運動過程為例,該運動目標仿真過程的實時坐標位置、運動速度、朝向角度等數據展示如圖7 所示.其中詳細的軌跡坐標和對應位置的時刻信息可以為運動目標行駛路線碰撞檢測評估提供數據支撐,運動目標的速度位移變化可以用來評判目標從出發地到目的地的運動可行性.

圖7 Model 運動仿真過程數據可視化

4 仿真過程的并發改進設計

4.1 傳統定時器管理多線程任務

機場運動目標實時運動二維仿真過程實際上是結合具體時間不斷實現圖像繪制和數據計算的同步過程.機場地面運動目標運動過程仿真涉及到的地面保障車輛、旅客、保障人員、各類航空器的運動過程對應多個時間階段,而每個時間階段也可能包括多個目標同時運動的過程,如圖8 截取的某機場部分地面保障環節涉及到多個機場運動目標進行作業,根據機場地面目標運動特點,設計并發程序將仿真各個階段任務合理分工交給多個線程完成.

圖8 機場保障部分作業流程

本文采用多線程技術,利用計時器來控制和管理不同時間階段對應的多線程任務,System.Timers.Timer 是.Net 基于服務器的多線程計時器,可以按照設定的時間間隔執行事件處理程序,非常適合機場保障過程中不同目標按照固定時間間隔執行任務的情景,直接使用該計時器管理仿真計算過程流程如圖9所示.

圖9 多線程仿真繪圖流程

在計時器管理多線程任務過程中,如果一個計時器對象綁定的Elapsed 事件函數沒有處理完成,到達下一個時間點新的線程依舊會按時啟動執行Model 信息更新的回調事件,當遇到回調事件計算耗時而方法未在設置的interval 間隔內執行完畢的情況下,很容易出現超時導致的多線程重入問題,也就是多個線程進入了計時器對象綁定的Elapsed 事件,導致線程不安全.圖10 是按照上述流程某罐式加油車的仿真實時坐標更新情況,設置事件引發間隔為100 ms,到達間隔引發事件: 時間軸增長步長T秒,Model 信息計算更新; Timer不管回調事件是否執行完畢,它只負責每隔100 ms 觸發一次,由于系統處理效率存在不穩定性,出現了部分線程未在規定時間范圍內完成數據計算情況,由此引發多線程重入問題導致坐標重復更新.

圖10 改進前目標位置更新時間表

4.2 仿真過程并發改進

本文對上述仿真繪圖流程加以改進,讓定時器定時引發的回調事件能夠阻塞執行,并且能夠動態的添加和移除多個不同機場目標定時運動任務.

基于鎖的同步機制是多線程并行應用中同步操作的主要實現機制[15].可重入鎖可解決多線程重入導致的線程不安全問題,但是考慮到本文頻繁調用回調事件,簡單的對回調函數部分進行加鎖操作會嚴重影響仿真性能,本文對于單個機場運動目標仿真過程,結合回調次數來阻塞定時器達到線程安全的目的.首先對計時器進行類封裝,在封裝類中對計時器調用時先將計時器阻塞,設置函數回調次數為單次保證回調函數線程安全,回調事件執行完畢后再對計時器重啟.通過上述操作能夠定時阻塞調用回調方法并且很大程度上提高了仿真性能,并保證了單個運動目標的線程安全性.

考慮到機場地面保障作業任務的多目標多時段等特點,要實現多個機場運動目標的多個定時任務仿真過程正常運行,設計靜態類SimulateTimerTask 實現多個不同機場目標不同時段的定時運動任務.該封裝類主要包括以下函數屬性如表5.

表5 SimulateTimerTask 類關鍵屬性函數

為了在添加和移除不同機場運動目標的定時作業任務時保證線程的安全問題,在類內部通過字典管理所有的SimulateTimer,同一個Model 的定時任務在添加時只會增加SimulateTimer 的調用次數,而不會再次實例化新的計時器封裝對象,在添加和移除定時任務函數中使用鎖機制保證線程安全,添加機場運動目標定時任務部分偽代碼如下:

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();}}

對程序改進后的某罐式加油車的仿真實時坐標更新情況如所示,圖11 與圖10 改進前的結果比較,對仿真過程的并發改進設計有效解決了多線程重入導致的線程安全問題,提升了仿真程序性能和線程執行任務的準確性.

圖11 改進后目標位置更新時間表

對仿真過程進行總體實現,某機場在特定時間段保障車輛行駛過程、飛機滑行過程、人員軌跡繪制等實時二維仿真效果如圖12、圖13 所示,界面下方時間軸記錄當前具體時間變化,動畫仿真窗口展示對應時刻的機場地面目標實時運動狀態.

圖12 機場運動目標實時運動仿真過程展示

圖13 機場運動目標實時運動仿真過程展示

5 仿真試驗結果分析

本文利用復演法對建立的仿真系統模型進行終態仿真試驗,機場運動目標每次仿真運行都是相互獨立的,采用相同的初始條件和相同的目標運動參數對系統模型進行N次仿真,設每次仿真運行結果Xi是服從正態分布的隨機變量,隨機變量X的期望E(X)為:

其中,

制定試驗方案,以天津濱海國際機場某時段地面保障過程運動仿真為例,設定多次試驗以相同速度、時間間隔和相同路徑距離進行仿真模擬.明確仿真初始狀態后定義多個定時任務,對上述運動過程重復運行程序監測采樣50-80 次,為避免每次試驗仿真運行速度對結果產生影響,將所有試驗方案的仿真運行速度統一設置為100 ms/步長; 記錄不同地圖級別和不同仿真步長對應的橫縱坐標變化像素值、運行時間、仿真軌跡坐標等數據,結合式(13)和式(14),對仿真誤差百分比和仿真效率進行分析計算,根據試驗采樣數據計算結果生成統計分析圖,如圖14、圖15 所示,圖中第1-8、9-17、18-24 組數據分別從左到右對應機場瓦片地圖的層級數為16、17、18 級,仿真結果詳細分析如下.

使用本文研究的仿真模型系統進行上述試驗,如圖14 為多次試驗采樣中16-18 級瓦片拼接地圖不同仿真步長情況下的誤差距離與上述仿真實驗路徑總距離的比值,結果顯示在1-14 s 步長范圍內誤差值控制在0.50%以下,隨著地圖級別增加,仿真誤差逐步減小; 圖15 是不同地圖層級在不同仿真步長范圍的仿真繪圖程序運行時間數值變化情況,隨著仿真步長增大,運行時間相對減少,程序運行效率隨之提高; 結合仿真動畫中目標運動軌跡連續性及誤差比值、程序運行時間等多個因素,從實驗結果和數據分析圖中可總結出: 將仿真步長設定在4-10 s 范圍內不僅能夠取得良好的動畫效果且能將誤差控制在較小范圍內,在地圖層級數較低情況下可適當降低仿真步長,層級較高情況下可適當增加仿真步長來改善仿真效果和程序運行效率.

圖14 多個定時任務下不同仿真步長誤差占比趨勢

圖15 多個定時任務下不同步長仿真過程運行時間

6 總結

本文對機場運動目標運動仿真過程進行數學建模,利用改進的A*算法確定機場運動目標行駛路徑,結合并發機制對仿真過程進行改進,針對具體的仿真試驗對仿真結果進行統計分析,最終實現了一種機場地面目標實時運動仿真過程模型,具有形象、安全、經濟、實效等特點.該仿真模型現可應用于機場地面保障流程推演,應急方案驗證、運輸決策等多個領域,充分體現了四型機場的“平安、綠色,智慧、人文”核心思想.

猜你喜歡
步長瓦片坐標系
打水漂
極坐標系中的奇妙曲線
董事長發開脫聲明,無助消除步長困境
步長制藥50億元商譽肥了誰?
步長制藥50億元商譽肥了誰?
起底步長制藥
鄉村瓦語
慣性
三角函數的坐標系模型
求坐標系內三角形的面積
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合