楊文忠,王東麗,李 環,丁立波,張 合
(1.中國運載火箭技術研究院, 北京 100076; 2.南京理工大學 智能彈藥技術國防重點學科實驗室, 南京 210094)
隨著科技的發展,現代戰爭對武器系統的可靠性提出了越來越高的要求,其中武器系統的維護與檢修尤為重要。對于引信電路,特別是小口徑空炸引信電路由于其技術復雜、電路器件密集度高,很難利用常規設備進行人工檢修。因此,分析引信電路故障產生機理,掌握故障規律,建立配套的智能故障診斷系統是十分必要的。
模擬電路故障診斷技術自20世紀60年代開始研究以來,取得了不少成就,也提出了很多方法[1]。在眾多的方法中,如果使用參數識別方法,常規解決方案需要大量的計算;如果使用故障字典方法,需要大量的故障模擬條件[2-3]。雖然多年來提出的診斷方法較多,但付諸實踐的方法還較少,未取得突破性的進展,模擬電路故障診斷之所以難以取得突破性的進展,是由于其輸入輸出都是連續量、難以作簡單的量化、故障模型復雜、元件的參數具有很大的離散型、以及廣泛存在的非線性及反饋回路等原因,使得模擬電路難以像數字電路一樣提出系統而有效的診斷方法,這剛好給神經網絡在該領域的發展提供了鍥機[4]。人工神經網絡技術代表了一種新的方法體系,它以強有力的學習和并行處理能力為故障診斷提供了全新的理論方法和實現手段[5]。并且以非線性并行分布處理為主流的神經網絡理論的發展,為專家系統的研究開辟了嶄新的途徑,即解決了專家系統存在的各種問題,還可以利用神經網絡系統的學習功能、聯想記憶功能、分布式并行信息處理功能解決專家系統中的知識表示、獲取和并行推理等問題[6]。因此,將神經網絡與專家系統相結合,發揮各自的優點進行引信電路的故障診斷是一種新的途徑,且能有效提升生產和試驗中批量引信電路的檢測效率及檢測可靠性。
本故障診斷系統的對象是小口徑計轉數空炸引信,計轉數空炸引信是近幾年發展起來的一種以彈丸的自轉周期為計數脈沖的新型可編程智能電子引信,相比傳統的定時空炸引信,計轉數空炸引信只需使用計轉數傳感器就能實現彈丸速度的精確測量,而無需在炮口安裝測速裝置,這使得基于計轉數的空炸引信結構簡單,性能可靠;目前國內外計轉數技術研究主要以實現“精確定距起爆”為目標,其精確的炸點控制能力使空炸彈藥在殺傷隱蔽有生力量和城市巷戰等場合的作戰效能成倍提高[7-8]。本小口徑計轉數空炸引信工作原理框圖如圖1。

圖1 小口徑計轉數空炸引信工作原理框圖
根據上述引信工作原理結合原理框圖,本引信電路主要由引信電源模塊、地磁測試模塊、無線裝定模塊、控制器模塊及發火電路模塊組成。經大量引信電路測試,發現本引信電路故障出現位置集中在以上幾個主要模塊當中,且類型較為確定。在電源模塊中的故障主要有儲能電容電壓和穩壓系統輸出端電壓異常;地磁測速模塊中的故障主要有地磁傳感器輸出參數、運算放大器初級輸出參數及次級輸出參數異常;發火模塊中主要是單片機輸出發火信號異常、發火儲能電容充電電壓不足及發火脈沖幅值異常。
本文故障診斷系統的故障樣本數據采集條件是:① 引信電路工作正常;② 穩壓模塊輸出故障;③ 地磁傳感器故障;④ 運算放大器故障;⑤ 發火電路故障。在各狀態下采集5組數據,并取5組數據平均值作為原始樣本數據,如表1所示。表1中樣本號1表示引信電路正常工作時的參數,樣本號2表示穩壓模塊輸出故障時的電路參數,樣本號3表示地磁傳感器故障時的電路參數,樣本號4表示運算放大器故障時的電路參數,樣本號5表示發火電路故障時的電路參數。

