高 艾,崔平遠,2,崔祜濤
(1.哈爾濱工業(yè)大學深空探測基礎研究中心,哈爾濱 150001; 2.北京理工大學深空探測技術研究所,北京100081)
小天體撞擊任務需要利用在軌星敏感器與陀螺測量信息完成定姿,同時聯(lián)合導航相機拍攝的目標天體圖像信息及加速度計測量值進行軌道確定,并在軌道機動時,根據(jù)軌道修正制導律給出的期望機動信息,通過姿態(tài)制導控制系統(tǒng)完成機動期望姿態(tài)的調(diào)整,進而成功執(zhí)行點火機動,此后,姿態(tài)控制系統(tǒng)應將姿態(tài)重新調(diào)整回對目標天體的定向模式,并利用飛輪進行穩(wěn)定模式下的控制[1-4].在這一復雜的過程中,星載GNC(制導、導航與控制)系統(tǒng)的設計尤為重要,其肩負著數(shù)據(jù)采集、姿態(tài)確定、軌道確定、軌跡制導、姿態(tài)控制、對外數(shù)據(jù)通訊等諸多任務,是保證最終成功完成撞擊任務的關鍵因素.
以往的近地衛(wèi)星GNC系統(tǒng)執(zhí)行任務簡單,操作系統(tǒng)運行環(huán)境單一[5-7].而小天體撞擊任務對星載GNC系統(tǒng)的功能要求變得越來越復雜,組合技術的發(fā)展使得操作系統(tǒng)對實時性、穩(wěn)定性、精度的要求越來越高,采用傳統(tǒng)的軟件結構來實時準確地實現(xiàn)系統(tǒng)功能已很困難,嵌入式實時操作系統(tǒng)(RTOS)在此方面則有著其突出的優(yōu)點.VxWorks操作系統(tǒng)是一種嵌入式實時操作系統(tǒng),提供了高效的實時任務調(diào)度、中斷管理、實時的系統(tǒng)資源以及任務間通信等功能.高性能的操作系統(tǒng)微內(nèi)核Wind支持實時特性,其設計減少了系統(tǒng)開銷,高效的任務管理保證了對外部事件快速、準確的反應;快速靈活的任務間和進程間通信允許獨立的任務在實時系統(tǒng)中與其行動相協(xié)調(diào)[8-9].VxWorks嵌入式實時操作系統(tǒng)經(jīng)過廣泛的驗證,已成功應用在航空、航天中的關鍵領域.
基于VxWorks嵌入式實時操作系統(tǒng)的上述特點,本文以小天體撞擊任務為背景,在PC-104嵌入式計算機與dSPACE實時仿真平臺的聯(lián)合環(huán)境下,針對小天體高速撞擊任務,應用VxWorks嵌入式實時操作系統(tǒng)對星載軟件進行設計.
在撞擊器接近目標天體的過程中,撞擊器通過星敏感器與陀螺聯(lián)合定姿,可以得到撞擊器相對慣性空間的姿態(tài)信息,該信息被用來控制姿態(tài)的同時,也傳送給軌道確定系統(tǒng),軌道確定系統(tǒng)利用導航相機拍攝的目標天體圖像信息(導航相機對目標天體進行拍攝,對獲得的圖像進行處理,從而提取圖像的光心信息)和加速度計測得的作用在撞擊器上的控制加速度,確定撞擊器相對目標天體的位置和速度信息.在執(zhí)行軌道修正機動時,軌道修正制導律利用軌道確定系統(tǒng)給出的軌道信息定時計算期望的機動速度增量,并將該速度增量傳送給姿態(tài)制導系統(tǒng);姿態(tài)制導系統(tǒng)根據(jù)該速度機動增量形成期望姿態(tài),姿態(tài)控制系統(tǒng)驅(qū)動姿控推力器開關,機動到該期望姿態(tài);發(fā)動機點火產(chǎn)生期望的速度增量后,姿態(tài)控制系統(tǒng)將撞擊器的姿態(tài)重新調(diào)整回導航相機對目標天體的定向模式,之后利用飛輪進行姿態(tài)穩(wěn)定控制.因此,可以把星載GNC系統(tǒng)結構分為非軌道機動模式與軌道機動模式.
在非軌道機動模式下,星敏感器和陀螺分別對撞擊器的姿態(tài)和姿態(tài)角速度進行測量,通過姿態(tài)確定濾波器得到姿態(tài)信息的估計值;同時導航相機對小天體進行拍照,經(jīng)過圖像處理,并聯(lián)合拍照時刻撞擊器的姿態(tài)信息,通過軌道確定濾波器得到軌道信息估計值;姿態(tài)制導算法根據(jù)軌道信息計算得到期望姿態(tài),將估計姿態(tài)與期望姿態(tài)共同作為姿態(tài)控制器的輸入,進而將得到的控制指令發(fā)送給飛輪,由飛輪產(chǎn)生的控制力矩作用于撞擊器,實現(xiàn)非機動情況下的穩(wěn)定模式.
在軌道機動模式下,星敏感器與導航相機均停止工作,姿態(tài)確定濾波器通過陀螺測得的姿態(tài)角速度信息進行姿態(tài)估計;同時軌道確定濾波器根據(jù)加速度計的測量值得到軌道信息估計值,再經(jīng)過軌道修正制導律得到機動指令;姿態(tài)制導算法根據(jù)該指令計算得到機動期望姿態(tài),將估計姿態(tài)與期望姿態(tài)共同作為姿態(tài)控制器的輸入,進而將得到的控制指令發(fā)送給姿控推力器,由姿控推力器產(chǎn)生的控制力將撞擊器姿態(tài)調(diào)整到機動期望姿態(tài);然后將機動指令發(fā)送給軌控發(fā)動機,將發(fā)動機產(chǎn)生的控制力作用于撞擊器,實現(xiàn)軌道機動控制.
根據(jù)上述自主導航與制導系統(tǒng)的工作流程,整個系統(tǒng)分為3部分:姿態(tài)控制系統(tǒng)、自主導航系統(tǒng)、軌道制導系統(tǒng).其中,自主導航系統(tǒng)又可細分為姿態(tài)確定子系統(tǒng)與軌道確定子系統(tǒng).考慮到不同飛行模式,系統(tǒng)的軟件所涉及到的主要函數(shù)有:GNC規(guī)劃函數(shù)、軌道確定函數(shù)、軌道遞推函數(shù)、姿態(tài)確定函數(shù)、姿態(tài)遞推函數(shù)、姿態(tài)制導I函數(shù)、姿態(tài)制導II函數(shù)、姿態(tài)控制I函數(shù)、姿態(tài)控制II函數(shù)、撞擊制導律函數(shù)、機動點火函數(shù).其中,GNC規(guī)劃函數(shù)是整個系統(tǒng)的邏輯中樞,決定了其他函數(shù)的調(diào)用,姿態(tài)遞推、軌道遞推函數(shù)分別是姿態(tài)確定子系統(tǒng)和軌道確定子系統(tǒng)的核心函數(shù),姿態(tài)確定與軌道確定是對姿態(tài)確定子系統(tǒng)和軌道確定子系統(tǒng)估計精度更新的函數(shù),姿態(tài)制導和姿態(tài)控制函數(shù)由于在姿態(tài)穩(wěn)定、姿態(tài)機動等不同模式下所采用的執(zhí)行機構不同,由姿態(tài)機動標識位將姿態(tài)控制系統(tǒng)的函數(shù)分為Ⅰ、Ⅱ兩種,Ⅰ為常規(guī)飛行模式、Ⅱ為姿態(tài)機動模式.根據(jù)各個函數(shù)之間的數(shù)據(jù)依賴關系可將星載GNC系統(tǒng)進一步細化,得到系統(tǒng)工作狀態(tài)數(shù)據(jù)流圖,如圖1所示.
圖1中的每條線代表各個功能函數(shù)對其他函數(shù)數(shù)據(jù)的依賴以及各函數(shù)間的執(zhí)行邏輯關系,根據(jù)此數(shù)據(jù)流圖,并結合VxWorks嵌入式實時操作系統(tǒng)中任務的特點與任務劃分原則,對小天體撞擊任務進行如下模塊化分解.
(1)主任務
主任務的優(yōu)先級最高,用于完成各部分的初始化,設置系統(tǒng)時鐘中斷頻率、系統(tǒng)當前時間及任務調(diào)度策略,完成對各信號量、子任務及定時器的創(chuàng)建,并在分別獲取得到相關信號量后,啟動定時器,結束相關任務.
(2)GNC規(guī)劃任務
GNC規(guī)劃任務的優(yōu)先級僅次于主任務,旨在每個執(zhí)行周期的首部,根據(jù)當前撞擊器的軌道/姿態(tài)狀態(tài)量,給出軌道/姿態(tài)/點火機動標志位,為確定同周期GNC任務下的功能函數(shù)的執(zhí)行順序提供判斷依據(jù).
(3)數(shù)據(jù)采集任務
圖1 系統(tǒng)工作狀態(tài)數(shù)據(jù)流圖
數(shù)據(jù)采集任務的優(yōu)先級僅次于GNC規(guī)劃任務,根據(jù)敏感器測量數(shù)據(jù)類型的不同,將數(shù)據(jù)采集任務分為4個子任務,分別為速率陀螺數(shù)據(jù)采集任務、加速度計數(shù)據(jù)采集任務、星敏感器數(shù)據(jù)采集任務、光學導航相機數(shù)據(jù)采集任務.4個數(shù)據(jù)采集任務的優(yōu)先級相同,任務間采用時間片輪轉調(diào)度算法,用于在不同采樣周期讀取各敏感器的測量數(shù)據(jù).
(4)GNC任務
GNC任務的優(yōu)先級僅次于數(shù)據(jù)采集任務,在該任務中應根據(jù)GNC規(guī)劃任務給出的各個標志位的不同組合來確定不同的飛行模式,并根據(jù)數(shù)據(jù)采集任務得到的當前時刻敏感器更新數(shù)據(jù),完成在每個執(zhí)行周期內(nèi)對撞擊器狀態(tài)的導航、制導與控制任務.
(5)軌道確定任務
軌道確定任務的優(yōu)先級最低,該任務用于在穩(wěn)定狀態(tài)下,利用光學導航相機數(shù)據(jù)對軌道進行修正.受到相機圖像處理耗時長及傳輸延時的限制,在滿足拍照條件的情況下,軌道確定每15 s進行一次,以提高導航精度.
(6)監(jiān)控計算機的通信任務
該任務向監(jiān)控計算機輸出監(jiān)控所需的信息,并接收監(jiān)控計算機的調(diào)試信息.該任務是系統(tǒng)調(diào)試和維護的關鍵,在系統(tǒng)正常工作時可以關閉.
(7)綜合顯示任務
該任務負責在計算機顯示屏幕上以虛擬儀表的方式顯示當前的姿態(tài)、角速度、速度、位置和各執(zhí)行器機動等信息,負責向使用人員提供最直接的參數(shù),在線觀察該系統(tǒng)的工作狀況.該任務占用系統(tǒng)內(nèi)存量最大,但不直接參與計算,作為整個系統(tǒng)的輔助任務,在系統(tǒng)正常工作時可以關閉.
二進制信號量是VxWorks嵌入式實時操作系統(tǒng)中效率最高、使用最廣泛的信號量,它需要的系統(tǒng)開銷最小,因而特別適于高性能的需求,同時適用于在不需要互斥信號量的高級特征情形下的互斥.本系統(tǒng)主要使用二進制信號量解決各個任務的同步問題,同時使用互斥信號量解決各個任務中變量的保護問題.
系統(tǒng)在接收到定時器信號后,以統(tǒng)一的執(zhí)行周期為節(jié)拍進行工作.不同敏感器的數(shù)據(jù)采集任務在符合工作要求的前提下,按各自的采樣周期采集數(shù)據(jù),并給出信號量.等待相應信號量的各個任務被激活后,根據(jù)任務的優(yōu)先級別,分別進行相應作業(yè).此外,各任務之間的數(shù)據(jù)交換過程采用“共享緩沖區(qū)+信號量”的手段實現(xiàn),以達到效率高、傳輸數(shù)據(jù)量大的目的.
為了驗證所設計的星載GNC軟件能夠有效運行,在PC-104嵌入式計算機與dSPACE實時仿真平臺的聯(lián)合環(huán)境(如圖2所示),對初始位置、速度均為隨機偏差量的撞擊器接近過程進行仿真,其中B平面上初始位置、速度偏差分別服從標準均方差8km、0.1m/s的正態(tài)分布.具體仿真參數(shù)如表1所示,仿真結果如圖3~7所示.
圖3是仿真飛行任務過程中邏輯分析儀WindView給出的事件序列采樣片段,從控制窗口中可以清晰地看到星載GNC軟件執(zhí)行周期的成功實現(xiàn)過程,其中:Task_GNC_pro為GNC規(guī)劃任務、Task_SAM_X為數(shù)據(jù)采集任務、Task_GNC為GNC任務、Task_ORB_fuse為軌道確定任務,其他則為VxWorks嵌入式實時操作系統(tǒng)的系統(tǒng)任務,如tExcTask為異常任務、tLogTask為日志任務、tWdbTask為目標代理任務、tNetTask為網(wǎng)絡任務等.具體分析單個執(zhí)行周期的任務執(zhí)行流程如下.
表1 綜合仿真參數(shù)
圖2 仿真環(huán)境的搭建框圖
圖3 事件序列采樣片段
圖4 B平面內(nèi)的撞擊器位置曲線
圖5 發(fā)動機的開關曲線
圖6 撞擊器的姿態(tài)四元數(shù)矢部向量曲線
圖7 最終撞擊點在B平面內(nèi)位置示意圖
首先,發(fā)起主任務(任務優(yōu)先級為100),用于創(chuàng)建信號量及子任務、創(chuàng)建并啟動定時器、設置調(diào)度策略,并在獲取狀態(tài)指標信號量資源處進入任務阻塞隊列,放棄CPU占用權.
此時,被主任務創(chuàng)建的GNC規(guī)劃任務(任務優(yōu)先級為101)獲得CPU占用權,該任務根據(jù)當前的撞擊器狀態(tài)數(shù)據(jù)執(zhí)行GNC任務規(guī)劃功能函數(shù),給出軌道機動、姿態(tài)機動、點火機動標志位.這里通過定時器處理函數(shù)釋放定時器到期信號量,并結合任務優(yōu)先級的合理設置,從而保證GNC任務規(guī)劃在每個控制周期的最初執(zhí)行.
GNC規(guī)劃任務在下一次定時器到期釋放相應信號量之前,在獲取定時器到期信號量資源處進入任務阻塞隊列,此時,對應于測量裝置的4個數(shù)據(jù)采集任務(任務優(yōu)先級均為102)搶占CPU,并根據(jù)GNC規(guī)劃任務給出的機動標志位控制采集任務的執(zhí)行情況,具體情況為:若軌道機動/姿態(tài)機動標志為0,則采集陀螺、星敏感器及相機數(shù)據(jù),釋放相應的數(shù)據(jù)更新信號量;否則,采集陀螺、加速度計數(shù)據(jù),釋放相應的數(shù)據(jù)更新信號量.
在數(shù)據(jù)采集任務進入任務阻塞隊列后,GNC任務(任務優(yōu)先級為103)獲得CPU占用權,并在獲取數(shù)據(jù)采集任務釋放的相關數(shù)據(jù)更新信號量后,讀取當前時刻的相關數(shù)據(jù)信息,再根據(jù)GNC規(guī)劃任務給出的機動標志位,選擇采用不同的飛行模式.此外,在非機動模式下,若定時器到期(即存在星敏感器數(shù)據(jù)的更新值),則在該子任務的開始階段,進行姿態(tài)確定,對撞擊器的姿態(tài)及角速度信息進行修正.
軌道確定任務(任務優(yōu)先級為104)是在非機動模式下,每15 s獲得一次相機數(shù)據(jù)更新值,并利用每個控制周期中的剩余時間占用CPU執(zhí)行軌道確定功能函數(shù),并在撞擊器相應控制周期的初始時刻對撞擊器的導航狀態(tài)估計量進行修正.
此外,通過對仿真結果曲線(見圖4~7)的分析可知,撞擊器在4次軌道機動模式下成功完成了機動期望姿態(tài)的計算、調(diào)整與軌控發(fā)動機點火過程,同時在每次機動后都能夠通過姿態(tài)控制系統(tǒng)順利返回穩(wěn)定模式,符合GNC系統(tǒng)的工作邏輯模式,最終成功撞擊目標小天體.
綜上所述,基于VxWorks嵌入式實時操作系統(tǒng)所設計的小天體撞擊GNC軟件完全可以滿足小天體撞擊任務的實時性要求,為撞擊任務的順利進行提供有效的保證.
本文在分析了星載GNC系統(tǒng)原理結構的基礎上,基于VxWorks嵌入式實時操作系統(tǒng)劃分了小天體撞擊任務模塊并定義了各自的優(yōu)先級,提出了任務間的同步互斥方式與通信手段,同時給出了星載GNC軟件單個執(zhí)行周期的實現(xiàn)過程.在PC-104嵌入式計算機與dSPACE實時仿真平臺聯(lián)合環(huán)境下進行了仿真,結果表明,應用嵌入式實時操作系統(tǒng)VxWorks所開發(fā)的星載GNC軟件能夠為小天體撞擊任務的成功完成提供有效保證.