, ,
(北京控制工程研究所,北京 100190 )
信息物理系統(cyber-physical systems)是近年來控制與計算機領域興起的一個重要研究方向。其主要內容是將系統中控制、計算、通信的過程當作一個整體來考慮,研究其中信息系統行為與對象物理狀態間的互動關系,從而進一步提升系統性能[1-2]。而基于對信息系統狀態測量并在線對系統計算或通信資源進行分配的反饋調度方法就成為了CPS研究中的一條重要技術路線。
與此同時,隨著人類在太空的活動日益頻繁,宇航任務模式也更加多元,進一步降低太空活動的成本,提高航天器自主任務管理能力的需求也不斷提高。如何進一步提高航天器控制系統自主運行的能力、提升控制性能、節約能量消耗、提升容錯能力和故障判讀、處置[3]能力,也成為航天器控制系統研究中的關鍵問題之一。
在已有的國內外研究成果中,在文獻[4]中首次提出了反饋調度的概念和一般的設計思路。文章對嵌入式微處理器的利用率和計算任務的截止時間丟失率進行實時測量,將其與各自設計值的誤差作為模型輸入,建立誤差傳遞函數。通過不斷調整給各個計算任務分配的任務周期,對CPU利用率進行動態調節。文獻[5]研究了控制性能與微處理器電壓之間的關系。其將處理器期望利用率,各個任務最大、最小執行時間等參數共同輸入調度模型,利用彈性調度算法,設計出了一套考慮處理器能耗的任務調度方法。文獻[6]將反饋調度方法應用在一類機械臂的控制系統設計過程中,將控制算法分解成不同的周期性任務,按照其數值大小分配權重,從而動態分配計算資源,在保證性能的前提下達到了節約計算資源的目的。文獻[7]將模糊控制方法應用于反饋調度算法的設計中。在文章中其應用雙層的模糊邏輯,首先使用第一層模糊邏輯來調整任務優先級從而降低截止時間丟失率,再應用第二次模糊邏輯在線調整和分配任務周期來控制處理器計算資源的利用率。與傳統調度方法相比較,在相同處理器利用率條件下達到更高控制精度。文獻[8]是設計了一種考慮在可調度性約束條件下,基于固定優先級的單調速率調度的多任務系統最優任務周期分配算法。并通過物理實驗驗證了算法的有效性。
文獻[9]是航天器容錯控制與故障診斷方面的一篇比較權威的綜述。從文中可知,目前航天器控制系統的故障研究主要集中在執行機構(如推力器、反作用輪)以及測量機構(陀螺、敏感器)的故障上,而且多以開環的故障診斷方式為主。一般方法是利用先進控制算法在執行機構故障時設計欠驅動的控制算法,以及應用濾波估計方法在無直接測量輸出情形下對狀態量進行重構與估計。而對于航天器上嵌入式計算與通信系統的故障研究較少,僅有在網絡控制領域會分析數據丟包等故障,但諸如處理器因為供電電壓不足或多核處理器部分故障導致的降頻等故障形式,以及相關的容錯控制方法未見研究成果發布。
本文主要結合已有的反饋調度方法,設計了一種基于對任務執行時間測量的在線反饋調度與控制算法。能夠通過調節任務執行周期,一方面保證航天器在軌工作過程具有滿足指標的高控制精度,另一方面可以使航天器在軌的非工作過程通過延長控制周期,來降低整個軌道周期的平均能耗。與此同時,在處理器發生降頻故障時,能夠自主調節任務的周期分配,保證航天器姿態穩定。文章結構如下:第一部分引言介紹文章的主要研究內容及背景;第二部分給出所研究問題的數學模型;第三部分介紹所提出的反饋調度與控制算法;第四部分為仿真驗證;第五部分為文章的結論。
航天器線性化姿態動力學模型可描述為[10]:
(1)

(2)
聯立式(2)可得到系統模型的狀態空間表達式:

(3)

