宋哲 高建平 潘龍帥 郗建國
(河南科技大學(xué),洛陽 471003)
鋰離子電池是新能源汽車的核心部件,在使用過程中,其性能會(huì)隨著時(shí)間的推移而下降,為保證其工作可靠性,預(yù)測其健康狀態(tài)(State of Health,SOH)以及剩余使用壽命,已成為當(dāng)前研究的熱點(diǎn)[1]。目前,數(shù)據(jù)驅(qū)動(dòng)是鋰離子電池SOH預(yù)測的主要方法[2]。其中,支持向量回歸(Support Vector Regression,SVR)算法具有很強(qiáng)的泛化能力,能夠保證全局最優(yōu),同時(shí)避免神經(jīng)網(wǎng)絡(luò)局部極小、過學(xué)習(xí)和欠學(xué)習(xí)等問題。例如:文獻(xiàn)[3]利用SVR算法估計(jì)鋰離子電池的SOH 和剩余壽命;文獻(xiàn)[4]利用遺傳算法(Genetic Algorithm,GA)對SVR 的關(guān)鍵參數(shù)進(jìn)行優(yōu)化,使用優(yōu)化后的參數(shù)建立SVR預(yù)測模型,實(shí)現(xiàn)了鋰離子電池剩余容量預(yù)測;文獻(xiàn)[5]提出一種柔性支持向量回歸算法進(jìn)行SOH 預(yù)測。然而,SVR 模型具有較多的超參數(shù),直接影響SVR的泛化性能和預(yù)測精度,為了提高SVR模型的預(yù)測精度,可利用粒子群算法(Particle Swarm Optimization,PSO)對SVR的參數(shù)進(jìn)行優(yōu)化。
另外,特征參數(shù)的選取直接影響數(shù)據(jù)驅(qū)動(dòng)方法的預(yù)測精度。目前,大多采用易監(jiān)測參數(shù)作為健康因子來預(yù)測電池SOH,如:文獻(xiàn)[6]采用放電電壓樣本熵作為健康因子并利用支持向量機(jī)(Support Vector Machine,SVM)算法實(shí)現(xiàn)鋰離子電池SOH 預(yù)測,但未對健康因子間進(jìn)行主成分分析;文獻(xiàn)[7]研究電池性能衰退過程中電池放電電壓變化趨勢,提取等壓降放電時(shí)間差作為健康因子,但忽略了健康因子間的冗余與不足。眾多研究中,大部分學(xué)者未考慮健康因子間的相關(guān)性,容易使所表達(dá)信息丟失或重疊,這將對預(yù)測精度產(chǎn)生很大影響。因此,提取能夠顯著表征鋰離子電池性能退化狀態(tài)且不含冗余或不足的健康因子是非常重要的。
基于上述分析,本文提出一種基于主成分分析的鋰離子電池SOH 預(yù)測方法,該方法能夠?qū)⒍鄠€(gè)反映鋰離子電池健康狀態(tài)的性能退化參數(shù)進(jìn)行融合,既充分保留電池性能退化的相關(guān)信息,又可去除冗余。此外,結(jié)合粒子群優(yōu)化算法,對SVR 算法的關(guān)鍵參數(shù)進(jìn)行全局最優(yōu)搜索,進(jìn)一步提高SVR 模型的預(yù)測精度和計(jì)算速度。
隨著充、放電過程不斷進(jìn)行,鋰離子電池內(nèi)部的電化學(xué)反應(yīng)會(huì)導(dǎo)致電解液和電極材料不斷消耗,固體電解質(zhì)界面(Solid Electrolyte Interphase,SEI)膜增厚,從而導(dǎo)致其健康狀態(tài)逐漸退化。盡管鋰離子電池內(nèi)部電化學(xué)反應(yīng)機(jī)理十分復(fù)雜,反映其健康狀態(tài)的容量或阻抗難以獲取,但一些可在線測量的性能狀態(tài)參數(shù)同樣可以表征電池性能退化規(guī)律。
研究發(fā)現(xiàn),在相同時(shí)間間隔內(nèi),電池放電電壓差隨著電池充放電循環(huán)次數(shù)的增加而逐漸增大,與鋰離子電池容量存在一定的相關(guān)性。相同時(shí)間間隔內(nèi),處于不同放電周期的鋰離子電池放電電壓的下降程度稱為等時(shí)間間隔放電電壓差(Discharge Voltage Difference of Equal Time Interval,DVD_ETI)。DVD_ETI 數(shù)據(jù)序列提取方法如圖1所示。
在第φ個(gè)放電周期,等時(shí)間間隔t內(nèi)放電電壓差可表示為:
式中,Vt_min、Vt_max分別為時(shí)間間隔t初始時(shí)刻和終止時(shí)刻所對應(yīng)的電壓;l為充放電周期數(shù)。
圖1 等時(shí)間間隔放電電壓差
所以,在各放電循環(huán)周期中所提取的DVD_ETI 數(shù)據(jù)序列為:
另外,還有一些參數(shù)可以反映電池性能退化狀態(tài),如文獻(xiàn)[8]將電池端電壓作為表征電池性能退化狀態(tài)的特征參數(shù),文獻(xiàn)[9]將電池平均放電溫度作為鋰離子電池健康因子,文獻(xiàn)[10]將電壓值均方根作為健康因子。綜上所述,為了充分反映鋰離子電池的性能退化狀態(tài),本文選擇等時(shí)間間隔電壓差、等壓降放電時(shí)間、放電電壓值均方根、恒流充電時(shí)間、初始電壓跌落值、放電功率、放電平均溫度及電池端電壓等8 個(gè)具有代表性的性能退化參數(shù)共同作為鋰離子電池SOH 預(yù)測的健康因子。
上述選取的健康因子中,有些參數(shù)之間信息重疊較多,存在一定冗余,使問題分析變得復(fù)雜,同時(shí)為避免僅采用1~2個(gè)健康因子進(jìn)行分析導(dǎo)致信息不足,需對健康因子參數(shù)矩陣進(jìn)行主成分分析。主成分分析法主要通過降維產(chǎn)生幾個(gè)線性無關(guān)的綜合主成分來反映事物的大多數(shù)信息。主成分分析算法具體步驟如下:
a.樣本矩陣獲取。設(shè)樣本數(shù)量為n,每個(gè)樣本含有變量的數(shù)量為q,則構(gòu)成一個(gè)n×q型樣本矩陣:
式中,Xij(i=1,2,…,n,j=1,2,…,q)為第i個(gè)樣本中的第j個(gè)特征參數(shù)。
b.標(biāo)準(zhǔn)化處理。在主成分分析前對特征參數(shù)進(jìn)行標(biāo)準(zhǔn)化處理以解決量綱影響問題。本文采用正態(tài)分布標(biāo)準(zhǔn)化法:
c.計(jì)算特征參數(shù)之間的相關(guān)系數(shù)矩陣:
式中,rij(i,j=1,2,…,q)為標(biāo)準(zhǔn)化后數(shù)據(jù)的相關(guān)系數(shù),rij=rji。
d.主成分貢獻(xiàn)率。求取矩陣Rq×q的特征值λi(i=1,2,…,q),前m個(gè)主成分的累積貢獻(xiàn)率為:
一般取累積貢獻(xiàn)率超過80%的特征值所對應(yīng)的前m個(gè)主成分,然后將所選主成分的得分矩陣作為預(yù)測模型的輸入矩陣。
SVR 是SVM 在回歸問題上的推廣,具有很強(qiáng)的泛化能力,能夠保證全局最優(yōu)性,在處理一些非線性問題時(shí)具有獨(dú)特的優(yōu)勢。SVR 的基本思想是通過某一個(gè)非線性變換將輸入向量映射到高維特征空間中,然后在高維空間內(nèi)對樣本集進(jìn)行線性回歸。針對訓(xùn)練樣本數(shù)據(jù)集D={(x1,y1),…,(xi,yi)},目標(biāo)是使訓(xùn)練樣本盡量擬合到一個(gè)線性函數(shù)f(x)上,使f(x)與對應(yīng)的yi盡可能接近,線性回歸函數(shù)為:
式中,w為權(quán)值向量;φ(x)為將樣本x從原始空間映射到高維空間的映射函數(shù);b為偏置值。
為了求解w和b,SVR 使用不敏感損失函數(shù)ε進(jìn)行線性回歸,將回歸問題轉(zhuǎn)化為關(guān)于變量w和b的凸二次規(guī)劃問題:
針對上面的凸優(yōu)化問題,引入拉格朗日乘子,可得式(10)的對偶問題:
由于徑向基核函數(shù)(Radial Basis Function,RBF)具有較高的擬合和預(yù)測精度[11],本文選擇RBF 作為核函數(shù):
式中,γ為RBF核寬度。
在高維特征空間,SVR模型中的懲罰參數(shù)C影響模型的復(fù)雜性和穩(wěn)定性,核寬度γ影響樣本分布的復(fù)雜程度[12]。因此,為了提高SVR 模型預(yù)測精度,降低模型復(fù)雜性,需確定C與γ的最優(yōu)取值。PSO 算法具有簡單易行、收斂速度快及設(shè)置參數(shù)少等優(yōu)點(diǎn),且能夠防止陷入局部最優(yōu)解。利用基于PSO 的SVR 算法尋找最優(yōu)參數(shù)C和γ,可避免網(wǎng)格搜索法(Grid Search,GS)精度低、計(jì)算量大等問題?;赑SO的SVR算法流程如圖2所示。
圖2 PSO-SVR算法流程
速度和位置更新公式為:
式中,w為慣性權(quán)重;v為粒子速度;rrand1和rrand2為區(qū)間[0,1]內(nèi)隨機(jī)數(shù);x為粒子的位置;C1、C2為常數(shù);為第k代個(gè)體最優(yōu)粒子位置;為第k代全局最優(yōu)粒子位置。
本文將量子計(jì)算理論引入經(jīng)典機(jī)器學(xué)習(xí)算法,提出一種基于主成分分析的PSO-SVR鋰離子電池SOH預(yù)測框架,如圖3所示,主要分為3個(gè)步驟:
a.健康因子構(gòu)建。從鋰離子電池充放電過程中提取能夠反映電池退化狀態(tài)的性能退化參數(shù),然后利用主成分分析算法對提取的特征參數(shù)進(jìn)行降維、去噪。
b.構(gòu)建電池SOH 預(yù)測模型。結(jié)合歷史電池容量退化數(shù)據(jù),將主成分得分矩陣作為輸入,對應(yīng)周期下的容量作為輸出,構(gòu)建基于粒子群優(yōu)化支持向量回歸的SOH預(yù)測模型。
c.將測試集作為模型輸入,計(jì)算電池在每次放電循環(huán)后的健康狀態(tài)。電池健康狀態(tài)定義為每次充電后電池最大可用容量與其額定容量的比值:
式中,Ck為第k次充電后電池最大可用容量;C0為電池額定容量;SSOH為電池健康狀態(tài)。
圖3 基于主成分分析的PSO-SVR預(yù)測框架
試驗(yàn)所用原始數(shù)據(jù)是來自于美國國家航空航天局(NASA)的4組電池(B5、B6、B7、B18)充、放電循環(huán)數(shù)據(jù)[13]。本文以B18 數(shù)據(jù)為例,首先提取充、放電過程中具有代表性的8個(gè)健康因子,即等時(shí)間間隔電壓差ΔU、等壓降放電時(shí)間Ti、放電電壓值均方根URMS、恒流充電時(shí)間Ta、初始電壓跌落值ΔUa、放電功率P、放電平均溫度T、電池端電壓U,然后計(jì)算健康因子間的相關(guān)系數(shù),結(jié)果如表1所示。從表1可以看出,不同健康因子之間存在一定聯(lián)系,從而導(dǎo)致所表達(dá)的信息存在一定冗余。
表1 鋰離子電池健康因子間相關(guān)系數(shù)
采用主成分分析算法去除健康因子之間的冗余部分,用更少的變量表達(dá)大部分參數(shù)信息。各主成分的特征值、貢獻(xiàn)率和累積貢獻(xiàn)率如表2 所示,使用Mi(i=1,2,…,8)表示得到的8 個(gè)主成分,第1 個(gè)主成分的累計(jì)貢獻(xiàn)率為95.160%,能夠較好地反映原有信息。
表2 主成分特征值、貢獻(xiàn)率、累積貢獻(xiàn)率
為驗(yàn)證主成分得分矩陣是否具有與電池容量同等表達(dá)電池退化狀態(tài)的能力,采用皮爾森(Pearson)相關(guān)系數(shù)r與斯皮爾曼(Spearman)秩相關(guān)系數(shù)ρ對它們之間的關(guān)系進(jìn)行定量分析,結(jié)果如表3所示,可以看出,去除冗余后的健康因子與容量之間相關(guān)性較強(qiáng)。因此,去除冗余后的健康因子可以代替容量作為表征鋰離子電池性能退化的健康指標(biāo)。
表3 主成分得分矩陣與容量關(guān)聯(lián)度
5.2.1 基于主成分分析的PSO-SVR算法預(yù)測性能分析
為驗(yàn)證本文方法在電池SOH 預(yù)測中的效果,設(shè)計(jì)如下3 種驗(yàn)證策略:策略1,將前60 個(gè)主成分得分樣本矩陣作為訓(xùn)練集,剩余樣本作為測試集;策略2,將前80個(gè)主成分得分樣本矩陣作為訓(xùn)練集,剩余樣本作為測試集;策略3,將前100 個(gè)主成分得分樣本矩陣作為訓(xùn)練集,剩余樣本作為測試集。試驗(yàn)中,采用粒子群算法確定SVR 模型最優(yōu)懲罰參數(shù)C和核寬度γ,以B18 數(shù)據(jù)為例,在策略1下的參數(shù)尋優(yōu)過程如圖4所示。初始參數(shù)中,粒子群算法種群數(shù)量設(shè)置為20,進(jìn)化代數(shù)設(shè)置為200。由此可得SVR 最優(yōu)懲罰參數(shù)C=36.82,最優(yōu)核寬度γ=0.01,均方誤差mse=0.021。為驗(yàn)證PCA-PSO-SVR預(yù)測模型的精度,將其與基于網(wǎng)格搜索法優(yōu)化的SVR模型預(yù)測性能進(jìn)行比較。
圖4 粒子群算法尋優(yōu)過程
試驗(yàn)評價(jià)指標(biāo)采用平均絕對百分誤差MMAPE、均方根誤差RRMSE和絕對誤差A(yù)AE:
式中,Yi為第i個(gè)樣本的真實(shí)值;為第i個(gè)樣本的預(yù)測值;N為樣本數(shù)量。
MMAPE和RRMSE的值越小,表示模型預(yù)測值與真實(shí)值差距越小,模型性能越好。
對于每組鋰離子電池?cái)?shù)據(jù)集,依次執(zhí)行上述3種策略進(jìn)行驗(yàn)證。4組電池在策略1下的預(yù)測結(jié)果如圖5所示。圖6所示為B5電池上PCA-PSO-SVR算法與PCAGS-SVR算法絕對誤差曲線對比結(jié)果。
圖5 4組電池SOH預(yù)測結(jié)果
由圖5 可知,基于PCA-PSO-SVR 算法的4 組電池的SOH預(yù)測值更接近真實(shí)值。從圖6中可以看出,基于PCA-GS-SVR 算法的電池SOH 絕對誤差在-0.025~0.015 范圍內(nèi),而基于PCA-PSO-SVR 算法的電池SOH絕對誤差在-0.015~0.015范圍內(nèi),誤差較小,說明PCAPSO-SVR算法預(yù)測精度高。
2種方法在4組電池?cái)?shù)據(jù)集上的預(yù)測結(jié)果如表4所示。從表中可以觀察到,在平均絕對百分誤差以及均方根誤差方面,本文提出的PCA-PSO-SVR算法預(yù)測性能均優(yōu)于PCA-GS-SVR算法。
圖6 B5電池SOH預(yù)測絕對誤差曲線
表4 2種方法在4組電池?cái)?shù)據(jù)集上的預(yù)測性能評價(jià)
5.2.2 PCA-PSO-SVR算法與現(xiàn)有方法的預(yù)測性能比較
為了進(jìn)一步驗(yàn)證PCA-PSO-SVR 算法在鋰離子電池SOH 預(yù)測性能方面的有效性,本文將其與現(xiàn)有的P-MGPR[14]、SE-MGPR[14]和Improved PSO-SVR[15]鋰電池SOH 預(yù)測方法在3 組鋰離子電池?cái)?shù)據(jù)集上進(jìn)行對比試驗(yàn)。試驗(yàn)過程中,上述3種方法均采用全部樣本數(shù)據(jù)的60%作為訓(xùn)練集,剩余40%作為測試集。表5 描述了本文方法與上述3種方法在B5、B6及B7電池?cái)?shù)據(jù)集上的預(yù)測性能比較結(jié)果。
從表5 可以觀察到,本文提出的方法在鋰離子電池SOH 預(yù)測性能方面均優(yōu)于其余3 種方法。在平均絕對百分誤差方面,PCA-PSO-SVR 相比于Improved PSO-SVR 在3 組電池?cái)?shù)據(jù)集上平均減少了0.92 百分點(diǎn),PCA-PSO-SVR 的平均絕對百分誤差顯著低于P-MGPR,在B6 電池?cái)?shù)據(jù)集上減少了2.19 百分點(diǎn)。在均方根誤差方面,PCA-PSO-SVR相比于Improved PSOSVR 在3 組電池?cái)?shù)據(jù)集上分別減少了0.33、0.56 及0.67。PCA-PSO-SVR 與P-MGPR 和SE-MGPR 方法相比優(yōu)勢更加明顯。上述結(jié)果證明了本文方法的有效性及適應(yīng)性。
表5 4種方法在B5、B6及B7電池?cái)?shù)據(jù)集上的預(yù)測性能比較
本文首先通過主成分分析算法對選取的具有代表性的8個(gè)健康因子進(jìn)行降維,得到一個(gè)可以表征鋰離子電池退化狀態(tài)的健康指標(biāo),然后利用粒子群算法對SVR模型關(guān)鍵參數(shù)進(jìn)行全局尋優(yōu),找出最優(yōu)懲罰參數(shù)C和核寬度γ,構(gòu)建了基于粒子群優(yōu)化的SVR 預(yù)測模型,并與基于GS 網(wǎng)格搜索法優(yōu)化的SVR 模型進(jìn)行對比分析,結(jié)果表明本文提出的算法預(yù)測精度較高,最后與現(xiàn)有鋰離子電池SOH預(yù)測方法進(jìn)行對比驗(yàn)證,結(jié)果表明,基于主成分分析的PSO-SVR在實(shí)現(xiàn)鋰離子電池SOH預(yù)測方面具有較高預(yù)測精度及較好的預(yù)測穩(wěn)定性。