張 程何益康林榮峰朱晏慶
(1.上海航天控制技術研究所,上海 201109; 2.上海市空間智能控制技術重點實驗室,上海 201109)
動態系統建模工具[1]的仿真工具箱被廣泛應用于衛星控制系統的方案設計中,為用戶提供了非常豐富好用的基礎模塊,使用戶可以根據被控對象的特點從模塊庫中選用適用的模塊,僅修改相應的參數即可建立航天器軌道動力學和姿態動力學模型等,它支持各類連續、離散、線性和非線性等系統的構建,支持對動力學模型進行編譯和仿真,可以輕松有效的完成系統的仿真。無論多么復雜的衛星控制系統,都能采用直觀的“方框圖”[2],使用面向對象的設計方法,完成控制系統模型的輸入和仿真計算,實現對衛星控制系統這一動態系統準確、快速的建模。因此常常被衛星控制系統方案設計師用于衛星控制算法的設計,并利用可視化的仿真工具,對設計的算法進行驗證。
然而同時,隨著使用的深入,動態系統建模工具技術進行系統仿真也暴露出一些弊端,主要反映在以下幾個方面:
a)集成計算機算法處理到動態系統建模工具模型的設計方法,其內部嵌入式架構算術與邏輯處理單元執行方式,相比傳統的基于CPU硬件平臺的嵌入式軟件開發,有比較大的差異,因為CPU結構難以完美的被動態系統建模工具模型模擬,比如動態系統建模工具模擬的外部中斷觸發、內部定時機制會嚴重影響系統任務調度的過程,降低仿真效果,進而影響計算機核心算法處理,這些與實際使用真實微控制器算法的運行結果的差異,會降低關鍵技術方案設計的可信性;
b)傳統的動態系統建模工具模型,往往難以仿真字節或字序顛倒、特殊寄存器的位支持等具體硬件設備的特殊要求,僅對使用通用數據類型的算法處理有著較好的支持(例如16位、32位、64位整型、浮點數等),因此只能滿足基本的計算精度,但是對于衛星控制系統的下位單機軟件行為過程的模擬往往不夠;
c)衛星控制系統軟件運行在真實CPU平臺上時,是離散型、非線性的狀態,因為軟件在運行過程中不是動態連續的,會受到中斷觸發、任務搶占調度等外部影響,而動態系統建模工具模型則往往是動態連續的過程,導致使用動態系統建模工具進行仿真與使用真實CPU進行測試的結果存在出入,影響系統的故障模擬、指令注入的測試,甚至全系統的閉環仿真測試;
d)衛星控制系統領域的仿真建模,由于系統的復雜性和實時性,造成使用動態系統建模工具進行算法過程設計時復雜性的提高,隨之而來的是執行效率降低,導致實時性的降低影響到系統運行的正確性和精確性;
e)在使用動態系統建模工具搭建衛星控制系統單機模型時,受限于動態系統建模工具自身限制,在面對定制單機的特殊協議,使用面向過程的Ada、C/C++等高級語言,能夠規避資源浪費等問題,靈活性更好。
隨著對衛星控制系統軟件越來越高的重用化要求,軟件研制方基于工程積累的、在軌飛行驗證過的成熟軟件構件,正在建立可反復利用、可用于后續衛星控制系統軟件重用的構件庫,以往的開發方式仍以人工手工編碼的方式進行軟件實現,難以適應當前基于模型的系統工程(MBSE)、以及軟件定義衛星等技術的發展,盡管一些動態建模工具已具有一定的自動生成軟件代碼的功能,以及相應的模型形式化驗證功能,但對于生成的軟件代碼在真實目標環境的運行驗證手段不足,也難以實現對任務提出方的需求開展可信驗證。
同時,衛星控制系統軟件運行監控技術是提供可信證據,驅動協同演化和協同開發過程的關鍵基礎技術。運行監控技術主要應用于軟件配置項測試和驗證過程中,傳統方法中,常使用插樁、植入探針或“打點”的方式進行,這類方式會直接改變軟件產品的實體,影響獲得結果和證據的準確性及可信性。
基于上述分析,本文通過采用純軟件的實現方法為嵌入式軟件開發提供一個可監控的、可信的軟件開發和驗證平臺,提出了一種基于虛擬化技術的衛星控制系統軟件構件庫可信驗證技術,并與任務提出方使用動態系統建模工具實現的控制算法模型進行協同、同步、動態仿真,運用軟件非干涉運行監控技術,在不改變衛星控制系統軟件實體的情況下,對軟件實體的運行狀態、動態行為和執行結果進行監控,獲取可信的開發證據和應用證據,實現對用戶需求的驗證與確認。
軟件與硬件設備尚未開始設計的情況下,在衛星控制系統研制的早期,需要驗證整個方案設計的可行性,在控制算法模型內部仿真軟件算法控制等模型,使用動態建模工具搭建控制算法模型仿真系統,形成一個全數字的閉環仿真系統,與動力學模型之間進行輸入輸出數據交互,用以驗證整個系統方案的可行性,如圖1所示。
衛星控制系統由控制器、敏感器和執行機構組成。當前衛星使用的敏感器主要包括慣性敏感器、太陽敏感器、恒星敏感器、地球敏感器等,執行機構主要包括反作用飛輪、控制力矩陀螺、推力器等。這些敏感器、執行機構與控制器之間普遍采用RS422串口通訊協議、MIL-STD-1553B總線協議、AD模擬量輸入、PWM脈沖寬度調制、CAN總線協議等,因此,在建立動力學模型的輸入模塊和輸出模塊也采用這些通訊協議的模擬模塊。
動力學模型在接收到衛星控制器發送的執行機構指令后,采用常微分方程組或偏微分方程等的組合,同時考慮衛星的剛體彈性體混合系統及剛體液體混合系統的特性,模擬撓性衛星的姿態動力學和軌道動力學,特別是對衛星受到的主要外力矩進行模擬,比如太陽輻射壓力矩、重力梯度力、氣動力、地磁場力矩等環境力,以及主要內力矩進行模擬,比如推力器的噴射力矩、反作用飛輪產生的角動量力矩、液體推進劑產生的液體晃動力矩、太陽電池陣產生的擾動力矩。

