朱波,胡寬,李正飛,陳煥新
(華中科技大學(xué)能源與動力工程學(xué)院,湖北武漢 430074)
多聯(lián)機空調(diào)系統(tǒng)也稱作“一拖多”空調(diào)系統(tǒng),是指一臺室外機連接多臺室內(nèi)機,室外機風(fēng)冷換熱、室內(nèi)機直接蒸發(fā)換熱的一次制冷劑空調(diào)系統(tǒng)。多聯(lián)機系統(tǒng)多用于中小型建筑和部分公共建筑,具有節(jié)約能源、控制先進和運行可靠等特點。機組適應(yīng)性好、制冷制熱溫度范圍寬、設(shè)計自由度高、安裝和計費方便[1]。工作原理是通過控制制冷劑流量和壓縮機的制冷劑充注量來實現(xiàn)制冷與節(jié)能。制冷劑充注量是多聯(lián)機系統(tǒng)運行過程中重要的參數(shù),一旦出現(xiàn)充注量故障,會導(dǎo)致一系列安全問題和經(jīng)濟損失。因此對制冷劑充注量故障的檢測十分必要。目前,制冷系統(tǒng)故障診斷方法有3 種:經(jīng)驗知識、模型分析和數(shù)據(jù)分析。數(shù)據(jù)分析方法不需要先驗知識,僅通過分析發(fā)現(xiàn)大量數(shù)據(jù)之間的聯(lián)系,因此在多聯(lián)機復(fù)雜系統(tǒng)故障檢測中有較好的應(yīng)用前景[2-4]。
特征選擇是機器學(xué)習(xí)過程中重要的數(shù)據(jù)預(yù)處理過程,對現(xiàn)實任務(wù)的解決有兩點重要意義。一是避免維度災(zāi)難。維度災(zāi)難是由特征屬性過多引發(fā)的,若能從過多的屬性中挑選重要的屬性即可大大減輕計算量,從而避免維度災(zāi)難。二是去除冗余特征以降低學(xué)習(xí)難度,可以把握重點[5-6]。李正飛等[7]結(jié)合ReliefF 和mRMR 特征選擇算法獲得特征后建立反向傳播算法模型進行故障診斷,結(jié)果表明:該方法可以提高多聯(lián)機制冷劑充注量故障診斷的精度與效率。陳逸杰等[8]對比了Boruta 算法和改進的Boruta 算法,結(jié)果表明改進的Boruta 算法不僅降低了樣本復(fù)雜度,而且提高了模型的預(yù)測性能。劉藝等[9]闡述了現(xiàn)有特征選擇穩(wěn)定性提升方法,分析比較了各類方法的特點和適用范圍,總結(jié)了特征選擇穩(wěn)定性中的相關(guān)評估工作,并通過實驗剖析穩(wěn)定性度量指標的性能,對比了4 種集成方法的效用。石拓等[10]提出了SEFV_Bagging 算法,結(jié)果表明其具有良好的泛化性能與穩(wěn)定性,在測試數(shù)據(jù)上表現(xiàn)出的預(yù)測精度理想。崔鴻雁等[11]總結(jié)了5 種特征選擇方法,通過對比各個方法的原理、實現(xiàn)過程和應(yīng)用場景,得出不同算法適用的范圍和優(yōu)缺點。徐廷喜等[12]提出一種基于支持向量數(shù)據(jù)描述的算法來檢測變頻空調(diào)系統(tǒng)制冷劑故障,利用主成分分析法進行降維,大幅提升診斷準確率。吳斌等[13]提出一種基于隨機森林的屋頂空調(diào)故障診斷策略,結(jié)果表明該方法對于膨脹閥類型相同,但制冷劑、壓縮機與系統(tǒng)冷量不同的屋頂機空調(diào)系統(tǒng)診斷效果良好。
以上研究對故障診斷的效率均有較大提升但他們的研究方法局限于單一特征選擇法,單一特征選擇容易得到局部最優(yōu)解且抗干擾能力差、穩(wěn)定性差。穩(wěn)定性差的特征是不利于發(fā)現(xiàn)特征之間的相關(guān)性的[14]。為了解決這些問題,本文將集成策略與Xgboost 算法相結(jié)合,使用交叉驗證和網(wǎng)格搜索尋找最優(yōu)參數(shù),提出了改進Xgboost 算法,將單一特征選擇得到的變量重要性排序后集成,得到集成特征排序,以提高特征穩(wěn)定性和預(yù)測準確率。
本論文使用的數(shù)據(jù)是通過多聯(lián)機制冷劑充注量實驗獲取的,多聯(lián)機系統(tǒng)由一臺室內(nèi)機和五臺室外機組成,室內(nèi)機主要由風(fēng)機和換熱器組成,室外機主要由氣液分離器、渦輪式壓縮機和過冷器組成,室內(nèi)機和室外機同時配備了多種傳感器來采集相關(guān)數(shù)據(jù)。實驗中的室外換熱器采用的是U 型翅片換熱器,有效加快了與外界的換熱,同時室外機組還配備有相關(guān)安全設(shè)施來保證實驗的安全進行。實驗選擇R410A 作為制冷劑,制冷劑額定充注量為9.9 kg,室內(nèi)機和室外機的額定功率分別為28.0 kW和7.1 kW。多聯(lián)機系統(tǒng)傳感器用于測量溫度、壓力等數(shù)據(jù),制冷劑充注量水平由膨脹閥來調(diào)節(jié)。多聯(lián)機系統(tǒng)原理如圖1所示。
圖1 多聯(lián)機系統(tǒng)原理
實驗共測試了10 種制冷劑充注量水平下機組的運行參數(shù),充注量水平設(shè)定在63%~140%,制冷劑充注量水平劃分為不足、適量和過量3 種情況,實驗每隔15 s 記錄一次數(shù)據(jù),充注量與充注程度的對應(yīng)關(guān)系和類別情況如表1所示。實驗系統(tǒng)在室內(nèi)溫度下進行,運行工況數(shù)據(jù)如表2所示。
表1 制冷劑充注量與類別
表2 系統(tǒng)運行工況
XgBoost 算法是陳天奇[15]開發(fā)的一個機器學(xué)習(xí)項目,它可以高效地實現(xiàn)GBDT 算法,在進行了算法和工程上的多次改進后,被廣泛應(yīng)用于各種機器學(xué)習(xí)競賽中并取得了不錯的成績。Xgboost算法的核心思想是不斷地進行特征分裂來生長一棵樹,每生長一棵樹,就會得到一個新函數(shù)來擬合上次預(yù)測的殘差。訓(xùn)練完成后,當我們要預(yù)測一個樣本時每個樣本會落到每棵樹中對應(yīng)的葉子節(jié)點,每個葉子節(jié)點對應(yīng)一個分數(shù),最后只需要將每棵樹對用的分數(shù)加起來就是該樣本的預(yù)測值[16-17]。
Xgboost 算法目標函數(shù)為:
用泰勒公式展開得目標函數(shù)為:
式中,l 為損失函數(shù);Ω(ft)為正則項;c 為常數(shù)項。
Xgboost 算法參數(shù)較多,本文主要設(shè)置了max_depth、n_estimators 和learning_rate 三個參數(shù)。其中max_depth 控制樹的深度,深度越大越容易過擬合,n_estimators 控制弱學(xué)習(xí)器的數(shù)量,learning_rate 為學(xué)習(xí)率。
貪心搜索是基于貪心算法的集成搜索過程。貪心算法的基本思路是首先建立起數(shù)學(xué)模型來描述所要求解的問題,然后把待求解的問題拆分成若干個子問題,再對每個子問題進行求解,獲得每個子問題的局部最優(yōu)解,最后把每個子問題的局部最優(yōu)解集成,得到原問題的解。貪心算法的使用有一定的限制,只能求解在約束范圍以內(nèi)的可行解,并不能保證最優(yōu),也就不能求解極值問題。貪心算法以迭代的方式連續(xù)做出貪心選擇,每次貪心選擇都將使所求解問題簡化為更小的子問題[18-19]。
本文采用貪心搜索集成策略,貪心搜索集成的基本思路是將基特征選擇器得到的特征序列構(gòu)成特征子集,將每個特征看作一個候選特征子集,然后對所有候選特征子集進行評價且保證每輪的選擇均為目前狀況下的最優(yōu)選擇。對特征子集以預(yù)測準確率作為評價標準,每輪搜索都選擇預(yù)測準確率最大的變量,據(jù)此對特征進行排序。
實驗所得的數(shù)據(jù)量十分龐大,如果直接將如此龐大的數(shù)據(jù)量帶入模型進行故障檢測,不僅預(yù)測精度低、計算量龐大而且可能導(dǎo)致計算機崩潰。因此,數(shù)據(jù)的預(yù)處理十分重要。數(shù)據(jù)預(yù)處理就是剔除異常值、死值、無關(guān)變量和邏輯變量,降低數(shù)據(jù)維度,獲得較好的特征變量,最后對特征變量進行歸一化處理[20]。數(shù)據(jù)歸一化是將數(shù)據(jù)轉(zhuǎn)化為均值為0、方差為1的正態(tài)分布,這樣可以使不同數(shù)據(jù)處在同一數(shù)量級,消除量綱對模型的影響,保證了預(yù)測的穩(wěn)定性,可表示為:
式中,E(xi)為變量xi的數(shù)學(xué)期望,var(xi)為方差。
數(shù)據(jù)預(yù)處理分為兩個步驟:1)數(shù)據(jù)清洗;2)選取特征變量。數(shù)據(jù)清洗時,時間記錄和異常值要首先剔除,然后去除與目標變量相關(guān)性強的特征變量,降低數(shù)據(jù)冗余。特征變量的選取主要基于專家先驗知識,最終選定18個變量作為最終的特征變量輸入到故障診斷模型,變量名及編號如表3所示。
表3 變量名及編號
在運行Xgboost 算法前,需要輸入數(shù)據(jù)矩陣,標簽向量和迭代次數(shù)等參數(shù)。本文使用十折交叉驗證和網(wǎng)格搜索來尋找最優(yōu)參數(shù)。十折交叉驗證是將數(shù)據(jù)集平均分為10 份,每次拿出1 份作為測試集,其余作為訓(xùn)練集,直到十個子集均作為測試集使用過,最后將10 個模型參數(shù)取平均值,作為最終指標。網(wǎng)格搜索是一種窮舉調(diào)參方法,即在所有候選的參數(shù)中循環(huán)遍歷,實驗每一種可能,將效果最好的參數(shù)作為最終結(jié)果[21-22]。
首先從原始數(shù)據(jù)集中抽取30,000 個數(shù)據(jù)作為樣本子集,樣本子集保留了原始數(shù)據(jù)集的所有特征。通過抽樣可以大大減少運算時間,同時通過形成數(shù)據(jù)擾動,保證了特征子集的多樣性和穩(wěn)定性。抽樣后運行五次Xgboost 算法,得到5 個特征子集,然后將所得特征子集按照特定集成策略集成,得到集成后的特征子集。
然后再取30,000個樣本進行驗證過程。在驗證過程樣本中取80%的數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測試集。將5種單一特征排序和集成特征排序按照排名依次帶入Adaboost和Xgboost預(yù)測模型中,最終獲得6種變量排序?qū)?yīng)的預(yù)測準確率。故障診斷準確率可以定義為:
式中,C1、C2、Cn分別代表n種故障預(yù)測正確的樣本數(shù);N為樣本總數(shù)。
數(shù)據(jù)處理與模型預(yù)測的過程如圖2所示。
圖2 模型訓(xùn)練流程
圖3所示為Xgboost模型和Adaboost模型準確率對比。由圖3可知,在兩種模型中改進的Xgboost算法獲得的準確率基本都高于所有單一特征選擇算法,最差時也和單一特征選擇中的最高準確率持平,充分說明該算法的優(yōu)越性,這也表明集成算法可以獲得更好的特征排序、更優(yōu)的診斷性能。集成算法的準確率隨變量個數(shù)的增加呈現(xiàn)出先增再減最后趨于穩(wěn)定的變化。準確率隨變量個數(shù)增加先增加,是因為變量數(shù)少時,模型預(yù)測能力低,變量較少時無法對制冷劑充注量進行準確預(yù)測。變量數(shù)達到15時,準確率達到峰值。當變量數(shù)大于15時,準確率開始略有下降,這是由于過多的變量造成特征的冗余程度變大,冗余變量降低了預(yù)測性能,同時增加了運算負荷。特征選擇的目的在于選擇合適數(shù)量的變量構(gòu)成特征子集,在獲得較高準確率的同時降低運算量,因此,本論文選擇貪心搜索集成得到的前7個變量構(gòu)成最優(yōu)特征子集,按照排序依次為壓縮機排氣溫度、過冷器液出溫度、壓縮機模塊溫度、冷凝溫度、氣分進管溫度、EXV、室外環(huán)境溫度。這樣選擇既可以保證準確率,也可以保證較少的特征變量,盡可能減少計算復(fù)雜度。
圖3 Xgboost模型和Adaboost模型準確率對比
為了驗證改進Xgboost算法的泛化性能,再次從原始數(shù)據(jù)中抽取40,000組數(shù)據(jù),代入兩種模型中進行驗證,結(jié)果如圖4所示,Xgboost模型部分準確率數(shù)值如表4所示。
圖4 Xgboost模型和Adaboost模型部分數(shù)據(jù)準確率對比
表4 Xgboost模型前七位特征準確率
圖4所示為所有18個特征的準確率。表4給出了在Xgboost模型中排在前7位的特征準確率,因為7位以后的準確率已經(jīng)十分接近,原因是隨著特征變量的個數(shù)增加,準確率逐步提高,當變量個數(shù)達到一定數(shù)量時,基本接近了最高的準確率。由圖4和表4可知,改進Xgboost算法的準確率依然整體上高于所有的單一算法,證明該模型泛化性能良好。
本文將集成思想運用到特征選擇上,將單一算法得到的特征順序集成,結(jié)合交叉驗證網(wǎng)格搜索等手段改進Xgboost算法,來提高模型預(yù)測的準確率,得出如下結(jié)論:
1)改進Xgboost算法的集成方法得到的特征子集能獲得比所有單一特征選擇方法更高的準確率,在Adaboost和Xgboost兩種模型上選擇特征數(shù)量較少時,準確率提升明顯,最優(yōu)時分別提升了15.28%和4.68%;
2)使用交叉驗證、網(wǎng)格搜索和貪心搜索策略可以有效改進Xgboost算法,提高其特征選擇穩(wěn)定性和預(yù)測準確率;
3)改進Xgboost算法具有良好的泛化性能,適用于更多其他復(fù)雜情況,具備一定的推廣能力。