沈怡范蕾懿余 維彭 妮
(1.上海航天控制技術研究所,上海 201109; 2.上海市空間智能控制技術重點實驗室,上海 201109)
衛星綜合測試系統廣泛應用于衛星系統的各階段研制,包括系統級 (整星)分系統級的各項試驗,實現對各系統接口功能、系統功能以及各個性能指標的測試與評估[1]。該測試系統主要是根據不同試驗內容的需要,控制衛星系統各種激勵信號,同時接收衛星遙測信號,驗證衛星系統中相應的狀態信息和參數信息。
在衛星入軌飛行后,衛星綜合測試系統則作為地面監控的重要組成部分,承擔對衛星遙測信號的采集和解算,實現對衛星遙測數據的分析的功能[2]。特別是對遙測數據的異常快速檢測[3-4],預判可能出現的在軌狀態,爭取盡可能多的時間對可能故障進行規避[3],以此提高衛星系統運行的可靠性,保證衛星在軌任務的順利完成。因此,在衛星綜合測試系統中,對遙測信號采集和解算的實時性,有了更加嚴格的要求。
在傳統方法中,遙測信號采集是通過非實時系統進行獨立完成,采集過程和解算過程受到系統內其余任務調度的干擾,嚴重影響遙測信號的實時性。此外,對于有故障預案的模型系統來說,解算得到的遙測信號還需要接入到模型系統中才能進行有效分析,不僅帶來了額外的延時,還有設備成本的開銷。
本文采用基于實時模型遙測信號的解析方案,在仿真模型中直接嵌入解算模型模塊,實現從遙測信息解算到模型仿真迭代的融合,提高衛星綜合測試系統運行效率。
實時系統(Real-time system,RTS),是可以在指定的時間或在指定時間可容許的誤差時間范圍內完成系統的某項指令作出響應的系統[5]。常用的實時系統包括VxWorks、RTX、QNX和XPC等,均可以按照本方案等策略進行仿真驗證。
在實時系統中,當一個事件需要被響應時,系統將迅速響應并執行。這和非實時系統有本質的區別。實時系統任務流程如圖1所示。

圖1 實時系統任務流程
實時系統以任務為基本運行元素。當啟動模型任務時,任務會首先進行模型配置和系統硬件配置。系統硬件配置包括板卡配置、時鐘配置和中斷配置。
在模型中將會調用MdlStart函數進行模型啟動。在MdlStart函數中執行MdlInitialize函數,進行模型各個模塊的初始化配置。包括時鐘配置、硬件接口配置。
系統時鐘配置,是對模型仿真步長進行配置。例如步長配置項Fixed-step size為0.001,表示仿真步長為0.001 s。實時系統啟動定時器中斷,等待任務間信號量傳遞,驅動任務執行。當模型任務接收到相應的信號量時,首先會對模型進行迭代解算,計算當前節拍數據內容。
在硬件接口中,模型包含遙測通信接口和反射內存接口。遙測通信接接口負責接收遙測數據,反射內存接口負責進行模型數據實時數據交換。
衛星在軌工作狀態對于地面監控特別重要,在衛星遙測的數據中包含了衛星的運行狀態、衛星上各個單機產品的運行狀態、當前產品工作環境的壓力、溫度等,這些模擬量和數字量的信號都匯總在遙測數據中。
星上的遙測和地面測控站之間,采用無線通信。
GJB21.1B-2006規定了我國遙測信號的標準,包括遙測頻段、L段和S段段載波頻率、調制體制、遙測發射機、遙測接收機和遙測接收系統的極化。
其中,約定了PCM為主要的調制方式。PCM遙測是基于PCM脈沖調制方式為基礎的遙測方式。
但是在地面試驗過程中,遙測信號不會以無線信號傳輸。
遙測數據一般以比特流信號方式傳遞[6]。比特流數據的時序圖如圖2所示。

圖2 比特流數據示意圖
時鐘信號為方波,占空比為50%±5%,時鐘信號上升沿與數據信號跳變沿對齊,相互誤差不大于時鐘信號脈沖寬度的5%,時鐘信號下降沿對準碼字的中間取數。
遙測信號的時序中,并不存在同步使能信號。需根據遙測信號協議中的同步幀頭,進行遙測信號接收和解析。仿真模型設計方案如圖3所示。