表1 各狀態實驗數據取平均值后的數據
在訓練神經網絡前一般需要對數據進行預處理,廣泛采用的預處理方法是歸一化處理,數據歸一化,就是將數據映射到[0,1]或[-1,1]區間或更小的區間,數據歸一化處理的原因一般有以下幾個方面:
1)輸入數據的單位不一樣,有些數據的范圍可能特別大,導致的結果是神經網絡收斂慢,訓練時間長。
2)數據范圍大的輸入在模式分類中的作用可能會偏大,而數據范圍小的輸入作用就可能會偏小。
3) 由于神經網絡輸出層的激活函數的值域是有限制的,因此需要將網絡訓練的目標數據映射到激活函數的值域。
本文采用一種簡單而快速的歸一化算法即線性轉換算法,在[0,1]區間內線性轉換的算法為
Y=(X-Min)/(Max-Min)
(1)
其中: Min為X的最小值;Max為X的最大值;輸入向量為X;歸一化后的輸出向量為Y。上式將數據歸一化到[0,1]區間。
因此,對表1中的原始樣本數據進行歸一化處理,處理后的結果如表2所示。

表2 數據歸一化后的故障樣本
BP網絡是一個前向多層網絡,它利用誤差反向傳播算法對網絡進行訓練,是一種從輸出到輸入具有反饋連接的神經網絡;反向傳播網絡具有很強的學習能力,結構簡單、可塑性強、且數學意義明確、學習算法步驟分明,因此在函數逼近、模式識別等方面得到了廣泛的應用。本文故障診斷系統選用典型三層BP神經網絡,其網絡模型如圖2。

圖2 三層BP網絡模型
綜合以上采集的數據,該BP網絡有10個輸入層神經元,5個輸出神經元即診斷系統有5個故障模式;對于隱含層的選擇較為復雜,隱含層神經元過少,網絡不能識別之前未學習的樣本,魯棒性差;隱含層神經元過多學習時間長,診斷誤差很難達到最小,因此,需要選擇較為合適的隱含層神經元數。按照文獻 介紹,隱含層神經元數目的選擇可按照式(2)計算:
(2)
式中:n1為輸入層神經元數;n2為隱含層神經元數;n3為輸出層神經元數;將n1=10,n3=5代入式(2)中,可計算出隱含層神經元數n2=13。
BP網絡的學習過程包括正向傳播和反向傳播。當正向傳播時,輸入的樣本信息從輸入層經過隱含層單元一層一層進行處理,通過所有的隱含層之后,則傳向輸出層,在逐層處理的過程中,每一層神經元的狀態只影響下一層神經元的狀態,在輸出層把現行輸出和期望輸出進行比較,如果在輸出層的誤差大于期望誤差,則信號進行反向傳播,將誤差信號按原來正向傳播的通路反向傳回,并對每個隱含層的各個神經元的權系數進行修改,這種過程不斷迭代,最后使得信號誤差達到允許的誤差范圍之內。因此BP算法的實質是求取誤差函數的最小值問題,這種算法采用非線性規劃中的最速下降方法,按誤差函數的負梯度方向修改權系數。
結合本空炸引信電路故障模式,其故障診斷過程分為以下幾個步驟:
1)采集所需樣本數據,將訓練樣本做歸一化處理;
2)以儲能電容電壓、穩壓模塊輸出、地磁信號幅值、地磁信號周期、運放一級輸出、運放二級輸出、發火信號電平、碰炸發火信號負脈沖幅值、空炸發火信號負脈沖幅值、發火電容電壓這十個歸一化處理后的參數作為樣本輸入,以診斷結果二進制編碼作為樣本輸出;
3)通過對樣本的學習建立診斷模型;
4)反復訓練網絡得到期望的誤差;
5)對未知故障數據進行診斷。
利用Matlab神經網絡工具箱進行神經網絡的訓練及性能驗證,神經網絡的輸入就是特征量的提取,因此采用上面采集的經過歸一化處理的數據,網絡的輸入向量范圍為[0,1],以矩陣形式保存后輸入;神經網絡的輸出即為本引信電路的6種故障模式,采用如下二進制形式來表示輸出:
引信電路正常:(1,0,0,0,0)
地磁傳感器故障:(0,1,0,0,0)
運算放大器故障:(0,0,1,0,0)
穩壓模塊故障:(0,0,0,1,0)
發火電路故障:(0,0,0,0,1)
隱含層神經元數目的選擇在上面已經介紹了;傳遞函數是BP網絡的重要組成部分,傳遞函數必須是連續可微的,因此,隱含層神經元的傳輸函數采用S型雙曲正切函數tansig,輸出層神經元傳遞函數采用S型對數函數logsig,因為logsig函數返回值位于區[0,1]中,正好滿足網絡的輸出要求。
網絡訓練函數采用traingdx函數,該函數是自適應調整學習速率附加動量因子梯度下降反向傳播算法訓練函數,網絡訓練過程是一個不斷修改權值和閾值的過程,通過調整,使網絡的輸出誤差達到最小[9-10]。
其他相關網絡配置參數如表3所示。

