国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于布谷鳥搜索優(yōu)化神經(jīng)網(wǎng)絡(luò)的鋰電池荷電狀態(tài)預(yù)測

2021-08-23 09:02:08陸佳偉佘世剛魏新堯王雪硯
計(jì)算機(jī)測量與控制 2021年8期
關(guān)鍵詞:布谷鳥鋰電池權(quán)值

陸佳偉,佘世剛,魏新堯,王雪硯,朱 雅

(常州大學(xué) 機(jī)械工程學(xué)院,江蘇 常州 213164)

0 引言

為了減少大氣污染,加強(qiáng)生態(tài)文明建設(shè),國家大力扶持和推廣新能源汽車。目前新能源汽車的性能、價(jià)格、使用壽命、安全性制約著動力電池系統(tǒng)的進(jìn)一步發(fā)展。鋰離子電池憑借工作電壓穩(wěn)定,體積小但儲能大,無記憶效應(yīng),自放電低且安全環(huán)保等特點(diǎn),已經(jīng)成為新能源汽車動力源的新寵[1]。在實(shí)際使用中,要想把電池系統(tǒng)的動力性能充分發(fā)揮出來,有效延長電池的使用壽命,提高電動汽車的使用體驗(yàn),那就對電池的荷電狀態(tài)(SOC, state of charge)的估算精度提出了一定的要求。SOC的預(yù)測在電池管理系統(tǒng)(BMS, battery management system)中有著舉足輕重的地位,精確的預(yù)測鋰電池SOC可以有效避免電池的過充、過放,尤其是在寒冷的冬天,鋰電池的續(xù)航能力會明顯下降,這就需要精準(zhǔn)預(yù)測鋰電池剩余電量,方便使用者提前做好行程規(guī)劃,合理使用剩余電量,同時(shí)保證整個(gè)電池系統(tǒng)的安全性,更好保護(hù)駕駛?cè)藛T和乘車人員的生命安全。

SOC是用來描述電池在使用過程中,可以充入和放出容量的重要參數(shù)[2],可以通過計(jì)算電池的剩余容量與電池總?cè)萘康谋戎但@得,計(jì)算公式如式(1)所示:

(1)

式中,Qr為電池剩余電量;Qi為電池基準(zhǔn)容量。影響電池SOC的因素不計(jì)其數(shù),比如電池內(nèi)阻、溫度、充放電倍率等,所以在日常實(shí)際操作預(yù)測中,具有一定的挑戰(zhàn)難度。目前研究者們慣用的一些SOC估算方法,比如安時(shí)積分法、開路電壓法、卡爾曼濾波法、人工神經(jīng)網(wǎng)絡(luò)法[3]。徐尖峰等采用安時(shí)積分法對電池SOC進(jìn)行估算,安時(shí)積分法相對簡單,但是對電流的積分會伴隨一定誤差,且不斷累積,而且需要知道SOC初始值[4]。李爭等采用的是開路電壓法,雖然簡單易行,精度較高,但是電池組需要靜置一段時(shí)間,無法用于實(shí)時(shí)估算[5]。文獻(xiàn)[6]利用卡爾曼濾波法,需要知道SOC信號模擬方程及測量方程,但也存在一些問題無法解決,比如單體的離散等。人工神經(jīng)網(wǎng)絡(luò)法快速易行,能有效克服以上幾種方法的不足,有強(qiáng)大的自學(xué)能力,具有較強(qiáng)的非線性逼近能力,非常適合鋰電池SOC的估算。趙鋼等將放電電壓、放電電流、電池表面溫度及當(dāng)前放電總量作為輸入量,SOC作為輸出量,建立網(wǎng)絡(luò)結(jié)構(gòu),在恒電流工況實(shí)驗(yàn)下得到了良好的預(yù)測結(jié)果[7]。

