沈怡范蕾懿余 維彭 妮
(1.上海航天控制技術(shù)研究所,上海 201109; 2.上海市空間智能控制技術(shù)重點實驗室,上海 201109)
衛(wèi)星綜合測試系統(tǒng)廣泛應(yīng)用于衛(wèi)星系統(tǒng)的各階段研制,包括系統(tǒng)級 (整星)分系統(tǒng)級的各項試驗,實現(xiàn)對各系統(tǒng)接口功能、系統(tǒng)功能以及各個性能指標的測試與評估[1]。該測試系統(tǒng)主要是根據(jù)不同試驗內(nèi)容的需要,控制衛(wèi)星系統(tǒng)各種激勵信號,同時接收衛(wèi)星遙測信號,驗證衛(wèi)星系統(tǒng)中相應(yīng)的狀態(tài)信息和參數(shù)信息。
在衛(wèi)星入軌飛行后,衛(wèi)星綜合測試系統(tǒng)則作為地面監(jiān)控的重要組成部分,承擔對衛(wèi)星遙測信號的采集和解算,實現(xiàn)對衛(wèi)星遙測數(shù)據(jù)的分析的功能[2]。特別是對遙測數(shù)據(jù)的異??焖贆z測[3-4],預(yù)判可能出現(xiàn)的在軌狀態(tài),爭取盡可能多的時間對可能故障進行規(guī)避[3],以此提高衛(wèi)星系統(tǒng)運行的可靠性,保證衛(wèi)星在軌任務(wù)的順利完成。因此,在衛(wèi)星綜合測試系統(tǒng)中,對遙測信號采集和解算的實時性,有了更加嚴格的要求。
在傳統(tǒng)方法中,遙測信號采集是通過非實時系統(tǒng)進行獨立完成,采集過程和解算過程受到系統(tǒng)內(nèi)其余任務(wù)調(diào)度的干擾,嚴重影響遙測信號的實時性。此外,對于有故障預(yù)案的模型系統(tǒng)來說,解算得到的遙測信號還需要接入到模型系統(tǒng)中才能進行有效分析,不僅帶來了額外的延時,還有設(shè)備成本的開銷。
本文采用基于實時模型遙測信號的解析方案,在仿真模型中直接嵌入解算模型模塊,實現(xiàn)從遙測信息解算到模型仿真迭代的融合,提高衛(wèi)星綜合測試系統(tǒng)運行效率。
實時系統(tǒng)(Real-time system,RTS),是可以在指定的時間或在指定時間可容許的誤差時間范圍內(nèi)完成系統(tǒng)的某項指令作出響應(yīng)的系統(tǒng)[5]。常用的實時系統(tǒng)包括VxWorks、RTX、QNX和XPC等,均可以按照本方案等策略進行仿真驗證。
在實時系統(tǒng)中,當一個事件需要被響應(yīng)時,系統(tǒng)將迅速響應(yīng)并執(zhí)行。這和非實時系統(tǒng)有本質(zhì)的區(qū)別。實時系統(tǒng)任務(wù)流程如圖1所示。
圖1 實時系統(tǒng)任務(wù)流程
實時系統(tǒng)以任務(wù)為基本運行元素。當啟動模型任務(wù)時,任務(wù)會首先進行模型配置和系統(tǒng)硬件配置。系統(tǒng)硬件配置包括板卡配置、時鐘配置和中斷配置。
在模型中將會調(diào)用MdlStart函數(shù)進行模型啟動。在MdlStart函數(shù)中執(zhí)行MdlInitialize函數(shù),進行模型各個模塊的初始化配置。包括時鐘配置、硬件接口配置。
系統(tǒng)時鐘配置,是對模型仿真步長進行配置。例如步長配置項Fixed-step size為0.001,表示仿真步長為0.001 s。實時系統(tǒng)啟動定時器中斷,等待任務(wù)間信號量傳遞,驅(qū)動任務(wù)執(zhí)行。當模型任務(wù)接收到相應(yīng)的信號量時,首先會對模型進行迭代解算,計算當前節(jié)拍數(shù)據(jù)內(nèi)容。
在硬件接口中,模型包含遙測通信接口和反射內(nèi)存接口。遙測通信接接口負責接收遙測數(shù)據(jù),反射內(nèi)存接口負責進行模型數(shù)據(jù)實時數(shù)據(jù)交換。
衛(wèi)星在軌工作狀態(tài)對于地面監(jiān)控特別重要,在衛(wèi)星遙測的數(shù)據(jù)中包含了衛(wèi)星的運行狀態(tài)、衛(wèi)星上各個單機產(chǎn)品的運行狀態(tài)、當前產(chǎn)品工作環(huán)境的壓力、溫度等,這些模擬量和數(shù)字量的信號都匯總在遙測數(shù)據(jù)中。
星上的遙測和地面測控站之間,采用無線通信。
GJB21.1B-2006規(guī)定了我國遙測信號的標準,包括遙測頻段、L段和S段段載波頻率、調(diào)制體制、遙測發(fā)射機、遙測接收機和遙測接收系統(tǒng)的極化。
其中,約定了PCM為主要的調(diào)制方式。PCM遙測是基于PCM脈沖調(diào)制方式為基礎(chǔ)的遙測方式。
但是在地面試驗過程中,遙測信號不會以無線信號傳輸。
遙測數(shù)據(jù)一般以比特流信號方式傳遞[6]。比特流數(shù)據(jù)的時序圖如圖2所示。
圖2 比特流數(shù)據(jù)示意圖
時鐘信號為方波,占空比為50%±5%,時鐘信號上升沿與數(shù)據(jù)信號跳變沿對齊,相互誤差不大于時鐘信號脈沖寬度的5%,時鐘信號下降沿對準碼字的中間取數(shù)。
遙測信號的時序中,并不存在同步使能信號。需根據(jù)遙測信號協(xié)議中的同步幀頭,進行遙測信號接收和解析。仿真模型設(shè)計方案如圖3所示。
圖3 仿真模型方案
數(shù)據(jù)域讀入模塊是和硬件接口直接交互的模塊,它將采集電信號遙測數(shù)據(jù),接收遙測數(shù)據(jù)比特流信號,將信號以二進制源碼的形式存入到仿真模型內(nèi)存中,形成數(shù)據(jù)域。
遙測硬件接口將會把遙測數(shù)據(jù)存入硬件FIFO中。數(shù)據(jù)域讀入模塊將會從FIFO中讀取數(shù)據(jù),直到FIFO為空,將讀取的數(shù)據(jù)組成比特流數(shù)據(jù)幀,并且輸出。
同步特征識別模塊將會識別遙測數(shù)據(jù)同步幀頭[7]。
在比特流數(shù)據(jù)讀入后,首先確認數(shù)據(jù)長度大于同步幀頭。然后將比特流移位,判斷是否為同步幀頭,如果是,將當前移位個數(shù)作為同步標志位輸出。如果全部移位后還未有匹配合適的同步幀頭,則輸出故障標志位。
在同步標志位讀入后,首先判斷標志位是否正常,如果標志位異常,則判定是故障,直接輸出故障預(yù)警;如果標志位正常,則繼續(xù)判斷剩余比特流長度,如果小于預(yù)設(shè)遙測幀長,繼續(xù)進行數(shù)據(jù)域讀入,如果大于遙測幀長,直接根據(jù)遙測幀長進行數(shù)據(jù)截取,完成數(shù)據(jù)輸出。
我們選用Matlab作為仿真工具。Matlab是一種面向科學計算和工程仿真的高級語言,它更加貼近數(shù)學思維的編程習慣,猶如公式編輯一般進行邏輯的語法的輸入,編程上手簡單,提高了編程過程中的效率。
Matlab是一種解釋性語言,它可以直觀地進行執(zhí)行邏輯的調(diào)試,避免了傳統(tǒng)開發(fā)工具中對于編譯、鏈接等過程中的繁瑣,此外,它對語法的要求低,可以快速地排除語法錯誤。
Matlab含有比較全面的工具庫,無論是進行邏輯運算或者復(fù)雜運算,都能夠調(diào)用豐富的工具庫來實現(xiàn),此外,用戶還可以根據(jù)實際的應(yīng)用,自定義工具庫。
在本方案中,將會在實時系統(tǒng)中運行模型,需要通過matlab的RTW工具箱進行實現(xiàn)。
它實現(xiàn)將matlab代碼轉(zhuǎn)換為機器代碼。而Matlab在設(shè)計探索方面具有多態(tài)性、基于矩陣的函數(shù)和交互式編程環(huán)境等優(yōu)點。然而,在將算法從matlab轉(zhuǎn)換為機器代碼的過程中,軟件設(shè)計者面臨著一些重要的約束。
Matlab是一種動態(tài)類型,C是一種靜態(tài)類型的語言。編寫matlab程序時,不需要為變量定義數(shù)據(jù)類型和大小。雖然這種靈活性使開發(fā)算法作為概念證明變得容易,但當需要轉(zhuǎn)換到C時,程序員必須為所有變量分配適當?shù)臄?shù)據(jù)類型和大小。這是實現(xiàn)的的難點之一。
我們采用M腳本語言進行模塊的設(shè)計。
打開Simulink的模型庫,查找User-Defined Functions,找到S-Function。
S函數(shù)在使用過程中,需要注意direct feedthrough的應(yīng)用,它表示模塊的輸入和輸出是否和有關(guān)聯(lián)選項,當direct feedthrough是1時,輸入數(shù)據(jù)將會關(guān)聯(lián)到輸出數(shù)據(jù),并有標識提示。當direct feedthrough是0時,輸入數(shù)據(jù)將不會關(guān)聯(lián)到輸出數(shù)據(jù),并無標識提示。
我們選用S函數(shù)的模板sfuntmpl.m進行模塊的封裝。
我們定義yaoce_slover為主體函數(shù)。在yaoce_slover啟動時,先進行setup,進行初始化,設(shè)置輸入?yún)?shù)數(shù)量 block.NumDialogPrms,設(shè)置預(yù)設(shè)默認值block.SetPreCompPortInfoToDefaults;讀入模塊的GUI配置值block.DialogPrm(X).Data,作為模塊的配置輸入,
block.NumInputPorts = 6;
block.NumOutputPorts = 5;
模塊的輸入?yún)?shù)為6項,輸出參數(shù)為5項。對于每一項的輸入和輸出進行配置:
block.InputPort(x).Dimensions;設(shè)置輸入的維度;
block.InputPort(x).DatatypeID; 設(shè)置輸入數(shù)據(jù)類型;
block.OutputPort(x).Dimensions;設(shè)置輸出的維度;
block.OutputPort(x).DatatypeID; 設(shè)置輸出數(shù)據(jù)類型;
設(shè)置采樣率block.SampleTimes。
最后注冊輸出函數(shù)Output和啟動函數(shù)Start,完成setup:block.RegBlockMethod;在Output函數(shù)中,根據(jù)圖4、圖5、圖6流程進行模塊實現(xiàn)。
圖4 數(shù)據(jù)域讀入流程
圖5 同步特征識別流程
圖6 遙測數(shù)據(jù)提取流程
模塊的輸入包括有比特流源碼數(shù)據(jù)、遙測幀解算長度、遙測幀同步幀頭、遙測幀同步幀頭長度。輸出包括遙測幀狀態(tài)、遙測幀數(shù)據(jù)以及遙測幀長度。
模塊封裝在S函數(shù)中,如圖7所示。封裝后的模塊,可以作為用戶自定義庫的組成部分,為后續(xù)模型所直接調(diào)用和使用。
圖7 模塊界面
在傳統(tǒng)的方案中,衛(wèi)星綜合測試系統(tǒng)采用了PXI總線作為測試總線[8],分別部署有遙測采集計算機和故障預(yù)警模型計算機。遙測采集計算機中安裝有PXI I/O板卡,用來采集星上計算機的遙測信號。故障預(yù)警模型計算機安裝有數(shù)字量通信板卡和模擬量采集板卡,用來和地面模擬分系統(tǒng)進行數(shù)據(jù)交換。故障預(yù)警模型計算機和遙測采集計算機通過以太網(wǎng)進行數(shù)據(jù)通信,故障預(yù)警計算機監(jiān)控遙測信號,完成對遙測信號最終分析判斷。如圖8所示。
圖8 衛(wèi)星綜合測試系統(tǒng)傳統(tǒng)解決方案
遙測采集計算機安裝有windows系統(tǒng),采用labview作為開發(fā)環(huán)境,進行遙測信號的采集、解算以及以太網(wǎng)傳輸[9-10]。
傳統(tǒng)方案中,遙測采集機和故障預(yù)警模型計算機獨立存在。遙測采集計算機的性能,取決于Windows系統(tǒng)的運行狀態(tài)。作為非實時系統(tǒng),Windows系統(tǒng)除了本項目中的遙測解算功能軟件外,還額外承擔了網(wǎng)絡(luò)轉(zhuǎn)發(fā)的任務(wù)開銷。此外,由于遙測采集機和故障預(yù)警模型計算機無法做到實時同步,對于故障預(yù)警的反饋無法實時更新。
由表5可見,近六成的教學設(shè)計處于基礎(chǔ)層級,其關(guān)注點主要聚焦在教學目標的明確、教學過程的清晰、教學策略的合理等方面,只有近四成的職前教師在教學設(shè)計中關(guān)注了知識構(gòu)建和學生數(shù)據(jù)分析觀念的發(fā)展.
本文采用了一體式設(shè)計,將遙測采集板卡和解算功能嵌入到故障預(yù)警模型計算機中,并運行實時系統(tǒng)和模型,以此來實現(xiàn)對遙測數(shù)據(jù)的實時應(yīng)用如圖9所示。
圖9 衛(wèi)星綜合測試系統(tǒng)基于實時系統(tǒng)模型解決方案
故障預(yù)警模型計算機采用PXI架構(gòu),選用NI公司PXI-1042機箱作為故障預(yù)警模型計算機機箱,它是一個標準的8槽4U機箱。零槽控制器選用NI 8840控制器,足夠滿足系統(tǒng)功能要求。采用定制的遙測信號接收板卡,進行遙測信號的比特流采集,采用NI 8431串口卡,進行串口通信,并與其它分系統(tǒng)進行數(shù)據(jù)交換。同時故障預(yù)警模型計算機將會通過網(wǎng)絡(luò)傳輸給顯示終端。
故障預(yù)警模型計算機將采用VxWorks實時操作系統(tǒng),VxWorks本身和其應(yīng)用程序都具有極好的可移植性。VxWorks庫組件幾乎都用C語言編寫,可容易移植到不同CPU上實現(xiàn)。VxWorks的發(fā)行版本直接對多種支持,主要包括PowerPC、Pentium、MIPS、SH、Xscale、ARM、68K和ColdFire等。VxWorks適用于緊急任務(wù)應(yīng)用,具有極高的可靠性。VxWorks經(jīng)過多年的開發(fā)和應(yīng)用,各內(nèi)核組件都經(jīng)過實踐檢驗,已經(jīng)相當穩(wěn)定和成熟,包括軍事、航天等在內(nèi)的各種重要行業(yè)都有其應(yīng)用。
在模型中,加入仿真模型模塊,如圖10所示。
圖10 仿真模型模型及設(shè)置
輸入的第一項是比特流源碼,在本模型中是定制遙測采集卡所采集的數(shù)據(jù);
輸入的第二項是需要解析的遙測幀的規(guī)定數(shù)據(jù)長度,在本模型中,由模型的其它配置或外部輸入控制;
輸入的第三項和第四項,是采集輸出的第四項和第五項,用來對每一次的比特流進行剩余字符的循環(huán)解析。
輸入的第五項,是需要解析遙測幀同步幀頭,在本模型中,由模型的其它配置或外部輸入控制。
輸入的第六項,是是需要解析遙測幀同步幀頭的數(shù)據(jù)長度,在本模型中,由模型的其它配置或外部輸入控制。
輸出的第一項是解析完后的數(shù)據(jù)狀態(tài),如果是1表示在當前比特流中完成解析,如果是0表示在當前比特流中沒有完成解析。
輸出的第二項是解析完后的數(shù)據(jù)幀。
輸出的第三項是解析完后的數(shù)據(jù)幀長度。
圖11 模塊應(yīng)用
如圖11所示, 在模塊的應(yīng)用中,輸出的第一項解析完后的數(shù)據(jù)狀態(tài),需要作為觸發(fā)模塊的使能輸入,當狀態(tài)為高時,Enable Subsystem將會處理解析完后的數(shù)據(jù)幀。當狀態(tài)為低時,Enable Subsystem不會處理解析完后的數(shù)據(jù)幀。
在配置項中,需要對模塊最大輸入長度和最大輸出長度進行約束。
在仿真迭代的過程中,每一拍的遙測幀數(shù)據(jù)將會作為模塊的輸出,直接應(yīng)用在模型中。
在測試中,以2048 bps的遙測信號作為標準遙測輸入,256字節(jié)長度為輸出遙測幀長度,遙測幀同步頭3字節(jié),仿真步長0.001 s,進行遙測性能對比。對比內(nèi)容包括解算延時均值、解算延時誤差、故障預(yù)警同步延時。
解算延時均值考察的是遙測信號輸入和遙測幀輸出的平均解算速度;它將直接影響遙測幀的反饋輸出的速度,影響測試性能。
解算延時誤差考察的是解算速度的平均誤差;它直接體現(xiàn)的是突發(fā)狀態(tài)下,系統(tǒng)解算能力的穩(wěn)定性,也會直接影響系統(tǒng)在應(yīng)急狀態(tài)的反應(yīng)能力。
故障預(yù)警同步延時考察的是遙測幀和故障預(yù)警模型的數(shù)據(jù)同步時間;它體現(xiàn)的是信號本身的傳輸時間,也是故
障預(yù)案模型的傳導(dǎo)消耗時間。
經(jīng)過兩套設(shè)備對遙測信號的采集和運算,得到如下的性能對比。
表1 兩套設(shè)備性能對比 ms
本文首先分析了當前衛(wèi)星綜合測試系統(tǒng)的發(fā)展前景和面臨的挑戰(zhàn),從遙測信號的重要性和特性出發(fā),著眼于新的基于實時模型遙測信號的解析方案。
首先從成本控制的角度出發(fā),基于實時模型遙測信號的解析方案壓縮了原有的硬件成本,將傳統(tǒng)方案中的至少兩臺套的設(shè)備功能集成在一臺設(shè)備中進行實現(xiàn)。
其次,從性能上分析,解算延時均值、解算延時誤差和故障預(yù)警同步延時等指標大幅提高,提升了故障預(yù)案的綜合性能。
綜上所述,本文通過采用實時系統(tǒng)模型架構(gòu)和簡單的模型模塊配置,便可實現(xiàn)多種遙測信號采集以及完成與故障預(yù)警模型數(shù)據(jù)交換,達到了快速建模、分析和仿真的目的,可大幅提升衛(wèi)星綜合測試系統(tǒng)性能。