国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于預(yù)測和雙緩沖區(qū)的直升機視景仿真

2018-07-27 05:15:46,,
計算機測量與控制 2018年7期
關(guān)鍵詞:飛控視景碰撞檢測

,,

(海軍航空工程學(xué)院 青島校區(qū)科研處軍用虛擬仿真研究與訓(xùn)練中心,山東 青島 266041)

0 引言

現(xiàn)代直升機以其獨特的環(huán)境適應(yīng)性在軍事和民用領(lǐng)域中得到了廣泛應(yīng)用,我國目前正在大力發(fā)展直升機,直升機的數(shù)量在迅速增加,需要培養(yǎng)大量的直升機飛行員。采用模擬訓(xùn)練的手段可以提高效率、節(jié)省經(jīng)費、保證安全。視景仿真系統(tǒng)在飛行模擬訓(xùn)練中為飛行員提供逼真的視覺感官體驗,提高模擬訓(xùn)練的逼真度,是飛行訓(xùn)練模擬器的重要組成部分。與固定翼飛機不同,直升機的起飛降落可以在機場、平地、樓頂平臺、艦面等眾多地點實現(xiàn),不局限于機場跑道,因此對視景中的細(xì)節(jié)要求更高,同時要求視景要與飛控緊密配合,將直升機與場景中地形和目標(biāo)的交互信息回饋給飛控,以配合直升機在不同的地點降落。目前國內(nèi)的大部分直升機視景仿真采用的是MultiGen—Paradigm(后與Engenuity和TerreX公司合并成Presagis公司)的VegaPrime(以下簡稱VP)作為視景驅(qū)動軟件[1-6],還有一部分采用FlightGear[7]。在直升機視景仿真的報道中,大部分的文章著重講述了場景的搭建和控制,關(guān)于飛控數(shù)據(jù)的處理并不多[8-10],而在工程實踐中必須解決飛控仿真與視景渲染不同步的問題。

為了解決直升機視景仿真中飛控與視景不同步和降落問題,本文首次提出了一種基于雙緩沖區(qū)和預(yù)測機制的直升機著艦視景系統(tǒng)的解決方法。該方法首先將直升機的姿態(tài)信息進行采樣處理,使之與視景仿真頻率匹配,以達到飛控仿真和視景仿真的時間同步性,然后將處理后的姿態(tài)信息存儲于兩個緩沖區(qū)中,一個緩沖區(qū)的數(shù)據(jù)傳送給視景進行更新;一個緩沖區(qū)中的的姿態(tài)信息來預(yù)測飛控仿真的下一幀數(shù)據(jù),然后傳送給視景進行碰撞檢測,最終使直升機正確降落。接下來首先對飛控與視景不同步的原因進行分析,并給出相應(yīng)的解決方法,最后給出實驗結(jié)果。

1 飛控與視景不同步的原因分析

直升機視景仿真中,飛控系統(tǒng)計算出飛機的位置,通過網(wǎng)絡(luò)傳輸?shù)揭暰跋到y(tǒng),驅(qū)動視景模型庫建立戰(zhàn)場環(huán)境。各系統(tǒng)之間的關(guān)系如圖1所示,視景控制程序收集飛控和其他模塊與視景系統(tǒng)進行交互的各種信息,主要包括直升機和其他目標(biāo)的姿態(tài)位置信息,并把這些信息轉(zhuǎn)換成相應(yīng)的協(xié)議發(fā)送到視景渲染模塊,將視景渲染模塊反饋回來的碰撞信息等進行協(xié)議轉(zhuǎn)換后發(fā)送給飛控解算;視景控制主程序主要負(fù)責(zé)對場景中的模型和特效等進行統(tǒng)一的控制和管理;視景渲染模塊主要負(fù)責(zé)接收視景驅(qū)動發(fā)送過來的信息,并在場景中作出相應(yīng)的渲染和改變,同時將需要回應(yīng)的信息發(fā)送給視景控制模塊。

