王登峰,胡 浩,吳建德
(1.鄭州信息科技職業學院機電工程學院,鄭州 450046;2.昆明理工大學信息工程與自動化學院,昆明 650500;3.貴陽學院機械工程學院,貴陽 550005)
旋轉機械目前被廣泛用于包括石油、能源和化學工業在內的各種工業應用領域,機械故障可能會造成巨大經濟損失甚至災難性事故[1]。隨著可靠性相關理論的發展,旨在監測、評估、診斷和預測機械健康狀態的研究引起了學者們的廣泛關注[2-5]。
深度學習作為一種機器學習算法,可以通過多個非線性變換和近似復非線性函數,從原始數據中自適應地學習層次表示,實現故障診斷[6]。但是,它仍然存在兩個主要缺陷:①無法在原始數據和相應的故障模式之間建立直接的線性或非線性映射,且這些故障診斷方法的性能取決于構建和訓練深度模型的質量。②這種方法的訓練機制主要基于監督學習或半監督學習,這意味著診斷算法需要專家系統以便專門學習不同的故障模式[7-8]。
深度強化學習(deep reinforcement learning, DRL)涉及強化學習和深度學習的結合,這種結合使人工代理可以直接從原始數據中學習其知識和經驗。深度學習能使代理感知環境,而強化學習能使代理學習應對現實問題的最佳策略[9-10]。考慮到上述問題,提出了一種基于堆疊式自動編碼器(stackable automatic encoder, SAE)與深度Q網絡(deep Q network, DQN)的深度強化學習機械故障診斷方法。
作為一種無模型的強化學習算法,Q學習也可以被視為一種異步動態編程方法[11]。Q學習代理的學習過程可以概括為三個步驟:①代理基于對當前狀態的觀察嘗試行動;②環境會立即回饋有關行動的反饋,包括獎勵或罰金;③算法使用Bellman方程基于獎勵、行動和狀態來更新Q表。
Q學習算法可用于通過Q函數學習Q表的每個值。Q函數定義為:
Qπ(st,at)=E[Rt+1+γRt+2+γ2Rt+3+…|St,at]
(1)
其中,Qπ(st,at)是狀態st采取動作at的Q值,Rt是每個時間步長的獎勵,γ是折現率。Q函數將狀態和動作作為輸入,并反饋其預期的未來獎勵。Q學習算法使用Bellman方程更新Q(s,a),如下所示[12]:

(2)

DQN可以是新開發的端到端的強化學習代理,它利用DNN來映射動作和狀態之間的關系,能夠直接從原始數據中學習抽象表達[13]。與DQN代理相比,傳統Q學習代理的最嚴重缺陷在于處理包含大量狀態與動作的問題時,使用Q表來映射動作和狀態之間的關系可能會導致維數災。因此,本文使用一個深層的CNN來逼近最佳Q函數,而不是使用Q表。另外,當Q函數通過非線性函數逼近器表示時,增強學習會變得不穩定或發散。因此,引入了兩種稱為記憶重放和迭代更新的策略來克服此類缺陷。
記憶重放通過消除觀察序列中的相關性,并通過隨機化數據來平滑數據分布的變化來解決該問題。迭代更新通過定步長逼近目標值更新Q值從而減少Q值和目標值之間的相關性。首先,記憶重放在每個時間步驟存儲代理的經驗,以便形成一個包含一定數量經驗的名為記憶的集合。在時間步驟t的單次經驗et定義為et=(st,at,rt,st+1)在時間步驟t處的記憶定義為Dt,其中Dt={e1,...,et}。然后,在更新DQN代理時,經驗重放會從記憶中隨機抽取經驗,從而達到平滑數據分布的目的。
通常使用函數逼近器估算動作-值函數。DQN使用CNN作為函數逼近器,權重作為Q網絡。因此,可以通過減少Bellman方程中的均方誤差,然后再通過在迭代處更新參數來訓練Q網絡。在每次迭代改變的損失函數定義為:
Li=Es,a,r[(Es′[y|s,a]-Q(s,a;θi))2]
(3)
區分與權重有關的損失函數的結果為以下形式:

(4)

為了實現基于DRL的故障診斷方法,設計了一個故障診斷仿真模型[14-17],通過該模型可以將監督學習問題轉換為強化學習問題。這種環境可被視為“故障診斷博弈”模型,故障診斷博弈的流程如圖1所示。

圖1 故障診斷博弈模型流程
對于諸如Q學習的原始強化學習方法,由于這些方法表示狀態的能力有限,所以僅基于振動信號很難區分和識別旋轉機械的狀態。考慮SAE提取滾動軸承的故障特征中的廣泛應用,因此在本文中使用了堆疊自動編碼器 DNN來感知振動信號中存在的故障信息。SAE可以有效提取故障特征有兩個重要原因。首先是SAE可以通過逐層自學學習原始信號的表示。第二個原因是稀疏約束可以通過限制每個自動編碼器的參數空間來防止過度擬合。
算法1中說明了用于訓練基于SAE的DQN的算法。訓練過程包括兩個單獨的部分。第一個是SAE的預培訓,第二個是DQN代理的培訓。雖然已經完成了代理的訓煉過程,但是代理的輸出層需要確定Q值的最大值,然后輸出相應的操作,才能夠獲得診斷旋轉機械故障的代理。此時,在訓練和測試過程中,輸入數據均為原始振動信號。即本文使用的方法實現了端到端故障診斷。完整方法的流程圖如圖2所示。

