何金凝,徐廷喜,黃巍,晉欣橋,杜志敏
(上海交通大學機械與動力工程學院,上海 200240)
近年來我國經濟高速發展,能源的需求不斷增加。從行業構成來看,建筑能耗約占總能耗的20%[1],其中暖通空調系統相比其他建筑設備消耗的能源最多,占建筑能耗的40%[2]。隨著越來越多的云計算數據中心投入運營[3-4],空調系統的可靠性對保障服務器等設備的正常運行具有重要意義,因此數據中心暖通空調系統的故障檢測與診斷(Fault Detection and Diagnosis,FDD)變得尤為重要[5-8]。實驗研究和調查表明,通過成功開展故障檢測與診斷可以減少10%~40%的空調系統能耗[9]。
由于設備磨損、設計不合理或維護不夠等因素,空調系統會出現各種各樣的故障[10]。按照嚴重程度可分為硬故障和軟故障[11-12],軟故障又稱漸進性故障,這類故障發展較慢難以被檢測出來。制冷劑泄漏作為最常見的軟故障,得到廣泛的關注和研究[13-14]。ZHU等[15]建立了基于灰箱模型-梯度提升樹(Gradient Boosted Decision Trees,GBDT)的融合模型,用以計算數據中心空調系統的制冷劑充注量。王譽舟等[16]采用加權k近鄰算法,提出一種多聯機空調系統的制冷劑充注量故障診斷策略,適用于多工況和多故障等級的情況。徐廷喜等[17]針對變頻空調系統的制冷劑泄漏故障,提出基于支持向量數據描述(Support Vector Data Description,SVDD)算法的檢測與診斷方法,準確率較高。
目前針對空調系統的在線FDD研究較少。丁新磊等[18]提出了一種優化誤差反傳神經網絡的故障診斷策略,如果模型的最大輸出大于設定的閾值,則將其判定為未知類型的故障,從而實現新故障的檢測。劉倩等[19]提出一種結合最大相關最小冗余和隨機森林(Random Forest,RF)算法的在線故障診斷策略,在多個在線驗證集上均取得了較高的準確率。武浩等[20]針對概念漂移現象設計了一種冷水機組的故障診斷自適應模型,并將支持向量機增量學習應用于制冷劑過量故障的再學習。
上述方法雖然可以滿足暖通空調系統故障診斷的實際需求,但FDD模型應具有一定的自適應能力,使其不受工況、環境和時間等因素的影響。因此,本文提出一種基于XGBoost集成算法的數據中心空調系統故障診斷模型,并引入了“數據價值評定函數”這一標準,所構建的診斷模型具有跨工況和跨故障的故障診斷能力,且能夠自主的更新數據集和模型。
近年來,基于數據驅動成為故障診斷領域最熱門的方法,在機器學習中集成學習的精度更高,其可分為并聯式(Bagging)和串聯式(Boosting)兩種。本文構建了基于串聯式集成學習XGBoost的故障診斷模型,XGBoost算法在代價函數中加入了正則項并進行了二階泰勒展開,預測精度大幅提高,圖1所示為該算法的原理。

圖1 極端梯度提升算法原理
串聯式集成學習的模型是由多個基模型疊加而獲得,如式(1)所示:

XGBoost的目標函數,包括誤差損失函數和懲罰函數兩部分:

式中,yi為預測目標的實際值;l(yi, yi')為數據樣本xi的訓練誤差;Ω(fk)為第k個基模型的懲罰;n為訓練樣本總數;t為訓練的弱分類器數目;T為葉節點數目;γ為樹節點懲罰系數;λ為正則懲罰系數;wj為葉子節點的值。
誤差損失函數按照泰勒公式展開至二階:

移除誤差函數中的常數項后,目標函數可化簡為式(4):

式中,Gj和Hj分別為葉節點權重一次項和二次項梯度之和。為了使模型的目標函數取值最小,對目標函數求導并令其等于零,求解得到式(5)和式(6)。此時,該目標函數可作為樹的節點打分函數:

聚類算法有很多種,K均值聚類算法(K-Means Clustering Algorithm,K-Means)最為常用。該方法簡單快速,主要邏輯步驟為:1)選取k個點作為初始聚類中心;2)計算每個樣本點與各個聚類中心的距離,找到離該點最近的中心并對其進行歸類;3)遍歷完所有樣本后,每個樣本都被歸為一個聚類簇,重新計算每個簇的重心并將其定為新的聚類中心;4)反復迭代上述步驟,直至聚類中心變化的距離小于設定閾值,則收斂結束。
本文以室內溫度和室外溫度為自變量,利用K-Means算法對新數據進行聚類。
數據集的更新要考慮歷史數據和新數據之間的權衡關系。當出現了新故障的數據,顯然這種數據非常重要,在保證樣本數量均衡的前提下應盡量保留;即使沒有出現新故障,新的數據也可能比歷史數據更有意義。本文所提出的數據價值評定函數,是從現有模型對數據的診斷概率和數據平衡度兩個方面來考慮的。
如果歷史模型對新數據的診斷錯誤,或雖診斷正確但模型輸出的結果概率較低,則需要將該條新數據保留。樣本保留的權值由式(7)計算求得,采用指數運算避免數值下溢,并對新數據集中所有新樣本的權重進行歸一化處理。

式中,p(xi)為模型對第i個樣本預測正確的概率。
在此基礎上,使用K-Means聚類算法對新數據進行聚類;在每個類別中,按照上述的數據保留率來篩選等量的數據。
因此,本文所提出的數據價值評定函數可以用式(10)來表達。利用數據價值評定函數,可以確定出新數據集中價值度較高的數據,并將這部分數據作為數據子集用于數據集的更新。

本文的實驗對象是數據中心風冷型變頻空調系統,是由制冷系統“四大件”蒸發器、壓縮機、冷凝器和膨脹閥以及連接管路等部分組成,圖2所示為該系統的原理。系統的額定制冷量為25 kW,制冷劑為R410A。

圖2 數據中心空調系統原理
實驗在焓差實驗室中進行,均在空調系統的制冷模式下,名義工況為室內溫度37 ℃、室外溫度35 ℃。根據室內外干球溫度的不同,實驗分為10種工況,具體見表1。其中無故障實驗涵蓋了全部工況;制冷劑泄漏實驗包括5個故障等級,分別為10%、15%、20%、30%和40%,每個泄漏等級涵蓋了2~4種工況;由于膨脹閥故障的實驗成本較高,因此僅模擬了一種工況。

表1 實驗的工況分布
其中,將高溫工況(室內37 ℃,室外35 ℃)和低溫工況(室內30 ℃,室外20 ℃)、制冷劑泄漏15%、膨脹閥故障作為新的數據,分別用以驗證模型是否具有跨工況、跨故障等級和跨故障類別的故障檢測與診斷能力,這些將在第4節進行介紹。
圖3所示為基于XGBoost的故障診斷自適應模型的流程,主要由兩個部分組成,分別為故障診斷模型的建立與自適應更新。

圖3 具有自適應特性的故障診斷流程
在獲取實驗數據后,需要對數據進行預處理,主要包含三項工作:清除異常值、穩態判別以及物性計算。在清除0、空值等異常值的基礎上,采用移動窗口統計法判定當前數據是否處于穩態,窗口長度設為100。計算新采集的數據數值與當前窗口內所有數據平均值的殘差,若殘差的絕對值大于閾值,則判定為非穩態數據。利用已采集到的變量參數,通過物性計算間接獲得制冷系統中的蒸發溫度、過熱度、冷凝溫度、過冷度、壓縮機進出口焓、制冷量、性能系數等其他物理參數。
為了提高FDD模型的診斷率,本文通過特征構造的方法構造了新的特征變量,以增強數據的表達能力。包括基于物理原理的構造,如上文提到的過冷度、蒸發溫度和制冷量等變量;基于經驗模型的構造,如擬合壓縮機的制冷劑流量、擬合膨脹閥開度等;基于統計方法的構造,如構造核函數等。
利用皮爾遜相關系數計算特征變量之間的協方差矩陣,如果兩個變量之間的相關系數的絕對值越趨近于1,則代表這兩個變量的線性相關性越強。表2所示為線性正相關系數最大的前10組特征變量。通過刪除部分相關性較強的特征變量,來防止特征冗雜并提高模型的計算速度,最終共保留了61個有效的特征變量,用于訓練XGBoost模型。
將70%的數據作為訓練集用于建立XGBoost診斷模型,剩下的30%作為測試集用于驗證模型的性能。XGBoost模型經10輪迭代完成收斂,訓練精度達97%。在測試集中,診斷結果的混淆矩陣如表3所示。由表3可知,模型總體的故障診斷精度較高。但在制冷劑泄漏故障的不同等級之間,尤其是泄漏程度較低時,存在誤診的情況,如實際為制冷劑泄漏10%的故障中有10組被模型誤報為20%,制冷劑泄漏20%的故障中有4組被誤報為10%。

