鄧澤勇,曹 東,邵海龍
(南京航空航天大學自動化學院,江蘇 南京 211100)
無人機飛行控制系統主要由感知飛行狀態的傳感器、實時數據處理和執行控制功能的機載飛行控制計算機(簡稱“飛控計算機”)以及操縱舵面運動的伺服子系統組成[1]。飛控計算機是飛行控制系統的核心,負責無人機飛行任務的調度,管理無人機飛行控制系統的其它子模塊[2],根據無人機的飛行狀態調整系統控制策略。無人機執行任務的環境復雜惡劣,任務載荷大,無人機機載設備長期遭受如強震、高低溫、電磁干擾和硬部件結構損傷等因素影響;同時,由于飛控計算機自身的原因,例如飛控軟件程序設計、測試不完善,電路結構、元器件老化等因素,長時間運行可能出現不可預知的錯誤,這些都可能導致無人機在執行任務期間飛控計算機出現各種類型的故障,從而導致無人機整個系統失效。利用容錯技術可以顯著提高飛控計算機的任務可靠性和安全性。容錯技術是指系統在其組成部分出現特定故障或差錯的情況下仍然能執行規定功能的一種特性[3],主動容錯控制技術需要在最短時間內捕獲故障信息,因此實時、快速、準確地檢測出故障是實現主動容錯最主要、最基本的要求。為了提高系統的容錯性,飛控計算機通常采用余度技術。作為各余度模塊之間信息傳遞的通道,總線在余度技術中具有至關重要的作用。
ARINC659背板數據總線(簡稱ARINC659總線)是基于時間觸發架構的雙-雙余度配置的容錯串行總線[4],支持魯棒的時間分區和空間分區。相比其它總線,該基于時間表驅動的總線型多節點串行通信總線,具有完備的數據通信確定性和容錯性、高數據傳輸量等特點,非常適合在對可靠性和冗余容錯性要求較高的飛行器綜合電子系統中作為標準背板總線使用。因此,在本文多余度飛控計算機的系統架構上采用ARINC659總線,并且設計針對該對象飛控計算機系統的故障檢測方法,之后搭建半物理仿真平臺,通過半物理仿真實驗驗證該策略的有效性。

Figure 1 Structure of ARINC659 bus圖1 ARINC659 總線體系結構
ARINC659總線是美國航空電子工程師協會(AEEC)在1993年頒布的民用航空電子系統的一種標準背板總線。該總線具有高可靠性、強容錯能力、傳輸數據確定和高吞吐量等特點[5]。ARINC659總線采用表驅動比例訪問的通信機制,通過表程序事先定義每個時間串口上發送、接收的模塊單元和收發數據的長度,因此不存在數據傳輸沖突與硬件模塊等待數據傳輸的問題。在傳輸量方面,ARINC659總線最大的數據傳輸速率為60 Mbps,傳輸效率達到98%[6]。在線可更換模塊LRM(Line Replaceable Module)之間可以通過總線進行信息交互。ARINC659 總線體系架構如圖1所示,ARINC659總線使用4條總線同時進行交叉檢驗和半雙工傳輸[7],1條ARINC659總線配置有雙總線對(A與B),每對總線具有“x總線”與“y總線”2條總線,共4條總線(Ax,Ay,Bx,By)。這4條總線上的數據傳輸由2個總線接口單元BIUx與BIUy控制,BIUx負責Ax和Bx總線數據的收發,BIUy負責Ay和By總線數據的收發,2個總線接口單元BIU(Basic Interface Unit)在對4條總線數據接收的同時,也對4條總線進行Ax=Ay,Bx=By,Ax=By,Bx=Ay的交叉檢驗。通過對4條總線之間傳輸的數據進行對比,選擇正確的數據同時糾正錯誤的數據,因此ARINC659總線具有很強的容錯性。

