張兵強(qiáng) 方 偉 王 萌
(海軍航空大學(xué)信息融合研究所 山東 煙臺(tái) 264001)
隨著通用和軍用航空技術(shù)、計(jì)算機(jī)圖形/圖像技術(shù)、VR/AR/MR仿真技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,基于分布式仿真的飛行模擬訓(xùn)練在軍用、民用等領(lǐng)域獲得越來(lái)越廣泛的應(yīng)用。早期的飛行模擬器主要是提供單機(jī)模擬訓(xùn)練,為人體感受提供全面和逼真的仿真環(huán)境,從而使飛行員獲得培訓(xùn)和親身體驗(yàn)。隨著技術(shù)的發(fā)展和應(yīng)用需求的改變,人們需要將不同地域的多臺(tái)單機(jī)飛行模擬器互聯(lián),多臺(tái)飛行模擬器分別扮演紅藍(lán)方,形成跨地域的多臺(tái)飛行模擬器的組網(wǎng)訓(xùn)練,完成諸如編隊(duì)飛行、空中對(duì)抗、協(xié)同作戰(zhàn)等更加復(fù)雜的訓(xùn)練課目[1-6]。這就要求飛行模擬器由單機(jī)性能仿真發(fā)展到多臺(tái)模擬器在作戰(zhàn)環(huán)境下的聯(lián)網(wǎng)對(duì)抗仿真,對(duì)飛行模擬器提出了新的技術(shù)要求。
目前,大部分的飛行模擬器采用基于分布式交互仿真(Distributed Interactive Simulation,DIS)技術(shù)或者高層體系結(jié)構(gòu)(High Level Architecture,HLA)協(xié)議來(lái)開(kāi)發(fā)的分布式仿真系統(tǒng)[1],仿真時(shí)鐘的同步性將對(duì)分布式仿真系統(tǒng)產(chǎn)生時(shí)序顛倒、抖動(dòng)等多方面的問(wèn)題。如飛行模擬器的編隊(duì)飛行、加油飛行、大機(jī)動(dòng)飛行等訓(xùn)練課目,非同步仿真的時(shí)鐘,人為感受最強(qiáng)烈的影響就是視景系統(tǒng)出現(xiàn)不同程度的抖動(dòng)或撕裂。因此,需要通過(guò)多種機(jī)制解決飛行模擬器組網(wǎng)訓(xùn)練中的同步仿真問(wèn)題[6-7]。
文獻(xiàn)[2]和文獻(xiàn)[3]主要討論了飛行模擬器聯(lián)網(wǎng)仿真中同步問(wèn)題對(duì)于視景圖像抖動(dòng)的影響,采用對(duì)幀加入時(shí)間戳的方法實(shí)現(xiàn)了軟時(shí)鐘同步,并針對(duì)視景解算幀步長(zhǎng)和飛行模擬器解算幀步長(zhǎng)不一致的情況,采用了加權(quán)滑動(dòng)平均或直線(xiàn)擬合的平滑方法來(lái)解決相鄰實(shí)體的視點(diǎn)坐標(biāo)轉(zhuǎn)換。該方法主要考慮的是單機(jī)模擬器內(nèi)部的仿真數(shù)據(jù)同步處理問(wèn)題,組網(wǎng)訓(xùn)練時(shí)需要對(duì)已有的模擬器進(jìn)行較大的軟件升級(jí)改造。文獻(xiàn)[4]和文獻(xiàn)[6]則直接采用了HLA協(xié)議中的“時(shí)間管理”機(jī)制來(lái)控制飛行仿真系統(tǒng)的同步狀態(tài),主要采用了保守同步和樂(lè)觀(guān)同步兩種同步機(jī)制,并不能夠確保嚴(yán)格的時(shí)鐘同步和仿真步長(zhǎng)的一致性,其中文獻(xiàn)[6]通過(guò)基于HLA的網(wǎng)絡(luò)將導(dǎo)調(diào)控制等分系統(tǒng)和經(jīng)過(guò)聯(lián)網(wǎng)改造的飛行模擬器進(jìn)行聯(lián)網(wǎng)整合,構(gòu)建了飛行模擬器聯(lián)網(wǎng)訓(xùn)練系統(tǒng),僅在本地實(shí)現(xiàn)了多機(jī)聯(lián)合訓(xùn)練功能。文獻(xiàn)[8]則基于時(shí)鐘同步卡實(shí)現(xiàn)了單個(gè)直升機(jī)模擬器中多個(gè)分系統(tǒng)之間的同步,選取其中一個(gè)作為時(shí)鐘源,其他分系統(tǒng)作為同步方,無(wú)法適用于異地模擬器之間的同步。文獻(xiàn)[9]提出將飛行模擬器中各仿真節(jié)點(diǎn)的數(shù)據(jù)分發(fā)和仿真解算剝離開(kāi)來(lái),單獨(dú)設(shè)立流程控制和數(shù)據(jù)分發(fā)節(jié)點(diǎn)計(jì)算機(jī),文獻(xiàn)[9]和文獻(xiàn)[10]均采用基于反射內(nèi)存網(wǎng)絡(luò)的同步機(jī)制,來(lái)解決大規(guī)模組網(wǎng)演練中的模擬器實(shí)時(shí)和同步要求。該方案可以支撐大規(guī)模的本地組網(wǎng)訓(xùn)練,但對(duì)于跨地域的組網(wǎng)訓(xùn)練則面臨構(gòu)建復(fù)雜、成本昂貴、實(shí)現(xiàn)困難、系統(tǒng)擴(kuò)展性差的缺點(diǎn)[6]。
傳統(tǒng)的飛行模擬器常采用軟同步算法,同步的工作量大且同步偏差容易積累。本文針對(duì)飛行模擬器跨地域聯(lián)網(wǎng)訓(xùn)練中的同步仿真問(wèn)題,重點(diǎn)研究了多飛行模擬器同步仿真的構(gòu)建方案,采用基于全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)的硬件同步和軟件平滑預(yù)測(cè)處理的混合同步機(jī)制。以GPS或北斗導(dǎo)航衛(wèi)星的精確授時(shí)同步脈沖作為跨地域同步仿真的觸發(fā)信號(hào),并以同步信號(hào)的恒定正負(fù)頻寬來(lái)確保仿真步長(zhǎng)的一致性,同時(shí)以導(dǎo)航衛(wèi)星的授時(shí)數(shù)據(jù)為跨地域的模擬器提供時(shí)統(tǒng)服務(wù);并通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)的網(wǎng)絡(luò)數(shù)據(jù)處理軟件對(duì)接收的數(shù)據(jù)依據(jù)仿真步長(zhǎng)進(jìn)行平滑處理和預(yù)測(cè),克服網(wǎng)絡(luò)數(shù)據(jù)傳遞時(shí)延的影響,從而構(gòu)建了適用于跨地域模擬飛行的有序正確的同步機(jī)制。
飛行模擬器的跨地域組網(wǎng)訓(xùn)練是將多臺(tái)異地的飛行模擬器聯(lián)網(wǎng)構(gòu)成一個(gè)虛擬的戰(zhàn)場(chǎng)環(huán)境,使參訓(xùn)人員在虛擬的戰(zhàn)場(chǎng)環(huán)境中進(jìn)行多機(jī)種聯(lián)合對(duì)抗訓(xùn)練。實(shí)現(xiàn)多臺(tái)模擬器的聯(lián)網(wǎng),不僅要求模擬器內(nèi)部的實(shí)時(shí)性,同時(shí)要求模擬器之間的實(shí)時(shí)性。多模擬器聯(lián)網(wǎng)中的實(shí)時(shí)仿真時(shí)間包括幀計(jì)算時(shí)間和幀發(fā)送時(shí)間[10]。
考慮到網(wǎng)絡(luò)數(shù)據(jù)傳遞的延遲,還應(yīng)包括幀接收時(shí)間。幀計(jì)算時(shí)間即為仿真周期或稱(chēng)為仿真時(shí)間步長(zhǎng);幀發(fā)送時(shí)間即為發(fā)送幀數(shù)據(jù)的時(shí)刻;幀接收時(shí)間則為幀數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸后被仿真節(jié)點(diǎn)接收到的時(shí)刻。
為了保證異地聯(lián)網(wǎng)飛行仿真的實(shí)時(shí)性,應(yīng)解決兩個(gè)技術(shù)問(wèn)題:仿真時(shí)間同步控制和網(wǎng)絡(luò)數(shù)據(jù)傳輸延遲補(bǔ)償[11]。根據(jù)異地同步仿真需求,本文采用硬件同步觸發(fā)和軟件平滑預(yù)測(cè)處理的混合同步仿真機(jī)制,基本思路如下:
(1) 在聯(lián)網(wǎng)的單機(jī)飛行模擬器中增設(shè)基于GNSS的硬件時(shí)鐘同步裝置,提供精確的同步脈沖信號(hào)作為仿真計(jì)算的觸發(fā)信號(hào),其上升沿對(duì)應(yīng)幀接收時(shí)間,其恒定正負(fù)頻寬對(duì)應(yīng)幀計(jì)算時(shí)間,以保證異地精確的仿真時(shí)間同步控制。對(duì)于反射內(nèi)存網(wǎng)構(gòu)建的本地飛行模擬器,硬件同步脈沖通過(guò)反射內(nèi)存網(wǎng)迅速地通知模擬器的飛行仿真等子系統(tǒng);對(duì)于以太網(wǎng)構(gòu)建的本地飛行模擬器,硬件同步脈沖則通過(guò)串口或者PCI卡以事件中斷處理的方式直接通知模擬器的飛行仿真等子系統(tǒng)。飛行仿真子系統(tǒng)收到同步信號(hào)后首先接收數(shù)據(jù),然后開(kāi)始仿真計(jì)算,并向外發(fā)布解算后的結(jié)果?;贕NSS的硬件時(shí)鐘同步裝置除了完成上述的時(shí)序同步外,還同時(shí)提供時(shí)間同步,即對(duì)時(shí)服務(wù)。以周期性廣播的方式為局域網(wǎng)內(nèi)的計(jì)算機(jī)提供基于衛(wèi)星時(shí)間的網(wǎng)絡(luò)授時(shí)和時(shí)間脈沖觸發(fā)下的串口精確授時(shí)服務(wù),并提供支持NTP標(biāo)準(zhǔn)的網(wǎng)絡(luò)授時(shí)服務(wù)。串口精確授時(shí)服務(wù)可用于異地聯(lián)網(wǎng)訓(xùn)練的同時(shí)刻啟動(dòng)。
(2) 在聯(lián)網(wǎng)的單機(jī)飛行模擬器中增設(shè)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)計(jì)算機(jī),負(fù)責(zé)聯(lián)網(wǎng)數(shù)據(jù)的發(fā)送和接收處理,完成網(wǎng)絡(luò)數(shù)據(jù)的格式轉(zhuǎn)換、平滑和預(yù)測(cè)處理等,實(shí)現(xiàn)數(shù)據(jù)傳輸延遲補(bǔ)償,以克服廣域網(wǎng)數(shù)據(jù)傳遞時(shí)延的不確定性對(duì)飛行實(shí)時(shí)仿真的影響。發(fā)送的每幀聯(lián)網(wǎng)數(shù)據(jù)均加入時(shí)間戳,進(jìn)行數(shù)據(jù)幀的標(biāo)識(shí)。接收方收到聯(lián)網(wǎng)數(shù)據(jù)時(shí)檢查幀標(biāo)識(shí)和幀計(jì)數(shù),根據(jù)幀計(jì)數(shù)來(lái)決定當(dāng)前數(shù)據(jù)是否錯(cuò)幀,以決定是否對(duì)數(shù)據(jù)進(jìn)行平滑和預(yù)測(cè)處理。同時(shí),對(duì)異地聯(lián)網(wǎng)的數(shù)據(jù)更新策略進(jìn)行優(yōu)化,分為高頻度更新數(shù)據(jù)和低頻度更新數(shù)據(jù)[7]。對(duì)數(shù)據(jù)變量在發(fā)送前與前次數(shù)據(jù)內(nèi)容進(jìn)行對(duì)比,若數(shù)據(jù)未發(fā)生變化或在容忍誤差范圍內(nèi),則不進(jìn)行傳輸,僅通過(guò)接收方的DRM(Dead Reckoning Model)進(jìn)行預(yù)測(cè),以降低對(duì)廣域網(wǎng)絡(luò)帶寬的需求。
飛行模擬器本身是一個(gè)復(fù)雜的系統(tǒng),單臺(tái)飛行模擬器大部分采用多節(jié)點(diǎn)、多網(wǎng)段、集中控制的網(wǎng)絡(luò)結(jié)構(gòu),所有節(jié)點(diǎn)都連在以太網(wǎng)上,或者部分節(jié)點(diǎn)連接在反射內(nèi)存網(wǎng)上,構(gòu)成了一個(gè)集現(xiàn)場(chǎng)總線(xiàn)、以太網(wǎng)和反射內(nèi)存網(wǎng)于一體的混合型網(wǎng)絡(luò)系統(tǒng),即采用分布式仿真的方法,通過(guò)混合型網(wǎng)絡(luò)進(jìn)行各個(gè)仿真解算節(jié)點(diǎn)間的通信[3,9-10]。
飛行模擬器中對(duì)各節(jié)點(diǎn)計(jì)算機(jī)的實(shí)時(shí)性要求是不一樣的,具有強(qiáng)實(shí)時(shí)性要求的計(jì)算機(jī)主要包括進(jìn)行狀態(tài)量解算的飛行、武器火控、機(jī)載航電、視景仿真和數(shù)據(jù)采集等計(jì)算機(jī);非強(qiáng)實(shí)時(shí)性要求的計(jì)算機(jī)一般包括與界面顯示和控制管理相關(guān)的計(jì)算機(jī)。因此,同步仿真的關(guān)鍵是實(shí)現(xiàn)具有強(qiáng)實(shí)時(shí)性要求節(jié)點(diǎn)的同步計(jì)算,確保它們的時(shí)序和邏輯的正確性。
飛行模擬器異地聯(lián)網(wǎng)訓(xùn)練中采用的同步仿真系統(tǒng)結(jié)構(gòu)如圖1所示。采用基于GPS或北斗導(dǎo)航衛(wèi)星的硬件時(shí)鐘同步方案,基于反射內(nèi)存網(wǎng)的飛行模擬器中,直接將硬件時(shí)鐘同步裝置的同步信號(hào)接入反射內(nèi)存網(wǎng);而對(duì)于基于以太網(wǎng)的飛行模擬器,則將硬件時(shí)鐘同步裝置的同步信號(hào)直接引入到強(qiáng)實(shí)時(shí)仿真的計(jì)算節(jié)點(diǎn)。通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)實(shí)現(xiàn)廣域網(wǎng)數(shù)據(jù)的發(fā)送和接收處理。
圖1 飛行模擬器異地聯(lián)網(wǎng)訓(xùn)練的同步仿真結(jié)構(gòu)
基于GPS或北斗導(dǎo)航衛(wèi)星的同步仿真原理為:由高精度晶振構(gòu)成的振蕩器經(jīng)過(guò)分頻能產(chǎn)生滿(mǎn)足仿真周期要求的同步信號(hào),它每隔1 s被導(dǎo)航衛(wèi)星的秒脈沖(PPS)信號(hào)同步一次,保證振蕩器輸出的同步信號(hào)的前沿與衛(wèi)星PPS信號(hào)同步,并確保同步信號(hào)正負(fù)頻寬(對(duì)應(yīng)仿真計(jì)算周期)的穩(wěn)定性。同時(shí),導(dǎo)航衛(wèi)星信號(hào)接收機(jī)經(jīng)標(biāo)準(zhǔn)串口輸出的時(shí)間信息可用于給聯(lián)網(wǎng)數(shù)據(jù)以“時(shí)間標(biāo)簽”,以用于廣域網(wǎng)數(shù)據(jù)的發(fā)送和接收處理。
由于導(dǎo)航衛(wèi)星系統(tǒng)具有授時(shí)精度高、信號(hào)覆蓋范圍廣的特點(diǎn),利用導(dǎo)航衛(wèi)星實(shí)現(xiàn)的同步仿真,可保證各地域飛行模擬器的高精度同步仿真計(jì)算,其同步信號(hào)精度可以達(dá)到1 μs甚至更高[12],能夠較好地解決異地飛行模擬器時(shí)鐘同步和高精度授時(shí)問(wèn)題。
對(duì)于異地聯(lián)網(wǎng)訓(xùn)練的飛行仿真系統(tǒng),時(shí)間管理和同步是實(shí)現(xiàn)正確仿真邏輯的關(guān)鍵和難點(diǎn),需要確保異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式仿真的嚴(yán)格同步和實(shí)時(shí)性,就需要對(duì)仿真數(shù)據(jù)的時(shí)序處理進(jìn)行優(yōu)化設(shè)計(jì)。
在飛行模擬器中,飛行仿真節(jié)點(diǎn)的實(shí)時(shí)性要求最高,聯(lián)網(wǎng)訓(xùn)練時(shí)接收數(shù)據(jù)的一致性要求也很高。為此,基于GNSS實(shí)現(xiàn)異地模擬器的仿真主時(shí)鐘的硬同步,并將每個(gè)仿真周期分為接收(R)、處理(C)、發(fā)送(T)等三個(gè)階段,實(shí)現(xiàn)異地模擬器的正確交互時(shí)序和同步推進(jìn)。同步仿真數(shù)據(jù)流的時(shí)序如圖2所示。
圖2 同步仿真數(shù)據(jù)流時(shí)序示意圖
以衛(wèi)星PPS信號(hào)為基準(zhǔn)的同步信號(hào)采用雙邊沿觸發(fā),其占空比為50%,具有相同的正負(fù)頻寬,作為飛行模擬器仿真的周期。在同步信號(hào)的觸發(fā)邊沿,首先接收聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)平滑預(yù)測(cè)處理過(guò)的數(shù)據(jù),然后進(jìn)行仿真解算處理,最后將計(jì)算結(jié)果通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)發(fā)送出去。
穩(wěn)定的同步信號(hào)觸發(fā)邊沿可以確保異地接收數(shù)據(jù)的同步性和仿真周期的恒定性,專(zhuān)設(shè)的聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)是模擬器的唯一聯(lián)網(wǎng)數(shù)據(jù)出入口,可以保證單個(gè)模擬器內(nèi)部接收到數(shù)據(jù)的一致性。因受廣域網(wǎng)數(shù)據(jù)長(zhǎng)距離傳輸?shù)挠绊懀W(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定容易引發(fā)信息延遲和數(shù)據(jù)丟失等現(xiàn)象,但不會(huì)出現(xiàn)數(shù)據(jù)時(shí)序邏輯的混亂。聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)會(huì)將預(yù)測(cè)的數(shù)據(jù)發(fā)布到本地模擬器的內(nèi)部其他仿真節(jié)點(diǎn),以保證實(shí)時(shí)數(shù)據(jù)的連續(xù)性。
異地聯(lián)網(wǎng)訓(xùn)練同步仿真的關(guān)鍵是設(shè)置了基于GNSS同步的硬件時(shí)鐘,可根據(jù)實(shí)時(shí)性約束要求,選擇反射內(nèi)存網(wǎng)或者專(zhuān)門(mén)的同步信號(hào)線(xiàn)來(lái)傳遞統(tǒng)一的外部時(shí)序信號(hào)。該時(shí)序信號(hào)可以直接驅(qū)動(dòng)實(shí)時(shí)仿真系統(tǒng)的通信引擎,通信引擎設(shè)計(jì)時(shí)同時(shí)將硬件和軟件時(shí)鐘同步模型進(jìn)行集成,引擎依據(jù)實(shí)際環(huán)境配置,優(yōu)先選用硬件同步方式,若硬件同步出現(xiàn)故障,則系統(tǒng)自動(dòng)轉(zhuǎn)入軟同步方式處理,以保證系統(tǒng)的同步性[7]。
硬件同步時(shí)鐘的模塊劃分如圖3所示,包括GNSS模塊、微處理器模塊、同步信號(hào)選擇模塊、同步信號(hào)輸出模塊、外同步信號(hào)調(diào)理模塊、級(jí)聯(lián)模塊和電源模塊等。
圖3 基于GNSS的硬件同步時(shí)鐘模塊劃分
GNSS模塊內(nèi)部采用硬件鎖相環(huán)實(shí)現(xiàn)仿真主時(shí)鐘的硬同步,輸出秒脈沖PPS信號(hào)和衛(wèi)星同步信號(hào),并通過(guò)串口輸出授時(shí)數(shù)據(jù);微處理器模塊是整個(gè)硬件時(shí)鐘同步的控制核心,實(shí)現(xiàn)對(duì)衛(wèi)星同步信號(hào)的監(jiān)測(cè),并根據(jù)輸入的同步源信號(hào)產(chǎn)生自同步信號(hào),實(shí)現(xiàn)控制裝置的同步信號(hào)輸出切換控制,根據(jù)接收的網(wǎng)絡(luò)控制數(shù)據(jù)實(shí)現(xiàn)控制裝置輸出的同步信號(hào)頻率設(shè)置、授時(shí)數(shù)據(jù)時(shí)間間隔設(shè)置和GNSS模塊工作狀態(tài)控制等。
外同步信號(hào)調(diào)理模塊則用于本地脈沖觸發(fā)式或邊沿觸發(fā)式同步信號(hào)的接收和調(diào)理。外同步信號(hào)可以是視景系統(tǒng)輸出視頻幀的場(chǎng)信號(hào)或者專(zhuān)業(yè)顯卡配套的同步子卡輸出的同步信號(hào),并可以輸出TTL同步信號(hào)給專(zhuān)業(yè)顯卡的同步子卡,實(shí)現(xiàn)仿真計(jì)算與視頻刷新的同步。此工作模式可以實(shí)現(xiàn)本地飛行模擬器的仿真節(jié)點(diǎn)與視景圖像刷新率的同步計(jì)算。
該硬件時(shí)鐘同步方案可以通過(guò)主控制器和從控制器的級(jí)聯(lián)實(shí)現(xiàn)多個(gè)仿真節(jié)點(diǎn)計(jì)算機(jī)的同步,具有衛(wèi)星同步、從同步、外同步和定時(shí)同步四種同步時(shí)序觸發(fā)信號(hào)的生成方式,并通過(guò)多個(gè)同步口輸出給計(jì)算機(jī)RS-232C串口或者具有RS-485接口的PCI定時(shí)卡,實(shí)時(shí)仿真系統(tǒng)的通信引擎以事件中斷處理的方式來(lái)實(shí)現(xiàn)周期性計(jì)算的同步信號(hào)觸發(fā)。
另外,可以基于衛(wèi)星時(shí)間,通過(guò)網(wǎng)絡(luò)或串口提供授時(shí)間隔可調(diào)的周期性授時(shí)服務(wù),并可作為NTP授時(shí)服務(wù)器,提供滿(mǎn)足NTP標(biāo)準(zhǔn)的授時(shí)服務(wù),實(shí)現(xiàn)異地聯(lián)網(wǎng)訓(xùn)練的時(shí)戳校時(shí)、數(shù)據(jù)記錄對(duì)準(zhǔn)和訓(xùn)練過(guò)程管理。
基于GNSS的硬件時(shí)鐘同步方案為異地聯(lián)網(wǎng)的各仿真節(jié)點(diǎn)計(jì)算機(jī)提供了一種同源、高精度的同步時(shí)序觸發(fā)信號(hào)和接收一致性時(shí)間的方法,同時(shí)支持網(wǎng)絡(luò)授時(shí)和單串口精確授時(shí),并具有基于GNSS的異地組網(wǎng)條件下的時(shí)序觸發(fā)信號(hào)的同步能力。
上述基于硬件時(shí)鐘的同步仿真方案提高了模擬器聯(lián)網(wǎng)的物理時(shí)間同步精度,時(shí)鐘偏移量可低至納秒級(jí),但還面臨著兩個(gè)問(wèn)題:
(1) 廣域網(wǎng)環(huán)境中網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膩G幀和延遲問(wèn)題。受模擬器互聯(lián)網(wǎng)絡(luò)帶寬和長(zhǎng)距離傳輸?shù)挠绊?,模擬器間交互的數(shù)據(jù)會(huì)存在丟包和延遲現(xiàn)象。通常千兆網(wǎng)絡(luò)中,模擬器互聯(lián)在局域網(wǎng)的網(wǎng)絡(luò)延遲不大于1 ms,廣域網(wǎng)環(huán)境中測(cè)試的網(wǎng)絡(luò)延遲可達(dá)120 ms以上。因此,相對(duì)于飛行模擬器10 ms的解算周期,廣域網(wǎng)中接收的數(shù)據(jù)將會(huì)不連續(xù)或不能實(shí)時(shí)更新,對(duì)于飛行模擬器,延遲達(dá)到100 ms以上將會(huì)有明顯的卡頓現(xiàn)象,影響飛行訓(xùn)練品質(zhì)。同時(shí),廣域網(wǎng)中較大的延遲和長(zhǎng)距離傳輸,也將對(duì)高頻度飛行數(shù)據(jù)的同步更新帶來(lái)更大的丟包率影響,在不同幀長(zhǎng)和流量大小下的丟包率大于1%。
(2) 仿真周期內(nèi)不能及時(shí)完成解算處理(C)階段或仿真周期不一致的問(wèn)題。若在某個(gè)仿真周期內(nèi),某臺(tái)模擬器的仿真節(jié)點(diǎn)因解算負(fù)載太重而未能將計(jì)算結(jié)果發(fā)送出去,也將導(dǎo)致其他模擬器在下一幀仿真啟動(dòng)時(shí),其數(shù)據(jù)不能實(shí)時(shí)更新。
上述的兩個(gè)問(wèn)題可以歸結(jié)為大規(guī)模分布式仿真中的時(shí)空不一致性問(wèn)題[13-15],可以通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)的軟件平滑預(yù)測(cè)處理加以解決。在異地互聯(lián)網(wǎng)絡(luò)通信引擎的設(shè)計(jì)時(shí),采用優(yōu)化的數(shù)據(jù)更新策略[7],并結(jié)合數(shù)據(jù)的平滑預(yù)測(cè)模型(DRM),可以實(shí)現(xiàn)各模擬器內(nèi)部仿真節(jié)點(diǎn)接收數(shù)據(jù)的連續(xù)性。
仿真節(jié)點(diǎn)的數(shù)據(jù)更新流程和聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)的DRM接收處理流程如圖4所示,它們的流程均在穩(wěn)定的硬件同步信號(hào)的觸發(fā)下進(jìn)行處理。
(a) 仿真節(jié)點(diǎn)數(shù)據(jù)更新 (b) 聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)接收?qǐng)D4 仿真節(jié)點(diǎn)數(shù)據(jù)更新和聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)接收處理流程
仿真節(jié)點(diǎn)的本地實(shí)體維護(hù)一個(gè)高精度仿真模型和一個(gè)簡(jiǎn)化的DRM,當(dāng)高精度模型解算出的位置、姿態(tài)等實(shí)體狀態(tài)數(shù)據(jù)與DRM解算出的實(shí)體狀態(tài)數(shù)據(jù)的差值超過(guò)設(shè)定的門(mén)限時(shí),仿真節(jié)點(diǎn)才通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)向外發(fā)送實(shí)體狀態(tài)更新數(shù)據(jù),以降低網(wǎng)絡(luò)帶寬的需求。
聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)則采用DRM對(duì)遠(yuǎn)端的仿真實(shí)體狀態(tài)進(jìn)行平滑預(yù)測(cè),其DRM分為兩個(gè)部分,一個(gè)是DRM預(yù)測(cè)處理,另一個(gè)是DRM平滑處理。當(dāng)發(fā)生網(wǎng)絡(luò)數(shù)據(jù)傳輸延遲、丟包、實(shí)體狀態(tài)未更新等情況,在下一幀仿真同步信號(hào)觸發(fā)時(shí),DRM預(yù)測(cè)處理則可以利用實(shí)體前期的歷史狀態(tài)數(shù)據(jù),推算出當(dāng)前實(shí)體狀態(tài)的近似值,對(duì)延遲或者丟失的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行彌補(bǔ);當(dāng)收到更新的實(shí)體狀態(tài)數(shù)據(jù)時(shí),肯定與前期預(yù)測(cè)的數(shù)據(jù)存在誤差,為了避免實(shí)體狀態(tài)數(shù)據(jù)的較大抖動(dòng),基于實(shí)體更新數(shù)據(jù)的時(shí)戳,采用DRM平滑處理算法對(duì)實(shí)體的狀態(tài)數(shù)據(jù)進(jìn)行處理,使實(shí)體狀態(tài)靠近并到達(dá)下一個(gè)更新?tīng)顟B(tài)。
DRM的核心在于如何設(shè)計(jì)外推預(yù)測(cè)模型和平滑處理模型。對(duì)于飛行仿真系統(tǒng)而言,考慮到人在回路對(duì)系統(tǒng)實(shí)時(shí)性的要求,DRM的選擇上須在精度和效率間進(jìn)行折中。仿真中,主要采用一階和二階外推算法進(jìn)行姿態(tài)和位置預(yù)測(cè)[7,16]。
位置預(yù)測(cè)采用二階空間位置外推方法,t0+Δt時(shí)刻位置P=[x,y,z]T為:
(1)
式中:t0時(shí)刻,實(shí)體位置P0=[x0,y0,z0]T;速度V0=[vx0,vy0,vz0]T;加速度A0=[ax0,ay0,az0]T。
姿態(tài)角預(yù)測(cè)采用基于四元數(shù)法的一階姿態(tài)角外推計(jì)算方法,t0+Δt時(shí)刻姿態(tài)R=[φ,θ,φ]T為:
(2)
t0+Δt時(shí)刻四元數(shù)值E′為:
(3)
t0時(shí)刻的初始四元數(shù)值E為:
(4)
t0時(shí)刻,平臺(tái)角速度ω0=[p,q,r]T;姿態(tài)角R0=[φ0,θ0,φ0]T;仿真步長(zhǎng)為Δt。
使用位置外推式(1)時(shí),若實(shí)際位置與推算出的位置的差值超過(guò)某一設(shè)定值d時(shí),才需要更新實(shí)體狀態(tài)數(shù)據(jù)。假設(shè)由實(shí)體高精度模型解算出的位置為P′=[x′,y′,z′]T,則位置更新門(mén)限判斷條件為:
(x′-x)2+(y′-y)2+(y′-y)2≥d2
(5)
使用姿態(tài)角外推式(2)時(shí),同樣設(shè)置姿態(tài)角誤差門(mén)限β,假設(shè)由實(shí)體高精度模型解算出的姿態(tài)角按照式(4)對(duì)應(yīng)的四元數(shù)為Q,DR模型外推的姿態(tài)角對(duì)應(yīng)的四元數(shù)為式(3),則姿態(tài)更新門(mén)限判斷條件為[16]:
(6)
式中:α為Q與E′之間的旋轉(zhuǎn)角。當(dāng)滿(mǎn)足兩個(gè)上述門(mén)限條件之一時(shí),仿真節(jié)點(diǎn)需通過(guò)聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)向外發(fā)送該實(shí)體的更新?tīng)顟B(tài)數(shù)據(jù),包括位置和姿態(tài)信息;若聯(lián)網(wǎng)數(shù)據(jù)分發(fā)節(jié)點(diǎn)在同步信號(hào)觸發(fā)時(shí),仍未收到實(shí)體狀態(tài)更新數(shù)據(jù),則采用同樣的位置和姿態(tài)角外推公式進(jìn)行預(yù)測(cè)處理。
當(dāng)接收到實(shí)體的更新?tīng)顟B(tài)數(shù)據(jù)后,需要校正接收節(jié)點(diǎn)中的該實(shí)體位置和姿態(tài),來(lái)使仿真中的實(shí)體被描述得盡量精確。如果這個(gè)更新的位置和姿態(tài)被立即放入飛行模擬器的視景顯示系統(tǒng)中,就會(huì)在顯示圖像中造成抖動(dòng),尤其是對(duì)編隊(duì)飛行和近距格斗時(shí)的影響更大。因此,更好的方法是逐漸校正實(shí)體狀態(tài)數(shù)據(jù),這就是所謂的平滑處理。
依據(jù)文獻(xiàn)[2]中的測(cè)試情況,當(dāng)兩個(gè)實(shí)體的相對(duì)距離大于500 m時(shí),視景圖像的抖動(dòng)可以忽略不計(jì)。因此,對(duì)于距離本地模擬器相對(duì)距離小于500 m的實(shí)體更新?tīng)顟B(tài)數(shù)據(jù),采用類(lèi)似加滑動(dòng)平均的處理方法,以克服前一時(shí)刻外推狀態(tài)數(shù)據(jù)與當(dāng)前時(shí)刻接收的更新?tīng)顟B(tài)數(shù)據(jù)較大的跳動(dòng)。
假設(shè)前n-1個(gè)時(shí)刻實(shí)體的狀態(tài)數(shù)據(jù)為Xi,i=0,1,…,n-1,則接收到當(dāng)前時(shí)刻更新?tīng)顟B(tài)數(shù)據(jù)Xn之后,采用的加權(quán)平滑處理模型為:
(7)
式中:Yn為平滑處理的結(jié)果,n為滑動(dòng)平均數(shù)據(jù)寬度;λi是Xi對(duì)應(yīng)的權(quán)值,對(duì)當(dāng)前時(shí)刻的更新?tīng)顟B(tài)Xn賦予較大的權(quán)值,對(duì)于時(shí)刻越早的數(shù)據(jù)賦予的權(quán)值越小。
DRM算法考慮的出發(fā)點(diǎn)首先是算法的實(shí)時(shí)性,然后才是算法的精確性。采用DRM預(yù)測(cè)和平滑處理技術(shù)在一定程度上降低了對(duì)當(dāng)前數(shù)據(jù)的依賴(lài)性,達(dá)到了降低網(wǎng)絡(luò)數(shù)據(jù)傳輸量、補(bǔ)償網(wǎng)絡(luò)延遲、彌補(bǔ)數(shù)據(jù)丟包、解決仿真周期不一致等目的,可保障異地聯(lián)網(wǎng)模擬訓(xùn)練的時(shí)空一致性。
為了驗(yàn)證上述基于GNSS的硬件同步觸發(fā)和軟件平滑預(yù)測(cè)的混合同步機(jī)制的有效性,主要從硬件觸發(fā)和軟件DRM處理兩個(gè)方面進(jìn)行測(cè)試。
對(duì)不同硬件同步裝置產(chǎn)生的觸發(fā)信號(hào)邊沿和正負(fù)頻寬的一致性,同步觸發(fā)的時(shí)間誤差等方面進(jìn)行測(cè)試和分析。
測(cè)試用的硬件時(shí)鐘同步裝置為兩個(gè)自研的同類(lèi)型同步控制器,采用了u-blox推出的LEA-M8T精密授時(shí)模塊,分別通過(guò)不同的天線(xiàn)接收導(dǎo)航衛(wèi)星信號(hào),產(chǎn)生正負(fù)頻寬均為16.67 ms的RS-232C同步信號(hào),在導(dǎo)航時(shí)間鎖定后,用泰克示波器測(cè)量的兩通道波形如圖5所示。
圖5 同步信號(hào)的觸發(fā)邊沿和正負(fù)頻寬測(cè)量波形
由圖5可以測(cè)量出兩個(gè)同步信號(hào)的觸發(fā)邊沿誤差約100 ns,正負(fù)頻寬誤差約10 μs,具有相當(dāng)高的精度、穩(wěn)定性和一致性。同樣,對(duì)于異地的硬件時(shí)鐘同步,其精度主要取決于GNSS系統(tǒng)的時(shí)鐘精度,由于GNSS系統(tǒng)的授時(shí)精度可以達(dá)到1 μs甚至更高,比如采用的LEA-M8T模塊授時(shí)精度可達(dá)20 ns。因此,基于GNSS的硬件時(shí)鐘同步完全可以滿(mǎn)足模擬器的同步仿真要求。
仿真節(jié)點(diǎn)上位機(jī)運(yùn)行Windows 7操作系統(tǒng),通過(guò)RS-232C串口的CTS管腳直接接收控制器輸出的同步信號(hào),上位機(jī)程序采用多線(xiàn)程技術(shù),根據(jù)CTS信號(hào)的上升沿和下降沿產(chǎn)生高優(yōu)先級(jí)中斷觸發(fā)事件EV_CTS,以實(shí)現(xiàn)頻率為60 Hz的仿真解算調(diào)用。上位機(jī)用高精度時(shí)鐘測(cè)量觸發(fā)間隔,測(cè)試時(shí)間為10 min,統(tǒng)計(jì)硬件同步信號(hào)在上位機(jī)中觸發(fā)中斷的時(shí)間間隔誤差,測(cè)量結(jié)果如圖6所示。測(cè)量的觸發(fā)周期最大值16.768 2 ms,最小值16.554 9 ms,平均值16.666 2 ms,方差0.026 4 ms2。將10 min內(nèi)的3.6萬(wàn)個(gè)測(cè)試數(shù)據(jù)按照組距1.122 5 μs進(jìn)行分組,結(jié)果如圖7所示。
圖6 同步觸發(fā)中斷周期與標(biāo)準(zhǔn)仿真周期的時(shí)間誤差
圖7 時(shí)間誤差的統(tǒng)計(jì)分布
由圖6可以看出,硬件同步信號(hào)觸發(fā)的仿真周期時(shí)間誤差約為-0.11 ms~0.10 ms,相比文獻(xiàn)[8]中的仿真周期精度提高了約10倍,滿(mǎn)足飛行模擬器對(duì)仿真周期的精度要求。由圖7可以看出,仿真周期時(shí)間誤差的波動(dòng)呈現(xiàn)一定的規(guī)律性,約30 μs的間隔會(huì)出現(xiàn)一個(gè)峰值,這與Windows操作系統(tǒng)的非實(shí)時(shí)性和中斷響應(yīng)間隔時(shí)間有關(guān)。
由上述的測(cè)試結(jié)果可以看出,基于GNSS的硬件時(shí)鐘同步方案能夠?yàn)楫惖氐哪M器提供穩(wěn)定和一致的同步仿真觸發(fā)和周期,確保了一致的幀接收時(shí)間和幀計(jì)算時(shí)間,可實(shí)現(xiàn)異地精確的仿真時(shí)間同步控制。
結(jié)合模擬器的機(jī)動(dòng)飛行數(shù)據(jù)對(duì)軟件DRM平滑預(yù)測(cè)的同步性進(jìn)行測(cè)試。模擬器的仿真步長(zhǎng)與硬件同步的觸發(fā)周期一致,即仿真步長(zhǎng)為16.67 ms,仿真時(shí)間長(zhǎng)度為49.37 s;設(shè)置的DRM參數(shù)為:位置誤差門(mén)限d=2,姿態(tài)角誤差門(mén)限β=0.5°,滑動(dòng)平均數(shù)據(jù)寬度n=10,權(quán)值為λ={10,9,8,7,6,5,4,3,2,1},即對(duì)越新的狀態(tài)賦予越大的權(quán)值。采用二階空間位置外推方法和四元數(shù)一階姿態(tài)角外推方法,記錄飛機(jī)從起飛至機(jī)動(dòng)飛行的姿態(tài)角和高度的數(shù)據(jù),繪制的精確模型解算數(shù)據(jù)、DRM同步預(yù)測(cè)數(shù)據(jù)和平滑處理數(shù)據(jù)曲線(xiàn)如圖8和圖9所示。
圖8 姿態(tài)角預(yù)測(cè)平滑數(shù)據(jù)
圖9 飛行高度預(yù)測(cè)平滑數(shù)據(jù)
為更加清楚看出DRM預(yù)測(cè)平滑結(jié)果與精確模型數(shù)據(jù)的差別,圖10和圖11分別是圖8和圖9中18.29 s~18.77 s時(shí)間段內(nèi)的局部放大圖,顯示了該時(shí)間段內(nèi)的航向和橫滾姿態(tài)角及高度數(shù)據(jù)的變化對(duì)比情況。
圖10 局部姿態(tài)角預(yù)測(cè)平滑數(shù)據(jù)對(duì)比
圖11 局部高度預(yù)測(cè)平滑數(shù)據(jù)對(duì)比
測(cè)試用計(jì)算機(jī)的CPU為E5-2687W v2 @ 3.4 GHz,8 GB內(nèi)存,DRM平均計(jì)算時(shí)間為4.387 μs,相對(duì)于16.67 ms的仿真步長(zhǎng),其計(jì)算時(shí)間可忽略不計(jì),可有效克服網(wǎng)絡(luò)數(shù)據(jù)傳輸延遲的影響,具有較高的仿真計(jì)算同步性;由17 s~20 s內(nèi)的測(cè)試結(jié)果可以看出,采用DRM處理后,實(shí)體狀態(tài)的最大更新間隔約為450 ms,大于廣域網(wǎng)中120 ms以上的網(wǎng)絡(luò)延遲,飛機(jī)狀態(tài)的網(wǎng)絡(luò)數(shù)據(jù)流量減少了95%以上,有效減少了網(wǎng)絡(luò)數(shù)據(jù)擁堵,網(wǎng)絡(luò)數(shù)據(jù)的丟包率小于0.01%。
由測(cè)試曲線(xiàn)圖可以看出,飛機(jī)狀態(tài)的預(yù)測(cè)和平滑數(shù)據(jù)與飛機(jī)精確模型解算的數(shù)據(jù)具有較好的擬合程度,其誤差的大小取決于位置誤差門(mén)限和姿態(tài)角誤差門(mén)限的選??;平滑處理后的飛機(jī)狀態(tài)變化更加平滑,克服了飛機(jī)狀態(tài)更新時(shí)的位置和姿態(tài)角突然較大的跳動(dòng)現(xiàn)象,更有利于飛行模擬器中視景的連續(xù)平滑顯示。
因此,基于聯(lián)網(wǎng)數(shù)據(jù)的時(shí)戳信息,采用DRM模型軟件的預(yù)測(cè)和平滑處理,可以實(shí)現(xiàn)在異地聯(lián)網(wǎng)數(shù)據(jù)延遲、丟包等遠(yuǎn)端實(shí)體狀態(tài)信息未更新的情況下,本地模擬器中遠(yuǎn)端實(shí)體狀態(tài)信息的實(shí)時(shí)同步外推更新,從而實(shí)現(xiàn)飛行模擬器異地聯(lián)網(wǎng)訓(xùn)練中的同步仿真。
對(duì)于異地組網(wǎng)條件下的飛行模擬訓(xùn)練實(shí)時(shí)仿真系統(tǒng)來(lái)說(shuō),時(shí)間管理和時(shí)序同步是實(shí)現(xiàn)正確仿真邏輯的關(guān)鍵和難點(diǎn),必須保證各仿真節(jié)點(diǎn)計(jì)算時(shí)序的同步性和時(shí)間的一致性,才能實(shí)現(xiàn)各仿真模型的正確交互和同步推進(jìn),避免諸如武器攻擊效果評(píng)判、大機(jī)動(dòng)飛行視景顯示抖動(dòng)等問(wèn)題。
本文提出的“GNSS硬件同步+DRM軟件預(yù)測(cè)平滑處理”混合同步方法,采用GNSS同步異地的仿真主時(shí)鐘,并將每個(gè)仿真周期分為接收、處理、發(fā)送等階段,實(shí)現(xiàn)了各仿真模型的正確交互和同步推進(jìn);并采用軟件DRM實(shí)現(xiàn)遠(yuǎn)端實(shí)體狀態(tài)信息的預(yù)測(cè)和平滑處理,以克服異地聯(lián)網(wǎng)飛行模擬訓(xùn)練交互中存在的網(wǎng)絡(luò)數(shù)據(jù)傳輸延遲、丟包和不同模擬器仿真步長(zhǎng)不一致等問(wèn)題。測(cè)試結(jié)果驗(yàn)證了本文方法的有效性,實(shí)現(xiàn)了異地聯(lián)網(wǎng)環(huán)境下飛行模擬訓(xùn)練的嚴(yán)格同步仿真計(jì)算。