李秀峰,王寧,劉璇琦,段艷
(同濟大學汽車學院,上海 201804)
發動機的工作狀況直接決定汽車運行狀態,因此,發動機零部件的日常維護與故障排查是十分重要的工作。發動機故障具有多樣性、頻發性、不確定性和破壞性等特點,使得與發動機相關的故障識別任務具有一定的挑戰性。
目前解決汽車故障識別問題的主要方法是傳統的專家系統。專家系統通過學習人類專家的行業經驗,模擬專家發現、識別判斷、處理和解決問題的能力,以達到或超過人類專家解決同等問題的能力。這種系統雖然交互性強、容易修改,但是開發周期長、對于專家能力要求高,而且相關產品難以跟上軟件化、云端化的發展趨勢。
在解決數據集不平衡問題時,部分專家學者使用模糊系統結合神經網絡算法的方法:國外的SRILATHA D等實現了一種將模糊內核c-均值聚類算法和二型最優模糊神經網絡結合而成的監測系統;Naderkhani等則基于自適應神經模糊推理系統,對于非模糊輸入和對稱梯形模糊輸入的模糊回歸函數進行了分析與預測,分析比較了非參數模糊回歸統計方法中包括局部線性平滑(L-L-S)、K-近鄰平滑(K-NN)和梯形模糊數據核平滑(K-S)在內的3種方法,以獲得最佳平滑參數;呂曉丹等在標準模糊神經網絡控制器基礎上,提出了改進型模型,在模糊規則參數化及激活函數構建方面做出了改進創新,利用權重算法讓模糊規則可以跟隨誤差率變化而調整,避免梯度消失和梯度爆炸的問題。上述基于模糊理論的學習方式在數據不完整或數據量偏少時具有一定的優越性。
針對目前在汽車領域實現發動機故障自動識別的相關研究較少,并且考慮到一般的機器學習模型受限于數據集不平衡問題,模型可識別的故障類型偏少,本文從數據層面出發,結合機器學習等研究方向已有的成熟算法,設計出一套適用于大數據樣本集和小數據樣本集的故障診斷組合模型:針對數據樣本量較大的故障類型,采用機器學習中的XGBoost算法建立梯度提升故障識別模型;針對數據樣本量較小的故障類型,采用模糊神經網絡構建故障識別模型,最終獲得針對汽車發動機的多適應故障識別組合模型。

圖1 研究內容框架
數據源自與博世(BOSCH)公司合作研究項目。項目所提供數據涵蓋4組柴油車隊(編號分別為CAM09-12)的兩類數據,一類數據為記錄全部實時采集數據的RE(RealTime)表,另一類為記錄全部故障相關數據的FT(Fault)表。RE表以秒級實時采集了車用柴油機的大量特征信息,共有63個監測參數,例如采樣時間(TM)、ECU里程、Engine Speed等實時運行數據;FT表是故障信息的記錄表,記錄了柴油車發生故障的起止時刻、故障類型等17個監測參數。
首先對兩類數據表進行有用參數的篩選。結合相關工程師經驗,剔除RE表和FT表中的部分無用參數,并將SPN與FMI兩個參數合并為SPN|FMI一個參數,用于結合故障手冊文件進行對故障的唯一性定位。
其次,對兩類數據表進行時序鏈接處理。TM(Time)參數為系統時間參數,精確到秒級,依據TM特征參數將兩表鏈接得到RE-FT表文件。在雙表匹配過程中,如果RE表數據鏈接到FT表時產生NaN格式數據填充,即意味著此時系統運行正常,無故障碼數據。
最后,對于上述步驟生成的RE-FT聯合表文件進行數據清洗以及去重等操作,生成2020年12個月的RE-FT聯合表文件,共計1 076個,其中共含故障數據14 497條,清洗后的數據包括51個特征,去掉時間特征(TM)與故障定位特征(SPN|FMI)參數后,剩余49個有效運行數據特征。RE-FT聯合數據特征參數見表1。
初中生處于青春期,心理上處于不穩定狀態,生活在社會這種大環境中,經常受生理上、心理上、情感上的困擾。這些問題若不及時正確引導和處理,很容易導致學生的心理失去平衡。課堂教學中應積極滲透學生的心理健康教育。

表1 RE-FT聯合數據特征參數
機器學習模型的訓練需要足夠的樣本,并且要保證各類樣本具有代表性并均衡分布,才能使模型效果既不欠擬合也不過擬合,具有較好的泛化能力。為確定是否需要進行數據平衡,對故障數據中所有故障類型進行計數,再對各類數據進行按量級分桶統計,選取0,10,20,40,50,100,200,400,800,20 000作為樣本分層分割點,并計算該條件類別故障數占總故障數百分比,數據分類統計結果見表2。

