鮑 偉 任 超
(合肥工業(yè)大學(xué)電氣與自動(dòng)化工程學(xué)院 安徽 合肥 230009) (工業(yè)自動(dòng)化安徽省工程技術(shù)研究中心 安徽 合肥 230009)
隨著電動(dòng)汽車(chē)的不斷發(fā)展,對(duì)電動(dòng)汽車(chē)的性能和安全性等的要求越來(lái)越高,對(duì)動(dòng)力電池系統(tǒng)狀態(tài)的準(zhǔn)確估計(jì)就顯得尤為重要。鋰離子電池的荷電狀態(tài)(State of charge)反映了電池的剩余容量占額定容量的百分比。準(zhǔn)確地估算電池SOC對(duì)于保證電池性能,提高使用安全性,延長(zhǎng)使用壽命具有重要意義[1]。
近年來(lái)估算電池SOC的主要方法有:卡爾曼濾波法、開(kāi)路電壓法、安時(shí)積分法、神經(jīng)網(wǎng)絡(luò)法等[2],但是它們都有各自的適用條件??柭鼮V波法涉及到模型中各個(gè)參數(shù)的辨識(shí)與復(fù)雜方程的解析問(wèn)題,增加了模型的復(fù)雜度;開(kāi)路電壓法需要預(yù)計(jì)開(kāi)路電壓,不適用于運(yùn)行中的電池SOC估算;安時(shí)積分法在一定程度上忽視了電池自放電率、老化程度和充放電倍率對(duì)電池SOC的影響,長(zhǎng)期使用也會(huì)導(dǎo)致測(cè)量誤差不斷累積擴(kuò)大。由于電池本身是一個(gè)高度非線(xiàn)性的復(fù)雜系統(tǒng),要想建立準(zhǔn)確的數(shù)學(xué)模型來(lái)描述電池的充放電過(guò)程難度很大,而神經(jīng)網(wǎng)絡(luò)具有非線(xiàn)性和自學(xué)習(xí)的特點(diǎn),在給出外部激勵(lì)的情況下,能夠較好地模擬電池的非線(xiàn)性特性,從而對(duì)SOC進(jìn)行有效的估算[3],但是傳統(tǒng)BP神經(jīng)也存在著受初始權(quán)值和閾值影響較大、預(yù)測(cè)精度不高的問(wèn)題。
同時(shí)隨著云平臺(tái)技術(shù)的發(fā)展,越來(lái)越多的電動(dòng)汽車(chē)將電池的數(shù)據(jù)上傳到云平臺(tái)上。如果利用上傳的這些數(shù)據(jù)對(duì)電池SOC進(jìn)行預(yù)測(cè),將預(yù)測(cè)的值和由電池管理系統(tǒng)上傳到云平臺(tái)的SOC值相互驗(yàn)證,對(duì)于優(yōu)化SOC預(yù)測(cè)算法和電池管理系統(tǒng)的故障診斷都具有重要意義。本文通過(guò)深入分析上傳到云平臺(tái)上電池?cái)?shù)據(jù)庫(kù)中的采樣數(shù)據(jù),結(jié)合灰狼算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(GWO-BP),提出了基于GWO-BP神經(jīng)網(wǎng)絡(luò)的電池SOC預(yù)測(cè)方法。灰狼優(yōu)化算法強(qiáng)大的全局搜索能力克服了傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)收斂速度慢,過(guò)度依賴(lài)初始權(quán)值和閾值的缺點(diǎn)[4]。實(shí)驗(yàn)結(jié)果表明,該方法具有較高的預(yù)測(cè)準(zhǔn)確率。
BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),它具有對(duì)內(nèi)部復(fù)雜的問(wèn)題具有較好的適應(yīng)性。但同時(shí),它是一種局部搜索算法,容易陷入局部極值[5]。
神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層組成。三層網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
定義圖1中輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù)分別為l、m、n。i、j、k分別代表輸入層、隱含層和輸出層第i、j、k個(gè)神經(jīng)元。隱含層的激活函數(shù)采用sigmoid函數(shù)。
輸入層到隱含層的權(quán)值矩陣為W1,閾值矩陣為B1,隱含層到輸出層權(quán)值矩陣為W2,閾值矩陣為B2,輸入向量為X,輸出向量為Y,期望輸出向量為O,隱含層輸出值向量為V,隱含層誤差值向量為U1,輸出層誤差值矩陣為U2。各定義矩陣和向量形式如下:
1) 正向傳播。正向傳播的矩陣形式為:
f(W1X+B1)=V
W2V+B2=Y
式中:f表示隱含層的激活函數(shù)。
2) 反向傳播。定義目標(biāo)函數(shù)如下:
反向傳播的矩陣形式為:
U2=O-Y
(W2)TU2°V°(1-V)=U1
W1←W1+ηU1XT
W2←W2+ηU2VT
B1←B1+ηU1
B2←B2+ηU2
以上就是單樣本輸入時(shí)BP神經(jīng)網(wǎng)絡(luò)的矩陣形式。
本文的數(shù)據(jù)集來(lái)源于某電動(dòng)汽車(chē)公司云平臺(tái)的數(shù)據(jù)庫(kù)。數(shù)據(jù)集由BMS實(shí)時(shí)采集和上傳的動(dòng)力電池運(yùn)行過(guò)程的各項(xiàng)參數(shù)構(gòu)成。電池?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù)有數(shù)據(jù)上傳時(shí)間、電池系統(tǒng)SOC、電流(A)、電池單體平均電壓(mV)、電池單體最大電壓(mV)、電池單體最小電壓(mV)、電池包平均溫度(℃)、電池包最大溫度(℃)、電池包最小溫度(℃)、電池包總電壓(V)等,其中采樣時(shí)間間隔為10 s。
SOC值的變化與電池的總電壓,電流等相關(guān),又因?yàn)榄h(huán)境溫度的變化會(huì)影響電池內(nèi)部化學(xué)反應(yīng)的快慢,從而影響SOC的變化,所以電池的溫度也是一個(gè)影響因素。因此實(shí)驗(yàn)選擇了與SOC關(guān)聯(lián)較大的當(dāng)前時(shí)刻的電池包總電壓、電流、電池包平均溫度作為輸入變量,電池包的SOC作為輸出變量[6]。
為了消除指標(biāo)間的量綱和奇異樣本數(shù)據(jù)的影響,要對(duì)輸入數(shù)據(jù)和輸出數(shù)據(jù)歸一化[7]。分別將輸入矩陣和輸出向量進(jìn)行行歸一化到[-1,1],采用式(1)的歸一化方法:
(1)
式中:vstd表示歸一化后的值;v表示原始值;vmin表示變量v所在行的最小值;vmax表示變量v所在行的最大值。
輸入變量是電壓、電流和平均溫度三個(gè)變量,輸出變量為電池SOC。對(duì)于訓(xùn)練過(guò)程來(lái)說(shuō),輸入是電壓、電流、平均溫度組成的3×M的矩陣,形式如下:
(2)
式中:M表示訓(xùn)練集樣本總數(shù)。輸出是電池SOC組成的1×M的一個(gè)行向量,形式如下:
(3)
由于電動(dòng)汽車(chē)在放電過(guò)程和充電過(guò)程中,電池包電流的特點(diǎn)不一樣。放電過(guò)程中,電流根據(jù)駕駛員意圖和工況隨機(jī)變化。而充電過(guò)程中電流在長(zhǎng)時(shí)間內(nèi)保持恒定值。因此根據(jù)電流的特點(diǎn),將訓(xùn)練數(shù)據(jù)和SOC神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型分成充電模型和放電模型分別進(jìn)行訓(xùn)練和建模,則能夠取得更好的效果。
灰狼優(yōu)化算法(Grey Wolf Optimizer,GWO)是由澳大利亞格里菲斯大學(xué)學(xué)者M(jìn)irjalili等[8]于2014年提出來(lái)的一種群智能優(yōu)化算法。該算法受到了灰狼捕食獵物活動(dòng)的啟發(fā)而開(kāi)發(fā)的一種優(yōu)化搜索方法,是一種元啟發(fā)式算法。它具有全局搜索能力強(qiáng)、較強(qiáng)的收斂性能、參數(shù)少、易實(shí)現(xiàn)等特點(diǎn)。Mirjalili通過(guò)一系列標(biāo)準(zhǔn)測(cè)試函數(shù)驗(yàn)證了GWO比PSO、GA、DE算法等收斂速度快,穩(wěn)定性更強(qiáng)[9]。
灰狼隸屬于群居生活的犬科動(dòng)物,且處于食物鏈的頂層?;依菄?yán)格遵守著一個(gè)社會(huì)支配等級(jí)關(guān)系。按照等級(jí)劃分,灰狼可以分為四個(gè)等級(jí),由高到低分別是α、β、δ、ω。圍捕獵物包含三個(gè)過(guò)程,分別是搜索獵物、圍捕和包圍獵物、攻擊獵物[10]。
在數(shù)學(xué)上模擬包圍獵物的過(guò)程可以用式(4)-式(7)來(lái)表示[11]:
A=2ar1-a
(4)
C=2r2
(5)
D=|CXp(t)-X(t)|
(6)
X(t+1)=Xp(t)-AD
(7)
式中:t表示迭代次數(shù);Xp(t)表示獵物的位置矢量;X(t)表示t代灰狼的位置矢量;X(t+1)表示t+1代灰狼的位置矢量。a在迭代過(guò)程中隨著迭代次數(shù)線(xiàn)性地由2減小到0,可用式(8)來(lái)表示。
(8)
式中:l代表當(dāng)前迭代次數(shù);Max_iteration表示最大迭代次數(shù)。r1和r2是[0,1]中的隨機(jī)數(shù)。
在每只灰狼更新結(jié)束后,計(jì)算每一只灰狼的適應(yīng)度值,選出適應(yīng)度值最小的三個(gè)解Xα(t)、Xβ(t)、Xδ(t)作為當(dāng)前α、β、δ的位置,下一代灰狼以α、β、δ為牽引,通過(guò)式(9)-式(12)更新個(gè)體的位置[12]:
Xα(t+1)=Xα(t)-A1|C1Xα(t)-X(t)|
(9)
Xβ(t+1)=Xβ(t)-A2|C2Xβ(t)-X(t)|
(10)
Xδ(t+1)=Xδ(t)-A3|C3Xδ(t)-X(t)|
(11)
(12)
由式(4)可知A的取值范圍為[-a,a],當(dāng)|A|<1的時(shí)候,灰狼朝著獵物發(fā)起進(jìn)攻,灰狼的攻擊行為使得灰狼算法有良好的局部搜索能力;當(dāng)|A|>1的時(shí)候,灰狼遠(yuǎn)離獵物去尋找下一個(gè)更合適的獵物,這也使得算法有較好的全局搜索能力[13]。
定義灰狼算法中的兩個(gè)參數(shù)N和R。其中,N代表灰狼種群規(guī)模;R代表搜索空間維度。每只灰狼的維度就是其位置向量,它們代表BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。
BP神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)、隱含層節(jié)點(diǎn)、輸出層節(jié)點(diǎn)分別設(shè)為l、m、n,搜索空間維度R的計(jì)算過(guò)程如下:
R=m×l+n×m+m+n
(13)
為了方便計(jì)算,對(duì)于種群N,將維度分成四部分,分別是W1、B1、W2、B2。對(duì)于W1,初始化一個(gè)Nm×l的矩陣,則矩陣的第im-m+1行到第im行為第i只灰狼輸入層到隱含層的權(quán)值矩陣。其他權(quán)值矩陣和閾值矩陣定義方式和上述方法一樣。構(gòu)造適應(yīng)度函數(shù)如下:
(14)
基于灰狼算法的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)電池SOC步驟如下:
(1) 首先對(duì)輸入矩陣和輸出向量歸一化,將輸入矩陣和輸出向量的每一行歸一化到[-1,1]。
(2) 設(shè)置BP神經(jīng)網(wǎng)絡(luò)的最大迭代次數(shù)Max_epochs、學(xué)習(xí)率η、目標(biāo)誤差Target_error。
(3) 初始的維度代表BP神經(jīng)網(wǎng)絡(luò)初始的權(quán)值和閾值,將初始的維度均初始化到[-1,1],然后代入BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,根據(jù)式(14)計(jì)算出每只灰狼的適應(yīng)度值并且從小到大排序,選出第一代適應(yīng)度值最小的3只灰狼,它們?cè)谠瓉?lái)種群中的序號(hào)分別記為α、β、δ。
(4) 根據(jù)式(9)-式(12)更新每只灰狼個(gè)體的位置,構(gòu)造新的BP神經(jīng)網(wǎng)絡(luò)并進(jìn)行訓(xùn)練,計(jì)算出每只灰狼的適應(yīng)度函數(shù)值,選出新的α、β、δ,再對(duì)每只灰狼的位置更新。
(5) 判斷是否達(dá)到GWO最大迭代的次數(shù)Max_iteration,若沒(méi)有達(dá)到,返回步驟(3),若達(dá)到,記錄最優(yōu)灰狼個(gè)體α對(duì)應(yīng)的BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。
(6) 根據(jù)得出的優(yōu)化過(guò)的初始權(quán)值和閾值,代入BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練,當(dāng)訓(xùn)練誤差滿(mǎn)足要求時(shí),停止對(duì)網(wǎng)絡(luò)的訓(xùn)練。
(7) 將測(cè)試集代入訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò),得出SOC。
基于GWO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)電池SOC流程如圖2所示。
圖2 GWO-BP預(yù)測(cè)電池SOC流程
為了對(duì)比灰狼優(yōu)化算法和其他優(yōu)化算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的效果,采用一種粒子群優(yōu)化算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比驗(yàn)證。粒子群優(yōu)化算法同灰狼優(yōu)化算法一樣,都是一種基于群體智能的進(jìn)化計(jì)算方法,在計(jì)算一些連續(xù)函數(shù)的優(yōu)化問(wèn)題具有比較好的效果[14]。
選取相同的10 000組云平臺(tái)數(shù)據(jù)分別訓(xùn)練BP、GWO-BP和PSO-BP神經(jīng)網(wǎng)絡(luò)模型,其中放電過(guò)程和充電過(guò)程分別為5 000組。實(shí)驗(yàn)相關(guān)參數(shù)設(shè)置如下:
BP:輸入和輸出節(jié)點(diǎn)分別為3和1,由經(jīng)驗(yàn)公式m=2l+1可得隱含層節(jié)點(diǎn)數(shù)為7,最大迭代次數(shù)Max_epochs設(shè)為5 000,學(xué)習(xí)率η設(shè)為1×10-4,目標(biāo)誤差Target_error設(shè)為0.001。
GWO-BP:灰狼種群數(shù)N設(shè)為30,搜索空間維度R為36,GWO最大迭代次數(shù)Max_iteration設(shè)為50。其余參數(shù)設(shè)置與BP神經(jīng)網(wǎng)絡(luò)一樣。
PSO-BP:粒子群規(guī)模particlesize設(shè)為30,粒子最大迭代次數(shù)Max_num設(shè)為50,相關(guān)的系數(shù)c1=2,c2=2,ω=0.6,粒子的最大速度vmax=0.8,每個(gè)粒子的維度dims=36,其余參數(shù)設(shè)置與BP神經(jīng)網(wǎng)絡(luò)一樣。
根據(jù)以上訓(xùn)練數(shù)據(jù)集和算法的參數(shù)設(shè)置,最終得到GWO-BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值如下:
放電過(guò)程:
B2=0.529 7
充電過(guò)程:
B2=-0.953 7
最終放電過(guò)程的種群序號(hào)為α=6,β=18,δ=4;充電過(guò)程的種群序號(hào)為α=15,β=24,δ=6。再選取2 503組云平臺(tái)數(shù)據(jù)作為測(cè)試樣本,其中放電過(guò)程1 072組,充電過(guò)程1 431組測(cè)試GWO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)動(dòng)力電池SOC的準(zhǔn)確性。SOC預(yù)測(cè)效果及誤差曲線(xiàn)如圖3至圖6所示。
圖3 放過(guò)程GWO-BP測(cè)試樣本SOC值對(duì)比
圖4 放電過(guò)程GWO-BP測(cè)試樣本相對(duì)誤差
圖5 充電過(guò)程GWO-BP測(cè)試樣本SOC值對(duì)比
圖6 充電過(guò)程GWO-BP測(cè)試樣本相對(duì)誤差
從圖4和圖6可以看出,放電過(guò)程平均相對(duì)誤差為0.48%,最大相對(duì)誤差為3.42%。充電過(guò)程平均相對(duì)誤差為0.34%,最大相對(duì)誤差為1.12%。預(yù)測(cè)SOC值和真實(shí)SOC值也基本吻合。
根據(jù)以上訓(xùn)練數(shù)據(jù)集和算法的參數(shù)設(shè)置,獲得基于BP神經(jīng)網(wǎng)絡(luò)的SOC預(yù)測(cè)值,相關(guān)的預(yù)測(cè)效果和誤差曲線(xiàn)如圖7至圖10所示。
圖7 放電過(guò)程BP測(cè)試樣本SOC值對(duì)比
圖8 放電過(guò)程BP測(cè)試樣本相對(duì)誤差
圖9 充電過(guò)程BP測(cè)試樣本SOC值對(duì)比
圖10 充電過(guò)程BP測(cè)試樣本相對(duì)誤差
從圖8和圖10可以看出,基于BP神經(jīng)網(wǎng)絡(luò)的SOC預(yù)測(cè)結(jié)果,放電過(guò)程SOC預(yù)測(cè)的平均相對(duì)誤為1.13%,最大相對(duì)誤差為3.77%;充電過(guò)程SOC預(yù)測(cè)的平均相對(duì)誤差為0.63%,最大相對(duì)誤差為2.64%。
從上述實(shí)驗(yàn)結(jié)果可以看出,無(wú)論是充電過(guò)程還是放電過(guò)程,基于GWO-BP神經(jīng)網(wǎng)絡(luò)的SOC預(yù)測(cè)準(zhǔn)確度要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。
根據(jù)同樣的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集以及PSO優(yōu)化算法的參數(shù)設(shè)置,預(yù)測(cè)效果如圖11至圖14所示。
圖11 放電過(guò)程PSO-BP測(cè)試樣本SOC值對(duì)比
圖12 放電過(guò)程PSO-BP測(cè)試樣本相對(duì)誤差
圖13 充電過(guò)程PSO-BP測(cè)試樣本SOC值對(duì)比
圖14 充電過(guò)程PSO-BP測(cè)試樣本相對(duì)誤差
從圖12和圖14可以看出,基于PSO-BP神經(jīng)網(wǎng)絡(luò)的SOC預(yù)測(cè)結(jié)果,放電過(guò)程SOC預(yù)測(cè)的平均相對(duì)誤為0.59%,最大相對(duì)誤差為3.86%;充電過(guò)程SOC預(yù)測(cè)的平均相對(duì)誤差為0.53%,最大相對(duì)誤差為3.21%。
三種神經(jīng)網(wǎng)絡(luò)充放電誤差對(duì)比如表1所示。
表1 三種算法充放電過(guò)程誤差對(duì)比(%)
三種算法充放電過(guò)程訓(xùn)練預(yù)測(cè)時(shí)間以及占用內(nèi)存如表2所示。
表2 三種算法充放電過(guò)程訓(xùn)練時(shí)間及占用內(nèi)存對(duì)比
由表1可以看出充電過(guò)程和放電過(guò)程中,GWO-BP神經(jīng)網(wǎng)絡(luò)的平均相對(duì)誤差比未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)都要小。由此可見(jiàn),經(jīng)過(guò)灰狼算法優(yōu)化過(guò)的BP神經(jīng)網(wǎng)絡(luò)比粒子群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)在優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值方面效果更好,進(jìn)一步提升了預(yù)測(cè)準(zhǔn)確率。由表2可以看出PSO-BP和GWO-BP不管是在充電過(guò)程還是放電過(guò)程,其訓(xùn)練預(yù)測(cè)時(shí)間和占用內(nèi)存都很接近,而B(niǎo)P神經(jīng)網(wǎng)絡(luò)相對(duì)于兩種優(yōu)化過(guò)的算法,其訓(xùn)練預(yù)測(cè)時(shí)間較短,占用內(nèi)存較小。
本文基于電動(dòng)汽車(chē)云平臺(tái)長(zhǎng)采樣周期的電池運(yùn)行數(shù)據(jù),進(jìn)行電池SOC預(yù)測(cè)算法的研究。特別是考慮到電動(dòng)汽車(chē)的特點(diǎn),將SOC神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型分成充電模型和放電模型分別進(jìn)行訓(xùn)練和建模,得到了較為理想的結(jié)果。
本文利用GWO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,解決了BP神經(jīng)網(wǎng)絡(luò)依賴(lài)初始權(quán)值和閾值的問(wèn)題,進(jìn)一步提高了神經(jīng)網(wǎng)絡(luò)SOC預(yù)測(cè)算法的精度。實(shí)驗(yàn)結(jié)果表明,無(wú)論是充電過(guò)程還是放電過(guò)程,GWO-BP神經(jīng)網(wǎng)絡(luò)比未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度更高。
隨著未來(lái)5G通信技術(shù)的發(fā)展和普及,流量和通信速度會(huì)極大提升,上傳到云平臺(tái)的電池運(yùn)行數(shù)據(jù)的采樣周期會(huì)極大地縮短,更多的細(xì)節(jié)部分會(huì)保留下來(lái),則通過(guò)云平臺(tái)直接計(jì)算SOC并反饋給BMS將會(huì)成為可能,SOC估計(jì)的精度將會(huì)有著極大的提升。