李 凱,胡 麗,宋婷婷
(國網山東省電力公司濰坊供電公司,山東 濰坊 261014)
儲能系統是電力系統向高比例新能源轉型的重要支撐。鋰離子電池具有能量密度高、使用壽命長和環境污染小等優點,被廣泛應用于電網儲能系統中[1]。為保證儲能系統的安全性和可靠性,高效且穩定的電池管理系統至關重要。隨著電池充放電循環次數的增加,電池內部會發生不可逆的老化,導致內阻增加、容量降低、輸出特性下降等,進而影響電池的使用[2]。電池健康狀態(state of health,SOH)是電池管理系統中的重要參數,可反映電池的老化狀態。SOH 的準確評估對實現電池安全監測和預測性維護具有重要意義。然而電池SOH 無法直接監測獲取,因此,尋找精確的SOH 估算方法成為研究人員的關注熱點。
SOH 估算方法通常分為兩大類:基于模型的方法和基于數據驅動的方法[3]。基于模型的方法通過建立一個能夠表征電池老化的等效模型并結合自適應算法實現SOH 估算。文獻[4]在二階RC 等效電路模型的基礎上,應用無跡卡爾曼濾波估計歐姆內阻,并利用歐姆內阻和SOH 的對應關系實現了SOH估算。然而,由于電池退化機制的復雜性,找到能準確反映電池老化的等效模型非常困難,而簡單的等效模型會導致SOH 估算不準確。
考慮基于模型的SOH 估算方法所面臨的上述挑戰,在擁有足夠的電池老化數據時,基于數據驅動的SOH 估算方法更受關注。該方法不需要建立電池模型,聚焦于電池老化數據本身的數量和質量[5]。此外,隨著機器學習和云計算技術的快速發展,相比于傳統機器學習,深度學習能夠自動挖掘特征因子,預測精度高,對非線性系統的分析效果更優[6]。深度學習常用的神經網絡模型有卷積神經網絡(convolutional neural networks,CNN)、長短期記憶(long short-term memory,LSTM)神經網絡及注意力機制(attention mechanism,AM)神經網絡等[7]。文獻[8]基于遷移學習建立了包含LSTM 和全連接層的神經網絡模型,實現了SOH 精確估算,但是輸入特征數據獲取過程較為復雜。文獻[9]建立了基于CNN 的神經網絡模型,選取鋰離子電池充電過程中的電壓、電流和溫度數據作為輸入,利用CNN 自動提取特征,完成SOH 估算,但該方法未探究電池循環老化的時序相關性。文獻[10]建立了基于AM 的雙向長短期記憶(bi-directional long short-term memory,Bi-LSTM)網絡模型,以平均充放電數據及容量為輸入特征,且充分考慮了老化序列數據的前后依賴聯系,精確估算SOH,但該方法對單次充放電循環的老化特征提取不夠全面。
綜上所述,提出一種基于CNN-Bi-LSTM 的鋰離子電池SOH 估算方法。該方法既具備強大的空間特征提取能力,又充分考慮了老化時序數據的前后關聯,解決了空間和時間特征提取不充分的問題。該方法僅需要輸入單個充放電采樣周期內的平均電流、平均電壓和平均溫度數據即可高精度估算一次充放電循環后的SOH。相比于其他基于深度學習的SOH 估算方法,該方法估計精度高且特征數據獲取簡單,具有更高的應用價值。
卷積神經網絡[11]是一種深度學習模型,常用于處理網格數據。卷積操作是通過在網格數據上滑動卷積核來實現的,每次卷積生成的輸出值是卷積核所覆蓋的輸入值的加權和。卷積神經網絡可擁有多個卷積核,具有局部感知和權值共享的特點。因此,卷積層可以捕獲位移不變性特征,提高神經網絡魯棒性。CNN 特征提取過程如圖1 所示。

