1. 程式人生 > >BMS演算法中定義SOC需考慮哪些因素

BMS演算法中定義SOC需考慮哪些因素

SOC(state of charge)演算法一直是BMS開發應用的關鍵技術之一。因此討論SOC演算法的技術文章很常見,企業對SOC估算的高精度也往往是宣傳的亮點。而關於SOC詳盡的解釋和定義卻不常被考慮,從而導致了SOC演算法結果的參考價值大打折扣。顯而易見若SOC的概念都是模糊的,又何來精確的SOC呢?因此作者希望通過本文分析幾種維度下的SOC值,以及這些SOC值的作用。

粗率的說SOC=剩餘容量/額定容量,而要準確表述SOC的意義就要對計算的分母——額定容量(Total Capacity)和分子——剩餘容量(Residual Capacity)進行更為嚴謹的定義。以下是某些企業和組織關於SOC的定義:

(1)美國先進電池聯合會(USABC)在其《電動汽車電池實驗手冊》中定義SOC 為:電池在一定放電倍率下, 剩餘電量與相同條件下額定電量(Ah)的比值。

(2)韓國起亞汽車公司定義SOC為:SOC= 剩餘可用能量 / 總的可用能量(Wh)。

(3)日本本田公司電動汽車EV Plus定義SOC為:SOC = 剩餘電量 / (額定電量 - 電量衰減);剩餘電量(Ah)= 額定電量 - 淨放電量 - 自放電量 - 溫度補償電量。

SOC演算法首要的難點便是針對不同的“功能需求”進行額定容量和剩餘容量的定義,同時這兩個引數一旦從不同的性質維度、溫度維度、電池生命週期維度去觀察,則可能計算出不同的SOC值。首先解釋什麼是“功能需求”。在計算出電池組系統的SOC值後,有多個功能模組將呼叫SOC值作為其的輸入,同時不同的功能模組呼叫SOC值的需求也不盡相同。大致可以將“功能需求”分為三類:

1.使用者參考需求:

第一類是最常見的需求,即使用者需要對電池系統剩餘的可用能量進行評估,從而決策對產品的使用方式。因此使用者更為在意的是與執行距離或使用時間對應的SOC關係。

2.整車控制策略參考需求:

第二類是整車控制策略需要參考的SOC值,從而對行駛策略進行管理。尤其是混動汽車需要將SOC值始終控制在適合的區域內,從而實現節能減排(SOC不能太高,確保剎車能量能儘可能多的回收),提升效能(SOC不能太低,確保加速過程的大功率輸出),提高能量效率(保持在低內阻SOC區間執行),延長電池壽命(保持長期執行淺充淺放)的作用。因此整車控制器更為在意的是功率特性和壽命衰減對應的SOC關係。

3.電池管理演算法參考需求:

第三類是電池管理演算法中需要參考的SOC值,由於電池組系統將隨著使用和擱置從BOL狀態向EOL狀態過渡,而BMS則需要對電池系統全生命週期進行管理。因此電池管理演算法更為在意的是在內部有一個基準,使演算法在BOL和EOL之間的任一狀態找到可以互相等價的SOC關係。類似於工程經濟學中利用時間價值模型將不同階段的資金通過折現率演算法(discount rate) 計算,從而進行轉化或比較。

由此可見要滿足不同“功能模組”對SOC值的參考需求,SOC值的含義需要更多元,對不同功能輸出的SOC值要更精準。接下來我們就需要討論該從哪幾個維度去定義SOC值。

1.容量性質維度

進行容量積分運算的時候我們可以根據電荷守恆定律選擇以安時(Ah)為單位,也可以根據能量守恆定律選擇以瓦時(Wh)為單位。如下圖所示,以容量C為X軸,以電壓V為Y軸。不同溫度下1C放電截止在X軸上的點為當前溫度下電池的電量(mAh),而各個放電曲線與X、Y軸形成的面積為當前溫度下電池的能量(wh)。從圖中可以看出在低溫環境下電池電壓平臺顯著下降,因此在低溫下即使總電量損失不明顯,但總能量將大大降低。因此當SOC值被用於衡量續航的時候,顯然用能量(Wh)這個維度表徵更加適合。舉例:如果用電量(Ah)的維度來計算,將會出現100%至50%的過程比50%至0%所釋放的能量(wh)多的情況,使用者可能會因此對續航做出過於樂觀的判斷,導致半路拋錨。這就是第一個要考慮的定義容量性質的維度。

  

2.溫度狀態維度

討論溫度維度之前,首先需要了解溫度變化對於電量變化的影響。為了便於理解和想象我提出了一種用於描述電池狀態的幾何模型。如下圖所示:為一個60Ah電池的模型。橫座標為電流(A),縱座標為時間(S)。因此X=60 (A),Y=3600 (S)與座標軸一同封閉的面積即是電池的電量60(Ah)。然後運用電流積分運算,就可以基於這個簡單的模型計算SOC值,SOC= S2 /(S1 + S2)。

  

