本發(fā)明涉及一種衛(wèi)星仿真技術(shù),具體涉及一種衛(wèi)星仿真系統(tǒng)及其數(shù)據(jù)同步方法。
背景技術(shù):隨著現(xiàn)代航天技術(shù)的發(fā)展,人們對(duì)未來航天器的創(chuàng)新設(shè)計(jì)和應(yīng)用進(jìn)行了卓有成效的研究,計(jì)算機(jī)仿真技術(shù)為這些研究提供了基礎(chǔ)的、不可或缺的支持?,F(xiàn)在,從衛(wèi)星設(shè)計(jì)、衛(wèi)星制造、衛(wèi)星系統(tǒng)運(yùn)營(yíng)、星座組網(wǎng)直到衛(wèi)星應(yīng)用開發(fā),都離不開計(jì)算機(jī)仿真提供的大量實(shí)驗(yàn)數(shù)據(jù)。仿真也為人們進(jìn)行未來衛(wèi)星的概念性創(chuàng)新應(yīng)用研究提供了最有效的手段。全數(shù)字仿真和半物理仿真是衛(wèi)星系統(tǒng)研制過程中兩種重要的實(shí)驗(yàn)方法。全數(shù)字仿真由加載動(dòng)力學(xué)的dspace(數(shù)字空間)和星載計(jì)算機(jī)組成,由各自的時(shí)鐘保證仿真同步。半物理仿真由加載動(dòng)力學(xué)的dspace,衛(wèi)星單機(jī),星載計(jì)算機(jī)組成,也由各自的時(shí)鐘保證仿真同步。華為技術(shù)有限公司沈高在專利《實(shí)現(xiàn)數(shù)據(jù)同步、獲知數(shù)據(jù)同步結(jié)果方法及其系統(tǒng)、HLR》(公開號(hào)CN10101811113A),以同步請(qǐng)求和同步響應(yīng)信號(hào)實(shí)現(xiàn)主備寄存器位置的數(shù)據(jù)同步。華為技術(shù)有限公司張普朝在專利《數(shù)據(jù)同步的方法、系統(tǒng)、中間數(shù)據(jù)節(jié)點(diǎn)及種植數(shù)據(jù)節(jié)點(diǎn)》(申請(qǐng)公布號(hào)CN102143194A)中,以數(shù)據(jù)同步標(biāo)識(shí)和同步數(shù)據(jù)組成數(shù)據(jù)同步信息,實(shí)現(xiàn)多個(gè)終端節(jié)點(diǎn)的數(shù)據(jù)同步。上述方法中各節(jié)點(diǎn)或終端均基于物理時(shí)間同步,應(yīng)用于衛(wèi)星系統(tǒng)仿真存在如下缺點(diǎn):1仿真實(shí)驗(yàn)成本高:Dspace等設(shè)備及星載計(jì)算機(jī)價(jià)格昂貴,配套試驗(yàn)的測(cè)試、記錄需要大量的人員;2仿真過程不可控:基于物理時(shí)間的同步不可暫停,試驗(yàn)任務(wù)出現(xiàn)異常,不能暫停分析問題,只能停止分析事后數(shù)據(jù);3仿真速率不可控:基于物理時(shí)間同步的技術(shù)只能應(yīng)用于實(shí)時(shí)仿真,對(duì)于長(zhǎng)時(shí)間的實(shí)驗(yàn)等同的仿真時(shí)間;4仿真系統(tǒng)搭建組成復(fù)雜:仿真過程參與設(shè)備包括Dspace,星載計(jì)算機(jī)等設(shè)備,數(shù)量多并且接口連接復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供一種衛(wèi)星仿真系統(tǒng)及其數(shù)據(jù)同步方法,可用于超實(shí)時(shí)和欠實(shí)時(shí)仿真系統(tǒng),數(shù)據(jù)同步誤差可控、仿真過程可控、仿真速率可控、仿真過程可觀。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種衛(wèi)星仿真系統(tǒng),其特點(diǎn)是,該系統(tǒng)包含:制導(dǎo)導(dǎo)航控制模塊;調(diào)度模塊,其輸入端信號(hào)連接制導(dǎo)導(dǎo)航控制模塊,接收制導(dǎo)導(dǎo)航控制模塊發(fā)送的運(yùn)行時(shí)間,每收到一次運(yùn)行時(shí)間即發(fā)送啟動(dòng)指令;動(dòng)力學(xué)模塊,其輸入端信號(hào)連接調(diào)度模塊;響應(yīng)調(diào)度模塊的啟動(dòng)指令,請(qǐng)求并執(zhí)行執(zhí)行機(jī)構(gòu)指令;執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū),其雙向信號(hào)連接動(dòng)力學(xué)模塊,輸入端信號(hào)連接制導(dǎo)導(dǎo)航控制模塊,接收動(dòng)力學(xué)模塊的執(zhí)行機(jī)構(gòu)指令請(qǐng)求并發(fā)送執(zhí)行機(jī)構(gòu)指令至動(dòng)力學(xué)模塊;敏感器數(shù)據(jù)存儲(chǔ)區(qū),其雙向信號(hào)連接制導(dǎo)導(dǎo)航控制模塊,輸入端信號(hào)連接動(dòng)力學(xué)模塊,用于接收和存儲(chǔ)敏感器數(shù)據(jù);上述制導(dǎo)導(dǎo)航控制模塊與動(dòng)力學(xué)模塊相互通過共享內(nèi)存信號(hào)連接。上述的制導(dǎo)導(dǎo)航控制模塊包含星載模塊。一種上述衛(wèi)星仿真系統(tǒng)的數(shù)據(jù)同步方法,其特點(diǎn)是,該方法包含:制導(dǎo)導(dǎo)航控制模塊每過T時(shí)間向調(diào)度模塊發(fā)送運(yùn)行時(shí)間;T為動(dòng)力學(xué)模塊的離散周期;調(diào)度模塊每收到運(yùn)行時(shí)間,即向動(dòng)力學(xué)模塊發(fā)送啟動(dòng)指令,動(dòng)力學(xué)模塊響應(yīng)啟動(dòng)指令,發(fā)送執(zhí)行機(jī)構(gòu)指令請(qǐng)求,并包含指令請(qǐng)求時(shí)刻,當(dāng)執(zhí)行機(jī)構(gòu)指令的時(shí)刻等于指令請(qǐng)求時(shí)刻,則返回執(zhí)行機(jī)構(gòu)指令至動(dòng)力學(xué)模塊,動(dòng)力學(xué)模塊收到執(zhí)行機(jī)構(gòu)指令并運(yùn)行一次,運(yùn)行結(jié)束即輸出該時(shí)刻的敏感器數(shù)據(jù);制導(dǎo)導(dǎo)航控制模塊發(fā)送敏感器數(shù)據(jù)請(qǐng)求,敏感器數(shù)據(jù)請(qǐng)求包含數(shù)據(jù)請(qǐng)求時(shí)刻和敏感器代碼,當(dāng)敏感器數(shù)據(jù)的時(shí)刻等于數(shù)據(jù)請(qǐng)求時(shí)刻,則返回敏感器數(shù)據(jù)至制導(dǎo)導(dǎo)航控制模塊,制導(dǎo)導(dǎo)航控制模塊繼續(xù)運(yùn)行并輸出執(zhí)行機(jī)構(gòu)指令及該指令的時(shí)刻。上述制導(dǎo)導(dǎo)航控制模塊為自主運(yùn)行;動(dòng)力學(xué)模塊為不自主運(yùn)行。上述動(dòng)力學(xué)模塊運(yùn)行一次,系統(tǒng)時(shí)間累加一個(gè)采樣周期。上述動(dòng)力學(xué)模塊輸出敏感器數(shù)據(jù)存入敏感器數(shù)據(jù)存儲(chǔ)區(qū);制導(dǎo)導(dǎo)航控制模塊向敏感器數(shù)據(jù)存儲(chǔ)區(qū)發(fā)送敏感器數(shù)據(jù)請(qǐng)求,敏感器數(shù)據(jù)存儲(chǔ)區(qū)反饋敏感器數(shù)據(jù)給制導(dǎo)導(dǎo)航控制模塊。上述數(shù)據(jù)請(qǐng)求時(shí)刻為制導(dǎo)導(dǎo)航控制模塊運(yùn)行時(shí)間以T的整數(shù)倍向下取整。若敏感器數(shù)據(jù)的時(shí)刻小于數(shù)據(jù)請(qǐng)求時(shí)刻,則不向制導(dǎo)導(dǎo)航控制模塊返回敏感器數(shù)據(jù)。上述制導(dǎo)導(dǎo)航控制模塊輸出執(zhí)行機(jī)構(gòu)指令存入執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū);動(dòng)力學(xué)模塊向執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)發(fā)送執(zhí)行機(jī)構(gòu)指令請(qǐng)求,執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)反饋執(zhí)行機(jī)構(gòu)指令給動(dòng)力學(xué)模塊。上述執(zhí)行機(jī)構(gòu)指令的時(shí)刻取制導(dǎo)導(dǎo)航控制模塊當(dāng)前時(shí)刻以T的整數(shù)倍向上取整。若執(zhí)行機(jī)構(gòu)指令的時(shí)刻小于指令請(qǐng)求時(shí)刻,則不向動(dòng)力學(xué)模塊返回執(zhí)行機(jī)構(gòu)指令。上述制導(dǎo)導(dǎo)航控制模塊發(fā)出敏感器數(shù)據(jù)請(qǐng)求后暫停運(yùn)行,并在敏感器數(shù)據(jù)返回之后恢復(fù)并繼續(xù)運(yùn)行。上述動(dòng)力學(xué)模塊運(yùn)行一次完成后進(jìn)入暫停狀態(tài),等待調(diào)度模塊下一次的啟動(dòng)指令。上述動(dòng)力學(xué)模塊運(yùn)行一次完成時(shí),若調(diào)度模塊需要向調(diào)度模塊發(fā)送系統(tǒng)的當(dāng)前時(shí)間。上述動(dòng)力學(xué)模塊接收調(diào)度模塊的啟動(dòng)指令時(shí),向調(diào)度模塊反饋系統(tǒng)時(shí)間作為校驗(yàn)信息。上述調(diào)度模塊根據(jù)制導(dǎo)導(dǎo)航控制模塊發(fā)送的運(yùn)行時(shí)間和動(dòng)力學(xué)模塊反饋的系統(tǒng)時(shí)間診斷系統(tǒng)的運(yùn)行狀態(tài)。本發(fā)明衛(wèi)星仿真系統(tǒng)及其數(shù)據(jù)同步方法和現(xiàn)有技術(shù)的衛(wèi)星系統(tǒng)仿真相比,其優(yōu)點(diǎn)在于,本發(fā)明數(shù)據(jù)同步誤差可控,數(shù)據(jù)同步誤差可控使得衛(wèi)星超實(shí)時(shí)仿真系統(tǒng)精度與衛(wèi)星半物理仿真等效,但衛(wèi)星超實(shí)時(shí)仿真系統(tǒng)組成簡(jiǎn)單,成本低;本發(fā)明仿真過程可控,在不影響仿真的仿真精度的情況下,仿真過程可以暫停;本發(fā)明仿真速率可控,在動(dòng)力學(xué)模塊中增加延遲環(huán)節(jié),或者采用更小的系統(tǒng)離散化周期,增加動(dòng)力學(xué)模塊運(yùn)行一個(gè)采樣周期的物理時(shí)間可以調(diào)整仿真速率。調(diào)度模塊也可以控制動(dòng)力學(xué)模塊的運(yùn)行速率;本發(fā)明仿真過程可觀,動(dòng)力學(xué)軟件可以反饋給調(diào)度模塊系統(tǒng)運(yùn)行時(shí)間,調(diào)度軟件通過比較制導(dǎo)導(dǎo)航控制模塊和動(dòng)力學(xué)模塊的運(yùn)行時(shí)間診斷仿真過程。附圖說明圖1為本發(fā)明衛(wèi)星仿真系統(tǒng)及其數(shù)據(jù)同步的原理圖;圖2為本發(fā)明的數(shù)據(jù)流格式;圖3為本發(fā)明的數(shù)據(jù)存儲(chǔ)格式。具體實(shí)施方式以下結(jié)合附圖,進(jìn)一步說明本發(fā)明的具體實(shí)施例。如圖1所示,本發(fā)明公開一種衛(wèi)星超實(shí)時(shí)仿真系統(tǒng),該系統(tǒng)包含:制導(dǎo)導(dǎo)航控制模塊,調(diào)度模塊,動(dòng)力學(xué)模塊,執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)和敏感器數(shù)據(jù)存儲(chǔ)區(qū)。制導(dǎo)導(dǎo)航控制模塊1(GNC,GuidanceNavigation&Control)由星載模塊反編譯后,并與動(dòng)力學(xué)模塊運(yùn)行在同一平臺(tái)上形成,模擬實(shí)現(xiàn)衛(wèi)星星載模塊的功能。其中,星載模塊實(shí)現(xiàn)衛(wèi)星的星載計(jì)算機(jī)功能,具體進(jìn)行敏感器數(shù)據(jù)采集、控制指令解算、執(zhí)行機(jī)構(gòu)控制功能。調(diào)度模塊2輸入端信號(hào)連接制導(dǎo)導(dǎo)航控制模塊1,接收制導(dǎo)導(dǎo)航控制模塊1發(fā)送的運(yùn)行時(shí)間,每收到一次運(yùn)行時(shí)間即發(fā)送啟動(dòng)指令。動(dòng)力學(xué)模塊3輸入端信號(hào)連接調(diào)度模塊;響應(yīng)調(diào)度模塊2的啟動(dòng)指令,請(qǐng)求并執(zhí)行執(zhí)行機(jī)構(gòu)指令。其中,動(dòng)力學(xué)模塊實(shí)現(xiàn)衛(wèi)星在軌的動(dòng)力學(xué)特性仿真,包括姿態(tài)動(dòng)力學(xué)、軌道動(dòng)力學(xué)模型。執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)5雙向信號(hào)連接動(dòng)力學(xué)模塊3,輸入端信號(hào)連接制導(dǎo)導(dǎo)航控制模塊1,接收動(dòng)力學(xué)模塊3的執(zhí)行機(jī)構(gòu)指令請(qǐng)求并發(fā)送執(zhí)行機(jī)構(gòu)指令至動(dòng)力學(xué)模塊3。敏感器數(shù)據(jù)存儲(chǔ)區(qū)4雙向信號(hào)連接制導(dǎo)導(dǎo)航控制模塊1,輸入端信號(hào)連接動(dòng)力學(xué)模塊3,用于接收和存儲(chǔ)敏感器數(shù)據(jù)。衛(wèi)星超實(shí)時(shí)仿真系統(tǒng)中數(shù)據(jù)流包含三種類型:時(shí)間數(shù)據(jù)、敏感器數(shù)據(jù)、執(zhí)行機(jī)構(gòu)指令數(shù)據(jù)。調(diào)度模塊2對(duì)制導(dǎo)導(dǎo)航控制模塊1和動(dòng)力學(xué)軟件3的時(shí)間調(diào)度。敏感器數(shù)據(jù)和執(zhí)行機(jī)構(gòu)指令數(shù)據(jù)不經(jīng)過調(diào)度模塊2,動(dòng)力學(xué)模塊3和制導(dǎo)導(dǎo)航控制模塊1通過共享內(nèi)存等途徑信號(hào)連接并直接交互。其中,制導(dǎo)導(dǎo)航控制模塊1自主運(yùn)行;動(dòng)力學(xué)模塊3不自主運(yùn)行,通過調(diào)度模塊2指令調(diào)度運(yùn)行。本發(fā)明還公開一種衛(wèi)星仿真系統(tǒng)的數(shù)據(jù)同步方法,該方法包含:制導(dǎo)導(dǎo)航控制模塊1首先運(yùn)行,并且每經(jīng)過T時(shí)刻向調(diào)度模塊2發(fā)送運(yùn)行時(shí)間。調(diào)度模塊2每接收到一次制導(dǎo)導(dǎo)航控制模塊1的運(yùn)行時(shí)間,向動(dòng)力學(xué)模塊3發(fā)送一次啟動(dòng)指令,動(dòng)力學(xué)模塊3則運(yùn)行一次,整個(gè)系統(tǒng)時(shí)間累加一個(gè)采樣周期,并且按照?qǐng)D2所示的數(shù)據(jù)流格式,動(dòng)力學(xué)模塊3將敏感器數(shù)據(jù)存入敏感器數(shù)據(jù)存儲(chǔ)區(qū)4。動(dòng)力學(xué)模型采用零階保持器等方法進(jìn)行離散化,T為動(dòng)力學(xué)模塊3的離散化周期,其需要滿足三方面需求:1滿足動(dòng)力學(xué)模型遞推精度需求;2滿足制導(dǎo)導(dǎo)航控制模塊1敏感器數(shù)據(jù)請(qǐng)求的數(shù)據(jù)延遲需求;3滿足衛(wèi)星超實(shí)時(shí)仿真系統(tǒng)仿真速度需求。如圖1所示,動(dòng)力學(xué)模塊3可以向調(diào)度模塊2反饋系統(tǒng)時(shí)間作為校驗(yàn)信息(虛線所示),調(diào)度模塊2根據(jù)制導(dǎo)導(dǎo)航控制模塊1發(fā)送的運(yùn)行時(shí)間和動(dòng)力學(xué)模塊3反饋的時(shí)間信息診斷系統(tǒng)運(yùn)行狀態(tài)。制導(dǎo)導(dǎo)航控制模塊1與動(dòng)力學(xué)軟件時(shí)間的同步通過敏感器數(shù)據(jù)請(qǐng)求進(jìn)行控制。故制導(dǎo)導(dǎo)航控制模塊1向敏感器數(shù)據(jù)存儲(chǔ)區(qū)4發(fā)送敏感器數(shù)據(jù)請(qǐng)求,格式如圖3所示,敏感器數(shù)據(jù)請(qǐng)求包含數(shù)據(jù)請(qǐng)求時(shí)刻和敏感器代碼,數(shù)據(jù)請(qǐng)求時(shí)刻為制導(dǎo)導(dǎo)航控制模塊1運(yùn)行時(shí)間以T的整數(shù)倍向下取整。制導(dǎo)導(dǎo)航控制模塊1發(fā)出敏感器數(shù)據(jù)請(qǐng)求后暫停運(yùn)行,在敏感器數(shù)據(jù)返回之前處于暫停狀態(tài)。若敏感器數(shù)據(jù)存儲(chǔ)區(qū)4內(nèi)敏感器數(shù)據(jù)的時(shí)刻小于數(shù)據(jù)請(qǐng)求時(shí)刻,則不向制導(dǎo)導(dǎo)航控制模塊1返回?cái)?shù)據(jù);當(dāng)且僅當(dāng)敏感器數(shù)據(jù)存儲(chǔ)區(qū)4內(nèi)敏感器數(shù)據(jù)的時(shí)刻等于數(shù)據(jù)請(qǐng)求時(shí)刻時(shí),則返回敏感器數(shù)據(jù)至制導(dǎo)導(dǎo)航控制模塊1。制導(dǎo)導(dǎo)航控制模塊1收到敏感器數(shù)據(jù)返回之后恢復(fù)并繼續(xù)運(yùn)行,并輸出執(zhí)行機(jī)構(gòu)指令及該指令的時(shí)刻,執(zhí)行機(jī)構(gòu)指令的時(shí)刻取制導(dǎo)導(dǎo)航控制模塊1當(dāng)前時(shí)刻以T的整數(shù)倍向上取整,如圖3格式存入執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)5。如上述說明,動(dòng)力學(xué)模塊3不自主運(yùn)行,調(diào)度模塊2每發(fā)送一次啟動(dòng)指令,動(dòng)力學(xué)模塊3則啟動(dòng)運(yùn)行一次。其運(yùn)行流程如下:調(diào)度模塊2每收到制導(dǎo)導(dǎo)航控制模塊1發(fā)出的運(yùn)行時(shí)間,即向動(dòng)力學(xué)模塊3發(fā)送啟動(dòng)指令,動(dòng)力學(xué)模塊3響應(yīng)啟動(dòng)指令啟動(dòng),首先向執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)5發(fā)送執(zhí)行機(jī)構(gòu)指令請(qǐng)求以要求執(zhí)行機(jī)構(gòu)指令,請(qǐng)求中包含指令請(qǐng)求時(shí)刻,該指令請(qǐng)求時(shí)刻取動(dòng)力學(xué)模塊3當(dāng)前時(shí)刻,數(shù)據(jù)格式如圖2。若執(zhí)行機(jī)構(gòu)指令的時(shí)刻小于指令請(qǐng)求時(shí)刻,則不向動(dòng)力學(xué)模塊3返回執(zhí)行機(jī)構(gòu)指令。當(dāng)執(zhí)行機(jī)構(gòu)指令的時(shí)刻等于指令請(qǐng)求時(shí)刻,則返回執(zhí)行機(jī)構(gòu)指令至動(dòng)力學(xué)模塊3,動(dòng)力學(xué)模塊3收到執(zhí)行機(jī)構(gòu)指令并運(yùn)行一次,運(yùn)行結(jié)束后,敏感器數(shù)據(jù)的時(shí)刻取動(dòng)力學(xué)模塊3當(dāng)前時(shí)刻,運(yùn)行結(jié)束即輸出該時(shí)刻的敏感器數(shù)據(jù)存入敏感器數(shù)據(jù)存儲(chǔ)區(qū)4。動(dòng)力學(xué)模塊3運(yùn)行一次完成后進(jìn)入暫停狀態(tài),等待調(diào)度模塊2下一次的啟動(dòng)指令。并且動(dòng)力學(xué)模塊3運(yùn)行一次完成時(shí),若調(diào)度模塊2需要向調(diào)度模塊發(fā)送系統(tǒng)的當(dāng)前時(shí)間。其中,敏感器數(shù)據(jù)存儲(chǔ)區(qū)/執(zhí)行機(jī)構(gòu)指令存儲(chǔ)區(qū)可通過共享內(nèi)存,管道等方式實(shí)現(xiàn),采用先入先出機(jī)制,即先存入的數(shù)據(jù)先進(jìn)行輸出。盡管本發(fā)明的內(nèi)容已經(jīng)通過上述優(yōu)選實(shí)施例作了詳細(xì)介紹,但應(yīng)當(dāng)認(rèn)識(shí)到上述的描述不應(yīng)被認(rèn)為是對(duì)本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對(duì)于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護(hù)范圍應(yīng)由所附的權(quán)利要求來限定。