牛鑫強,田晶京,趙 峰,王 英
(蘭州交通大學(xué)自動化與電氣工程學(xué)院,甘肅 蘭州 730070 )
荷電狀態(tài)(SOC)是使用和控制電池時的一個重要指標,SOC偏低,會影響電池性能的發(fā)揮。文獻[1]提出了一種將粒子群優(yōu)化算法(PSO)和遺傳算法(GA)相結(jié)合的混合啟發(fā)式算法,并引入混沌機制,用優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)對電池SOC進行估算,可將誤差控制在2%以內(nèi)。該算法是一種數(shù)據(jù)驅(qū)動的方法,未考慮環(huán)境溫度變化對SOC的影響。文獻[2]提出了基于近似二階擴展卡爾曼濾波(ASEKF)的鋰離子電池SOC估算方法,誤差在2%以下。該算法是一種基于模型的方法,可準確地估計SOC,但存在模型選擇是否精準和計算量大的問題,無法用于快速估計由大量電池組成的儲能系統(tǒng)。安時積分法可對電池容量進行準確測量,能精準地測量電池的SOC,但條件一般較為苛刻,在實際應(yīng)用中,電池的位置相對固定,通常無法采用直接測量法。
本文作者將電池充放電時的電壓、電流和環(huán)境溫度作為估計電池SOC的輸入?yún)?shù),基于用遺傳算法改進的BP神經(jīng)算法,搭建估計電池壽命的預(yù)測模型,然后對不同環(huán)境溫度下的電池SOC進行估計,最后將輸出值與實際值進行對比,得到平均誤差和最大誤差值,對模型的準確性進行驗證。
電池的SOC一般可由剩余容量表示,如式(1)所示。
(1)
式(1)中:Soc表示用電池容量衡量的電池的SOC;Qnow為電池當前的剩余容量;Q0為電池的額定容量。
充放電時的電壓和電流等,通常可反映電池的SOC。在恒流-恒壓充電的條件下,電壓和電流變化曲線相對規(guī)律,局部時間段內(nèi)的電壓、電流、溫度與同一個SOC估算值具有相同的對應(yīng)關(guān)系[3]。在恒流放電的條件下,放電中期電壓變化相對平穩(wěn),在放電末期的小范圍內(nèi)會有突變,但電池容量基本不會突變,放電電壓、電流與電池容量有非線性對應(yīng)關(guān)系。
測試對象為18650型磷酸鐵鋰正極鋰離子電池(深圳產(chǎn)),工作電壓2.50~3.65 V,標稱電壓3.20 V,額定容量1 600 mAh。實驗設(shè)備為:GH-80恒溫恒濕試驗箱(東莞產(chǎn)),可調(diào)節(jié)的溫度范圍為-70~150 ℃,溫度誤差為±0.5 ℃;TR9611電子負載儀(蘇州產(chǎn)),功率為400 W,可進行電池的恒流恒壓放電測試,精度為0.05%。
實驗步驟為:將待測試電池放入恒溫恒濕試驗箱中,測試儀由恒溫箱的外部接口與電池連接,進行充放電實驗。
第一步:以1.00C的倍率恒流充電至3.65 V;轉(zhuǎn)恒壓充電至電流小于0.05C。第二步:利用恒溫恒濕試驗箱模擬6種環(huán)境溫度(-10 ℃、0 ℃、10 ℃、20 ℃、30 ℃和40 ℃),將6只待測電池在不同溫度下分別靜置10 min后,以1.00C恒流放電至2.50 V,完成測試。放電期間,每150 s通過測試儀記錄一次電池容量,得到的電池剩余容量變化曲線見圖1。

圖1 不同溫度下電池的SOC曲線
從圖1可知,環(huán)境溫度為20~40 ℃時,電池的初始容量差異不大且相對較高,同時衰減速率相對一致。當環(huán)境溫度降至10 ℃時,電池的初始容量有明顯的衰減,且隨環(huán)境溫度的降低而逐漸降低,衰減速率也逐漸增大。這表明,環(huán)境溫度是影響電池SOC的一個重要因素。
人工神經(jīng)網(wǎng)絡(luò)在處理非線性問題上有較好的效果。實驗利用改進的BP神經(jīng)網(wǎng)絡(luò),解決不同環(huán)境溫度下的電池SOC估計問題[4]。
實驗所用的拓撲結(jié)構(gòu)如圖2所示。