誤差反向傳播(BP,back propagation)神經(jīng)網(wǎng)絡(luò)憑借其通用性好的特點(diǎn),而得到廣泛的應(yīng)用,但也存在著一些缺點(diǎn),比如網(wǎng)絡(luò)的初始權(quán)值和閾值,是隨機(jī)產(chǎn)生的,會大大影響網(wǎng)絡(luò)的輸出特性,這樣帶來的結(jié)果就是易入局部最優(yōu),從而也會影響收斂速度,還有一些難點(diǎn)急需研究解決,如隱含層的設(shè)計(jì),目前所用的都是根據(jù)前人的經(jīng)驗(yàn),加上設(shè)計(jì)者的反復(fù)試驗(yàn),來確定隱含層節(jié)點(diǎn)數(shù)目。

為了降低初始權(quán)值和閾值對整個(gè)BP神經(jīng)網(wǎng)絡(luò)的影響,提高算法估算的精度,加快收斂的速度,本文提出一種基于布谷鳥搜索算法(CS,cuckoo search)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的鋰電池SOC預(yù)測方法。其中CS是通過模擬布谷鳥的寄生育雛的方式,尋找全局最佳的智能優(yōu)化算法,它與神經(jīng)網(wǎng)絡(luò)結(jié)合在一起,可以改善陷入局部最優(yōu)點(diǎn)的情況,還伴有收斂速度明顯加快的效果。為驗(yàn)證CS-BP算法的真實(shí)預(yù)測效果,將它與BP算法作比較,結(jié)果表明該算法具有更好的預(yù)測能力。

1 BP神經(jīng)網(wǎng)絡(luò)

BP神經(jīng)網(wǎng)絡(luò)是一種簡單的多層前饋神經(jīng)網(wǎng)絡(luò),其模型是按照誤差逆向傳播算法訓(xùn)練的。算法由兩個(gè)部分組成,一個(gè)是輸入信號的前向傳遞,在這一過程中,輸入信號先傳遞給隱含層,再傳遞給輸出層,逐層處理,前面一層的輸出結(jié)果,作為后面一層的輸入,最后輸出層得到的數(shù)據(jù)再與計(jì)算得到的期望值比較,若不滿足誤差要求,則轉(zhuǎn)入第二個(gè)部分誤差的反向傳播,這一階段,再根據(jù)預(yù)測誤差的大小調(diào)整網(wǎng)絡(luò)的閾值和權(quán)值,從而可以得到想要擬合函數(shù)的模型[8]。

圖1 BP神經(jīng)網(wǎng)絡(luò)的SOC估計(jì)模型

鋰電池的電壓U、電流I、溫度T、放電時(shí)間t是影響電池SOC的重要參數(shù),作為神經(jīng)網(wǎng)絡(luò)輸入層的輸入矢量,輸入矢量為[X1,X2,X3,X4],輸入層的節(jié)點(diǎn)數(shù)為n=4,輸出矢量為[Y],節(jié)點(diǎn)數(shù)m=1,隱含層的節(jié)點(diǎn)數(shù)的設(shè)計(jì),利用經(jīng)驗(yàn)公式:

(2)

其中:α為[1,10]范圍內(nèi)的任一常數(shù),經(jīng)過多次仿真試驗(yàn),取l=12時(shí),網(wǎng)絡(luò)的誤差精度更高,收斂速度也更快。xi(i=1,2,…,4)表示其輸入亦即該層的輸出;隱含層由12個(gè)神經(jīng)元組成,zk(k=1,2,…,12)代表的是隱含層的輸出,θk(k=1,2,…,12)表示的是隱含層的閾值;這里輸出層只有1個(gè)神經(jīng)元,用y表示輸出結(jié)果,即鋰電池SOC的預(yù)測值,用φ表示輸出層的閾值;用vik(i=1,2,…,4;k=1,2,…,12)表示連接輸入層與隱含層之間的權(quán)值;用wk(k=1,2,…,12)代表連接隱含層與輸出層之間的權(quán)值。隱含層采用logsig函數(shù)f(x)=1/(1+e-x)為激活函數(shù),輸出層采用Purelin函數(shù)g(y)=y為激活函數(shù),性能函數(shù)采用均方誤差性能函數(shù)(MSE,mean squared error)。算法步驟如下:

1)初始化。假設(shè)初始迭代次數(shù)t=0,BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值為[-1,1]內(nèi)的隨機(jī)數(shù),即vik(t)∈[-1,1],wk(t)∈[-1,1],θk(t)∈[-1,1],φ(t)∈[-1,1];

2)信號正向傳播。輸入一個(gè)樣本(Xm,Ym),其中m∈{1,2,…,M},M為樣本數(shù),X=[I,V,T,t]T∈R4×m,Y表示SOC的真實(shí)值;

3)計(jì)算隱含層的輸入與輸出:

(3)

zk=f(Sk-θk)

(4)

4)計(jì)算輸出層的輸入與輸出:

(5)

y=f(S-φ)

(6)

5)誤差逆向傳播。計(jì)算輸出層各節(jié)點(diǎn)誤差:

Err=y(1-y)(Y-y)

(7)

6)計(jì)算隱層各節(jié)點(diǎn)誤差:

Errk=zk(1-zk)wkErr

(8)

7)權(quán)重更新:

wk(t+1)=wk(t)+αzkErr

(9)

vik(t+1)=vik(t)+αxiErrk

(10)

其中:α為學(xué)習(xí)速率;

8)閾值更新:

φ(t+1)=φ(t)+ηErr

(11)

θk(t+1)=θk(t)+ηErrk

(12)

式中,η為學(xué)習(xí)率;

9)隨機(jī)抽取樣本進(jìn)行學(xué)習(xí),直到取完所有學(xué)習(xí)樣本為止,進(jìn)行下一步,否則重新返回步驟2)開始執(zhí)行;

10)計(jì)算每一個(gè)樣本在輸出層的誤差函數(shù)Em:

Em=(Ym-ym)2

(13)

對所有的樣本的均方誤差進(jìn)行累計(jì)求和,就可得到基于BP神經(jīng)網(wǎng)絡(luò)模型的SOC估計(jì)的目標(biāo)函數(shù):

(14)

將既定的誤差與E比較,如果E小于誤差精度要求或者學(xué)習(xí)次數(shù)達(dá)到規(guī)定次數(shù),則算法結(jié)束;否則更新學(xué)習(xí)次數(shù)t←t+1,并重新回到步驟2)繼續(xù)執(zhí)行。

BP網(wǎng)絡(luò)易出現(xiàn)過度擬合,過度擬合是指將一組測試集的某些特性視為所有可能的測試集都具有的通用特性,從而降低了泛化的有效性。在機(jī)器學(xué)習(xí)中,這種現(xiàn)象被稱為“過度擬合”。一旦出現(xiàn)過度擬合情況,BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差會繼續(xù)減少,但測試誤差反而增加。解決BP神經(jīng)網(wǎng)絡(luò)的過度擬合主要有兩種思路,一種是“早?!保簩?shù)據(jù)分為訓(xùn)練、驗(yàn)證集。訓(xùn)練集改變梯度,更新各層權(quán)重和閾值,而驗(yàn)證集負(fù)責(zé)誤差估算。在訓(xùn)練集誤差減少,驗(yàn)證集誤差增加時(shí)停止訓(xùn)練,并返回驗(yàn)證集誤差最小時(shí)的權(quán)重和閾值。另一種思路是“正則化”。主要思路是通過增加一個(gè)描述復(fù)雜網(wǎng)絡(luò)部分的函數(shù)來優(yōu)化誤差目標(biāo)函數(shù)。

2 CS-BP神經(jīng)網(wǎng)絡(luò)

2.1 布谷鳥算法