圖1 直升機著艦中各系統(tǒng)關(guān)系圖

飛控解算出的飛機六自由度信息一般會通過網(wǎng)絡(luò)數(shù)據(jù)傳輸給視景模塊,由于網(wǎng)絡(luò)堵塞或者延遲等原因,會出現(xiàn)漏幀的情況。假設(shè)飛控的解算頻率和視景的刷新頻率完全一致,那么在Tn,Tn+1,Tn+2時刻,視景端應(yīng)該收到Fn,Fn+1,Fn+2幀的數(shù)據(jù),但由于網(wǎng)絡(luò)原因,只收到了Fn,Fn+2幀的數(shù)據(jù),這種情況下會導(dǎo)致場景出現(xiàn)卡頓,尤其是飛機做大坡度飛行時,使用者會感覺到場景的抖動。

飛行仿真是比較復(fù)雜的系統(tǒng),一般是根據(jù)自己的時鐘和仿真步長進行多步長推進的方式進行計算。一般飛行仿真的內(nèi)部解算采用10 ms的周期進行。視景系統(tǒng)是通過數(shù)據(jù)來驅(qū)動視景模型的,根據(jù)視景每幀獲取的實體狀態(tài)進行等步長解算。視景更新頻率為 60 Hz,也就是以16.7 ms為步長進行解算。這樣就存在刷新頻率和數(shù)據(jù)幀不同步問題, 而且?guī)芷谝膊灰粯樱由厦繋嬎闼ㄙM時間不一樣,再加上網(wǎng)絡(luò)數(shù)據(jù)傳輸延時,由此引起數(shù)據(jù)讀錯幀。在視景解算時就會發(fā)生連續(xù)兩幀數(shù)據(jù)讀取是同樣數(shù)據(jù), 或者有些幀數(shù)據(jù)未被讀取等現(xiàn)象(跳幀)[8]。如圖2上圖所示,在飛控和視景分別以100幀/秒和10幀/秒運行的情況下,在理想情況下,當(dāng)視景渲染1,2,3,4,5,6,7,8幀時,所用到的飛控數(shù)據(jù)分別為1,2,4,5,7,9,10,12幀。這樣飛控與視景渲染達不到同步,在場景渲染時會出現(xiàn)抖動等情況,影響用戶的使用;同時飛控系統(tǒng)需要視景反饋回的碰撞信息進行解算,視景在1,2,3,4,5,6,7,8幀所檢測的碰撞信息分別反饋到了飛控的1,2,5,7,9,10,12,13幀,這種非實時反饋的碰撞信息會嚴(yán)重影響飛控的計算結(jié)果,導(dǎo)致飛控出現(xiàn)不可預(yù)料的錯誤。

圖2 飛控與視景數(shù)據(jù)傳輸示例

2 飛控與視景不同步的解決方法

通過第一節(jié)的分析可以知道,飛控與視景不同步主要是由兩個原因引起的:一是網(wǎng)絡(luò)傳輸所導(dǎo)致的漏幀和跳幀;二是飛控的計算頻率與視景的刷新頻率不一致所導(dǎo)致的錯幀。針對這兩種問題,采用不同的方法予以解決:一是在視景控制端利用已知數(shù)據(jù)對沒有收到的飛控數(shù)據(jù)進行模擬推演,保證數(shù)據(jù)的完整性;二是利用雙緩沖區(qū)來解決錯幀問題。

2.1 利用推演解決漏幀問題

