張 程何益康林榮峰朱晏慶
(1.上海航天控制技術研究所,上海 201109; 2.上海市空間智能控制技術重點實驗室,上海 201109)
動態(tài)系統(tǒng)建模工具[1]的仿真工具箱被廣泛應用于衛(wèi)星控制系統(tǒng)的方案設計中,為用戶提供了非常豐富好用的基礎模塊,使用戶可以根據(jù)被控對象的特點從模塊庫中選用適用的模塊,僅修改相應的參數(shù)即可建立航天器軌道動力學和姿態(tài)動力學模型等,它支持各類連續(xù)、離散、線性和非線性等系統(tǒng)的構(gòu)建,支持對動力學模型進行編譯和仿真,可以輕松有效的完成系統(tǒng)的仿真。無論多么復雜的衛(wèi)星控制系統(tǒng),都能采用直觀的“方框圖”[2],使用面向?qū)ο蟮脑O計方法,完成控制系統(tǒng)模型的輸入和仿真計算,實現(xiàn)對衛(wèi)星控制系統(tǒng)這一動態(tài)系統(tǒng)準確、快速的建模。因此常常被衛(wèi)星控制系統(tǒng)方案設計師用于衛(wèi)星控制算法的設計,并利用可視化的仿真工具,對設計的算法進行驗證。
然而同時,隨著使用的深入,動態(tài)系統(tǒng)建模工具技術進行系統(tǒng)仿真也暴露出一些弊端,主要反映在以下幾個方面:
a)集成計算機算法處理到動態(tài)系統(tǒng)建模工具模型的設計方法,其內(nèi)部嵌入式架構(gòu)算術與邏輯處理單元執(zhí)行方式,相比傳統(tǒng)的基于CPU硬件平臺的嵌入式軟件開發(fā),有比較大的差異,因為CPU結(jié)構(gòu)難以完美的被動態(tài)系統(tǒng)建模工具模型模擬,比如動態(tài)系統(tǒng)建模工具模擬的外部中斷觸發(fā)、內(nèi)部定時機制會嚴重影響系統(tǒng)任務調(diào)度的過程,降低仿真效果,進而影響計算機核心算法處理,這些與實際使用真實微控制器算法的運行結(jié)果的差異,會降低關鍵技術方案設計的可信性;
b)傳統(tǒng)的動態(tài)系統(tǒng)建模工具模型,往往難以仿真字節(jié)或字序顛倒、特殊寄存器的位支持等具體硬件設備的特殊要求,僅對使用通用數(shù)據(jù)類型的算法處理有著較好的支持(例如16位、32位、64位整型、浮點數(shù)等),因此只能滿足基本的計算精度,但是對于衛(wèi)星控制系統(tǒng)的下位單機軟件行為過程的模擬往往不夠;
c)衛(wèi)星控制系統(tǒng)軟件運行在真實CPU平臺上時,是離散型、非線性的狀態(tài),因為軟件在運行過程中不是動態(tài)連續(xù)的,會受到中斷觸發(fā)、任務搶占調(diào)度等外部影響,而動態(tài)系統(tǒng)建模工具模型則往往是動態(tài)連續(xù)的過程,導致使用動態(tài)系統(tǒng)建模工具進行仿真與使用真實CPU進行測試的結(jié)果存在出入,影響系統(tǒng)的故障模擬、指令注入的測試,甚至全系統(tǒng)的閉環(huán)仿真測試;
d)衛(wèi)星控制系統(tǒng)領域的仿真建模,由于系統(tǒng)的復雜性和實時性,造成使用動態(tài)系統(tǒng)建模工具進行算法過程設計時復雜性的提高,隨之而來的是執(zhí)行效率降低,導致實時性的降低影響到系統(tǒng)運行的正確性和精確性;
e)在使用動態(tài)系統(tǒng)建模工具搭建衛(wèi)星控制系統(tǒng)單機模型時,受限于動態(tài)系統(tǒng)建模工具自身限制,在面對定制單機的特殊協(xié)議,使用面向過程的Ada、C/C++等高級語言,能夠規(guī)避資源浪費等問題,靈活性更好。
隨著對衛(wèi)星控制系統(tǒng)軟件越來越高的重用化要求,軟件研制方基于工程積累的、在軌飛行驗證過的成熟軟件構(gòu)件,正在建立可反復利用、可用于后續(xù)衛(wèi)星控制系統(tǒng)軟件重用的構(gòu)件庫,以往的開發(fā)方式仍以人工手工編碼的方式進行軟件實現(xiàn),難以適應當前基于模型的系統(tǒng)工程(MBSE)、以及軟件定義衛(wèi)星等技術的發(fā)展,盡管一些動態(tài)建模工具已具有一定的自動生成軟件代碼的功能,以及相應的模型形式化驗證功能,但對于生成的軟件代碼在真實目標環(huán)境的運行驗證手段不足,也難以實現(xiàn)對任務提出方的需求開展可信驗證。
同時,衛(wèi)星控制系統(tǒng)軟件運行監(jiān)控技術是提供可信證據(jù),驅(qū)動協(xié)同演化和協(xié)同開發(fā)過程的關鍵基礎技術。運行監(jiān)控技術主要應用于軟件配置項測試和驗證過程中,傳統(tǒng)方法中,常使用插樁、植入探針或“打點”的方式進行,這類方式會直接改變軟件產(chǎn)品的實體,影響獲得結(jié)果和證據(jù)的準確性及可信性。
基于上述分析,本文通過采用純軟件的實現(xiàn)方法為嵌入式軟件開發(fā)提供一個可監(jiān)控的、可信的軟件開發(fā)和驗證平臺,提出了一種基于虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證技術,并與任務提出方使用動態(tài)系統(tǒng)建模工具實現(xiàn)的控制算法模型進行協(xié)同、同步、動態(tài)仿真,運用軟件非干涉運行監(jiān)控技術,在不改變衛(wèi)星控制系統(tǒng)軟件實體的情況下,對軟件實體的運行狀態(tài)、動態(tài)行為和執(zhí)行結(jié)果進行監(jiān)控,獲取可信的開發(fā)證據(jù)和應用證據(jù),實現(xiàn)對用戶需求的驗證與確認。
軟件與硬件設備尚未開始設計的情況下,在衛(wèi)星控制系統(tǒng)研制的早期,需要驗證整個方案設計的可行性,在控制算法模型內(nèi)部仿真軟件算法控制等模型,使用動態(tài)建模工具搭建控制算法模型仿真系統(tǒng),形成一個全數(shù)字的閉環(huán)仿真系統(tǒng),與動力學模型之間進行輸入輸出數(shù)據(jù)交互,用以驗證整個系統(tǒng)方案的可行性,如圖1所示。
衛(wèi)星控制系統(tǒng)由控制器、敏感器和執(zhí)行機構(gòu)組成。當前衛(wèi)星使用的敏感器主要包括慣性敏感器、太陽敏感器、恒星敏感器、地球敏感器等,執(zhí)行機構(gòu)主要包括反作用飛輪、控制力矩陀螺、推力器等。這些敏感器、執(zhí)行機構(gòu)與控制器之間普遍采用RS422串口通訊協(xié)議、MIL-STD-1553B總線協(xié)議、AD模擬量輸入、PWM脈沖寬度調(diào)制、CAN總線協(xié)議等,因此,在建立動力學模型的輸入模塊和輸出模塊也采用這些通訊協(xié)議的模擬模塊。
動力學模型在接收到衛(wèi)星控制器發(fā)送的執(zhí)行機構(gòu)指令后,采用常微分方程組或偏微分方程等的組合,同時考慮衛(wèi)星的剛體彈性體混合系統(tǒng)及剛體液體混合系統(tǒng)的特性,模擬撓性衛(wèi)星的姿態(tài)動力學和軌道動力學,特別是對衛(wèi)星受到的主要外力矩進行模擬,比如太陽輻射壓力矩、重力梯度力、氣動力、地磁場力矩等環(huán)境力,以及主要內(nèi)力矩進行模擬,比如推力器的噴射力矩、反作用飛輪產(chǎn)生的角動量力矩、液體推進劑產(chǎn)生的液體晃動力矩、太陽電池陣產(chǎn)生的擾動力矩。
圖1 使用動態(tài)建模工具實現(xiàn)控制算法模型仿真系統(tǒng)
為了使得控制算法模型與外部數(shù)據(jù)可以交互,使用動態(tài)建模工具建立姿態(tài)動力學模型和軌道動力學模型的外圍設備,同時建立控制器模型,從而達到閉環(huán)仿真驗證衛(wèi)星控制系統(tǒng)方案的目的。
相對于衛(wèi)星控制器的控制算法模型來說,控制算法模型的運行控制實現(xiàn)輸入模塊接口,獲取控制算法模型數(shù)據(jù)是輸出模塊接口。
輸入模塊包括422模塊(模擬RS422串口通訊協(xié)議)、1553B模塊(模擬MIL-STD-1553B總線協(xié)議)、AD模塊(模擬模擬量輸入功能)、DIO模塊(模擬數(shù)字輸入輸出電路)、PWM模塊(模擬脈沖寬度調(diào)制方法)和CAN模塊(模擬控制器局域網(wǎng)絡總線協(xié)議)等,他們作為動力學敏感器采集接口的輸入。
輸出模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為動力學執(zhí)行機構(gòu)模型的輸出。
由于輸入模塊和輸出模塊均是使用動態(tài)建模工具建立的、模擬真實硬件通訊協(xié)議的軟件模塊,因此,使用共享內(nèi)存技術可以實現(xiàn)對控制算法模型的控制,使用動態(tài)建模工具實現(xiàn)的控制算法模型的仿真數(shù)據(jù)在內(nèi)部傳遞。
在衛(wèi)星控制系統(tǒng)研制流程中,軟件的設計開發(fā)往往是在系統(tǒng)方案設計評審通過后,在這個階段,使用動態(tài)建模工具無法對真實計算機算法處理軟件進行功能驗證與性能測試,因為實現(xiàn)的控制算法模型仿真系統(tǒng)對硬件設備的設計及軟件設計無能為力。針對這種情況,使用軟件虛擬化技術[3]來仿真真實硬件目標板,仿真出與真實硬件相同的
圖3 集成的閉環(huán)仿真系統(tǒng)
運行效果,在虛擬平臺上直接加載衛(wèi)星控制軟件的二進制文件運行,替代早期的動態(tài)建模仿真系統(tǒng)中的算法控制單元,提出了全數(shù)字超實時仿真系統(tǒng)[4]的需求,并能在系統(tǒng)中進行衛(wèi)星控制系統(tǒng)軟件的運行調(diào)試,用以驗證軟件的功能,如圖2所示。
輸入模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為敏感器模型的輸出。姿態(tài)確定是姿態(tài)控制的前提,它的任務是利用星上的姿態(tài)敏感器測量所得的衛(wèi)星姿態(tài)信息,經(jīng)過衛(wèi)星控制系統(tǒng)軟件處理求得衛(wèi)星本體坐標系相對于空間參考坐標系的姿態(tài)角或姿態(tài)四元數(shù)信息。
輸出模塊包括422模塊、1553B模塊、AD模塊、DIO模塊、PWM模塊和CAN模塊等,他們作為執(zhí)行機構(gòu)模型的輸入。姿態(tài)控制的任務是衛(wèi)星控制系統(tǒng)軟件利用姿態(tài)確定求得的姿態(tài)角或姿態(tài)四元數(shù)信息,使用控制算法計算求得相應執(zhí)行機構(gòu)的控制脈沖寬度、轉(zhuǎn)速、力矩等指令。
圖2 虛擬目標機分布式仿真系統(tǒng)
仿真數(shù)據(jù)在虛擬目標機軟件內(nèi)部傳遞,輸入模塊以及輸出模塊完全模擬真實硬件單機接口,使用全局變量以及分布式總線可以與外部數(shù)據(jù)交互,將監(jiān)控探針直接設置在各軟件構(gòu)件上,當衛(wèi)星控制系統(tǒng)軟件在虛擬目標機中運行時,直接由仿真系統(tǒng)負責記錄各類運行數(shù)據(jù),再由分析工具將運行數(shù)據(jù)與控制系統(tǒng)軟件的目標碼或源代碼整合,可以獲得需要的監(jiān)控信息,從而達到驗證軟件功能的目的。
將控制算法模型仿真系統(tǒng)與虛擬目標機分布式仿真系統(tǒng)集成,形成一個全數(shù)字閉環(huán)仿真系統(tǒng),在驗證軟件功能的同時,也可有效幫助衛(wèi)星控制系統(tǒng)軟件任務提出方,即在動態(tài)建模工具算法控制等模型與控制軟件之間建立數(shù)據(jù)閉環(huán)交互,便于系統(tǒng)方案設計人員驗證系統(tǒng)控制算法的正確性,如圖3所示。
虛擬目標機分布式仿真系統(tǒng)與動態(tài)建模工具控制算法模型之間的數(shù)據(jù)交互使用分布式總線的協(xié)議。
控制算法模型仿真系統(tǒng)通過代理,掛在分布式總線上,動力學模型產(chǎn)生敏感器的輸出信號,通過分布式總線,輸入到虛擬目標機分布式仿真系統(tǒng),虛擬目標機分布式仿真系統(tǒng)將會根據(jù)控制軟件,產(chǎn)生執(zhí)行器的輸出,再次通過分布式總線,輸入到控制算法模型仿真系統(tǒng)的動力學中。往返計算,迭代循環(huán),不斷驗證控制軟件的功能和性能。
使用外部的協(xié)同仿真工具[5]統(tǒng)一控制二者之間的數(shù)據(jù)同步,控制仿真速率,確保虛擬目標機分布式仿真系統(tǒng)仿真周期與動態(tài)建模工具控制算法模型仿真步長的同步性,從而達到對整個閉環(huán)系統(tǒng)的驗證。
“某型號衛(wèi)星姿軌控軟件”構(gòu)件庫可信驗證系統(tǒng)是應用了基于虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫的運行監(jiān)控與可信驗證技術的仿真平臺,可以實現(xiàn)基于SPARC V7架構(gòu)CPU、基于ERC32的姿軌控計算機Ada語言軟件的開發(fā)調(diào)試與測試,用于星載軟件進行黑盒的從單元、構(gòu)件[6]到系統(tǒng)級的驗證、開發(fā)、測試、維護,和全壽命周期的外部輸入輸出和軟件源代碼本身的全過程跟蹤、記錄等白盒,執(zhí)行效率更高、系統(tǒng)驗證更全面、可信度更高[7]地開展衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫的驗證與確認工作,能夠?qū)πl(wèi)星控制策略進行快速仿真驗證,對比使用純動態(tài)建模工具建模搭建的仿真系統(tǒng),動態(tài)狀態(tài)執(zhí)行控制更逼近真實環(huán)境。
虛擬目標機[8]和其虛擬外圍環(huán)境,通過模擬嵌入式軟件運行所需要的目標機硬件及外部的信號并讓嵌入式軟件像在真實目標機上一樣運行(計算和處理)[9],在協(xié)同仿真軟件的協(xié)同調(diào)度下,實現(xiàn)基于Ada/C/C++/匯編等語言的衛(wèi)星控制系統(tǒng)軟件與控制算法仿真模型在基于虛擬化技術的系統(tǒng)仿真與驗證平臺模式下實時、超實時閉環(huán)運行監(jiān)控與可信驗證。
整個系統(tǒng)架構(gòu),包含三大部分。第一部分是在軌系統(tǒng),包括衛(wèi)星和GPS接收機,它們將真實在軌數(shù)據(jù)反饋到地面;第二部分是地面用戶,包括專業(yè)用戶和基地用戶,他們接收在軌數(shù)據(jù),放入資源庫和數(shù)據(jù)庫中,并通過遙測和三維立體顯示進行數(shù)據(jù)判讀;第三部分是實驗室驗證系統(tǒng),包括虛擬星載計算機和動力學及單機模型,他們根據(jù)地面仿真數(shù)據(jù),作為遙控指令的判斷,并將指令發(fā)送給地面站,進行在軌遙控,同時接收遙測數(shù)據(jù),作為仿真數(shù)據(jù)的比對和性能驗證。
在試驗室驗證系統(tǒng)中,我們采用動態(tài)建模工具控制算法模型仿真系統(tǒng)與虛擬目標機分布式仿真系統(tǒng)集成,形成基于虛擬化技術的衛(wèi)星控制系統(tǒng)閉環(huán)仿真系統(tǒng),其中,使用分布式協(xié)同仿真中間件,從面向用戶的操作界面軟件生成的測試用例,通過遙控轉(zhuǎn)發(fā)控制指令給虛擬目標機,再經(jīng)過中間件的時序調(diào)度和仿真控制,將虛擬目標機產(chǎn)生的控制指令轉(zhuǎn)發(fā)給封裝姿態(tài)動力學和軌道動力學模型的模型仿真模塊,同時將各節(jié)點間的數(shù)據(jù)傳輸,包括虛擬目標機產(chǎn)生的遙測數(shù)據(jù),以及模型仿真模塊產(chǎn)生的過程采集數(shù)據(jù),打包轉(zhuǎn)發(fā)給數(shù)據(jù)庫服務器和遙測顯示軟件,一起構(gòu)建成衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證系統(tǒng),從而驅(qū)動目標衛(wèi)星控制系統(tǒng)軟件的運行。
虛擬目標機負責解析衛(wèi)星控制系統(tǒng)軟件程序內(nèi)核[10],在系統(tǒng)級閉環(huán)仿真時可在虛擬目標機上運行目標軟件,在虛擬CPU中加載基于ERC32/Ada語言軟件實現(xiàn)的衛(wèi)星控制系統(tǒng)軟件目標碼,聯(lián)合運行動態(tài)建模工具搭建的控制算法模型,實施軟件非干涉監(jiān)控技術時,首先設計監(jiān)控任務定義機制,根據(jù)監(jiān)控需求生成監(jiān)控任務清單,比如設立影響算法運行的關鍵的、兩個系統(tǒng)相應的觀測點,進行同步動態(tài)比對,同時在系統(tǒng)中長時間運行并存儲監(jiān)控數(shù)據(jù),對所有軟件構(gòu)件運行產(chǎn)生的數(shù)據(jù)進行過濾、篩選和分析,獲得關鍵的可信證據(jù)。
對基于虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證技術進行驗證時,取動態(tài)建模工具模型仿真步長為1ms,為做到同步仿真,則虛擬目標機的仿真步長也設定為1 ms。在模型與衛(wèi)星控制軟件集成之后,為形成一個時序正確的閉環(huán)衛(wèi)星控制系統(tǒng)仿真工具,引入?yún)f(xié)同仿真工具來實現(xiàn)二者之間的周期同步。
在基于虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證技術中,還可以接入其他必要的外部終端軟件,對在衛(wèi)星控制系統(tǒng)半物理仿真試驗中應用的故障模擬軟件、遙控注數(shù)軟件及遙測顯示終端,進行無縫接入。
外部終端軟件可以對遙測數(shù)據(jù)進行解碼和回放,為驗證環(huán)境提供判讀依據(jù)。
故障模擬軟件可以進行故障預案的設計,提高系統(tǒng)可靠性。
遙控注數(shù)軟件可以對遙控指令進行地面仿真驗證,實現(xiàn)快速響應的功能。
經(jīng)過最終的測試比對,以Matlab/Simulink為例使用動態(tài)建模工具仿真運行的遙測閉環(huán)曲線與使用虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證系統(tǒng)仿真的遙測閉環(huán)曲線基本相同,選用相同的衛(wèi)星控制系統(tǒng)模式閉環(huán)控制工況,選用影響衛(wèi)星控制系統(tǒng)算法設計的關鍵觀測點姿態(tài)角和姿態(tài)角速度進行比對觀測,如圖4~圖7所示,上圖為衛(wèi)星控制系統(tǒng)方案設計方使用動態(tài)建模工具仿真獲得的姿態(tài)角曲線和姿態(tài)角速度曲線,下圖為用虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證系統(tǒng)仿真的姿態(tài)角曲線和姿態(tài)角速度曲線,仿真結(jié)果可信。
圖4 動態(tài)建模工具姿態(tài)角仿真曲線圖
圖6 動態(tài)建模工具姿態(tài)角速度仿真曲線圖
本文構(gòu)建了一套“某型號衛(wèi)星姿軌控軟件”構(gòu)件庫可信驗證系統(tǒng),利用基于虛擬化技術的衛(wèi)星控制系統(tǒng)軟件構(gòu)件庫可信驗證技術,實現(xiàn)了兩套衛(wèi)星控制系統(tǒng)的動態(tài)同步比對閉環(huán)仿真,集成了控制算法模型與真實衛(wèi)星控制軟件,在確?;A功能、算法邏輯正確的前提下,通過軟件非干涉運行監(jiān)控技術獲得的可信證據(jù),與純動態(tài)建模工具搭建的仿真系統(tǒng)比對結(jié)果表明,該技術全面有效的驗證了軟件構(gòu)件庫的功能和可信性,對于在真實目標平臺上衛(wèi)星控制系統(tǒng)的模擬仿真,準確性和實時性方面有著更大的優(yōu)勢,增加了衛(wèi)星控制軟件的可靠性和安全性。
圖7 虛擬目標機分布式仿真系統(tǒng)姿態(tài)角速度曲線圖