表2 故障數據分類統計
采用決策樹作為弱分類器的梯度提升算法被稱為GBDT(Gradient Boosting Decision Tree)算 法,GBDT中使用的決策樹通常為CART分類及回歸樹。但GBDT與傳統的Boosting有很大的不同,傳統的Boosting側重于正確和錯誤的樣本加權,GBDT的每次計算都是為了減少前一次的殘留誤差,進而可以在殘差減少的梯度方向上建立新的模型。
XGBoost是基于GBDT改進而來的,主要增加了正則項和采樣來防止過擬合,并且利用對于代價函數的二階泰勒展開,使得算法可以同時使用一階和二階導數,二階導數有利于梯度下降得更快速和準確,而由于泰勒展開函數的特性,可取展開函數做自變量的二階導數形式,在不選定損失函數具體形式的情況下,單純依靠數據輸入就可以進行葉子節點分裂優化計算。XGBoost的核心算法可以總結為不斷特征分裂,每次向計算系統里添加一棵樹,學習一個新的函數,來擬合上次預測得到的殘差,訓練完成時,樣本特征在經過分類決策之后分布在每個葉子節點上,因而每個葉子節點對應一個分數,最后將每棵樹對應分數相加即為該樣本預測值。XGBoost算法中,葉子的分裂方式,即節點的分裂方式基于貪心算法發展而成,貪心算法主要是利用枚舉法將所有樹的結構遍歷,利用打分函數來選取最優結構的樹,將此結構的樹加入模型中,不斷重復和迭代,直到觸及閾值節點數或設置的超參數max_depth則停止建立決策樹,避免樹生長太深導致學習局部樣本,最后得到過擬合結果,使泛化能力下降。
平衡數據包括重新采樣、集群豐富度、交叉驗證等方法。
2.2.1 重新采樣
重新采樣包括欠采樣和過采樣兩種處理方式,這里由于稀有樣本過少,即使采用自重、合成、復制等方法也僅僅是放大現有特征,可能導致最后偶發特征固化,使機器學習將無關參數判定為有效特征的情況,因而選用欠采樣,減少豐富類數據數量,即限定單種故障最多投入數據量,在重新采樣階段就以50的10倍作為數據上限,限定單個故障類型最多投入500條故障數據進入訓練,另外加入正常數據5 000條。
2.2.2 集群豐富度
集群豐富度是通過對豐富類數據進行聚類操作,選取集群分布的集群中心與稀有類數據進行訓練的方法。本文選用-means的集群方式,取值為120,即取稀有類數據中每一類樣本個數為120,并將這個數值作為選取聚類中心點附近數據的個數,這樣就可以在保持特征不變的情況下得到均衡樣本。進行聚類取中心點操作后,接下來就可以將相等樣本量的各類故障數據投入模型中進行監督訓練。
2.2.3 交叉驗證
-fold交叉驗證也是平衡數據的一種方式,這種方式的原理是把原始數據隨機分成份,然后每次進行訓練時,隨機選取一個部分作為測試集,剩下-1個部分作為訓練集,然后在保證每次選取的部分互不相同的情況下將驗證進行次,最后將得到的結果取均值,即可得到更加均衡的數據集輸入。
將數據集按照9∶1的比例分割為訓練集與測試集兩部分,為得到準確的評估結果,本文采用分層抽樣的方式劃分數據以保證測試集和訓練集中各類樣本的分布情況大致相同。在XGBoost識別模型中所涉及的調節參數及實際取值見表3。

表3 模型參數取值
利用不同的數據平衡方式配合參數微調,采用宏平均(Macro Average)和權重平均(Weighted Average)兩種方式對所有故障取均值作為總評估值,這兩種評估計算方式的主要差別在于計算Macro Average時對于每一樣本類賦予相同權重,但是當樣本量不夠均衡時,按照數據體量賦予每一類不同權重的Weighted Average更加準確。利用兩種計算方式在查準率(precision)基礎上進行模型識別泛化能力評估見表4所示,進行識別準確度范圍約為86%~92%。

