張 原,姜煥成
(西北工業大學電子信息學院,陜西 西安 710129)
當今的火炮發展趨勢是智能化、科技化和輕量化[1],大口徑火炮殺傷力大,作用范圍廣,同時又兼具經濟性,雖然其現代化的進程較慢,但大口徑火炮在軍隊中的地位依舊不可替代。大口徑火炮在軍隊中主要用作火力壓制,是戰場上十分關鍵的壓制武器。目前,大口徑火炮故障問題是影響其任務成功率的最主要障礙,由于其工作環境嚴酷,再加上高溫高壓的工作狀態[2],劇烈的后坐力和振動[3],火炮各個部件消耗嚴重,很容易導致火炮射擊精度不達標[4]。當下大部分大口徑火炮的預先維護保養是根據火炮發射次數和易損件使用次數等來進行的,這樣只能在某種特定情況下做到有效的維修,一旦環境和影響因素發生變化,便無法保證火炮的工作狀態[5],因此針對大口徑火炮服役現狀,設計能夠高效完成預先維護保養工作的大口徑火炮健康管理系統尤為重要[6]。
隨著計算機行業的發展,杰弗里-辛頓提出的深度學習概念作為人工智能技術中神經網絡的重要分支,在機械故障診斷方面大放異彩[7],也為機械故障診斷指出了一條新的道路[8]。目前,深度學習技術已經廣泛應用于各個領域,除去尖端科技航空航天領域,還在民用飛機、汽車、核電站和大型水壩等民用領域獲得了廣泛應用[9]。但是,在地面裝備領域,特別是對于大口徑火炮的應用研究,由于其模型數據難以獲得,對目標預測準確性要求高,以及實驗機會難以獲取,幾乎所有研究都被限制在理論與仿真環境下。因此,本文在針對大口徑火炮進行健康管理系統的開發的同時,提出加入深度學習算法對火炮的故障診斷與預測進行探索與研究。
作為第三方設備,項目針對大口徑火炮開發的健康管理系統在接入火炮系統的同時,不影響其他任何部分的工作,完成了對大口徑火炮部分運行狀態的實時顯示與記錄,利用傳統專家分析[10]對數據進行處理,并提出一種基于改進深度置信網絡的大口徑火炮故障預測方法,利用DBN(Deep Belief Network)技術的無監督自動提取數據特征的能力,結合多層感知機MLP(Multi Layer Perception)11]有監督學習[12]分類特點,完成對大口徑火炮的故障檢測。
大口徑火焰健康管理系統上位機按照功能模塊擬劃分為過程回放、數據導出、電子履歷以及故障預測4部分。系統對火炮系統各個部分記錄的數據進行顯示,后期對報文記錄文件進行回放和分類轉存,對火炮狀態進行分析與評估。既可對火炮的狀態進行實時監控,發現并排除故障,又可對火炮系統的故障等進行預測與預防。其結構如圖1所示。

Figure 1 Structure of health management system of large caliber artillery圖1 大口徑火炮健康管理系統結構
大口徑火炮健康管理系統是針對利用CAN(Controller Area Network)總線傳輸數據的火炮系統進行設計的,利用VxWorks下位機系統接入CAN總線火炮系統,完成對數據包的捕獲和記錄,將數據存儲于VxWorks嵌入式系統[13]中的FTP(File Transfer Protocol)服務器,等待上位機對記錄的數據進行下載和分析。
FTP連接的實現方式多種多樣,本項目基于MFC技術[14]進行設計,因此使用其自帶的網絡通訊包AFXINET.H建立FTP連接,并設置可選的遠程地址、近端地址、用戶名和密碼等,靈活完成對數據的下載。中央處理界面設計如圖2所示。