圖2 所提出方法的流程圖
3.1.1 數據說明
本文中使用的滾動軸承的故障數據是來源于凱斯西儲大學軸承失效實驗[16]。該數據集包括正常軸承和故障軸承的滾動軸承測試數據。實驗的動力產生器是兩馬力的電動機,振動數據是從驅動端收集的加速度數據,在電動機軸承的近端測量的采樣頻率為48 kHz。滾動軸承故障注入的實驗設備如圖3所示。收集了4個條件下的數據,包括一個正常條件(N)和3個故障條件(F)。故障條件是外圈故障(OF)、內圈故障(IF)和滾軸故障(RF)。 另外,引入滾動軸承的故障都是單點故障。此外,故障直徑的受損程度不同,包括0.007 in、0.014 in、0.021 in和0.028 in。

圖3 代理在滾動軸承數據集故障診斷訓練過程中的分數
為了驗證該方法的有效性,根據載荷將振動數據分為4組(S1、S2、S3和S4)。每組包含10種故障模式,根據故障直徑和故障位置劃分。S1、S2和S3分別包含一個馬力、兩個馬力和三個馬力負載下的所有故障模式。每個故障集有12 000個樣本,每個樣本包含400個數據點。數據集都是未經預處理的原始振動信號。S4是S1、S2和S3的并集,它在所有負載下都有36 000個樣本。
3.1.2 診斷結果
在訓練過程中,SAE網絡具有4層,包括一個輸入層,兩個訓練過的編碼器和一個輸出層。輸入樣本的維數決定輸入層的單位數,第一個編碼器和第個二編碼器的單位數分別為128和32,Q值的維數決定輸出層的單位數。編碼器中使用的激活函數是ReLU,反向傳播函數使用的是Adam。此外,還利用防止過度擬合并提高訓練效率的L1正則化來約束、限制神經單位權重的參數空間。每個自動編碼器的最大訓練時期為200,DQN代理的訓練時期為2000,每個時期包含512輪診斷博弈。DQN代理的重放記憶大小為64。為了測試和驗證所提出方法的性能,將10倍交叉驗證應用于4個數據集,每10輪計算獎勵的平均值。圖3顯示了DQN代理在訓練過程中的進度曲線。此外,診斷后的結果總結在圖4中。
故障診斷代理為正確答案時得一分,為錯誤答案時減一分,這意味著在512輪博弈中,總得分在-512~512點之間。在博弈開始時,由于缺乏任何先驗知識和經驗作為參考,DQN代理處于隨機猜測階段。由于故障診斷結果具有10個類別,所以代理獲得正確答案的概率只有0.1。因此,在開始時,得分約為-460分。隨著培訓過程的進行,代理將從自己的歷史經驗和分數變化中學習。如圖3所示,分數隨著訓練而增加,并且在接近最后時期時達到近512分。上述提到的分數與獎勵相同,它們被用作評估代理性能的反饋。通過每個時期的總獎勵可以來觀察DQN代理向全局極值的收斂,因為診斷的準確性直接反映在總獎勵上。當總獎勵足夠高并開始振蕩時,可以認為DQN代理的訓練過程已完成。
圖4說明受過訓練的代理可以在多種情況下有效地診斷故障。10倍交叉驗證的定量結果顯示在表1中。為了說明所提出方法的性能和有效性,還使用基于監督學習訓練的SAE模型,通過10倍交叉驗證來處理相同的數據集。輸入層和兩個自動編碼器與DQN代理的相應層相同。輸出層有10個節點,并使用softmax函數輸出分類結果。該模型的訓練過程包括自動編碼器的逐層預訓練和整個SAE模型的微調。總體而言,兩種方法均達到了很好的診斷準確性和穩定性。在訓練集上,所提出的方法能夠以接近100%的準確度正確區分樣本,而SAE-Softmax方法可以正確區分所有樣本。在測試集上,這兩種方法的準確性和相應的標準偏差非常接近。計算數據集S1、S2、S3和S4的兩種方法之間差異的絕對值分別為0.006 9、0.012、0.012 6和0.007 5。考慮到基于監督學習的方法在確認樣本及其對應標簽之間的關系方面具有優勢,因此該結果說明了所提出方法的有效性。另外,測試精度的最大標準偏差為0.014 4,這表明該方法可以對故障樣本進行穩定的分類。具體來說,數據集S4的情況是4個數據集中最復雜的,它包含3個不同負載下10種健康狀況的原始振動信號。所提出的方法能夠在工作條件下區分故障模式。而除了在數據集S4上進行測試的平均準確度之外,SAE-Softmax方法在所有實驗中的性能均優于所提出的方法。總之,結果表明,所提出的方法可以訓練基于DNN的代理學習如何僅使用原始振動信號來診斷滾動軸承的故障,而與故障類別、嚴重性和工作條件無關。
本文使用的SAE模型可以感知原始振動信號,并且是端到端故障診斷方法的前端。為了進一步了解代理如何學習診斷故障并驗證代理挖掘故障特征的能力,利用t分布隨機鄰域嵌入(t-distributed stochastic neighbor embedding,t-DSNE)來對DQN代理內部的SAE模型的輸出進行可視化[17]。第二個編碼器的輸出被視為代理學習到的特征,因為DQN代理的輸出層是一個輸出Q值的線性層。因此,在案例1中,從單個樣本中提取的特征向量的維數為32。

