System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及故障檢測領域,尤其涉及一種基于深度半非負矩陣分解的化工過程故障檢測方法。
技術介紹
1、故障檢測技術近年來在生產制造、過程控制等領域被廣泛研究,該技術可以輔助工作人員在系統出現嚴重問題之前識別系統中的故障,從而保障工業生產過程平穩運行。隨著大數據時代的到來,數據驅動方法已成為故障檢測技術的主流,在眾多數據驅動方法中,非負矩陣分解(nonnegative?matrix?factorization,以下簡稱nmf)因其良好的提取數據局部特征的能力和可解釋性得到廣泛應用。該模型通過將原始數據矩陣分解為基矩陣和系數矩陣的乘積來提取數據的局部特征,局部特征的純加性組合可以表示數據的整體結構,體現了模型的可解釋性。nmf除非負約束外不需要其它約束,可以更好地對非高斯性較強的化工過程進行建模。此外,由于非負約束的存在使得分解矩陣的稀疏性增加,可以有效抑制數據中噪聲和離群點的影響。但在某些工業場景中過程數據無法滿足非負條件(如溫度和壓力),此時nmf的使用受限。此外,nmf對分解矩陣施加的負約束過于嚴格,可能導致學習到的特征表示與實際情況不符,進而影響檢測性能。半非負矩陣分解(semi?nonnegativematrix?factorization,以下簡稱semi-nmf)是nmf的一種變體,其只對系數矩陣進行非負約束,可以有效地解決這一問題。
2、隨著化工過程日益復雜以及工業數據的快速積累,傳統的單層nmf模型提取的低維特征可能無法充分表示復雜化工過程中的高維數據,進而無法對復雜工業運行過程中的故障進行及時有效的檢
技術實現思路
1、針對現有技術的不足,本專利技術提出一種基于深度半非負矩陣分解的化工過程故障檢測方法。
2、具體技術方案如下:
3、一種基于深度半非負矩陣分解的化工過程故障檢測方法,包括:
4、s1:基于系統處于正常狀態下的歷史數據集,使用半非負矩陣分解算法和基于模塊度的社區發現算法將歷史數據集中的過程變量根據相關程度劃分為若干子塊;
5、s2:在每個子塊中通過分層級聯的方式構建深度semi-nmf故障檢測模型,該模型上一層輸出的系數矩陣和殘差矩陣拼接后作為下一層的輸入;使用交替方向乘子法對模型進行逐層訓練,得到訓練好的深度semi-nmf故障檢測模型;
6、s3:基于s2中每個子塊中每層模型提取出的系數向量矩陣,構造相應的監測變量,并估計監測變量在某特定顯著性水平δ下的置信限;
7、s4:獲取新的測試樣本或測試樣本數據集,根據s1~s3中的方法進行變量劃分,并得到測試樣本每一個子塊中每一層模型對應的監測變量;
8、s5:根據s3得到的置信限和s4得到的監測變量,使用貝葉斯推斷和加權策略,將各個規則定義的所有子塊的監測變量融合得到綜合概率監測指標;
9、s6:監測測試樣本的綜合概率監測指標,若綜合概率監測指標大于顯著性水平δ,則認為該樣本對應的時刻處于故障狀態,否則為正常狀態。
10、進一步地,所述s1的具體操作如下:
11、將歷史數據集進行標準化預處理,得到過程監測問題的訓練數據集x,對訓練數據集x執行半非負矩陣分解算法,得到基矩陣z,計算基矩陣z中所有基向量之間的皮爾遜系數,得到相關系數鄰接矩陣c;將相關系數鄰接矩陣c中變量間的相關系數視為連接節點的邊的權重,執行基于模塊度的社區發現算法,進行子塊劃分包括如下子步驟:
12、(1.1)初始化:將每個節點視為單獨的子塊;
13、(1.2)節點轉移:對于某一節點,將其劃分到鄰接節點所在子塊中,使得模塊度q的增加值最大;所述模塊度q用于評價子塊劃分的結果,模塊度q的值越大,表示劃分結果越理想;所述模塊度q的計算方式如下:
14、
15、式中,aij表示連接節點i和節點j的邊的權重,ki=∑jaij表示所有連接節點i的邊的權重之和,kj=∑iaij表示所有連接節點j的邊的權重之和;表示網絡中所有邊的權重之和;ci表示節點i所在的子塊標簽,cj表示節點j所在的子塊標簽,如果節點i和節點j屬于同一個子塊,則ε(ci,cj)=1,否則ε(ci,cj)=0;
16、(1.3)遍歷所有節點執行節點轉移操作,若遍歷所有節點后模塊度q未增加,則認為達到最優劃分,執行步驟(1.5);反之則認為還未達到最優劃分,繼續執行步驟(1.4);
17、(1.4)重新構圖:將所有同屬一個子塊的節點重構為一個新節點,重新構建圖;若重新構圖后的當前節點數小于等于預設子塊數,則停止算法,否則返回執行步驟(1.1);
18、(1.5)繼續劃分:判斷當前節點數是否達到預設子塊數,若當前節點數小于等于預設子塊數,則停止算法,否則繼續進行劃分,將每個節點劃分到鄰接節點所在子塊中,使得模塊度q的減小值最小;
19、(1.6)重新構圖:將所有同屬一個子塊的節點重構為一個新節點,重新構建圖,并將重構后的每個新節點視為單獨的子塊;若當前節點數小于等于預設子塊數,則停止算法,否則執行步驟(1.5);
20、算法執行結束后,根據每個子塊包含的節點序號對訓練數據集x進行劃分,即x=[x(1),x(2),…,x(b)],b為劃分子塊數。
21、進一步地,所述s2中,構建深度semi-nmf故障檢測模型的具體操作如下:
22、將子塊記為x0,則深度semi-nmf故障檢測模型的第一層表達式如下:
23、
24、其中,x0表示原始數據矩陣,z1表示第一層的基矩陣,h1表示第一層的系數矩陣,表示第一層的殘差矩陣;
25、將h1和進行拼接得到并將x1作為下一層的輸入,第二層表達式如下:
26、
27、式中,x1表示第二層輸入的數據矩陣,z2表示第二層的基矩陣,h2表示第二層的系數矩陣,表示第二層的殘差矩陣;
28、重復上述過程直到最后一層構建完成,最后一層表達式如下:
29、
30、式中,xl-1表示第l層輸入的數據矩陣,zl表示第l層的基矩陣,hl表示第l層的系數矩陣,表示第l層的殘差矩陣。
31、進一步地,所述s2中,使用交替方向乘子法對模型進行逐層訓練的具體操作如下:
32、將每一層的輸入記為xl-1,l=1,2,…,l,分解得到的基矩陣記為zl,系數矩陣記為hl;現引入輔助變量vl使得hl脫離非負約束,等價模型如下所示:
33、
34、式中,f表示frobenius范數,即矩陣中每項數的平方和的開方值;
35、相關的增廣拉格朗日函數表達式如下所示:
36、
37、式中,a是拉格朗日乘子,γ表示懲罰系數,<>代表矩陣相應元素的乘積之和;
38、本文檔來自技高網...
【技術保護點】
1.一種基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,包括:
2.根據權利要求1所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述S1的具體操作如下:
3.根據權利要求1所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述S2中,構建深度Semi-NMF故障檢測模型的具體操作如下:
4.根據權利要求3所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述S2中,使用交替方向乘子法對模型進行逐層訓練的具體操作如下:
5.根據權利要求4所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,對于基矩陣Zl,其更新規則描述如下:
6.根據權利要求4所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,對于系數矩陣Hl,將其更新過程轉化為無約束最小化問題,表達式如下:
7.根據權利要求4所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,對于輔助變量Vl,其更新過程如下所示:
8.根據權利要求1所述的基于深度半非負矩
9.根據權利要求1所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述S5中,貝葉斯推斷和加權策略的原理如下:
10.根據權利要求9所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,根據上述貝葉斯推斷和加權策略,將不同類型的監測變量進行融合,具體步驟如下:
...【技術特征摘要】
1.一種基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,包括:
2.根據權利要求1所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述s1的具體操作如下:
3.根據權利要求1所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述s2中,構建深度semi-nmf故障檢測模型的具體操作如下:
4.根據權利要求3所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,所述s2中,使用交替方向乘子法對模型進行逐層訓練的具體操作如下:
5.根據權利要求4所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,對于基矩陣zl,其更新規則描述如下:
6.根據權利要求4所述的基于深度半非負矩陣分解的化工過程故障檢測方法,其特征在于,對于系數矩陣hl,將其更新過程轉化為無約束最小化問題,表達式如下:
7.根據權利要求4所述的基于深度半非負矩陣分解...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。