布谷鳥搜索(CS,cuckoo search)最早是在2009年,由劍橋大學(xué)的X.S.Yang等提出開發(fā)的一種新型自然啟發(fā)式算法[9],該算法思想是基于布谷鳥產(chǎn)卵繁殖方式和Levy飛行[10]。其中Levy飛行是一種隨機(jī)游走,每一步方向完全任意,經(jīng)常性的歩長較小的短距離行走與偶爾性的步長較大的長距離行走相互交替,且步長是一個(gè)穩(wěn)定的重尾分布。將Levy飛行注入到智能搜索算法中,在搜索開始后,長距離行走用于探索整個(gè)大范圍,也就是全局大范圍搜索占優(yōu)勢,不會陷入局部最優(yōu);在搜索后期,短距離行走用于小范圍內(nèi)仔細(xì)搜索,也就是局部搜索占優(yōu)勢,收斂于全局最優(yōu)解,步長距離越小,得到的精度就會越高,從而算法會收斂于全局最大值。Levy飛行中大量的短距離行走,有利于布谷鳥算法局部尋優(yōu),可以提高算法的精度,偶然性的長距離行走又可以將搜索的范圍擴(kuò)大,有助于算法全局尋優(yōu)。Levy飛行每步游走都由兩個(gè)因素控制:一是游走方向,一般選取一個(gè)服從均勻分布的數(shù);二是步長,步長服從Levy分布。為了簡化和模擬布谷鳥的育雛行為,提出了CS算法遵循3條規(guī)則[9]:

1)一只布谷鳥一次只下一個(gè)蛋,并隨機(jī)地放在某個(gè)鳥巢中。

2)只有能孵化出蛋的最佳鳥巢才會被保留,供下一代孵化。

3)有數(shù)量固定的、可用的宿主鳥巢,鳥蛋以一定的概率被宿主鳥發(fā)現(xiàn),如果被發(fā)現(xiàn),鳥蛋就會被拋棄。

在這3條規(guī)則的基礎(chǔ)上,把布谷鳥寄住的鳥巢看成一個(gè)解,由此衍生出的布谷鳥算法的主要步驟為:

1)初始參數(shù),隨機(jī)生成n個(gè)鳥巢位置,計(jì)算各個(gè)鳥巢的適應(yīng)度函數(shù)值,記錄當(dāng)前最優(yōu)解;

2)利用Lévy飛行更新巢穴的位置,更新規(guī)則如下:

xi(t+1)=xi(t)+α?Levy(β)

(15)

式中,xi(t)和xi(t+1)分別為第t次和t+1次迭代第i個(gè)巢穴的位置;α=α0(xi(t)-xbest)是步長信息,用于控制搜索范圍,α0=0.01是常數(shù),xbest表示當(dāng)前最優(yōu)解;?表示點(diǎn)對點(diǎn)乘法;Levy(β)是隨機(jī)搜索路徑,服從Lévy概率分布:

Levy~u=t-1-β,0<β≤2;

(16)

3)將更新后的鳥巢位置與之前的鳥巢位置一一對比,保留測試結(jié)果較優(yōu)的解;

4)根據(jù)鳥巢主人發(fā)現(xiàn)外來物種的概率,對被發(fā)現(xiàn)鳥巢的位置進(jìn)行更新,得到新的位置代替被發(fā)現(xiàn)的:

xi(t+1)=xi(t)+r?Heaviside

(Pa-ε)?(xk(t)-xj(t))

(17)

式中,r和ε為[0,1]區(qū)間內(nèi)正態(tài)分布的隨機(jī)數(shù),Heaviside(u)表示階躍函數(shù),Pa為發(fā)現(xiàn)概率,xk(t)和xj(t)為第t次迭代時(shí)的兩個(gè)隨機(jī)解;

5)測試并比較新一代解的適應(yīng)度值,對于較優(yōu)的個(gè)體,保留傳遞到下一代;