表1 滾動軸承數據集的診斷結果(平均準確度±標準偏差)

(a) S1數據集

(b) S2數據集

(c) S3數據集

(d) S4數據集圖4 滾動軸承數據集的10倍交叉驗證的診斷結果
3.2.1 數據說明
案例2中使用的液壓泵數據是從7個燃油輸送泵中收集的,兩個常見的故障,即滑動件松動和閥板磨損,已被物理式地注入泵中。液壓泵的振動信號由加速度傳感器從泵的端面獲取,并具有528 rpm的穩定電機速度和1024 Hz的采樣率。表2中匯總了泵的狀態。每個泵收集了兩個樣本,每個樣本包含1024個點,總共收集了14個樣本。

表2 泵數據集的描述
使用512點長度的滑動窗口將傳感信號的每個樣本連續重新排列為一個包含500組數據的新樣本。重組后的數據集匯總在表3中。三種不同健康狀態下的樣本構成了案例2的數據集,其中有7 000個樣本需要區分。另外,進行10次交叉驗證以評估所提出方法的性能和泛化能力。

表3 泵數據集的診斷結果
3.2.2 診斷結果
由于對數據集使用了10倍交叉驗證進行驗證,因此進行了10次試驗,其中隨機選擇了10%的樣本進行測試,選擇了90%的樣本進行了訓練。針對案例2,提出的方法性能通過10倍交叉驗證的相應偏差的平均精度來進行評估。
由于案例2包含泵的三種健康狀態,代理可以得出三分之一的正確答案。因此,即使分數在開始時約為-314,但隨著訓練過程的進行,分數增加到512分。表3顯示了10次交叉驗證的平均準確度和相應的標準差。訓練和測試的平均準確度均為100%,這意味著所提出的方法可以正確分類每種故障模式的樣本。與案例1相似,使用SAE-Softmax模型來診斷故障,其診斷結果比所提出的方法稍差。考慮到將嚴重故障注入液壓泵核心部件的安全隱患,故障模式和嚴重性的變化并不像案例1那樣復雜。但是,信號是從7個不同的泵中收集的,并且傳感器的采樣率遠低于案例1。因此,案例2從3個角度說明了所提出方法在多個設備、樣本相對較少的條件下能夠實現對旋轉機械故障進行有效診斷。結果表明,所提出的方法和基于SAE-Softmax的方法都可以利用有限振動信號的持續而有效地對不同液壓泵的狀態進行分類。這說明所提出的方法具有從原始傳感信號中挖掘與故障模式相關的特征的能力。
因為在DQN內部的SAE中添加了稀疏限制后,具有相同健康狀況但有少許差異的樣本可能會導致不同位置的神經元被激活。這會導致高維空間中的特征彼此相距較遠。但是激活的神經元都與相同的輸出相關,即它們仍然可以被歸為同一類別。綜合來看,基于SAE的原始信號感知和基于DQN的自學式體驗學習的結合是所提出的方法能夠取得如此優異效果的關鍵原因。案例研究表明,提出的方法和基于SAE-Softmax的方法都可以對旋轉機械的健康狀態進行分類。另外考慮到監督學習算法前期需要儲備的先驗知識,提出方法的效率超過基于監督學習的深度學習方法。
本文提出了一種一種基于堆疊式自動編碼器與深度Q網絡相結合的深度強化學習旋轉機械故障診斷方法,使用滾動軸承和液壓泵數據集對該方法進行實驗驗證,可得出如下結論:
(1)通過結合強化學習的自主學習能力和深度學習的感知能力,提出的基于深度強化學習的方法可以實現旋轉機械端到端故障診斷方法。在保證了診斷精度與可靠性的前提下,該方法大大減少了對故障診斷的先驗知識和專家經驗的依賴。
(2)通過設計故障診斷博弈環境,該方法可以成功地使用DRL獲得智能故障診斷代理。能夠有效建立無監督診斷模型,并且有較好的診斷效果。
(3)故障診斷代理受益于記憶回放和基于獎勵的反饋機制,僅基于弱反饋就能夠了解不同故障模式與原始振動信號之間的非線性映射關系,為旋轉機械的故障診斷問題提供了一種更通用和智能的解決方案的方法和思想。