謝永成,劉磊峰,李光升,魏 寧
(裝甲兵工程學院控制工程系,北京 100072)
人工神經網絡具有記憶功能和函數逼近功能[1]。BP 神經網絡在對樣本訓練的過程中,通過不斷地調整連接權值,從而得到一個輸入與輸出的、存在一定誤差的函數映射關系。將大量故障數據訓練好的網絡權值和閾值存儲在故障診斷專家系統的知識庫中,使用的時候讀取相應的網絡,就可以進行數據的征兆提取。電路板故障征兆獲取的流程如圖1 所示。
在傳統的邏輯判斷中,一個被定義的、可判斷的事物,能用真和假對其進行描述。其中可用數字1 表示真,數字0 表示假,這是一種非此即彼的邏輯。

圖1 電路板故障征兆獲取流程
但在現實生活中,有許多事物不能確切地進行描述。例如:電壓值過高,“過高”是一個模糊概念,具體多高沒有一個明確的分界點。為了較為準確的描述“過高”這一概念,需要用一個數來反映它隸屬于該模糊概念的程度。對于類似的問題不能用特征函數,但可以用與特征函數相似的隸屬函數表征。
定義1:設A 是論域U 上的一個集合,對于任意的u∈U,令

則GA(u)為集合A 的特征函數,特征函數GA(u)在u =u0處的取值GA(u0)稱為u0對A 的隸屬度。
定義2:A 是論域U 上的一個集合,μA是把任意u∈U 映射為[0,1]上的某個值的一種函數,即: μA: U →[0,1],u→μA(u)。
其中μA是定義在U 上的隸屬度函數,μA(u)(u∈U)構成的集合A 是U 上的一個模糊集,μA(u)被稱為u 對A 的隸屬度。μA把所有的u∈U 中的元素都映射到[0,1]上的某個值μA(u),值越大說明隸屬于A 的程度越高。當μA(u)的值僅為0 和1 時,A 就變成一個普通集合,隸屬函數就變成了特征函數。
BP 神經網絡具有很強的映射能力,它能對網絡的輸入輸出進行處理,從實例中獲取知識,用訓練好的網絡連接權值和閾值,記錄知識。
BP 神經網絡是一種多層前饋神經網絡,該網絡的特點是信號前向傳播,誤差反向傳播[5]。在前向傳播的過程中,信號經過輸入節點、隱含節點、輸出節點,每個節點都會影響下一個節點的狀態。如果得不到期望的輸出,就進入反向傳播,根據預測誤差來調整網絡權值和閾值,最終使得網絡的預測輸出不斷的逼近期望輸出。BP 神經網絡的拓撲結構圖如圖2 所示。

圖2 BP 神經網絡拓撲結構
圖2中,X1,X2,…,Xn是BP 神經網絡的輸入值,Y1,Y2,…,Ym是BP 神經網絡的預測值,ωji和vlj為網絡權值。BP 神經網絡可以看作一個非線性的函數,網絡的輸入值和輸出值可以看作是函數的自變量和因變量。
BP 神經網絡學習規則的思想為: 對網絡權值和閾值的修正沿著表現函數下降最快的方向,即負梯度方向[1]。用公式表示為其中,xi為當前的網絡權值或者閾值矩陣,ai為學習速率,gi為表現函數的梯度。

以三層BP 網絡為例,輸入節點xi,隱含節點yi,輸出節點zi,輸入節點與隱含節點的網絡權值為ωji,隱含節點與輸出節點的網絡權值為vlj,隱含閾值為θj,輸出閾值為θl,當輸出節點的期望值為ci時,模型公式為
1)隱含節點輸出:

2)輸出節點輸出:

3)輸出節點誤差:

式(2)代入式(3)得:

式(1)代入式(4)得:

4)誤差函數對vlj求導得:

(E 中有多個zm,只有一個zl與vlj有關,zm之間相互獨立)

所以,

輸入節點誤差:

則:

5)誤差函數對ωji求導得:

(E 中有多個zl,針對某一個ωji,對應一個與所有zl有關,zm之間相互獨立)
其中:

則:


隱含節點誤差為:

則:

