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

?

基于STK引擎的星載遙感器對地觀測仿真軟件設(shè)計

2016-10-21 15:32:12李遂賢張曉
電子技術(shù)與軟件工程 2016年9期

李遂賢 張曉

【關(guān)鍵詞】STK(Satellite Tool Kit) 軟件二次開發(fā) 衛(wèi)星可見分析 姿態(tài)仿真

1 引言

在開發(fā)衛(wèi)星在軌仿真的軟件項目時,開發(fā)團隊不僅要對衛(wèi)星本身作詳盡仿真,而且需要完整地掌握航天領(lǐng)域的其它高級專業(yè)知識和天體運動的理論知識,同時在軟件可視化仿真方面也面臨著巨大的挑戰(zhàn)。STK的全稱是Satellite Tool Kit(衛(wèi)星仿真工具包),是由美國AGI公司開發(fā),是航空航天領(lǐng)域一個功能強大的大型仿真平臺,并且隨著其版本變化其功能得到不斷地增強和擴展。目前為止,STK航天工業(yè)領(lǐng)域中仍然是處于領(lǐng)先地位衛(wèi)星系統(tǒng)分析軟件,利用它可以快速方便地分析航天任務(wù)中各種錯綜復雜的情況,并能以形象直觀的三維場景真實地再現(xiàn)空間目標整個壽命周期的運行情況。但STK軟件自成體系,和其它軟件交互數(shù)據(jù)、軟件界面的靈活性往往不能適合項目需求。

從國內(nèi)近年發(fā)表的航空航天領(lǐng)域關(guān)于STK二次開發(fā)仿真軟件設(shè)計的文獻看,多注重于STK功能實現(xiàn)本身,關(guān)于二次開發(fā)軟件設(shè)計實現(xiàn)的內(nèi)容較少,并且局限于VC6.0和Matlab開發(fā)環(huán)境,雖然可以查閱STK的英文幫助文檔,但難以在短時間對STK的二次開發(fā)有較為全面的理解和快速高效開發(fā)。

在自主開發(fā)的軟件中嵌入STK,把STK作為衛(wèi)星在軌仿真的計算引擎和三維可視化引擎,是一個可行的技術(shù)途徑。本文以介紹VS2008為開發(fā)平臺,介紹利用STK二次開發(fā)實現(xiàn)衛(wèi)星在軌可視化仿真軟件的實現(xiàn)方法,在此基礎(chǔ)上,給出了在軌衛(wèi)星的可見性分析和姿態(tài)仿真的軟件設(shè)計方法和仿真軟件的運行結(jié)果。

2 STK二次開發(fā)仿真技術(shù)基礎(chǔ)

2.1 通過STK二次開發(fā)實現(xiàn)仿真任務(wù)的技術(shù)選用

通過STK可以實現(xiàn)的任務(wù)可以分為五類,分別為自動化重復性任務(wù)、和其它程序集成、擴展AGI插件和用戶接口定制、開發(fā)定制應(yīng)用程序、實時數(shù)據(jù)處理。

2.1.1 實現(xiàn)自動化重復性任務(wù)

可以利用HTML、Connect和STK Object建立鏈接STK功能組件的工具,或者用遠程工具驅(qū)動STK,如按鈕工具、COM接口、命令行或批處理文件向STK發(fā)送Connect命令也可實現(xiàn)自動化重復性任務(wù)。

2.1.2 和其它應(yīng)用程序集成

STK和其它程序的接口有多種形式可供選擇,具體接口形式的選擇取決于任務(wù)的類型。任務(wù)涉及僅僅是分析,還是既涉及分析又涉及可視化,抑或是可視化回放,可選用的客戶端程序不同。客戶端應(yīng)用程序幾種具體形式為:MATLAB, 自定義程序, MS Office,瀏覽器等,STK系統(tǒng)內(nèi)部預置有用戶采用的開發(fā)環(huán)境所必備的程序接口,如STK MATLAB接口、COM接口、視景控件(the Viewer Control)和視景應(yīng)用對象模型(Viewer Application object models),以及數(shù)量眾多的不同的Connect庫等。

2.1.3 擴展AGI插件擴展和用戶接口定制

