趙 巖,李 佳,解世祿,王德義,陳 娟
(1.國營長虹機械廠,廣西 桂林 541002;2.西門子數(shù)字工業(yè)軟件有限公司,北京 100102;3.北京機電工程研究所,北京 100074;4.北京航天自動控制研究所,宇航智能控制技術重點實驗室,北京 100070;5.北京航空航天大學 機械工程及自動化學院,北京 100191)
運載火箭是一種依靠火箭發(fā)動機產(chǎn)生反作用力的高速飛行器。運載火箭由若干可分離的部分組成,稱為級。每個階段都是由箭體、動力系統(tǒng)以及控制系統(tǒng)組。箭體部分作為運載火箭的主體,承載了箭上各個系統(tǒng)所有重要的儀器和設備。
運載火箭發(fā)射前必須進行地面測試,以提高火箭發(fā)射成功率。目前運載火箭通常都采用了故障診斷系統(tǒng),故障診斷系統(tǒng)必須在發(fā)射前準確定位故障,以快速將其排除[1-2]。故障樹分析是故障診斷系統(tǒng)的基礎,也是現(xiàn)有故障診斷技術最有效、最基本的手段。朱大奇、王東、金星、周琦鈞、安晨亮等人[3-7]在故障樹分析基礎上,提出了基于故障樹的智能型故障診斷方法較好地反映了故障診斷過程中各個底事件和中間事件對系統(tǒng)故障的影響。傳統(tǒng)故障樹分析主要是分析系統(tǒng)故障產(chǎn)生的原因而不考慮診斷效率,文獻[8-10]為減少故障診斷時間,給出故障樹最小割集的定量分析方法,計算故障樹各最小割集的發(fā)生概率及最小割集重要度,以此為依據(jù),從大到小排序,確定故障診斷的最優(yōu)程序采。從而使故障診斷的一次命中率得以提高。
針對故障范圍較大的情況,文獻[11]提出了故障樹與故障字典法結合的故障診斷方法,能夠區(qū)分故障是全局故障還是局部故障,縮小故障范圍,使診斷簡單和易于實現(xiàn),從而有效地確定可能的故障檢測點。利用故障樹分析方法,文獻[12-15]解決了傳統(tǒng)專家系統(tǒng)知識獲取的“瓶頸”問題,以故障樹的形式全面、系統(tǒng)地表述專家知識。文獻[16-18]將故障樹與專家系統(tǒng)相結合,提出了一種基于故障樹和專家系統(tǒng)的故障診斷方法,通過故障樹自動生成專家系統(tǒng)診斷規(guī)則庫,實現(xiàn)診斷知識的自動獲取。文獻[19]在基于故障樹和專家系統(tǒng)的故障診斷方法的基礎上,融合模糊神經(jīng)網(wǎng)絡相,運用模糊神經(jīng)網(wǎng)絡的在線自學能力,保證知識庫的完整性和正確性。
由于常規(guī)地面測試無法產(chǎn)生足夠的故障數(shù)據(jù),為了高效地獲得更多故障數(shù)據(jù)需要進行故障注入。故障注入指按照選定的故障模型,用人工的方法產(chǎn)生故障并施加于特定的被測系統(tǒng)中,以加速該系統(tǒng)的錯誤和失效的發(fā)生,同時記錄和分析系統(tǒng)對所注入的故障的反應信息和輸出信號[20]。文獻[21-22]為了解決液壓作動筒的故障診斷問題,提出一種基于AMESim軟件仿真的故障注入方法,采用的小波包分解及能量譜的特征提取方法,有效地獲取了系統(tǒng)信息,并與支持向量機方法相結合設計了故障診斷系統(tǒng)。由于軟件實現(xiàn)的故障注入方法具有靈活性好,開發(fā)成本低,注入過程易于控制等優(yōu)點。
文獻[23-24]采用基于軟件故障注入的方法構建了故障注入系統(tǒng)。故障注入也可用來驗證故障診斷系統(tǒng),文獻[20]采用故障注入方法實現(xiàn)了對系統(tǒng)硬件和軟件性能的檢測,在與實際使用之前即驗證了故障診斷系統(tǒng)的可靠性和穩(wěn)定性。傳統(tǒng)的運載火箭控制系統(tǒng)數(shù)據(jù)雜亂而分散,對系統(tǒng)進行故障診斷比較困難。文獻[25]針對傳統(tǒng)的故障模擬系統(tǒng)在航天器測試中設備通用性差等不足,提出一種利用MIL-STD-1553B總線以下簡稱1553B)為故障注入介質(zhì)的故障注入系統(tǒng),把加入的故障注入系統(tǒng)作為一個單獨的節(jié)點,提高了設備的通用性及航天器測試效率。
本論文在前人研究的基礎上,采用基于1553B總線的軟件故障注入方法,即在系統(tǒng)中用故障注入節(jié)點來完全模擬指定子系統(tǒng)的運行及特定故障的發(fā)生,以獲取這些故障傳遞的過程即失效鏈,可以為反饋迭代設計提供數(shù)據(jù)支持。通過1553B總線集中獲取運載火箭各個子系統(tǒng)的運行狀態(tài)數(shù)據(jù),通過基于故障樹的故障診斷算法確定故障鏈路,定位故障,完成故障診斷。
運載火箭控制系統(tǒng)是由一系列能夠完成特定功能的單機子系統(tǒng)所組成的綜合性功能系統(tǒng),一般固體運載火箭總線設備主要包括主控制組合、安全控制組合、Ⅱ級控制組合、激光捷聯(lián)慣測組合、光纖速率陀螺組合、多星分離控制裝置、組合導航模塊、以及Ⅰ、Ⅱ、Ⅲ級伺服子系統(tǒng)。
運載火箭原理如圖1所示。其中速率陀螺、激光捷聯(lián)慣測組合測量火箭飛行時的加速度、角速度等信息,通過1553B總線發(fā)送至箭載計算機。箭載計算機中導航計算模塊計算得到運載火箭運行過程中的位置、速度、姿態(tài)等參數(shù)。導引計算模塊和關機計算模塊根據(jù)這些信息分別計算處導引信號和關機指令,姿控系統(tǒng)根據(jù)接收到的導引信號、姿態(tài)偏差等信息,通過1553B發(fā)送控制指令給伺服作動系統(tǒng)控制作動器的運動;而關機指令則通過時序控制系統(tǒng)控制發(fā)動機的點火或關機,保證火箭按照預定的姿態(tài)運行在預定的軌跡上。時序控制系統(tǒng)在運載火箭飛行過程中按要求的時間序列控制發(fā)動機點火關機、整流罩分離、級間分離和星箭分離等多項關鍵動作。
圖1 運載火箭原理
基于1.1節(jié)對于運載火箭控制系統(tǒng)的組成和圖1的工作原理,本文采用MADe軟件平臺建立了全系統(tǒng)的頂層可靠性模型,如圖2所示,該模型考慮了控制系統(tǒng)的所有組成部分:1553B總線,慣性測量裝置,制導系統(tǒng),姿控系統(tǒng)(含伺服系統(tǒng)),時序控制系統(tǒng),電源系統(tǒng),以及發(fā)動機系統(tǒng)(伺服系統(tǒng)的控制對象)。
圖2 運載火箭控制系統(tǒng)可靠性模型
本論文重點以伺服系統(tǒng)為研究對象,基于該模型生成系統(tǒng)的故障樹,通過虛擬故障注入,分析系統(tǒng)的故障鏈路,為后續(xù)的故障診斷方法提供支撐。
伺服系統(tǒng)是姿控系統(tǒng)的主要組成部分,如圖3所示是伺服系統(tǒng)的詳細模型,包括氣源裝置,氣動調(diào)壓閥,油箱,液壓管路,二次電源,電機,液壓泵,過濾器,安全閥,旁通閥,伺服閥,蓄能器,旁通閥,作動筒,放大器等元部件。
圖3 伺服系統(tǒng)的可靠性模型
分析控制系統(tǒng)各部件的故障機理和故障模式是進行故障診斷的前提。本項目通過MADe.完成了所有組件和子系統(tǒng)的失效分析。此處不再贅述細節(jié)。
為了滿足故障診斷和定位的需求,需要完成顯控計算機、速率陀螺、激光慣組、二次電源、時序通路、伺服機構以及配電系統(tǒng)部分的實時故障診斷。
通過建立運載火箭控制系統(tǒng)各子系統(tǒng)的故障樹模型,描述出所有引起運載火箭控制系統(tǒng)故障的中間事件,然后對各級中間事件進行分析,歸納出引起中間事件現(xiàn)象發(fā)生的所有底事件,就可以建立運載火箭系統(tǒng)的故障樹??刂葡到y(tǒng)故障樹如圖4所示。其中頂事件A為“運載火箭控制系統(tǒng)故障”,中間事件劃分為七組單機系統(tǒng)子故障樹,其中:
圖4 運載火箭控制系統(tǒng)故障樹模型
B1為箭載計算機故障;
B2為時序電路故障;
B3為二次電源故障;
B4為速率陀螺故障;
B5為伺服機構故障;
B6為激光捷聯(lián)慣測組合故障;
B7為配電器故障。
更深層次的故障樹限于篇幅關系,在此不做展開。
故障樹模型建立之后,通過1553B總線數(shù)據(jù)獲取各個底事件所對應的節(jié)點設備的測試參數(shù),經(jīng)過與系統(tǒng)閾值的對比,找到引起控制系統(tǒng)故障的節(jié)點設備并分析失效鏈路,直至找到所有引起故障的最底層原因,算法過程如圖5所示。
圖5 失效鏈分析方法
找到所有引起故障的最底層原因后便可推導出失效鏈,失效鏈可能存在多條,分別對應不同的故障原因。
根據(jù)虛擬仿真平臺,把得到的所有系統(tǒng)和元部件的故障樹作為故障診斷的數(shù)據(jù)庫,這樣系統(tǒng)中任何一個單元發(fā)生故障,都可以基于數(shù)據(jù)庫判斷出來。
運載火箭控制系統(tǒng)是由一系列復雜的子系統(tǒng)和元件組成,功能十分強大,控制系統(tǒng)內(nèi)部有著眾多的傳感器元件,在地面測試的過程中,通過1553B總線可以獲取到當前控制系統(tǒng)各單機子系統(tǒng)的工作參數(shù),這就為運載火箭控制系統(tǒng)的故障診斷提供了數(shù)據(jù)支持。
運載火箭控制系統(tǒng)中主要的信號都通過1553B總線進行傳輸。典型的1553B總線系統(tǒng)采用雙總線冗余設計,變壓器耦合方式,其拓撲結構如圖3所示。
1553B總線終端分為總線控制器(BC)、遠程終端(RT)和總線監(jiān)視器(BM),主控組合作為1553B總線的BC,其余子系統(tǒng)如安全控制組合、Ⅱ級控制組合、激光捷聯(lián)慣測組合以及各級伺服子系統(tǒng)系統(tǒng)等作為RT。
在1553B總線中,BC是指在數(shù)據(jù)總線上啟動或開始信息傳輸任務的唯一終端,主控組合作為BC可控制其余子系統(tǒng)的數(shù)據(jù)傳輸;RT是運載火箭各個子系統(tǒng)到數(shù)據(jù)總線上的接口,它在BC控制下傳輸數(shù)據(jù)并對BC來的命令做出響應,每個RT都被預設了唯一的字地址。系統(tǒng)運行時主控組合控制各個子系統(tǒng)進行自檢和時間同步,在地面測試時,主控組合會將自檢結果、子系統(tǒng)時間同步結果、時序通路測試結果發(fā)送給地面測試系統(tǒng)。
安全控制組合、Ⅱ級控制組合也發(fā)送相應的時序測試結果,并向主控組合發(fā)送二次電源測試數(shù)據(jù)。激光慣組和光纖速率陀螺將測量結果和電壓、溫度等信號傳輸給主控組合。Ⅰ、Ⅱ、Ⅲ級伺服子系統(tǒng)將伺服系統(tǒng)內(nèi)的數(shù)據(jù)發(fā)送至主控組合。消息流如圖6所示。
圖6 運載火箭控制系統(tǒng)總線結構
故障診斷系統(tǒng)需要對運載火箭控制系統(tǒng)進行實時的故障診斷,首先需要完成計算機、速率陀螺、激光捷聯(lián)慣測組合、電源、時序通路以及伺服機構1553B通信數(shù)據(jù)的采集、分析。本方案將故障診斷系統(tǒng)作為BM,接入原有系統(tǒng)中,BM是接收總線上傳輸?shù)男畔⒑吞崛〗?jīng)選擇的信息的終端,它不參與總線的事務處理。通過BM可對總線上數(shù)據(jù)源進行記錄和分析,系統(tǒng)結構如圖7所示。
圖7 故障診斷系統(tǒng)結構
1553B 總線定義了嚴格的消息格式,故障診斷系統(tǒng)主要監(jiān)聽BC到RT、RT到BC、RT到RT消息,每種消息類型都對應有不同的命令字、數(shù)據(jù)字、狀態(tài)字組合方式和發(fā)送順序,BM可以監(jiān)聽到以上消息的數(shù)據(jù)字、命令字和狀態(tài)字。
由于總線上會傳輸各種消息,如:BC-RT、RT-RT、RT-BC,同時由于RT終端以及子地址的不同,所以1553B總線上會傳輸著各類復雜的通信消息,為了能夠進行區(qū)分,根據(jù)BusTools_MemoryRead采集到的命令字設置隔離條件,獲取到所讀取信息的遠程終端RT、子地址、數(shù)據(jù)字個數(shù),實現(xiàn)對1553B總線不同子系統(tǒng)所傳輸?shù)牟煌⒌暮Y選。調(diào)用的API和代碼如下:
dev_num=BusTools_FindDevice(MY_CARD_TYPE,MY_INSTANCE);
status=BusTools_API_OpenChannel(&ch_id,PI_B_MODE |API_SW_INTERRUPT,dev_num,MY_CHANNEL);
start_ptr =last_ptr =current_ptr =0;
status =BusTools_BM_Init(ch_id,1,1);
status =BusTools_SetInternalBus(ch_id,0);
status=BusTools_BM_MessageAlloc(ch_id,NUM_BM_BUFFERS,&num_bm_buffers_actual, BT1553_INT_END_OF_MESS);
status =BusTools_MemoryRead(ch_id,BM_MSGSTART_PTR,2,&start_ptr);
last_ptr =current_ptr =start_ptr;
status =BusTools_BM_StartStop(ch_id,1);
while (繼續(xù)進行診斷)
{
status =BusTools_MemoryRead(ch_id,(((last_ptr <<3)+ 8)* 2),2,&command_word);
……//根據(jù)command_word判斷消息類型
status =BusTools_MemoryRead(ch_id,(((last_ptr <<3)+ 10)* 2),2,&data_word1);
……//讀取data_word1中的數(shù)據(jù),診斷火箭子系統(tǒng)是否正常
}
status =BusTools_API_Close(ch_id);
獲取到各個設備測試數(shù)據(jù)后,采用失效鏈分析方法診斷和定位故障,通過用戶界面實時顯示出來。
由于運載火箭控制系統(tǒng)的復雜性,通常情況下,很難獲得系統(tǒng)的故障數(shù)據(jù),實際分析到的失效很難在實際裝置中全部復現(xiàn)。因此需要對系統(tǒng)注入一些故障來模擬。本文采用了兩種故障注入的方式,第一種方法是通過建立的虛擬模型來進行虛擬故障注入,獲取故障的影響程度和故障鏈路,得到的信息可以輔助進行故障診斷。第二個方法是針對實際的運載火箭系統(tǒng),通過數(shù)據(jù)總線系統(tǒng)里用故障注入計算機作為遠程終端來替換原來的遠程終端,用軟件注入的方法來進行故障模擬。
針對運載火箭控制系統(tǒng)平臺,進行故障注入的試驗時,會把要進行注入故障的某個特定子系統(tǒng),有一個新的遠程終端(RT)來取代,這個新的RT就是作為一個故障注入遠程節(jié)點,也是一個計算機,在其上用軟件注入的方式來模擬故障。故障注入的示意圖如圖8所示。
圖8 故障注入系統(tǒng)結構
系統(tǒng)運行時,故障注入模塊首先需要模擬這個子系統(tǒng)的功能并向總線發(fā)送正常信號。根據(jù)系統(tǒng)要求,子系統(tǒng)進行自檢和時間同步是通過模式命令和帶數(shù)據(jù)字的模式命令發(fā)送的,其消息格式如圖9,另外故障注入系統(tǒng)還必須響應RT-BC、RT-RT消息。
圖9 1553B 總線定義的部分消息格式
首先調(diào)用BusTools_BM_Init、BusTools_SetInternalBus、BusTools_RT_Init等函數(shù),將板卡初始化為RT。
初始化工作完成之后,調(diào)用BusTools_RT_MessageWrite寫入故障數(shù)據(jù)和不需要進行故障注入部分的正常數(shù)據(jù),調(diào)用BusTools_RT_StartStop函數(shù),開啟RT功能,響應總線消息。同時調(diào)用預設的中斷函數(shù)RT_Event_Handlere處理方式命令,接收帶數(shù)據(jù)字的方式命令中的數(shù)據(jù)字,再通過BusTools_RT_MessageWrite將返回值寫入總線。最后調(diào)用BusTools_API_Close等函數(shù)斷開連接。調(diào)用的API和代碼如下:
dev_num =BusTools_FindDevice(MY_CARD_TYPE,MY_INSTANCE);
status =BusTools_API_OpenChannel(&ch_id,API_B_MODE |API_SW_INTERRUPT,dev_num,MY_CHANNEL);
status =BusTools_BM_Init(ch_id,1,1);
status =BusTools_SetInternalBus(ch_id,0);
status =BusTools_RT_Init(ch_id,0);
Abuf_RT1.enable_a =1;
Abuf_RT1.enable_b =1;
Abuf_RT1.inhibit_term_flag =1;
Abuf_RT1.status =0x0800;
Abuf_RT1.bit_word =0x0000;
status =BusTools_RT_AbufWrite(ch_id,RT,&Abuf_RT1);
while (繼續(xù)進行故障注入)
{
……//把要注入消息的命令字放入Cbuf_RT1SA2T中
status =BusTools_RT_CbufWrite(ch_id,RT,sa,1,1,&Cbuf_RT1SA2T);
……//把數(shù)據(jù)字放入msg_buffer_write中
status =BusTools_RT_MessageWrite(ch_id,RT,sa,1,0,&msg_buffer_write);
}
status =BusTools_RT_StartStop(ch_id,1);
//等待測試結束
status =BusTools_RT_StartStop(ch_id,0);
status =BusTools_API_Close(ch_id);
在每一個子系統(tǒng)所對應的虛擬模型上,本文都嘗試了故障模擬的方法,并觀察因為注入的故障對整個系統(tǒng)帶來的一系列影響,我們稱之為故障鏈路,本文僅以氣源系統(tǒng)故障為例。
當氣源發(fā)生故障時,會導致其它元部件也相應地出現(xiàn)故障,從而形成系統(tǒng)的故障鏈路(如圖10中有數(shù)字標志的元部件組成的鏈路),通過故障鏈路可以更好的分析和定位故障,如上所示,其中數(shù)字代表故障的傳遞順序,氣源故障會導致伺服系統(tǒng)的作動機構輸出異常,從而會影響姿控系統(tǒng)的控制精度(圖11故障鏈路所示),接著影響到火箭發(fā)動機噴管的運動特性(圖12所示)并最終導致火箭的運動偏離預定軌道。
圖10 氣源故障發(fā)生后作用到伺服系統(tǒng)的失效鏈仿真
圖11 氣源故障發(fā)生后作用到姿態(tài)控制系統(tǒng)的失效鏈仿真
圖12 氣源故障發(fā)生后作用到控制系統(tǒng)的失效鏈模擬
在圖10中,1號的氣源故障發(fā)生后,引起伺服系統(tǒng)故障,故障按如下路徑傳,氣動安全閥2→油箱3→液壓入口管4→入口過濾器5→液壓入口管6 →液壓活塞泵7 →液壓管路8→液壓止回閥9→伺服閥10→液壓作動器11→線性旁通閥12。
圖中序號為12的伺服系統(tǒng)故障,導致伺服系統(tǒng)的輸出13故障。
圖中序號為13的故障傳遞到發(fā)動機14,進一到控制系統(tǒng)15的輸出發(fā)生故障。
通過故障模擬,為實際的試驗流程及試驗項目的設置提供了很好的指導。
首先建立系故障診斷模塊,然后進行故障注入,一旦系統(tǒng)發(fā)生故障,會啟動故障診斷算法,并給出故障診斷結果。
故障診斷系統(tǒng)以工控機為平臺,用PCI-1553B板卡作為總線通信設備,基于MFC開發(fā)了故障診斷軟件和故障注入軟件。
故障診斷軟件由總線數(shù)據(jù)采集和處理模塊,數(shù)據(jù)庫管理模塊,故障診斷模塊和用戶界面組成,用戶界面如圖13所示。數(shù)據(jù)采集和處理模塊直接控制板卡,獲取總線通信數(shù)據(jù)。
圖13 故障診斷軟件
數(shù)據(jù)庫管理模塊可讀取Microsoft Access數(shù)據(jù)庫中的故障模式和故障樹信息,另外測試數(shù)據(jù)也可被保存在Access數(shù)據(jù)庫中;故障診斷模塊利用故障模式和故障樹信息,對總線通信數(shù)據(jù)進行實時診斷,并將結果顯示在用戶界面上。
針對模型固體運載火箭部分箭載設備進行故障診斷系統(tǒng)和故障注入系統(tǒng)實驗,被測試設備包括主控制組合,安全控制組合通,Ⅱ級控制組合,激光捷聯(lián)慣測組合,光纖速率陀螺,Ⅰ、Ⅱ、Ⅲ級伺服子系統(tǒng)。系統(tǒng)結構如圖14所示。
圖14 測試系統(tǒng)硬件組成
在地面測試中,為了模擬伺服系統(tǒng)故障,讓伺服系統(tǒng)氣囊處于未充氣狀態(tài),油箱僅由二次能源系統(tǒng)提供壓力,其余均為運載火箭控制系統(tǒng)正常運行狀態(tài)。部分測試結果如表1。啟動故障診斷系統(tǒng)后,診斷結果為氣源出現(xiàn)故障。
表1 部分測試數(shù)據(jù)
用類似的方法對本文的仿真內(nèi)容進行了更多測試,得到了期待的結果,證明本文提到的故障注入和診斷算法是有效的。
本論文針對運載火箭控制系統(tǒng)的故障診斷和故障注入方法開展研究,由于該控制系統(tǒng)的信息傳輸全部是通過MIL-STD-1553B數(shù)據(jù)總線,所以在進行故障注入時,我們通過數(shù)據(jù)總線來注入故障、獲取數(shù)據(jù),并進行故障診斷。
故障診斷方法采用了故障樹的方法,故障注入則用虛擬模型來進行故障注入和試驗兩種方式結合,試驗結果表明本文采用的方法切實有效,為運載火箭的地面測試和故障診斷提供了很好的研究思路。未來將進一步開展各種試驗,以便形成完備的測試數(shù)據(jù)集,進一步優(yōu)化故障定位的深度。