黃 亮,彭 清,謝長君,張銳明,王 瓊
(1.武漢理工大學(xué)自動化學(xué)院,湖北武漢430070;2.復(fù)變時空(武漢)數(shù)據(jù)科技有限公司,湖北武漢430070;3.廣東廣順新能源動力科技有限公司,廣東佛山528000)
質(zhì)子交換膜燃料電池以其環(huán)保零排放、能量轉(zhuǎn)化率高、啟動速度快等優(yōu)點,在新能源汽車和便攜式能源以及分布式發(fā)電等領(lǐng)域受到廣泛的關(guān)注。然而其穩(wěn)定性低,壽命短和高昂的制造成本限制了它的推廣應(yīng)用。燃料電池的安全性也是困擾其發(fā)展的重要因素,特別是電堆內(nèi)部的故障,其危險性也相對較高。最常見故障主要有電堆膜干和水淹兩種類型,這兩種故障如果處理不當(dāng)都會給電堆帶來不可逆的損害,嚴(yán)重的膜干故障會導(dǎo)致電堆過熱灼燒質(zhì)子交換膜甚至引發(fā)爆炸事故。
目前對于電堆故障診斷的方法主要有基于數(shù)據(jù)、實驗和模型三種。周蘇等[1]通過支持向量機和模糊C 均值對電堆電化學(xué)交流阻抗譜特征分類來實現(xiàn)電堆故障識別;宋滿存[2]提出通過陽極氣體壓降和理論計算壓降對比來判定電堆水淹故障;李躍華[3]提出了水淹過程陰極兩相流壓規(guī)律和穩(wěn)態(tài)壓降模型,詳細(xì)分析了水淹過程的四個階段;蔣璐[4]通過搭建電堆電化學(xué)交流阻抗仿真模型,驗證了SVM 對故障分類的有效性。由于電堆是密封體系,膜干和水淹故障就變得難以檢測和排除,燃料電池系統(tǒng)多耦合非線性的特點使模型建立往往非常困難,電化學(xué)交流阻抗譜需要外部儀器測量,便攜性不高,合理利用電堆電壓、電流以及相關(guān)傳感器信號間接來診斷電堆內(nèi)部故障是當(dāng)下最理想的方法。
燃料電池內(nèi)部的水遷移如圖1所示。水遷移主要包括三種方式:第一種是陽極的氫質(zhì)子以水為載體通過質(zhì)子交換膜到達(dá)陰極;第二種是水分子從濃度高的陰極一側(cè)向濃度低的陽極一側(cè)擴散;第三種是由于陰極和陽極壓力不同而導(dǎo)致水分子的遷移[5-8]。質(zhì)子交換膜的含水量是影響其性能的重要因素,含水量過高會堵塞氣體的流動,降低燃料電池性能;而膜含水量過低又會影響其搬運質(zhì)子的能力。電堆在發(fā)生水淹時,輸出電壓會出現(xiàn)大幅度下降并伴隨著劇烈的波動;發(fā)生膜干時,質(zhì)子交換膜的導(dǎo)電率會降低,相當(dāng)于膜內(nèi)阻增大,電堆輸出電壓下降[2]。所以,利用其電壓特點來實現(xiàn)故障診斷是可行的。
圖1 燃料電池內(nèi)部水流動示意圖
本文以1 kW 燃料電池電堆為對象,電堆由20 片單電池組成,將20 片單電池的電壓作為故障診斷的特征,實驗樣本一共有300 組,其中水淹故障、膜干故障和正常數(shù)據(jù)樣本各100 組。使用20 片單電池的電壓數(shù)據(jù)來訓(xùn)練支持向量機(SVM)分類模型會使模型的訓(xùn)練時間很長,而且實驗的數(shù)據(jù)中會存在一些由于采集誤差或是干擾而產(chǎn)生的異常單片電壓數(shù)據(jù),這些異常數(shù)據(jù)會影響SVM 模型的準(zhǔn)確度和泛化能力,因此本文將采用主成分分析算法(PCA)來實現(xiàn)原始數(shù)據(jù)的降維處理。
PCA(principal component analysis)是一種常見的數(shù)據(jù)降維算法,主要用于提取數(shù)據(jù)的主要特征分量。PCA 主要思想是將原始數(shù)據(jù)中多個相關(guān)的變量通過線性變換得到一組不相關(guān)的數(shù)據(jù),通過選取其中特征最顯著的幾個來代表原始數(shù)據(jù)的特征,最大程度保留數(shù)據(jù)的多樣性,也可以將一些成分占比較小的噪音干擾忽略掉,提高后續(xù)分類算法的準(zhǔn)確度。PCA 求解流程如圖2所示。
圖2 PCA 流程
在PCA 降維中,特征向量對應(yīng)的特征值大小表征著數(shù)據(jù)主成分方差,也就是該維度數(shù)據(jù)所占數(shù)據(jù)成分比重的大小,也就可以利用特征值的大小來選取適當(dāng)?shù)木S度。通過Matlab中的PCA 算法函數(shù)將300 組數(shù)據(jù)處理后得到20 維數(shù)據(jù)主成分占比如圖3所示。
圖3 PCA 降維成分占比
圖3 中,橫坐標(biāo)為特征,縱坐標(biāo)為特征成分占比,在20 維的單片電壓數(shù)據(jù)中,成分占比最大的前兩維數(shù)據(jù)的累計成分已經(jīng)超過95%,已經(jīng)足以表達(dá)原始數(shù)據(jù)樣本所包含的信息特征,因此取成分占比最大的前兩維數(shù)據(jù)作為SVM 訓(xùn)練模型的輸入,一方面可以降低訓(xùn)練模型的復(fù)雜度減少模型的訓(xùn)練時間,同時也可以濾除掉一些干擾成分。高維數(shù)據(jù)難以用二維平面圖展現(xiàn),而二維數(shù)據(jù)就可以很方便地實現(xiàn)可視化,也便于仿真結(jié)果的觀察和分析。由PCA 降維提取成分占比最大的兩維數(shù)據(jù)后得到的樣本如圖4所示,數(shù)據(jù)在特征1 上的區(qū)分度最大,不同類型數(shù)據(jù)之間仍然存在部分重疊難以區(qū)分的樣本點,但整體的區(qū)分度相對明顯。
圖4 PCA 降維后的樣本點
支持向量機是一種有監(jiān)督的分類學(xué)習(xí)算法,對與小樣本,非線性數(shù)據(jù)的分類有良好的效果。算法的核心問題是求解一個凸二次規(guī)劃的優(yōu)化問題,找到一個最優(yōu)超平面能保證將兩類樣本無錯誤分開的情況下,使兩類的分類距離最大。最優(yōu)超平面為:
式中:x為樣本數(shù)據(jù);w為法向量;b為截距。
分類面的最優(yōu)化問題最終就轉(zhuǎn)換成了式(2)的條件優(yōu)化問題:
式中:xi為第i個樣本,兩類樣本之間的距離為1/w;xi為松弛變量;c為懲罰因子;yi為類別標(biāo)記,{1,-1}。
支持向量機線性分類算法的決策函數(shù)為:
式中:αi≥0 為拉格朗日乘子。
針對燃料電池電壓數(shù)據(jù),PCA 降維后的數(shù)據(jù),水淹、膜干和正常三種類型的數(shù)據(jù)在二維平面內(nèi)仍然存在部分重合,使用線性分類算法很難完全區(qū)分開三種類型的數(shù)據(jù)。針對這種非線性問題,通常采用適當(dāng)?shù)暮撕瘮?shù),將輸入空間映射到高維特征空間,最終在高維特征空間中構(gòu)造出最優(yōu)分類超平面,從而把本身不好分的非線性數(shù)據(jù)分開。非線性支持向量機的分類決策函數(shù)可表示為:
式中:k(xi,x)為核函數(shù)。
常用的核函數(shù)有多項式核函數(shù),徑向基核函數(shù)和線性核函數(shù)。在樣本特征維度較大,差不多等于樣本數(shù)量時,使用線性核較為合理,因為樣本本身的特征已經(jīng)足夠多了。若使用多項式核函數(shù)或者徑向基核函數(shù)容易出現(xiàn)過擬合。當(dāng)樣本線性不可分且數(shù)據(jù)維度較小時,可以使用多項式函數(shù)和徑向基核函數(shù),將低維數(shù)據(jù)映射到高維實現(xiàn)線性可分。但多項式核函數(shù)的參數(shù)較多,且多項式階數(shù)較高時其復(fù)雜程度會遠(yuǎn)大于徑向基核函數(shù)。針對上文的二維數(shù)據(jù),采用徑向基核函數(shù)會更佳。本文故障診斷采用徑向基核函數(shù)建立SVM 分類器,其數(shù)學(xué)形式為:
SVM 模型中核函數(shù)參數(shù)γ 和懲罰因子c需要在模型訓(xùn)練時人為給定。通常c越大,訓(xùn)練數(shù)據(jù)的分類精度就越高,但同時也會降低分類模型的泛化能力。本文采用差分進(jìn)化算法來尋找最優(yōu)參數(shù),原則上是在尋找訓(xùn)練精度最高參數(shù)對中選擇懲罰因子c最小的參數(shù),這樣能盡可能提高模型的泛化能力。
差分進(jìn)化算法(differential evolution,DE)于1997年由Rainer Storn 和Kenneth Price 在遺傳算法等進(jìn)化思想的基礎(chǔ)上提出來的。它本質(zhì)上是一種多目標(biāo)優(yōu)化算法,其基本思想來源于遺傳算法。兩者相同點都是通過雜交、變異、選擇操作來實現(xiàn)目標(biāo)優(yōu)化[9-16],不同點是生成子代向量的方式不一樣。遺傳算法通過編碼交叉,而差分進(jìn)化算法通過父代差分向量生成,這樣可以省去對數(shù)據(jù)的二進(jìn)制編碼操作,簡化算法,而且差分進(jìn)化算法的父代也會進(jìn)行選擇操作,一定程度上會加快收斂速度。
本文需要優(yōu)化的參數(shù)是懲罰因子c和核函數(shù)參數(shù)γ。算法設(shè)計流程為:確定差分進(jìn)化算法參數(shù),隨機生成初始種群;計算種群中每個個體的適應(yīng)度;判斷是否滿足終止條件;變異、交叉、選擇操作;再回到適應(yīng)度計算,反復(fù)迭代?;诓罘诌M(jìn)化算法優(yōu)化的SVM 燃料電池故障診斷算法的具體設(shè)計步驟見圖5。
圖5 差分算法優(yōu)化的燃料電池故障診斷流程圖
差分進(jìn)化算法尋優(yōu)的具體參數(shù)設(shè)定為:X代表父代個體,V代表差分方式生成的子代個體,種群數(shù)量NP=20,變量維數(shù)D=2,最大進(jìn)化迭代次數(shù)G=50,變異算子F=0.5,交叉算CR=0.1,依據(jù)工程經(jīng)驗,懲罰因子和核函數(shù)參數(shù)的取值范圍均為[2-10,210],尋優(yōu)過程中將訓(xùn)練集數(shù)據(jù)分類得到的平均準(zhǔn)確度作為算法的適應(yīng)度,當(dāng)連續(xù)出現(xiàn)三代訓(xùn)練平均準(zhǔn)確度變化小于0.01%時,即可認(rèn)為參數(shù)已經(jīng)趨于最優(yōu)穩(wěn)定了,停止迭代,則算法的適應(yīng)度函數(shù)為:
實驗樣本一共300 組,包含正常數(shù)據(jù)100 組,膜干故障數(shù)據(jù)100 組和水淹故障數(shù)據(jù)100 組,選定每類數(shù)據(jù)集中的80 組作為訓(xùn)練集,余下20 組數(shù)據(jù)作為測試集。PCA 降維后的數(shù)據(jù)經(jīng)過歸一化處理,使用差分進(jìn)化算法對SVM 的懲罰因子c和核函數(shù)參數(shù)γ 進(jìn)行全局尋優(yōu)。圖6 為用差分進(jìn)化算法進(jìn)行參數(shù)尋優(yōu)的平均適應(yīng)度迭代曲線,差分進(jìn)化收斂速度相比遺傳算法要快,大約20次迭代后平均適應(yīng)度就達(dá)到了峰值,遺傳算法大概在迭代30 次后結(jié)果趨于穩(wěn)定。圖7 為得到優(yōu)化參數(shù)后的SVM 模型對訓(xùn)練集的分類結(jié)果(樣本類別0.0 代表正常數(shù)據(jù),1.0代表水淹故障數(shù)據(jù),2.0代表膜干故障數(shù)據(jù),下同)。
圖6 差分進(jìn)化算法和遺傳算法迭代曲線
圖7 訓(xùn)練集SVM分類結(jié)果
尋優(yōu)算法通過平均適應(yīng)度的變化趨勢來決定算法的迭代次數(shù),當(dāng)平均適應(yīng)度值連續(xù)三代的變化量小于0.01%時,就可以停止迭代了。利用差分進(jìn)化算法尋優(yōu)后得到的最佳適應(yīng)度值為96.67%,表1為差分進(jìn)化算法和遺傳算法分類結(jié)果對比。
表1 差分進(jìn)化算法和遺傳算法分類結(jié)果對比
SVM 分類算法本身對參數(shù)c和γ 不是特別敏感,通常會有多對c和γ的值同時達(dá)到最大訓(xùn)練精度,選取的原則是相同適應(yīng)度情況下,選擇懲罰因子小的為最優(yōu)參數(shù)c和γ,懲罰因子越小,模型的泛化能力越強。相同訓(xùn)練精度下不同參數(shù)值的模型的預(yù)測精度如表2所示。
表2 不同參數(shù)訓(xùn)練測試結(jié)果對比
差分進(jìn)化算法優(yōu)化SVM 后的分類結(jié)果見圖8。經(jīng)過差分進(jìn)化算法優(yōu)化的支持向量機分類模型對60 個測試樣本分類,正確分類57 個,分類正確率95%,其中正常數(shù)據(jù)分類正確率90%,水淹故障數(shù)據(jù)分類正確率100%,膜干故障數(shù)據(jù)分類正確率95%。
圖8 差分進(jìn)化算法優(yōu)化SVM后的分類結(jié)果
未優(yōu)化的SVM 分類結(jié)果見圖9。未優(yōu)化的SVM 算法整體分類正確率88.3%,其中正常數(shù)據(jù)分類正確率80%,水淹故障數(shù)據(jù)分類正確率100%,膜干故障數(shù)據(jù)分類正確率85%。
圖9 未優(yōu)化的SVM 分類結(jié)果
綜上仿真結(jié)果可知,通過對燃料電池電壓數(shù)據(jù)先進(jìn)行PCA 降維處理,再經(jīng)過差分進(jìn)化算法優(yōu)化的SVM 分類訓(xùn)練,準(zhǔn)確率能達(dá)到96.67%,測試準(zhǔn)確率也能達(dá)到95%。在參數(shù)優(yōu)化上,差分進(jìn)化算法比遺傳算法擁有更快的收斂迭代速度,而且差分進(jìn)化算法加入交叉算子提高了全局搜索能力,防止其陷入局部最優(yōu)解,而且在算法實現(xiàn)上也比遺傳算法更簡單,算法的靈活度更高。
基于差分進(jìn)化算法和支持向量基算法,通過對單片電池電壓數(shù)據(jù)進(jìn)行特征提取和分類,提出了一種燃料電池電堆水淹膜干故障的診斷方法。從仿真結(jié)果來看,差分進(jìn)化算法在支持向量機參數(shù)尋優(yōu)上比傳統(tǒng)的遺傳算法擁有更快的收斂速度。在算法復(fù)雜度上,差分進(jìn)化算法代碼效率高,算法靈活度也高。利用單片電池電壓作為診斷特征,通過PCA 降維和SVM 算法訓(xùn)練模型分類,選取合適的核函數(shù)和參數(shù),可以得到較高的準(zhǔn)確率,且無需額外的測量設(shè)備,即可實現(xiàn)水淹膜干故障的診斷。在故障還未嚴(yán)重前及時采取措施,對燃料電池電堆的安全性和壽命的提高有重要的意義[17-21]。