表3 XGBoost模型在測試集的診斷結果混淆矩陣
文中首先分析新數據對歷史模型的影響,然后利用所提出的數據價值評定函數作為篩選新數據的評價標準,對數據集和模型進行更新,從而使FDD模型具有自適應的能力。
如前文所述,選取一些新的故障數據,來驗證模型是否具有跨工況和跨故障的檢測與診斷能力。
4.1.1 新工況數據對診斷模型的影響
分別將高溫工況(室內37 ℃、室外35 ℃)和低溫工況(室內30 ℃、室外20 ℃)作為新的工況,用以驗證歷史模型是否能夠對新工況的數據進行準確診斷。
以高溫工況為例,將3 375組新工況的數據樣本帶入歷史診斷模型,模型結果的混淆矩陣如表4所示。可知模型總的準確率僅為60.6%,模型并不能夠有效識別出低泄漏等級的故障,雖然能夠將高泄漏等級的數據檢測為制冷劑泄漏故障,但各個泄漏等級之間不具有區分性。歷史模型對低溫工況新數據的診斷性能要優于高溫工況,這是因為在訓練集中涵蓋了與之相臨近的工況。

表4 XGBoost模型在高溫工況測試集的診斷混淆矩陣
4.1.2 新故障程度數據對診斷模型的影響
將制冷劑泄漏15%作為新的故障程度,用以驗證歷史模型是否能夠對新故障程度的數據進行準確診斷。模型結果的混淆矩陣如表5所示,由于歷史模型并沒有泄漏15%這一輸出項,其將63.3%的數據診斷為制冷劑10%泄漏,26.6%的數據診斷為泄漏20%,共計90.0%。考慮到兩者的輸出概率均高出平均概率16.7%很多,在實際應用時可以借助人工將該類數據復判為介于兩個已知故障等級之間的新故障等級。因此新故障程度數據并不會顯著的影響模型性能。

表5 XGBoost模型在制冷劑泄漏15%測試集的診斷混淆矩陣
4.1.3 新故障類別數據對診斷模型的影響
把膨脹閥故障作為新的故障種類,用以驗證歷史模型(并不包含膨脹閥故障的歷史模型)是否能對新故障類別的數據進行準確診斷。模型結果的混淆矩陣如表6所示,由于歷史模型并沒有膨脹閥故障這一輸出項,模型將94.3%的數據漏報為無故障數據,這可能是因為膨脹閥故障的程度并不嚴重,與無故障工況參數較為接近。因此新故障類別數據對歷史模型的性能影響較大。

表6 XGBoost模型在膨脹閥新故障測試集的診斷混淆矩陣
由上文可知,歷史模型對跨工況和跨故障的數據診斷效果并不理想,因此應建立一種具有自適應能力的FDD模型,其能夠在實時數據中挑選出少量有價值的新數據,用于數據集和模型的更新。
4.2.1 自適應方法之數據集更新
如前文所述,為了篩選出新數據集中價值度較高的數據用于數據集的更新,本文提出了數據價值評定函數這一方法。現以新工況的數據集為例,闡述通過數據價值評定函數更新數據集的工作流程,并驗證該方法的有效性。
以高溫工況(室內37 ℃、室外35 ℃)的無故障數據作為新工況的數據集S1,數據集S2是包含了高溫工況和其他4種工況的無故障大數據集,兩個數據集的詳細描述如表7所示。

