張 松1,林偉欽1,陳德旺1,湯 平,鄭其榮
(1.福州大學 數學與計算機科學學院,福州 350108; 2.福建星云電子股份有限公司,福州 350015)
新能源電動汽車作為原有的燃油汽車替代品能夠有效緩解油能源緊張、減少尾氣污染等問題從而成為未來汽車制造的主要發展方向。其中鋰動力電池由于其容量大、循環使用壽命長、安全性高、體積小等優點成為電動汽車的主要動力來源。電池荷電狀態 (state-of-charge, SOC)是電動汽車電池管理系統的重要指標,SOC的精確預測能夠有效提高電池的利用率,防止電池過充電和過放電從而避免對電池造成損害,進而提高電池的使用壽命、降低使用成本。目前來說,SOC的預測方法主要分為:安時積分法、開路電壓法、卡爾曼濾波法、神經網絡法和數據驅動法。
安時積分法是最常用的SOC估測方法[1],它通過對充放電過程中的電流進行積分從而求得電池電量變化。該方法適用于任何類型電池的狀態估計,所以許多學者將其應用于SOC估測[2-4]。安時積分法的計算需要精確的電流測量值,如果電流值測量不準確,在不斷的迭代計算中誤差不斷累積進而導致預測結果的偏差。開路電壓法是最簡單的SOC預測方法,所以該方法得到了大量應用[5-7]。但是該方法在測量電池電壓時需將電池長時間放置以達到電壓穩定才能繼續實驗,因此開路電壓法不能用于SOC的實時預測且精度較低。卡爾曼濾波法是一種精確預測電池狀態的算法,它的核心思想是對動力系統的狀態做出最小方差意義上的最優估計。卡爾曼濾波法的優點是它可以實時動態預測SOC,但電池參數之間一般為非線性關系,所以許多非線性預測的改進版本被用于SOC估計[8-10]。缺點就是卡爾曼濾波預測結果好壞取決與電池模型能否精確表達電池的動態狀態,但復雜的電池模型意味著計算時間的增加。此外卡爾曼濾波算法對模型噪聲和測量噪聲的統計特性作了假設,而實際情況中這些假設條件可能難以成立。神經網絡以其復雜的結構、強大的計算力非常適合SOC預測這種高度非線性參數關系計算,該方法被用在SOC預測并取得了非常好的效果[11-13]。但是該方法需要大量的訓練數據且計算量非常大。此外SOC預測值的精確度與神經網絡結構、輸入變量的選擇等因素有著直接關系,不合理的設置將導致預測值偏差很大。數據驅動法在SOC預測中也可以稱為回歸擬合法。該方法不需要對電池系統進行建模,是一種簡單易行且預測精度較高的方法。該方法需要大量的訓練數據,訓練方法的選擇、輸入變量的設置合適與否關系著擬合結果的精確性。目前來說,對于此方法在SOC預測方面的研究[14-15]相對較少,因此有著很大的發展空間。
本文采用多元線性回歸方法對SOC進行預測,該方法是數據驅動法中的一種。與其它預測方法不同的是,基于多元線性回歸的SOC預測方法可以直接利用充電樁記錄的電池充電數據進行訓練從而不需要行大量充放電實驗獲取數據。此外,由于數據中存在異常樣本,我們選用了線性回歸、Theil-sen和RANSAC算法來進行對比實驗。實驗結果表明,3種算法對SOC預測都有著很高的精度。相比線性回歸算法,RANSAC和Theil-sen算法的預測誤差分別降低了15.4%和23.38%。
多元線性回歸模型是一種常用的回歸模型,它使用多個特征向量作為條件從而得到一個輸出變量和多個輸入變量間的線性關系。在確定輸入變量與輸出變量后可使用相關數據對模型進行訓練,求得符合真實變量關系的系數從而建立反映輸入變量和輸出變量之間關系的數學模型。多元線性回歸模型一般數學表示為:
(y(w,x)=w0+w1*x1+w2*x2+…+wn*xn
(1)
其中:n為自變量的個數,w={w0,w1,…,wn}參數向量,也就是需要通過訓練才能確定的系數。Xi(i=1,2,...,n)為自變量,Y為因變量。
求解多元回歸問題的常用機器學習方法為最小二乘法。最小二乘法對w的估計,是基于模型中變量之間相互獨立的基本假設的,即輸入向量X中的任意兩項X1和X2之間是相互獨立的。多元線性模型的本質是多元線性回歸方程的求解。求解方法有梯度下降法、Normal Equation等等。當特征數量較大時使用梯度法,反之則使用后者。
其中,Normal Equation求解系數矩陣的計算公式為:
w=(XTX)-1XTY
(2)
由于Normal Equation方法中需要進行矩陣的求逆運算,所以當特征數量較大時計算量會變得非常大,這里就需要采用最小二乘法來求解參數。梯度下降法是最常用的迭代優化算法,可以用于求解最小二乘問題。在確定損失函數后通過梯度下降法逐步減小損失函數的取值,當取得損失函數的最小值時便得到最終的模型參數值。其中與的等價關系為:
Y=wX
(3)
定義損失函數為殘差的平方,則最小化損失函數為:
(4)


(5)
經過不斷的迭代更新,當損失函數值或迭代次數達到預設的相應閾值時訓練過程結束,這時的w便為最終參數值。
魯棒回歸是一種回歸分析形式,旨在克服傳統參數和非參數方法的一些局限性。和一般回歸分析方法相比,魯棒回歸(Robust Regression)不容易受離群值的影響。一些常見的魯棒回歸算法包括:Theil-Sen、Huber、RANSAC。魯棒線性回歸的數學表達式如下:
y(w,x)=w0+w1*x1+w2*x2+…+wn*xn+
(6)
其中:w={w0,w1,…,wn}參數向量,x為訓練樣本,為模型的隨機誤差。
多元線性回歸方法的常用求解方法為最小二乘法,而最小二乘法的參數擬合結果非常容易受到異常數據的影響。為了提高模型的魯棒性,魯棒回歸模型引入了作為模型的隨機誤差。其中圍繞隨機誤差的優化從而引出了兩種不同的改進思路:1) 使用一定的采樣方法先除去數據樣本中異常樣本再進行學習;2) 保留異常值但采取一定的方法減弱其對回歸結果的影響。本文選取了Theil-Sen和RANSAC算法作為SOC魯棒預測算法,其中Theil-Sen屬于減弱異常值影響的優化方法,RANSAC算法為剔除異常數據的重采樣方法。
1.2.1 Theil-Sen
Theil-sen回歸是一種非參數統計方法,該方法對數據分布沒有嚴格要求,是處理有部分異常數據的理想回歸方法。該回歸算法需要計算數據兩兩之間的斜率;然后取這些斜率的中位數為回歸方程的斜率;之后通過變量x與變量y的中位數計算出截距,從而得到回歸方程。
Theil-Sen回歸是一個參數中值估計器,它適用泛化中值,對多維數據進行估計,因此其對多維的異常點有很強的穩健性。其一元回歸模型為:
y=α+βx+
(7)
其中:α,β為模型的參數,為模型的隨機誤差。對于單變量的Theil-Sen回歸,斜率的計算方程如下:

(8)
這里有bij=bji,之后將求得的這些斜率的中位數作為總體回歸系數的估計值。截距α的計算公式如下:
(αi=Med(yi)-βMed(xi)
(9)
如此取求得的n個值的中位數作為截距α的估計值,則模型參數求解完畢。
Theil-Sen回歸是一個參數中值估計器,它適用泛化中值,對多維數據進行估計,因此其對多維的異常點有很強的穩健性。同時該算法原理簡單,易于實現。但Theil-Sen回歸只是取數據參數的平均值并不能消除異常點對參數估計的影響,且不適用于數據維數較高的情況。
1.2.2 RANSAC
RANSAC(random sample consensus) 是一個求解已知模型的參數的框架,可以用于解決計算機視覺問題、統計數學問題以及模型參數估計問題。RANSAC算法在運行前需要設定幾個參數:1)迭代次數k;2)內外點距離閾值t1;3)一致性集合大小閾值t2。RANSAC的算法流程為:
1)從數據中隨機選取模型參數估計的最少的數據(對于多元線性回歸問題,則取隨機的一組數據),計算出參數方程;
2)計算出數據集中其余點與已算出模型的距離d,當時d
3)接著統計內點個數n,當n>t2時就判定該模型為最優模型mbest,并記錄該模型的統計誤差emin,即每個內點與求得模型的距離;
4)重復步驟1)~3),當得到新模型時,比較新模型的誤差e與emin的大小,如果e 5)最終輸出mbest,得到最終的參數模型。 RANSAC回歸原理簡單、可以應用在很多問題中。該方法本質上是對數據集的重采樣,很好地避免了異常點對參數估計的影響。但RANSAC算法的計算量較大,同時停止條件和閾值的設定對結果影響很大。 目前來說,較為統一的是從電量角度定義SOC。所以SOC可以定義為:電池在一定放電倍率下,剩余電量與相同條件下可用容量的比值。 (10) 其中:Qn為當前剩余電量,Cn表示當前可用容量。因此,當SOC=1時說明電池充電完成,當SOC=0時電池電量耗盡。 本文采用多元線性模型對鋰動力電池進行SOC充電預測,其中用到的對比方法有線性回歸、Theil-sen和RANSAC算法。采用的實驗數據是電動汽車在充電站充電時充電樁所記錄的充電數據。由于目前研究問題的特殊性,我們從維數眾多的數據中提取出與本文實驗相關的特征。此外,為了簡化問題模型以及SOC預測系統易于實現,我們并沒有考慮溫度、內阻等物理因素。從最終的實驗結果來看,簡化的問題模型不僅使問題變得簡單,而且取得了非常高的SOC預測精度。其中我們提取的輸入特征如表1所示。 表1 輸入特征表 所以SOC預測模型可表示為: y=w0+w1*S+w2*V+w3*A+w4*T+w5*m+ (11) 其中:y表示模型預測結果SOC,w0…w5為模型訓練參數,為魯棒回歸的隨機誤差。 由于SOC是一種時間序列型的變量,本文將充電數據中的兩條充電記錄時間間隔作為一次計算過程,輸出結果設為變量EndSOC。預測過程如卡爾曼濾波算法一般不斷迭代計算,循環預測SOC的下一時刻輸出值。訓練前需要對數據進行預處理,例如歸一化等,訓練時采用最小二乘法進行參數擬合,最終求得SOC的預測模型。 為了量化線性回歸、Theil-sen和RANSAC算法預測SOC的結果精確度,本文使用了4個常用的模型性能評估指標:平均誤差、絕對平均誤差、均方根誤差(root mean square error, RMSE)和標準差(Standard deviation,Std)。為了更好地分析算法性能,本文在數據集上對3種算法進行50次試驗,并給出其平均結果。 1)誤差定義 首先針對預測值與實際值之間的差異我們定義了誤差公式: e=SOCt-SOCp (12) 其中:e為模型誤差,SOCt為真實值,SOCt為模型輸出值。 2)平均誤差 (13) 3)平均絕對誤差 (14) (4)標準差 (15) (5)均方根誤差 (16) Std指標的計算公式如公式(8)所示。Std是一種度量數據分散程度的標準,可以作為評價數據值偏離算術平均值程度的依據。該指標可以用來衡量算法在訓練階段和測試階段的穩定性。RMSE指標的計算公式如公式(9)所示。其中,n表示樣本的個數,ei表示第i個樣本所對應的預測值,均方根誤差能夠很好地反映出模型的預測誤差。 本文采用的實驗數據是從充電樁上采集的汽車充電記錄數據,由于公司考慮到未來的多方面應用,所以這些數據中特征數量非常多。我們首先需要從中選取與SOC預測相關的特征。出于對問題模型的簡化以及預測系統的易實現性,我們只提取了少數相關的特征變量,這一點在2.2節中有說明。但原始的數據與需要的數據形式有著很大的不同,所以我們要對數據進行一定的處理。 首先是SOC數據的離散化問題。由于充電樁記錄的電池BMS輸出SOC的精度為1%,所以導致數據中的SOC值表現為離散化且存在眾多相同值。為了解決這一問題,我們假設在較短的時間間隔內SOC為線性增長,因此可以對原始數據中的重復值進行線性插值處理。處理的結果如圖1所示: 圖1 SOC處理前后對比圖 在圖1中,(a)圖中深色代表的是原始SOC值,淺色表示的是線性插值處理后的值。可以看到總體上來說線性插值并沒有改變SOC曲線的趨勢及規律。此外,圖(b),(c),(d)分別顯示的是SOC為1%,50%,99%處的SOC值,這里淺色代表的處理后SOC值,與深色代表的原始值相比,處理后的連續值更適合SOC的預測。 接著是對訓練數據進行分片處理。SOC是一種時間序列型的變量,所以需要將SOC預測處理為許多SOC子預測。這里我們將兩次記錄間作為一次SOC子預測過程,每個子預測中輸入有初始SOC及其它相關特征(如電壓、電量等),輸出為子預測的結果:EndSOC。這里的EndSOC接著作為下一個子預測過程的初始SOC,從而實現SOC預測的不斷迭代計算,最終完成整個過程的SOC預測。 最后,由于電子儀器本身的原因,記錄數據中不可避免的會出現一些異常數據,這里我們我們以電壓、電流數據為例。 圖2 電壓、電流數據圖 如圖2所示,(a)圖表示的是電壓與SOC之間的關系。從中可以看出,電壓隨著SOC的增加而增長,但是存在一些局外點分布在邊緣區,同時在(b)圖中也存在異常數據點。這些異常數據可能會影響多元線性回歸結果的準確性,但是人工剔除異常數據的代價過大。由于數據樣本中異常數據點相對較少,所以魯棒回歸非常適用于本文的SOC預測。 本文采用了線性回歸、Theil-sen和RANSAC算法預測SOC,具體的訓練結果如表2所示,其中測試的最優結果用加粗字體表示。 表2 SOC預測結果量化表 從表2的結果來看,線性回歸的訓練結果最好,其4項指標都是最優。而RANSAC算法的訓練結果與線性回歸結果非常接近,這里的接近同樣表現在參數擬合結果上。這里我們認為是由于數據樣本中異常樣本與正常樣本的數量不均衡所導致的。異常樣本數量過少,導致RANSAC算法篩選出的正常數據樣本與原始樣本之間的差異不夠明顯。不過在測試結果中我們發現RANSAC算法預測結果的Std與RMSE比線性回歸分別降低了19.3%和15.4%。這說明RANSAC算法一定程度上能夠降低異常數據對SOC預測的影響。Theil-sen算法的擬合結果除了MAE劣于線性回歸與RANSAC外,其μ、Std、RMSE與線性回歸相比分別降低了20.6%、24.48%和23.38%。這說明與線性回歸和RANSAC算法相比,Theil-sen算法即便在異常數據的影響下更能夠有效預測SOC。 圖3 線性回歸SOC預測結果圖 圖3顯示的訓練后的線性回歸對SOC的擬合結果圖,其中a圖為總擬合結果圖,其中深色表示的是SOC實際值,淺色表示的是SOC預測值。總體上來看,線性回歸擬合結果非常接近實際值,這一情況在b和c圖得到了體現。但當SOC實際達到85%左右時擬合值與實際值之間出現了很大的偏差,圖d顯示了預測值與實際值之間有著1.5%左右的平均誤差。 圖4 RANSAC算法SOC預測結果圖 圖4顯示的訓練后的RANSAC算法對SOC的擬合結果圖,其中a圖為總擬合結果圖,其中細線表示的是SOC實際值,粗線表示的是SOC預測值。與線性回歸結果相似,除后小段外RANSAC算法擬合結果非常接近實際值,當SOC實際達到85%左右時(圖d)擬合值與實際值之間出現了較大的偏差。 圖5 Theil-sen算法SOC預測結果圖 圖5顯示的訓練后的Theil-sen算法對SOC的擬合結果圖,其中a圖為總擬合結果圖,其中淺色表示的是SOC實際值,深色表示的是SOC預測值。與線性回歸和RANSAC結果不同,除開始小段Theil-sen算法擬合結果與實際值較接近外,Theil-sen算法在其它階段的預測值與實際值之間都有著不小的誤差。但當SOC實際達到85%左右及之后的階段中,擬合值與實際值之間的偏差處于不斷縮小的狀態。這說明Theil-sen算法在85%~99%范圍內對SOC的預測精度要遠高于另外兩種算法。 出于對問題模型的簡化以及對SOC預測系統易于實現的考慮,本文采用了多元線性回歸方法來進行鋰動力電池充電時SOC預測,同時將充電樁記錄的充電數據作為實驗數據樣本。由于在數據樣本中存在異常數據,我們選用了Theil-sen和RANSAC算法對SOC進行魯棒預測。實驗結果表明,基于多元線性模型的回歸算法對SOC預測都有著很高的精度。其中,由于異常數據的影響,線性回歸的預測結果在SOC實際值為85%之后的范圍內偏差相對較大;同時異常數據的數量較正常樣本數量非常小使得RANSAC算法沒有發揮相應的作用;Theil-sen算法則很好地減少了異常數據對參數擬合產生的影響,其預測精度在3種算法中最高。 但是,這3種算法都沒能完全精確地預測SOC,例如線性回歸與RANSAC算法在85%之后的范圍內偏差較大,Theil-sen算法在85%之后的范圍內表現良好,在其它范圍內表現不如前兩者。這里我們認為可能是由于線性模型對SOC數據規律的表示能力較弱導致的。在未來的工作中,我們會嘗試更加復雜的非線性模型以及分段線性模型來對SOC進行預測。2 SOC回歸預測
2.1 SOC定義
2.2 SOC預測模型

3 評價標準
4 實驗結果與分析
4.1 數據預處理


4.2 實驗結果




5 結論