接下去我們來做一個可以完全憑藉想象的實驗。假設有一顆單體電池A在25℃環境下滿電狀態容量為60Ah;將其在25℃滿充,然後在0℃充分擱置再放空,共放出50Ah。那麼請想象:如果將該顆電池A在25℃調整SOC為50%(即剩餘容量為30Ah),再將其放置於0℃充分擱置並放空。請問能放出的容量應該是多少?建議大家先不要往下看,先憑藉想象力估算一下。

通常情況下我們可能會推測出以下幾種情況。推測A認為60Ah的電池在SOC為50%的情況下可以放出30Ah,即溫度對電量沒有影響。推測B認為電池在0℃電量衰減至了50Ah,同時初始剩餘了30Ah的電量,因此還能放出20Ah。推測C認為電池電量和溫度是等比變化關係,滿電狀態下0℃與25℃比例關係為5:6,則目前50%狀態下因保持該比例,則可放出的電量為25Ah。上述三個推測你認為哪一個是正確的呢?我通過實驗來回答。

  

我採用航天LFP8000(mAh)電池進行了溫度與電量的關係試驗。選取了6顆同批次生產的電池,BOL(25℃)狀態下電量約8500mAh。將這6顆電池在常溫下調整SOC在四個狀態,分別為100%,100%,75%,50%,50%,25%(為了確保試驗的有效性,測試方案在100%和50%這兩個關鍵狀態上分別都設計了兩顆電池便於參照和容錯)。然後分別在-5℃,5℃,15℃,25℃,35℃,45℃這六個溫度環境下充分擱置後放空,記錄放出電量。

將該試驗結果繪製成曲線圖(如下)。從圖中可見除35℃以外,其他溫度環境下均能找到溫度與電量變化的關係,即電池放電電量=額定電量*SOC*溫度係數。初步證明假設C的結論。而35℃的"異常"卻是我在試驗前未曾預料到的。

  

通過進一步的試驗資料分析可見,無論電池SOC處於何種狀態,電池在35℃下的放電電量始終較25℃有著約400mAh的增長,從而導致SOC越低溫度係數比例就越高的現象。

  

由此我又設計了另一個試驗。試驗採用航天LFP 60(Ah)的電池,將其在25℃充滿(測定實際容量為64.8Ah),然後在0℃充分擱置後先放出25Ah,然後在室溫25℃充分擱置,再將電池放空,共放出39.5Ah。通過試驗可見該電池並未因為曾在低溫環境下擱置和放電導致總電量明顯下降,即溫度變化可改變當前可用電量,使部分電量被“凍結”,但總電量不變。因此我們可將最初的電池幾何模型進一步優化,將溫度對容量的影響新增到模型當中,得到如下V2.0版本。(需要注意的是幾何模型的構建是通過試驗獲得電池外特性從而找到溫度與電量的某種簡單卻並不一定精確的數學關係。若從化學反應的建模方式著手可以採用能斯特模型Nernst model。考慮到電池管理系統的運算能力以及對SOC值的精度要求,幾何模型能較好的滿足實際演算法的要求。)

  

通過這個模型我們可以看到若以25℃的可用電量評價SOC,則SOC = (S2 + f2)/(S1 + S2 + f1 + f2)。

若以實時溫度的可用電量評價SOC,則SOC = S2 / (S1 + S2 + f1 + f2) 。顯然在不同的“功能需求”下我們需要選擇不同的定義。本文我們再繼續討論其他需要考慮的維度。

3.電池壽命狀態維度

電池在使用的過程中壽命將逐漸衰減,衰減機理主要在於正負極材料晶體的塌陷和電極的鈍化導致了有效鋰離子的損失。總電量也將從BOL(Beginning of Life)向EOL(End of Life)狀態趨近。因此在計算SOC時需要考慮是採用BOL時刻的總容量,還是當前壽命下的實際總容量。為了進一步完善演算法模型可在V2.0模型的基礎上增加電池迴圈壽命對容量的影響。將平面模型拓展成三維模型(如下圖所示),新增的Z軸座標表示電池迴圈次數。該模型可以根據電池迴圈次數的累加,相應的減少電量模型在X、Y軸平面的投影面積,即表徵電池容量隨著迴圈次數的衰減。當然在實際應用中電池的迴圈次數並不能直接與總電量對應,電池電量的衰減與電池在使用過程中的充放電倍率C rate、放電深度DOD、使用溫度、擱置溫度等因素相關。

  

要解決這個問題首先需要通過電池實驗找到在特定基準下的電池迴圈次數與電量衰減的關係。例如:以70%DOD、25℃、1C倍率充放迴圈為基準的電量衰減特性。然後僅改變其中的單一因素進行試驗(如下表所示):