表7 S1和S2數據集的詳細信息
將新工況下無故障的S1數據集帶入歷史模型,414組數據樣本中僅有93組被成功診斷為無故障,模型的準確率為22.5%。剔除被成功診斷的數據后,利用K-Means聚類算法對剩下的數據樣本進行聚類,設類總數為2,迭代求解得到兩個聚類中心:室外35.07 ℃室內39.79 ℃和室外34.95 ℃室內37.60 ℃。然后計算新數據樣本的診斷概率作為樣本保留權值,從每類中分別選取5條數據價值度最高的數據樣本,作為新數據子集來更新數據集。
分別用未更新的歷史模型和更新后的模型對數據集S1和S2開展故障診斷,表8所示為診斷結果的混淆矩陣,可知更新后的模型對兩個數據集的診斷性能大幅提升,準確率均在99%左右。說明經數據價值評定函數所選取的新數據子集,僅利用10條新數據就能夠滿足數據集更新的自適應需求。

表8 歷史模型和更新模型對S1、S2的診斷混淆矩陣
4.2.2 數據價值評定函數的魯棒性分析
本文所提出的數據價值評定函數從兩個方面出發,一方面考慮模型對新數據的診斷概率,一方面考慮了聚類后的信息熵和數據平衡度。下面將建立4個模型,來驗證這兩個角度的重要性。
模型1是利用數據價值評定函數篩選10個數據來更新模型;模型2是在聚類后從每類中隨機選取5條數據更新模型,而不按照樣本保留權值排序選取;模型3是僅根據診斷概率選取最低的10條數據更新模型,而不進行聚類;模型4是在數據集中隨機選取10條數據來更新模型。
首先利用數據集S1,在4種方式下完成數據集和模型的更新,用更新后的4個模型分別對數據集S2開展故障診斷。結果見圖4和表9,對比可知模型1的診斷性能要明顯優于其它3種模型。即在篩選相同數量的少量新樣本子集時,本文所提出的數據價值評定函數方法是最為有效的。工況聚類有利于在數據分布分散時能夠均衡的篩選數據;數據的保留權值有利于找到歷史模型最為陌生的數據集,兩者相互結合能夠篩選出價值度較高的數據。

表9 4種更新模型對數據集S2的診斷混淆矩陣

圖4 4種更新模型在數據集S2上的F1分數和準確率
4.2.3 自適應方法之模型更新
得到了價值度更高的新數據集后,需要定期對FDD模型進行更新。模型更新同樣也包括兩種情況:1)利用新故障的數據來更新模型;2)利用新工況的數據來更新模型。本文FDD模型采用的是XGBoost算法,其由N個基模型串聯而成,每個基模型包含M個CART樹。
若新數據為新故障的數據,即引入了第n+1種故障,XGBoost模型僅需額外添加一支二分類器,并將該分類器的結果與歷史模型的診斷結果通過SoftMax激活函數進行歸一化,由此可以避免重新訓練整個模型,減少計算量和計算時間。若新數據為新工況的數據,將經數據價值評定函數篩選得到的新數據集與原類別相同的數據進行混合,更新歷史模型中對應該類別的子模型。
本文針對數據中心空調系統,建立了一套基于XGBoost算法的故障診斷自適應模型,首先利用數據價值評定函數對數據集進行更新,通過更新模型的相應局部分支對模型進行更新,使所提出的故障診斷模型具有自適應的能力,得出如下結論:
1)基于XGBoost算法所構造的故障診斷模型具有較高的精度,診斷正確率高達99.83%;但歷史模型對跨工況和跨故障新數據的診斷效果并不理想:對于新的高溫工況數據,歷史模型的診斷準確率僅為60.6%;若把膨脹閥故障作為新的故障種類數據,有94.3%的數據會被漏報為無故障;
2)為使FDD模型具有自適應能力,采用數據價值評定函數對數據集進行更新;考慮到歷史模型對數據的診斷概率以及數據的信息熵平衡度兩方面,僅篩選出少量最有價值的新數據,就能使新模型的診斷性能大幅提升;
3)為使FDD模型具有自適應能力,根據XGBoost集成算法的特點,僅更新模型的局部分支就能夠實現模型的迭代更新,避免重新訓練整個模型,提高了模型的更新速度;
4)構建的XGBoost故障診斷自適應模型能夠實現數據集的自主更新和模型的迭代更新,彌補了現有FDD方法中無法對跨工況和跨故障數據進行實時診斷的不足。