其中:
星上控制系統采用計算機控制模式,所以將式(3)進行離散化處理,得到:
x(k+1)=F(T)x(k)+G(T)u(k)
u(k)=-Kx(k)
(4)
其中:K為反饋增益陣,根據控制算法求得,T為采樣周期。一般來說,對于計算機控制系統越小的控制周期能夠實現更高的控制精度。而同時越小的周期就意味著系統需要將更多的CPU分配資源給控制系統。對于低軌道航天器而言,其軌道周期約95 min,但其中需要航天器進行高精度指向控制的工作時段只有約10 min,其余時間均可認為是控制系統的非工作時段。所以在任務設計時可以在工作時段給控制系統分配較多的計算資源,提高控制精度,而在非工作時段可將資源分配給如數據處理、通信等系統,提高任務完成質量,優化航天器的整體性能。
航天器的控制任務在星載嵌入式系統上具體實現時,要將數據采集、計算、輸出的過程分解為順序執行的幾個周期性子任務[11]。對于微小型航天器控制系統而言,由于功耗和體積限制苛刻,所以各個測量敏感器需要共用一塊CPU。其一階狀態量xp以及二階狀態量xd通過MEMS地球、太陽敏感器和三軸陀螺儀進行采集。計算單元在一個控制周期開始時發出采集指令,在經過一段執行時間后,所采集到的狀態量進入系統內存中,在控制算法所需的狀態量均采樣得到之后,一同送入處理器,代入控制算法進行運算,最終將計算機所生成的控制指令發到執行機構。整個控制任務的周期為采樣周期T,xp的采集的子任務執行時間為cp,xd的采集子任務執行時間為cd,最終控制算法執行及輸出子任務執行時間為co。在此過程中,CPU用于控制任務的利用率可表示為Ua=(cp+cd+co)/T<1。在相同的軟硬件環境內,CPU功耗E與利用率直接相關,存在表達式:
(5)
整個控制任務模型可以描述為τc(cp,cd,co,T,Ua),對于傳統的航天器控制系統而言,一般在設計過程中就確定一個固定參數的τc。不同任務間留夠充足的時間裕量避免時序沖突。這種思路的優點是便于進行不同系統間的銜接,設計難度較低。但隨著對航天器集約化要求及容錯能力日益提高,就需要設計一種能夠自主靈活分配資源,處置故障的調度與控制算法。

圖1 反饋調度算法結構圖
本文所研究的此類反饋調度算法,其實現過程主要分為三個步驟:第一是任務執行時間測量;其內容是對處理器在一個控制周期內所需執行的各個任務的具體耗時進行測量與估計;第二是資源調度;其核心是根據上層軟件分配給控制系統的可用處理器利用率以及控制任務所需的執行時間,來調整控制周期。第三是反饋增益計算;即根據新的控制周期,來重新調整控制算法中的控制增益。如果不進行調整,有可能造成控制性能下降甚至系統發散。本反饋調度算法結構如下所示。
其中Ci為任務執行時間,Ur為系統給控制任務的CPU利用率,yr為控制系統的參考輸入。
Ci為反饋調度器對CPU內不同任務執行時間的測量。一般來說可以通過對計算單元內時間片的判讀得到,但其中會存在因量化效應、時間抖動產生的噪聲,需要進行濾波估計。而反饋調度算法的另外一個重要功能就是當計算單元發生故障,導致執行時間發生變化時,傳統的固定參數的優先級調度方法會產生計算超時等時序問題,導致系統失控,而反饋調度方法能夠自主調整任務周期,調整控制增益,保證控制系統穩定運行。
執行時間測量模型可描述為:
(6)

(7)

Ur為CPU分配給控制系統的參考利用率,一般由操作系統及任務規劃軟件決定。
定義調度任務模型為τs(cs,Ts),一般情況下為保證計算資源有效利用及系統穩定,調度周期不易過小,設定Ts>3T。調度任務的作用就是根據給系統給控制任務分配的CPU利用率,來對控制周期進行分配,并計算相應的控制增益。則根據式(7),有控制周期表達式為:
(8)