6)如果到了最大迭代次數(shù),則停止,否則反復(fù)迭代步驟2)至步驟5)。

2.2 CS-BP神經(jīng)網(wǎng)絡(luò)

針對BP神經(jīng)網(wǎng)絡(luò)依賴初始權(quán)值閾值、易陷局部最小值等問題,提出利用CS優(yōu)化BP神經(jīng)網(wǎng)絡(luò),主要是先利用CS算法進(jìn)行全局尋優(yōu),優(yōu)化初始權(quán)值和閾值,將最優(yōu)解再賦給BP神經(jīng)網(wǎng)絡(luò),這樣可有效避免陷入局部最優(yōu)問題,同時(shí)提高了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)效率,優(yōu)化可以分為三個(gè)部分:確定BP網(wǎng)絡(luò)結(jié)構(gòu)、CS優(yōu)化以及BP網(wǎng)絡(luò)預(yù)測。第一部分根據(jù)數(shù)據(jù)樣本初步確定BP網(wǎng)絡(luò)結(jié)構(gòu),從而確定權(quán)值和閾值總數(shù);第二部分采用CS優(yōu)化尋找具備最優(yōu)適應(yīng)度值的個(gè)體,找到后對其進(jìn)行反編碼,從而可以得到最優(yōu)的權(quán)值和閾值,可以構(gòu)造CS-BP神經(jīng)網(wǎng)絡(luò);第三部分就是對樣本數(shù)據(jù)進(jìn)行訓(xùn)練并輸出預(yù)測結(jié)果。

總算法流程如圖2所示。

圖2 CS-BP神經(jīng)網(wǎng)絡(luò)流程圖

CS算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法步驟:

1)初始化,種群規(guī)模n、發(fā)現(xiàn)概率Pa及最大迭代次數(shù)Nmax等參數(shù);

3 實(shí)驗(yàn)仿真和結(jié)果分析

3.1 實(shí)驗(yàn)數(shù)據(jù)預(yù)處理

本實(shí)驗(yàn)用到的鋰電池?cái)?shù)據(jù)集,取自于美國國家航空航天局官網(wǎng),公開的鋰電池?cái)?shù)據(jù)儲存庫,從數(shù)據(jù)庫中選擇6、7號電池?cái)?shù)據(jù)集進(jìn)行實(shí)驗(yàn)。本文中將7號電池充放電循環(huán)數(shù)據(jù)作為訓(xùn)練集,將6號電池充放電循環(huán)數(shù)據(jù)作為測試集。首先把兩種電池放在同一環(huán)境內(nèi)靜置30 min,然后在恒流模式下進(jìn)行充電,一直充,電壓達(dá)到4.2 V,轉(zhuǎn)入恒壓充電模式,直到電池完全充滿,充電結(jié)束;再靜置30 min后,在2 A恒流模式下放電開始,直到6號電池的電壓降至2.5 V,7號電池的電壓降至2.2 V,結(jié)束放電。對6號、7號電池都開展168次充放電循環(huán),選取放電數(shù)據(jù)在Matlab環(huán)境下建立模型,得到如圖3所示,兩種鋰電池的容量變化曲線圖。觀察可知,隨著鋰電池充放電循環(huán)次數(shù)的增加,電池內(nèi)部活性材料發(fā)生損耗,鋰電池的實(shí)際容量逐漸衰減。這里選取的是均方根誤差(RMSE,root mean square error)和絕對誤差作為衡量預(yù)測模型好壞的標(biāo)準(zhǔn),計(jì)算公式如式(18):

圖3 兩種鋰電池的容量變化曲線圖

(18)

對原始數(shù)據(jù)進(jìn)行無量綱化處理,通常使用歸一化的方法將每個(gè)向量映射到[0,1]的區(qū)間內(nèi),這里通過式(19)做歸一化處理:

(19)

式中,max和min分別對應(yīng)樣本數(shù)據(jù)的最大值和最小值。

