,,,
(北京宇航系統(tǒng)工程研究所,北京 100076)
電氣系統(tǒng)匹配試驗可以對箭上及地面電氣設(shè)備的技術(shù)指標(biāo)、性能參數(shù)、軟硬件接口設(shè)計的正確性及產(chǎn)品質(zhì)量進(jìn)行全面考核,是運(yùn)載火箭研制初期必須經(jīng)歷的大型地面試驗之一[1]。隨著運(yùn)載火箭電氣設(shè)備復(fù)雜程度的日益提高,往往需要更多的時間完成各種功能的驗證與系統(tǒng)間各個接口的確認(rèn),然而一臺設(shè)備除了需要參加電氣系統(tǒng)試驗外還需要完成力學(xué)環(huán)境與熱環(huán)境的考核試驗[2]。由于研制周期以及成本的限制,顯然無法通過真實試驗完成對電氣系統(tǒng)所有技術(shù)狀態(tài)的驗證與確認(rèn),這就提出了對電氣匹配數(shù)字化仿真的需求。另外,通過數(shù)字化仿真可以在不破壞產(chǎn)品的情況下完成真實試驗無法覆蓋的故障模式,對系統(tǒng)中內(nèi)部節(jié)點(diǎn)的控制進(jìn)行分析和研究,并且可以快速對系統(tǒng)的性能進(jìn)行評估與檢驗,完成錯誤的定位與分析。實現(xiàn)運(yùn)載火箭電氣系統(tǒng)匹配驗證的數(shù)字化仿真是未來電氣系統(tǒng)發(fā)展的必然趨勢[3]。
本文首先分析了電氣匹配數(shù)字化仿真的需求,介紹了SysML語言建模方法;設(shè)計了數(shù)字化仿真的實現(xiàn)流程,采用SysML語言對電氣設(shè)備的軟硬件功能和接口進(jìn)行建模,設(shè)計了仿真系統(tǒng)的基本結(jié)構(gòu),完成了數(shù)據(jù)指令發(fā)送、接收和解包以及仿真時鐘的建模;最后通過與真實試驗中測試數(shù)據(jù)的對比,證實了采用仿真方法完成電氣系統(tǒng)匹配驗證的可行性。
隨著電子技術(shù)的發(fā)展,運(yùn)載火箭電氣設(shè)備智能化程度和系統(tǒng)復(fù)雜度大幅提高,由早期簡單的發(fā)送指令發(fā)展到多處理器、自動故障診斷并重構(gòu)的多功能復(fù)雜智能系統(tǒng),需要完成的測試項目也成倍增長[4]。電氣系統(tǒng)由多個分系統(tǒng)的地面設(shè)備、網(wǎng)絡(luò)、箭上設(shè)備以及分布范圍較廣的天線設(shè)備組成,軟件代碼達(dá)到上百萬行,分布于多重架構(gòu)中的并行處理器與存儲器中。另外,電氣系統(tǒng)中包含了上百個傳感器、變換器以及多個執(zhí)行機(jī)構(gòu),再加上由于冗余設(shè)計增加的備份設(shè)備,使得系統(tǒng)十分復(fù)雜[5]。往往無法完全通過試驗完成對電氣系統(tǒng)中所有硬件組合和各種模式、架構(gòu)下的軟件操作考核,甚至對飛行過程中任意時刻的系統(tǒng)狀態(tài)也無法做到合理的預(yù)估。在這種情況下,對電氣匹配的驗證進(jìn)行數(shù)字化仿真的工作就顯得尤為重要[6]。
數(shù)字化仿真在箭上產(chǎn)品力熱環(huán)境方面的應(yīng)用已較為成熟,另外處理器軟件算法的驗證工作也可以完全通過數(shù)字模擬器完成。然而,對于整個電氣系統(tǒng)的驗證卻無法通過仿真進(jìn)行。在真實試驗中,由于無法控制電氣設(shè)備內(nèi)部節(jié)點(diǎn),無法做到對所有模式,尤其是故障狀態(tài)下的產(chǎn)品狀態(tài)進(jìn)行驗證。為了滿足產(chǎn)品驗證的覆蓋性要求,我們需要尋找一種能夠快速有效的對電氣系統(tǒng)產(chǎn)品進(jìn)行驗證的方法,而SysML語言為我們提供了一種很好的平臺。
SysML(Systems Modeling Language,系統(tǒng)建模語言)是國際系統(tǒng)工程學(xué)會INCOSE和國際對象管理組織OMG為了滿足系統(tǒng)工程的實際需要,在對統(tǒng)一建模語言UML2.0的子集進(jìn)行重用和擴(kuò)展的基礎(chǔ)上提出的一種系統(tǒng)工程的標(biāo)準(zhǔn)建模語言,它是為支持系統(tǒng)工程領(lǐng)域中更大范圍的系統(tǒng)建模而對UML進(jìn)行的擴(kuò)展和定制[7]。SysML的目標(biāo)是“為系統(tǒng)工程提供一種標(biāo)準(zhǔn)化的建模語言,進(jìn)行復(fù)雜系統(tǒng)的分析、描述、設(shè)計與校驗,以提高系統(tǒng)的質(zhì)量、改進(jìn)不同工具之間進(jìn)行系統(tǒng)工程信息交互的能力,并且?guī)椭⑾到y(tǒng)、軟件與其他工程學(xué)科之間的語義連接”[8]。SysML支持大范圍內(nèi)復(fù)雜系統(tǒng)的描述、分析、設(shè)計、驗證與確認(rèn),這些系統(tǒng)包括硬件、軟件、信息、過程、人員以及設(shè)備等。
與一般的系統(tǒng)建模語言一樣,SysML由統(tǒng)一定義的基本語義組成,通過這些基本的語義可以描述元素、需求、行為、參數(shù)以及各元素間的相互關(guān)系。采用SysML語言建立的模型由基本元素和相互關(guān)系組成。元素是建模的基本對象,例如類、系統(tǒng)、子系統(tǒng),元素建模中包含了各個描述元素屬性的參數(shù)項,通過這些屬性項可以描述系統(tǒng)的硬件(電氣、結(jié)構(gòu))構(gòu)成、軟件功能等。而關(guān)系建模則對這些基本元素間的相互關(guān)系進(jìn)行描述,確定各單元間的數(shù)據(jù)流向、過程控制和存儲位置等[9]。SysML建模語言針對不同的建模對象制定了不同的定義標(biāo)準(zhǔn),建模時根據(jù)建模標(biāo)準(zhǔn)可以完成語義的自動檢查功能。各標(biāo)準(zhǔn)之間嚴(yán)格區(qū)分,例如針對實時計算機(jī)系統(tǒng)建模需要采用實時模塊完成。SysML語言的核心在于根據(jù)統(tǒng)一化定義可以進(jìn)行自動的推理與分析,另外由于各系統(tǒng)在建模時采用相同的SysML語義,方便各系統(tǒng)間明確和統(tǒng)一接口定義。
在SysML中,我們可以分別對系統(tǒng)的硬件和軟件進(jìn)行建模,并且可以對軟硬件間的交互進(jìn)行仿真。將各數(shù)字模型整合后仿真,可以對系統(tǒng)的整體工作性能進(jìn)行評估,提早發(fā)現(xiàn)設(shè)計中存在的問題。
針對建模對象的不同,SysML建模的語義分為結(jié)構(gòu)描述與行為描述兩類。通常系統(tǒng)中的硬件設(shè)備和軟件模塊采用結(jié)構(gòu)語義建模,而工作邏輯和軟件流程采用行為語義建模。結(jié)合兩種語義形式就可以實現(xiàn)運(yùn)載火箭電氣系統(tǒng)的數(shù)字化建模,模型中包含硬件和軟件的各種功能邏輯,可以完成指令傳輸與數(shù)據(jù)采集,仿真模型中的主要元素如圖1所示。在模型中加入數(shù)據(jù)驅(qū)動模塊,可以完成各設(shè)備間的信息交換,實現(xiàn)系統(tǒng)的數(shù)字化仿真功能,形成一套由事件驅(qū)動,指令和數(shù)據(jù)處理機(jī)制的仿真模型。
首先對電氣系統(tǒng)組成單機(jī)或模塊進(jìn)行建模,對元素間的關(guān)系進(jìn)行描述,將系統(tǒng)中的功能單元以及各單元間的信息交互關(guān)系進(jìn)行分解抽象,用塊圖和參數(shù)約束圖進(jìn)行構(gòu)件形式的描述;另外需要對電氣系統(tǒng)狀態(tài)及狀態(tài)變化的狀態(tài)基圖進(jìn)行描述,對設(shè)備功能的切換,任務(wù)流程調(diào)度等離散時間進(jìn)行描述與建模;最后對電氣系統(tǒng)功能流程等活動進(jìn)行描述,由控制流與對象流連接的方式,給定動作的輸入、輸出、順序和條件。
圖1 仿真模型中的主要元素
SysML語言從系統(tǒng)總體功能和性能的角度描述系統(tǒng),并且能夠?qū)⒍囝I(lǐng)域模型集成到一起。以飛行控制系統(tǒng)為例,由離散模型和連續(xù)模型構(gòu)成,其中離散模型設(shè)計原型描述系統(tǒng)的功能和行為,設(shè)計原型描述系統(tǒng)的結(jié)構(gòu)和組成。圖1~圖3給出了一個簡單的建模實例,圖1中的仿真模型是由兩個箭載電氣設(shè)備模塊組成的靜態(tài)結(jié)構(gòu)圖,狀態(tài)圖描述電氣系統(tǒng)每臺單機(jī)設(shè)備和模塊的功能和行為,每個模塊中的數(shù)值屬性描述了設(shè)備中的有效信息,對同一系統(tǒng)中兩個設(shè)備的交互進(jìn)行仿真。圖2展示了模塊的內(nèi)部構(gòu)架,在描述模塊之間通訊的同時對每臺設(shè)備的指令動作也進(jìn)行了建模。圖2和圖3對系統(tǒng)的結(jié)構(gòu)和行為信息進(jìn)行了完整的描述,在此圖形的基礎(chǔ)上,加入簡單的邏輯代碼,就可以實現(xiàn)兩個模塊間數(shù)據(jù)的交互,完成信息傳遞,并可以將實時數(shù)據(jù)存入存儲模塊的屬性值中。
圖2 箭上電氣設(shè)備
圖3 指令和數(shù)據(jù)處理系統(tǒng)建模
SysML仿真的另一個優(yōu)勢在于可以將系統(tǒng)中多次重復(fù)的功能通過示例的形式進(jìn)行循環(huán)仿真,通過此功能可將復(fù)雜系統(tǒng)大大簡化。運(yùn)載火箭電氣系統(tǒng)綜合匹配仿真的過程中,對部件重用的需求很大,而SysML中建立了滿足用戶需求的部件庫,每個部件又按照部件的物理結(jié)構(gòu)劃分成產(chǎn)品部件模型,部件模型為最小單位,不可再分。仿真運(yùn)行時,系統(tǒng)操作的執(zhí)行完全可控,可以做到對設(shè)備內(nèi)各個節(jié)點(diǎn)的充分驗證。在處理多路1553B總線數(shù)據(jù)鏈時這個功能顯得尤為重要。
SysML語言共定義了9種圖形方式用以描述模型在各方面的特征,分別為需求圖、行為圖和結(jié)構(gòu)圖,結(jié)構(gòu)圖包括方框圖、內(nèi)部塊圖、包圖和參數(shù)圖。根據(jù)所提供的描述方式,采用自頂向下、逐層分解的思路,對運(yùn)載火箭電氣系統(tǒng)進(jìn)行建模,模擬系統(tǒng)中的指令傳輸與數(shù)據(jù)處理功能?;赟ysML的概念模型開發(fā)過程是模型驅(qū)動、以體系結(jié)構(gòu)為中心、迭代遞增的過程。仿真模型中包括用例圖、塊定義圖、內(nèi)部塊圖、活動圖、順序圖、狀態(tài)圖和參數(shù)圖等,電氣系統(tǒng)仿真模型的總結(jié)構(gòu)如圖4所示。為了便于對模型封裝,組成電氣系統(tǒng)建模所需的部件達(dá)到重用目的,需要對典型電氣系統(tǒng)的組成結(jié)構(gòu)進(jìn)行劃分,包括測量部件、信號處理部件、信號調(diào)理部件和執(zhí)行機(jī)構(gòu)部件等。
圖4 電氣系統(tǒng)仿真模塊的組成
發(fā)送、接收和解包是電氣系統(tǒng)處理輸入命令時的三個關(guān)鍵流程,首先使用位操作模式對接收信號的處理過程進(jìn)行建模,在模塊邏輯關(guān)系屬性中設(shè)置相應(yīng)的數(shù)值并編寫一定的說明性代碼,可以明確電氣系統(tǒng)工作的動作和狀態(tài)。仿真模型中所有指令位都以字符串的形式建模,可以使用Java語言進(jìn)行描述且形式上相對簡單可靠。
為了使電氣系統(tǒng)仿真模塊能夠發(fā)送信號并且識別不同的指令,需要引用標(biāo)準(zhǔn)指令和遙測代號的定義庫。操作人員可以將仿真用到的一系列指令代碼輸入至這個定義庫,通過這些定義庫中的指令代碼,可以將實際指令與仿真中的操作指令相結(jié)合。仿真模塊可以對接收的輸入指令進(jìn)行識別并形成完整的指令鏈,模擬電氣系統(tǒng)工作。仿真運(yùn)行時,所有的指令均以數(shù)字化形式運(yùn)行,不需要與實際的硬件平臺相對應(yīng)。
除了完成指令生成和傳輸外,仿真模塊還需要模擬指令的接收和糾錯功能。由于受數(shù)字仿真的限制,遙測子系統(tǒng)的指令接收功能只是被描述為模塊間的簡單通路,而由FPGA控制的指令糾錯功能則需要盡量與真實的運(yùn)算邏輯相符。不僅要模擬指令格式的檢查,還要實現(xiàn)指令類型的識別功能。仿真中用到的函數(shù)都是基于真實的硬件手冊開發(fā)的。
經(jīng)過指令檢查糾錯后,數(shù)據(jù)進(jìn)一步傳輸至飛行軟件模塊,并完成信息的分解與處理,這些處理過程包括解包、提取和處理三個步驟。根據(jù)協(xié)議格式對數(shù)據(jù)信息進(jìn)行解包,分離每條消息中嵌入的校驗字,提取有效的操作位并根據(jù)指令信息執(zhí)行動作。通過對指令處理的仿真,可以對雙方通信協(xié)議的正確性進(jìn)行充分的驗證。仿真模塊中的操作函數(shù)從接收的大量數(shù)據(jù)中剝離出針對某項功能的有效信息,這個過程中所有信息被當(dāng)做字符處理,簡化了分離與拼接的操作過程。
經(jīng)過飛行軟件處理后,系統(tǒng)接收的信息被轉(zhuǎn)換為1553B總線通信格式發(fā)送至遠(yuǎn)控單元進(jìn)行處理。指令信息至1553B通信格式的轉(zhuǎn)換是通過邏輯代碼完成的,轉(zhuǎn)換時使用與指令接收相同的定義庫。完成格式轉(zhuǎn)換后,數(shù)據(jù)信息被發(fā)送至1553B總線控制器,控制器將數(shù)據(jù)按發(fā)送順序存儲至堆棧模塊。仿真運(yùn)行時,總線控制器以固定的速率向總線上其它電氣設(shè)備發(fā)送消息,但只對有效信息做出反饋。在此過程中,操作函數(shù)對總線數(shù)據(jù)字符進(jìn)行分析和比較,并設(shè)定相應(yīng)模塊的屬性值。
遠(yuǎn)控設(shè)備收到有效的總線指令后,根據(jù)接收到的指令內(nèi)容與模型中預(yù)先設(shè)定的硬件邏輯,更新部分存儲器數(shù)值。由于電氣系統(tǒng)設(shè)備的多樣性,對硬件邏輯的仿真建模十分復(fù)雜,如果對邏輯通路中的每個環(huán)節(jié)做到全面建模需要大量的工作。為了簡化建模,我們只對電氣系統(tǒng)中的核心功能或需要考核的邏輯進(jìn)行建模。另外,在建模時許多硬件單元重復(fù)出現(xiàn)(例如存儲器),我們可以將單一的復(fù)雜模型合并,實現(xiàn)更加復(fù)雜的邏輯操作。仿真時各模塊根據(jù)不同子地址通道中接收到的數(shù)值,對模塊的屬性參數(shù)進(jìn)行更新,模塊間通過屬性參數(shù)的交互完成系統(tǒng)的整體功能。仿真過程中的每組參數(shù)組合都可以表征當(dāng)前電氣系統(tǒng)設(shè)備的狀態(tài)和操作,圖4給出了整個電氣系統(tǒng)數(shù)字化仿真的功能邏輯框圖。
時鐘仿真的目的是獲取全局一致的物理或邏輯同步,確保仿真模塊中各節(jié)點(diǎn)與時間相關(guān)的事件和數(shù)據(jù)的一致性。除了控制系統(tǒng)指令傳輸和總線數(shù)據(jù)處理外,對系統(tǒng)運(yùn)行時鐘的仿真也是運(yùn)載火箭電氣系統(tǒng)匹配數(shù)字化仿真中的關(guān)鍵問題之一,如何處理時鐘信號將直接影響仿真結(jié)果的正確性,因此需要實現(xiàn)時鐘的精確建模。時鐘建模中包含兩項關(guān)鍵流程:仿真軟件序列引擎與系統(tǒng)總線消息控制器。軟件在仿真過程中其序列引擎中消息與時間的標(biāo)簽直接決定了各系統(tǒng)指令執(zhí)行的精確時間,為了使時間保持同步需要在幾微秒內(nèi)對指令標(biāo)簽進(jìn)行處理,例如1553B總線通訊需要在毫秒量級的固定周期內(nèi)完成消息發(fā)送,如果無法滿足時間后期的條件限制,系統(tǒng)將處于空閑狀態(tài)并且很可能會導(dǎo)致系統(tǒng)復(fù)位。為了確保匹配仿真中計時器的精度滿足系統(tǒng)要求,需要對對時鐘模塊進(jìn)行整合,使其只能在特定事件下被觸發(fā)。在這種模式下系統(tǒng)的仿真時間以及仿真周期將會與每一步操作和信息交互相固聯(lián),只有在前一布指令操作結(jié)束后,才會執(zhí)行仿真中的下一步指令。
前面主要介紹了正常操作模式下電氣系統(tǒng)硬件與軟件的仿真,而電氣系統(tǒng)在故障模式下的仿真建模也非常重要。如何合理建立系統(tǒng)的故障模型,測試系統(tǒng)在飛行過程中的工作邊界,為電氣系統(tǒng)綜合仿真提出了更高要求。由于運(yùn)載火箭電氣系統(tǒng)的高可靠性屬性,箭上各系統(tǒng)多采用冗余設(shè)計的模式,因此往往為了更好的考核系統(tǒng),需要專門設(shè)置系統(tǒng)在一度故障甚至二度故障情況下的性能與流程仿真,才能夠充分驗證和考核系統(tǒng)可靠性。實現(xiàn)故障模式下的仿真,不僅能夠避免采用真實設(shè)備測試引起的設(shè)備故障,同時還可以在任意需要的節(jié)點(diǎn)注入故障,增加了調(diào)整試驗?zāi)J降撵`活性。
通過描述故障中的信號傳遞機(jī)理,建立故障模型庫,將可測故障與失效狀態(tài)相關(guān)聯(lián)。電氣產(chǎn)品的失效狀態(tài)在電路信號輸出的狀態(tài)與預(yù)期狀態(tài)不一致。故障庫的原始數(shù)據(jù)由測試常見故障中的故障數(shù)據(jù)驅(qū)動,每個注入的故障傳遞到輸出,在信號輸出上產(chǎn)生故障標(biāo)記特征,該腳本記錄了失效的輸出信號,以及相應(yīng)的失效狀態(tài)。將腳本與相關(guān)故障載入故障庫。當(dāng)開展匹配仿真測試時,對測試未通過的項目,比較信號輸出上產(chǎn)生的腳本與故障庫中的腳本,通過故障庫中對信號機(jī)理的描述完成匹配試驗中故障狀態(tài)下的仿真與考核。
針對典型運(yùn)載火箭電氣系統(tǒng)的基本功能搭建的相應(yīng)的SysML模型,并結(jié)合測試中的數(shù)據(jù)進(jìn)行了仿真驗證。在相同數(shù)據(jù)驅(qū)動的情況下。將系統(tǒng)仿真數(shù)據(jù)與真實匹配試驗中獲取的測試數(shù)據(jù)進(jìn)行比對,數(shù)據(jù)曲線基本吻合,盡在部分模型簡化較多的部分出現(xiàn)了一定的偏差。仿真結(jié)果表明(如圖5所示),除了由于真實試驗中外系統(tǒng)擾動造成的數(shù)據(jù)偏差在簡化模型下無法完全復(fù)現(xiàn)外,其余仿真數(shù)據(jù)均與真實試驗數(shù)據(jù)保持一致,證實了采用SysML進(jìn)行電氣系統(tǒng)匹配試驗仿真的有效性。
另外,在故障狀態(tài)下的仿真中,我們對真實試驗中無法實現(xiàn)的故障組合進(jìn)行了全面仿真,仿真結(jié)果表明利用數(shù)字化仿真可以有效提高電氣匹配驗證的覆蓋性,確保對所有冗余設(shè)計的有效性進(jìn)行考核。
圖5 仿真數(shù)據(jù)與真實數(shù)據(jù)的比較
本文使用SysML語言對電氣系統(tǒng)匹配試驗中的軟硬件進(jìn)行了建模,通過與真實試驗中測試數(shù)據(jù)的對比表明仿真數(shù)據(jù)結(jié)果與真實數(shù)據(jù)基本吻合,驗證了使用數(shù)字仿真完成電氣系統(tǒng)匹配驗證的有效性和可行性。
本文只是搭建了較簡單的仿真模型,對仿真方法的基本原理進(jìn)行了驗證,距離實現(xiàn)全箭電氣系統(tǒng)完整的數(shù)字化仿真還有較遠(yuǎn)的距離,實現(xiàn)通過仿真代替真實驗證試驗不僅需要大量的建模工作,還需要提高仿真設(shè)備的并行計算能力。目前,采用SysML建立的仿真模型基本可以滿足系統(tǒng)驗證的需求,但在未來的工作中,我們還需要對仿真軟件的性能進(jìn)行更深入的研究,提高仿真精度,使其更加接近真實設(shè)備的工作狀況。