表4 XGBoost模型識別效果 單位:%
在XGBoost模型中被棄用的故障類型數據,本文利用模糊系統結合神經網絡算法進行處理,這種基于模糊理論的學習方式在數據不完整或數據量偏少時具有一定的優越性。
模糊系統是一種基于知識或基于規則的系統,它的核心就是由IF-THEN規則表達的知識庫,是一種將多輸入非線性映射為單輸出的運算系統,如果想進行多輸出映射,可將單輸出疊加稱為多輸出得到。一個模糊系統的模糊規則庫里可能有許多規則,而模糊推理機就是為了高效進行模糊推理而產生,它的作用主要是在模糊集上根據模糊規則完成一系列復雜運算和規則判定。由于模糊系統自身僅僅是執行已有規則進行判定,不具有自主學習能力,也不能自我糾錯,可以認為是封閉后就不再有改變的控制系統,而且對于規則過多或規則之間彼此比較相近的模糊系統,模糊推理機在進行規則執行時有可能會有多條模糊規則響應,導致輸出超載,最終無法輸出或輸出不準確的結果。
神經網絡對來自同一分布的輸入,能產生準確的輸出,也就是說在訓練完畢后,采用沒有輸入過的測試集進行測試時,神經網絡應該能夠對訓練集內的映射進行運算,可以對測試集數據達成類似的映射效果。因而可以這樣說,相比模糊控制系統,神經網絡不僅僅是對于輸入輸出信息學習映射函數,還可以通過挖掘數據自身特質來學習并建立規則,而不是單純執行已有規則。
模糊系統和神經網絡各自有其優缺點,其中前者主要著眼于執行,缺乏自學習能力,后者學習函數關系,但其權值與學習能力關系難以總結為公式規則,不便于清晰闡述,并且模型構建速度和精度受諸多因素影響,難以處理高層次信息。因此考慮將二者結合,既能利用模糊器的優勢,即把非公式化輸入基于可公式化的If-Then規則輸出非公式化結果,又能結合神經網絡自學習能力,即挖掘數據之間關系實現對系統自身進行糾錯與演化。基于模糊控制的模糊神經網絡識別模型的建模流程如圖2所示。

圖2 模糊神經網絡識別模型的建模流程
對于模糊識別輸入數據,選取2020年12個月內故障發生頻次大于20但不大于100的小量數據故障,根據表2可得共8種故障,本文選取30個運行數據特征作為系統輸入參數,建立集,分別以,.……來表示,將8種故障類型作為系統輸出參數,建立集,分別以,,…,來表示。
模糊神經網絡模型主要由輸入層、模糊層、隱含層和輸出層構成,其中隱含層數決定了模型訓練的精度和速度?;谛×繑祿哪:窠浘W絡模型的隱含層數選用10層,加上輸入層、輸出層及模糊層,神經網絡總層數為13層,屬于正常算力范圍之內。
模型深度確定后,需要建立模糊推理表,為參數部分狀態賦值Nomal,其余參數變化 范圍則分為High和Low兩類,分別用H、N、L來進行代替。此外,為使系統可以輸出無故障Nomal或近似Nomal結果,對故障輸出設定門檻,即為輸出增加可信度判定機制,此處首先選用=0.65,表示有65%概率為當前故障,結合H、N、L參數,嘗試建立模糊規則表,最后建立模糊多層感知器如圖3所示。

圖3 模糊多層感知機
最優的模型必須同時滿足兩個條件:梯度最優和損失函數最優。梯度最優是指在利用訓練集進行訓練時,在梯度最小前提下獲得最小損失函數,此時代表模型訓練最成熟;損失函數最優是指訓練集損失函數曲線與測試集損失函數曲線重合度最高,這代表模型具有良好的泛化能力與魯棒性。倘若有兩個以上訓練結果同時滿足以上兩點,觀察選取梯度曲線和均方誤差曲線最平滑的訓練結果作為最優模型。本文選用均方誤差作為損失函數,以衡量模糊神經網絡模型的學習效果。
結合學習模型反饋要求,選用神經網絡包括BP神經網絡、NN工具箱兩種在Matlab中可直接調用的神經網絡工具箱,并按照7∶1.5∶1.5的比例分割訓練數據、驗證數據、測試數據。模型訓練周期為70時的整體擬合效果較好,其損失函數及梯度下降曲線如圖4所示,測試集均方誤差函數與訓練集均方誤差函數幾乎重合,證明輸出值與實際值非常接近,模型分類識別效果較好,梯度下降曲線十分平滑,模型成熟。

圖4 均方誤差與梯度隨訓練周期變化圖
多次測試后對于投入模型的故障識別結果計數并基于準確度計算概率,選取眾數識別準確度,得到識別準確率如表5所示,模型平均識別準確率為67%。

表5 模糊神經網絡模型的識別準確率
本文建立了一種能夠覆蓋更多故障種類的多適應發動機故障識別組合模型。模型由兩部分組成:第1部分是適用于數據完備情況下的基于大數據的XGBoost分類模型,模型準確率最高達到92%,可以準確、高效地進行發動機故障檢測,并且不依賴于人工,在增加故障判斷準確度的同時還可以減少人工成本;第2部分是針對部分低頻故障但檢測優先級別高的重要故障,如進排氣異常、噴油器異常等,在排除偶發性、不可預測的隨機故障后,在數據不完備情況下的構建模糊神經網絡識別模型,最后模型識別效果達到67%。