陳歡歡, 桑 毅, 張 鵬,2*, 吳洪成, 王吉旭
1. 中國空間技術(shù)研究院杭州中心, 杭州 310024
2. 北京控制工程研究所, 北京 100094
衛(wèi)星是一類涉及機(jī)、電、光和熱等多學(xué)科的典型復(fù)雜對象[1].傳統(tǒng)的仿真軟件只支持特定的領(lǐng)域模型,為了研究多因素耦合下的衛(wèi)星運(yùn)行場景,驗(yàn)證系統(tǒng)設(shè)計(jì)的合理性,需要將衛(wèi)星運(yùn)行涉及的多學(xué)科仿真模型集成到同一環(huán)境下進(jìn)行聯(lián)合仿真,但這些仿真模型通常來源于不同的建模仿真工具,由于工具之間的接口不統(tǒng)一,各專業(yè)工具構(gòu)建的模型不能有效地集成到統(tǒng)一的仿真工具中進(jìn)行聯(lián)合仿真,導(dǎo)致模型重復(fù)設(shè)計(jì)與開發(fā),不僅耗時(shí)耗力而且系統(tǒng)的驗(yàn)證效率也較低[2].因此,亟需一種標(biāo)準(zhǔn)的數(shù)據(jù)交換接口,來解決仿真模型接口不兼容的問題.
為解決上述問題,2010年1月Modelisar協(xié)會(huì)推出了一種獨(dú)立于仿真工具的FMI (functional mock-up interface)接口標(biāo)準(zhǔn)[3-4].依據(jù)該標(biāo)準(zhǔn),各仿真工具只需將各自搭建的模型按照FMI標(biāo)準(zhǔn)導(dǎo)出成FMU(functional mock-up unit),便可實(shí)現(xiàn)在任意支持FMI標(biāo)準(zhǔn)的仿真工具中進(jìn)行聯(lián)合仿真的目的,從而能夠有效利用不同仿真工具及其專業(yè)模型庫的優(yōu)勢,克服復(fù)雜對象仿真過程中多源模型難以實(shí)現(xiàn)數(shù)據(jù)交互的難題,使多源模型在統(tǒng)一的仿真引擎下運(yùn)行成為可能[5-7].
目前已有眾多廠商開始在自己的工具平臺(tái)上支持FMI模型的導(dǎo)出,如:Simulink、SimulationX、AMESim和MWorks等[2-8].其中,Simulink是美國Mathworks公司推出的一款可視化仿真工具,其特點(diǎn)是模型以可視化圖形塊的形式存在,且相互之間通過輸入輸出端口進(jìn)行數(shù)據(jù)交互,由于避免了代碼編寫,僅通過連線方式,就可快速地構(gòu)造出復(fù)雜的系統(tǒng),因而顯著地降低了系統(tǒng)仿真的門檻,目前被廣泛用于汽車、工業(yè)控制、航空航天和電力系統(tǒng)等領(lǐng)域[8].SimulationX是德國ITI公司開發(fā)的多學(xué)科建模仿真平臺(tái),內(nèi)部集成有強(qiáng)大的標(biāo)準(zhǔn)模型庫,支持Modelica標(biāo)準(zhǔn)以及CAD文件導(dǎo)入等功能,可以直接驅(qū)動(dòng)場景中的三維機(jī)械結(jié)構(gòu)進(jìn)行運(yùn)動(dòng)仿真,該軟件在研究完整的動(dòng)作執(zhí)行過程方面具有顯著優(yōu)勢,經(jīng)過多年的迭代發(fā)展,該仿真平臺(tái)在機(jī)械、石油、能源和車輛等領(lǐng)域得到了大量應(yīng)用.AMESim是德國西門子旗下的一款多學(xué)科復(fù)雜系統(tǒng)建模仿真平臺(tái),廣泛應(yīng)用在液壓、機(jī)電、冷卻和制動(dòng)等系統(tǒng)中,其仿真平臺(tái)的最大特點(diǎn)是基于因果關(guān)系建模,只有符合匹配關(guān)系的2個(gè)模型才能實(shí)現(xiàn)正確連接,否則將無法連通,因此在該平臺(tái)上搭建的求解模型錯(cuò)誤率較低,另外由于在仿真過程中規(guī)定了每個(gè)模型的仿真任務(wù),一旦仿真出錯(cuò),可以基于因果關(guān)系,快速定位到故障點(diǎn),這對于一些大型復(fù)雜系統(tǒng)的仿真而言,在提升仿真效率方面具有顯著優(yōu)勢.MWorks是中國蘇州同元公司基于Modelica語言開發(fā)的一款多學(xué)科仿真平臺(tái),可實(shí)現(xiàn)對機(jī)、電、液和控等領(lǐng)域的模型進(jìn)行聯(lián)合仿真,支持復(fù)雜裝備全生命周期的開發(fā),其產(chǎn)品功能涵蓋:系統(tǒng)設(shè)計(jì)、仿真驗(yàn)證、模型集成、虛擬測試和協(xié)同仿真等環(huán)節(jié),已在大飛機(jī)、空間站、航空發(fā)動(dòng)機(jī)和船舶動(dòng)力等領(lǐng)域展開了相關(guān)應(yīng)用.總的來說,上述軟件所包含的模型庫主要由單一功能的數(shù)學(xué)計(jì)算模塊組成,對于衛(wèi)星系統(tǒng)這類復(fù)雜對象模型的構(gòu)建及集成,依賴較強(qiáng)的專業(yè)知識(shí),需要耗費(fèi)大量的時(shí)間和人力[9-12].因此將衛(wèi)星部件模型采用標(biāo)準(zhǔn)化接口進(jìn)行封裝并開發(fā)配套的仿真工具套件,是解決衛(wèi)星部件模型復(fù)用性不高及仿真開發(fā)效率低的有效手段[13-15].
針對含多領(lǐng)域模型的衛(wèi)星仿真問題,本文基于FMI接口標(biāo)準(zhǔn)和模型復(fù)用技術(shù),構(gòu)建了一個(gè)能夠支持衛(wèi)星數(shù)字仿真的工具體系架構(gòu),在此基礎(chǔ)上,基于模塊化思想設(shè)計(jì)了衛(wèi)星數(shù)字仿真平臺(tái),并給出Simulink及C/C++模型的FMI標(biāo)準(zhǔn)封裝方法.利用衛(wèi)星數(shù)字仿真平臺(tái),搭建了多星運(yùn)行仿真場景,通過遠(yuǎn)程過程調(diào)用技術(shù),將仿真過程數(shù)據(jù)推送到可視化平臺(tái)中,完成對衛(wèi)星運(yùn)行場景的可視化展示.
為支持多源異構(gòu)模型的聯(lián)合仿真以及基于場景的可視化的需求,整個(gè)仿真系統(tǒng)在功能上需具備多源異構(gòu)模型庫的管理、模型之間組態(tài)關(guān)系的設(shè)計(jì)、衛(wèi)星數(shù)據(jù)的實(shí)時(shí)采集、任務(wù)管理、內(nèi)核在線計(jì)算、數(shù)據(jù)可視化和過程數(shù)據(jù)管理等功能.
根據(jù)上述需求,本文提出的一種支持多源異構(gòu)模型聯(lián)合仿真的架構(gòu),具體如圖1所示,主要由模型庫、衛(wèi)星數(shù)字仿真平臺(tái)、數(shù)據(jù)采集接口框架、時(shí)序數(shù)據(jù)庫和場景可視化平臺(tái)等部分組成.其中模型庫主要由支持FMI標(biāo)準(zhǔn)的各類模型構(gòu)成,這些模型可以通過Simulink、CATIA和AMESim等第三方工具導(dǎo)出[4],也可以基于FMUSDK開發(fā)包通過手動(dòng)代碼方式生成.衛(wèi)星數(shù)字仿真平臺(tái)分為前端組態(tài)開發(fā)工具及后端仿真引擎.組態(tài)開發(fā)工具的功能包括:模型管理、組態(tài)設(shè)計(jì)、場景初始化、任務(wù)構(gòu)建及任務(wù)下發(fā)等.仿真引擎的功能包括:根據(jù)仿真平臺(tái)下發(fā)的組態(tài)任務(wù),分別完成仿真模型的加載和初始化、任務(wù)的拆分,從時(shí)序數(shù)據(jù)庫獲取衛(wèi)星系統(tǒng)的運(yùn)行數(shù)據(jù)并調(diào)用模型庫的算法,將求解的結(jié)果通過RPC技術(shù)推送到時(shí)序數(shù)據(jù)庫中;對于系統(tǒng)的配置參數(shù)以及仿真過程中產(chǎn)生的快照數(shù)據(jù)則保存到關(guān)系數(shù)據(jù)庫中,用于系統(tǒng)還原點(diǎn)的創(chuàng)建與恢復(fù).數(shù)據(jù)采集接口框架通過工廠模式,將不同通訊協(xié)議的上行和下行數(shù)據(jù)通過該接口進(jìn)行規(guī)范化約束.通過對外提供一套標(biāo)準(zhǔn)的數(shù)據(jù)訪問接口,實(shí)現(xiàn)與時(shí)序數(shù)據(jù)庫系統(tǒng)的解耦,這樣時(shí)序數(shù)據(jù)庫系統(tǒng)不需要了解各類型號(hào)衛(wèi)星的具體協(xié)議,就可以實(shí)現(xiàn)不同協(xié)議下行數(shù)據(jù)的接入以及不同控制指令的上行處理.場景可視化平臺(tái)的功能是基于內(nèi)置的三維模型庫,搭建仿真場景,利用向時(shí)序數(shù)據(jù)庫訂閱的目標(biāo)位號(hào)與場景中的三維模型進(jìn)行關(guān)聯(lián),驅(qū)動(dòng)場景的模型進(jìn)行運(yùn)動(dòng)仿真,將仿真引擎產(chǎn)生的過程數(shù)據(jù)進(jìn)行可視化展示.
圖1 衛(wèi)星仿真軟件整體架構(gòu)圖Fig.1 Architecture of satellite simulation software
構(gòu)建仿真用的衛(wèi)星部件模型是準(zhǔn)確估計(jì)衛(wèi)星各項(xiàng)功能可靠性的基礎(chǔ).本文基于模塊化的設(shè)計(jì)思想,將衛(wèi)星部件模型按類型劃分為:敏感器、控制器、執(zhí)行機(jī)構(gòu)、動(dòng)力學(xué)和遙控遙測等類型.在參數(shù)化系統(tǒng)仿真中,模型之間的信息交互是關(guān)鍵,為實(shí)現(xiàn)模型數(shù)據(jù)的正確傳輸以及降低后期系統(tǒng)建模的難度,本文定義了一套標(biāo)準(zhǔn)的模型數(shù)據(jù)交換接口,利用該接口,將衛(wèi)星部件模型映射為圖形化的功能模塊并通過端口之間的連線實(shí)現(xiàn)數(shù)據(jù)傳輸和衛(wèi)星模型的快速組態(tài).在端口與衛(wèi)星部件模型參數(shù)的綁定方面,利用參數(shù)數(shù)據(jù)共享的方法,實(shí)現(xiàn)部件模型數(shù)據(jù)的單向傳輸.
準(zhǔn)確掌握每個(gè)模型庫的使用特性是正確構(gòu)建衛(wèi)星仿真系統(tǒng)的前提,對此,需要將衛(wèi)星模型庫依據(jù)繼承關(guān)系進(jìn)行分類,本文將衛(wèi)星模型庫劃分為2種類型,分別是:功能塊基類和子系統(tǒng)基類,這2種基類都繼承于功能塊接口類,具體如圖2所示.其他所有類型的功能塊,如傳輸信號(hào)類型的信號(hào)類功能塊,統(tǒng)一由功能塊基類派生.對于新擴(kuò)展的信號(hào)類型的功能塊,如:數(shù)學(xué)功能塊、支持FMI標(biāo)準(zhǔn)的FMI功能塊和敏感器的功能塊等,可通過信號(hào)類功能塊進(jìn)行派生;數(shù)學(xué)類型的功能塊則可以通過數(shù)學(xué)功能塊來派生.通過上述基類,對新增的模型庫,依據(jù)類型繼承關(guān)系,可實(shí)現(xiàn)對新增模型庫的擴(kuò)展和按類型進(jìn)行分類管理的目的.
圖2 仿真引擎的功能塊及子系統(tǒng)類圖Fig.2 Function block and subsystem class diagram of simulation engine
在仿真過程中,轉(zhuǎn)儲(chǔ)快照數(shù)據(jù)以及對仿真引擎進(jìn)行啟停等管理操作是實(shí)現(xiàn)衛(wèi)星系統(tǒng)進(jìn)行自動(dòng)化功能分析的必要環(huán)節(jié),針對上述問題,本文通過在子系統(tǒng)中擴(kuò)展仿真管理接口的方法來實(shí)現(xiàn),這些方法包括:模型庫管理、配置文件修改、仿真引擎初始化、啟動(dòng)、暫停、創(chuàng)建還原點(diǎn)和快照恢復(fù)等.通過在子系統(tǒng)中實(shí)現(xiàn)上述方法,使整個(gè)仿真內(nèi)核在功能上具備模型的組態(tài)管理和在線仿真能力.此外,針對仿真引擎與場景可視化平臺(tái)之間的數(shù)據(jù)交互問題,本文定義了一個(gè)網(wǎng)絡(luò)接口類,借助該接口類派生出一個(gè)場景可視化功能塊,利用該功能塊的通信協(xié)議適配器,將仿真結(jié)果直接推送到時(shí)序數(shù)據(jù)庫指定的位號(hào)中,當(dāng)時(shí)序數(shù)據(jù)庫一旦檢測到被訂閱位號(hào)的數(shù)據(jù)有更新事件產(chǎn)生時(shí),時(shí)序數(shù)據(jù)庫將立即啟動(dòng)數(shù)據(jù)更新邏輯,將訂閱的位號(hào)數(shù)據(jù)直接發(fā)送到場景可視化平臺(tái)中,達(dá)到系統(tǒng)低耦合、功能高內(nèi)聚的目的.
本文將不同軌道的多顆衛(wèi)星運(yùn)行的場景作為仿真對象,對每顆衛(wèi)星姿軌控系統(tǒng)包含的各功能模塊進(jìn)行建模.衛(wèi)星的姿軌控系統(tǒng)主要由敏感器、執(zhí)行機(jī)構(gòu)、控制器和動(dòng)力學(xué)組成[16-17].敏感器負(fù)責(zé)測量衛(wèi)星運(yùn)行的軌道和姿態(tài)信息、執(zhí)行機(jī)構(gòu)根據(jù)控制器指令產(chǎn)生驅(qū)動(dòng)衛(wèi)星軌道和姿態(tài)運(yùn)動(dòng)的力和力矩,動(dòng)力學(xué)反映衛(wèi)星本體受到力和力矩作用后的運(yùn)動(dòng)狀態(tài)變化,控制器根據(jù)敏感器測量的軌道和姿態(tài)信息生成控制指令驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)[18-20].除了衛(wèi)星姿軌控系統(tǒng)包含的功能模型外,仿真案例中還要包含星時(shí)和可視化通信模型.為了說明所需的模型來源于不同建模工具,本文通過Simulink環(huán)境完成敏感器、執(zhí)行機(jī)構(gòu)、控制器、動(dòng)力學(xué)和星時(shí)模型構(gòu)建和FMI模型的封裝;通過C/C++語言手動(dòng)編碼的方式建立可視化通信功能模型,并利用FMUSDK開發(fā)包和7z壓縮工具完成FMI模型的封裝.
圖3(a)為Simulink環(huán)境搭建的動(dòng)力學(xué)仿真模型,模型輸入力和力矩,模型輸出為衛(wèi)星的姿態(tài)和位置,通過該模型.圖3(b)為星時(shí)模型,用來為模擬衛(wèi)星的星時(shí)系統(tǒng).
圖3 動(dòng)力學(xué)模型和星時(shí)模型Fig.3 Rigid body dynamics model and sidereal time model
為了將Simulink模型封裝為FMI模型,在Simulink工具中安裝CATIA FMI Kit插件,利用該插件,將前述設(shè)計(jì)的動(dòng)力學(xué)模型、星時(shí)等模型導(dǎo)出成FMI模型,具體過程如圖4所示.
圖4 Simulink工具導(dǎo)出FMU模型過程Fig.4 Export FMU model via Simulink
可視化通信模塊的主要作用是負(fù)責(zé)將仿真引擎的計(jì)算結(jié)果,依據(jù)場景可視化平臺(tái)的通信協(xié)議,將場景中的三維模型與仿真過程數(shù)據(jù)進(jìn)行綁定,用于驅(qū)動(dòng)場景模型進(jìn)行運(yùn)動(dòng)模擬.因此場景可視化平臺(tái)通信模型主要任務(wù)為:數(shù)據(jù)轉(zhuǎn)換和事件推送,其中數(shù)據(jù)轉(zhuǎn)換用于從仿真結(jié)果中抽取目標(biāo)對象的實(shí)時(shí)數(shù)據(jù),然后通過量綱轉(zhuǎn)換和內(nèi)置的數(shù)學(xué)運(yùn)算算法,將對象數(shù)據(jù)轉(zhuǎn)換為三維模型的空間坐標(biāo)數(shù)據(jù)或系統(tǒng)的運(yùn)行數(shù)據(jù)等;事件推送則是用于將數(shù)據(jù)轉(zhuǎn)換后的信息通過GRPC(google remote procedure call)接口推送到時(shí)序數(shù)據(jù)庫中,隨后時(shí)序數(shù)據(jù)庫監(jiān)測到訂閱的位號(hào)有更新事件時(shí),立即將更新后的數(shù)據(jù)推送給可視化軟件中,達(dá)到驅(qū)動(dòng)三維模型運(yùn)動(dòng)模擬和過程監(jiān)控的目的.
網(wǎng)絡(luò)模塊與具體業(yè)務(wù)耦合性較高,需要采用手動(dòng)編碼方式來實(shí)現(xiàn).在本示例中,數(shù)據(jù)轉(zhuǎn)換和事件推送的業(yè)務(wù)邏輯在多星網(wǎng)絡(luò)模型庫(multiSatNetmodel)中實(shí)現(xiàn),FMI模型的封裝則是通過FMUSDK開發(fā)包提供的模板庫來實(shí)現(xiàn),具體封裝過程如圖5(a)所示.需要注意的是模型配置文件(modelDescription.xml)中描述的屬性信息、模型變量信息以及模型名稱和全局唯一標(biāo)識(shí)符等要與MultiSatNetModel中對應(yīng)的變量值保持一致,否則在仿真過程中會(huì)出現(xiàn)運(yùn)行異常問題.在確認(rèn)模型配置文件成功之后,可以將編譯后生成的動(dòng)態(tài)庫文件以及依賴的其他資源文件(resources)利用7z工具,選擇zip壓縮算法直接壓縮為FMI模型,但是需要注意的是,由于上述壓縮過程通常需要先將模型配置文件、資源文件和動(dòng)態(tài)庫文件組織好,然后再通過7z工具手動(dòng)方式打包,整個(gè)過程較為繁瑣,為了簡化上述打包過程,在本實(shí)例中則是利用vc工程的后處理事件,通過自動(dòng)化腳本,在編譯之后,自動(dòng)地將模型配置文件、動(dòng)態(tài)庫文件和資源文件,一鍵拷貝到指定文件夾下,然后通過自動(dòng)化腳本調(diào)用7z工具并選擇zip壓縮算法直接生成FMI模型,vc工程的具體配置如圖5(b)所示.
圖5 基于編碼方式生成FMI模型過程Fig.5 FMI model generated by coding
在衛(wèi)星仿真平臺(tái)中搭建多星運(yùn)行仿真實(shí)例,需要經(jīng)歷4個(gè)步驟:模型導(dǎo)入、組態(tài)設(shè)計(jì)、場景配置和仿真運(yùn)行.
調(diào)用仿真模型的數(shù)值運(yùn)算,統(tǒng)一由仿真引擎負(fù)責(zé)執(zhí)行,由于仿真引擎內(nèi)置模型的數(shù)據(jù)交換接口與FMI標(biāo)準(zhǔn)接口存在一定的差異,因此,在正式仿真之前首先需要將FMI模型適配為仿真引擎內(nèi)部標(biāo)準(zhǔn)的模型.為此,需要通過一個(gè)自定義類模板的方法,基于FMI模型自帶的配置信息,動(dòng)態(tài)生成一個(gè)模板文件,然后通過自動(dòng)化腳本,利用gcc/vc編譯器,在FMI模型庫的基礎(chǔ)上,生成符合仿真引擎內(nèi)部標(biāo)準(zhǔn)的中間模型庫,并將新生成的模型信息添加到組態(tài)開發(fā)工具的模型庫中,最終完成模型的導(dǎo)入工作.
依據(jù)模型間信息流向,通過連線的方式完成模型的組態(tài)設(shè)計(jì).為了提高模型的復(fù)用率,本文在設(shè)計(jì)上,將多星的組態(tài)工程劃分為2部分,分別是單個(gè)衛(wèi)星子系統(tǒng)的組態(tài)和多星組態(tài).其中,對于單顆衛(wèi)星的組態(tài),通過在組態(tài)設(shè)計(jì)工具中創(chuàng)建一個(gè)子系統(tǒng),然后將前述導(dǎo)入的FMI模型拖入到設(shè)計(jì)器中,根據(jù)模型之間的依賴關(guān)系,通過連線的方式將動(dòng)力學(xué)、敏感器和執(zhí)行機(jī)構(gòu)等模型組織起來,最終完成單顆衛(wèi)星的仿真模型的構(gòu)建,具體如圖6(a)所示.在前述的子系統(tǒng)模型的基礎(chǔ)上,將單顆衛(wèi)星模型作為一個(gè)獨(dú)立的衛(wèi)星組件模型,依次拖入到設(shè)計(jì)器中并與其他組件模塊關(guān)聯(lián)起來,共同構(gòu)成一個(gè)多星仿真組態(tài),具體如圖6(b)所示.
圖6 仿真模型的組態(tài)設(shè)計(jì)Fig.6 Configuration design of simulation model
通過組態(tài)開發(fā)工具配置各模型仿真初始條件(包括端口初始值及內(nèi)部狀態(tài)變量的初值),配置仿真開始時(shí)間、結(jié)束時(shí)間、仿真步距和仿真速度等參數(shù).場景可視化平臺(tái)需要配置衛(wèi)星三維模型的導(dǎo)入和協(xié)議綁定2部分內(nèi)容,其中協(xié)議綁定主要用來將可視化通信模型的數(shù)據(jù)與衛(wèi)星三維模型進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)三維場景模型的驅(qū)動(dòng).
場景配置完成后,在啟動(dòng)仿真引擎進(jìn)行模型仿真時(shí),組態(tài)開發(fā)工具首先將組態(tài)工程下發(fā)到仿真引擎中.仿真引擎將根據(jù)下發(fā)的組態(tài)工程中各模型間連線,由仿真引擎內(nèi)部的任務(wù)管理器生成具體的仿真任務(wù),并將這些任務(wù)加入到任務(wù)池中.仿真引擎通過內(nèi)部的任務(wù)執(zhí)行器,從任務(wù)池中取出一個(gè)待執(zhí)行的計(jì)算任務(wù)并為該計(jì)算任務(wù)關(guān)聯(lián)一個(gè)工作線程,借助該線程對仿真模型逐個(gè)調(diào)用,當(dāng)仿真模型內(nèi)部的算法調(diào)用結(jié)束后,仿真引擎將運(yùn)算后的結(jié)果立即更新到模型對應(yīng)的快照參數(shù)列表上,完成一個(gè)仿真周期的計(jì)算.每完成一個(gè)仿真周期,仿真時(shí)間累加一個(gè)仿真步距,以此類推,直至結(jié)束時(shí)間,完成整個(gè)工程的仿真.為了便于對仿真過程進(jìn)行實(shí)時(shí)監(jiān)控和歷史數(shù)據(jù)分析,仿真引擎在執(zhí)行一個(gè)仿真周期之后,將產(chǎn)生的仿真結(jié)果(端口的實(shí)時(shí)值和內(nèi)部狀態(tài)變量的實(shí)時(shí)值)加入到一個(gè)歷史數(shù)據(jù)隊(duì)列中.當(dāng)仿真結(jié)束之后,組態(tài)開發(fā)工具能夠基于快照參數(shù)列表和歷史數(shù)據(jù)隊(duì)列,對端口的實(shí)時(shí)值及端口的歷史數(shù)據(jù)進(jìn)行可視化展示和分析,具體如圖7所示.
圖7 仿真運(yùn)行狀態(tài)過程監(jiān)控Fig.7 Monitoring of simulation state
利用場景可視化軟件,三維衛(wèi)星模型將依據(jù)仿真引擎的計(jì)算結(jié)果,嚴(yán)格遵從衛(wèi)星模型的仿真運(yùn)行數(shù)據(jù),對衛(wèi)星的空間位置和姿態(tài)進(jìn)行可視化動(dòng)態(tài)展示.通過該三維可視化軟件能夠方便地對單顆和多顆衛(wèi)星的運(yùn)行姿態(tài)和位置進(jìn)行實(shí)時(shí)跟蹤與監(jiān)控,具體如圖8(a)和(b)所示.
圖8 可視化軟件多星仿真Fig.8 Multi-satellite simulation via visualization software
本文基于FMI標(biāo)準(zhǔn)數(shù)據(jù)交換接口和模型復(fù)用技術(shù),構(gòu)建了支持衛(wèi)星數(shù)字仿真的工具體系架構(gòu),在此基礎(chǔ)上,基于模塊化思想設(shè)計(jì)了衛(wèi)星數(shù)字仿真平臺(tái),并給出了Simulink及C/C++模型的FMI標(biāo)準(zhǔn)封裝方法.利用衛(wèi)星數(shù)字仿真平臺(tái),搭建了多星運(yùn)行仿真場景,通過遠(yuǎn)程過程調(diào)用技術(shù),將仿真過程數(shù)據(jù)推送到可視化平臺(tái)中,完成對衛(wèi)星運(yùn)行場景的可視化展示.通過仿真案例說明,衛(wèi)星仿真平臺(tái)可以對模型運(yùn)行狀態(tài)及變化趨勢進(jìn)行監(jiān)控,同時(shí),可視化平臺(tái)可以對衛(wèi)星的運(yùn)行軌道及姿態(tài)等數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)顯示.本文提出的衛(wèi)星數(shù)字仿真平臺(tái)不僅支持衛(wèi)星姿軌控仿真,同時(shí)也可作為其他航天器系統(tǒng)或應(yīng)用場景的數(shù)字仿真開發(fā)環(huán)境,為系統(tǒng)、整星及星座模擬器的開發(fā)提供工具支撐.