左帥,徐璐璐,陶鑫,王培紅
(1.國家電投集團協鑫濱海發電有限公司,江蘇 鹽城 224500;2. 東南大學能源與環境學院,南京 210096)
基于數據驅動的設備狀態診斷方法是借助人工智能來構建基于設備大量歷史運行數據的狀態診斷方法。數據驅動[1]來源于計算機科學領域,指將某種算法應用于大量數據的分析處理來支持決策。與基于機理模型的方法不同,數據驅動型狀態診斷方法不需要建立設備精確的數學模型,只需對采樣數據進行處理[2]。人工智能算法包括模糊聚類、神經網絡、粒子群算法等[3-4],被廣泛應用到火電機組建模、預測及優化中。空預器是電廠重要的輔機設備,對電廠安全運行具有重要意義。林文輝等[5]對空預器差壓升高進行研究,并提出提高吹灰壓力降低空預器差壓的方案。戴松貴等[6]對空預器堵管與低溫腐蝕進行研究,分析了堵管原因,并給出減輕低溫腐蝕的措施。汪德友[7]通過對網絡參數的選擇、樣本的選取與處理以及網絡結構的選擇和設計,確定了針對回轉式空預器的人工神經網絡模型,對空預器漏風率進行預測。TERUEL等[8]引入神經網絡算法建立積灰監測模型,實時監測積灰情況。趙明和孫平[9]利用神經網絡建立空預器污染系數預測模型,反映空預器積灰的變化情況。此類方法直接利用電廠實時運行數據對空預器積灰情況進行分析。李慶等[10]針對國內某電站600 MW機組鍋爐的三分倉回轉式空預器進行仿真與建模,分析和驗證其故障模擬真實性,在此基礎上,又采用基于仿真平臺的神經網絡技術進行空預器故障診斷的研究。王興龍等[11]設計了空預器智能診斷管理系統,通過遠程數據網絡對現有PI實時數據庫中的數據進行挖掘提取,對空預器的相關數據進行采集、計算與分析,確定空預器的臟堵、漏風、能效等指標,從而確定空預器當前的運行狀態和發展趨勢,從而進一步實現在線智能診斷功能。另外,閔國政等[12]對回轉式空預器的智能分析及動態診斷系統進行研究,通過對空預器運行指標實時統計和動態分析給出了全方位的性能診斷評估,對空預器運行狀態進行預測及預警,并指導優化運行和故障處理。
但是現實故障診斷等領域的數據中存在許多不均衡數據,這類不均衡數據集的特點是同一數據集中歸屬于某一類別的數據對象的數量和密度與其他類別數據對象的數量和密度有較大差異。將數據樣本數量較多的類稱之為大類,數據樣本數量較少的類稱之為小類。通常聚類算法使用全局參數來計算每個數據點的密度,這使得在衡量存在密度差異的數據集時容易忽略小類,又或者習慣于將大類中的部分對象劃分到小類中,從而使獲得的類擁有相對均勻的尺度,這限制了基于數據樣本聚類特征的應用。
為了解決不均衡數據的聚類問題,學者們從不同角度提出了多種方法,大致可以分成以下三類:數據預處理、多中心點和優化目標函數。第一類方法是數據預處理,此類方法對數據集進行欠采樣和過采樣處理后再進行聚類;過采樣方法通過增加小類中對象數量來進行數據分析,使原有數據集達到均衡狀態。第二類方法是多中心點的方法,此類方法基于多中心的角度解決模糊聚類算法的“均勻效應”問題,其思想是用多個類中心代替單個類中心代表一個類,在某些情況下,借助該思想模糊聚類算法在迭代過程中根據距離“中心”最近的原則,能夠讓部分被錯分到小類中的數據對象校正回大類中,具有一定的有效性和可行性。第三類方法是優化目標函數的方法,此類方法從目標函數優化的角度提出新的算法,通過推導出相應的聚類優化目標函數,以解決“均勻效應”問題[13]。趙戰民等[14]提出的對類大小不敏感的圖像分割模糊C均值聚類方法(FCM_S),將類大小引入至含鄰域信息模糊聚類算法的目標函數中,使得類大小在目標函數中發揮作用,從而能均衡較大類和較小類對目標函數的貢獻,弱化算法對類大小不均衡的敏感度。
然而,目前還沒有一種既可以自動識別聚類中心個數又有效保留小類的聚類方法。因此,本文根據類間容量差異均衡化的思想對競爭聚類算法目標函數進行加權,提出一種新的聚類算法,稱為加權競爭聚類算法,簡稱為CA_S算法。該方法通過推導出新的隸屬度函數和聚類中心使得類間容量在聚類目標函數中發揮效用從而弱化了類間容量差異對聚類判決的干擾,有效保留了小類,同時通過競爭策略可自動確定最佳聚類個數,改善了CA算法[15]在類間競爭機制中容易淘汰小類的問題。同時,本文將改進后的算法應用于空預器的故障識別中,并與傳統的CA算法進行比較。
競爭聚類算法首先將一個數據集劃分為大量的小類。隨著算法的發展,相鄰的類爭奪數據點,一些失去競爭的類逐漸枯竭和消失,最后的分區具有“最優”類別數,應該注意的是,類別的數量c在每次迭代中都是動態更新的。CA算法使以下目標函數式(1)[15]最小化:
(1)
滿足以下約束條件:
(2)
式中:uij為第j個樣本點對于第i個類的隸屬度;U=[uij]是一個c×n維的矩陣,稱為隸屬度劃分矩陣;V表示由類心組成的矩陣;m為算法的模糊程度,本文取2;dij為第i個聚類中心與第j個樣本點間的歐式距離;α為平衡前后兩項的權重。
構造CA_S算法的目標函數如式(3)所示,可以看到,其目標函數由兩個分量組成:第一個分量J1類似于FCM_S的目標函數,它能夠控制類的形狀和大小,并獲得緊湊的類,當聚類中心個數c等于樣本數n時,即每個類只包含一個樣本點時,可以得到目標函數的全局最小值;第二個分量J2是類似于CA算法目標函數的第二個分量,它能夠控制聚類個數。當所有樣本點都在一個類中,而所有其他類都為空時,就可以實現目標函數的全局最小值。當這兩項結合并正確選擇α時,最終的分區將類內的距離之和最小化,同時將數據集劃分為盡可能小的聚類中心個數。
JCA_S(U,V)=J1-J2
(3)
(4)
(5)
滿足以下約束條件:
(6)
式中:各變量的含義與CA聚類算法相同,同樣將m取2代入式(4)從而用于下一步的推導。

