李永穎,張振東,朱順良
(1.上海理工大學,機械工程學院,上海 200093; 2.國家機動車產品質量檢測與監督中心,新能源研究所,上海 201800)
電動汽車動力電池的電荷狀態(State of Charge, SOC)、健康狀態(State of Health, SOH)、峰值功率(State-of-power, SOP)、能量狀態 (State of Energy,SOE)、剩余壽命(Residual Life, RUL)等參數是電池管理系統BMS(Battery Management System)對動力電池進行實時狀態分析的支撐。動力電池電化學反應過程復雜,受到溫度、濕度、老化等諸多因素的共同影響,具有不確定性,其數學建模涉及多學科和多領域,一直是學術界和工業界研究的難點和重點[1]。神經網絡模型具有很好的非線性逼近能力,在處理非線性時變問題上具有巨大優勢。蔡信等[2]利用ADVISOR仿真數據對BP神經網絡進行SOC估計,結果表明模型的估計值和輸出值之間的誤差為4%左右。蘇振浩等[3]使用經過等效電路模型修正后的數據對雙隱層BP神經網絡進行訓練與SOC預測,證明了人工神經網絡模型對SOC估算的有效性。劉征宇等[4]基于量子微粒群算法(QPSO)的BP神經網絡模型用于SOC預測,結果表明此方法比現有的神經網絡預測方法準確度更高,且具備很好的實用性。JOHNSONVH[5]基于ADVISOR平臺建立一個雙隱層神經網絡的電池模型。用電池負載功率和 SOC輸入到模型,輸出為電流和電壓。針對神經網絡結構設計方法困難、模型運算時間較長、對芯片運算能力要求高等原因降低其實用性的問題。在這里提出了能有效減少模型運算時間的訓練算法和基于數學規劃的神經網絡模型構架設計方法。為神經網絡對電池狀態估計的工程應用提供一個解決方案,具有參考價值。
模型深度和寬度的選擇是一個非常復雜的問題,目前并沒有理論的指導,沒有一個好的解析式來表示。隱藏層單元數目與問題的需求、輸入、輸出單元數都有直接的關系。一般情況下僅能靠經驗來確定模型的寬度和深度。
關于BP神經網絡的隱藏層的設計有以下幾種設計經驗參考:
1)1987年Hechtnielsen[6]提出隱藏層節點的數目為2n+1,式中n為輸入的節點數。
2)1988年Liu W[7]根據實驗發現,在高維輸入時,第一隱藏層對第二隱藏層的最佳節點比列為3:1。
3)1990年Nelson和Illingworth[8]建議隱藏層節點數應為4n。
4)隱含層的的節點數設計經驗公式[9]:
(1)
式中,n為輸入層神經元數目;m為輸出層神經數目;d為 1~10 之間的整數。
5)最佳隱藏層單元數可參照以下公式[10]:
l (2) l=log2n (3) 式中,n為輸入層單元數。 根據實驗數據,采用數學規劃的思想對神經網絡構架進行選擇。取模型訓練至預測時間稱為運算時間Ct,及每個預測點的平均絕對誤差Ess為性能指標。Ess計算公式如式(4)。Ct與CUP性能、模型結構及算法等有關,運算時間Ct和平均絕對誤差Ess作為設計模型的重要參考。 (4) 可以建立多目標線性規劃模型來選擇最優模型。其數學模型如下: minCt (5) minEss (6) s.t. 0≤Ct≤max(Cti) 0≤Ess≤max(Essi) 式中,i是按模型隱含層數劃分的模型序號(i=1,…,5)。 Hornik, Cybenko等[11-13]表明,一個前饋神經網絡如果具有線性輸出層和至少一層具有任何一種“擠壓”性質的激活函數的隱藏層,只要給予網絡足夠數量的隱藏單元,它可以以任意精度來近似任何一個有限維空間到另一個有限維空間的Borel函數。 在網絡結構和閾值相同的情況下,BP神經網絡預測誤差和均方誤差、輸出單元激活函數的關系如表1[14]所示。隱含層和輸出層激活函數的選擇對BP神經網絡預測精度有較大的影響。 在權衡收斂速度和預測誤差后,用tan sig函數為隱藏層激活函數,purelin函數為輸出層激活函數,它們的表達式為: (7) purelin(x)=x (8) tan sig和purelin函數圖形如圖1。tansig函數具有“擠壓性質”。 圖1 激活函數圖形 tansig函數導數為: (9) 式中,a為常數,tansig函數導數的這個性質將導數運算轉換為乘法運算可以節省大量的計算時間,同時也提高了運算精度。 雖然隨機梯度下降(SGD)在一般的機器學習中是應用最多的優化算法,特別是在深度學習中,但其學習過程有時會很慢。動量方法可以加速學習,特別是處理高曲率、小但一致的梯度,或者是帶有噪聲的梯度。隨機梯度下降和動量方法的結合,有利于神經網絡性能的提升。Nesterov動量算法[15],是帶動量的隨機梯度下降算法,在凸批量梯度的情況下,Nesterov動量將額外誤差收斂率從O(1/k)(k步后)改進到O(1/k2),有效減少了神經網絡陷入局部最小值的風險。使用粒子群算法對權值和閾值優化,有效的提高了模型的泛化性能。 神經網絡的學習率的取值在[0,1]之間,學習率越大,對閾值的修改就越大,網絡學習速度越快。但是過大的學習率將使閾值學習過程產生震蕩,過小的學習率使網絡收斂慢,閾值難以穩定。變學習率在BP神經網絡進化初期較大,網絡收斂迅速,隨著學習過程的進行,學習率不斷減小,網絡趨于穩定。變學習率計算公式為: (10) 基于上述深度神經網絡模型的學習優化算法Nesterov動量算法和參數初始化算法RMSProp算法[16],兩者相結合,在此基礎增加了變學習率算法得到模型訓練算法如下所示,式中用符號?表示Hadamard乘積。 基于Nesterov動量的RMSProp變學習率算法: Resquire:全局衰減率ρ,動量參數α Resquire:初始參數θ、學習率、速度v,初始累計變量γ=0 while 沒有到達停止準則 do 從訓練集中采含m個樣本{x1,x2,…,xm}的小批量,對應目標為yi。 累計平方梯度:γ←ργ+(1-ρ)g?g 權值/閾值更新:θ←θ+v end 粒子群優化[17](Particle Swarm Optimization,PSO)算法是由Kennedy 和 Eberhart在1995年在受到鳥類覓食現象啟發,提出的一種全局智能隨機優化算法。PSO算法,每只鳥”被看作一個“粒子”。在R維解空間中第i個粒子的位置可表示為pi=(pi1,pi2,…,piR);第i個粒子的速度表示為vi=(vi1,vi2, …,viR)。第i個粒子在空間飛行路線中的最好點表示為ti= (ti1,ti2,…,tiR);粒子群內部所有粒子飛行過的最好的點表示為tg=(tb1,tb2,…,tbF),粒子群的每個粒子的速度和位置更新迭代公式為: (11) (12) 式中,wi為慣性權重,r1和r2為0到1的隨機數,c1為局部學習因子、c2為全局學習因子。 對模型參數使用粒子群算法優化,避免了目標函數陷入局部最小值的風險,同時也提高了模型的訓練速度和泛化性能。 過擬合(overfitting)是神經網絡模型不可避免的,目前有兩種常用于緩解神經網絡過擬合的方法,第一種策略是“早停”(early stopping):將數據分成訓練集和測試集,訓練集用來計算梯度、更新權值和閾值,驗證集用來估計誤差,若訓練集誤差低但測試集誤差升高,則停止訓練,同時返回具有最小驗證集誤差權值和閾值。第二種策略是”正則化”(regularization)[10],其基本思想是在誤差目標函數中增加一個用于描述網絡復雜度的部分。 總優化算法流程如圖2所示。 圖2 模型算法流程 給定訓練集D={(x1,y1),(x2,y2),…,(xm,ym)}xi∈Rs×m,yi∈Rn×m,即輸入示例有s個特征屬性描述,輸出n×m實值矩陣。基于Nesterov動量的RMSProp變學習率算法參數迭代更新公式推導如下,符號說明如表2。 表2 符號說明 對訓練集(xk,yk)假定網絡輸出為: (11) 網絡在訓練集(xk,yk)的均方誤差為: (12) 參數更新估計式為: Δθ=θ+v (13) 以隱藏層到輸出層的連接權值whj例來推導。給初始學習率,有: Δwhj=- (14) 臨時更新: (15) (16) 根據uj的定義,顯然有: (17) 輸出層使用purelin函數,由式(11)和(12)有: (13) 累計梯度: rhj=ρrhj+(1-ρ)gj·gj (14) 速度更新: (15) 得連接權值whj更新公式: (16) 類似可以得到其閾值的更新公式: (17) 模型的輸入為負載功率P、電流I、溫度T及隨機干擾信號D,輸出為SOC預測值。訓練數據采用溫度為20℃下,純電動車整車在CYC_NEDC(新歐洲行駛循環)工況下的8次循環中電池包的電流、負載功率、溫度的0.1 s采樣值,使用經預處理的15 381個高質量數據樣本對模型進行訓練和預測。整車參數如表3。8次新歐洲行駛工況曲線如圖3,其對應的電池組參數變化曲線如圖4,可看出SOC變化是高度非線性,并且受到老化、溫度等多因素影響。使用如圖5所示的干擾信號模擬隨機因素對SOC估計的干擾。 表3 整車技術參數 運算時間在Intel(R)Core(TM)i7-4510U CUP@2GHz處理器,Matlab平臺上對對電池包實驗數據進行訓練和預測所計算得到,因為不同的芯片運算性能不同,SOC預測時間也不同,但是模型的優化效果具有相同的趨勢,這里對模型運算時間進行定性分析。 圖3 8次CYC_NEDC循環工況曲線圖 圖4 電池組參數變化曲線 圖5 隨機干擾信號 參考神經網絡模型設計經驗并根據實驗數據,利用多目標數學規劃選擇出不同深度的神經網絡最優構架。由于神經網絡訓練和預測存在不穩定性,即每次訓練和預測的結果存在細微差別,故每個構架進行多次訓練和預測,對運算時間和平均絕對誤差取平均值。采用傳統Levenberg_Marquardt的BP訓練算法作對比,其優化效果如表4所示,經過粒子群算法和基于Nesterov動量的RMSProp變學習率訓練算法優化后,在保證SOC平均絕對誤差滿足工程要求的前提下,有效減少了運算時間,特別是單元數多的構架,這證明這套模型優化方法能快速找到最優的模型參數,減少迭代次數,從而減少運算時間,并且設計出的最優構架結構簡單、SOC預測精度高,具有一定的參考價值。 表4 不同模型架構的優化效果 由不同構架的神經網絡對電池SOC估計的結果分析,同一深度前饋神經網絡SOC預測精度隨著單元數的增多而減少,但是運算時間也增加。預測精度隨著網絡深度的增加而減少,運算時間增加。因此,在相同輸入輸出數據集條件下,神經網絡運算時間與模型訓練算法、模型構架和芯片性能有關。 根據行業標準,考慮到SOC估算時間及其平均絕對誤差,還有模型結構復雜度和可靠性。選擇優化后的雙隱層,構架為[4 2 3 1]的神經網絡模型作為鋰電池SOC的估算模型,運算時間為0.460 7秒,SOC預測平均絕對誤差為0.129 0,擬合曲線如圖6所示,R值在每次運算時都能達到0.9,接近1,可見該模型穩定性高,預測精度可靠。并且期迭代77次左右時,殘差已經收斂,達到期望誤差。如果搭載神經網絡專用芯片或性能更高的芯片,運算時間會進一步減少,實時預測成為可能。 圖6 雙隱層最優構架回歸曲線圖 分別使用同樣的數據集,對徑向基函數神經網絡(RBF)、廣義回歸神經網絡(GRNN)和Elman神經網絡進行訓練和預測,結果如圖7所示。由圖可以看出由于BP神經網絡結構簡單,結合上述優化算法,使其在動力電池狀態估計上比其他常見的神經網絡模型具有更少的運算時間和較好的預測精度。證明經過優化后的雙隱層BP神經網絡具有更好的工程實用性。 圖7 常見神經網絡模型SOC估計對比圖 由整車實驗數據,參考BP神經網絡設計經驗,研究更深的神經網絡模型構架設計,對不同構架的神經網絡進行了性能分析。針對這類模型SOC估計運算時間長、構架設計困難、對芯片性能要求高、無法實時預測等困難,使用能有效減少模型運算時間的粒子群優化算法和基于Nesterov動量的RMSProp變學習率訓練算法,對模型進行了優化。SOC估計誤差范圍的條件下,運用數學規劃方法選擇一個平均絕對誤差小且訓練時間短、穩定性高并具有實用性的雙隱層神經網絡模型用于SOC估計。由于神經網絡訓練樣本數沒有理論指導,套模型優化方法與模型設計方法沒有在訓練樣本數上進行研究,但為神經網絡模型在電池其他狀態估算上提供有價值的參考。隨著神經網絡專用芯片不斷投入市場,神經網絡模型電池狀態估計有較大的應用前景。


2 模型優化算法
2.1 模型訓練算法

2.2 模型參數優化算法
2.3 過擬合優化措施
3 模型優化算法數學證明




4 前饋神經網絡SOC估計結果與分析







5 結論