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

?

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

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

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

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

0 引言

在進(jìn)行航天測(cè)量船海上測(cè)控工況設(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),使用戶(hù)能夠?qū)教炱鞯娘w行狀態(tài)和測(cè)量船執(zhí)行任務(wù)的場(chǎng)景有直觀全面的了解,為決策指揮提供一定程度的可視化支持,為型號(hào)總體人員提供驗(yàn)證海上測(cè)控方案正確與否的平臺(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)行海上測(cè)控任務(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ì)開(kāi)發(fā),用于仿真驗(yàn)證工況設(shè)計(jì)結(jié)果并向用戶(hù)提供試驗(yàn)任務(wù)過(guò)程的可視化支持。

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

模擬演示驗(yàn)證系統(tǒng)利用STK軟件的STK/X嵌入式軟件開(kāi)發(fā)技術(shù)實(shí)現(xiàn)。STK是美國(guó)分析圖形有限公司(Analytical Graphics Inc.,AGI)開(kāi)發(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)行開(kāi)發(fā)設(shè)計(jì),需要掌握大量的STK Command操作命令接口,這為基于STX/X的程序開(kāi)發(fā)帶來(lái)很大的困難。鑒于此,提出了開(kāi)發(fā)STK/X操作驅(qū)動(dòng)引擎的設(shè)計(jì)思路。STK/X操作驅(qū)動(dòng)引擎的好處,就是它隱藏了幾乎所有復(fù)雜的STK Command操作命令,使程序開(kāi)發(fā)者能夠更加專(zhuān)注于仿真演示驗(yàn)證系統(tǒng)軟件本身的設(shè)計(jì)開(kāi)發(fā)。利用STK/X操作驅(qū)動(dòng)引擎方法,把模擬演示驗(yàn)證軟件分為4層,如圖1所示。

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

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

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

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

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

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

2 需要解決的問(wèn)題

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

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

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

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

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

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

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

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ù),用戶(hù)可以根據(jù)需要開(kāi)發(fā)獨(dú)立的視景系統(tǒng),實(shí)現(xiàn)在不打開(kāi)STK主程序的情況下使用STK的演示界面和計(jì)算函數(shù)庫(kù),這使得開(kāi)發(fā)模擬演示驗(yàn)證部分的軟件成為可能。

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

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

STK模型文件采用.mdl格式,是一種利用文本描述語(yǔ)言定義的模型格式,易于學(xué)習(xí)和應(yīng)用。但由于文本編寫(xiě)模型工作量大、效果不直觀等原因,很難使用文本工具直接編寫(xiě)出復(fù)雜的STK三維模型。因此,需要采用其他三維模型軟件建立三維模型,再通過(guò)工具軟件轉(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控件提供的場(chǎng)景中使用三維模型可以實(shí)現(xiàn)三維對(duì)象飛行動(dòng)作的仿真演示,這就是STK的三維模型控制技術(shù)。

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

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

在試驗(yàn)任務(wù)中彈道文件提供了火箭在發(fā)射坐標(biāo)系中的位置(x、y、z)和速度 (Vx、Vy、Vz),需要把它轉(zhuǎn)換到STK所需的地心固連系的位置速度,并編寫(xiě)STK彈道(STK數(shù)據(jù)文件,.e格式)?;鸺诎l(fā)射坐標(biāo)系的位置轉(zhuǎn)換為地心固連系的位置可采用先旋轉(zhuǎn)、再平移的方法。根據(jù)發(fā)射方位角把火箭在發(fā)射坐標(biāo)系的坐標(biāo)轉(zhuǎn)換到測(cè)量坐標(biāo)系,再根據(jù)發(fā)射點(diǎn)的經(jīng)緯度從測(cè)量坐標(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ì)算簡(jiǎn)便,但由于文件中沒(méi)有給出火箭滾動(dòng)的數(shù)據(jù)信息,此方法計(jì)算的火箭姿態(tài)不能顯示滾動(dòng)情況;

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

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

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

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

對(duì)于衛(wèi)星姿態(tài),目前的總體文件中沒(méi)有給出詳細(xì)的數(shù)據(jù)供使用。因此,需要通過(guò)仿真獲取衛(wèi)星的姿態(tài)數(shù)據(jù),生成衛(wèi)星姿態(tài)數(shù)據(jù)文件,再通過(guò)驅(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)的判斷可以通過(guò)衛(wèi)星太陽(yáng)帆板的法向和衛(wèi)星對(duì)太陽(yáng)矢量的夾角來(lái)實(shí)現(xiàn),當(dāng)2個(gè)矢量夾角為0°(方向重合)時(shí)即實(shí)現(xiàn)對(duì)日定向。設(shè)太陽(yáng)在慣性系中的矢量為,衛(wèi)星太陽(yáng)帆板法向在體坐標(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)太陽(yáng)。

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

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

4 結(jié)束語(yǔ)

試驗(yàn)任務(wù)模擬演示驗(yàn)證系統(tǒng)的實(shí)現(xiàn),使工況設(shè)計(jì)擁有了形象化手段和演示驗(yàn)證工具,能夠?yàn)闆Q策指揮提供一定程度的可視化支持,在海上航天測(cè)控任務(wù)中具有重要的應(yīng)用價(jià)值。同時(shí),基于驅(qū)動(dòng)引擎的分層設(shè)計(jì)思想為其他項(xiàng)目的開(kāi)發(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].北京:中國(guó)電力出版社,2003.

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

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

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

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

猜你喜歡
控件引擎姿態(tài)
新海珠,新引擎,新活力!
基于.net的用戶(hù)定義驗(yàn)證控件的應(yīng)用分析
攀爬的姿態(tài)
全新一代宋的新姿態(tài)
跑與走的姿態(tài)
關(guān)于.net控件數(shù)組的探討
三生 三大引擎齊發(fā)力
藍(lán)谷: “涉藍(lán)”新引擎
基于嵌入式MINIGUI控件子類(lèi)化技術(shù)的深入研究與應(yīng)用
閱讀是最美的姿態(tài)
乌鲁木齐县| 确山县| 福鼎市| 雷州市| 罗甸县| 通海县| 凤凰县| 大城县| 隆子县| 宜州市| 友谊县| 定日县| 彰化市| 长顺县| 通州市| 大悟县| 双流县| 额敏县| 浮梁县| 汪清县| 翁源县| 宜州市| 丰城市| 监利县| 盐亭县| 蛟河市| 舒兰市| 甘泉县| 綦江县| 万安县| 石城县| 葫芦岛市| 虎林市| 昌乐县| 榕江县| 响水县| 麻江县| 固原市| 高平市| 青冈县| 龙井市|