Figure 2 Design of central processing interface圖2 中央處理界面設計
過程回放功能界面分為左右2部分,左半部分設計為標簽頁式分欄,分別對應各個設備之間的數據解析結果;右半部分又分為上下2塊,上半部分為原始數據的顯示,便于再次核對火炮各個部分工作狀態,下半部分為數據回放的控制,包括回放速率、單幀回放、自動回放以及文件的讀取和退出?;胤胚^程利用多線程技術,分別完成左半部分解析結果的UI(User Interface)刷新和右半部分對數據的解析,以模塊化方式實現最少資源占用情況下的高效工作。過程回放界面設計如圖3所示。

Figure 3 Design of process playback interface圖3 過程回放界面設計
數據導出功能頁面由文件讀取導出控制部分和各個報文選中狀態復選框組成。文件控制部分由界面上對應的各個文件路徑行編輯框,以及內部對記錄文件的解析函數組成,在解析函數中對記錄文件的總幀數、每一幀包含的報文種類等進行解析,并顯示于UI上,供分析人員對記錄文件導出范圍、導出內容等的控制。復選框部分則是對報文類型進行直觀展示,便于對導出報文的種類進行選擇。數據導出界面設計如圖4所示。

Figure 4 Design of data export interface圖4 數據導出界面設計
電子履歷功能需要完成對存在于VxWorks下位機中的SQLite數據庫的讀取和顯示,因此包含SQLite操作頭文件,完成對數據庫的連接與讀取,以及在建立連接后,對記錄數據的增刪改查。具備這些功能便可以對各個設備的使用壽命進行查看與重圍,從而更加精確可控地記錄火炮工作狀態。電子履歷界面設計如圖5所示。

Figure 5 Design of electronic resume interface圖5 電子履歷界面設計
深度學習作為基于人工神經元網絡的一種新型的人工智能算法,擁有很強的特征自動提取能力[15],并因此在大數據領域取得了不小的成就[16]。目前,最常用的深度學習模型[17]包括多層感知機(MLP)、卷積神經網絡、堆疊自動編碼機、遞歸神經網絡和深度置信網絡(DBN)。
相較于傳統神經網絡,DBN可直接從低層原始信號出發,通過逐層貪婪學習[17]得到高層特征表示,避免特征提取與選擇的人工操作,有效地降低傳統人工特征提取與選擇所帶來的復雜性和不確定性,增強識別的可靠性。相較于傳統的故障診斷方法,如基于數理模型的故障診斷與預測和基于專家知識的故障預測與診斷,DBN的優勢首先在于能夠擺脫對大量信號處理技術與診斷經驗的依賴,實現故障特征的自適應提取與健康狀態的智能預測;其次,傳統的故障診斷方法所針對的時域信號特征通常為某種波形出現的頻率,這就要求被監聽的信號具有時域周期性,而DBN對時域信號沒有周期性要求,具有較強的通用性和適應性;最后是其具有處理高維、非線性數據的能力,相較于傳統故障診斷方法,DBN能夠利用更加復雜且無規律的數據來完成診斷。從此角度看,深度置信網絡適合用于處理具有海量性、多模態性、不確定性、涌現性、多源異構性和價值低密度性等的新時期工業“大數據”故障診斷問題。
多層感知機[11]是深度學習的基礎,是近幾年在工業界新興的一個機器學習領域的研究內容,因此本文優先選擇多層感知機來實現大口徑火炮故障預測神經網絡的搭建,其結構如圖6所示。

Figure 6 Structure of three-layer perception 圖6 3層結構的多層感知機
圖6為最基本的多層感知機模型,其中有一個輸入層,包含3個輸入節點,一個隱含層,包含4個隱含層節點,一個輸出層,包含2個輸出節點。輸入節點、隱含層節點和輸出節點的個數可以根據實際情況增加或減少,此外,隱含層的個數也可以增加或減少。
(1)

多層感知機的前向傳播算法就是依照式(1),根據輸入數據xk,一層一層計算得到輸出值。前向傳播完成后,需要對模型進行參數學習。