圖2 SOC估計模型拓撲結(jié)構(gòu)圖
實驗建立的電池SOC估計模型,隱含層的個數(shù)m一般由經(jīng)驗公式確定,如式(2)所示。
(2)
式(2)中:a為1~10的常數(shù);l為輸入神經(jīng)元的個數(shù);n為輸出神經(jīng)元的個數(shù)。
隱含層中第i個神經(jīng)元的輸出a1i為:
(3)
式(3)中:b1j為對應(yīng)的隱含層中神經(jīng)元的閾值;wij為第j個輸入層神經(jīng)元與第i個隱含層神經(jīng)元的連接權(quán)值;pj為輸入值;f1為輸入層和隱含層之間的函數(shù)關(guān)系式。
輸出層第k個神經(jīng)元的輸出為:
(4)
式(4)中:a2k為電池的SOC預(yù)估值;b2k為輸出層神經(jīng)元閾值;wki為第i個隱含層神經(jīng)元與第k個輸出層神經(jīng)元的連接權(quán)值;f2為隱含層和輸出層之間的函數(shù)關(guān)系式。
BP神經(jīng)網(wǎng)絡(luò)存在結(jié)構(gòu)不易確定、不保證收斂到全局最優(yōu)解的問題[5]。遺傳算法是一種優(yōu)化算法,可用來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)中的初始權(quán)重值和閾值[6]。優(yōu)化過程如下:
①確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。輸入神經(jīng)元個數(shù)為3,輸出神經(jīng)元個數(shù)為1,由經(jīng)驗公式確定,隱含層神經(jīng)原個數(shù)為6。
②初始化種群。遺傳算法優(yōu)化參數(shù)為神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,將權(quán)值和閾值進行二進制轉(zhuǎn)換,連接全部的權(quán)值和閾值,形成種群中的個體編碼。
③適應(yīng)度函數(shù)。判斷權(quán)值和閾值是否為最優(yōu)值時,將預(yù)測值和期望值的誤差作為適應(yīng)度函數(shù)變量值C,如式(5)所示,判斷適應(yīng)度函數(shù)值是否滿足優(yōu)化條件。若滿足則進行第④步,否則刪除該個體。
(5)
式(5)中:f(C)為適應(yīng)度函數(shù)。
④復(fù)制、交叉、變異。遺傳算法進行篩選最優(yōu)個體的過程有復(fù)制、交叉和變異。
復(fù)制采用賭輪盤的方式,選擇概率Pu如式(6)所示。
(6)
式(6)中:Xu為第u個個體;N為種群中的個體總數(shù),將這一代種群中適應(yīng)度較高的個體復(fù)制到下一代。
個體的編碼方式為實數(shù)編碼,因此采用實數(shù)交叉法:
(7)
式(7)中:vxt和vyt分別為x和y基因上的第t個位點;β為[0,1]的隨機數(shù)。
變異的方式如式(8)所示。
(8)
式(8)中:vzt為z基因上的第t個位點;vmax和vmin分別為vzt的最大上界值和最小下界值;r為[0,1]的隨機數(shù);h(g)為邊界函數(shù)。
(9)
式(9)中:r0為[0,1]的隨機數(shù);g為當前迭代次數(shù);Gmax為最大進化代數(shù)。
⑤重復(fù)步驟②-④,直至遺傳算法達到誤差要求或最大代數(shù),篩選出最優(yōu)神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。具體流程見圖3。

