馬 羚 呂曉峰,2 葉 文 張 磊
(1.海軍航空大學 煙臺 264001)(2.西北工業大學電子信息學院 西安 710072)
某型空空導彈發控電路是某型飛機用來控制某型空空導彈正常發射與應急發射的電路,由“飛機—發射裝置—導彈”三部分中的電路組成,是一個復雜的數模混合電路[1]。該發控電路由多個電子元件組成,而電子元件出現問題時故障模式復雜,診斷步驟繁瑣,耗費時間長,且故障診斷效率低。
發控電路故障診斷的目的是找出故障元件,然后將其更換,保證發控電路的正常工作。而故障診斷方法的好壞,將直接影響診斷的效率、費用以及某型空空導彈的正常訓練及作戰使用。因此,合適的發控電路故障診斷方法,可有效地提高診斷效率、縮短診斷時間、減小裝備維護的工作量以及保證空空導彈的正常使用,對提高裝備戰斗力有著重要意義。
發控電路的故障診斷問題屬于典型的模式識別和分類問題,而BP神經網絡具有建模步驟簡單、訓練速度快、訓練結果魯棒性好、自適應力強等特點,適用于發控電路的故障診斷[2~4]。本文采用PSpice軟件仿真發控電路各故障模式的電壓數據,在此基礎上建立訓練、目標、測試三個樣本,構建BP神經網絡結構,以實現對發控電路進行診斷。
基于BP神經網絡實現某型空空導彈發控電路故障診斷大致可分為以下幾個步驟,如圖1所示。

圖1 基于BP神經網絡的發控電路故障診斷步驟
Step1:分析發控電路故障模式。基于失效模式與影響分析(Failure Mode and Effects Analysis,FMEA)方法分析各個元件對電路的影響,依據該方法由子系統到上級系統的分析原則,將各故障模式基于功能電路的不同進行分類[5]。
Step2:采集仿真電路測試信號。基于PSpice電路仿真軟件對確定的發控典型電路進行仿真,仿真典型電路中各元器件,確定其故障模式,利用PSpice軟件中的偏壓點分析,采集各故障模式的模擬電壓[6~7]。
Step3:構造樣本集。通過對故障的分析與信號的檢測,采用診斷對象的特征參數,形成訓練樣本與測試樣本。對被診斷對象的故障類別進行二進制編碼,例如,對于正常、故障狀態1、故障狀態2、故障狀態3共4種模式進行編碼:正常(0,0,0)、故障狀態1(1,0,0)、故障狀態2(0,1,0)、故障狀態3(0,0,1),形成期望輸出樣本。
Step4:構建BP神經網絡結構。設計BP神經網絡結構,包括網絡層數、各層的神經元數目、訓練參數、訓練函數等[8]。用建立好的BP神經網絡訓練樣本輸入,修改訓練參數或函數,使實際誤差值滿足精度要求。
Step5:故障診斷。用訓練好的BP神經網絡對測試樣本仿真,利用其輸出值來進行故障模式的識別。將測試輸出與期望輸出相比較,確定測試結果的診斷故障狀態,利用性能評價函數,確定診斷誤差的大小。
某型空空導彈發控電路一個復雜的數模混合電路,以發控電路中的部分電路作為仿真電路進行元器件故障的分析,如圖2所示。

圖2 某型空空導彈發控電路原理圖
考慮各元器件出現單一故障時對正常工作電路的影響,默認開關、按鈕、插針一直閉合且接觸良好。該仿真電路中共有4部分功能電路,分別為:載機供電、發射允許、正常發射與導彈供電,典型電路故障模式如表1所示。
運用PSpice中的OrCAD Capture模塊搭建電路原理圖,仿真電路中共設置1個直流電壓源、2個二極管、2個三極管、15個電阻,設置直流電壓源的輸出為27V,搭建好的電路圖如圖3所示,并設置1、2、3、4、5共五個測點。

