沈怡颹,何益康,高四宏,朱晏慶,孟其琛
(1.上海航天控制技術(shù)研究所·上?!?01109;2.上海市空間智能控制技術(shù)重點(diǎn)實(shí)驗(yàn)室·上海·201109)
基于Matlab的Simulink仿真工具箱,在從編程轉(zhuǎn)向模型構(gòu)造的過程中,能夠快速、準(zhǔn)確地實(shí)現(xiàn)動態(tài)系統(tǒng)的建模和仿真,支持各類線性、非線性、混合、連續(xù)和離散等系統(tǒng)[1],同時為用戶提供了不少基本模塊,使用戶可以根據(jù)需要從庫瀏覽器里復(fù)制出模塊,并通過修改參數(shù)得到想要的模型,從而輕松有效地完成系統(tǒng)的仿真。同時,Simulink模型的特點(diǎn)是非常直觀,直接面向方框圖[2],可以直接用鼠標(biāo)畫出所需要的控制系統(tǒng)模型,這樣無論多么復(fù)雜的系統(tǒng),都能相當(dāng)容易且直觀地完成模型的輸入和仿真計算。
圖1 使用Simulink進(jìn)行仿真系統(tǒng)搭建Fig.1 Simulation systems architecture using Simulink
隨著應(yīng)用的深入,采用Simulink技術(shù)進(jìn)行系統(tǒng)仿真也暴露出一些弊端,主要反映在以下幾個方面。
對于在Simulink模型中集成的計算機(jī)處理算法,相比基于具體CPU的硬件設(shè)備嵌入式軟件開發(fā)方式,其內(nèi)部嵌入式架構(gòu)的算術(shù)與邏輯處理單元的執(zhí)行方式有比較大的差異,Simulink模型無法完美模擬微控制器的結(jié)構(gòu)[3],例如內(nèi)部定時機(jī)制、外部中斷觸發(fā)、不同外設(shè)工作邏輯等,使得運(yùn)行在Simulink中的計算機(jī)核心算法處理和真實(shí)CPU算法,在任務(wù)調(diào)度過程中可能存在較大的差異,從而降低仿真效果,使得關(guān)鍵技術(shù)的方案設(shè)計與實(shí)際結(jié)果有出入。
傳統(tǒng)的Simulink模型仿真在模擬航天器載設(shè)備運(yùn)行軟件行為的過程中,基本都能滿足計算精度的要求,對于16位、32位甚至64位的算法處理有著很好的支持,然而相對于具體硬件設(shè)備的特殊要求,例如字或字節(jié)序的顛倒、特殊寄存器的位支持等,往往不能很方便地進(jìn)行仿真。
Simulink模型不便于開展全系統(tǒng)閉環(huán)仿真測試、故障模擬、命令數(shù)據(jù)注入測試,往往是動態(tài)連續(xù)的過程,而真實(shí)環(huán)境下運(yùn)行在CPU中的控制軟件在運(yùn)行過程中,由于存在任務(wù)搶占調(diào)度、中斷觸發(fā)等外部激勵情況,可以是非線性、離散型的狀態(tài),導(dǎo)致使用Simulink進(jìn)行仿真降低了其驗(yàn)證分析的可信性。
對于特殊單機(jī)的協(xié)議定制,相對于C、C++等高級語言,使用Simulink建模未必能夠規(guī)避工作量大、資源浪費(fèi)的問題,且缺乏靈活性。
在Simulink環(huán)境下,復(fù)雜的軟件算法過程設(shè)計往往導(dǎo)致相對龐大的模型構(gòu)建體系,導(dǎo)致執(zhí)行效率低下,不能體現(xiàn)實(shí)時性,其仿真驗(yàn)證結(jié)果不適用于對時序要求很高的航天領(lǐng)域。
基于上述分析,本文提出了一種基于同步仿真的衛(wèi)星姿軌控軟件驗(yàn)證方法,為嵌入式軟件開發(fā)提供了一個全面的、純數(shù)字的軟件開發(fā)和驗(yàn)證平臺;該平臺能夠較好地彌補(bǔ)Simulink在嵌入式建模中存在的問題和不足。
在航天項(xiàng)目研制的早期,需要驗(yàn)證整個方案設(shè)計的可行性,在軟件與硬件設(shè)備尚未開始設(shè)計的情況下,使用Matlab搭建Simulink模型仿真系統(tǒng)。在Simulink模型內(nèi)部的仿真軟件算法控制等模型,與動力學(xué)模型之間進(jìn)行輸入輸出數(shù)據(jù)交互,形成一個全數(shù)字的閉環(huán)仿真系統(tǒng),以驗(yàn)證整個系統(tǒng)方案的可行性,如圖2所示。
圖2 Simulink模型仿真系統(tǒng)Fig.2 Simulink model simulation systems
Simulink模型的仿真數(shù)據(jù)在內(nèi)部傳遞,使用共享內(nèi)存技術(shù)可以實(shí)現(xiàn)對Simulink模型的控制。輸入模塊接口實(shí)現(xiàn)對Simulink模型的運(yùn)行控制,輸出模塊接口獲取Simulink模型數(shù)據(jù),使得Simulink算法控制等模型可以與外部數(shù)據(jù)交互,從而達(dá)到驗(yàn)證系統(tǒng)方案設(shè)計的目的。
航天項(xiàng)目的系統(tǒng)方案設(shè)計驗(yàn)證通過后,可以開始硬件設(shè)備的設(shè)計及軟件設(shè)計。在具體的軟件開發(fā)過程中,Simulink模型仿真系統(tǒng)無法對真實(shí)計算機(jī)算法處理軟件進(jìn)行功能驗(yàn)證與性能測試。針對這種情況,提出了全數(shù)字超實(shí)時仿真系統(tǒng),使用虛擬目標(biāo)機(jī)[4]和虛擬計算機(jī)軟件來仿真真實(shí)硬件目標(biāo)板,替代早期的Simulink仿真系統(tǒng)中的算法控制單元,在虛擬平臺上直接加載衛(wèi)星控制軟件的二進(jìn)制運(yùn)行文件,仿真出與真實(shí)硬件相同的運(yùn)行效果,用以驗(yàn)證控制軟件的功能,并能進(jìn)行運(yùn)行調(diào)試,如圖3所示。
仿真數(shù)據(jù)在虛擬目標(biāo)機(jī)軟件內(nèi)部傳遞,使用全局變量以及分布式總線可以使其與外部數(shù)據(jù)交互。輸入模塊以及輸出模塊完全模擬真實(shí)硬件單機(jī)接口,與軟件進(jìn)行數(shù)據(jù)交互,從而達(dá)到驗(yàn)證軟件功能的目的。
圖3 分布式超實(shí)時仿真系統(tǒng)Fig.3 Distributed super-real-time simulation systems
在驗(yàn)證軟件功能的同時,也需要驗(yàn)證系統(tǒng)控制算法的正確性,使得Simulink算法控制等模型與控制軟件之間能夠進(jìn)行數(shù)據(jù)交互,形成一個閉環(huán)。由此可以將Simulink模型仿真系統(tǒng)與分布式超實(shí)時仿真系統(tǒng)集成,形成一個全數(shù)字閉環(huán)仿真系統(tǒng),如圖4所示。
圖4 集成的閉環(huán)超實(shí)時仿真系統(tǒng)Fig.4 Integrated closed-loop super-real-time simulation systems
通過分布式數(shù)據(jù)總線實(shí)現(xiàn)Simulink仿真模型與虛擬目標(biāo)機(jī)之間的數(shù)據(jù)交互。二者之間的數(shù)據(jù)同步可以通過外部的同步仿真工具[5]來統(tǒng)一控制,確保仿真步長與周期的正確性,控制仿真速率,從而達(dá)到對整個閉環(huán)系統(tǒng)的驗(yàn)證。
某型號衛(wèi)星姿軌控軟件閉環(huán)調(diào)試系統(tǒng)是基于數(shù)字化的衛(wèi)星仿真環(huán)境和平臺,可以實(shí)現(xiàn)超實(shí)時的仿真運(yùn)行,實(shí)現(xiàn)姿軌控仿真計算機(jī)軟件的開發(fā)調(diào)試與測試,能夠?qū)πl(wèi)星控制策略進(jìn)行快速仿真驗(yàn)證,用于星載軟件進(jìn)行全壽命周期的白盒 (外部輸入輸出和軟件源代碼本身的全過程跟蹤、記錄)和黑盒 (從單元、部件到系統(tǒng)級的)的驗(yàn)證、開發(fā)、測試、維護(hù),對比純Simulink建模搭建的仿真系統(tǒng),執(zhí)行效率更高、系統(tǒng)驗(yàn)證更全面、動態(tài)狀態(tài)執(zhí)行控制更逼近真實(shí)環(huán)境,可信度高。
通過模擬嵌入式軟件運(yùn)行所需要的目標(biāo)機(jī)硬件及外部信號,并讓嵌入式軟件像在真實(shí)目標(biāo)機(jī)上一樣運(yùn)行 (計算和處理)。虛擬目標(biāo)機(jī)及其虛擬外圍環(huán)境,在同步仿真軟件的協(xié)同調(diào)度下,實(shí)現(xiàn)基于Ada/C/匯編等語言的控制軟件與Simulink仿真模型在系統(tǒng)仿真與驗(yàn)證平臺全數(shù)字模式下實(shí)時、超實(shí)時閉環(huán)仿真運(yùn)行?;谕椒抡娴男l(wèi)星姿軌控軟件驗(yàn)證方法系統(tǒng)架構(gòu)如圖5所示。
圖5 基于同步仿真的衛(wèi)星姿軌控軟件驗(yàn)證方法系統(tǒng)架構(gòu)Fig.5 Architecture of the verification methods of satellite attitude and orbit control software based on synchronous simulation
基于分布式網(wǎng)絡(luò)仿真中間件,虛擬目標(biāo)機(jī)加載CPU軟件二進(jìn)制文件,聯(lián)合虛擬CPU指令解析內(nèi)核,根據(jù)型號各個功能單機(jī)或單元的硬件接口、地址空間定制的接口模塊,遙控遙測相關(guān)控制、轉(zhuǎn)發(fā)和顯示功能軟件,以及模型仿真模塊軟件封裝執(zhí)行的動力學(xué)Simulink模型一起構(gòu)建成某型號衛(wèi)星姿軌控軟件閉環(huán)調(diào)試系統(tǒng)。
將同步仿真軟件RTCoordinator用于系統(tǒng)級閉環(huán)仿真時,可在目標(biāo)機(jī)或仿真目標(biāo)機(jī)上運(yùn)行目標(biāo)軟件,在系統(tǒng)仿真與驗(yàn)證平臺系統(tǒng)中負(fù)責(zé)仿真開始和結(jié)束的控制、仿真過程中時序的調(diào)度、節(jié)點(diǎn)間數(shù)據(jù)的傳輸,以及模擬星務(wù)計算機(jī)部分功能和與星務(wù)計算機(jī)通信等。
由面向用戶的操作界面 (Graphical User Interface,GUI)軟件生成的控制指令或測試用例,經(jīng)過RTCoordinator的調(diào)度,將數(shù)據(jù)配置給各個端口和外圍環(huán)境,從而驅(qū)動目標(biāo)軟件的運(yùn)行。
由于Simulink模型仿真步長為1ms,要做到同步仿真,則虛擬目標(biāo)機(jī)的仿真步長也必須是1ms。在模型與衛(wèi)星控制軟件集成之后,必須引入同步仿真工具來實(shí)現(xiàn)二者之間的周期同步,形成一個時序正確的閉環(huán)衛(wèi)星控制系統(tǒng)仿真工具。
由于基于同步仿真的衛(wèi)星姿軌控軟件驗(yàn)證方法是全數(shù)字的虛擬仿真平臺,在仿真速度上不僅能達(dá)到實(shí)時仿真的需求,還能實(shí)現(xiàn)超實(shí)時仿真。在保證時序正確的前提下,整個衛(wèi)星控制系統(tǒng)的仿真速度可達(dá)10倍以上,這在驗(yàn)證一些需要用長時間等待結(jié)果的功能時尤為重要。
在基于同步仿真的衛(wèi)星姿軌控軟件驗(yàn)證方法中,還可以接入其他必要的外部終端軟件,最常見的就是故障模擬軟件、遙控注數(shù)軟件及遙測顯示終端,不需要任何修改,可以實(shí)現(xiàn)無縫接入。而在早期的單純Simulink模型仿真中,卻難以進(jìn)行遙測注數(shù)或者故障注入,難以完整驗(yàn)證算法的正確性。
經(jīng)過最終的測試比對,衛(wèi)星控制系統(tǒng)軟件同步仿真與可信驗(yàn)證的實(shí)現(xiàn)方法——超實(shí)時仿真運(yùn)行的遙測閉環(huán)曲線與真實(shí)物理硬件仿真的遙測閉環(huán)曲線基本相同,仿真結(jié)果可信。
圖6 姿態(tài)角曲線對比圖Fig.6 Attitude angles comparison curve
圖7 姿態(tài)角速度曲線對比圖Fig.7 Attitude speeds comparison curve
本文利用基于同步仿真的衛(wèi)星姿軌控軟件驗(yàn)證方法構(gòu)建了一套某型號衛(wèi)星姿軌控軟件閉環(huán)調(diào)試系統(tǒng),集成了Simulink算法控制模型與衛(wèi)星控制軟件,實(shí)現(xiàn)了整套衛(wèi)星控制系統(tǒng)的全數(shù)字閉環(huán)仿真。通過和純Simulink搭建的仿真系統(tǒng)進(jìn)行比對,結(jié)果表明,在確?;A(chǔ)功能、算法邏輯正確的前提下,系統(tǒng)在軟件功能驗(yàn)證的全面性、可信性,對故障注入、模擬控制軟件的執(zhí)行狀態(tài)以及對于復(fù)雜算法控制處理模擬過程的實(shí)時性和執(zhí)行效率方面有著更大的優(yōu)勢。應(yīng)用該方法,增加了衛(wèi)星控制軟件的可靠性和安全性。