圖3 改進BP神經(jīng)網(wǎng)絡(luò)算法流程框圖
遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)算法主要過程如下:
①獲取訓(xùn)練樣本。將60只電池分成12組,每組5只;將12組電池分別置于12種模擬環(huán)境溫度(-15 ℃、-10 ℃、-5 ℃、0 ℃、5 ℃、10 ℃、15 ℃、20 ℃、25 ℃、30 ℃、35 ℃和40 ℃)下,進行充放電實驗,每60 s記錄放電過程中電池的電壓、電流和電池的當前容量,得到訓(xùn)練樣本數(shù)據(jù)。
②數(shù)據(jù)預(yù)處理。為避免有誤樣本數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)的影響,篩選出樣本數(shù)據(jù)中數(shù)據(jù)偏差較大的樣本。
③設(shè)置初始參數(shù)。初始參數(shù)主要包括兩部分:神經(jīng)網(wǎng)絡(luò)初始參數(shù)和遺傳算法初始參數(shù)。
④使用訓(xùn)練樣本對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。訓(xùn)練樣本是根據(jù)實際值和估計值的誤差,進行神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值修正的過程,直至神經(jīng)網(wǎng)絡(luò)的目標函數(shù)滿足要求。
⑤得到電池的預(yù)測SOC估算值。將測得的電池數(shù)據(jù)代入輸入層,由神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)得到結(jié)果,即剩余容量估計值。
在真實實驗數(shù)據(jù)的基礎(chǔ)上,對磷酸鐵鋰正極鋰離子電池進行剩余SOC估算,將估計值與實際值進行比較。
獲取3 000組樣本數(shù)據(jù)后,將樣本數(shù)據(jù)的2 500組作為訓(xùn)練數(shù)據(jù),500組作為測試數(shù)據(jù),訓(xùn)練神經(jīng)網(wǎng)絡(luò)。將均方誤差作為訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目標函數(shù),得到的訓(xùn)練過程見圖4。

圖4 神經(jīng)網(wǎng)絡(luò)樣本訓(xùn)練過程圖
從圖4可知,在神經(jīng)網(wǎng)絡(luò)迭代695次后,誤差達到理想值。將該神經(jīng)網(wǎng)絡(luò)模型保存后,用于在不同環(huán)境溫度下對電池的SOC進行估計。實際應(yīng)用時,環(huán)境溫度不是恒定值而是變化量。用測試儀對電池進行放電測試,得到真實容量,同時,每150 s將測得的電池電流、電壓和環(huán)境溫度代入神經(jīng)網(wǎng)絡(luò)中,對電池進行SOC估計,實際結(jié)果和估計結(jié)果對比見圖5。
為驗證算法的有效性和準確率,要進行誤差分析。比較容量的實際值(Qreal)和估計值(Qest),得到容量誤差Qerror:
(10)
用式(10)對圖5中的數(shù)據(jù)進行計算,從全局角度出發(fā),得到全局誤差平均值和全局誤差最大值,結(jié)果如表1所示。

表1 全局誤差分析表

圖5 電池SOC估計結(jié)果對比
為了更直觀地反映誤差的結(jié)果,將誤差點用散點的形式連接,得到如圖6所示的誤差散點圖。
從圖6可知,估計模型的誤差在放電末期開始變大,原因是鋰離子電池在放電末期會出現(xiàn)強極化非線性現(xiàn)象,即電壓與容量間的關(guān)系表現(xiàn)為強非線性。在低溫條件下,預(yù)測結(jié)果誤差相對較大,原因是低溫下電池中的電解液會出現(xiàn)部分冷凝的現(xiàn)象,電池化學(xué)反應(yīng)滯后,極化增大、阻抗增大,使輸入量與估計量之間的非線性關(guān)系增強,進而導(dǎo)致誤差增大。

圖6 容量估計誤差散點圖
本文作者通過恒溫恒濕實驗箱、測試儀等設(shè)備,對不同環(huán)境溫度下磷酸鐵鋰正極鋰離子電池的SOC變化開展了實驗,并考慮環(huán)境溫度對電池SOC的影響。利用得到的數(shù)據(jù),訓(xùn)練用遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)估計模型,結(jié)合實際情況,在室外環(huán)境溫度變化的情況下,每150 s對測試電池進行一次SOC估計,得出以下結(jié)論:
通過不同環(huán)境溫度下的電池SOC變化測試實驗,證實環(huán)境溫度是影響電池SOC的重要因素。當環(huán)境溫度達到25 ℃時,隨著環(huán)境溫度的降低,電池的初始SOC值開始降低;在環(huán)境溫度低于0 ℃時,電池內(nèi)部的電解液可能會發(fā)生凝結(jié),造成容量衰減過快的現(xiàn)象。
建立的估計模型在-10~-8 ℃的低溫條件下,SOC估計全局誤差為2.42%,最大誤差為9.63%,精度較高,且電池放電時的電流、電壓和環(huán)境溫度的數(shù)據(jù)容易獲取,數(shù)據(jù)驅(qū)動的方法有一定的工程應(yīng)用價值。