• 
    

    
    

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

      工況軟件模擬演示驗(yàn)證系統(tǒng)設(shè)計(jì)

      2012-10-18 09:39:08朱利偉李宇波李輝芬
      無線電工程 2012年4期
      關(guān)鍵詞:控件引擎姿態(tài)

      朱利偉,李宇波,李輝芬,黃 瓊,孫 楠

      (中國衛(wèi)星海上測控部,江蘇江陰 214431)

      0 引言

      在進(jìn)行航天測量船海上測控工況設(shè)計(jì)時(shí),傳統(tǒng)的工況設(shè)計(jì)軟件計(jì)算結(jié)果不夠形象直觀,且程序版本和計(jì)算精度也不完全統(tǒng)一,不便于互相驗(yàn)證。為滿足后續(xù)試驗(yàn)任務(wù)需求,有必要研制一套試驗(yàn)任務(wù)模擬演示驗(yàn)證系統(tǒng),使用戶能夠?qū)教炱鞯娘w行狀態(tài)和測量船執(zhí)行任務(wù)的場景有直觀全面的了解,為決策指揮提供一定程度的可視化支持,為型號(hào)總體人員提供驗(yàn)證海上測控方案正確與否的平臺(tái),尤其可以對(duì)應(yīng)急工況的設(shè)計(jì)提供及時(shí)準(zhǔn)確的仿真驗(yàn)證手段。

      試驗(yàn)任務(wù)模擬演示驗(yàn)證系統(tǒng)包括試驗(yàn)任務(wù)工況設(shè)計(jì)軟件和模擬演示驗(yàn)證系統(tǒng)2個(gè)部分。其中試驗(yàn)任務(wù)工況設(shè)計(jì)軟件用于進(jìn)行海上測控任務(wù)的工況設(shè)計(jì),并以數(shù)據(jù)文件的形式輸出設(shè)計(jì)結(jié)果。模擬演示驗(yàn)證系統(tǒng)采用基于衛(wèi)生工具包軟件(Satellite Tool Kit,STK)的可視化平臺(tái)實(shí)現(xiàn)進(jìn)行設(shè)計(jì)開發(fā),用于仿真驗(yàn)證工況設(shè)計(jì)結(jié)果并向用戶提供試驗(yàn)任務(wù)過程的可視化支持。

      1 系統(tǒng)設(shè)計(jì)

      模擬演示驗(yàn)證系統(tǒng)利用STK軟件的STK/X嵌入式軟件開發(fā)技術(shù)實(shí)現(xiàn)。STK是美國分析圖形有限公司(Analytical Graphics Inc.,AGI)開發(fā)的航天領(lǐng)域中的商品化的衛(wèi)星系統(tǒng)仿真分析軟件[1,2]。STK/X是AGI公司使用4DX嵌入技術(shù)生成的STK整合模塊?;贠penGL技術(shù)的三維可視化技術(shù),可以逼真地再現(xiàn)空間視景環(huán)境、飛行器飛行姿態(tài)和關(guān)鍵動(dòng)作等。

      使用STK/X技術(shù)嵌入到程序中進(jìn)行開發(fā)設(shè)計(jì),需要掌握大量的STK Command操作命令接口,這為基于STX/X的程序開發(fā)帶來很大的困難。鑒于此,提出了開發(fā)STK/X操作驅(qū)動(dòng)引擎的設(shè)計(jì)思路。STK/X操作驅(qū)動(dòng)引擎的好處,就是它隱藏了幾乎所有復(fù)雜的STK Command操作命令,使程序開發(fā)者能夠更加專注于仿真演示驗(yàn)證系統(tǒng)軟件本身的設(shè)計(jì)開發(fā)。利用STK/X操作驅(qū)動(dòng)引擎方法,把模擬演示驗(yàn)證軟件分為4層,如圖1所示。

      圖1 程序設(shè)計(jì)分層結(jié)構(gòu)

      各層的主要功能及數(shù)據(jù)傳遞關(guān)系如下:

      ① 最底層是 STK/X嵌入控件,通過 STK Command命令接受上層輸入的指令和參數(shù),調(diào)用數(shù)據(jù)文件進(jìn)行仿真演示,并可以輸出STK計(jì)算的跟蹤性能,其二維和三維窗口可以實(shí)現(xiàn)圖形的顯示與實(shí)時(shí)刷新。

      ②第2層是驅(qū)動(dòng)引擎層,是任務(wù)開發(fā)中應(yīng)用STK/X技術(shù)的核心部分。驅(qū)動(dòng)引擎層向下使用STK Command命令,直接對(duì)STK控件和計(jì)算模塊進(jìn)行操作控制并傳遞數(shù)據(jù);向上提供標(biāo)準(zhǔn)的程序函數(shù)接口,使得上層的其他軟件開發(fā)人員可以不去關(guān)心STK Command操作的實(shí)現(xiàn)過程,只要調(diào)用普通函數(shù)接口就可以傳遞用戶操作和數(shù)據(jù);

      ③第3層是數(shù)據(jù)處理層,該層的作用是銜接用戶輸入和STK驅(qū)動(dòng)引擎。數(shù)據(jù)處理層接收用戶操作層獲取的操作和輸入的數(shù)據(jù),并對(duì)操作和數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,生成STK適用的指令和數(shù)據(jù)參數(shù),提供給驅(qū)動(dòng)引擎層使用;

      ④最上層是用戶操作層,提供程序和工況設(shè)計(jì)人員的接口。該層主要通過程序界面實(shí)現(xiàn)數(shù)據(jù)輸入檢查,對(duì)輸入操作響應(yīng),并向下一層傳遞操作和參數(shù)。

      2 需要解決的問題

      模擬演示驗(yàn)證系統(tǒng)軟件的分層設(shè)計(jì)把不同的功能分在不同的層次進(jìn)行設(shè)計(jì)開發(fā),每一層所涉及的開發(fā)技術(shù)都不相同。

      2.1 STK/X嵌入控件層和驅(qū)動(dòng)引擎層

      嵌入控件層的技術(shù)特點(diǎn)是對(duì)象嵌入式程序開發(fā),需解決STK/X控件技術(shù)。

      編寫驅(qū)動(dòng)引擎層需要掌握大量的STK Command操作命令,還需要建立必須的STK三維模型供STK三維窗口控件使用。操作命令可以通過STK軟件的Help文件查詢和學(xué)習(xí)掌握,該層需要解決的問題包括STK三維建模方法和STK三維模型的動(dòng)作控制方法。

      2.2 數(shù)據(jù)處理層和用戶操作層

      數(shù)據(jù)處理層實(shí)現(xiàn)工況設(shè)計(jì)用戶數(shù)據(jù)和STK數(shù)據(jù)之間的轉(zhuǎn)換。海上航天測控涉及的數(shù)據(jù)主要包括:任務(wù)總體參數(shù)、航天測量船工位參數(shù)、發(fā)射場工位參數(shù)、火箭彈道數(shù)據(jù)和衛(wèi)星軌道姿態(tài)數(shù)據(jù)等。其中火箭和衛(wèi)星的數(shù)據(jù)量大且較復(fù)雜,因此需要解決的問題包括火箭位置速度姿態(tài)的轉(zhuǎn)換和衛(wèi)星軌道姿態(tài)的轉(zhuǎn)換。

      用戶操作層的主要功能是向用戶提供程序操作界面以獲取用戶輸入的數(shù)據(jù)。根據(jù)STK所提供的對(duì)外接口的特點(diǎn),選擇Microsoft Visual C#進(jìn)行程序界面的設(shè)計(jì)開發(fā)。該層沒有需要解決的問題。

      3 關(guān)鍵技術(shù)

      3.1 STK/X控件技術(shù)

      STK/X主要使用AGI Map Control和AGI Globe Control 2個(gè)控件實(shí)現(xiàn)二維和三維界面的顯示和刷新,使用AgSTKXApplication完成在整個(gè)應(yīng)用程序生命周期對(duì)STK對(duì)象的管理和調(diào)度[3]。應(yīng)用STK/X控件技術(shù),用戶可以根據(jù)需要開發(fā)獨(dú)立的視景系統(tǒng),實(shí)現(xiàn)在不打開STK主程序的情況下使用STK的演示界面和計(jì)算函數(shù)庫,這使得開發(fā)模擬演示驗(yàn)證部分的軟件成為可能。

      3.2 STK三維建模技術(shù)

      STK演示界面最基本的對(duì)象是STK三維模型。要實(shí)現(xiàn)對(duì)STK對(duì)象的操作,首先就要建立STK模型。由于STK所使用的模型無法通過三維建模軟件直接建模,需要采用不同的方法間接獲得STK模型。

      STK模型文件采用.mdl格式,是一種利用文本描述語言定義的模型格式,易于學(xué)習(xí)和應(yīng)用。但由于文本編寫模型工作量大、效果不直觀等原因,很難使用文本工具直接編寫出復(fù)雜的STK三維模型。因此,需要采用其他三維模型軟件建立三維模型,再通過工具軟件轉(zhuǎn)換成為STK支持的.mdl模型格式。AGI公司官方發(fā)布的LwCoventer軟件可以把使用LightWave 軟件[4,5]建立的三維模型(.lwo 格式)直接轉(zhuǎn)換成.mdl模型使用。如果用其他三維軟件建立三維模型,可以考慮先用Deep Exploration軟件把三維模型轉(zhuǎn)換為.lwo格式,再用LwCoventer轉(zhuǎn)換為STK的.mdl格式。

      對(duì)于三維建模軟件不方便建立的模型信息,可以考慮先把模型轉(zhuǎn)換成.mdl格式后再用文本工具單獨(dú)編輯該部分。

      3.3 STK三維模型控制技術(shù)

      在STK控件提供的場景中使用三維模型可以實(shí)現(xiàn)三維對(duì)象飛行動(dòng)作的仿真演示,這就是STK的三維模型控制技術(shù)。

      由于STK三維模型使用的是文本描述語言,可以在語言中直接描述三維模型各部分之間的相對(duì)動(dòng)作以及模型本身相對(duì)三維空間的平移、縮放和旋轉(zhuǎn)等動(dòng)作。實(shí)現(xiàn)該功能需要編寫.**ma格式的動(dòng)作操作文件(火箭動(dòng)作文件格式.lvma,衛(wèi)星動(dòng)作文件格式.sama)。該功能的實(shí)現(xiàn)過程為:用戶輸入三維對(duì)象的動(dòng)作及時(shí)間節(jié)點(diǎn)(如輸入在120 s衛(wèi)星太陽帆板開始展開);數(shù)據(jù)處理層把該輸入轉(zhuǎn)換為驅(qū)動(dòng)引擎層需要的輸入數(shù)據(jù)并通過函數(shù)接口傳遞給驅(qū)動(dòng)引擎層;驅(qū)動(dòng)引擎層編寫.**ma動(dòng)作文件,并通過STK Command命令使STK加載該文件,實(shí)現(xiàn)三維模型的動(dòng)作過程。

      3.4 火箭位置速度姿態(tài)的轉(zhuǎn)換

      在試驗(yàn)任務(wù)中彈道文件提供了火箭在發(fā)射坐標(biāo)系中的位置(x、y、z)和速度 (Vx、Vy、Vz),需要把它轉(zhuǎn)換到STK所需的地心固連系的位置速度,并編寫STK彈道(STK數(shù)據(jù)文件,.e格式)。火箭在發(fā)射坐標(biāo)系的位置轉(zhuǎn)換為地心固連系的位置可采用先旋轉(zhuǎn)、再平移的方法。根據(jù)發(fā)射方位角把火箭在發(fā)射坐標(biāo)系的坐標(biāo)轉(zhuǎn)換到測量坐標(biāo)系,再根據(jù)發(fā)射點(diǎn)的經(jīng)緯度從測量坐標(biāo)系轉(zhuǎn)換到地心固連系;將坐標(biāo)系原點(diǎn)從發(fā)射點(diǎn)平移至地心。發(fā)射點(diǎn)的經(jīng)度、緯度、高程(L、B、H)[6,7]轉(zhuǎn)換為地心固連系公式如下:

      彈道文件還提供了發(fā)射坐標(biāo)系的火箭姿態(tài)數(shù)據(jù),可以采用以下3種方法轉(zhuǎn)換成STK姿態(tài)文件:

      ①可以把火箭軌道參數(shù)中給出的火箭相對(duì)發(fā)射坐標(biāo)系俯仰、偏航和滾轉(zhuǎn)角轉(zhuǎn)換到地固系。轉(zhuǎn)換后的表示形式可以用四元素或者歐拉角表示;

      ②可以把火箭軌道參數(shù)中給出的火箭的攻角和側(cè)滑角轉(zhuǎn)換為地固系中的火箭姿態(tài),這種方法計(jì)算簡便,但由于文件中沒有給出火箭滾動(dòng)的數(shù)據(jù)信息,此方法計(jì)算的火箭姿態(tài)不能顯示滾動(dòng)情況;

      ③在發(fā)射工位建立發(fā)射坐標(biāo)系,可以利用直接編寫.a格式的發(fā)射系火箭姿態(tài)文件。

      利用STKCommand命令載入彈道和姿態(tài)文件,可實(shí)現(xiàn)火箭在STK場景里的飛行仿真。

      3.5 衛(wèi)星軌道姿態(tài)的轉(zhuǎn)換

      目前任務(wù)中衛(wèi)星的軌道一般以軌道六要素的形式給出。STK可以直接接受軌道六要素的輸入,仿真生成衛(wèi)星軌道。因此,可以直接在驅(qū)動(dòng)引擎層編寫輸入衛(wèi)星軌道的STK Command命令實(shí)現(xiàn)衛(wèi)星軌道的仿真。

      對(duì)于衛(wèi)星姿態(tài),目前的總體文件中沒有給出詳細(xì)的數(shù)據(jù)供使用。因此,需要通過仿真獲取衛(wèi)星的姿態(tài)數(shù)據(jù),生成衛(wèi)星姿態(tài)數(shù)據(jù)文件,再通過驅(qū)動(dòng)引擎層加載姿態(tài)文件實(shí)現(xiàn)衛(wèi)星姿態(tài)仿真演示。

      衛(wèi)星姿態(tài)文件的數(shù)據(jù)以姿態(tài)角的格式給出,當(dāng)取313轉(zhuǎn)序[8]時(shí)的計(jì)算方法如下:

      式中,θx為313 轉(zhuǎn)序下的 3 個(gè)歐拉角;ωx、ωy、ωz為衛(wèi)星繞3軸轉(zhuǎn)動(dòng)的角速度。

      衛(wèi)星建立對(duì)日定向姿態(tài)的判斷可以通過衛(wèi)星太陽帆板的法向和衛(wèi)星對(duì)太陽矢量的夾角來實(shí)現(xiàn),當(dāng)2個(gè)矢量夾角為0°(方向重合)時(shí)即實(shí)現(xiàn)對(duì)日定向。設(shè)太陽在慣性系中的矢量為,衛(wèi)星太陽帆板法向在體坐標(biāo)系的向量為[ ]= 0 0 1T,如采用式(3)中的313轉(zhuǎn)序歐拉角,則轉(zhuǎn)化為地心慣性系公式為:

      計(jì)算二者夾角余弦值Cz,sun為:

      當(dāng)Cz,sun=-1時(shí),表示衛(wèi)星-Z軸對(duì)準(zhǔn)太陽。

      用以上方法仿真計(jì)算某衛(wèi)星入軌后建立對(duì)日定向姿態(tài)的過程,衛(wèi)星體坐標(biāo)系z軸與太陽的方向夾角余弦隨時(shí)間的變化關(guān)系如圖2所示。

      圖2 衛(wèi)星入軌后z軸與太陽方向關(guān)系

      4 結(jié)束語

      試驗(yàn)任務(wù)模擬演示驗(yàn)證系統(tǒng)的實(shí)現(xiàn),使工況設(shè)計(jì)擁有了形象化手段和演示驗(yàn)證工具,能夠?yàn)闆Q策指揮提供一定程度的可視化支持,在海上航天測控任務(wù)中具有重要的應(yīng)用價(jià)值。同時(shí),基于驅(qū)動(dòng)引擎的分層設(shè)計(jì)思想為其他項(xiàng)目的開發(fā)也具有很好的借鑒意義?!?/p>

      [1]黃 潔.VC和STK集成的途徑及其在仿真中的應(yīng)用[J].計(jì)算機(jī)仿真,2007(24):291 -294.

      [2]STK User's Manual Version 4.2.1.Analytical Graphics INC(AGI)[S],2000.

      [3]Analytical Graphics Inc.STK/X Help.U.S.A.,Analytical Graphics Inc.[S],2004.

      [4]黃 劍.Light Wave7.5高級(jí)實(shí)例教程[M].北京:中國電力出版社,2003.

      [5]劉光明.基于多種軟件平臺(tái)的衛(wèi)星動(dòng)力學(xué)仿真研究[J].系統(tǒng)仿真學(xué)報(bào),2007(19):308 -311.

      [6]孔祥元.大地測量學(xué)基礎(chǔ)[M].武漢:武漢大學(xué)出版社,2006.

      [7]邊少鋒.大地坐標(biāo)系與大地基準(zhǔn)[M].北京:國防工業(yè)出版社,2005.

      [8]章仁為.衛(wèi)星軌道姿態(tài)動(dòng)力學(xué)與控制[M].北京:北京航空航天大學(xué)出版社,1998.

      猜你喜歡
      控件引擎姿態(tài)
      攀爬的姿態(tài)
      全新一代宋的新姿態(tài)
      汽車觀察(2018年9期)2018-10-23 05:46:40
      跑與走的姿態(tài)
      中國自行車(2018年8期)2018-09-26 06:53:44
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      藍(lán)谷: “涉藍(lán)”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      基于Cocos2d引擎的PuzzleGame開發(fā)
      就這樣玩會(huì)VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      閱讀是最美的姿態(tài)
      One?。牛睿纾椋睿濉。蹋澹妫糁皇O乱粋€(gè)引擎
      胶州市| 托克逊县| 东平县| 巴楚县| 阿荣旗| 大厂| 呼伦贝尔市| 罗田县| 本溪| 遂宁市| 博罗县| 洪洞县| 新巴尔虎右旗| 青田县| 马山县| 应用必备| 汉沽区| 固原市| 娄烦县| 区。| 城口县| 桐柏县| 玉林市| 昭通市| 广宁县| 大邑县| 色达县| 横峰县| 教育| 陇川县| 德清县| 新疆| 旬邑县| 西平县| 江阴市| 札达县| 洞头县| 双江| 始兴县| 东乡县| 九龙县|