根據各種變量之間的關系式推導可得:
(2)
(3)
用δ(l)來定義第l層神經元的誤差向量,如式(4)所示:
δ(l)
f′l(z(l))⊙((w(l+1))Tδ(l+1))
(4)
總的來說反向傳播算法的含義是:第l層的一個神經元的誤差項是所有與神經元相連的第l+1層神經元的誤差項的權重和,再乘以該神經元激活函數的梯度。
DBN提取數據特征的能力是建立在RBM(Restricted Boltzmann Machine)結構堆疊的基礎上的。RBM是一種典型的隨機神經網絡。RBM的結構簡潔明了,分為可見單元組(Visible Unit)和隱含層單元組(Hidden Unit)。這2種單元之間互相連接,但是同一單元組之間不允許連接,其結構如圖7所示。

Figure 7 Schematic diagram of the internal connections of a restricted Boltzmann machine圖7 受限玻爾茲曼機內部連接示意圖
圖7中V=(v1,v2,v3,…,vm)為RBM的可視層,H=(h1,h2,h3,…,hn)為RBM的隱含層,RBM的能量定義函數如下所示:
E(V,H)=-∑ivibi-∑jhjcj-∑i,jvihjwij
(5)
其中,b=(b1,b2,b3,…,bm)是對應可視層每個神經元的偏置量,c=(c1,c2,c3,…,cn)是對應隱含層每個神經元的偏置量,wn×m是隱含層第n個神經元對應可視層第m個神經元的權重。
由式(5)推導得,可視層與隱含層之間的聯合概率分布為:
(6)
其中z為歸一化系數:
z=∑V,He-E(V,H)
(7)
由2層之間的聯合概率分布式與每一層的各數據項,在任意一層已知的基礎上,可以求得另一層各個神經元被激活的概率,其計算公式如下所示:
(8)
(9)
其中,σ(x)為激活函數,通常選擇sigmoid函數,其函數表達式如下:
(10)
RBM利用輸入的數據特征量,在可視層與隱含層之間正向與反向的學習來校正2層間的權重矩陣和各自的偏置量,通過對比由隱含層反向得到輸入層數據來判斷學習效果并不斷修正,直至滿足精度要求。
DBN則是將多個RBM以首尾相接的方式連接起來,上一個RBM 的隱含層即為下一個RBM 的可視層,上一個RBM的輸出即為下一個RBM的輸入。依照此方式構成DBN網絡后,利用貪婪算法來依次處理每一個RBM,以達到整體優化的目的。
本文針對大口徑火炮的故障預測問題,提出將DBN與MLP相結合,搭建DBN-MLP故障預測模型,利用該模型完成火炮故障的預測,實現健康管理系統的故障預測功能。利用DBN強大的數據特征提取能力對數據進行處理,對DBN處理后的數據利用MLP結構進行有監督學習,高效地完成數據的判別。DBN-MLP模型結構如圖8所示。

