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