Figure 2 Structure of flight control computer based on ARINC659 bus圖2 ARINC659飛控計算機系統架構
ARINC659總線多余度飛控計算機系統架構如圖2所示。該系統架構主要由3個模塊組成,包括Zynq處理器模塊ZPM(Zynq Processor Module)、接口模塊IOM(Input and Output Module)和供電模塊PSM(Power Supply Module)。ZPM負責控制律的計算、飛行任務的管理、故障的診斷與容錯策略的實施。IOM用于外部數據輸入輸出,輸入和輸出的信號量包括模擬量(AD,DA)、開關量(DI,DO)、RS232/RS422數字量和PWM信號。IOM采集外部設備信號,通過ARINC659總線發送至ZPM,為ZPM提供導航信息與外部設備的工作狀態。ZPM則通過ARINC659總線將計算結果發送給IOM。IOM與ZPM之間都可以通過ARINC659總線和通道故障邏輯信號CFL(Channel Fault Logic)進行數據交互。
ARINC659總線飛控計算機采用的是相似多余度結構,在硬件層面,采用的是n個獨立的、硬件資源與結構完全一致的ZPM與m個IOM;軟件層面上,n個ZPM運行相同的程序,通過表決確定各自優先級。ZPM的工作方式為主從熱備份。對于飛控計算機而言,n個ZPM開機之后同時工作,響應完全相同的外部指令,執行相同的控制策略,運算相同的控制律算法,但是只有主控ZPM有權向外發出控制指令和數據,備份 ZPM只有監測權限不具有控制權限,只接收外部信息的輸入,不控制指令和數據的輸出。工作過程中,每個ZPM將自身的運行狀態向其它節點透明傳輸,并共同監測計算機其它各個節點的狀態。當檢測到主控ZPM發生故障時,及時切斷主控ZPM與機載設備的聯系,由正常的備份ZPM接管控制權;當檢測到備份ZPM故障時,不切換控制權限。該架構下飛控計算機指令輸出時不需要經過多通道表決,1個ZPM就具備完整的對整個無人機系統的控制權。
CFL信號是用于支持余度通道之間同步及故障診斷的離散量,包括CHV和DPV(Differential Pulse Voltammetry)2種信號。CHV信號的特點是一對多,即1個ZPM或IOM發送2路CHV信號,其余ZPM與IOM同時接收發送的CHV信號;DPV信號的特點是一對一,即ZPM或IOM發送2路DPV信號,特定的某一個板卡接收該信號。因此,1個板卡上有2(m+n-1)路DPV信號發送端。這2個信號都可以用于支持余度通道之間的容錯。以m=3,n=2為例,信號連接示意圖如圖3和圖4所示。

Figure 3 CHV signal connection diagram圖3 CHV信號連接示意圖

Figure 4 DPV signal connection diagram圖4 DPV信號連接示意圖
故障檢測是指當系統有故障發生時,能夠及時準確地判別發生的故障[8]。對于無人機的飛控計算機,可能發生的故障類型多種多樣,不同的故障產生的現象可能相同。飛控計算機故障檢測策略的側重點在于故障的結果,不需要精確定位故障的位置,而是從模塊層面上進行檢測,關注點在于當故障出現時,設計的檢測策略能否及時有效地檢測出處于故障狀態的模塊,進而及時將故障模塊進行隔離處理。
飛控計算機系統故障主要分為軟件故障和硬件故障,從故障的時長和可維護角度又可以分為間歇性故障、瞬態故障和永久故障[9,10]。飛控計算機中主要的故障模式及其產生的影響如表1所示。
通過上述故障模式分析可知,在無人機正常飛行過程中,飛控計算機發生的故障多種多樣,且大多數故障是瞬時故障或者間歇故障,只有少數情況下會出現永久故障[11]。飛控計算機負責數據處理、控制律算法、航路規劃和飛行任務管理等,控制無人機正常飛行與執行任務。由于飛控計算機的重要性,故應盡可能提高對飛控計算機故障檢測的實時性和覆蓋率,保障飛控計算機正常運行。因此,本文提出3種針對上述故障的檢測方法:基于系統任務運行狀態的故障檢測、基于通道故障邏輯信號CFL的故障檢測和基于自適應心跳信號的故障檢測。