Figure 8 Schematic diagram of fault prediction model structure圖8 DBN-MLP故障預測模型結構示意圖
DBN-MLP故障預測模型主要包含DBN網絡預訓練、DBN網絡全局微調、MLP網絡參數設置、MLP網絡訓練和故障預測網絡檢驗等部分。
(1)DBN網絡預訓練。
這個過程又稱為參數初始化。即將深度置信網絡分解為一系列受限玻爾茲曼機,逐層訓練參數,為整個深度置信網絡提供較優的網絡初始化權值。首先將原始數據V作為可視層的輸入向量,訓練第1個受限玻爾茲曼機的連接權值矩陣w1,接著固定w1,通過P(H1|V)=P(H1|V,w1)訓練得到第1個受限玻爾茲曼機的隱含層向量h1,將h1當作第2個受限玻爾茲曼機的可視輸入向量,用以訓練第2個受限玻爾茲曼機的連接權值矩陣w2,以此類推,逐層計算得到每一層的隱含層神經元激活向量和與前一層神經元的連接權值矩陣。換言之,將深度置信網絡的低層輸出作為其高一層的輸入,每次只無監督地學習一層特征變換,最終依次將學得的網絡連接權值堆疊成為整個深度置信網絡的初始化權值。
(2)DBN網絡全局微調。
為了進一步提升模型性能,當完成一系列受限玻爾茲曼機無監督預訓練后,再把原始訓練數據當作監督數據對整個深層結構進行有監督學習,依據最大似然函數,采用反向傳播算法對整個深度置信網絡進行進一步優化,精調各層參數。
(3)MLP網絡參數設置。
根據MLP所需,確定網絡結構參數,包括MLP網絡節點數量(輸入層、隱含層和輸出層)、初始權重矩陣、神經網絡的學習率、迭代次數、允許誤差,以及多層感知機所選激活函數的相關參數。
(4)MLP網絡訓練。
利用已經訓練好的DBN網絡對訓練數據特征進行提取,將得到的特征高度集中的數據用作多層感知機的訓練數據,以訓練神經網絡。MLP的訓練是基于前向傳播的有監督學習訓練方式,通過梯度下降法對模型進行訓練,得到特定網絡節點下較為適合的網絡權重矩陣,完成對多層感知機的訓練。
(5)深度學習網絡檢驗。
在DBN與MLP網絡訓練完畢的基礎上,將測試數據輸入故障預測模型中得到數據結果并與實際結果進行對比,計算模型對故障預測的精確度,完成對模型可行性的評估。
由于大口徑火炮的各個部位實際數據涉密,不便成文發表,因此本文選擇在實驗初期使用的美國凱斯西儲大學電子工程實驗室為了便于他人研究和測試所公布的一組旋轉軸承數據來替代火炮關鍵部位的振動數據[19]。這組數據是由位于旋轉軸承上方機殼上的振動傳感器在12 kHz的采樣頻率下,在4種不同的負荷下記錄的旋轉軸承振動數據。軸承是安裝在由2個不同的驅動力構成的機械系統之中的,與大口徑火炮故障發生的關鍵部位內部的軸承結構類似,可以替代用以研究。
本次實驗選擇軸承振動實驗數據組中較有代表性的5組數據,分別是電機負載為0,電機轉速約為1 797 rpm的條件下,軸承正常工作振動數據,以及單點驅動端在12 000樣本/秒采樣頻率的條件下,故障直徑分別為0.007 inch(英寸,1 inch=25.4 mm),0.014 inch,0.021 inch,0.028 inch時軸心部位的振動數據,在這些數據集當中分別挑選12 000個作為實驗數據,由于要對大口徑火炮的整個生命周期進行評價與預測,將數據以100個連續數據為一組,整合為時間序列數據(time- series)[20],共構成每種故障尺寸各120組數據用以實驗。從每組數據中取出100組作為訓練數據,其余100組數據組成檢驗數據。模型學習目的在于識別軸承工作狀態正常與否,在識別精確度高的前提下,完成對故障尺寸的鑒別,實現真正高精度的故障識別系統模型。實驗數據如表1所示。

Table 1 Data for testing
對實驗數據進行統計學分析得到數據集合的數學特征如表2所示。

Table 2 Statistical characteristics of experimental data
由實驗數據的統計學特征可得,在數據量足夠大的情況下,正常無故障實驗組Wn的振動平均數最小,故障組W2,W1,W3,W4的振動平均數依次增大,正常無故障實驗組Wn的振動幅度極值最小,故障組W1,W2,W3,W4的振動幅度極值依次增大,且遠大于實驗組Wn的振動幅度。振動平均數與振動幅度極值的變化規律表明,絕對振動數據中正常無故障振動數據的振動幅度明顯小于其他故障情況下的振動幅度。由故障尺寸的標準差可得,正常無故障實驗組Wn的標準差最小,小于故障組W2,W1,W3,W4的,說明在當前情況下無故障數據的波動范圍小于其他故障數據的,但簡單的統計學特征只能作為參考,無法定論具體情況,需做進一步分析。
要將故障數據傳入多層感知機模型,需要將數據在保留其數據特征的情況下,映射到(0,1),因此要對原始數據進行歸一化[21]。歸一化后數據峰值變化如圖9所示。