圖3 仿真模型方案
數據域讀入模塊是和硬件接口直接交互的模塊,它將采集電信號遙測數據,接收遙測數據比特流信號,將信號以二進制源碼的形式存入到仿真模型內存中,形成數據域。
遙測硬件接口將會把遙測數據存入硬件FIFO中。數據域讀入模塊將會從FIFO中讀取數據,直到FIFO為空,將讀取的數據組成比特流數據幀,并且輸出。
同步特征識別模塊將會識別遙測數據同步幀頭[7]。
在比特流數據讀入后,首先確認數據長度大于同步幀頭。然后將比特流移位,判斷是否為同步幀頭,如果是,將當前移位個數作為同步標志位輸出。如果全部移位后還未有匹配合適的同步幀頭,則輸出故障標志位。
在同步標志位讀入后,首先判斷標志位是否正常,如果標志位異常,則判定是故障,直接輸出故障預警;如果標志位正常,則繼續判斷剩余比特流長度,如果小于預設遙測幀長,繼續進行數據域讀入,如果大于遙測幀長,直接根據遙測幀長進行數據截取,完成數據輸出。
我們選用Matlab作為仿真工具。Matlab是一種面向科學計算和工程仿真的高級語言,它更加貼近數學思維的編程習慣,猶如公式編輯一般進行邏輯的語法的輸入,編程上手簡單,提高了編程過程中的效率。
Matlab是一種解釋性語言,它可以直觀地進行執行邏輯的調試,避免了傳統開發工具中對于編譯、鏈接等過程中的繁瑣,此外,它對語法的要求低,可以快速地排除語法錯誤。
Matlab含有比較全面的工具庫,無論是進行邏輯運算或者復雜運算,都能夠調用豐富的工具庫來實現,此外,用戶還可以根據實際的應用,自定義工具庫。
在本方案中,將會在實時系統中運行模型,需要通過matlab的RTW工具箱進行實現。
它實現將matlab代碼轉換為機器代碼。而Matlab在設計探索方面具有多態性、基于矩陣的函數和交互式編程環境等優點。然而,在將算法從matlab轉換為機器代碼的過程中,軟件設計者面臨著一些重要的約束。
Matlab是一種動態類型,C是一種靜態類型的語言。編寫matlab程序時,不需要為變量定義數據類型和大小。雖然這種靈活性使開發算法作為概念證明變得容易,但當需要轉換到C時,程序員必須為所有變量分配適當的數據類型和大小。這是實現的的難點之一。
我們采用M腳本語言進行模塊的設計。
打開Simulink的模型庫,查找User-Defined Functions,找到S-Function。
S函數在使用過程中,需要注意direct feedthrough的應用,它表示模塊的輸入和輸出是否和有關聯選項,當direct feedthrough是1時,輸入數據將會關聯到輸出數據,并有標識提示。當direct feedthrough是0時,輸入數據將不會關聯到輸出數據,并無標識提示。
我們選用S函數的模板sfuntmpl.m進行模塊的封裝。
我們定義yaoce_slover為主體函數。在yaoce_slover啟動時,先進行setup,進行初始化,設置輸入參數數量 block.NumDialogPrms,設置預設默認值block.SetPreCompPortInfoToDefaults;讀入模塊的GUI配置值block.DialogPrm(X).Data,作為模塊的配置輸入,
block.NumInputPorts = 6;
block.NumOutputPorts = 5;
模塊的輸入參數為6項,輸出參數為5項。對于每一項的輸入和輸出進行配置:
block.InputPort(x).Dimensions;設置輸入的維度;
block.InputPort(x).DatatypeID; 設置輸入數據類型;
block.OutputPort(x).Dimensions;設置輸出的維度;
block.OutputPort(x).DatatypeID; 設置輸出數據類型;
設置采樣率block.SampleTimes。
最后注冊輸出函數Output和啟動函數Start,完成setup:block.RegBlockMethod;在Output函數中,根據圖4、圖5、圖6流程進行模塊實現。

圖4 數據域讀入流程

圖5 同步特征識別流程

圖6 遙測數據提取流程
模塊的輸入包括有比特流源碼數據、遙測幀解算長度、遙測幀同步幀頭、遙測幀同步幀頭長度。輸出包括遙測幀狀態、遙測幀數據以及遙測幀長度。
模塊封裝在S函數中,如圖7所示。封裝后的模塊,可以作為用戶自定義庫的組成部分,為后續模型所直接調用和使用。

圖7 模塊界面
在傳統的方案中,衛星綜合測試系統采用了PXI總線作為測試總線[8],分別部署有遙測采集計算機和故障預警模型計算機。遙測采集計算機中安裝有PXI I/O板卡,用來采集星上計算機的遙測信號。故障預警模型計算機安裝有數字量通信板卡和模擬量采集板卡,用來和地面模擬分系統進行數據交換。故障預警模型計算機和遙測采集計算機通過以太網進行數據通信,故障預警計算機監控遙測信號,完成對遙測信號最終分析判斷。如圖8所示。