圖1 使用動態建模工具實現控制算法模型仿真系統
為了使得控制算法模型與外部數據可以交互,使用動態建模工具建立姿態動力學模型和軌道動力學模型的外圍設備,同時建立控制器模型,從而達到閉環仿真驗證衛星控制系統方案的目的。
相對于衛星控制器的控制算法模型來說,控制算法模型的運行控制實現輸入模塊接口,獲取控制算法模型數據是輸出模塊接口。
輸入模塊包括422模塊(模擬RS422串口通訊協議)、1553B模塊(模擬MIL-STD-1553B總線協議)、AD模塊(模擬模擬量輸入功能)、DIO模塊(模擬數字輸入輸出電路)、PWM模塊(模擬脈沖寬度調制方法)和CAN模塊(模擬控制器局域網絡總線協議)等,他們作為動力學敏感器采集接口的輸入。
輸出模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為動力學執行機構模型的輸出。
由于輸入模塊和輸出模塊均是使用動態建模工具建立的、模擬真實硬件通訊協議的軟件模塊,因此,使用共享內存技術可以實現對控制算法模型的控制,使用動態建模工具實現的控制算法模型的仿真數據在內部傳遞。
在衛星控制系統研制流程中,軟件的設計開發往往是在系統方案設計評審通過后,在這個階段,使用動態建模工具無法對真實計算機算法處理軟件進行功能驗證與性能測試,因為實現的控制算法模型仿真系統對硬件設備的設計及軟件設計無能為力。針對這種情況,使用軟件虛擬化技術[3]來仿真真實硬件目標板,仿真出與真實硬件相同的

