任舒蕊,王 琪,2
(1.西安工業(yè)大學 電子信息工程學院,西安710032;2.西北工業(yè)大學 電子信息學院,西安710072)
作為電動汽車電池管理的關(guān)鍵指標,SOC 表示動力電池的剩余電量,這是無法直接測量的狀態(tài)量,需要使用特定的數(shù)學模型或算法進行測量和估計[1-2]。準確估算動力電池SOC,以優(yōu)化車輛功率分配,可以避免由于電池不一致而導(dǎo)致單個電池過度充電或過度放電,確保整個電池組發(fā)揮最大效率[3-4]。
動力電池因其復(fù)雜的特性難以創(chuàng)建準確的數(shù)學模型,因此大多數(shù)學者進行SOC 估算時采用BP 神經(jīng)網(wǎng)絡(luò)模型[5]。BP 神經(jīng)網(wǎng)絡(luò)擁有非常強大的非線性擬合能力,只是單純的神經(jīng)網(wǎng)絡(luò)在學習過程中收斂緩慢,很容易達到局部最小值[6]。天牛須算法[7](beetle antennae search,BAS)是近幾年提出來的一種單體搜索算法,在處理復(fù)雜優(yōu)化問題上有著較高的效率。將天牛須算法(BAS)與BP 網(wǎng)絡(luò)結(jié)合形成BAS-BP 神經(jīng)網(wǎng)絡(luò)聯(lián)合算法用于電池SOC 估算,克服了BP 神經(jīng)網(wǎng)絡(luò)容易過分進行數(shù)據(jù)擬合的缺點,提高了估算的準確性。
基于此,在充分考慮環(huán)境溫度對動力電池SOC的影響下,本文提出了利用天牛須算法(BAS)改善BP 神經(jīng)網(wǎng)絡(luò),建立BAS-BP 網(wǎng)絡(luò)預(yù)測模型,通過仿真實驗比較兩種不同模型得出的SOC 值,以此來證明優(yōu)化算法的準確性。
神經(jīng)網(wǎng)絡(luò)通常分為3 層結(jié)構(gòu),即輸入層—輸入變量數(shù)據(jù);輸出層—預(yù)測輸出結(jié)構(gòu);隱含層—實驗數(shù)據(jù)的權(quán)重[8-9]。本文把BP 神經(jīng)網(wǎng)絡(luò)的輸入向量設(shè)置為動力電池的環(huán)境溫度(T),電壓(U),電流(I),輸出向量為電池荷電狀態(tài)SOC,即SOC=f(U,I,T)。BP 神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。
圖1 BP 網(wǎng)絡(luò)拓撲結(jié)構(gòu)Fig.1 BP network topology
本文中環(huán)境溫度、電壓、電流作為網(wǎng)絡(luò)的輸入,將剩余電量SOC 作為網(wǎng)絡(luò)的輸出層,隱含層節(jié)點數(shù)量的計算公式為
式中:a 為在[1,10]區(qū)間的數(shù)值,且根據(jù)上式計算可算出隱含層節(jié)點數(shù)量大于等于3 小于等于12。經(jīng)過多次仿真實驗得到, 網(wǎng)絡(luò)仿真效果達到最高時,隱含層節(jié)點數(shù)m=6。
從嗅覺獲取食物的氣味強度是天牛須覓食的生物學原理,即當天牛須右側(cè)的食物氣味高于左側(cè)時,天牛須會飛向右側(cè),簡而言之天牛須會向食物氣味高的一側(cè)飛行[7]。天牛須算法的優(yōu)勢在于天牛須查找不需要知道函數(shù)的特定形式,也不需要有效梯度的信息即可進行優(yōu)化[10-11]。另外,只需要一只天牛來搜索,這大大減少了運算量,天牛須算法簡化模型如圖2所示。
圖2 天牛須搜索算法簡化模型Fig.2 Simplified model of longhorn whisker search algorithm
天牛須建模步驟如下:
1)建立天牛須行動的任意方向向量:
2)創(chuàng)建天牛左、右須空間坐標:
式中:xl,xr分別為天牛須左、右觸角位置坐標;d0表示兩觸角之間的距離;x 為天牛質(zhì)心坐標。
3)明確天牛兩個胡須的味道強弱。通過比較f(xl)和f(xr)的大小來確定天牛行進方向,即
式中:sign()為符號函數(shù);δ 為步長因子。
天牛須算法(BAS)的使用具有簡單、參數(shù)少、計算量少等優(yōu)點,在處理低維優(yōu)化目標時具有非常大的優(yōu)勢[12-14],本文將其與BP 網(wǎng)絡(luò)相結(jié)合,創(chuàng)建了BASBP 網(wǎng)絡(luò)預(yù)測模型預(yù)測SOC。BAS-BP 算法流程如圖3所示。
圖3 BAS 優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)流程Fig.3 BAS optimizes BP neural network flow chart
BAS-BP 模型建立具體步驟:
1)由BP 網(wǎng)絡(luò)結(jié)構(gòu)確定空間搜索維度,即優(yōu)化的粒子個數(shù)為
式中:a,b,c 表示輸入層、隱含層、輸出層中的神經(jīng)元個數(shù)。
2)判斷步長因子δ。開始時刻的步長因子不宜太小,容易影響收斂速度。
式中:eta 是接近1 的數(shù)字,此處eta=0.8。通過多次實驗,確定初始步長為30,初始迭代次數(shù)設(shè)置為50。
3)確定適應(yīng)度函數(shù)。選擇基本測量方法作為平方誤差適應(yīng)性評估函數(shù),適應(yīng)性函數(shù)為
式中:N 為訓(xùn)練樣本數(shù);tsim(i)為第i 個樣本的模型輸出值;yi為樣本的實際值。
4)隨機設(shè)置天牛起始位置,計算它的適應(yīng)度函數(shù),并存儲于bestX(最佳天牛起始位置)和bestY(起始位置的最優(yōu)適應(yīng)度函數(shù)值)中。
5)將天牛須的空間坐標進行更新,計算出兩須之間的適應(yīng)度函數(shù)值進行比較。依據(jù)空間坐標更新天牛位置并計算此時位置的函數(shù)度適應(yīng)值。如果它比bsetY 好,則更新bestX 和bsetY。
6)判定適應(yīng)度函數(shù)值是否滿足精度要求,或者是否滿足最高迭代次數(shù), 其中任一滿足時算法終止。這時的權(quán)值和閾值為bestX 中的最好的解,將其輸入BP 神經(jīng)網(wǎng)絡(luò)中,即形成BAS-BP 神經(jīng)網(wǎng)絡(luò)模型。
本文采用18650 三元鋰電池,電池的標準電壓為3.7 V,充滿電的電壓為4.2 V,標稱容量為2600 mAh。實驗前先給電池充滿電,然后進行放電試驗,在不同的環(huán)境溫度下(0 ℃,10 ℃,20 ℃,25 ℃)以1 s為間隔采集電池的電壓、放電電流以及SOC,用作訓(xùn)練樣本估算電池SOC。
基于天牛須算法參數(shù)初始化的原則,經(jīng)過反復(fù)驗證計算,本文取eta=0.8;c=5;step=30。本文分別創(chuàng)建了BP 神經(jīng)網(wǎng)絡(luò)以及BAS-BP 神經(jīng)網(wǎng)絡(luò),因為訓(xùn)練樣本中影響SOC 的因素有3 個,所以網(wǎng)絡(luò)預(yù)測模型的輸入節(jié)點數(shù)為3。隱含層中節(jié)點數(shù)是按照Kolmogorov 定理選取為6,當m=6 時,優(yōu)化的權(quán)值和閾值個數(shù)為31 個,即組成一個31 維的向量。SOC 作為輸出層即表示輸出節(jié)點L=1。本實驗中,網(wǎng)絡(luò)學習次數(shù)、學習率、訓(xùn)練目標的誤差分別設(shè)置為1000,0.01,0.0001。
對滿電量的單節(jié)電池進行放電試驗,把采集到的所有數(shù)據(jù)中選取23608 組數(shù)據(jù)作為BAS-BP 算法的訓(xùn)練集,隨機抽取100 組作為測試集。兩種模型的預(yù)測曲線分別如圖4和圖5所示。比較圖4和圖5,我們可以看到優(yōu)化前的相對誤差小于5%,優(yōu)化后的相對誤差小于2%,并且優(yōu)化后的相對誤差顯著降低。
圖4 BP 算法預(yù)測SOC 誤差曲線Fig.4 BP algorithm predicts SOC error curve
圖5 BAS-BP 算法預(yù)測SOC 誤差曲線Fig.5 BAS-BP algorithm predicts SOC error curve
BAS-BP 算法對SOC 真實值與預(yù)測值的對比如圖6所示。仿真結(jié)果顯示SOC 的估算值與真實值誤差不超過0.9%,決定系數(shù)R2=0.00978,仿真結(jié)果說明優(yōu)化后算法估計結(jié)果準確。
圖6 BAS-BP 算法對SOC 真實值與預(yù)測值的對比Fig.6 BAS-BP algorithm compares the true value and the predicted value of SOC
對BAS-BP 算法的性能[15]進行驗證,本文經(jīng)過MATLAB 仿真實驗,闡明優(yōu)化算法的性能。當m=6時,BP 網(wǎng)絡(luò)和BAS-BP 迭代曲線訓(xùn)練如圖7及圖8所示, 當m=6 時,BP 網(wǎng)絡(luò)和BAS-BP 網(wǎng)絡(luò)分別經(jīng)過11次和4 次迭代訓(xùn)練到達目標誤差,滿足精度要求。
圖7 m=6 時BP 網(wǎng)絡(luò)訓(xùn)練曲線Fig.7 BP network training curve when m=6
圖8 m=6 時BAS-BP 網(wǎng)絡(luò)訓(xùn)練曲線Fig.8 BAS-BP network training curve when m=6
BP 網(wǎng)絡(luò)訓(xùn)練結(jié)果和BAS-BP 網(wǎng)絡(luò)訓(xùn)練結(jié)果如表1所示。
由表1結(jié)果顯示,BAS-BP 算法估算SOC 相對誤差比BP 算法估算相對誤差減小了18.75%,并且優(yōu)化后的網(wǎng)絡(luò)訓(xùn)練次數(shù)少,網(wǎng)絡(luò)曲線訓(xùn)練時間提高了13%,說明優(yōu)化后的網(wǎng)絡(luò)收斂速度快,能在更短的時間找到最優(yōu)解,得到更加精確的SOC 估算值。
表1 兩種算法訓(xùn)練結(jié)果比較Tab.1 Comparison of training results of two algorithms
本文在充分考慮環(huán)境溫度、電池電壓、電流對SOC 的影響因素下, 利用天牛須算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu), 建立了基于BAS-BP 預(yù)測動力電池SOC的模型,對SOC 進行估算。實驗數(shù)據(jù)結(jié)果顯示,SOC估算誤差≤2%,收斂速度快,進一步提高了SOC 估算的準確性。