圖8 衛星綜合測試系統傳統解決方案
遙測采集計算機安裝有windows系統,采用labview作為開發環境,進行遙測信號的采集、解算以及以太網傳輸[9-10]。
傳統方案中,遙測采集機和故障預警模型計算機獨立存在。遙測采集計算機的性能,取決于Windows系統的運行狀態。作為非實時系統,Windows系統除了本項目中的遙測解算功能軟件外,還額外承擔了網絡轉發的任務開銷。此外,由于遙測采集機和故障預警模型計算機無法做到實時同步,對于故障預警的反饋無法實時更新。
由表5可見,近六成的教學設計處于基礎層級,其關注點主要聚焦在教學目標的明確、教學過程的清晰、教學策略的合理等方面,只有近四成的職前教師在教學設計中關注了知識構建和學生數據分析觀念的發展.
本文采用了一體式設計,將遙測采集板卡和解算功能嵌入到故障預警模型計算機中,并運行實時系統和模型,以此來實現對遙測數據的實時應用如圖9所示。

圖9 衛星綜合測試系統基于實時系統模型解決方案
故障預警模型計算機采用PXI架構,選用NI公司PXI-1042機箱作為故障預警模型計算機機箱,它是一個標準的8槽4U機箱。零槽控制器選用NI 8840控制器,足夠滿足系統功能要求。采用定制的遙測信號接收板卡,進行遙測信號的比特流采集,采用NI 8431串口卡,進行串口通信,并與其它分系統進行數據交換。同時故障預警模型計算機將會通過網絡傳輸給顯示終端。
故障預警模型計算機將采用VxWorks實時操作系統,VxWorks本身和其應用程序都具有極好的可移植性。VxWorks庫組件幾乎都用C語言編寫,可容易移植到不同CPU上實現。VxWorks的發行版本直接對多種支持,主要包括PowerPC、Pentium、MIPS、SH、Xscale、ARM、68K和ColdFire等。VxWorks適用于緊急任務應用,具有極高的可靠性。VxWorks經過多年的開發和應用,各內核組件都經過實踐檢驗,已經相當穩定和成熟,包括軍事、航天等在內的各種重要行業都有其應用。
在模型中,加入仿真模型模塊,如圖10所示。

圖10 仿真模型模型及設置
輸入的第一項是比特流源碼,在本模型中是定制遙測采集卡所采集的數據;
輸入的第二項是需要解析的遙測幀的規定數據長度,在本模型中,由模型的其它配置或外部輸入控制;
輸入的第三項和第四項,是采集輸出的第四項和第五項,用來對每一次的比特流進行剩余字符的循環解析。
輸入的第五項,是需要解析遙測幀同步幀頭,在本模型中,由模型的其它配置或外部輸入控制。
輸入的第六項,是是需要解析遙測幀同步幀頭的數據長度,在本模型中,由模型的其它配置或外部輸入控制。
輸出的第一項是解析完后的數據狀態,如果是1表示在當前比特流中完成解析,如果是0表示在當前比特流中沒有完成解析。
輸出的第二項是解析完后的數據幀。
輸出的第三項是解析完后的數據幀長度。

圖11 模塊應用
如圖11所示, 在模塊的應用中,輸出的第一項解析完后的數據狀態,需要作為觸發模塊的使能輸入,當狀態為高時,Enable Subsystem將會處理解析完后的數據幀。當狀態為低時,Enable Subsystem不會處理解析完后的數據幀。
在配置項中,需要對模塊最大輸入長度和最大輸出長度進行約束。
在仿真迭代的過程中,每一拍的遙測幀數據將會作為模塊的輸出,直接應用在模型中。
在測試中,以2048 bps的遙測信號作為標準遙測輸入,256字節長度為輸出遙測幀長度,遙測幀同步頭3字節,仿真步長0.001 s,進行遙測性能對比。對比內容包括解算延時均值、解算延時誤差、故障預警同步延時。
解算延時均值考察的是遙測信號輸入和遙測幀輸出的平均解算速度;它將直接影響遙測幀的反饋輸出的速度,影響測試性能。
解算延時誤差考察的是解算速度的平均誤差;它直接體現的是突發狀態下,系統解算能力的穩定性,也會直接影響系統在應急狀態的反應能力。
故障預警同步延時考察的是遙測幀和故障預警模型的數據同步時間;它體現的是信號本身的傳輸時間,也是故
障預案模型的傳導消耗時間。
經過兩套設備對遙測信號的采集和運算,得到如下的性能對比。

表1 兩套設備性能對比 ms
本文首先分析了當前衛星綜合測試系統的發展前景和面臨的挑戰,從遙測信號的重要性和特性出發,著眼于新的基于實時模型遙測信號的解析方案。
首先從成本控制的角度出發,基于實時模型遙測信號的解析方案壓縮了原有的硬件成本,將傳統方案中的至少兩臺套的設備功能集成在一臺設備中進行實現。
其次,從性能上分析,解算延時均值、解算延時誤差和故障預警同步延時等指標大幅提高,提升了故障預案的綜合性能。
綜上所述,本文通過采用實時系統模型架構和簡單的模型模塊配置,便可實現多種遙測信號采集以及完成與故障預警模型數據交換,達到了快速建模、分析和仿真的目的,可大幅提升衛星綜合測試系統性能。