表1 典型電路故障模式
運用PSpice軟件中的probe模塊的偏壓點分析仿真電路,獲取設置測點的電壓數據。根據設置的故障模式總數,共仿真19次,對于各故障模式獲取的測點電壓如表2所示。

表2 故障模式電壓采集
對四個功能電路及其正常模式進行二進制編碼如表3所示。

圖3 仿真電路圖

表3 功能電路故障編碼
表2中所采集到的故障數據共19組,從中隨機選擇4組樣本作為測試樣本如表4所示,剩下的15組樣本作為訓練樣本。

表4 測試樣本
發控電路故障診斷的BP神經網絡結構建立如圖4所示。

圖4 BP神經網絡建立步驟
具體建立步驟如下所示:
Step1:確定BP神經網絡層數。發控電路故障診斷所用數據為中小規模數據。因此采用三層典型結構,即可解決該問題。
Step2:確定隱含層神經元數目。根據訓練樣本與目標樣本可知,輸入層、輸出層的神經元為5個,共15組訓練數據。隱含層神經的選擇目前很難找到具體方法進行確定,大多采用經驗公式粗略估計隱含層神經元的范圍[9]。公式如下:

式中,l為隱含層神經元數目,p為輸入層神經元數目,t為輸出層神經元數目,a為1~10的常數。經過大量仿真,得到隱含層神經元為12時,訓練效果最好。
Step3:確定傳遞函數。傳遞函數是BP神經網絡的重要組成部分,必須是連續可維的。常用的傳遞函數主要有三種:S型對數函數logsig、雙曲正切S型函數tansig和線性S型函數purelin[10]。從輸入層傳遞到隱含層選擇logsig函數,將不定范圍內數據映射到最小的范圍內,效果最好;從隱含層傳遞到輸出層選擇purelin函數,將隱含層訓練結果按照一定比例映射到輸出層。
Step4:確定訓練函數。Matlab中提供了多種訓練函數,如基于最速下降算法的traingd函數、基于BFGS擬牛頓算法的trainbgf函數和基于LM算法的trainlm 函數等[11~12]。其中,trainlm 函數訓練時間快,迭代步數最少,且誤差最低,適合于發控電路故障診斷數據為中小規模類似的問題,所以訓練函數選擇trainlm函數。
利用Matlab2014a中所提供的神經網絡工具箱建立BP神經網絡,設定參數對網絡進行學習、訓練最終得到診斷數據,編制M文件如下所示:

經過Matlab軟件仿真訓練,得到的訓練結果如圖5所示。

圖5 BP神經網絡訓練結果
得到的誤差變化曲線如圖6所示。

圖6 BP神經網絡誤差變化曲線
由訓練結果及誤差曲線可知,在91次迭代后,訓練誤差到達0.00094637,滿足訓練誤差的要求;且訓練過程中收斂速度快。
用訓練好的BP神經網絡對測試樣本進行仿真驗證,得到的診斷數據如表5所示。

表5 診斷數據
由表5中診斷數據可知,診斷數據中0.0529與實際目標數據0差距最大,相差0.0529,;所以,診斷數據誤差控制在5.3%以內,即診斷數據在0.947~1.053診斷為1,在-0.053~0.053以內,診斷為0;4個測試故障均可以識別。
本文主要研究了基于BP神經網絡的某型空空導彈發控電路故障診斷方法。首先,針對某型空空導彈發控電路,分析并構建了基于BP神經網絡的故障診斷步驟;其次,通過PSpice電路仿真軟件搭建了發控電路的仿真電路圖,并設置了5個測點,對19種潛在故障狀態進行了仿真,獲取了19組故障數據;最后,基于獲取的故障數據,構建了BP神經網絡,并對其進行了訓練與驗證。該方法可有效解決某型空空導彈發控電路診斷效率低,診斷速度慢的問題,可用于某型空空導彈發控電路故障診斷系統設計。