容偉,佘世剛,魏新堯,劉愛琦
(1. 常州大學(xué)機(jī)械工程學(xué)院,江蘇 常州 213164;2. 常州大學(xué)江蘇省自動(dòng)控制實(shí)驗(yàn)室,江蘇 常州 213164)
當(dāng)今社會(huì)的迅速發(fā)展,產(chǎn)生了大量的環(huán)境污染和傳統(tǒng)能源的枯竭等問題,在汽車工業(yè),大力發(fā)展電動(dòng)汽車的工作迫在眉睫[1]。動(dòng)力電池是當(dāng)前對(duì)電動(dòng)汽車向前發(fā)展的一大阻礙。精準(zhǔn)地預(yù)測(cè)動(dòng)力電池荷電狀態(tài)(SOC)對(duì)保障行車安全,延長(zhǎng)動(dòng)力電池的使用周期,意義重大[2]。放電試驗(yàn)、電流積分、內(nèi)阻、開路電壓、Kalman 濾波、線性模型和神經(jīng)網(wǎng)絡(luò)是目前常見的幾種估算 SOC 的單一方法[3-4]。放電試驗(yàn)是一種常用于動(dòng)力電池的維護(hù)和標(biāo)定的方法,但是實(shí)驗(yàn)耗時(shí)長(zhǎng),無法動(dòng)態(tài)監(jiān)測(cè)。電流積分是一種相對(duì)來說可靠簡(jiǎn)單且動(dòng)態(tài)監(jiān)測(cè)的方法,具有廣泛的應(yīng)用范圍,但是需要獲得初始 SOC 值,而且忽略了電池內(nèi)部的一些化學(xué)變化,如果長(zhǎng)期使用需引用相關(guān)修正系數(shù)才可減小誤差。僅通過內(nèi)阻法來預(yù)測(cè)電池 SOC 的精度受到的影響因素較多,所以單一的內(nèi)阻法一般不應(yīng)用在生活中。開路電壓法是一種應(yīng)用范圍寬泛的電池 SOC 估算方法,且能夠有效地提高估算精度,但是實(shí)驗(yàn)前的準(zhǔn)備時(shí)間較長(zhǎng)。線性模型方法適用于鉛酸電池這種電流較小的電池,相對(duì)來說應(yīng)用范圍小。Kalman 濾波法適用于汽車動(dòng)力電池在工況復(fù)雜環(huán)境下的 SOC 估算,但是精確度與電池模型的準(zhǔn)確度相關(guān),而且動(dòng)力電池的非線性工況出現(xiàn)的誤差較大。神經(jīng)網(wǎng)絡(luò)是一種可忽略電池內(nèi)部變化且估算精確度較高的方法,但是訓(xùn)練的樣本數(shù)據(jù)較為繁瑣,花費(fèi)時(shí)間較多,導(dǎo)致其計(jì)算量大,對(duì)實(shí)驗(yàn)硬件要求高。
最小二乘支持向量機(jī)(LSSVM)算法的優(yōu)點(diǎn)是選擇簡(jiǎn)單,泛化能力強(qiáng)大,收斂范圍大,可替代神經(jīng)網(wǎng)絡(luò)法[5]。其基本思想是建立高緯空間的最優(yōu)超平面,利用最小二乘法對(duì)所有樣本進(jìn)行誤差擬合。其缺點(diǎn)是計(jì)算復(fù)雜度大概是樣本數(shù)的三次方量級(jí),計(jì)算量巨大。針對(duì)支持向量機(jī)(SVM)計(jì)算量較大的問題,最小二乘支持向量回歸機(jī)(LSSVR)優(yōu)化其結(jié)構(gòu),利用等式替代不等式,大大降低預(yù)算量,縮短運(yùn)行時(shí)常。LSSVR 中的重要參數(shù)通過遺傳算法(GA)來選擇優(yōu)化,能夠顯著提升動(dòng)力電池 SOC 的預(yù)測(cè)精度[6]。
用普通的電壓源、電容和電阻等元件來搭建動(dòng)力電池的等效電路模型,基于 RC 網(wǎng)絡(luò)來表達(dá)其動(dòng)態(tài)特性。為了兼顧動(dòng)力電池的暫態(tài)和穩(wěn)態(tài)特性[7],等效電路模型選擇二階,如圖 1 所示。Voc表示電池開路電壓;V 表示電池端電壓;Rts和 Cts表示活化極化電阻和電容;Rtl和 Ctl表示濃差極化電阻和電容;Ccap表示目標(biāo)電池容量;Ibat表示目標(biāo)電池充放電電流;Rs表示等效串聯(lián)電阻。
圖1 等效電路圖
動(dòng)力電池 SOC(用 ζSOC表示)與開路電壓的函數(shù)設(shè)為 g(x),設(shè)狀態(tài)變量 x1、x2、x3,對(duì)應(yīng)動(dòng)力電池 ζSOC、Ucts、Uctl,輸入 u 為 Ibat,輸出 y 為通路電壓 v,建立狀態(tài)方程
將式(1)離散化,可得到的時(shí)間方程:
式中:h 時(shí)刻電池的端電壓、活化極化電壓、濃差極化電壓和開路電壓分別對(duì)應(yīng) Uh、Uts,h、Utl,h、Uoc,h;Δt 是模擬動(dòng)態(tài)響應(yīng)的采樣時(shí)間;τts和τtl分別是模擬電池動(dòng)態(tài)響應(yīng)時(shí)的短時(shí)間常數(shù)和長(zhǎng)時(shí)間常數(shù)[8]。
通過安時(shí)積分法來計(jì)算動(dòng)力電池的 SOC,其計(jì)算方程為
式中:動(dòng)力電池的最大容量用 Cmax來表示;t0時(shí)刻的荷電狀態(tài)用ζSOC,0表示;η是比例系數(shù)。
控制 25 ℃ 的實(shí)驗(yàn)溫度,選擇型號(hào)為 BD4820CD,額定電壓是 48 V,額定容量是 20 Ah 的動(dòng)力電池來進(jìn)行試驗(yàn)。對(duì)該電池做混合動(dòng)力充放電實(shí)驗(yàn)HPPC,測(cè)得表 1 所列開路電壓值[9],得到圖 2 所示電壓變化規(guī)律。
表1 開路電壓表
從圖 2 可知,動(dòng)力電池歐姆內(nèi)阻的變化導(dǎo)致U1~U2和 U3~U4之間電壓快速變化。動(dòng)力電池的極化現(xiàn)象是導(dǎo)致 U4~U5之間電壓輕微起伏的原因。將二階 RC等效電路模型與 U4~U5之間的電壓變化和時(shí)間擬合,從而得到參數(shù) Rts、Cts、Rtl和 Ctl,根據(jù)不同的 SOC 值,可得出表 2 所列各參數(shù)值。
表2 等效模型參數(shù)識(shí)別
圖2 電壓變化曲線圖
式(5)中,ω 為權(quán)重向量,b 為偏置。在 SVM 中,約束條件為不等式:
通過上式可知 SVM 的計(jì)算復(fù)雜,計(jì)算量龐大,所以提出最小二乘向量回歸機(jī)(LSSVR)將上述不等式問題轉(zhuǎn)化為等式問題,參考下列公式(7),減少計(jì)算量,并保留 SVM 在高緯空間的擬合能力[10]。
ξ是一個(gè)松弛變量,e 是優(yōu)化目標(biāo)的松弛變量,γ 和 c 都是尋找最優(yōu)超平面和偏差最小之間平衡的一個(gè)權(quán)重。原問題可由拉格朗日乘數(shù)法轉(zhuǎn)變?yōu)閮?yōu)化對(duì)偶向量 α 的問題。
令 yk為 y = f (x) 中的 y,由上式可得線性方程組
由上式可知,要解決其核矩陣只用求得高緯空間內(nèi)積或者核矩陣即可。二者取其輕,核函數(shù)更容易計(jì)算。核函數(shù)常用的有多核式、徑向式和sigmoid。針對(duì)以上核函數(shù),其表達(dá)式如下:
在此采用徑向核函數(shù)[11],σ2表示函數(shù)寬度參數(shù)。解得 LSSVR 函數(shù)為
此方法現(xiàn)已廣泛應(yīng)用在工程實(shí)際問題中,其預(yù)測(cè)準(zhǔn)確性和 γ 和 σ2這兩個(gè)參數(shù)緊密相關(guān)。γ 和σ2的值都是經(jīng)過大量的訓(xùn)練運(yùn)算,優(yōu)選出的一個(gè)區(qū)間范圍,難以確定一個(gè)準(zhǔn)確的數(shù)值,使 LSSVR達(dá)到最佳性能,故這個(gè)方法存在一定的缺陷。
由于 γ 和 σ2的值只通過以上算法難以確定一個(gè)準(zhǔn)確的數(shù)值,從而不能 LSSVR 達(dá)到最佳性能。為了尋找 γ 和 σ2的最佳值,在此學(xué)習(xí)機(jī)的基礎(chǔ)上,使用優(yōu)勝劣汰的遺傳算法(GA)進(jìn)行優(yōu)化,不僅讓上述算法的運(yùn)算量降低,而且能進(jìn)一步提升電池 SOC 預(yù)測(cè)精準(zhǔn)度。相較傳統(tǒng)算法,遺傳算法具有多線程處理,優(yōu)異的可操作性,全局尋優(yōu)和目標(biāo)清晰等特點(diǎn)[12]。遺傳算法是將生物界的進(jìn)化論應(yīng)用到待解決的問題中,自適應(yīng)選出相符條件的個(gè)體,將不適應(yīng)個(gè)體經(jīng)過交叉變異進(jìn)化成想要的個(gè)體,形成新的種群,不斷“優(yōu)勝劣汰”,復(fù)制進(jìn)化,經(jīng)過多次迭代,得到近似的最優(yōu)解[13]。
遺傳算法主要有以下幾個(gè)步驟:
1)編碼:根據(jù)遺傳變異進(jìn)化的規(guī)律將實(shí)際問題進(jìn)行編碼。常用的幾種編碼方式有格雷編碼,實(shí)數(shù)編碼和二進(jìn)制編碼。由于二進(jìn)制編碼操作簡(jiǎn)單,在進(jìn)化程度上易于實(shí)現(xiàn),故采用二進(jìn)制進(jìn)行編碼。
2)適應(yīng)度函數(shù):遺傳給后代的基因大概率都是適應(yīng)度高的個(gè)體,而個(gè)體中適應(yīng)度低的基因被淘汰。對(duì)于擇優(yōu)問題,通常選擇統(tǒng)一化變換的適應(yīng)度函數(shù)。
3)遺傳算子(選擇、交叉、變異):優(yōu)先選擇適應(yīng)度高的個(gè)體,將適應(yīng)度低的個(gè)體中的染色體交叉產(chǎn)生新的個(gè)體,再重復(fù)上述步驟,進(jìn)行優(yōu)化迭代選擇。
4)參數(shù)設(shè)定:定義 Pc為交叉概率,Pm為變異概率,l 為染色體長(zhǎng)度,Np為種群規(guī)模。根據(jù)相關(guān)研究經(jīng)驗(yàn)總結(jié)可知,Pc的范圍值為 0.5~0.8,在此取值為 0.6。Pm的范圍值為 0~0.05,在此取值為0.03。Np的范圍值為 20~200,在此取值為 100。
5)終止算法:適應(yīng)度達(dá)到期望,就停止運(yùn)行,否則進(jìn)行遺傳算子達(dá)成新的群體,循環(huán)選擇,直到最大迭代數(shù),淘汰掉適應(yīng)度低的個(gè)體,輸出最優(yōu)解。
按照以上步驟得到如圖 3 所示流程。
圖3 遺傳算法流程圖
在 Matlab 中的 optimtool 工具箱中實(shí)現(xiàn)遺傳算法優(yōu)化,得出 γ 和 σ2的最優(yōu)解值分別為 18.1956和 2.7361。以 BD4820CD 電池作為動(dòng)力電池源,模擬車輛的一個(gè)循環(huán)工況,得出動(dòng)力電池的工作電壓、電流、溫度和響應(yīng)的 SOC 變化,建立 GALSSVR 模型,輸入循環(huán)工況中的端電流、端電壓和溫度變化值,估算電池 SOC 值。動(dòng)力電池運(yùn)行一個(gè)循環(huán)工況周期,SOC 值下降了 4 %,各參數(shù)變化如圖 4 所示。
圖4 參數(shù)變化圖
采取均方根誤差(RMSE)公式
來預(yù)測(cè) GA-LSSVR 模型的好壞。式中:M 為測(cè)試樣本數(shù),Yk是 SOC 估計(jì)值,yk是 SOC 真實(shí)值。仿真得到誤差如圖 5 所示[14]。
圖5 估算 SOC 誤差
通過對(duì)傳統(tǒng)的一些動(dòng)力電池 SOC 估算方法中存在的優(yōu)缺點(diǎn)進(jìn)行比較研究,選用 GA-LSSVR 來估算動(dòng)力電池 SOC 值,通過 Matlab 進(jìn)行仿真,能夠在保證實(shí)用性的基礎(chǔ)上明顯降低動(dòng)力電池SOC 的估算誤差[15],進(jìn)一步把誤差值穩(wěn)定地控制在 3 % 以內(nèi)。