飛控與視景之間的數(shù)據(jù)通過網(wǎng)絡(luò)進行傳輸,網(wǎng)絡(luò)傳輸會導(dǎo)致數(shù)據(jù)丟失,而視景刷新時需要連貫一致的數(shù)據(jù),否則會出現(xiàn)場景抖動的現(xiàn)象。為了得到與視景刷新同步的數(shù)據(jù),同時又不能增加視景端的計算負(fù)擔(dān),因此需要在視景端需要利用已經(jīng)收到的數(shù)據(jù)推演出丟失的數(shù)據(jù),從而保證數(shù)據(jù)的一致性。假設(shè)視景在時刻收到的飛機六自由度數(shù)據(jù)為{Lonn,Latn,Altn,Hn,Pn,Rn},其中Lonn,Latn,Altn代表了飛機的位置信息,分別是飛機的經(jīng)度、緯度和高度信息,Hn,Pn,Rn表示飛機的姿態(tài)信息,分別是航向角、俯仰角和橫滾角信息。視景端同時還會收到飛控傳過來的飛機速度數(shù)據(jù)Vn={Vx,Vy,Vz,Vh,Vp,Vr},Vx,Vy,Vz分別是飛機速度的北向分量,東向分量和天向分量;Vh,Vp,Vr分別是飛機的偏航角速度,俯仰角速度和橫滾角速度。而在tn+1時刻沒有收到數(shù)據(jù)。此時視景端需要根據(jù)已經(jīng)收到的飛機位置姿態(tài)信息和速度信息推算出飛機在tn+1時刻的位置姿態(tài)信息。因為飛機的位置是用經(jīng)度、緯度和高度來描述的,而飛機的速度信息卻是以飛機起飛點為原點,北向為X方向,東向為Y方向,天空為Z方向的笛卡爾坐標(biāo)系來描述的,因此需要進行坐標(biāo)變換才能使二者的坐標(biāo)一致。利用函數(shù)f(x)表示從經(jīng)緯度坐標(biāo)到北東天坐標(biāo)的變換,則在北東天坐標(biāo)系下的飛機位置如公式(1)所示。

Dn’={X,Y,Z,H,P,R}=f(Dn)=

{f(Lonn,Latn,Altn),Hn,Pn,Rn}

(1)

用函數(shù)f’(x)表示從北東天坐標(biāo)系到經(jīng)緯度坐標(biāo)系的轉(zhuǎn)換,則視景端在tn+1時刻的飛機六自由度數(shù)據(jù)如公式(2)所示。

Dn+1=f’(f(Dn)+An)

(2)

2.2 利用雙緩沖區(qū)解決錯幀問題

飛控與視景是一個雙向交互的過程,如果視景只是接收飛控數(shù)據(jù)進行飛機姿態(tài)的定位和顯示,那么問題變的相對簡單,可只對視景接收到的飛機姿態(tài)信息進行數(shù)據(jù)處理后送渲染端進行顯示即可,在很多工程應(yīng)用上都如此處理;而在飛控需要視景實時反饋的碰撞檢測結(jié)果作為飛控的輸入量進行解算時,整個過程成為一個需要實時反饋的系統(tǒng),這樣視景系統(tǒng)不但需要處理接收到的數(shù)據(jù),還需要保證將當(dāng)前飛機與場景中發(fā)生碰撞的信息實時返回。本文通過在飛控和視景控制端加入了雙數(shù)據(jù)緩沖區(qū)來解決這個問題,如圖2下圖所示,在飛控的數(shù)據(jù)傳送給視景之前,先將其數(shù)據(jù)放入雙緩沖區(qū)中,在緩沖區(qū)中對數(shù)據(jù)進行處理,使得飛控發(fā)送給視景的數(shù)據(jù)和飛控接收到的視景數(shù)據(jù)都滿足要求,能夠同步。具體實現(xiàn)時,如圖3所示,緩沖區(qū)1存放用來進行視景渲染的飛機信息,通過插值計算使飛控解算頻率與渲染頻率匹配;緩沖區(qū)2存放用來進行碰撞檢測的飛機信息,通過預(yù)測算法使飛控解算頻率與渲染頻率匹配。視景中放置兩架飛機,一架用來渲染,一架“影子飛機”只用來進行碰撞檢測的計算,不在場景中進行渲染,這樣既可以保證在渲染時按照渲染端的頻率進行更新,又可以保證碰撞檢測的實時性。

圖3 雙緩沖區(qū)示意圖

