• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Vega Prime的彈道視景準實時仿真研究*

      2013-12-10 03:53:30齊竹昌
      彈箭與制導(dǎo)學(xué)報 2013年1期
      關(guān)鍵詞:視景彈道內(nèi)存

      齊竹昌,劉 莉,龍 騰,邢 超

      (北京理工大學(xué)宇航學(xué)院,北京 100081)

      0 引言

      隨著計算機技術(shù)的發(fā)展,視景仿真技術(shù)在導(dǎo)彈武器研發(fā)中的應(yīng)用越來越廣泛。視景仿真技術(shù)采用計算機技術(shù)、圖形圖像技術(shù)、三維建模顯示技術(shù),根據(jù)仿真目的,構(gòu)造出仿真對象的三維模型及仿真場景,再現(xiàn)真實環(huán)境,使用戶產(chǎn)生身臨其境的感覺。視景仿真技術(shù)現(xiàn)已成為彈道設(shè)計、航跡規(guī)劃等一種直觀、便捷的仿真分析手段[1]。

      彈道視景仿真是將彈道仿真與視景仿真相結(jié)合,通過視景畫面展現(xiàn)彈道仿真過程,避免了直接分析數(shù)據(jù)的枯燥性,方便了設(shè)計人員對導(dǎo)彈飛行中狀態(tài)信息變化情況的分析。傳統(tǒng)的彈道視景仿真設(shè)計流程中,通常將彈道仿真與視景仿真相分離,先進行彈道仿真,生成仿真結(jié)果數(shù)據(jù)文件,再通過視景仿真讀取文件中的數(shù)據(jù)驅(qū)動視景畫面更新[2-3]。這種設(shè)計流程易于程序?qū)崿F(xiàn),但不夠靈活。在彈道設(shè)計階段,需要不斷修改彈道設(shè)計參數(shù),每次修改都要生成一個數(shù)據(jù)文件,使仿真過于煩瑣。同時對于視景仿真畫面的更新,通常直接采用幀循環(huán)進行驅(qū)動,而未對畫面更新時間進行限制。由于計算機處理速度很快,通常視景仿真時間遠小于導(dǎo)彈真實飛行時間,即畫面更新太快,對于飛行時間較短的戰(zhàn)術(shù)導(dǎo)彈而言,設(shè)計人員很難在如此短的時間內(nèi)看清楚導(dǎo)彈飛行狀態(tài)的變化。文獻[2]通過建立導(dǎo)彈視景仿真模型并調(diào)用Vega API函數(shù)完成了導(dǎo)彈飛行視景仿真,文獻[3]以反坦克導(dǎo)彈為對象基于Visual C++和Vega進行了導(dǎo)彈虛擬仿真系統(tǒng)的開發(fā),并將彈道仿真嵌入視景仿真中,但二者都未對仿真過程進行準實時性設(shè)計。所謂準實時仿真是指彈道視景仿真過程與導(dǎo)彈真實飛行過程在時間上基本一致。

      文中通過分析導(dǎo)彈視景準實時仿真中存在的難題,基于Vega Prime對彈道視景準實時仿真進行了研究,建立了彈道視景仿真模型,分析了彈道視景仿真實現(xiàn)流程及關(guān)鍵技術(shù)。針對仿真中存在的問題,在Windows平臺下通過定制高精度多媒體定時器實現(xiàn)了仿真的準實時性,以內(nèi)存映射文件技術(shù)實現(xiàn)了彈道仿真程序與視景仿真跨進程的數(shù)據(jù)交互,最后在.NET框架下選用C++編程完成了彈道視景準實時仿真程序的開發(fā)。

      1 彈道視景仿真模型的建立

      彈道視景仿真模型包括彈道仿真模型與視景仿真模型,彈道仿真模型即導(dǎo)彈飛行動力學(xué)數(shù)學(xué)模型,視景仿真模型包括導(dǎo)彈三維模型、地形場景模型及二者組成的視景仿真文件。

      1.1 彈道仿真模型

      導(dǎo)彈是受多種力和力矩作用產(chǎn)生多種運動狀態(tài)的復(fù)雜系統(tǒng)。導(dǎo)彈飛行動力學(xué)數(shù)學(xué)模型由導(dǎo)彈動力學(xué)方程、運動學(xué)方程、控制方程、幾何關(guān)系方程及質(zhì)量方程等組成。進行彈道仿真時,彈道仿真程序通過建立導(dǎo)彈飛行動力學(xué)模型,同時建立當?shù)氐拇髿饽P秃桶l(fā)動機推力模型等,外加一定的控制導(dǎo)引方程,在給定初始條件下,采用一定的仿真算法(一般是積分算法)和仿真步長,對導(dǎo)彈飛行全過程進行仿真,得到導(dǎo)彈在任一時刻的位置和姿態(tài)。為了在Windows平臺下與視景仿真程序進行數(shù)據(jù)交互,選用C++語言在.NET框架下對彈道仿真程序進行設(shè)計與開發(fā)。

      1.2 視景仿真模型

      1.2.1 導(dǎo)彈三維模型

      導(dǎo)彈三維模型是彈道視景仿真的仿真對象,模型的精細程度決定了視景仿真結(jié)果的逼真度。導(dǎo)彈通常是由頭部、中部、尾部和彈翼組成,各部分分別以不同的參數(shù)進行描述,如表1所示。使用Multigen Creator[4]創(chuàng)建導(dǎo)彈三維模型時,首先是在Multigen Creator中根據(jù)導(dǎo)彈的幾何外形參數(shù)通過點、線、面、體的順序進行建模,并采用拉伸、旋轉(zhuǎn)、布爾等操作,創(chuàng)建出導(dǎo)彈的三維模型,最后通過貼圖進行視覺渲染,使模型顯示更加逼真。通過Multigen Creator創(chuàng)建的導(dǎo)彈三維模型如圖1所示。

      圖1 導(dǎo)彈三維模型圖

      表1 導(dǎo)彈參數(shù)描述表

      1.2.2 仿真地形場景模型

      仿真地形場景是描述導(dǎo)彈真實飛行的地形環(huán)境,地形場景建模的目標是得到高低起伏符合實際情況的地形地表輪廓。為了增加仿真場景逼真性,需要構(gòu)建房屋、道路、河流、樹木等標識特征。文中主要討論戰(zhàn)術(shù)導(dǎo)彈的彈道準實時視景仿真,導(dǎo)彈的射程較近,因此仿真場景不需太大,使用Multigen Creator三維地形工具根據(jù)地形的高程數(shù)據(jù)來構(gòu)建地形模型,并使用紋理和貼圖技術(shù),以增加仿真場景的真實性和細節(jié)程度。

      1.2.3 視景仿真文件

      使用Multigen Creator創(chuàng)建的導(dǎo)彈三維模型和地形場景模型并不能直接用于視景仿真,而需要通過Vega Prime[5]進行加載配置,構(gòu)建成視景仿真文件。視景仿真文件的創(chuàng)建是利用Vega Prime將導(dǎo)彈三維模型(.flt)與地形場景模型(.flt)相結(jié)合,生成.acf視景仿真文件,從而省去大量的編程操作,極大的降低了仿真成本。同時,為了便于從不同角度不同位置觀察導(dǎo)彈的飛行狀態(tài),利用Vega Prime在仿真環(huán)境中加入不同的觀察點和觀察通道;為了增加仿真的逼真性,在仿真環(huán)境中加入碰撞檢測和碰撞特效,視景仿真文件創(chuàng)建流程如圖2所示。

      圖2 視景仿真文件配置流程

      2 彈道視景準實時仿真總體框架設(shè)計

      通過彈道仿真可以得到不同時刻導(dǎo)彈的位置和姿態(tài)等飛行狀態(tài)信息,視景仿真程序需要將這些仿真結(jié)果數(shù)據(jù)實時地接收并應(yīng)用于視景仿真中,來更新視景畫面中導(dǎo)彈的位置和姿態(tài),即存在彈道仿真與視景仿真之間跨進程的數(shù)據(jù)交互問題。同時,用計算機進行彈道數(shù)學(xué)仿真可在瞬間完成,仿真所花時間遠小于導(dǎo)彈真實飛行時間,在如此短的時間內(nèi),分析人員很難看清導(dǎo)彈飛行狀態(tài)的變化,即存在仿真實時性問題。因此,如何解決彈道視景仿真的實時性問題和彈道仿真程序與視景仿真程序之間快速數(shù)據(jù)交互問題成為彈道視景準實時仿真所必須解決的兩大難題。

      針對此問題,文中通過定制高精度多媒體定時器實現(xiàn)彈道仿真的準實時性,即計算機仿真所花費時間與導(dǎo)彈的真實飛行時間基本相同,在視景仿真中同樣采用高精度多媒體定時器對畫面幀更新進行控制,以保證彈道仿真結(jié)果數(shù)據(jù)與視景仿真所顯示畫面相一致,視景仿真畫面顯示時間與真實飛行時間基本相同。通過內(nèi)存映射文件技術(shù)將彈道仿真結(jié)果數(shù)據(jù)在彈道仿真程序和視景仿真程序不同進程間進行交互,實現(xiàn)數(shù)據(jù)共享。彈道視景準實時仿真的基本框圖如圖3所示,彈道視景準實時仿真由三部分組成,彈道仿真模塊、視景仿真模塊及由內(nèi)存映射文件構(gòu)成的跨進程數(shù)據(jù)交互模塊。

      圖3 彈道視景準實時仿真框圖

      3 關(guān)鍵技術(shù)與實現(xiàn)途徑

      3.1 彈道視景仿真準實時調(diào)度

      在彈道仿真和視景仿真中加入定時器,使彈道解算和視景畫面更新能夠以固定時間間隔進行,同時使定時器的時間間隔與彈道仿真步長一致,如此便能保證彈道仿真的實時性。為了使彈道仿真有足夠的計算精度,積分步長不應(yīng)太大,文中仿真步長選取為1ms,因此所需的定時器定時精度也應(yīng)達到1ms。

      微軟公司在Windows中提供了精確定時器的底層API支持,利用Windows多媒體定時器可以很精確地讀出系統(tǒng)的當前時間,定時精度可達1ms,并且能在非常精確的時間間隔內(nèi)完成一個事件、函數(shù)或過程的調(diào)用[6]。因此,選用1ms的積分步長,不僅能夠滿足彈道仿真的計算精度,同時使定時器滿足精度要求;對于視景顯示方面,由于人眼視覺暫留作用的影響,當畫面更新速率達到25幀/s以上時,觀察者看到的是流暢的畫面,采用1ms定時間隔可以完全保證視景顯示的流暢性。

      由于多媒體定時器不依賴于消息機制,而是產(chǎn)生一個獨立的線程,因此,在處理定時過程中需要用到多線程技術(shù)。采用多線程技術(shù)可以使應(yīng)用程序更好的利用系統(tǒng)資源,更充分利用CPU的空閑時間片,用盡可能少的時間來對用戶的要求做出響應(yīng),使程序整體運行效率得到較大的提高,同時也增強了應(yīng)用程序的靈活性。因此,多線程技術(shù)的采用極大的減小了定時器對彈道實時解算的影響。

      3.2 跨進程的數(shù)據(jù)交互

      為了盡量減少數(shù)據(jù)傳輸對定時器工作的影響,數(shù)據(jù)傳輸應(yīng)采用一種快速高效的傳輸方法或機制,文中采用了內(nèi)存映射文件技術(shù)來解決彈道仿真與視景仿真之間的數(shù)據(jù)傳輸問題。內(nèi)存映射文件是一種程序間數(shù)據(jù)快速交互的方法,是目前使用最廣泛的數(shù)據(jù)共享與通信技術(shù),尤其適用于管理大型數(shù)據(jù)流以及在單個計算機上運行的多個進程之間的數(shù)據(jù)交互[7]。文中采用內(nèi)存映射文件技術(shù)在彈道仿真程序中將彈道仿真結(jié)果數(shù)據(jù)讀入到共享內(nèi)存中,而在視景仿真程序中通過讀取內(nèi)存中的數(shù)據(jù)來驅(qū)動視景仿真畫面的更新,從而實現(xiàn)了彈道仿真與視景仿真不同進程間的快速數(shù)據(jù)交互。

      3.3 彈道視景準實時仿真實現(xiàn)

      圖4為彈道視景準實時仿真的設(shè)計流程,由彈道仿真程序和視景仿真程序兩部分組成。在彈道仿真程序中,首先進入彈道仿真主線程,在主線程中需要為1ms多媒體定時器創(chuàng)建一新的線程,在定時器線程中完成多媒體定時器的創(chuàng)建、彈道的解算及仿真結(jié)果數(shù)據(jù)的發(fā)送。1ms定時器創(chuàng)建完成后開始工作計時,當1ms時間間隔未到達時,積分解算函數(shù)處于等待狀態(tài);當1ms時間間隔到達時,積分解算函數(shù)進行彈道求解,并將解算得到的彈道參數(shù)通過內(nèi)存映射文件讀入指定的內(nèi)存塊中,同時更新積分初值,然后判斷彈道仿真時間是否到達定時器預(yù)設(shè)值,若到達,定時器工作結(jié)束,刪除定時器,結(jié)束定時器線程,彈道仿真結(jié)束;若未到達,定時器繼續(xù)計時,進行彈道積分解算,直到仿真時間到達定時器預(yù)設(shè)值。

      在視景仿真程序中,首先進入視景仿真主線程,仿真開始后,需要對Vega Prime運行環(huán)境進行初始化,然后對配置完成的視景仿真ACF文件進行加載,該文件包含了視景仿真的仿真對象、仿真場景及觀察視窗和特效。下一步是對仿真對象(導(dǎo)彈和目標)定義和配置,完成仿真對象的初始位置和姿態(tài)的定義,然后進入仿真循環(huán)。在仿真循環(huán)中同樣需要創(chuàng)建1ms多媒體定時器線程,1ms定時器創(chuàng)建完成后開始計時,當1ms時間間隔未到達時,畫面保持;當1ms時間間隔到達時,通過內(nèi)存映射文件從彈道仿真指定的內(nèi)存塊中讀取導(dǎo)彈和目標的運動參數(shù)驅(qū)動視景畫面更新。當仿真計時未到達預(yù)定值時,定時器繼續(xù)計時工作,實時更新畫面;當仿真計時到達預(yù)設(shè)值時,仿真循環(huán)結(jié)束,刪除定時器,結(jié)束定時器線程,取消對象應(yīng)用,退出Vega Prime應(yīng)用程序環(huán)境,視景仿真結(jié)束。在彈道視景仿真中,為了使仿真更具有通用性,將彈道仿真程序與視景仿真程序相互獨立開來,通過在視景仿真中調(diào)用彈道程序的方式實現(xiàn)彈道仿真與視景仿真的結(jié)合,由此便完成了彈道視景準實時仿真的程序開發(fā)。

      圖4 彈道視景準實時仿真流程圖

      4 仿真實例

      文中以反坦克導(dǎo)彈為例進行了彈道視景準實時仿真程序的開發(fā),在.NET框架下采用 C++調(diào)用Windows多媒體定時器、多線程、內(nèi)存映射文件及Vega Prime API編寫完成了彈道視景準實時仿真程序,圖5為彈道視景準實時仿真程序運行效果圖,仿真了導(dǎo)彈從發(fā)射準備段到命中目標的全過程,為了增加對目標的毀傷效果,在彈道設(shè)計中采用了二次爬升彈道方案,大大增加了導(dǎo)彈命中目標時的擊頂落角,從圖6中可以清晰地看到,導(dǎo)彈在命中目標時的擊頂落角近45°,證明了二次爬升彈道的可用性。同時,通過仿真畫面可以清楚地看到導(dǎo)彈在飛行過程中姿態(tài)的變化情況及二次爬升彈道的飛行軌跡。為了便于觀察分析,將視景仿真視場分成四部分,即主視場、目標視場、導(dǎo)彈俯仰視場和導(dǎo)彈偏航滾轉(zhuǎn)視場。通過不同的視場分析人員可以清晰地看到導(dǎo)彈飛行過程中的姿態(tài)位置變化和目標運動狀態(tài)。為了增強仿真的逼真性,在仿真場景中增加了碰撞檢測和煙火、粒子等特效,當導(dǎo)彈命中目標時,目標起火并飛散出粒子碎片,導(dǎo)彈命中目標時的效果如圖6所示。

      圖5 彈道視景準實時仿真結(jié)果圖

      圖6 導(dǎo)彈命中目標特效圖

      5 結(jié)論

      文中分析了基于Vega Prime的彈道視景準實時仿真流程及其關(guān)鍵技術(shù),采用多媒體定時器、多線程技術(shù)實現(xiàn)了彈道視景仿真的準實時性,采用內(nèi)存映射文件技術(shù)實現(xiàn)了彈道仿真與視景仿真間的快速數(shù)據(jù)交互,在.NET環(huán)境下采用C++進行編程,實現(xiàn)了反坦克導(dǎo)彈攻擊目標全過程的彈道視景準實時仿真,設(shè)計人員可以通過視景仿真畫面直觀清晰的觀察導(dǎo)彈的飛行過程,為彈道設(shè)計合理性分析提供了參考。

      [1]凌鋒.飛行視景仿真系統(tǒng)研究與開發(fā)[D].西安:西北工業(yè)大學(xué),2003.

      [2]蘇森煜,張曉東,婁術(shù)根,等.基于Vega的導(dǎo)彈飛行視景仿真[J].沈陽航空工業(yè)學(xué)院學(xué)報,2010,27(2):20-23.

      [3]唐勝景,汪群山,王憲宗,等.基于Visual C++和Vega的導(dǎo)彈虛擬飛行仿真系統(tǒng)[J].北京理工大學(xué)學(xué)報,2007,27(5):413-416.

      [4]The Multigen Creator Desktop Tutor[M].Multigen Paradigm Inc,2008.

      [5]Lynx Prime user’s guide[M].Multigen Paradingm Inc,2008.

      [6]常發(fā)亮,劉靜.多線程下多媒體定時器在快速數(shù)據(jù)采集中的應(yīng)用[J].計算機應(yīng)用,2003,23(S1):177-178.

      [7]孫文慶,劉秉權(quán),肖鏡輝.基于內(nèi)存映射文件的數(shù)據(jù)共享技術(shù)研究與應(yīng)用[J].微計算機應(yīng)用,2005,26(2):192-194.

      猜你喜歡
      視景彈道內(nèi)存
      彈道——打勝仗的奧秘
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      一維彈道修正彈無線通信系統(tǒng)研制
      電子制作(2019年7期)2019-04-25 13:17:48
      vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應(yīng)用
      電子測試(2018年4期)2018-05-09 07:28:19
      基于PID控制的二維彈道修正彈仿真
      消除彈道跟蹤數(shù)據(jù)中伺服系統(tǒng)的振顫干擾
      全回轉(zhuǎn)拖輪運動建模與視景仿真
      基于Vortex與Vega Prime的車輛模擬器動力學(xué)與視景仿真
      基于內(nèi)存的地理信息訪問技術(shù)
      基于STK的衛(wèi)星實時視景仿真系統(tǒng)設(shè)計
      东乌珠穆沁旗| 乌审旗| 玉田县| 苗栗市| 德化县| 安多县| 巧家县| 阳原县| 甘孜县| 巨野县| 顺平县| 平顺县| 建昌县| 湄潭县| 许昌市| 什邡市| 赣州市| 武山县| 尚义县| 云林县| 盐源县| 东城区| 正阳县| 石家庄市| 上栗县| 东莞市| 定兴县| 永胜县| 裕民县| 安西县| 潼南县| 横山县| 新津县| 江口县| 农安县| 肇庆市| 南丰县| 昌平区| 乳源| 乐昌市| 察雅县|