AGI在產(chǎn)品擴展上為用戶提供了多種途徑??蓴U展機制可以分劃分為兩個方面:用戶接口可擴展和計算引擎可擴展。用戶接口可擴展指的是允許用戶為STK定制圖形用戶界面(GUI)和控件,提供用戶自定義的工作流程,從而使程序綁定STK程序的功能;計算引擎可擴展性選項是指STK引擎插件允許用戶僅定制模型中非通用部分,而對通用部分則借力于現(xiàn)成商務(wù)軟件(COTS software),即STK本身。

插件的優(yōu)點至少包含兩方面內(nèi)容。首先,寫一個高可信度的軟件組件對大多數(shù)用戶有難度。當然,最佳的情形是軟件具備高可信度模型可以使用。AGI不斷提高產(chǎn)品的可信度和可靠性持續(xù)改進產(chǎn)品,但其產(chǎn)品的開發(fā)基礎(chǔ)往往在于聚焦通用功能,從而覆蓋大多數(shù)用戶需求。就問題產(chǎn)生的性質(zhì)來說,更高可信度模型的非通用應(yīng)用功能需求,僅可能在少數(shù)高級用戶中存在。其次,總體說來,一個模型的非通用部分的范圍很窄,因而大部分可以利用現(xiàn)有的通用模型。當然,如果定制軟件部分的價格同時也包含了所有通用部分的費用,用戶可以自己開發(fā)整個軟件,但必須經(jīng)過不斷地測試、維護、改進和升級才能滿足變化的需求。

2.1.4 開發(fā)定制程序

STK引擎可以為用戶開發(fā)定制程序使用,STK用戶界面不需要出現(xiàn),允許用戶使用自己的接口將STK功能嵌入到程序中。

2.1.5 RT3數(shù)據(jù)實時處理

STK桌面應(yīng)用和STK引擎定制程序的一個共性任務(wù)是對實時處理輸入的數(shù)據(jù)。AGI公司的RT3擴展軟件為向STK輸入實時數(shù)據(jù)的輸入提供了框架。為簡化實時輸入數(shù)據(jù)的處理,可用直接使用STK對象模型(STK Object Model)。

RT3開發(fā)SDK包括應(yīng)用編程接口API、文檔,以及一套例子代碼文件。RT3 SDK可通過自定義數(shù)據(jù)輸入接口增強RT3拓展軟件的功能,使數(shù)據(jù)處理專業(yè)化,并可預先設(shè)置顯示參數(shù)。RT3 SDK還能用來分析和處理STK引擎程序以及來自AGI公司的軟件部件產(chǎn)品線的類庫的輸入數(shù)據(jù)。在用戶開發(fā)的程序中使用RT3需要購買用戶許可證書。如果已經(jīng)安裝了RT3,RT3 SDK可從這里看到:Start > Programs > AGI > RT3。

2.2 利用STK引擎開發(fā)應(yīng)用軟件

STK為開發(fā)各種應(yīng)用軟件提供了兩類核心庫,分別是STK Object Model和Connect。通過這兩個核心庫,可以在用戶自己開發(fā)的軟件中改變STK場景和參數(shù)配置。由于兩者在基于STK二次開發(fā)軟件中涉及的最多,下面分別對兩者作簡要介紹。

2.2.1 使用STK Object Model核心庫

