何金凝,徐廷喜,黃巍,晉欣橋,杜志敏
(上海交通大學機械與動力工程學院,上海 200240)
近年來我國經濟高速發(fā)展,能源的需求不斷增加。從行業(yè)構成來看,建筑能耗約占總能耗的20%[1],其中暖通空調系統(tǒng)相比其他建筑設備消耗的能源最多,占建筑能耗的40%[2]。隨著越來越多的云計算數(shù)據(jù)中心投入運營[3-4],空調系統(tǒng)的可靠性對保障服務器等設備的正常運行具有重要意義,因此數(shù)據(jù)中心暖通空調系統(tǒng)的故障檢測與診斷(Fault Detection and Diagnosis,F(xiàn)DD)變得尤為重要[5-8]。實驗研究和調查表明,通過成功開展故障檢測與診斷可以減少10%~40%的空調系統(tǒng)能耗[9]。
由于設備磨損、設計不合理或維護不夠等因素,空調系統(tǒng)會出現(xiàn)各種各樣的故障[10]。按照嚴重程度可分為硬故障和軟故障[11-12],軟故障又稱漸進性故障,這類故障發(fā)展較慢難以被檢測出來。制冷劑泄漏作為最常見的軟故障,得到廣泛的關注和研究[13-14]。ZHU等[15]建立了基于灰箱模型-梯度提升樹(Gradient Boosted Decision Trees,GBDT)的融合模型,用以計算數(shù)據(jù)中心空調系統(tǒng)的制冷劑充注量。王譽舟等[16]采用加權k近鄰算法,提出一種多聯(lián)機空調系統(tǒng)的制冷劑充注量故障診斷策略,適用于多工況和多故障等級的情況。徐廷喜等[17]針對變頻空調系統(tǒng)的制冷劑泄漏故障,提出基于支持向量數(shù)據(jù)描述(Support Vector Data Description,SVDD)算法的檢測與診斷方法,準確率較高。
目前針對空調系統(tǒng)的在線FDD研究較少。丁新磊等[18]提出了一種優(yōu)化誤差反傳神經網絡的故障診斷策略,如果模型的最大輸出大于設定的閾值,則將其判定為未知類型的故障,從而實現(xiàn)新故障的檢測。劉倩等[19]提出一種結合最大相關最小冗余和隨機森林(Random Forest,RF)算法的在線故障診斷策略,在多個在線驗證集上均取得了較高的準確率。武浩等[20]針對概念漂移現(xiàn)象設計了一種冷水機組的故障診斷自適應模型,并將支持向量機增量學習應用于制冷劑過量故障的再學習。
上述方法雖然可以滿足暖通空調系統(tǒng)故障診斷的實際需求,但FDD模型應具有一定的自適應能力,使其不受工況、環(huán)境和時間等因素的影響。因此,本文提出一種基于XGBoost集成算法的數(shù)據(jù)中心空調系統(tǒng)故障診斷模型,并引入了“數(shù)據(jù)價值評定函數(shù)”這一標準,所構建的診斷模型具有跨工況和跨故障的故障診斷能力,且能夠自主的更新數(shù)據(jù)集和模型。
近年來,基于數(shù)據(jù)驅動成為故障診斷領域最熱門的方法,在機器學習中集成學習的精度更高,其可分為并聯(lián)式(Bagging)和串聯(lián)式(Boosting)兩種。本文構建了基于串聯(lián)式集成學習XGBoost的故障診斷模型,XGBoost算法在代價函數(shù)中加入了正則項并進行了二階泰勒展開,預測精度大幅提高,圖1所示為該算法的原理。
圖1 極端梯度提升算法原理
串聯(lián)式集成學習的模型是由多個基模型疊加而獲得,如式(1)所示:
XGBoost的目標函數(shù),包括誤差損失函數(shù)和懲罰函數(shù)兩部分:
式中,yi為預測目標的實際值;l(yi, yi')為數(shù)據(jù)樣本xi的訓練誤差;Ω(fk)為第k個基模型的懲罰;n為訓練樣本總數(shù);t為訓練的弱分類器數(shù)目;T為葉節(jié)點數(shù)目;γ為樹節(jié)點懲罰系數(shù);λ為正則懲罰系數(shù);wj為葉子節(jié)點的值。
誤差損失函數(shù)按照泰勒公式展開至二階:
移除誤差函數(shù)中的常數(shù)項后,目標函數(shù)可化簡為式(4):
式中,Gj和Hj分別為葉節(jié)點權重一次項和二次項梯度之和。為了使模型的目標函數(shù)取值最小,對目標函數(shù)求導并令其等于零,求解得到式(5)和式(6)。此時,該目標函數(shù)可作為樹的節(jié)點打分函數(shù):
聚類算法有很多種,K均值聚類算法(K-Means Clustering Algorithm,K-Means)最為常用。該方法簡單快速,主要邏輯步驟為:1)選取k個點作為初始聚類中心;2)計算每個樣本點與各個聚類中心的距離,找到離該點最近的中心并對其進行歸類;3)遍歷完所有樣本后,每個樣本都被歸為一個聚類簇,重新計算每個簇的重心并將其定為新的聚類中心;4)反復迭代上述步驟,直至聚類中心變化的距離小于設定閾值,則收斂結束。
本文以室內溫度和室外溫度為自變量,利用K-Means算法對新數(shù)據(jù)進行聚類。
數(shù)據(jù)集的更新要考慮歷史數(shù)據(jù)和新數(shù)據(jù)之間的權衡關系。當出現(xiàn)了新故障的數(shù)據(jù),顯然這種數(shù)據(jù)非常重要,在保證樣本數(shù)量均衡的前提下應盡量保留;即使沒有出現(xiàn)新故障,新的數(shù)據(jù)也可能比歷史數(shù)據(jù)更有意義。本文所提出的數(shù)據(jù)價值評定函數(shù),是從現(xiàn)有模型對數(shù)據(jù)的診斷概率和數(shù)據(jù)平衡度兩個方面來考慮的。
如果歷史模型對新數(shù)據(jù)的診斷錯誤,或雖診斷正確但模型輸出的結果概率較低,則需要將該條新數(shù)據(jù)保留。樣本保留的權值由式(7)計算求得,采用指數(shù)運算避免數(shù)值下溢,并對新數(shù)據(jù)集中所有新樣本的權重進行歸一化處理。
式中,p(xi)為模型對第i個樣本預測正確的概率。
在此基礎上,使用K-Means聚類算法對新數(shù)據(jù)進行聚類;在每個類別中,按照上述的數(shù)據(jù)保留率來篩選等量的數(shù)據(jù)。
因此,本文所提出的數(shù)據(jù)價值評定函數(shù)可以用式(10)來表達。利用數(shù)據(jù)價值評定函數(shù),可以確定出新數(shù)據(jù)集中價值度較高的數(shù)據(jù),并將這部分數(shù)據(jù)作為數(shù)據(jù)子集用于數(shù)據(jù)集的更新。
本文的實驗對象是數(shù)據(jù)中心風冷型變頻空調系統(tǒng),是由制冷系統(tǒng)“四大件”蒸發(fā)器、壓縮機、冷凝器和膨脹閥以及連接管路等部分組成,圖2所示為該系統(tǒng)的原理。系統(tǒng)的額定制冷量為25 kW,制冷劑為R410A。
圖2 數(shù)據(jù)中心空調系統(tǒng)原理
實驗在焓差實驗室中進行,均在空調系統(tǒng)的制冷模式下,名義工況為室內溫度37 ℃、室外溫度35 ℃。根據(jù)室內外干球溫度的不同,實驗分為10種工況,具體見表1。其中無故障實驗涵蓋了全部工況;制冷劑泄漏實驗包括5個故障等級,分別為10%、15%、20%、30%和40%,每個泄漏等級涵蓋了2~4種工況;由于膨脹閥故障的實驗成本較高,因此僅模擬了一種工況。
表1 實驗的工況分布
其中,將高溫工況(室內37 ℃,室外35 ℃)和低溫工況(室內30 ℃,室外20 ℃)、制冷劑泄漏15%、膨脹閥故障作為新的數(shù)據(jù),分別用以驗證模型是否具有跨工況、跨故障等級和跨故障類別的故障檢測與診斷能力,這些將在第4節(jié)進行介紹。
圖3所示為基于XGBoost的故障診斷自適應模型的流程,主要由兩個部分組成,分別為故障診斷模型的建立與自適應更新。
圖3 具有自適應特性的故障診斷流程
在獲取實驗數(shù)據(jù)后,需要對數(shù)據(jù)進行預處理,主要包含三項工作:清除異常值、穩(wěn)態(tài)判別以及物性計算。在清除0、空值等異常值的基礎上,采用移動窗口統(tǒng)計法判定當前數(shù)據(jù)是否處于穩(wěn)態(tài),窗口長度設為100。計算新采集的數(shù)據(jù)數(shù)值與當前窗口內所有數(shù)據(jù)平均值的殘差,若殘差的絕對值大于閾值,則判定為非穩(wěn)態(tài)數(shù)據(jù)。利用已采集到的變量參數(shù),通過物性計算間接獲得制冷系統(tǒng)中的蒸發(fā)溫度、過熱度、冷凝溫度、過冷度、壓縮機進出口焓、制冷量、性能系數(shù)等其他物理參數(shù)。
為了提高FDD模型的診斷率,本文通過特征構造的方法構造了新的特征變量,以增強數(shù)據(jù)的表達能力。包括基于物理原理的構造,如上文提到的過冷度、蒸發(fā)溫度和制冷量等變量;基于經驗模型的構造,如擬合壓縮機的制冷劑流量、擬合膨脹閥開度等;基于統(tǒng)計方法的構造,如構造核函數(shù)等。
利用皮爾遜相關系數(shù)計算特征變量之間的協(xié)方差矩陣,如果兩個變量之間的相關系數(shù)的絕對值越趨近于1,則代表這兩個變量的線性相關性越強。表2所示為線性正相關系數(shù)最大的前10組特征變量。通過刪除部分相關性較強的特征變量,來防止特征冗雜并提高模型的計算速度,最終共保留了61個有效的特征變量,用于訓練XGBoost模型。
將70%的數(shù)據(jù)作為訓練集用于建立XGBoost診斷模型,剩下的30%作為測試集用于驗證模型的性能。XGBoost模型經10輪迭代完成收斂,訓練精度達97%。在測試集中,診斷結果的混淆矩陣如表3所示。由表3可知,模型總體的故障診斷精度較高。但在制冷劑泄漏故障的不同等級之間,尤其是泄漏程度較低時,存在誤診的情況,如實際為制冷劑泄漏10%的故障中有10組被模型誤報為20%,制冷劑泄漏20%的故障中有4組被誤報為10%。
表3 XGBoost模型在測試集的診斷結果混淆矩陣
文中首先分析新數(shù)據(jù)對歷史模型的影響,然后利用所提出的數(shù)據(jù)價值評定函數(shù)作為篩選新數(shù)據(jù)的評價標準,對數(shù)據(jù)集和模型進行更新,從而使FDD模型具有自適應的能力。
如前文所述,選取一些新的故障數(shù)據(jù),來驗證模型是否具有跨工況和跨故障的檢測與診斷能力。
4.1.1 新工況數(shù)據(jù)對診斷模型的影響
分別將高溫工況(室內37 ℃、室外35 ℃)和低溫工況(室內30 ℃、室外20 ℃)作為新的工況,用以驗證歷史模型是否能夠對新工況的數(shù)據(jù)進行準確診斷。
以高溫工況為例,將3 375組新工況的數(shù)據(jù)樣本帶入歷史診斷模型,模型結果的混淆矩陣如表4所示??芍P涂偟臏蚀_率僅為60.6%,模型并不能夠有效識別出低泄漏等級的故障,雖然能夠將高泄漏等級的數(shù)據(jù)檢測為制冷劑泄漏故障,但各個泄漏等級之間不具有區(qū)分性。歷史模型對低溫工況新數(shù)據(jù)的診斷性能要優(yōu)于高溫工況,這是因為在訓練集中涵蓋了與之相臨近的工況。
表4 XGBoost模型在高溫工況測試集的診斷混淆矩陣
4.1.2 新故障程度數(shù)據(jù)對診斷模型的影響
將制冷劑泄漏15%作為新的故障程度,用以驗證歷史模型是否能夠對新故障程度的數(shù)據(jù)進行準確診斷。模型結果的混淆矩陣如表5所示,由于歷史模型并沒有泄漏15%這一輸出項,其將63.3%的數(shù)據(jù)診斷為制冷劑10%泄漏,26.6%的數(shù)據(jù)診斷為泄漏20%,共計90.0%??紤]到兩者的輸出概率均高出平均概率16.7%很多,在實際應用時可以借助人工將該類數(shù)據(jù)復判為介于兩個已知故障等級之間的新故障等級。因此新故障程度數(shù)據(jù)并不會顯著的影響模型性能。
表5 XGBoost模型在制冷劑泄漏15%測試集的診斷混淆矩陣
4.1.3 新故障類別數(shù)據(jù)對診斷模型的影響
把膨脹閥故障作為新的故障種類,用以驗證歷史模型(并不包含膨脹閥故障的歷史模型)是否能對新故障類別的數(shù)據(jù)進行準確診斷。模型結果的混淆矩陣如表6所示,由于歷史模型并沒有膨脹閥故障這一輸出項,模型將94.3%的數(shù)據(jù)漏報為無故障數(shù)據(jù),這可能是因為膨脹閥故障的程度并不嚴重,與無故障工況參數(shù)較為接近。因此新故障類別數(shù)據(jù)對歷史模型的性能影響較大。
表6 XGBoost模型在膨脹閥新故障測試集的診斷混淆矩陣
由上文可知,歷史模型對跨工況和跨故障的數(shù)據(jù)診斷效果并不理想,因此應建立一種具有自適應能力的FDD模型,其能夠在實時數(shù)據(jù)中挑選出少量有價值的新數(shù)據(jù),用于數(shù)據(jù)集和模型的更新。
4.2.1 自適應方法之數(shù)據(jù)集更新
如前文所述,為了篩選出新數(shù)據(jù)集中價值度較高的數(shù)據(jù)用于數(shù)據(jù)集的更新,本文提出了數(shù)據(jù)價值評定函數(shù)這一方法?,F(xiàn)以新工況的數(shù)據(jù)集為例,闡述通過數(shù)據(jù)價值評定函數(shù)更新數(shù)據(jù)集的工作流程,并驗證該方法的有效性。
以高溫工況(室內37 ℃、室外35 ℃)的無故障數(shù)據(jù)作為新工況的數(shù)據(jù)集S1,數(shù)據(jù)集S2是包含了高溫工況和其他4種工況的無故障大數(shù)據(jù)集,兩個數(shù)據(jù)集的詳細描述如表7所示。
表7 S1和S2數(shù)據(jù)集的詳細信息
將新工況下無故障的S1數(shù)據(jù)集帶入歷史模型,414組數(shù)據(jù)樣本中僅有93組被成功診斷為無故障,模型的準確率為22.5%。剔除被成功診斷的數(shù)據(jù)后,利用K-Means聚類算法對剩下的數(shù)據(jù)樣本進行聚類,設類總數(shù)為2,迭代求解得到兩個聚類中心:室外35.07 ℃室內39.79 ℃和室外34.95 ℃室內37.60 ℃。然后計算新數(shù)據(jù)樣本的診斷概率作為樣本保留權值,從每類中分別選取5條數(shù)據(jù)價值度最高的數(shù)據(jù)樣本,作為新數(shù)據(jù)子集來更新數(shù)據(jù)集。
分別用未更新的歷史模型和更新后的模型對數(shù)據(jù)集S1和S2開展故障診斷,表8所示為診斷結果的混淆矩陣,可知更新后的模型對兩個數(shù)據(jù)集的診斷性能大幅提升,準確率均在99%左右。說明經數(shù)據(jù)價值評定函數(shù)所選取的新數(shù)據(jù)子集,僅利用10條新數(shù)據(jù)就能夠滿足數(shù)據(jù)集更新的自適應需求。
表8 歷史模型和更新模型對S1、S2的診斷混淆矩陣
4.2.2 數(shù)據(jù)價值評定函數(shù)的魯棒性分析
本文所提出的數(shù)據(jù)價值評定函數(shù)從兩個方面出發(fā),一方面考慮模型對新數(shù)據(jù)的診斷概率,一方面考慮了聚類后的信息熵和數(shù)據(jù)平衡度。下面將建立4個模型,來驗證這兩個角度的重要性。
模型1是利用數(shù)據(jù)價值評定函數(shù)篩選10個數(shù)據(jù)來更新模型;模型2是在聚類后從每類中隨機選取5條數(shù)據(jù)更新模型,而不按照樣本保留權值排序選??;模型3是僅根據(jù)診斷概率選取最低的10條數(shù)據(jù)更新模型,而不進行聚類;模型4是在數(shù)據(jù)集中隨機選取10條數(shù)據(jù)來更新模型。
首先利用數(shù)據(jù)集S1,在4種方式下完成數(shù)據(jù)集和模型的更新,用更新后的4個模型分別對數(shù)據(jù)集S2開展故障診斷。結果見圖4和表9,對比可知模型1的診斷性能要明顯優(yōu)于其它3種模型。即在篩選相同數(shù)量的少量新樣本子集時,本文所提出的數(shù)據(jù)價值評定函數(shù)方法是最為有效的。工況聚類有利于在數(shù)據(jù)分布分散時能夠均衡的篩選數(shù)據(jù);數(shù)據(jù)的保留權值有利于找到歷史模型最為陌生的數(shù)據(jù)集,兩者相互結合能夠篩選出價值度較高的數(shù)據(jù)。
表9 4種更新模型對數(shù)據(jù)集S2的診斷混淆矩陣
圖4 4種更新模型在數(shù)據(jù)集S2上的F1分數(shù)和準確率
4.2.3 自適應方法之模型更新
得到了價值度更高的新數(shù)據(jù)集后,需要定期對FDD模型進行更新。模型更新同樣也包括兩種情況:1)利用新故障的數(shù)據(jù)來更新模型;2)利用新工況的數(shù)據(jù)來更新模型。本文FDD模型采用的是XGBoost算法,其由N個基模型串聯(lián)而成,每個基模型包含M個CART樹。
若新數(shù)據(jù)為新故障的數(shù)據(jù),即引入了第n+1種故障,XGBoost模型僅需額外添加一支二分類器,并將該分類器的結果與歷史模型的診斷結果通過SoftMax激活函數(shù)進行歸一化,由此可以避免重新訓練整個模型,減少計算量和計算時間。若新數(shù)據(jù)為新工況的數(shù)據(jù),將經數(shù)據(jù)價值評定函數(shù)篩選得到的新數(shù)據(jù)集與原類別相同的數(shù)據(jù)進行混合,更新歷史模型中對應該類別的子模型。
本文針對數(shù)據(jù)中心空調系統(tǒng),建立了一套基于XGBoost算法的故障診斷自適應模型,首先利用數(shù)據(jù)價值評定函數(shù)對數(shù)據(jù)集進行更新,通過更新模型的相應局部分支對模型進行更新,使所提出的故障診斷模型具有自適應的能力,得出如下結論:
1)基于XGBoost算法所構造的故障診斷模型具有較高的精度,診斷正確率高達99.83%;但歷史模型對跨工況和跨故障新數(shù)據(jù)的診斷效果并不理想:對于新的高溫工況數(shù)據(jù),歷史模型的診斷準確率僅為60.6%;若把膨脹閥故障作為新的故障種類數(shù)據(jù),有94.3%的數(shù)據(jù)會被漏報為無故障;
2)為使FDD模型具有自適應能力,采用數(shù)據(jù)價值評定函數(shù)對數(shù)據(jù)集進行更新;考慮到歷史模型對數(shù)據(jù)的診斷概率以及數(shù)據(jù)的信息熵平衡度兩方面,僅篩選出少量最有價值的新數(shù)據(jù),就能使新模型的診斷性能大幅提升;
3)為使FDD模型具有自適應能力,根據(jù)XGBoost集成算法的特點,僅更新模型的局部分支就能夠實現(xiàn)模型的迭代更新,避免重新訓練整個模型,提高了模型的更新速度;
4)構建的XGBoost故障診斷自適應模型能夠實現(xiàn)數(shù)據(jù)集的自主更新和模型的迭代更新,彌補了現(xiàn)有FDD方法中無法對跨工況和跨故障數(shù)據(jù)進行實時診斷的不足。