6)權值的修正:
由于權值修正Δvlj、Δwji正比于誤差函數沿梯度下降,則有:

隱含節點誤差δ'j中的∑δl·vlj表示輸出節點zl的誤差δl通過權值vlj向節點yj反向傳播成為隱含節點的誤差。
7)閾值的修正:
閾值也是變化的,同樣需要修正。誤差函數對輸出節點閾值求導:

輸出節點的閾值修正:

誤差函數對隱含節點閾值求導:

其中:

所以,

隱含節點閾值修正:

2.3.1 組建樣本集
組建樣本集是進行神經網絡設計的基礎,電路板故障特征集和故障模式組成了神經網絡的輸入和輸出序列。輸出是代表了神經網絡要完成的功能,對問題進行分類歸納。輸出的表示方法較為簡單,通常用0 和1 表示正常和故障。輸入則需要選擇對輸出影響較大的變量,同時要求輸入之間的關聯關系較小。
2.3.2 隱層數設計
單層隱層設計能夠反映所有的連續函數,兩個隱含層能夠反映不連續函數。對于兩層神經網絡,第一層隱含節點少,第二層隱含節點多,有利于改善多層前饋網絡的性能。對于單層網絡,如果增加節點數量不能夠達到明顯的誤差下降,就應該考慮增加隱含層數。
2.3.3 隱含節點數設計
節點的作用是從樣本中提取知識,并存儲內在的規律,每個節點都有若干個權值,每個權值都是增強網絡映射能力的一個參數。節點數越少,它獲取信息的能力就差;節點過多,又會出現“過度吻合”的問題。所以確定節點數主要采用經驗公式

m 為隱層節點數;n 為輸入節點數;l 為輸出節點數;a 為1 ~10 的常數。
模擬電路參數的測試較為容易,但具體的故障判斷就顯得十分困難。以信號放大器電路板(圖3)為例,在獲取其故障征兆的過程其實就是把癥狀空間上的向量映射到故障空間的過程。首先,對輸入數據進行預處理,選取U1,U2,U3構建數據空間;其次,將得到的數據空間通過故障隸屬度函數獲取數據中的不變特征,得到故障模式空間;最后,經過神經網絡訓練,將故障模式空間映射到故障特征空間。

圖3 放大器電路
采用常用的故障路數函數為

其函數曲線圖如圖4 所示。

圖4 隸屬函數曲線
取a=1,e=0,t=x0,改變U1和U2放大器輸入電壓值,測試U1、U2、U3三個放大器輸出電壓值,然后將3 個電壓值通過上述隸屬度函數歸一化到[0,1]上。如表1 所示。

表1 輸出電壓歸一化處理
根據神經網絡設計,選取網絡結構為3—5—3,以第一組和第二組數據為訓練數據,用第三組數據作為測試數據,得到表2 中的結果。
在保證一定精度的情況下,采用BP 神經網絡能夠獲取電路板的故障征兆。通過訓練后得到的神經網絡可以適應不同故障狀態下的U1、U2、U3電壓值。得到的故障征兆精度較高,能夠解決故障的判斷問題。

表2 訓練和測試數據的電壓值
[1]郎榮玲,潘磊,呂永樂.基于飛行數據的民航飛機故障診斷專家系統[M].北京:國防工業出版社,2014.
[2]張鵬.民航飛機故障診斷方法研究[D].天津:中國民航大學,2008.
[3]張景新.專家系統知識獲取方法研究與應用[D].北京:北京航空航天大學,2009.
[4]劉陶.基于飛行參數的故障診斷技術研究[D].北京:北京航空航天大學,2008.
[5]梁春泉,李崢嶸.基于BP 神經網絡的小麥病害診斷知識獲取[J].微計算機信息,2008,24(5):203-205.
[6]李敏,夏躍武,喬斌.基于STM8 和nRF24L01 的智能車庫門控制系統設計[J]. 重慶工商大學學報:自然科學版,2014,31(7):81-84.
[7]趙守偉,馬颯颯,吳國慶.基于故障仿真的診斷知識獲取關鍵技術研究[J].計算機仿真,2008,25(1):31-35.