STK對象模型(STK Object Model)是一個COM庫集,包括STK Objects、STK X、STK Util,、STK ESRI Display、STK Vector Geometry Tool、和STK Astrogator等COM庫,涵蓋數(shù)據(jù)類型、接口、事件和表示各種STK應(yīng)用程序結(jié)構(gòu)的類。通過這些類庫,使得開發(fā)基于STK和STK引擎定制程序變得簡而易行。各種組件提供的開發(fā)工具對STK對象實現(xiàn)自動化控制,并在整個生命周期內(nèi)實現(xiàn)對STK對象的管理,通過數(shù)據(jù)提供工具(data provider),執(zhí)行可見性和覆蓋計算,并對STK發(fā)出的事件做出響應(yīng)。由于STK Object Model是建立在微軟組建對象(COM)技術(shù)之上的,因此STK Object Model可用于支持COM標準的任何自動化程序開發(fā)環(huán)境。常見的開發(fā)環(huán)境包括inc .Net (Visual Basic, Visual C#, etc.), Java, Visual C++, PowerPoint, Excel, Access,以及支持COM后綁定的腳本語言。在STK桌面應(yīng)用程序和對STK X作為引擎的兩種情況下,均可使用STK對象模型。

2.2.2 使用Connect核心庫

Connect 模塊為CS模式連接STK提供一個簡單的途徑。用第三方程序調(diào)用Connect核心庫的函數(shù)、常量和各種消息,可建立和STK的通信連接。Connect允許重寫標準消息和通知,用自己的消息格式實現(xiàn)和第三方軟件的兼容,所以利用Connect對STK實現(xiàn)二次開發(fā)的程序有很好的消息環(huán)境。

在實時性上,通過Connect實現(xiàn)STK和3D圖形通信,可實現(xiàn)事件的可視化實時仿真實現(xiàn)。舉例來說,用Connect在發(fā)射和早期軌道階段可注入實時的遙測數(shù)據(jù),在2D和3D場景中可以對該任務(wù)實現(xiàn)可視化實時化仿真,協(xié)助任務(wù)執(zhí)行人員理解和解決在發(fā)射階段可能發(fā)生的問題。

2.3 STK Connect模塊的使用

由于Connect提供了外部控件和STK交互的機制,在航天仿真應(yīng)用程序的開發(fā)中應(yīng)用很廣。在外部調(diào)用STK的應(yīng)用程序中,其工作機制的要點在于:在外部程序中向STK發(fā)送Connect命令實現(xiàn)和STK的交互。通過外部程序或者HTML網(wǎng)頁發(fā)送Connect命令和STK交互,可采用兩種方式:其一,通過TP/ICP鏈接經(jīng)指定端口發(fā)送Connect命令,STK默認的端口為5001,當然通過Edit->Preferences菜單可修改Connect的默認參數(shù);其二,通過COM接口向STK發(fā)送命令,這種情況下不必通過通信網(wǎng)絡(luò)端口實現(xiàn)。需要注意的是,COM無法支持異步Connect命令。

在STK9.X中,在相應(yīng)的安裝目錄下,有支持多種語言開發(fā)環(huán)境的例程可供參考,這些例程已經(jīng)完成了外部程序?qū)TK二次開發(fā)的軟件環(huán)境的搭建。開發(fā)者在基本例程框架的基礎(chǔ)上,可實現(xiàn)基于STK二次開發(fā)的對仿真軟件實現(xiàn)。支持STK9.X二次開發(fā)的環(huán)境有C++/C++CLI/CSharp/HTML/Java/Matlab/ PowerPoint/Vb.net,在STK系統(tǒng)安裝文件夾下,分別由這幾種語言下的二次開發(fā)例程。其中,CSharp/java/Matlab的例程較多,對CSharp而言,VS2008下有24個例程,涉及到航空航天仿真的許多方面,從簡單易行角度這幾種語言不失為首選。但C++語言的實時性最好,結(jié)合文件夾下部署的例程和豐富的Connect Api,可以開發(fā)出功能強大的航空航天仿真應(yīng)用軟件。

3 基于VS2008/MFC平臺的STK二次開發(fā)

3.1 仿真軟件實現(xiàn)

在VS2008/MFC平臺下進行STK二次開發(fā)的開發(fā)步驟為:開發(fā)環(huán)境搭建、用戶界面設(shè)計、通過MFC用戶界面發(fā)送Connect接口指令驅(qū)動STK引擎、將STK計算結(jié)果和仿真可視化結(jié)果在用戶界面展示和結(jié)果文件存盤等,本文結(jié)合STK的給定的例程說明。

3.1.1 開發(fā)環(huán)境搭建

STK9.X的C++例程是基于MFC的對話框程序,在該MFC例程框架下,已經(jīng)完成了STK系統(tǒng)的2D和VO控件的添加以及和STK引擎交互的支撐文件的配置。在例程的工程文件中,包含了通過MFC和STK交互的基本文件和函數(shù)。具體可仔細研究閱讀程序代碼。

3.1.2 用戶界面設(shè)計

在例程的MFC對話框界面中,已經(jīng)具備了少量功能簡單的控件和STK的二維地圖和三維地球控件,利用MFC完備的功能通過各種控件的綜合設(shè)計,可達到符合設(shè)計要求的結(jié)果。圖1為本文在軌衛(wèi)星可見分析和姿態(tài)仿真的界面設(shè)計,圖2為衛(wèi)星和仿真場景參數(shù)輸入界面,圖3為地面觀測目標參數(shù)的錄入界面。

