宋力立 印玲
摘要:論文簡述了衛(wèi)星姿態(tài)軌道控制軟件的功能構(gòu)成,并針對其核心的姿態(tài)確定和控制功能,總結(jié)一種宏觀的控制功能測試思路,可增加測試用例覆蓋的完整性,提高測試效率,保障測試質(zhì)量,同時該測試思路也可應(yīng)用于類似的大型控制軟件。
關(guān)鍵詞:姿軌控;軟件測試;控制;宏觀
1.背景
衛(wèi)星姿態(tài)軌道控制軟件,以下簡稱“姿軌控軟件”,主要完成衛(wèi)星姿態(tài)確定、星上軌道計算、衛(wèi)星姿態(tài)及軌道控制、系統(tǒng)故障識別及故障對策、輸入輸出數(shù)據(jù)處理等任務(wù);同時,還要完成對星載姿軌控計算機(jī)系統(tǒng)資源管理、姿軌控系統(tǒng)各種輸入輸出接口的數(shù)據(jù)及指令傳輸驅(qū)動,姿軌控計算機(jī)自檢及狀態(tài)監(jiān)測、故障識別及故障對策、雙機(jī)自主切換以及在軌遠(yuǎn)程編程等任務(wù)。
2.姿軌控軟件構(gòu)成
姿軌控軟件由功能上主要可以分為五大部分,分別為接口處理、姿態(tài)確定、姿態(tài)控制、故障診斷和底層管理,具體如下圖所示。
1)底層管理:主要包括衛(wèi)星上電初始化、硬件維護(hù)、三取二數(shù)據(jù)刷新、遙測數(shù)據(jù)下發(fā)、遙控數(shù)據(jù)接收、時鐘管理等等。底層管理部分的功能與一般嵌入式軟件的功能類似,完成與硬件相關(guān),與姿軌控任務(wù)無關(guān)的功能。
2)接口處理:姿軌控?fù)碛写罅康妮斎朊舾衅骷洼敵鰣?zhí)行部件,這些接口每周期與姿軌控軟件進(jìn)行數(shù)據(jù)交互。每周期開始時,將最新的姿態(tài)信息發(fā)送給姿軌控軟件,進(jìn)行姿態(tài)解算;每周期結(jié)束前,將姿軌控軟件輸出的最新一拍控制指令發(fā)送給執(zhí)行部件。
3)姿態(tài)確定:衛(wèi)星收到的敏感器信息均為原始的數(shù)據(jù),需要經(jīng)過大量的數(shù)據(jù)處理才能得到衛(wèi)星控制所使用的姿態(tài)角度,這個過程被稱為姿態(tài)確定。姿態(tài)確定首先通過地面注入的軌道六要素或GPS數(shù)據(jù),計算出衛(wèi)星當(dāng)前的軌道信息,再根據(jù)各敏感器件的原理公式,解算出控制用姿態(tài)。
4)姿態(tài)控制:衛(wèi)星根據(jù)當(dāng)前的姿態(tài)、控制模式、飛行任務(wù)或地面注數(shù)的要求,對衛(wèi)星的姿態(tài)進(jìn)行調(diào)整的過程。姿態(tài)控制功能被細(xì)分為多種模式,每種模式采用不同的控制算法,軟件根據(jù)這些算法得出各執(zhí)行部件的控制輸出,最終通過接口發(fā)送給各執(zhí)行部件,完成姿態(tài)控制功能。
5)故障診斷:對衛(wèi)星當(dāng)前控制狀態(tài)進(jìn)行故障診斷的模塊,包括單機(jī)接口故障、數(shù)據(jù)處理故障、系統(tǒng)故障等等,針對不同故障,采取切換備用單機(jī)、選用其他單機(jī)、更改控制模式等故障應(yīng)對措施。
3.宏觀的控制功能測試思路
對于姿軌控軟件測試而言,測試的最大難點(diǎn)是其中的控制功能,控制功能是姿軌控軟件的核心,在實(shí)際測試中,由于白盒測試很難模擬控制功能中姿態(tài)動態(tài)的變化過程,所以一般需要構(gòu)筑閉環(huán)系統(tǒng),采用黑盒閉環(huán)測試的方法進(jìn)行測試。
黑盒閉環(huán)測試的最大難點(diǎn)是衛(wèi)星姿態(tài)的不可控。由于衛(wèi)星敏感器的輸人由動力學(xué)模型提供,并與姿軌控系統(tǒng)和執(zhí)行部件構(gòu)成閉環(huán)回路,一旦軟件上電運(yùn)行,設(shè)計人員無法再對衛(wèi)星的姿態(tài)直接作出影響,僅能發(fā)送注數(shù)指令通過影響衛(wèi)星的控制流程對衛(wèi)星姿態(tài)作出間接影響,而姿軌控軟件測試中,大部分功能測試用例中最不可或缺的測試輸入恰恰就是敏感器單機(jī)上傳的數(shù)據(jù)經(jīng)過星上解算后的衛(wèi)星實(shí)際姿態(tài)。于是,測試人員不得不設(shè)計大量白盒測試的用例,一些能夠勉強(qiáng)實(shí)現(xiàn)的黑盒測試用例,數(shù)十分鐘甚至數(shù)個小時的執(zhí)行時間也使得測試執(zhí)行效率非常低下,在這種情況下,一種宏觀的控制功能用例設(shè)計思路就顯得非常重要。
控制是一個閉環(huán)的過程,如下圖2所示,姿軌控軟件根據(jù)敏感器的輸入姿態(tài)和當(dāng)前控制模式,計算執(zhí)行部件的輸出。動力學(xué)模型根據(jù)當(dāng)前拍執(zhí)行部件的輸出,解算新一拍的姿態(tài),轉(zhuǎn)化為敏感器件的輸入并傳輸給姿軌控系統(tǒng)。
在閉環(huán)系統(tǒng)中,強(qiáng)行對姿軌控系統(tǒng)或動力學(xué)模型內(nèi)部的數(shù)據(jù)進(jìn)行更改,很有可能導(dǎo)致系統(tǒng)產(chǎn)生不可預(yù)期的姿態(tài)偏差,并隨著系統(tǒng)的運(yùn)行不斷擴(kuò)大,最終導(dǎo)致姿態(tài)走飛,僅能通過重啟姿軌控系統(tǒng)以及動力學(xué)模型來重新運(yùn)行軟件進(jìn)行測試。
因此,在進(jìn)行控制功能的測試時,我們只能通過宏觀的角度,對軟件整體功能進(jìn)行測試,這里我們以姿軌控系統(tǒng)中帆板閉環(huán)控制功能為例進(jìn)行詳細(xì)說明。
下圖3為帆板控制流程示意圖,看上去復(fù)雜,實(shí)際上就是根據(jù)帆板上的太陽角度和當(dāng)前驅(qū)動標(biāo)志設(shè)置輸出的帆板驅(qū)動角速度。
一般白盒或灰盒情況下測試時,一個輸入對應(yīng)一個輸出,共需要設(shè)計15個用例,如下表1所示。
然而,即使根據(jù)上表設(shè)計出15個用例,在實(shí)際測試中也是不可執(zhí)行的。由于帆板太陽角度與帆板輸出的驅(qū)動角速度依靠動力學(xué)模型構(gòu)成閉環(huán)系統(tǒng),無法直接輸入,即使輸入也難以穩(wěn)定在某個值讓測試人員觀察結(jié)果,所以此時,應(yīng)當(dāng)通過更上層的功能層面對閉環(huán)驅(qū)動模式進(jìn)行測試。
通過對流程圖分析可知,驅(qū)動標(biāo)志的作用是判斷當(dāng)前帆板角度是由大角度控制收斂而來,還是由小角度震蕩發(fā)散而來,收斂時對驅(qū)動角速度加以控制,發(fā)散時保持默認(rèn)角速度不加控制。所以,只需要從功能上設(shè)計4個用例,即可對帆板閉環(huán)控制系統(tǒng)進(jìn)行測試。在測試實(shí)際執(zhí)行過程中,可以畫出當(dāng)前帆板角度和帆板驅(qū)動角速度的曲線圖,如有必要可以一一對比,同樣可以起到之前15個測試用例的效果。
帆板閉環(huán)控制系統(tǒng)僅為衛(wèi)星姿軌控系統(tǒng)中一個非常小的控制方案,但此類以上層功能特點(diǎn)為依據(jù)設(shè)計測試用例的方法,小到噴氣輸出、飛輪卸載等單機(jī)控制規(guī)律,大到機(jī)動控制、相對導(dǎo)航、軌道控制等衛(wèi)星主功能,都可以使用這類測試方法,增加測試用例的可執(zhí)行率。
4.結(jié)束語
對于姿軌控軟件中的控制功能,采用一種宏觀的測試思路,一方面可以增加每一個測試用例的覆蓋面,對控制功能中閉環(huán)的動態(tài)變化進(jìn)行測試,提升測試質(zhì)量,增加軟件問題的暴露率,另一方面,根據(jù)軟件閉環(huán)控制流程設(shè)計的測試用例,也可以大大提高測試用例的執(zhí)行效率,縮短測試執(zhí)行時間,提高測試效率。