圖3 集成的閉環仿真系統
運行效果,在虛擬平臺上直接加載衛星控制軟件的二進制文件運行,替代早期的動態建模仿真系統中的算法控制單元,提出了全數字超實時仿真系統[4]的需求,并能在系統中進行衛星控制系統軟件的運行調試,用以驗證軟件的功能,如圖2所示。
輸入模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為敏感器模型的輸出。姿態確定是姿態控制的前提,它的任務是利用星上的姿態敏感器測量所得的衛星姿態信息,經過衛星控制系統軟件處理求得衛星本體坐標系相對于空間參考坐標系的姿態角或姿態四元數信息。
輸出模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為執行機構模型的輸入。姿態控制的任務是衛星控制系統軟件利用姿態確定求得的姿態角或姿態四元數信息,使用控制算法計算求得相應執行機構的控制脈沖寬度、轉速、力矩等指令。

圖2 虛擬目標機分布式仿真系統
仿真數據在虛擬目標機軟件內部傳遞,輸入模塊以及輸出模塊完全模擬真實硬件單機接口,使用全局變量以及分布式總線可以與外部數據交互,將監控探針直接設置在各軟件構件上,當衛星控制系統軟件在虛擬目標機中運行時,直接由仿真系統負責記錄各類運行數據,再由分析工具將運行數據與控制系統軟件的目標碼或源代碼整合,可以獲得需要的監控信息,從而達到驗證軟件功能的目的。
將控制算法模型仿真系統與虛擬目標機分布式仿真系統集成,形成一個全數字閉環仿真系統,在驗證軟件功能的同時,也可有效幫助衛星控制系統軟件任務提出方,即在動態建模工具算法控制等模型與控制軟件之間建立數據閉環交互,便于系統方案設計人員驗證系統控制算法的正確性,如圖3所示。
虛擬目標機分布式仿真系統與動態建模工具控制算法模型之間的數據交互使用分布式總線的協議。
控制算法模型仿真系統通過代理,掛在分布式總線上,動力學模型產生敏感器的輸出信號,通過分布式總線,輸入到虛擬目標機分布式仿真系統,虛擬目標機分布式仿真系統將會根據控制軟件,產生執行器的輸出,再次通過分布式總線,輸入到控制算法模型仿真系統的動力學中。往返計算,迭代循環,不斷驗證控制軟件的功能和性能。
使用外部的協同仿真工具[5]統一控制二者之間的數據同步,控制仿真速率,確保虛擬目標機分布式仿真系統仿真周期與動態建模工具控制算法模型仿真步長的同步性,從而達到對整個閉環系統的驗證。
“某型號衛星姿軌控軟件”構件庫可信驗證系統是應用了基于虛擬化技術的衛星控制系統軟件構件庫的運行監控與可信驗證技術的仿真平臺,可以實現基于SPARC V7架構CPU、基于ERC32的姿軌控計算機Ada語言軟件的開發調試與測試,用于星載軟件進行黑盒的從單元、構件[6]到系統級的驗證、開發、測試、維護,和全壽命周期的外部輸入輸出和軟件源代碼本身的全過程跟蹤、記錄等白盒,執行效率更高、系統驗證更全面、可信度更高[7]地開展衛星控制系統軟件構件庫的驗證與確認工作,能夠對衛星控制策略進行快速仿真驗證,對比使用純動態建模工具建模搭建的仿真系統,動態狀態執行控制更逼近真實環境。
虛擬目標機[8]和其虛擬外圍環境,通過模擬嵌入式軟件運行所需要的目標機硬件及外部的信號并讓嵌入式軟件像在真實目標機上一樣運行(計算和處理)[9],在協同仿真軟件的協同調度下,實現基于Ada/C/C++/匯編等語言的衛星控制系統軟件與控制算法仿真模型在基于虛擬化技術的系統仿真與驗證平臺模式下實時、超實時閉環運行監控與可信驗證。
整個系統架構,包含三大部分。第一部分是在軌系統,包括衛星和GPS接收機,它們將真實在軌數據反饋到地面;第二部分是地面用戶,包括專業用戶和基地用戶,他們接收在軌數據,放入資源庫和數據庫中,并通過遙測和三維立體顯示進行數據判讀;第三部分是實驗室驗證系統,包括虛擬星載計算機和動力學及單機模型,他們根據地面仿真數據,作為遙控指令的判斷,并將指令發送給地面站,進行在軌遙控,同時接收遙測數據,作為仿真數據的比對和性能驗證。
在試驗室驗證系統中,我們采用動態建模工具控制算法模型仿真系統與虛擬目標機分布式仿真系統集成,形成基于虛擬化技術的衛星控制系統閉環仿真系統,其中,使用分布式協同仿真中間件,從面向用戶的操作界面軟件生成的測試用例,通過遙控轉發控制指令給虛擬目標機,再經過中間件的時序調度和仿真控制,將虛擬目標機產生的控制指令轉發給封裝姿態動力學和軌道動力學模型的模型仿真模塊,同時將各節點間的數據傳輸,包括虛擬目標機產生的遙測數據,以及模型仿真模塊產生的過程采集數據,打包轉發給數據庫服務器和遙測顯示軟件,一起構建成衛星控制系統軟件構件庫可信驗證系統,從而驅動目標衛星控制系統軟件的運行。
虛擬目標機負責解析衛星控制系統軟件程序內核[10],在系統級閉環仿真時可在虛擬目標機上運行目標軟件,在虛擬CPU中加載基于ERC32/Ada語言軟件實現的衛星控制系統軟件目標碼,聯合運行動態建模工具搭建的控制算法模型,實施軟件非干涉監控技術時,首先設計監控任務定義機制,根據監控需求生成監控任務清單,比如設立影響算法運行的關鍵的、兩個系統相應的觀測點,進行同步動態比對,同時在系統中長時間運行并存儲監控數據,對所有軟件構件運行產生的數據進行過濾、篩選和分析,獲得關鍵的可信證據。
對基于虛擬化技術的衛星控制系統軟件構件庫可信驗證技術進行驗證時,取動態建模工具模型仿真步長為1ms,為做到同步仿真,則虛擬目標機的仿真步長也設定為1 ms。在模型與衛星控制軟件集成之后,為形成一個時序正確的閉環衛星控制系統仿真工具,引入協同仿真工具來實現二者之間的周期同步。
在基于虛擬化技術的衛星控制系統軟件構件庫可信驗證技術中,還可以接入其他必要的外部終端軟件,對在衛星控制系統半物理仿真試驗中應用的故障模擬軟件、遙控注數軟件及遙測顯示終端,進行無縫接入。
外部終端軟件可以對遙測數據進行解碼和回放,為驗證環境提供判讀依據。
故障模擬軟件可以進行故障預案的設計,提高系統可靠性。
遙控注數軟件可以對遙控指令進行地面仿真驗證,實現快速響應的功能。
經過最終的測試比對,以Matlab/Simulink為例使用動態建模工具仿真運行的遙測閉環曲線與使用虛擬化技術的衛星控制系統軟件構件庫可信驗證系統仿真的遙測閉環曲線基本相同,選用相同的衛星控制系統模式閉環控制工況,選用影響衛星控制系統算法設計的關鍵觀測點姿態角和姿態角速度進行比對觀測,如圖4~圖7所示,上圖為衛星控制系統方案設計方使用動態建模工具仿真獲得的姿態角曲線和姿態角速度曲線,下圖為用虛擬化技術的衛星控制系統軟件構件庫可信驗證系統仿真的姿態角曲線和姿態角速度曲線,仿真結果可信。

圖4 動態建模工具姿態角仿真曲線圖

圖6 動態建模工具姿態角速度仿真曲線圖
本文構建了一套“某型號衛星姿軌控軟件”構件庫可信驗證系統,利用基于虛擬化技術的衛星控制系統軟件構件庫可信驗證技術,實現了兩套衛星控制系統的動態同步比對閉環仿真,集成了控制算法模型與真實衛星控制軟件,在確?;A功能、算法邏輯正確的前提下,通過軟件非干涉運行監控技術獲得的可信證據,與純動態建模工具搭建的仿真系統比對結果表明,該技術全面有效的驗證了軟件構件庫的功能和可信性,對于在真實目標平臺上衛星控制系統的模擬仿真,準確性和實時性方面有著更大的優勢,增加了衛星控制軟件的可靠性和安全性。

圖7 虛擬目標機分布式仿真系統姿態角速度曲線圖