圖1 CNN特征提取過程Fig.1 The process of CNN feature extraction
由于卷積核的初始化是隨機的,所以使用多個卷積核可以學習到不同的特征,這有利于深入挖掘輸入特征之間的聯系,充分提取局部信息的特征。同時,卷積核的權值共享性質能大大降低網絡訓練參數數量,減少模型訓練的內存和縮短時間成本。
LSTM[12]是一種改進的循環神經網絡(recurrent neural network,RNN),被用于解決長時間序列預測中產生的梯度爆炸和梯度消失問題。LSTM 在RNN基礎上增加了三個門結構,傳統LSTM 單元結構[13]如圖2 所示,分別為遺忘門、更新門和輸出門,使LSTM 具備選擇性記憶能力,因此能夠學習長時間的依賴關系。圖2 中Ct-1為第t-1 次迭代的細胞狀態向量,ht-1為t-1 次迭代后的輸出向量,xt為第t次迭代的輸入向量,ft為第t次遺忘門輸出向量,σ為sigmoid 函數,tanh 為tanh 函數,it為第t次輸入門輸出向量,at為第t次候選細胞狀態向量,ot為第t次輸出門輸出向量,ht為第t次迭代的輸出向量,Ct為第t次迭代的細胞狀態向量。

圖2 LSTM單元結構Fig.2 LSTM cell structure
LSTM 單元迭代的第一步是經過遺忘門遺忘掉部分長期記憶信息,激活函數采用的是sigmoid 函數,其讀取ht-1和xt,輸出一個元素值均介于0 到1的向量ft。
式中:Wf為遺忘門的權重矩陣;bf為遺忘門的偏置項。當ft的元素值為1 時表示完全記憶,當元素值為0 時表示完全遺忘。下一步,遺忘門的輸出至更新門,更新門的作用是更新單元當前的長時記憶狀態,通過sigmoid 函數來確定本次迭代保存的信息數量,并通過tanh 函數來建立一個候選細胞狀態向量at。
式中:Wi和WC分別為輸入門和候選細胞狀態權重矩陣;bi和bC分別為輸入門和候選細胞狀態偏置項。因此可得到狀態更新公式為
式中:⊙為陣列乘法,即向量各元素相乘。
最后,由輸出門結合更新后的長時記憶變量、上一次迭代的輸出和本次迭代的輸入得到本次迭代的輸出,通過sigmoid 函數來確定本次迭代輸出信息數量為
式中:Wo和bo分別為輸出門的權重矩陣和偏置項。
Bi-LSTM[14]具有兩個獨立的LSTM,兩個LSTM連接到同一個輸出層。輸入序列分別以正序和逆序輸入兩個LSTM 神經網絡進行特征提取,對提取的兩個特征向量進行合并,合并結果為最終的Bi-LSTM 輸出。Bi-LSTM 不僅可以追溯電池老化過程的歷史,還可以考慮未來的老化信息。結合上述LSTM 的原理,Bi-LSTM 向前迭代過程的LSTM 單元輸出狀態表達式為
Bi-LSTM 向后迭代過程的LSTM 單元輸出狀態表達式為
向前和向后過程輸出狀態一一對應加權合并,得到Bi-LSTM 的輸出狀態表達式為
式中:wt為向前LSTM 第t次迭代的輸出權重矩陣;vt為向后LSTM 第t次迭代的輸出權重矩陣;bt為Bi-LSTM 第t次迭代的偏置向量。
將CNN-Bi-LSTM 用于鋰離子電池SOH 估算,CNN 可設置多個卷積核而具備多次提取特征的能力,能夠反復挖掘網格輸入數據間的聯系,從有限的輸入數據中自動提取出SOH 的強相關特征。鋰離子電池隨著充放電循環次數的增加而逐漸老化,該過程可認為是一個時間序列過程。Bi-LSTM 可以對CNN處理過的老化序列數據進行二次挖掘,雙向抓取序列特征,充分考慮SOH 中隱含的時序聯系。CNN-Bi-LSTM 模型分別從空間和時間兩個維度上挖掘老化特征,最終實現高精度SOH 估算。此外,選取的輸入特征為平均放電電壓、平均放電溫度和平均充電電流,這些特征具有監測難度低和數據處理簡單的優點。該模型基本框架如圖3 所示,輸入網格數據首先經過卷積層,該層作用是按時間方向自動提取輸入網格數據的空間特征。為不破壞老化特征輸入數據的時序相關性,選用一維卷積神經網絡,設計卷積核寬度為1,長度為輸入特征數。卷積后會經過Flatten 層,該層作用是對卷積后的多維數據結構進行降維,轉換為二維數據。之后的Bi-LSTM 層會對經卷積特征增強后的時序老化數據進行二次特征提取,前后雙向充分抓取老化序列數據的時序特征。

