牛鑫強(qiáng),田晶京,趙 峰,王 英
(蘭州交通大學(xué)自動(dòng)化與電氣工程學(xué)院,甘肅 蘭州 730070 )
荷電狀態(tài)(SOC)是使用和控制電池時(shí)的一個(gè)重要指標(biāo),SOC偏低,會(huì)影響電池性能的發(fā)揮。文獻(xiàn)[1]提出了一種將粒子群優(yōu)化算法(PSO)和遺傳算法(GA)相結(jié)合的混合啟發(fā)式算法,并引入混沌機(jī)制,用優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)對電池SOC進(jìn)行估算,可將誤差控制在2%以內(nèi)。該算法是一種數(shù)據(jù)驅(qū)動(dòng)的方法,未考慮環(huán)境溫度變化對SOC的影響。文獻(xiàn)[2]提出了基于近似二階擴(kuò)展卡爾曼濾波(ASEKF)的鋰離子電池SOC估算方法,誤差在2%以下。該算法是一種基于模型的方法,可準(zhǔn)確地估計(jì)SOC,但存在模型選擇是否精準(zhǔn)和計(jì)算量大的問題,無法用于快速估計(jì)由大量電池組成的儲(chǔ)能系統(tǒng)。安時(shí)積分法可對電池容量進(jìn)行準(zhǔn)確測量,能精準(zhǔn)地測量電池的SOC,但條件一般較為苛刻,在實(shí)際應(yīng)用中,電池的位置相對固定,通常無法采用直接測量法。
本文作者將電池充放電時(shí)的電壓、電流和環(huán)境溫度作為估計(jì)電池SOC的輸入?yún)?shù),基于用遺傳算法改進(jìn)的BP神經(jīng)算法,搭建估計(jì)電池壽命的預(yù)測模型,然后對不同環(huán)境溫度下的電池SOC進(jìn)行估計(jì),最后將輸出值與實(shí)際值進(jìn)行對比,得到平均誤差和最大誤差值,對模型的準(zhǔn)確性進(jìn)行驗(yàn)證。
電池的SOC一般可由剩余容量表示,如式(1)所示。
(1)
式(1)中:Soc表示用電池容量衡量的電池的SOC;Qnow為電池當(dāng)前的剩余容量;Q0為電池的額定容量。
充放電時(shí)的電壓和電流等,通??煞从畴姵氐腟OC。在恒流-恒壓充電的條件下,電壓和電流變化曲線相對規(guī)律,局部時(shí)間段內(nèi)的電壓、電流、溫度與同一個(gè)SOC估算值具有相同的對應(yīng)關(guān)系[3]。在恒流放電的條件下,放電中期電壓變化相對平穩(wěn),在放電末期的小范圍內(nèi)會(huì)有突變,但電池容量基本不會(huì)突變,放電電壓、電流與電池容量有非線性對應(yīng)關(guān)系。
測試對象為18650型磷酸鐵鋰正極鋰離子電池(深圳產(chǎn)),工作電壓2.50~3.65 V,標(biāo)稱電壓3.20 V,額定容量1 600 mAh。實(shí)驗(yàn)設(shè)備為:GH-80恒溫恒濕試驗(yàn)箱(東莞產(chǎn)),可調(diào)節(jié)的溫度范圍為-70~150 ℃,溫度誤差為±0.5 ℃;TR9611電子負(fù)載儀(蘇州產(chǎn)),功率為400 W,可進(jìn)行電池的恒流恒壓放電測試,精度為0.05%。
實(shí)驗(yàn)步驟為:將待測試電池放入恒溫恒濕試驗(yàn)箱中,測試儀由恒溫箱的外部接口與電池連接,進(jìn)行充放電實(shí)驗(yàn)。
第一步:以1.00C的倍率恒流充電至3.65 V;轉(zhuǎn)恒壓充電至電流小于0.05C。第二步:利用恒溫恒濕試驗(yàn)箱模擬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 ℃時(shí),電池的初始容量差異不大且相對較高,同時(shí)衰減速率相對一致。當(dāng)環(huán)境溫度降至10 ℃時(shí),電池的初始容量有明顯的衰減,且隨環(huán)境溫度的降低而逐漸降低,衰減速率也逐漸增大。這表明,環(huán)境溫度是影響電池SOC的一個(gè)重要因素。
人工神經(jīng)網(wǎng)絡(luò)在處理非線性問題上有較好的效果。實(shí)驗(yàn)利用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò),解決不同環(huán)境溫度下的電池SOC估計(jì)問題[4]。
實(shí)驗(yàn)所用的拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 SOC估計(jì)模型拓?fù)浣Y(jié)構(gòu)圖
實(shí)驗(yàn)建立的電池SOC估計(jì)模型,隱含層的個(gè)數(shù)m一般由經(jīng)驗(yàn)公式確定,如式(2)所示。
(2)
式(2)中:a為1~10的常數(shù);l為輸入神經(jīng)元的個(gè)數(shù);n為輸出神經(jīng)元的個(gè)數(shù)。
隱含層中第i個(gè)神經(jīng)元的輸出a1i為:
(3)
式(3)中:b1j為對應(yīng)的隱含層中神經(jīng)元的閾值;wij為第j個(gè)輸入層神經(jīng)元與第i個(gè)隱含層神經(jīng)元的連接權(quán)值;pj為輸入值;f1為輸入層和隱含層之間的函數(shù)關(guān)系式。
輸出層第k個(gè)神經(jīng)元的輸出為:
(4)
式(4)中:a2k為電池的SOC預(yù)估值;b2k為輸出層神經(jīng)元閾值;wki為第i個(gè)隱含層神經(jīng)元與第k個(gè)輸出層神經(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)元個(gè)數(shù)為3,輸出神經(jīng)元個(gè)數(shù)為1,由經(jīng)驗(yàn)公式確定,隱含層神經(jīng)原個(gè)數(shù)為6。
②初始化種群。遺傳算法優(yōu)化參數(shù)為神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,將權(quán)值和閾值進(jìn)行二進(jìn)制轉(zhuǎn)換,連接全部的權(quán)值和閾值,形成種群中的個(gè)體編碼。
③適應(yīng)度函數(shù)。判斷權(quán)值和閾值是否為最優(yōu)值時(shí),將預(yù)測值和期望值的誤差作為適應(yīng)度函數(shù)變量值C,如式(5)所示,判斷適應(yīng)度函數(shù)值是否滿足優(yōu)化條件。若滿足則進(jìn)行第④步,否則刪除該個(gè)體。
(5)
式(5)中:f(C)為適應(yīng)度函數(shù)。
④復(fù)制、交叉、變異。遺傳算法進(jìn)行篩選最優(yōu)個(gè)體的過程有復(fù)制、交叉和變異。
復(fù)制采用賭輪盤的方式,選擇概率Pu如式(6)所示。
(6)
式(6)中:Xu為第u個(gè)個(gè)體;N為種群中的個(gè)體總數(shù),將這一代種群中適應(yīng)度較高的個(gè)體復(fù)制到下一代。
個(gè)體的編碼方式為實(shí)數(shù)編碼,因此采用實(shí)數(shù)交叉法:
(7)
式(7)中:vxt和vyt分別為x和y基因上的第t個(gè)位點(diǎn);β為[0,1]的隨機(jī)數(shù)。
變異的方式如式(8)所示。
(8)
式(8)中:vzt為z基因上的第t個(gè)位點(diǎn);vmax和vmin分別為vzt的最大上界值和最小下界值;r為[0,1]的隨機(jī)數(shù);h(g)為邊界函數(shù)。
(9)
式(9)中:r0為[0,1]的隨機(jī)數(shù);g為當(dāng)前迭代次數(shù);Gmax為最大進(jìn)化代數(shù)。
⑤重復(fù)步驟②-④,直至遺傳算法達(dá)到誤差要求或最大代數(shù),篩選出最優(yōu)神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。具體流程見圖3。
圖3 改進(jìn)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 ℃)下,進(jìn)行充放電實(shí)驗(yàn),每60 s記錄放電過程中電池的電壓、電流和電池的當(dāng)前容量,得到訓(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ò)進(jìn)行訓(xùn)練。訓(xùn)練樣本是根據(jù)實(shí)際值和估計(jì)值的誤差,進(jìn)行神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值修正的過程,直至神經(jīng)網(wǎng)絡(luò)的目標(biāo)函數(shù)滿足要求。
⑤得到電池的預(yù)測SOC估算值。將測得的電池?cái)?shù)據(jù)代入輸入層,由神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)得到結(jié)果,即剩余容量估計(jì)值。
在真實(shí)實(shí)驗(yàn)數(shù)據(jù)的基礎(chǔ)上,對磷酸鐵鋰正極鋰離子電池進(jìn)行剩余SOC估算,將估計(jì)值與實(shí)際值進(jìn)行比較。
獲取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ò)的目標(biāo)函數(shù),得到的訓(xùn)練過程見圖4。
圖4 神經(jīng)網(wǎng)絡(luò)樣本訓(xùn)練過程圖
從圖4可知,在神經(jīng)網(wǎng)絡(luò)迭代695次后,誤差達(dá)到理想值。將該神經(jīng)網(wǎng)絡(luò)模型保存后,用于在不同環(huán)境溫度下對電池的SOC進(jìn)行估計(jì)。實(shí)際應(yīng)用時(shí),環(huán)境溫度不是恒定值而是變化量。用測試儀對電池進(jìn)行放電測試,得到真實(shí)容量,同時(shí),每150 s將測得的電池電流、電壓和環(huán)境溫度代入神經(jīng)網(wǎng)絡(luò)中,對電池進(jìn)行SOC估計(jì),實(shí)際結(jié)果和估計(jì)結(jié)果對比見圖5。
為驗(yàn)證算法的有效性和準(zhǔn)確率,要進(jìn)行誤差分析。比較容量的實(shí)際值(Qreal)和估計(jì)值(Qest),得到容量誤差Qerror:
(10)
用式(10)對圖5中的數(shù)據(jù)進(jìn)行計(jì)算,從全局角度出發(fā),得到全局誤差平均值和全局誤差最大值,結(jié)果如表1所示。
表1 全局誤差分析表
圖5 電池SOC估計(jì)結(jié)果對比
為了更直觀地反映誤差的結(jié)果,將誤差點(diǎn)用散點(diǎn)的形式連接,得到如圖6所示的誤差散點(diǎn)圖。
從圖6可知,估計(jì)模型的誤差在放電末期開始變大,原因是鋰離子電池在放電末期會(huì)出現(xiàn)強(qiáng)極化非線性現(xiàn)象,即電壓與容量間的關(guān)系表現(xiàn)為強(qiáng)非線性。在低溫條件下,預(yù)測結(jié)果誤差相對較大,原因是低溫下電池中的電解液會(huì)出現(xiàn)部分冷凝的現(xiàn)象,電池化學(xué)反應(yīng)滯后,極化增大、阻抗增大,使輸入量與估計(jì)量之間的非線性關(guān)系增強(qiáng),進(jìn)而導(dǎo)致誤差增大。
圖6 容量估計(jì)誤差散點(diǎn)圖
本文作者通過恒溫恒濕實(shí)驗(yàn)箱、測試儀等設(shè)備,對不同環(huán)境溫度下磷酸鐵鋰正極鋰離子電池的SOC變化開展了實(shí)驗(yàn),并考慮環(huán)境溫度對電池SOC的影響。利用得到的數(shù)據(jù),訓(xùn)練用遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)估計(jì)模型,結(jié)合實(shí)際情況,在室外環(huán)境溫度變化的情況下,每150 s對測試電池進(jìn)行一次SOC估計(jì),得出以下結(jié)論:
通過不同環(huán)境溫度下的電池SOC變化測試實(shí)驗(yàn),證實(shí)環(huán)境溫度是影響電池SOC的重要因素。當(dāng)環(huán)境溫度達(dá)到25 ℃時(shí),隨著環(huán)境溫度的降低,電池的初始SOC值開始降低;在環(huán)境溫度低于0 ℃時(shí),電池內(nèi)部的電解液可能會(huì)發(fā)生凝結(jié),造成容量衰減過快的現(xiàn)象。
建立的估計(jì)模型在-10~-8 ℃的低溫條件下,SOC估計(jì)全局誤差為2.42%,最大誤差為9.63%,精度較高,且電池放電時(shí)的電流、電壓和環(huán)境溫度的數(shù)據(jù)容易獲取,數(shù)據(jù)驅(qū)動(dòng)的方法有一定的工程應(yīng)用價(jià)值。