通過試驗可獲得電池電量衰減曲線(如下圖示例),從而得到溫度因子對總電量與迴圈次數的關係的影響(利用Arrhenius方程求解)。則BMS可在實際的工況中將影響因子與實時電流一同進行積分運算,從而將實際迴圈次數折算到特定基準下的迴圈次數。對於影響因子本身的不精確和積分過程中造成的累計誤差可以通過充電工況進行必要的校正以提高電量衰減的估算精度。

  

當然Z軸座標除了迴圈次數以外還可以考慮採用電池內阻來反映容量的衰減。但從模型在BMS軟體應用的角度來看迴圈次數是更為便於採集、運算、比較、參照的引數。現在回到最初的公式:SOC=剩餘容量/總容量。再將上述三個維度代進公式:SOC = 剩餘容量_(性質_溫度)/ 總容量_(性質_溫度_壽命)。理論上可能有32種排列組合,當然大多數並沒有實際意義,需要結合“功能需求”確定適合的定義,常見有3種。

在用以衡量續駛里程、續航時間等與功率相關的場景下可定義為:SOC = 剩餘容量_(Wh_RT)/ 總容量_(Wh_N_Age)。首先該定義選擇了以能量(Wh)進行比較,同時剩餘容量選取了實際溫度(RT)下的狀態,而總容量選擇了25℃(N)的基準,目的在於給使用者一個相對穩定的參照座標系。並且在該定義下總容量可隨著電池壽命的衰減及時調整至實際壽命(Age)。需要注意的是在進行能量積分運算時必須將能量效率η係數代入,從而在剩餘能量中減去電池執行產生的熱能。因此該SOC值可描述為SOE(State of Energy)。

在電池健康狀態(SOH)演算法中可定義為:SOC = 剩餘容量_(Ah_N)/ 總容量_(Ah_N_BOL)。始終以常溫下BOL狀態為基準,當電池系統滿充時刻則可求得SOH(State of Health)= SOC / 100%。

在電池功率邊界(SOP)演算法中需要輸入當前溫度和SOC值進行查表,從而確定實時的充放電功率邊界。可定義SOC = 剩餘容量_(Ah_N)/ 總容量_(Ah_N_Age)。選擇該定義方式是由於電池功率邊界通常是根據不同溫度下的HPPC實驗計算和標定的,所以代入的SOC值可忽略溫度對剩餘容量的影響。

4.電池一致性維度

前三個維度主要討論了理想情況的SOC定義(電池系統內的電池一致性程度高),但在實際情況下一定需要考慮一致性差異對SOC計算的影響。一致性差異可以分兩個方面展開討論,第一種情況是Charge Mismatch,通常是電池之間自放電差異造成的電池荷電態不同。

  

第二種情況是Capacity Mismatch,可能是電池本身的差異或是電池使用環境、溫度差異等因素造成的容量差異。

  

正常情況下我們認為電池系統符合短板效應,即應該以Min_Cell(最低荷電態單體)的SOC為準。但在充電過程中當Max_Cell(最高荷電態單體)至100%SOC時充電停止,而此時SOC卻不到100%。這對於使用者而言就意味著電池無法充滿電(想象一下睡前你給手機充上電,第二天一早醒來看到電量還是90%是什麼感覺,一定認為手機出什麼故障了),顯然這是不可接受的。而如果我們以Max_Cell的SOC為準,那麼很可能使用者在看到還有10%電量的情況下突然失去電池系統的功率輸出了。如果以電池系統所有電池的平均SOC為準,那上述兩個問題將同時存在。因此可以通過權重係數調節SOC的選取傾向,即當電池系統整體荷電態較高時偏重Max_Cell,反之偏重Min_Cell(舉例:SOC=Max_Cell * SOC+Min_Cell *(1 - SOC))。

對於情況一:Charge Mismatch在放電過程中的SOC曲線將如下圖變化。

  

對於情況二:Capacity Mismatch在放電過程中的SOC曲線將如下圖變化。

  

總結:

本文以SOC = 剩餘容量/總容量 的公式為出發點,分析了分子和分母在不同維度上的可能性,並設計了幾何模型用以描述,從而實現了對SOC更為具體的定義。同時將電池系統的不一致性作為SOC計算的一個重要考慮因素,提出了權重係數計算方法。作者認為只有明確了SOC的定義才能為BMS演算法在實際應用中提高SOC精度提供依據和基礎。

參考文獻:

[1] John Wang, Ping Liua, Jocelyn Hicks-Garnera.Cycle-life model for graphite-LiFePO4 cells [J].Power Sources, 196 (2011) 3942–3948.

[2] 2004年10月 第34卷第五期 《電池》電動汽車SOC 估計方法原理與應用,林成濤, 王軍平, 陳全世。來源:葉磊Ray