3.1.3 Connect接口指令發(fā)送驅(qū)動軟件運行

在MFC平臺下向STK發(fā)送命令的函數(shù)為:m_VOControl.GetApplication().ExecuteCommand("Connect_Command"),其中m_VOControl為三維地球可視控件變量,所有Connect命令均通過該方法發(fā)送至STK引擎,“Connect_Command”指Connect命令,可通過SDK獲得,并以符合系統(tǒng)要求的格式作為發(fā)送的命令字符串。STK在接到Connect命令后,執(zhí)行相應(yīng)的計算并將計算結(jié)果返回或者生成結(jié)果報告存盤;同時在2D和VO空間中進行二維和三維可視化仿真顯示。

3.2 軟件運行結(jié)果

圖4給出了在VS2008下利用MFC開發(fā)的在軌衛(wèi)星的可見性分析和姿態(tài)仿真仿真軟件的運行結(jié)果;圖5為條帶目標下,在軌衛(wèi)星的可見弧段的可視化顯示結(jié)果;圖6為在軌衛(wèi)星仿真的姿態(tài)計算結(jié)果。同時,該軟件還可仿真結(jié)果輸出為文本文件存入磁盤,以備后續(xù)的仿真讀取。

4 結(jié)論和展望

通過對在軌衛(wèi)星的可見性和姿態(tài)仿真軟件的開發(fā)可以看出,在熟悉MFC程序框架、STK Connect接口指令系統(tǒng)和STK的專業(yè)仿真功能的基礎(chǔ)上,在微軟

公司的VS2008平臺下對STK進行二次開發(fā)可完成較為復雜的航空航天仿真任務(wù)。后續(xù)的衛(wèi)星在軌軟件研制中,將對RT3實時數(shù)據(jù)仿真方法進行研究,以適應(yīng)遙測數(shù)據(jù)作為衛(wèi)星在軌仿真輸入下的實時數(shù)據(jù)處理情形。

參考文獻

[1]丁王達,邱曉剛,黃柯棣.基于STK-RTI中間件的天地一體作戰(zhàn)建模仿真研究[J].系統(tǒng)仿真學報,2005,17(02).

[2] 郭偉民,趙新國,曹延華.基于STK的微小衛(wèi)星姿態(tài)控制可視化演示與驗證[J].系統(tǒng)仿真學報,2008,20(z1).

[3]屈亭,皮亦鳴,曹宗杰.基于STK/Matlab的GPS衛(wèi)星可見性仿真分析[J].科學技術(shù)與工程,2009,9(13).

[4]杜耀珂.基于STK的衛(wèi)星實時視景仿真系統(tǒng)設(shè)計[J].空間控制技術(shù)與應(yīng)用,2009,35(02).

[5]胡偉.基于STK二次開發(fā)的全球?qū)Ш叫亲渴鹧芯縖J].系統(tǒng)仿真學報,2008,20(23).

[6]李峰,彭會湘,王京京.基于STK的衛(wèi)星入軌主動段仿真顯示設(shè)計[J].計算機與網(wǎng)絡(luò),2013,39(02).

[7]李峰,齊志國,王永安.設(shè)計模式在STK二次開發(fā)接口封裝中的應(yīng)用[J].計算機與網(wǎng)絡(luò),2013,39(03).

[8]張智海,廖學軍,高永明.基于HLA與STK的空間軌道快速攔截模型設(shè)計與仿真[J].系統(tǒng)仿真學報,2013,25(10).

[9]杜寧,周連文,季誠勝等.熒火一號火星探測器姿控平臺驗證演示技術(shù)[J].上海航天,2013,30(4).

[10]STK Software Development Kit,AGI,www.agi.co.

新化县| 同德县| 凤城市| 赤峰市| 金沙县| 县级市| 交城县| 诸暨市| 全州县| 富川| 卢氏县| 基隆市| 阿拉善左旗| 广西| 泗洪县| 田阳县| 马关县| 大竹县| 广汉市| 龙门县| 凤凰县| 调兵山市| 涿鹿县| 酉阳| 灵山县| 保德县| 邮箱| 固原市| 犍为县| 曲阳县| 乐山市| 抚远县| 象州县| 喀喇| 彰武县| 焦作市| 乐山市| 灵山县| 平邑县| 合江县| 开封县|