Table 1 Failure modes and the corresponding influence analysis of flight control computer表1 飛控計算機故障模式及其影響分析
ZPM中每個板卡的軟件運行狀態分為3種,分別為空閑狀態、檢測狀態和控制狀態,各狀態之間可以相互轉換。
(1)空閑狀態:ZPM處于上電之后的空閑態,只執行最簡單的數據交互任務。
(2)檢測狀態:無人機在地面時,飛控計算機處于檢測無人機狀態的模式,仍不進行與控制有關的任務調度算法。
(3)控制狀態:ZPM的進行與控制有關的任務的調度算法,無人機處于從滑跑到著陸的某個階段,在該階段中ZPM負責控制無人機正常運行。
狀態之間的轉換需要指令,若在飛控計算機未收到相應指令的情況下發生ZPM狀態轉換,則可判斷軟件出現異常。
3個狀態之間的轉換關系如圖5所示。

Figure 5 State transfer diagram of ZPM software圖5 ZPM軟件狀態轉移圖
ZPM狀態可以通過軟件來表示,通過ARINC659總線傳輸至其余ZPM,其余ZPM通過將自身的運行狀態與檢測到的其余ZPM狀態進行對比,既可以判斷自身是否發生故障,又可以判斷其他節點是否發生故障,是一種自檢測與互檢測相結合的檢測方法。
利用CFL信號進行故障檢測的基本思想是:針對CFL信號,設置一種特定的信號發送邏輯,當系統軟件或硬件出現故障時,CFL信號發送邏輯發生改變,與原設定發送方式不匹配。因此,可以通過檢測CFL信號來判定系統是否發生故障。
每個ZPM與IOM上含有2路CHV信號,分別用CHV0和CHV1來表示,每個ZPM或IOM發出2路CHV信號,其余ZPM與IOM同時接收,2路CHV信號以周期50 ms的方波信號形式進行翻轉,同時CHV0與CHV1信號電平相反,避免了偶然性,提高了檢測的準確率,具體如圖6所示。

Figure 6 Changes diagram of CFL signal 圖6 CFL信號變化圖
圖6中的T為方波翻轉周期,T1是采集CHV信號的周期。因為跳變沿處的電平是不穩定的,為了防止在采集CHV0與CHV1信號時恰好取到跳變沿,采集周期應當略大于方波的翻轉周期,因此取T1=52 ms。具體的檢測過程如下所示。
每個ZPM與IOM對采集到的來自其余ZPM與IOM的2路CHV信號,首先進行極性判斷,以ZPMj為例,其余ZPM與IOM對ZPMj的CHV0與CHV1信號進行采集檢測并進行判斷。
條件1當ZPMj正常處于主控或熱備份狀態時,其余ZPM與IOM采集到的ZPMj的CHV0與CHV1信號電平應當相反。
條件2當前時刻ZMP與IOM采集到的ZPMj的CHV0和CHV1信號應當與上個時刻采集到的CHV0和CHV1信號電平相反。
只有當條件1與條件2都滿足時,才能判定被檢測的ZPMj處于正常狀態。當條件1與條件2中有1個不滿足時,故障次數加1,當同時滿足條件1與條件2時,則將故障次數清零。當累積故障次數大于給定閾值時,則可以判定ZPMj發生了故障。
2.4.3 穩定性試驗 取橘葉藥材粉末(S14),按“2.1”項下方法制備供試品溶液,按“2.2”色譜條件,分別于0、2、4、6、12、24 h進樣采集色譜圖。以橙皮苷為參照峰,各共有峰相對保留時間RSD<1.0%,相對峰面積的RSD<5.0%。結果表明,樣品在室溫下24小時內保持穩定。
在CHV信號檢測的基礎上,引用DPV信號來進一步提高檢測的可靠性。可以利用DPV信號來表征系統狀態,每個ZPM有2路DPV信號發送端,可以表示4個狀態,選用其中3個可以表示系統空閑狀態、檢測狀態與控制狀態,如表2示。