Figure 9 Schematic diagram of peak data changes after normalization圖9 歸一化后數據峰值變化示意圖
由于多組振動數據處理過后會重疊,不便觀察,因此本文在做完歸一化處理之后,對各組曲線進行了平移,以便觀察。從圖9中可以看出,0/1歸一化將不同組數據的特征變換到同樣區間,消除了量綱,使得他們之間具有可比性,并且滿足模型輸入要求。
利用歸一化處理之后的數據進行深度置信網絡與多層感知機的訓練,流程圖如圖10所示。

Figure 10 Flowchart of fault prediction network training 圖10 故障預測模型訓練流程圖
將數據進行分組,每100個連續數據為一組,這樣50 000個訓練數據整合為500組長度為100的數據,根據該數據分組的方式,深度置信網絡的輸入端神經元個數設置為100個。此次實驗選擇3層RBM堆疊的深度置信網絡,共有4層神經元,除去第1層的100個神經元外,另外幾層的神經元分別設置為250,250,100,這樣在深度置信網絡對數據提取特征之后,得到的輸出神經元個數為100,即提取特征之后得到的數據個數為100。
由于特征提取處理后的特征數據要應用于多層感知機進行有監督學習,根據DBN結構可得,處理后的數據為每組100個,訓練神經網絡層數為4層,因此多層感知機輸入層神經元個數為100,其余3層的個數分別為2 500,100,5,多層感知機輸出的5個特征即為故障預測結果,其結果以獨熱碼[22]的方式進行顯示,即10000為正常,01000,00100,00010和00001均為故障,并且每一種碼字對應一種故障。故障預測網絡訓練結果如圖11所示。

Figure 11 Training effect curve圖11 訓練效果曲線圖
預訓練次數設置為50,由預訓練次數與識別錯誤率局部曲線可得,在使用了由深度置信網絡進行數據特征提取,再由多層感知機進行數據分類的模型后,識別正確率較高,曲線大概在預訓練21次左右趨于平穩,通過調整神經網絡結構,有望改善最終結果。
模型訓練完畢后,使用測試數據對網絡預測效果進行評價,結果如表3所示。
表3所示為改進模型對多分類情況的預測效果。由表3可以看出,故障預測網絡對故障類型的預測結果較好,對于正常數據和故障尺寸為0.021 inch和0.028 inch的數據都有很高的預測精確度,誤判率分別是0%,5%和0%;但在預測故障尺寸為0.007 inch和0.014 inch的數據方面,識別誤判率較高,分別是15%和25%,預測結果還有待改善。

Table 3 Experimental results of fault prediction
故障預測結果散點圖和混淆矩陣分別如圖12和圖13所示。

Figure 12 Scatter plots of experimental results圖12 實驗結果散點圖

Figure 13 Confusion matrix of experimental results圖13 實驗結果混淆矩陣
由圖12可以看出,識別錯誤的8組數據中,有7組集中在故障尺寸為0.007 inch和0.014 inch的故障數據中,說明故障尺寸為0.007 inch和0.014 inch的數據識別問題較大,其他組別的識別結果僅有故障尺寸為0.021 inch的數據出現了一個錯誤,說明其他數據識別率較高。由圖13可以清晰看出,排除W1和W2組數據,其他組識別率都能達到95%及以上,而W1和W2的數據識別率較低,分別為85%和75%,且識別錯誤的情況基本都是這2組數據互相干擾引起的。故障預測模型整體的預測結果優良。
本文針對大口徑火炮的故障診斷與預測問題,提出基于深度學習的大口徑故障預測與診斷模型。該模型首先運用深度置信網絡自動提取數據特征,避免了人工處理數據的麻煩及其引入的復雜不確定數據波動;而后利用多層感知機的有監督學習的分類識別能力,對特征高度集中的數據進行簡單有效的分類,實現對故障數據的預測與識別。從測試結果來看,該模型可以勝任對大口徑火炮故障狀態的診斷與預測,具有較高的實用價值。