(9)
控制增益計算一般應用計算機控制理論,根據系統狀態矩陣及采樣周期計算控制增益陣。本文中采用離散最優控制方法,將系統式(4)帶入Ricatti方程:
FTSF-S-FTSG(GTSG+R)-1GTSF+Q=0
其中:正定陣Q和R為二次型指標的加權陣,表達式為:
解得對稱陣S,再解出:
K=(GTSG)-1GTSF
(10)
其中:Q越大則得到的控制精度越高,而R越大則控制輸出則越小,Q和R的選擇決定了控制精度與控制輸出的折中關系,同時也需要謹慎調節以避免執行機構輸出達到飽和。
此時就可以保證對于調度算法給出的任務周期T,找到一個對應的最優反饋增益陣K。
仿真研究的任務背景是一個微型低軌道航天器,工具使用Matlab中Truetime工具箱。仿真參數如表1所示。

表1 仿真參數設置[12]
xdr=[0.57sin(t/40),-0.57cos(t/50),
0.57sin(t/60)]Tdeg/s
在此設定航天器的軌道周期在t∈[600,1 000]s時為工作弧段,要求在此時段內達到指標跟蹤精度要求,以便于載荷正常工作。而在其余非工作時段內,要求航天器姿態保證跟蹤誤差較小,保證航天器姿態可控即可。而在t=1 200 s時,給系統注入計算單元發生故障,驗證反饋調度系統的容錯能力。此時處理器降頻至0.25f,則任務執行時間均變為標稱值的4倍(考慮控制任務代碼執行速率均與處理器速度相關)。
根據以上所交代的任務背景,可得到各個時段內控制系統分配到的計算單元的任務參數為:
圖2為計算單元利用率變化曲線,實線為計算單元利用率的參考輸入,虛線為根據為系統實際利用率??梢钥闯霰疚慕o出的反饋調度算法對利用率需求變化具有很高的跟蹤精度。特別是在1200 s故障注入時刻之后,如圖所示,調度算法經過30 s,即3個調度周期后使系統計算利用率恢復到參考輸入水平。

圖2 CPU利用率變化曲線
圖3為航天器在軌姿態角狀態變化曲線,從圖3可以看出,在整個仿真時間段內,即使在1 200 s故障發生后內角度跟蹤精度均保持在±5°之內。在所設置的航天器工作弧段600~1 000 s內,系統姿態控制精度從±1.5°提升到±0.5°, 達到性能指標要求。而對于傳統控制與調度方法,要保證工作弧段性能指標要求,就需要在整個周期內保持控制精度在±0.5°之內,這就需要計算單元給控制系統分配固定的計算資源以保證任務要求,在非工作時段就會造成一定的計算資源浪費及過多的能耗損失。所以本文提出的反饋調度方法與傳統方法相比,根據式(5)可知,在一個軌道周期之內控制系統能夠極大的節約CPU能耗及計算資源。

圖3 角度變化曲線
圖4~6為基于Truetime工具箱得到的計算單元內部的工作時序仿真結果。從圖4可知,在600 s之后因為航天器進入指向跟蹤的工作弧段,系統給予控制系統的計算資源有所增加,此時的控制任務周期從2 s降為0.2 s左右,而同時由圖3所示的系統狀態變化曲線上也能反映在得到更多CPU資源后,航天器的控制精度明顯提高,驗證了反饋調度算法能夠動態分配資源,提高系統整體性能。

圖4 工作時段時序變化曲線
由圖5可以發現,在1200 s對航天器進行了故障注入之后,控制任務中的各個子任務的執行時間顯著增加。但從圖6可以看出,在1210 s之后,經過一個調度之后,系統的控制周期開始逐漸變大,說明反饋調度系統已經及時感知到了故障的發生,并采取了相應的應對策略。

圖5 故障時刻執行時間變化

圖6 故障后任務周期變化
同時這也驗證了反饋調度算法能夠通過調整控制周期來保證系統的實際CPU利用率的恒定,從而保證控制系統內部任務之間以及控制系統與其他需要使用CPU的系統間不會發生時序沖突,保證整個航天器系統能夠穩定運行。
本文介紹了一類應用于航天器控制系統的動態調度CPU使用率并調整控制增益的反饋調度方法。通過仿真分析,該方法能夠在航天器在軌的工作與非工作時段動態分配系統的計算資源。從而使得航天器控制系統具有了在工作時段提供高精度指向控制,滿足任務需求,在非工作時段保證姿態穩定,節約系統功耗及計算資源的動態資源管理能力。同時在遇到星上計算機故障時,能夠通過調整任務周期的方式,保證姿態穩定,達到容錯控制的目的。