圖3 CNN-Bi-LSTM 神經網絡模型基本框架Fig.3 The basic framework of the CNN-Bi-LSTM neural network model
所建立的CNN-Bi-LSTM 神經網絡共12 層,可被劃分為空間特征提取和時序特征提取兩大部分,網絡結構具體設置如表1 所示。

表1 CNN-Bi-LSTM 網絡結構Table 1 The CNN-Bi-LSTM network structure
利用CNN 實現空間特征的自動提取。第1 層為輸入層,輸入為(N,1,3)的張量,N為超參數batch的大小;第2 層為一維卷積層,包含256 個卷積核,卷積核大小為(1,3),用于自動提取輸入網格數據特征,選擇ReLU 作為激活函數可以提高神經網絡學習效率,且避免了梯度消失問題;第3 層同為一維卷積層,但包含128 個卷積核,其他設置與第2 層相同,輸入數據在經過兩次卷積后,輸出(None,1,128)的張量,None為不確定值;第4 層為Flatten 層,輸出(None,128)的張量;第5 層為RepeatVector 層,將二維數據復制30 次輸入LSTM 層,輸出(None,30,128)的張量,第4、5層是一維卷積層到LSTM 層的必要過渡。
利用Bi-LSTM 實現時序特征的充分提取。第6層是LSTM 層,神經元個數為100,激活函數為tanh,輸出(None,30,100)的張量;第7 層是Dropout 層,Dropout值設置為0.2,Dropout 層可以提高模型泛化能力,防止過擬合;第8、9 層與第6 層相同,LSTM 層的激活函數均為tanh,原因是以tanh 作為激活函數的神經網絡訓練速度更快,其可以利用GPU 加速訓練;第10 層為Bi-LSTM 層,神經元個數為128,激活函數為ReLU,輸出(None,256)的張量,用于雙向提取老化序列數據的時序特征;第11 層為全連接層,含有100 個隱藏節點,激活函數為ReLU,輸出(None,100)的張量;第12 層為輸出層,本質是一個全連接層,輸出(None,1)的張量。
CNN-Bi-LSTM 模型訓練和測試完整過程如圖4 所示,具體步驟如下。

圖4 模型訓練與SOH估算流程Fig.4 Model training and SOH estimation process
第1 步:處理鋰離子電池老化數據,從中獲取平均放電電壓、平均放電溫度和平均充電電流,并根據SOH定義將數據中給出的放電容量計算轉化為SOH。對輸入特征數據進行篩選、降維和歸一化處理,其中篩選過程為將數據集中阻抗等多余數據、重復數據和未完全充放電的數據進行刪除;降維過程為將每一次的電池充放電數據取平均。歸一化過程為找到訓練集中最大值和最小值,對所有數據進行歸一化。劃分訓練集和測試集,并把訓練集打亂,提高模型泛化能力。
第2 步:初始化CNN-Bi-LSTM 神經網絡參數,設置神經網絡超參數,設計優化函數、目標函數以及性能指標。以平均絕對誤差SME最小作為目標函數,并選用Adam 自適應優化器,數據遍歷次數設置為300 次,batch 大小設置為8。
第3 步:輸入訓練數據,完成模型訓練,并保存。
第4 步:加載訓練好的模型,對測試數據進行SOH 估算,并對估算結果進行分析,檢驗CNN-Bi-LSTM 神經網絡的性能。
采用Jupyter Notebook 編程軟件在Python 3.8.13環境下構建CNN-Bi-LSTM 神經網絡,基于tensorflow 2.5.0 框架完成數據處理、神經網絡訓練和SOH 估算。
利用美國國家航空航天局(national aeronautics and space administration,NASA)艾姆斯研究中心[15]數據存儲庫中的鋰離子電池老化數據集,驗證文中提出的方法。選擇兩個電池的壽命周期數據集,分別為B0005 和B0006。所有電池的充放電過程都是在室溫下進行的,每個數據集都記錄了電池的充電、放電、溫度和阻抗等信息,電池的額定容量為2 Ah。循環老化充電過程是保持1.5 A 的電流恒流充電,直到電池電壓達到4.2 V,然后繼續恒壓充電,直到充電電流降至20 mA 充電完成;放電過程是保持2 A 電流恒流放電,當電壓分別達到2.7 V 和2.5 V 放電完成。SOH 有多種定義方式,主要有基于內阻、容量和循環次數三種。考慮到驗證數據集中包含放電容量數據,從容量角度定義SOH 更為精確且參數易獲取[16],因此本文從容量角度定義SOH。
式中:SOH為電池健康狀態指標;Qi為第i次充放電循環中的放電容量;Qfre為電池的額定容量。
為獲取訓練和測試所需的平均放電電壓、平均放電溫度和平均充電電流數據,對B0005 號電池和B0006 號電池老化數據集進行篩選、降維和歸一化,分別得到了167 條數據集。選取數據的前75%(即前125 條)作為訓練集,后25%(即后42 條)作為測試集。B0005 和B0006 電池的循環老化容量衰減曲線如圖5 所示。