表3 網絡配置參數
綜合以上數據,神經網絡的樣本輸入P和目標輸出T分別為:
P1=[1.001.000.990.991.000.99
0.950.960.980.98];
P2=[1.000.990.001.000.680.54
0.960.970.970.99];
P3=[1.000.990.980.970.850.01
1.000.920.970.99];
P4=[1.000.000.990.000.000.00
0.971.001.001.00];
P5=[1.001.001.000.990.991.00
0.000.000.000.00];
T1=[10000]; T2=[01000];
T3=[00100]; T4=[00010];
T5=[00001];
P=[P1;P2;P3;P4;P5];
T=[T1;T2;T3;T4;T5];
創建BP神經網絡:
BPnet=newff(minmax(P),[13,5],{′logsig′,′logsig′},′traingdx′,′learngdm′);
net.trainParam.epochs=2000;
net.trainParam.goal=0.001;
net.trainParam.show=10;
net.trainParam.lr=0.05;
BPnet=train(BPnet,P,T);
經過網絡循環訓練279次后,網絡性能達到要求,其誤差曲線如圖3所示。

圖3 BP網絡訓練誤差曲線
網絡訓練成功后,專家系統就完成了知識獲取的過程,利用學習樣本對神經網絡的訓練結果進行驗證,選取穩壓模塊故障樣本、地磁傳感器故障樣本及運算放大器故障樣本進行驗證,其樣本數據(1號為穩壓模塊故障、2號為地磁傳感器故障、3號為運算放大器故障)和歸一化數據結果分別如表4和表5所示。

表4 樣本數據

表5 歸一化數據
1) 用1號樣本驗證網絡:
Pnew1=[1.0 0.0 0.95 0.00 0.00 0.00 0.98 0.70 1.00 0.99];
Anewn1=sim(bpnet,Pnew1);
display(Anewn1);
驗證結果:
Anewn1=[0.0003 0.0012 0.0561 0.7798 0.1937];
2) 用2號樣本驗證網絡:
Pnew2=[1.0 1.0 0.00 0.99 0.62 0.60 0.94 1.00 0.62 0.99];
Anewn2=sim(bpnet,Pnew2);
display(Anewn2);
驗證結果:
Anewn2=[0.010 5 0.996 2 0.000 4 0.000 4 0.000 0];
3) 用3號樣本驗證網絡:
Pnew3=[0.0 1.0 1.00 0.99 1.000.00 1.00 0.97 0.92 0.99];
Anewn3=sim(bpnet,Pnew1);
display(Anewn3);
驗證結果:
Anewn3=[0.063 7 0.000 0 0.798 3 0.005 0 0.039 4];
對以上3個輸入樣本結果進行整理后結果如表6所示,其對應的神經網絡期望輸出如表7所示。按照歐式范數理論,3個樣本的診斷誤差分別為0.220 2、0.003 8、0.201 7,誤差都很小,將驗證結果與神經網絡期望輸出進行對比,該神經網絡的故障判斷率為100%;因此,該神經網絡可以滿足本引信電路的故障診斷要求。

表6 驗證結果

表7 神經網絡期望輸出
該神經網絡的輸出結果是二進制的數值形式,但測試人員通過測試系統人機交互界面看到的結果并不是二進制數值形式;該神經網絡輸出結果的數值轉化成知識的規則是:輸出結果10000表示無故障即引信電路正常;輸出結果是01000表示地磁傳感器出現故障;輸出結果是00100表示運算放大器出現故障;輸出結果是00010表示穩壓模塊出現故障;輸出結果是00001表示發火電路出現故障。
利用神經網絡專家系統實現了引信電路的故障診斷,顯著提高了批量引信電路的測試效率及故障診斷可靠性。該方法通過建立三層神經網絡診斷模型,結合了神經網絡和專家系統各自的優點,利用Matlab選擇合適參數進行網絡訓練,驗證結果表明診斷結果可靠有效。該方法配合自動測試系統應用時,能達到更好的效果。