為了達到頻率匹配,視景和飛控中的數(shù)據(jù)都自帶幀號,若當(dāng)前視景渲染到n幀,飛控解算到m幀,緩沖區(qū)1由一個10幀的隊列組成,所收到的數(shù)據(jù)分別為{Dm,Dm+1,Dm+2,Dm+3,Dm+4,Dm+5,Dm+6,Dm+7,Dm+8,Dm+9},用來渲染的數(shù)據(jù)為{DDn,DDn+1,DDn+2,DDn+3,DDn+4,DDn+5},則它們之間的關(guān)系為:

(3)

其中:C1+C2=1,C3+C4=1,C6+C7=1,C8+C9=1。從公示(3)可以看出,利用線性插值算法可從緩沖區(qū)1中計算出需要渲染的數(shù)據(jù)。這樣可保證飛控發(fā)送過來的數(shù)據(jù)能夠與視景的渲染速度相匹配,如果視景渲染幀速或飛控的解算頻率發(fā)生改變,則相應(yīng)修改公式(3)即可。為了保證數(shù)據(jù)的一致性,緩沖區(qū)1中的數(shù)據(jù)采用滑動窗口進行,按照“先進先出”的原則,采用隊列存儲緩沖區(qū)1的數(shù)據(jù)。利用緩沖區(qū)計算的時候,使用者操作后的效果在視景上顯現(xiàn)時會延遲0.01秒,這種延遲不會影響使用者的主觀感受。

緩沖區(qū)2用來計算當(dāng)前幀的碰撞檢測,本文中采用的LOS碰撞檢測,該檢測需要提供檢測線的起點和終點形成檢測線,而檢測線的起點和終點依附在飛機尾部上,因此是隨著飛機實時更新的。假設(shè)視景在第n幀接收到碰撞檢測請求,會在第n+1幀將檢測結(jié)果返回。如果將當(dāng)前幀的碰撞檢測請求直接發(fā)送給視景,則結(jié)果需要在下一幀才能收到,延遲了一幀。為了解決這個問題,我們設(shè)立了第二個緩沖區(qū)。假設(shè)收到飛控的當(dāng)前幀數(shù)據(jù)為第i幀,則在第二個緩沖區(qū)中存放的五幀數(shù)據(jù)分別為{Di-4,Di-3,Di-2,Di-1,Di}。首先根據(jù)公式(3)計算出這五幀數(shù)據(jù)對應(yīng)的三幀渲染數(shù)據(jù){DDn-2,DDn-1,DDn};然后利用飛機當(dāng)前幀的位置和加速度預(yù)測出下一幀飛機的位置姿態(tài)。公式如下:

DDn+1=DDn+C0Vn+C1Vn-1

(4)

其中:C0+C1=1,Vn=DDn-DDn-1,Vn-1=DDn-1-DDn-2。將預(yù)測到的數(shù)據(jù)發(fā)送給視景中的“影子飛機”,然后將視景發(fā)送回來的碰撞檢測結(jié)果作為輸入量傳送給飛控進行解算。

3 實驗結(jié)果

如果直接將飛控數(shù)據(jù)賦值給視景,我們記錄了視景渲染幀數(shù)和飛控計算幀數(shù),他們的關(guān)系如圖4所示,其中橫軸是視景渲染幀數(shù),縱軸是飛控計算幀數(shù)。若兩者的仿真頻率完全匹配,則該圖中應(yīng)該是一條直線,而現(xiàn)在卻是折線,因此幀率是不匹配的,而且由于幀率不匹配,出現(xiàn)了錯幀和漏幀,圖中圓圈所示是一處非常典型的錯漏幀情況。

圖4 視景渲染幀數(shù)與飛控仿真幀數(shù)關(guān)系圖

圖5 采樣后數(shù)據(jù)、非采樣數(shù)據(jù)和真實數(shù)據(jù)之間的對比

