
1.本發明涉及一種自適應觸發增量學習的工業物聯網設備故障診斷系統,屬于設備故障診斷領域。
背景技術:2.近年來,為了滿足生產需求,機械設備通常工作在高負荷、高溫、高作業率的復雜惡劣環境,機械設備可能發生一定程度的損壞,從而導致一系列不良后果,機械設備穩定、安全運行在工業生產行業中變得越來越重要,因此對機械設備進行故障診斷可以避免不必要的維護成本,降低發生災難性事故的可能性。隨著工業物聯網技術的發展與廣泛應用,工業領域通過密集的傳感器網絡積累了海量的設備運行數據,促使基于數據驅動的故障診斷系統成為主流系統。
3.傳統數據驅動的故障診斷系統只有在靜態數據場景中能夠表現出優異的診斷精度與魯棒性,因此此類系統通常將設備運行數據視為靜態數據。然而在復雜工業生產環境中,設備在時變工況條件下產生的是動態的流數據,相較于靜態數據,流數據具有規模龐大、動態多變的特點,而傳統數據驅動的故障診斷系統缺乏增量學習、實時更新能力,因此難以適應工業流數據場景。
技術實現要素:4.為解決現有的技術問題,本發明提供一種基于自適應觸發增量學習的工業物聯網設備故障診斷系統,能夠解決目前故障診斷系統中存在的故障診斷模型無法進行增量更新、無法實時更新的問題,旨在有效地在工業流數據中診斷機械設備的故障,避免機械設備出現損壞宕機、系統惡性運轉的情況,提高自動化生產的穩定性,保證整個工業系統的長久運行,推動工業制造的進一步發展。
5.本發明中主要采用的技術方案為:
6.一種基于自適應觸發增量學習的工業物聯網設備故障診斷系統,包括故障診斷模塊、概念漂移檢測模塊和增量更新模塊;其中,
7.所述故障診斷模塊通過工業物聯網傳感器監測工業設備運行數據,使用故障診斷模型判斷設備是否處于正常狀態,如果處于故障狀態,判斷設備發生何種故障;
8.所述概念漂移檢測模塊通過時間窗口對設備運行數據進行劃分,使用歷史數據與當前數據檢測數據中是否發生概念漂移現象,若檢測到概念漂移,則啟動增量更新模塊對故障診斷模塊進行增量更新;
9.所述增量更新模塊使用傳感器監測的新數據對故障診斷模塊進行增量更新。
10.優選地,所述故障診斷模塊采用一維卷積神經網絡構建了故障診斷模型,構建基于一維卷積神經網絡的故障診斷模型需要預先準備好一定數量設備健康狀態與故障狀態的運行監測數據,并為數據標注相應的標簽,之后使用準備好的數據adam優化器訓練故障診斷模型,模型訓練完成后即可用于診斷設備故障。
11.所述概念漂移檢測模塊采用一種基于os-elm的概念漂移檢測算法實現對數據的概念漂移檢測,具體步驟如下:
12.s3-1:構建時間窗口,并使用時間窗口劃分數據,將劃分出的當前時間窗口與歷史時間窗口中的數據輸入算法中;
13.s3-2:使用歷史時間窗口中的歷史數據初始化在線極限學習機模型,并使用當前時間窗口中的當前數據更新os-elm;
14.s3-3:通過對比歷史與當前數據訓練得到的模型隱藏層參數之間差異來檢測數據中是否發生概念漂移;
15.s3-4:如果檢測到出現概念漂移,則啟動故障診斷模型的增量更新過程。
16.優選地,所述基于os-elm的概念漂移檢測算法,該算法負責對設備運行數據進行劃分,并檢測數據中是否發生概念漂移過程;該算法的具體計算流程如下:
17.s4-1:設置兩個時間窗口tw
hd
與tw
cd
,其中tw
hd
代表歷史時間窗口, tw
cd
代表當前時間窗口,時間窗口的長度為l
t
。設初始時tw
hd
中的歷史數據定義為表示從時間t=0開始間隔l
t
的時間長度,即[0,l
t
]時間內采集的數據。初始時tw
cd
中的當前數據定義為表示從時間 t=l
t
開始間隔l
t
的時間長度,即[l
t
,2l
t
]時間內采集的數據。
[0018]
s4-2:如果未檢測到概念漂移,歷史時間窗口的右邊界向前推移一個時間窗口長度,即時間區間為[0,2l
t
],當前時間窗口tw
cd
整體向前移動一個時間窗口的長度,即時間區間為[2l
t
,3l
t
],后續以此類推。如果檢測到概念漂移,則更新歷史時間窗口tw
hd
,將tw
hd
移動到tw
cd
的前一個時間窗口長度的時刻。
[0019]
s4-3:將歷史時間窗口tw
hd
中的數據s1輸入os-elm模型中,對于一個具有l個隱藏單元的單隱藏層os-elm,網絡模型可以表示為:
[0020][0021]
其中,g(
·
)為激活函數,w=[w1,
…
,w
l
]
t
和b=[b1,
…
,b
l
]
t
分別為輸入層到隱藏層之間的權重值和偏置值,βi為隱藏層到輸出層的權重值。該式可以轉化為存在βi,wi和bi,使得
[0022][0023]
上式可以以矩陣形式表示,即:
[0024]
hβ=t
???
(4);
[0025]
其中h為隱藏層輸出值矩陣,β為隱藏層到輸出層的權重值矩陣。
[0026]
使用s1數據訓練os-elm模型可以獲得在t0時刻的模型m(t0),模型參數為β
t0
,該模型被稱為基線模型,代表舊數據的數據分布。
[0027]
s4-4:將當前數據時間窗口tw
cd
中的數據s2輸入os-elm模型中進行模型更新,因為os-elm只修改了模型輸出權重β,所以可以獲得t1=t0+l
t
時刻的模型參數β
t1
,此時訓練得出的模型稱為m(t1),代表新數據的數據分布。
[0028]
s4-5:通過計算模型參數β
t0
與β
t1
之間的歐幾里得距離可以衡量使用不同時刻數據訓練得到的模型參數之間的差異,以此反應流數據中是否發生概念漂移。模型參數差異
的計算公式為:
[0029][0030]
s4-6:設置一個檢測閾值th,使得當模型更新前后差異值超過閾值,即d(m(t0),m(t1))》th時即可判斷流數據中已發生概念漂移。
[0031]
優選地,所述增量更新模塊采用基于遺忘約束的增量學習算法進行增量更新故障診斷模塊,具體更新流程如下:
[0032]
s5-1:構建一個舊類別代表性樣本數據集d
re
,該數據集為每個類別保存恒定數量的代表性樣本;
[0033]
s5-2:保存n個時間窗口的數據sn用于增量更新,該新樣本需要攜帶標簽;
[0034]
s5-3:將舊類別代表性樣本數據集d
re
中每個舊類別的有標簽樣本與流數據中新達到的樣本一同輸入模型中進行增量更新。
[0035]
優選地,所述基于遺忘約束的增量學習算法負責從新輸入的設備監測數據中學習知識,對現有的故障診斷模塊進行增量更新,以保證故障診斷模塊可以適應新的數據,該算法具體為修改故障模型的損失函數;其中,一維卷積神經網絡的故障診斷模型原有的損失函數為分類損失函數lc(x),具體公式如下:
[0036][0037]
其中|c|為故障類別的數量,yi為樣本的標簽值,pi為通過softmax函數獲得的相應類別的概率;
[0038]
在模型原有的損失函數的基礎上,添加基于遺忘約束的增量學習損失函數lg(x),該損失函數的公式為:
[0039][0040]
其中,和分別是原始模型和當前模型提取的歸一化特征, lg(x)鼓勵當前模型提取的特征與原始模型提取的特征盡可能相似,最終故障診斷模型的損失函數為交叉熵損失函數lc(x)與基于遺忘約束的增量學習損失函數lg(x)的加權和,具體公式為:
[0041]
l(x)=λld(x)+(1-λ)lc(x)
???
(8);
[0042]
其中,lg(x)的權重λ設置為動態權重,公式為:
[0043][0044]
其中,|cn|和|co|是每個階段中新、舊類別樣本的數量,λ
base
是每個數據集的固定常數。通常,當新類別數與舊類別數之比增加時,λ會增加,反之則減少。
附圖說明
[0045]
圖1是本發明的系統組成模塊圖;
[0046]
圖2是本發明的系統架構圖。
具體實施方式
[0047]
為了使本技術領域的人員更好地理解本技術中的技術方案,下面對本技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本技術一部分實施例,而不是全部的實施例?;诒炯夹g中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本技術保護的范圍。
[0048]
實驗例1:
[0049]
本實施例采用凱斯西儲大學公開的軸承數據集與pt700軸承實驗平臺采集的軸承振動數據,數據集中振動信號采樣頻率為12khz,負載設置為0 至3hp,軸承健康狀態分為正常、內圈故障、外圈故障、滾動故障四種狀態。
[0050]
故障診斷模塊的流程為:
[0051]
(1)首先選取數據集中每種軸承狀態的一部分數據加入舊類別代表性樣本集,并使用舊類別樣本對故障診斷模型進行初始化;
[0052]
(2)將傳感器監測到的工業物聯網設備運行數據輸入故障診斷模型,進行故障診斷,給出診斷結果;
[0053]
(3)隨時間推移,因為設備老化、工作負載變化或者噪聲干擾等原因,導致設備監測數據發生概念漂移,需要對故障診斷模型進行增量更新,保證故障診斷模型能夠適應數據變化;
[0054]
(4)更新完成的故障診斷模型繼續用于故障診斷,直到下次更新。
[0055]
概念漂移檢測模塊對不斷輸入的工業物聯網設備運行數據進行檢測是否發生概念漂移,以觸發增量更新過程。概念漂移檢測模塊的流程如下:
[0056]
(1)構建時間窗口,使用當前時間窗口與歷史時間窗口劃分數據,將數據輸入算法中;
[0057]
(2)使用歷史時間窗口中的歷史數據初始化在線極限學習機模型,并使用當前時間窗口中的當前數據更新os-elm;
[0058]
(3)通過計算歷史與當前數據訓練得到的模型隱藏層參數之間歐幾里得距離,并對比檢測閾值來檢測數據中是否發生概念漂移;
[0059]
(4)如果檢測到出現概念漂移,則啟動故障診斷模型的增量更新過程。
[0060]
增量更新模塊收到出現概念漂移的信號之后,開始對故障診斷模塊進行增量更新,具體步驟為:
[0061]
(1)保存n個時間窗口的新輸入數據sn用于增量更新,判斷新樣本是否滿足更新條件;更新條件為樣本的數量是否達到可以更新的數量num、每個類別的數據數量是否相等或者相近,n和num均為預設參數;
[0062]
(2)如果滿足以上更新條件,將舊類別代表性樣本數據集d
re
中每個舊類別的有標簽樣本與流數據中新達到的樣本一同輸入基于遺忘約束的增量學習算法中進行增量更新故障診斷模型;
[0063]
(3)如果不滿足更新條件,則進入等待階段,等待n
extend
個時間窗口以等待滿足更新條件。如果一直等待到n
extend
個時間窗口結束,還是不滿足更新條件,則直接進入更新,n
extend
為預設參數;
[0064]
(4)在增量更新完故障診斷模塊與舊類別代表性樣本數據集d
re
之后,增量更新模
塊進入等待階段,等待下一輪的增量更新。
[0065]
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。