張卓政,杜建峰,范崇盛,陳 川,張晶晶,王亞平
(1.上海航天控制技術研究所·上?!?01109;2.上海空間推進研究所·上?!?01112)
箭載計算機主要承擔飛行控制任務,工作在強電磁輻射、沖擊、振動等惡劣環(huán)境中。作為運載火箭控制系統(tǒng)的核心,箭載計算機對故障應對能力和可靠性有著非常高的要求。余度技術可采用可靠性相對較低的部組件組合成高可靠性的系統(tǒng),從而提升火箭控制系統(tǒng)的任務可靠性和安全性。隨著對元器件自主可控要求的不斷提高,余度技術也有利于進一步促進國產(chǎn)元器件替代進口器件。
余度管理一般涉及以下方面:
(1)余度配置:余度計算機的冗余方式包括雙模冗余、三模冗余和更高級別的N模冗余。雙模冷備份或熱備份的長期可靠性均高于三模冗余表決系統(tǒng)。但是,一旦發(fā)生故障而不能及時定位故障,則不能保證正確的輸出,而N模冗余的成本和復雜度均太高。多種航空航天無人飛控系統(tǒng)采用三模、四模冗余計算機實現(xiàn)了飛控任務。文獻[2]中的某火箭上面級計算機采用了3主1備冗余,邏輯復雜,由于空間飛行任務的時間過長,故障模塊的恢復期最長達到了8s。
(2)時鐘同步:同步是余度計算機余度管理的基礎和前提條件,只有在同步的前提下,對輸入、輸出的結(jié)果進行監(jiān)控或表決才具備意義。時鐘同步可以通過硬件實現(xiàn),也可以通過軟件實現(xiàn),通過軟件實現(xiàn)的時鐘同步也被稱為松散同步。
常用的硬件同步方法包括:公共外部時鐘同步、精確獨立時鐘同步、互反饋獨立時鐘同步。
公共外部時鐘同步:所有冗余模塊共用一個時鐘源。配置簡單,相位和頻率均有保證。但由于是一個單點,有共因失效的風險。
精確獨立時鐘同步:所有冗余模塊使用自己的時鐘源。由于各個時鐘相互獨立,相位誤差是隨機的。實踐表明,各個時鐘源的頻率穩(wěn)定性和精確性只能夠維持短時間的同步,時鐘漂移累積誤差最終將造成失步。
互反饋獨立時鐘:所有冗余模塊有自己的時鐘源,各模塊之間通過交互反饋調(diào)節(jié)漂移而得出最終的同步時鐘。這種配置較為復雜,但可提供長時間的時鐘同步。
松散同步以軟件算法為基礎。例如,各模塊之間采用軟件通信方式完成交互反饋即是一種松散同步的實現(xiàn)方法。由這種方式所獲得的冗余模塊的同步程度取決于通信速率、各模塊的自身時鐘精度和交互頻率。
文獻[1]采用主備份時鐘實現(xiàn)了冗余模塊同步,采用單獨的硬件實現(xiàn)了表決功能,但是對時鐘晶振需要進行特別的篩選,且表決器本身是單點;文獻[5]和文獻[7]通過軟件方式實現(xiàn)了任務級的時鐘同步。
(3)表決邏輯:文獻[5]默認冗余模塊序號較小的模塊具有較高的優(yōu)先級,這一假設不夠合理。
(4)自檢測:文獻[7]設計了機內(nèi)測試(Built-in Test,BIT)。目前,新一代運載火箭XX-5、XX-7電氣系統(tǒng)均采用了BIT自檢測技術。BIT自檢測技術能夠提高故障診斷的精確性、顯著縮短診斷時間,但未能充分發(fā)揮其系統(tǒng)表決功能。
運載火箭控制系統(tǒng)具有對實時性的要求高、任務時間較短的特點,因此大部分運載火箭控制系統(tǒng)采用的是三模冗余方式。本文研究的余度管理設計主要包括冗余模塊的配置,通道表決、時鐘,以及輸入輸出冗余信號的監(jiān)控與表決。冗余配置取消了表決器單點;時鐘同步采用了互反饋的獨立時鐘,并通過軟件備份實現(xiàn)了任務級的同步;開關量的輸出級額外設計了 “五管冗余”硬件冗余表決進一步提高了可靠性,并充分引入BIT信息參與通道表決,改善了表決的完備性。
如圖1所示,本文研制的三模冗余箭載計算機主要由三個相同的處理器單元(CPU)模塊構(gòu)成。三個模塊的組成完全相同,且每個模塊的關鍵器件配備有精密時鐘、FPGA、CPU,以及必要的隔離驅(qū)動電路。每個模塊都有自己的時鐘脈沖,通過FPGA與其他兩個模塊的時鐘脈沖交互表決,產(chǎn)生毫秒并同步中斷給本模塊的CPU。每個CPU都產(chǎn)生自己的輸出,其他兩個CPU通過內(nèi)部LVDS總線交互關鍵信息,再表決及輸出。
圖1 三模冗余箭載計算機余度結(jié)構(gòu)示意圖Fig.1 Topology diagram of triple modular redundancy computer of launch vehicle
由于箭載計算機的信息輸入和運算輸出控制的下一級執(zhí)行機構(gòu)被執(zhí)行了冗余配置,相應的輸入和輸出接口須進行余度設計。
冗余慣組、速率陀螺輸入信號為RS422數(shù)據(jù),起飛信號輸入為開關量,測試用舵反饋輸入為模擬量;輸入鏈路一分三而進入三個CPU模塊。DA輸出控制伺服機構(gòu)的舵擺角為模擬量,其關機和噴管控制輸出為開關量;輸出鏈路為三個CPU模塊,均為對外輸出。
典型的三模冗余構(gòu)型的計算機在輸出端都配置有一個硬件表決器,一般可通過一塊FPGA來實現(xiàn)。表決器的引入構(gòu)成了一個單點。為了消除單點,可充分利用后續(xù)伺服機構(gòu)的冗余特性。本設計中的三個CPU模塊可獨立承擔表決功能,表決功能可由FPGA軟件和DSP軟件實現(xiàn)。
本文研制的冗余箭載計算機三機同步時鐘技術采用了互反饋獨立時鐘模式,其主要原理是通過FPGA對三機時鐘進行同步處理:即三個模塊中的每個模塊均有一個由獨立時鐘源產(chǎn)生的時鐘心跳,每個FPGA以50MHz的晶振時鐘分頻產(chǎn)生頻率為1kHz、占空比為1:9999的高電平有效毫秒脈沖信號,高電平寬度為0.1μs。三個模塊間的毫秒脈沖在交互以后通過三取二表決最終產(chǎn)生一個同步毫秒中斷(共有三個),并提供給對應的CPU處理器,同步觸發(fā)任務處理。由FPGA各自表決而得到的三個毫秒中斷同步誤差可被控制在ns級,同步過程如圖2所示。各個CPU模塊以接收到的三路毫秒脈沖信號中的第二路到達信號作為毫秒同步時鐘信號,并將其發(fā)送給各自的CPU。
圖2 毫秒時鐘同步過程Fig.2 The process of millisecond clock synchronization
由于飛行控制運算的任務處理均以毫秒為處理節(jié)拍,在毫秒中斷同步的情況下,三個模塊間的飛行控制運算任務需同步向前推進。類似地,對由箭機產(chǎn)生的5ms同步信號進行了相同的處理:為了適應冗余慣性信息的輸入、滿足后續(xù)余度管理的需要,將由三個CPU模塊經(jīng)過三取二表決而產(chǎn)生的多路同源的5ms同步信號分別發(fā)送給冗余慣性測量設備,冗余慣性測量設備將其作為基準來進行陀螺加速度計測量信息的采集、打包和RS422數(shù)據(jù)發(fā)送。
此外,在時鐘同步處理時,還采取了備份措施。一旦由于某種原因(例如斷線)而導致FPGA的毫秒時鐘脈沖交互失敗,還可以利用DSP軟件、通過LVDS總線以1ms的頻率完成通信交互反饋,以進行任務級時鐘同步。控制輸出的典型周期為20ms,在同步時間點刷新輸出,不同步性可以控制在μs級別。
輸入表決主要涉及數(shù)字量、開關量、模擬量問題。
(1)數(shù)字量輸入:對于來自冗余慣性測量設備的多路同步通信數(shù)據(jù)包,首先對傳輸內(nèi)容進行校驗,校驗為錯誤的數(shù)據(jù)包直接丟棄。如果校驗通過,則對冗余數(shù)據(jù)包進行后續(xù)的一致性比對或表決。
(2)開關量輸入:由于開關量是離散信號,分別用A
、B
、C
三個通道符號表示模塊序號1、2、3,輸入表決可以采用布爾代數(shù)表達式Yin
=AB
+BC
+AC
獲得。其中,Yin
為三取二表決結(jié)果。將8種可能的輸入結(jié)果進行歸并,將離散量的值相加??紤]一度故障時,可能的情況有以下幾種:3、2、1、0。①如果結(jié)果是3,則所有信號有效為1;
②如果結(jié)果是2,則信號為0的通道故障;
③如果結(jié)果是1,則信號為1的通道故障;
④如果結(jié)果是0,則所有信號有效為0。
(3)模擬量輸入:經(jīng)采樣得到的模擬量數(shù)據(jù)和來自通信數(shù)據(jù)的模擬量數(shù)據(jù)均是浮點數(shù)類型。在對其進行表決時,首先需要完成三個數(shù)據(jù)通道的一致性比對,主要采用了基于門限的算法。門限值的設計綜合考慮了各通道的不一致性和由輸入數(shù)據(jù)表示的物理量的變化特性。在一定的門限內(nèi),模擬量輸入均可認為是正確值。
對于某一個實測模擬量s
,i
=A
,B
,C
,系統(tǒng)給定的不一致性門限為ε
(t
)>0。定義三個通道間的不一致偏差為S
=|s
-s
|,i
=A
,B
,C
,j
=A
,B
,C
且i
≠j
定義符號函數(shù)為
三個模塊通過數(shù)據(jù)交互計算不一致偏差,將不一致偏差與門限進行比較并進行余度管理,可得到各自用于飛控計算的數(shù)據(jù)。
表1中,序號1表示三模冗余模塊采用各自的輸入值。由于不一致性偏差都在門限內(nèi),這些數(shù)據(jù)都是對真實物理參數(shù)的反映。
表1 基于門限的模擬量輸出表決Tab.1 Analog output voting based on threshold
考慮到將不一致性偏差的二值化結(jié)果定義為不同位權(quán)的二進制位有利于軟件的實現(xiàn),定義如下的由三位二進制表示的整數(shù):S
=D
D
D
,其正則化后的結(jié)果如表2所示。其中,D
=Sign(S
-ε
),D
=Sign(S
-ε
),D
=Sign(S
-ε
)。表2 正則化的模擬量輸出表決Tab.2 Formalization of analog output voting
輸出信號開關量和模擬量的表決機制與輸入信號基本一致。
(1)開關量輸出
在三模冗余的CPU模塊輸出表決的基礎上,箭載計算機在輸出級采用了五管冗余機制。如圖3及表3所示,五個固態(tài)繼電器輸出通道(XYZRS
)并串聯(lián)冗余構(gòu)成了輸出級的冗余。與常用的串并連冗余或并串連冗余相比,這里所用的五管冗余機制具備兩個顯著的優(yōu)點:一方面,其可有效應對由固態(tài)繼電器短路或斷路失效而帶來的危害;另一方面,其能夠?qū)碜匀齻€CPU模塊的控制信號再次進行三取二表決,以確保在一路誤判和在一個輸出繼電器失效的情況下電路功能不被影響。圖3 五管冗余輸出結(jié)構(gòu)Fig.3 The structure of output with five redundant solid relays
表3 五管冗余輸出真值表Tab.3 Logic truth table of five redundant solid relays
(2)模擬量輸出
為了盡量減小伺服機構(gòu)力紛爭的可能,采用與輸入不同的方式,對表2中序號1考慮的情況進行調(diào)整,即三模冗余模塊不再采用各自的輸出值,而是統(tǒng)一取中間值。如圖4所示,將箭載計算機輸出控制三冗余伺服閥的信號統(tǒng)一為由運算得出的中間值。從軟件優(yōu)化角度來看,排序算法的效率較低,且得不到故障通道的信息,在毫秒中斷中對數(shù)據(jù)進行排序的耗時較長。表2序號2~7中的標量在實際算法中選取了中值,所取得的算法與直接對數(shù)值s
(i
=A
,B
,C
)進行大小排序、進而選取中間值的計算結(jié)果一致。文獻[5]所描述的方法為,優(yōu)先選擇序號小的模塊。相比文獻[5]所描述的方法,本方法更加合理。圖4 伺服控制DA輸出示意圖Fig.4 The schematic diagram of DA output for servo control
對于結(jié)構(gòu)化的數(shù)據(jù)向量而言,其無法被直接排序。不一致性偏差定義可以擴展為向量的歐式距離,而歐式距離可進一步與門限進行比對表決。
余度算法采用中間值的優(yōu)點為,中間值相對保守折中,其與真實值的誤差不是最大的一個;同時,將中間值選擇和持續(xù)的故障計數(shù)相結(jié)合,可滿足拜占庭故障抑制的要求。
不失一般性,假設有s
≤s
≤s
,物理量的真實值為s
,可得s
-s
≤s
-s
≤s
-s
①0≤s
-s
≤s
-s
?|s
-s
|≤|s
-s
|;②s
-s
≤s
-s
≤0?|s
-s
|≤|s
-s
|本文研制的冗余箭載計算機采用了BIT自檢測技術。一方面,該技術提升了測試覆蓋性改進余度設計,驗證了門限設計的有效性;另一方面,BIT自檢測技術增加了一個維度,參與了余度的管理,改善了表決的合理性。冗余計算機BIT自檢測技術可分為3種工作模式:加電啟動BIT自檢測技術、飛行前BIT自檢測技術、飛行中BIT自檢測技術。由于運載火箭不可維修,因此無需考慮BIT自檢測技術的維護。
加電啟動BIT自檢測技術的測試內(nèi)容最為全面,包括了CPU、LVDS總線、DSP內(nèi)部IRAM、關機信號、失穩(wěn)信號、姿控信號、起飛信號、串口回環(huán)測試、時鐘心跳、二次電源測試以及輸入輸出通道的自檢。加電啟動BIT自檢測技術通過自檢為系統(tǒng)建立了一個正常工作的初始基準。
飛行前和飛行中BIT自檢測技術為周期性測試,由飛行軟件實現(xiàn)。測試安排在飛行計算的空隙進行,測試內(nèi)容包括LVDS傳輸、時鐘心跳、二次電源和輸出通道的監(jiān)控,如表4所示。
表4 BIT參數(shù)表Tab.4 List of parameters of BIT
自檢測中的關鍵參數(shù)包括
(1)LVDS傳輸:三個CPU模塊間的輸入輸出表決均依賴LVDS交叉通信,這對其自檢具有至關重要的意義;
(2)時鐘心跳:三個CPU模塊都擁有自己的獨立毫秒中斷。飛行控制軟件以此為節(jié)拍進行計算,時鐘心跳作為關鍵的自檢信息參與輸入輸出的表決,并作為首先被考慮的參數(shù)。軟件計數(shù)比對不正確的原因有可能為晶振失效,F(xiàn)PGA采樣計算的毫秒中斷不正確,也可能源于軟件計算的故障;
(3)二次電源:對DSP和FPGA等核心器件的供電電壓、關鍵外圍接口、AD、DA基準電壓進行周期采樣,監(jiān)控系統(tǒng)的工作狀態(tài);
(4)開關量:開關量保持時間范圍為20ms~200ms,如圖5中的關機、噴管控制信號。FPGA具備足夠的精度,飛行控制軟件也有足夠的時間裕度將此類信號進行回采。通過將回采信號與由三個CPU表決運算輸出的信號進行比對,可有效監(jiān)控接口器件功能的正確性;
(5)模擬量:模擬量DA輸出的更新周期為20ms。如圖5所示的回采方式可以充分利用每一個CPU模塊的AD通道,將最終的輸出回采與CPU表決運算值進行比對。如果比對后的誤差在一定門限內(nèi),則可監(jiān)控該模塊對應的接口芯片是否正常工作。如果發(fā)生了一定程度的漂移,還可以進行對應的補償,使得三個CPU模塊的輸出盡可能一致。
圖5 控制輸出回采示意圖Fig.5 The schematic diagram of sampling of control output
當三個CPU模塊的工作均正常時,須對輸入輸出進行參數(shù)表決。當關鍵特性累計超過故障計數(shù)門限時,須對故障通道做進一步處理。選取可表征三個冗余模塊正常工作的關鍵特性,即LVDS交叉?zhèn)鬏?、時鐘心跳計數(shù)、控制輸出信號,進行模塊級表決或通道表決。
(1)LVDS交叉?zhèn)鬏斝柙谝欢〞r間內(nèi)完成,引起傳輸失敗的原因包括:未在約定的通信周期內(nèi)完成傳輸;傳輸?shù)臄?shù)據(jù)校驗和未通過。判定通道是否發(fā)生故障的標準是:當A通道沒有獲得其他通道的正常數(shù)據(jù)的連續(xù)次數(shù)超過了門限,則認為其他通道故障。無法進行交叉通信,則無法進行后續(xù)的參數(shù)表決。
(2)通過軟件進行時鐘心跳計數(shù)的交互比對。參照模擬量表決故障計數(shù)的規(guī)則,當連續(xù)超差次數(shù)超過門限時,則認為該通道故障。故障的含義為該通道與其他通道不同步。同時,該故障模式在嚴重到一定程度時,會引起傳輸時間超差。根據(jù)第一條判定原則,該通道將會被其他通道判定為故障,也會導致后續(xù)模塊間輸入輸出的表決點不匹配。
(3)控制輸出信號按照開關量和模擬量表決故障計數(shù)規(guī)則,在連續(xù)超差次數(shù)超門限時,判定該通道故障。
三模冗余CPU模塊可對以上三個關鍵特性獨自進行通道表決,由各特性的表決結(jié)果得到的故障通道數(shù)可能為0、1、2、3。
通道表決流程示意圖如圖6所示。表決按上述(1)、(2)、(3)的順序進行,各個通道對交叉?zhèn)鬏斖返谋頉Q結(jié)果可以存在不一致的情況,交叉?zhèn)鬏斖繁頉Q不會出現(xiàn)故障通道數(shù)為3的情況;即使A通道由于交叉?zhèn)鬏斖方邮胀ǖ腊l(fā)生故障而判斷B、C通道出現(xiàn)故障,發(fā)送通路也并不一定發(fā)生故障,所以需要將A通道的輸出轉(zhuǎn)發(fā)給其他通道。
圖6 三模冗余通道表決算法的流程圖Fig.6 Flow chart of voting algorithm of triple modular redundancy channels
(1)互反饋獨立時鐘仿真
三模冗余時鐘需考慮如下幾種故障模式,在Modelsim軟件中使用Verilog-HDL對時鐘進行建模,驗證在某一模塊的時鐘源發(fā)生故障時,互反饋獨立時鐘是否可以正常工作。仿真結(jié)果如圖7~圖9所示。
圖7 1個時鐘相位存在偏差Fig.7 One of the three channel clocks with phase error to the others
圖8 3個時鐘之間的相位均有偏差Fig.8 Every two of the three channel clocks with phase error to the other
圖9 1個時鐘完全故障Fig.9 One of the three channel clocks totally failed
① 其中1個時鐘與其他2個時鐘的相位有偏差(毫秒脈沖2相位滯后)
② 3個時鐘之間的相位存在偏差(以第二個到來的時鐘時刻作為同步輸出)
③ 1個時鐘完全故障(毫秒脈沖3完全失效,無有效時鐘脈沖輸出)
上述仿真驗證表明,三機冗余時鐘設計方式既保證了毫秒中斷的同步輸出,又能夠在某一模塊時鐘源發(fā)生故障時確保模塊正常工作。即在三個時鐘均正常的情況下三取二表決同步輸出,在一個時鐘源誤差較大或是完全失效時也可正常工作。
(2)通道表決仿真
考慮圖6中NF=2的分支故障情況,在正常通信初始狀態(tài),人為地在特定時刻將CPU2、CPU3發(fā)送給CPU1的LVDS通信使其能禁止,模擬LVDS的交叉?zhèn)鬏斖ㄐ殴收?,驗證通道表決算法的正確性。
將三個CPU通道的表決信息通過測試口下傳并進行解析。圖10~圖12列表顯示了LVDS在通信正常和交互異常情況下由各CPU收發(fā)的控制輸出DA信息。
圖10 CPU1通道表決結(jié)果Fig.10 Channel voting result of CPU1
圖11 CPU2通道表決結(jié)果Fig.11 Channel voting result of CPU2
圖12 CPU3通道表決結(jié)果Fig.12 Channel voting result of CPU3
圖10~圖12演示了對關鍵特性LVDS交叉?zhèn)鬏敼收系娜哂啾頉Q。3個CPU各自進行了通道表決,CPU1判別出的故障通道數(shù)為2,而CPU2、CPU3判別出的故障通道數(shù)為0。
圖10中,LVDS2_1為CPU1接收CPU2的通道正常標志。第一拍中的2>1_OK表示CPU1接收CPU2通道正常,后續(xù)所有時間拍中的2>1_ER 表示CPU1接收CPU2通道異常。CPU交互的數(shù)據(jù)在第一拍之后出現(xiàn)了通信異常,因此CPU1接收到的其他CPU的數(shù)據(jù)值均為錯誤,錯誤數(shù)據(jù)可用FF_FF表示。
CPU1接收的CPU2、CPU3的通信鏈路均發(fā)生了故障,并在5拍以后被判別出。此時,CPU1發(fā)送功能正常。如圖11、圖12所示,CPU2、CPU3接收到了正確的信息,對DA輸出進行了有效的取中值表決,即為CPU1的輸出值。
本文研究了運載火箭三模冗余箭載計算機的余度管理,對CPU模塊的冗余配置、通道表決、時鐘同步、輸入輸出信號監(jiān)控表決、自檢測等方面設計了余度管理策略。該余度管理的設計思路在某型箭載計算機工程樣機中實現(xiàn)了功能驗證,試驗表明該方法可有效應對典型的失效模式。
進一步優(yōu)化的設計工作可以從以下幾個方面展開:考慮到運載火箭飛行任務時間較短,在體積、功耗、代價、可靠性限制下針對故障通道設計合理的切斷隔離措施,以及針對瞬時計算故障能斷電重啟;硬件的冗余模塊,通過合理選配多個生產(chǎn)廠家器件等方法,提供非相似余度來避免共因失效;軟件通過多樣化設計,來防護系統(tǒng)性設計錯誤所產(chǎn)生的共模故障。