圖5 電池容量衰減曲線Fig.5 Battery capacity degradation curve
選用平均絕對誤差SME和均方根誤差SRME來評價分析CNN-Bi-LSTM 神經網絡模型的性能。二者越接近于零,代表模型估算的結果越接近真實值。SME和SRME的表達式如下:
式中:n為測試樣本數;yi為SOH 真實值為SOH估算值。
圖6(a)與圖6(b)分別為CNN-Bi-LSTM、CNNLSTM 和Bi-LSTM 在B0005 號電池測試集上的估算結果對比與誤差對比;圖7(a)與圖7(b)分別為CNNBi-LSTM、CNN-LSTM 和Bi-LSTM 在B0006 號電池測試集上的估算結果對比與誤差對比。三種模型均在相同超參數設置下完成訓練。由圖6 和圖7 可知,本文提出的CNN-Bi-LSTM 在兩個測試集上的SOH估算結果都更接近真實值,且大部分數據點相對誤差保持在2%以內,誤差波動較小,未出現較大的偏差。原因在于CNN-Bi-LSTM 不僅能夠從簡單的輸入數據中自動提取空間特征,而且可以從前和后兩個方向充分考慮SOH 的時序關聯性,深入挖掘時間特征。

圖6 B0005號電池測試結果Fig.6 Battery B0005 test results

圖7 B0006號電池測試結果Fig.7 Battery B0006 test results
表2 中分別給出了三種不同的神經網絡模型在不同數據集上的估算性能指標。與Bi-LSTM 相比,CNN-LSTM 在B0005 號電池和B0006 號電池的測試結果中SME分別降低了1.69 和0.23,SRME分別降低了1.52 和0.23。結果表明,CNN 的應用十分重要,其從有限的輸入數據中提取有效特征是高精度估算的關鍵。與CNN-LSTM 相比,CNN-Bi-LSTM 在B0005號電池和B0006 號電池的測試結果中SME分別降低了0.07 和0.35,SRME分別降低了0.19 和0.39。結果表明,雙向提取時序關聯信息能夠進一步提高模型精度。文中所提出的方法,除個別點之外,估算結果相比于其他兩種方法更接近真實值。應用文中方法所得到的模型在兩組老化測試集上的SME和SRME分別在1.07 和1.32 以下,證明文中方法在大大降低輸入特征數據監測量及處理難度的同時,又能保證模型精度,具有高魯棒性和強適應性。

表2 模型評價結果對比Table 2 Model evaluation results comparison
由表2 可得,在兩次測試集上,基于CNN-Bi-LSTM 模型的SOH 估算結果評價指標SME和SRME均為最低,這意味著相比于其他兩種模型,本模型擁有更高的準確率和精度。
提出一種基于CNN-Bi-LSTM 的鋰離子電池SOH 估算方法。該方法將循環充放電的平均放電電壓、平均放電溫度和平均充電電流作為輸入數據,即可估算出一次充放電循環后的SOH 值。該方法結合了CNN 強大的網格數據特征提取能力及Bi-LSTM 全面的時序記憶能力,充分挖掘了輸入數據的空間特征和電池老化過程的時序特征。此外,該方法輸入特征數據獲取簡單,減少了老化數據監測和處理設備的內存占用。該模型在NASA 兩組老化測試集上的平均絕對誤差和均方根誤差分別在1.07 和1.32 以下,優于其他兩種對比模型,證明了模型的合理性及估算SOH 的精確性。所提方法可以有效應用于電網儲能系統電池健康狀態管理。本研究目前僅在NASA 兩組老化測試集上驗證了所提方法的正確性,為保證實際應用的泛化性能,下一步需要在規模更大和多樣性更豐富的數據集上進行驗證。