林海濤 朱寶全 馬小涵
(東北林業大學,黑龍江 哈爾濱150040)
現代發動機涉及機械傳動、電子技術、計算機控制、熱力學等多門學科[1],一旦發生故障不易精確快速診斷。發動機故障診斷技術意義重大,對于使用者來講,及時發現故障可以有效避免事故風險,提高發動機的運行條件和使用壽命,并能大大減小出現嚴重故障的檢修費用[2];對于社會來講,及早排除故障可以使發動機在更好工況運行,大大提高在經濟工況區域工作的機會,而且對于減小排放污染也大有貢獻[3]。現代智能化診斷技術既需要理論支撐,又需要技術支持[4]。在進行故障診斷之前需要對診斷對象有充分了解,根據目的選擇合適的診斷方法,選用合適的儀器,提前做好計劃方案。
發動機作為汽車的心臟,準確高效地進行發動機故障診斷對于保障汽車安全性、提高經濟效益具有重大意義。傳統診斷方法勞動強度大,效率低下,正確率不高,隨著人工智能方法的發展,神經網絡廣泛應用于故障診斷方面,相關方面的理論研究也越來越成熟[5]。BP 神經網絡只需要采集與故障工況相關的特征參數,神經網絡即可自行學習,建立特征參數與故障工況的對應關系。本文介紹了發動機故障診斷的背景與發展,并進行了實驗數據采集,提出了BP 神經網絡進行故障診斷的方案,從中挑選最佳的BP 神經網絡。
基于BP 神經網絡的發動機故障診斷算法整體流程如圖所示。首先進行數據采集,并將數據分為訓練樣本和測試樣本兩個子集,并對兩個數據集進行歸一化等預處理,將訓練樣本放入BP 神經網絡中進行不斷訓練,訓練過程中不斷調整網絡參數,計算收斂情況和預測誤差,當精度滿足預期要求時,停止訓練,輸出訓練后的BP 神經網絡模型。
本文網絡層數選擇為3。輸入層節點數等于神經網絡輸入向量的維數,本文提取11 個特征參數作為網絡輸入向量,因此可確定網絡輸入層節點數為11,輸出層節點數等于輸出向量的維數,網絡輸出為9 種發動機工況,因此輸出層節點數確定為8。
隱含層節點數,通常根據經驗公式進行估計:

其中,m 和n 分別為輸出層和輸入層的神經元個數,a 是[0,10]之間的常數。
由于經驗公式得到的只是一個范圍,如果要確定最佳的隱含層節點數,可以在訓練樣本不變的條件下,比較不同隱含層節點數的性能好壞,從而選擇出最佳值。根據公式(1),初步選取隱含層節點數[4,14]之間的整數,最后對比網絡誤差選取最佳值。

基于BP 神經網絡的發動機故障診斷算法
BP 網絡需要對迭代的初始值進行設置,初始值過大或過小都會對性能產生影響,初始值過大,可能會在極大程度上影響學習效率,通常設置一個接近于0 的隨機數作為初始值。誤差精度通常根據經驗先選擇一個合適的值,如果不能滿足預期要求可以繼續比較調整,初選誤差精度為10-3。網絡最大迭代次數設置為2000。
最終選用LM算法對網絡學習訓練,得到隱含層節點數為11 時網絡誤差最小,因此確定隱含層節點數為11。由于BP 神經網絡改進訓練算法有四種:動量BP 算法、VLBP 算法、擬牛頓算法和LM算法。本文定隱含層節點數為11,分別用不同訓練算法比較優劣,結果顯示選用LM算法網絡誤差最小,收斂速度最快。
為提高發動機故障診斷的準確度和診斷效率,本文開展一種基于BP 神經網絡的發動機故障診斷算法研究,本文針對故障診斷進行了BP 神經網絡的設計,選用LM算法對網絡學習訓練,得到隱含層節點數為11 時網絡誤差最小,因此確定隱含層節點數為11。由于BP 神經網絡改進訓練算法有四種:動量BP算法、VLBP 算法、擬牛頓算法和LM算法。本文定隱含層節點數為11,分別用不同訓練算法比較優劣,結果顯示選用LM 算法網絡誤差最小,收斂速度最快,因此確定最佳的BP 神經網絡方案為11-11-8 結構,采用LM算法的BP 神經網絡。利用訓練后的神經網絡進行故障診斷,診斷正確率達到94%。