3.2 仿真分析

用Matlab建立BP、CS-BP鋰電池SOC預(yù)測模型。電池的電壓、電流、環(huán)境溫度、放電時(shí)間作為輸入?yún)?shù),SOC值作為輸出,訓(xùn)練目標(biāo)為10-4,隱含層的激活函數(shù)是logsig,輸出層的激活函數(shù)是purelin,訓(xùn)練函數(shù)為trainlm,學(xué)習(xí)率為η=0.01。其中CS算法中發(fā)現(xiàn)概率Pa=0.25,步長α=0.05。CS算法的本質(zhì)是一種尋求最優(yōu)解的算法,對BP算法進(jìn)行優(yōu)化,建立了CS-BP預(yù)測模型。為了驗(yàn)證該算法的泛化能力,用建立好的兩種算法對6號和7號電池?cái)?shù)據(jù)集進(jìn)行訓(xùn)練和仿真。對于這兩種預(yù)測模型,圖4給出兩種算法的均方根誤差曲線圖,隨機(jī)選取第168次的CS-BP算法的RMSE值比BP算法的RMSE值降低了0.015 2,CS-BP算法的RMSE值比BP算法的RMSE值平均降低了0.010 6。

圖4 均方根誤差曲線圖

仿真后得到如圖5所示的CS-BP算法的SOC預(yù)測值和真實(shí)值。從圖5可以看出,CS-BP算法的預(yù)測值比BP算法要更接近真實(shí)值,并且如圖6所示,單次放電下電池SOC隨時(shí)間變化預(yù)測誤差曲線,CS-BP算法的最大絕對誤差比BP算法的最大絕對誤差降低了0.024 1,表明了CS-BP算法和BP算法相比,對鋰電池SOC的估算更加精確。

圖5 SOC隨時(shí)間變化曲線圖

圖6 SOC隨時(shí)間變化預(yù)測誤差曲線圖

4 結(jié)束語

本文主要研究了基于CS-BP神經(jīng)網(wǎng)絡(luò)的鋰電池SOC的估算方法。傳統(tǒng)的BP算法存在依賴初始權(quán)值閾值,容易陷入局部最優(yōu)等缺點(diǎn),因此在此基礎(chǔ)上,先運(yùn)行CS算法對初始權(quán)值和閾值進(jìn)行尋優(yōu),將得到的優(yōu)解再傳給BP神經(jīng)網(wǎng)絡(luò),建立估算模型,仿真結(jié)果顯示,基于CS-BP算法的SOC估算比傳統(tǒng)的BP算法估算精度更高。

由于實(shí)驗(yàn)條件的影響,人為排除了電池壽命等因素,接下來的工作要考慮多種影響因素,完成更高精度的預(yù)測。

猜你喜歡
布谷鳥鋰電池權(quán)值
一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
布谷鳥讀信
布谷鳥讀信
CONTENTS
噓!布谷鳥來了
大灰狼(2019年4期)2019-05-14 16:38:38
基于權(quán)值動量的RBM加速學(xué)習(xí)算法研究
布谷鳥叫醒的清晨
基于SVM的鋰電池SOC估算
一種多采樣率EKF的鋰電池SOC估計(jì)
鋰電池百篇論文點(diǎn)評(2014.6.1—2014.7.31)
合江县| 商城县| 海城市| 安丘市| 合作市| 永康市| 舟山市| 侯马市| 密云县| 台东市| 博白县| 东台市| 九龙城区| 安龙县| 翁牛特旗| 武山县| 舞钢市| 武安市| 西峡县| 双牌县| 榕江县| 徐州市| 台州市| 长泰县| 禹州市| 伊川县| 宁晋县| 华阴市| 平武县| 东明县| 宁夏| 治县。| 德昌县| 忻城县| 扬中市| 淳化县| 将乐县| 富顺县| 平安县| 铁岭市| 兴安县|