Table 2 State of the system represented by CFL表2 CFL表征的系統狀態
DPV表征的系統狀態根據CHV0與CHV1的變化而變化,避免了系統故障檢測的偶然性。4.2節中基于系統任務運行狀態檢測是在軟件層面上進行檢測,通過ARINC659總線來進行數據交互。基于CFL信號的故障檢測則是從硬件層面上,通過開關量進行信息交互,與基于總線傳輸的狀態檢測形成互補,對某個ZPM當前運行狀態,其他ZPM既可通過總線獲取狀態信息,也可根據CFL信號來獲取,當二者結果不一致時,會給出以下判斷:
(1)被檢測ZPM的CFL信號出現了故障;
(2)被檢測ZPM的軟件運行出現了故障;
(3)被檢測ZPM的軟件運行與CFL信號均出現了故障。
對于以上3種情況,無論哪種情況下,均認為此時被檢測的ZPM不再可靠,判定該ZPM出現了故障,在之后的容錯策略中會對故障進行隔離與系統重構。
在ZPM與IOM軟件運行時創建心跳檢測任務,每隔1個時間周期T,每個ZPM與IOM通過ARINC659總線向其余ZPM與IOM發送心跳包。以ZPM為例,心跳信號檢測流程如圖7所示。

Figure 7 Flow chart of fault detection based on adaptive heartbeat signal圖7 基于自適應心跳信號的故障檢測流程圖
檢測結果存在以下幾種情況:
(1)其余ZPM與IOM在連續k個周期內收到某個ZPM的心跳包;
(2)其余ZPM與IOM在連續k個周期內未收到某個ZPM的心跳包;
(3)有一部分其余ZPM與IOM在連續k個周期內收到了某個ZPM的心跳包,另一部分仍未收到。
對于情況1,認定被檢測ZPM心跳信號正常。
對于情況2,認定被檢測ZPM心跳信號發生了故障,從而認定被檢測ZPM軟件運行發生了故障。
對于情況3,通過多數表決策略,并且結合上面2種故障檢測策略來判定被檢測ZPM是否正常。
如圖8所示,本文利用軟件檢測與硬件檢測相結合的檢測策略來對飛控計算機進行故障檢測。

Figure 8 Fault detection structure diagram圖8 故障檢測結構圖
評判一個故障檢測策略是否正確有效的重要指標包含故障檢測可信度與準確率,現就針對表1中的故障模式對本文提出的故障檢測方法進行分析。
對于每種單一的故障檢測方法,都存在一定的局限性,對某一部分故障檢測的準確率較低,對于故障類型的判斷也存在一定誤檢率與虛警率,同時也可能存在對某種故障的檢測結果出現沖突的現象,因此本文融合以上3種方法來對故障進行檢測。具體方法是給予每種檢測方法一定的權值α,通過權值α與每種檢測方法檢測的準確率的乘積來定量表征3種方法融合后對故障檢測的準確率Pd,其計算方式如式(1)所示:
(1)
其中,Pdj表示對第j種故障檢測的準確率;Pdij表示第i種檢測方法對第j種故障的檢測準確率;aij表示第i種故障檢測方法對第j種故障檢測的權值。
對于3種故障檢測方法各自的可信度,可以結合C-F模型來表征。在C-F模型中知識不確定性表示為CF(H,E),代表可信度因子,取值在[-1,1]。當相應證據的出現會增加結論H為真的可靠度時,則CF(H,E)>0,證據的出現越能證明H為真的可靠度越大,就使得CF(H,E)的值越大;反之CF(H,E)<0,證據的出現支持H為假的可靠度越大,CF(H,E)的值越小。
本文采用專家經驗法,定量地確定各故障檢測方法檢測不同類型故障的可信度CF(H,E),并通過可信度確定其加權值α。α應滿足式(2)。
(2)
其中,CF(Hi,Ej)表示當第j種故障發生時,基于故障檢測方法Hi檢測出該故障的可信度因子。
本文通過專家經驗法進行判別,得到的結果如表3所示。表3中,H1表示基于系統任務運行狀態的檢測;H2基于通道故障邏輯信號CFL的故障檢測;H3表示基于自適應心跳信號的故障檢測。