目標函數最小值的選取是一個優化問題,在CA_S聚類算法中,采用的是拉格朗日乘子法交替迭代優化來達到目標函數最小值。具體推導如下:首先假設聚類中心V恒定,解決關于隸屬度矩陣U的約束極小化問題,通過構建拉格朗日函數:
(7)
(8)

(9)
式中:帶“-”的隸屬度表示上一次迭代的隸屬度;Ni表示為第i類的基數,為保留較大的類而淘汰虛假類的評價指標,表達式如式(10):
(10)
由此得到λj的表達式:
(11)

(12)


(13)
在CA_S算法中,選擇目標函數式(3)中的α是很重要的,因為它反映了第二項相對于第一項的重要性。如果α太小,則將忽略第二項,類別的數量也不會減少。如果α太大,第一項將被忽略,所有的點將被歸為一個類。α的選值如式(14)所示,使這兩項具有相同的數量級。
(14)
式中:η(k)=η0exp(-k/τ),k為迭代次數,η0是初始值常數,τ為迭代次數中間值。
加權競爭聚類算法可用偽代碼表示,如表1。

表1 加權競爭聚類算法
首先, 用不均衡Aggregation數據集來測試CA_S聚類算法識別小類的能力;隨后,在4個公共數據集上對CA_S聚類算法、FCM_S算法和CA聚類算法進行比較,其中,FCM_S算法由趙戰民等[14]提出,該算法能有效處理不均衡數據集,但無法有效識別聚類個數,需要根據經驗提前設置該參數;最后,將CA_S算法應用于熱工設備空預器的故障識別中,驗證CA_S算法的實用性。
將類大小引入至含鄰域信息模糊聚類算法的目標函數中,使得類大小在目標函數中發揮作用,從而能均衡較大類和較小類對目標函數的貢獻,弱化算法對類大小不均衡的敏感度。
首先,選取UCI標準數據集[11]Aggregation中的3個不均衡類,命名為Aggregation2。Aggregation2數據集分為3類,每類包含的樣本點數目不同,為2維341個樣本點。算法仿真輸入的數據集經過標準化處理,輸入參數設定為最大迭代次數kmax=30、最大聚類個數cmax=10、η0=1.3、τ=10、ε1=7。圖1~ 圖2為實驗結果。

圖1 Aggregation2:聚類個數和目標函數的進化