以飛行高度數(shù)據(jù)為例,設(shè)置飛控仿真頻率為100幀/秒,視景渲染頻率為50幀/秒,得到根據(jù)視景渲染頻率采樣插值后的數(shù)據(jù)和沒有采樣直接接收的兩組數(shù)據(jù),圖5顯示了這兩組數(shù)據(jù)與直接按照50幀/秒的頻率得到的飛控數(shù)據(jù)圖,其中橫軸是仿真時間,縱軸是分別是三組數(shù)據(jù),線段1是按照50幀/秒的頻率得到的飛控數(shù)據(jù)(即真實數(shù)據(jù));線段2是根據(jù)視景渲染頻率采樣插值后的數(shù)據(jù);線段3是沒有采樣直接接收的數(shù)據(jù)。圖5上圖是原始圖,下圖是局部細(xì)節(jié)放大后的圖像。從中可以看出,線2比線3更接近真實數(shù)據(jù),即根據(jù)視景渲染頻率采樣插值后的數(shù)據(jù)比沒有采樣直接接收的數(shù)據(jù)更接近原始數(shù)據(jù)。以50個數(shù)據(jù)為一組,取100組,將這兩組數(shù)據(jù)與真實數(shù)據(jù)之差的方差進行對比,如圖6上圖所示,其中曲線1表示根據(jù)視景渲染頻率采樣插值后的數(shù)據(jù)與真實數(shù)據(jù)之差的方差,曲線2是直接接收的數(shù)據(jù)與真實數(shù)據(jù)之差的方差;可以看出,曲線1數(shù)據(jù)與真實數(shù)據(jù)之差的方差更小,因此本文的采樣算法是成功的。用同樣的方法,以50個數(shù)據(jù)為一組,取100組,計算預(yù)測到的飛控數(shù)據(jù)與真實數(shù)據(jù)之差的方差,其結(jié)果如圖6下圖所示,本文的預(yù)測數(shù)據(jù)越來越收斂與真實數(shù)據(jù),因此預(yù)測算法也是成功的。

圖6 方差分析圖

4 結(jié)束語

該方法目前已應(yīng)用于多個直升機模擬訓(xùn)練項目中,有效解決了由于飛控與視景不同步所引起的場景抖動問題,并且能夠保證直升機在多個地點正常降落,目前該方法已成功應(yīng)用于通用直升機著艦系統(tǒng),取得了非常好的效果。下一步將在飛控數(shù)據(jù)預(yù)測中進一步優(yōu)化算法,使預(yù)測的數(shù)據(jù)更接近真實值。

猜你喜歡
飛控視景碰撞檢測
全新預(yù)測碰撞檢測系統(tǒng)
基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
民用飛機飛控通電自檢測安全性研究
無人機飛控軟件架構(gòu)設(shè)計初探
電子測試(2018年23期)2018-12-29 11:11:36
vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應(yīng)用
電子測試(2018年4期)2018-05-09 07:28:19
Unity3D中碰撞檢測問題的研究
電子測試(2018年1期)2018-04-18 11:53:00
02 飛控技術(shù)與機場安保引關(guān)注
飛控系統(tǒng)故障告警實時監(jiān)控軟件的設(shè)計與實現(xiàn)
BIM技術(shù)下的某辦公樓項目管線碰撞檢測
全回轉(zhuǎn)拖輪運動建模與視景仿真
兰溪市| 克拉玛依市| 上栗县| 辰溪县| 奉新县| 齐齐哈尔市| 菏泽市| 望都县| 汉源县| 达拉特旗| 湘潭县| 拉萨市| 秀山| 海宁市| 蓬安县| 林西县| 赣州市| 吴川市| 仁化县| 太康县| 子长县| 西乌| 彭州市| 富顺县| 石门县| 新余市| 嘉黎县| 庆云县| 丹东市| 高平市| 崇信县| 阿瓦提县| 百色市| 芮城县| 南宁市| 万全县| 修文县| 白水县| 花莲县| 陆良县| 广河县|