Table 3 Weight allocation table of fault detection method 表3 故障檢測方法權值分配表
通過專家系統分析判斷第i種故障檢測方法檢測第j種故障的準確率Pij,根據各檢測方法所占的權重,由式(1)計算3種故障檢測方法融合后對故障的檢測準確率,結果如表4示。從表4可以看出,對于故障E1、E3、E7和E8這4種故障,3種檢測方法融合后的檢測準確率較高,而對于E4、E6、E11和E12的綜合故障檢測準確率次之。當診斷結果發生沖突時,可以根據不同檢測方法的權值α的大小來確定是否發生了故障。
為了驗證故障檢測策略的正確性,本文搭建了如圖5所示的閉環半物理仿真測試環境,通過故障注入軟件向某個ZPM(這里以ZPM1為例)注入特定軟件故障。對于部分硬件故障,采用通道注入技術模擬硬件故障發生,通過系統反饋的參數對系統進行分析,得出故障檢測的結果。通過觀察主控ZPM狀態與ZPM故障標識來判別綜合以上3種檢測方法的故障檢測手段是否有效,檢測結果如表6所示。
實驗結果表明,在故障檢測的實時性上,3種方法融合后針對E1、E3、E4、E6、E7、E8和E117種飛控計算機常見的故障,檢測出故障的時間都在50 ms以內,具有良好的實時性;而對于E9和E122種故障,主要出現在無人機飛行控制計算機的研發測試階段,在正式飛行過程中此類故障出現的可能性低,即使出現該類故障,150 ms的檢測時間在工程中也能夠滿足絕大部分飛控計算機的故障檢測實時性要求;對于E2、E5和E103種類型的故障,故障產生的影響具有一定的不確定性,因此對于故障檢測實時性相比其他幾種故障要差,但檢測時間也基本維持在1 s內,能夠滿足大部分中低速無人機的故障檢測實時性要求。

Table 5 Statistical results of fault detection表5 故障檢測統計結果

Figure 9 Environment of semi-physical closed-loop simulation test 圖9 半物理閉環仿真測試環境
對于故障檢測的覆蓋率,3種方法聯合使用后,對于上述提到的飛控計算機故障類型基本可以實現全覆蓋檢測,故障檢測覆蓋率在工程上已達到所需標準。并且相對于單一的方法檢測,3種方法聯合后對于絕大多數故障的檢測準確率高達90%以上。但是,對于某些少數特定故障類型,如E2和E5的存儲器故障,E10和E12的應用層故障,由于故障影響的不確定性,僅僅聯合使用以上3種檢測方法在檢測的準確性上仍具有一定局限性,故后續仍需針對以上故障設計特定的故障檢測方法。
本文在基于ARINC659總線的多余度飛控計算機系統架構基礎上,介紹了幾種軟硬件結合的故障檢測策略,能夠更加及時有效地檢測系統模塊的故障,以便及時對故障模塊進行隔離切換,不僅保障了系統的安全性,同時也提高了系統可靠度。最后通過搭建半物理仿真平臺,進行了故障注入驗證,仿真實驗結果表明,以上故障檢測策略設計合理,具有良好的實時性與檢測覆蓋率,能夠及時有效地檢測模塊故障,為系統余度管理和運行可靠性提供了保障。