圖2 Aggregation2:CA_S聚類算法執行全過程
圖1描述了CA_S聚類算法在Aggregation2數據集迭代過程中聚類個數、目標函數值的變化。圖1(a)~(b)為隨著迭代的進行,聚類個數和目標函數值JCA_S的變化過程,可以看到,聚類個數由cmax=10逐漸減少到c=3(即最佳聚類個數),目標函數值JCA_S緩慢上升,最后隨著迭代的進行,最佳聚類個數不再變化,目標函數值趨于穩定。圖1(c)為該數據集使用CA_S聚類算法進行聚類迭代過程中目標函數值中的第一分量J1、第一分量J2以及JCA_S值的變化趨勢。
由于目標函數式(3)的第二分量J2在不斷減小,且減小的程度大于第一分量J1,因此CA_S聚類算法每次迭代記錄的JCA_S值是呈現由陡變緩的上升趨勢,隨著迭代的進行,第一分量逐漸減少,第二項趨向于0,兩者相減的值趨于穩定。
圖2(a)~(f) 是CA_S聚類算法在Aggregation2數據集中的實現過程。中心的位置顯示為疊加在數據集上的“+”符號。圖2(a)是原始數據集。圖2(b)顯示了聚類的初始參數,該數據集被分解成許多小類。圖2(c)表明,CA_S聚類算法在3次迭代后減少了2個類。圖2(d)表明,在第6次迭代后,再次減少了3個類。圖2(e)表明,在第11次迭代后,再減少2個類后,類心個數減少為3個。圖2(e)~(f)表明,在后續的迭代中,類心個數不再變化,并在3個類的基礎上調整了類心的位置。在達到設定的最大迭代次數后,算法就會終止。結果驗證了CA_S聚類算法可以在沒有先驗知識的情況下識別這3個類,其中包含2個小類。
本文選擇FCM_S和CA算法作為比較,采用的數據集總結如表2所示,其中前三個數據集來自UCI數據庫[16],選取的數據集都為不均衡數據集。第一個即3.1小節所采用的數據集,最后一個為本文構造的一個具有多密度的人工數據集,簡稱為DS3。為保證算法的有效執行,仿真輸入的數據集都經過標準化處理,且需要對各聚類算法進行輸入參數設置,CA_S聚類算法的參數與上述相同,FCM_S聚類算法需要提前設置聚類中心的個數。為了公平起見,以CA_S聚類算法獲得的聚類中心個數作為FCM_S聚類算法的前提。對于CA聚類算法,參數設置參考文獻[15]。

表2 本文采用數據集基本信息
本文采用ARI (Adjusted Rand Index)來衡量這些聚類算法的性能。表3為FCM_S、CA和CA_S算法分別運行30次后模擬的ARI值(平均±方差)。每一行中粗體和下劃線的值表示三種算法中聚類效果最優的數據,括號中的數字表示算法應用于此數據集時產生的聚類個數。

表3 FCM_S、CA和CA_S的ARI值對比
可以看出,根據ARI值,與CA算法相比,CA_S在大多數情況表現優于CA算法,在Aggregation2數據集中,CA算法雖然正常識別出了該數據集的聚類個數,但ARI值極低,說明最后的聚類結果不合理;在Thyroid和DS3數據集中,CA算法無法正確識別出數據集的聚類個數;僅在synthetic數據集上,CA算法表現優于CA_S算法;與FCM_S聚類算法相比,CA_S算法的表現與FCM_S算法接近或者略好,考慮到FCM_S算法不能自動獲得聚類個數,CA_S算法優于FCM_S算法。如上所述,CA_S算法在這幾種算法中的綜合表現最好。
將CA_S算法應用于熱工設備空預器中用于狀態識別,以某600 MW機組空預器作為研究對象,采用提出的CA_S算法對空預器有功功率、出口煙溫、入口二次風溫、進出口煙氣壓降、進出口煙氣含氧量差進行聚類分析,并與采用CA算法的聚類結果進行比較。我們選取了一段空預器運行過程中包含異常運行樣本的數據作為測試數據,數據共分為三類,其中一個小類為異常運行樣本,包含的樣本點遠遠小于其它兩類正常運行樣本。
CA算法仿真輸入參數設定初始迭代次數k=0、最大迭代次數kmax=30、最大聚類個數cmax=10、η0=5、τ=10、ε1=7,得到如圖3所示的聚類結果,用兩種不同的符號代表兩個類所包含的數據樣本點,兩個類記為ωi={ω1,ω2},可以看到CA算法無法識別出異常類。在空間劃分上,以出口煙溫-有功功率兩個變量間為例,如圖4所示,可以看出CA算法將異常類歸并到了正常類,以此均勻了兩個類包含的樣本點。

圖3 CA算法下的空預器聚類結果

圖4 CA算法下的空預器出口煙溫-有功功率空間劃分
CA_S算法仿真輸入參數設定為初始迭代次數k=0、最大迭代次數kmax=30、最大聚類個數cmax=10、η0=1.3、τ=10、ε1=7,得到如圖5所示的聚類結果,用三種不同的符號代表各個類所包含的數據樣本點,三個類記為ωi={ω1,ω2,ω3},可以看到CA_S正確識別異常類。圖6為 CA_S算法下的空預器各變量間的空間劃分,可以看出有功功率與出口煙溫、有功功率與進出口煙氣壓降、出口煙溫與進出口煙氣壓降兩兩變量的空間劃分較為清晰,可為后續空預器狀態劃分指標提供指導性意見。

圖5 CA_S算法下的空預器聚類結果

圖6 CA_S算法下的空預器各變量間的空間劃分
針對故障數據在海量歷史數據中占比往往較低、傳統聚類算法較難識別的問題,本文提出了一種新的聚類算法——加權競爭聚類算法(CA_S),該算法在公共數據集Aggregation上表現很好,成功地識別出了1個大類、2個小類。在與FCM_S算法、CA算法的比較中,CA_S算法也有更好的表現,綜合ARI指標最佳。在火電機組空預器的故障識別中,CA_S算法能夠很好地識別出歷史數據集中的故障類,而傳統的CA算法無法識別出故障類。