周維,嚴小峰,鄒波
(1.江西科技學院汽車服務工程及產業升級協同創新中心,江西南昌 330098;2.湖南大學機械與運載工程學院,湖南長沙 410082)
BMS作為電動汽車電池系統的大腦,對電池的全生命周期工作過程進行監控和管理,能有效提高電池的使用性能,延長其使用壽命,并保證其安全可靠地工作,是電池系統中必不可少的一部分。當前BMS軟件的開發仍較多采用手寫C代碼的方式,不僅效率低,而且代碼可讀性差,導致錯誤不易察覺,開發周期很長。本文作者采用基于模型的軟件開發方式可以很好地解決這些問題。基于模型的設計是基于框圖進行設計,模塊化程度高、可讀性強、模型搭建效率高,且測試快捷和方便,能夠很好地發現軟件設計過程中的不足,并及時進行修改,大大提高軟件開發的效率,同時也為企業的軟件開發節約了成本[1-3]。
BMS的主要功能包括電池狀態估計、能量控制管理、電池狀態監測和安全保護等。
SOC作為電池管理系統中最基本和最重要的參數之一,其估計算法的研究十分廣泛,包括安時積分法、電池內阻法、開路電壓法、Kalman濾波算法、模糊控制算法以及神經網絡算法[4]。在工程上,安時積分法因為算法簡單且計算量小而被廣泛使用。安時積分法的工作原理模型為
(1)
式中:SOC0為充放電的起始狀態;C為電池的實際最大容量;I為電池的瞬時放電電流(充電為負,放電為正);η為庫侖效率系數。
從式(1)可以看出,SOC估算誤差的來源包括初值誤差、電流測量誤差以及電池實際容量變化產生的誤差等,其中影響較為明顯的是電流采集的誤差。電池系統由于處在電動汽車這一復雜環境中,電流信號的采集往往會因為環境的干擾而引入噪聲。這些噪聲會隨著電流的積分慢慢累積變大,最終導致SOC估計值與實際值偏差較大。
為了消除安時積分產生的誤差,文中設計了6種修正機制來對安時積分估計得到的SOC值進行修正。這6種修正機制分別為開路電壓修正、預充電修正、充滿修正、極限高端修正、極限低端修正以及動態低端修正??稍陔姵靥幱诓煌ぷ鳡顩r時采用相應的修正方法對SOC估計值進行修正,以實現SOC的高精度估算。下面對這6種機制的修正策略和觸發時機進行簡要介紹。
開路電壓修正:當電池系統下電且靜置較長時間時,在下一次上電時可根據OCV-SOC關系,通過采集此時電池的端電壓對SOC進行一次修正。
預充電修正和充滿修正是在電池處于充電狀態下,對電池的SOC進行修正。其中預充電修正是在充電后期,當電池組中最大單體電壓接近充電截至電壓時,根據實驗值對SOC進行修正。充滿修正是在電池即將充滿時,當電池組的平均電壓超過電壓設定值時,對SOC進行修正。
極限高端修正和極限低端修正則是分別在SOC處于極高和極低的兩種極限狀態時,對電池的SOC進行修正。極限高端修正是當電池處于高SOC狀態時,通過采集此時電池組的最高電壓,根據實驗標定的電壓與SOC關系對SOC進行修正。而極限低端修正與極限高端修正恰好相對,當電池組中的最小電壓處于一定的區間,且電池組的總電壓低于設定值時,根據實驗數據對SOC進行修正。
動態低端修正:當SOC低于一定閾值,電流較小且保持平穩時,可根據實驗測得的端電壓與SOC的關系,采集此時電池組中的最小端電壓對安時積分每次積分計算的安時量進行平滑修正,以消除安時積分所產生誤差。
SOP表示動力電池的峰值功率狀態, 它的準確估計對于電動汽車安全可靠地行駛尤為重要。由于SOP受多個變量的約束,在對SOP進行估計時,可將這些約束劃分為電約束和熱約束兩大類。電約束包括SOC約束和端電壓約束;熱約束則主要是溫度約束。通過對電池組加載電流激勵,可得到溫度和端電壓限制下的峰值電流,進而可對電池組的峰值功率進行估計。
目前國內外對電池組均衡技術的研究主要集中在均衡策略和均衡電路拓撲結構兩個方面。選擇合適的均衡變量是制定合理均衡策略的前提。電壓和SOC是目前常用的均衡變量。均衡電路的拓撲形式按照有無能量耗散可分為主動均衡和被動均衡。主動均衡沒有能量耗散,能量轉移速度快,均衡效率高,但控制電路較復雜,實現難度大,且成本較高;被動均衡存在能量耗散,但控制電路簡單、極易實現、成本較低。
針對被動均衡方案,選擇端電壓和SOC作為均衡變量。具體的均衡策略為:當某個電池單體的SOC達到限定值時(即在本均衡控制中將這一狀態定義為電池處于充滿狀態)采用SOC作為均衡變量;否則,采用電池組的端電壓作為均衡變量。因此文中的均衡階段可按控制變量的不同分為電壓均衡階段和SOC均衡階段。文中所設計的均衡系統的作用過程為充電過程,因為充電過程中,電池所處的環境較為穩定、干擾源少、均衡控制簡單、均衡效果好。
文中所設計的充電控制策略為恒流恒壓充電法。采用恒流恒壓的充電方法可以保證電池盡可能快地充滿,同時對電池損害小。具體的控制策略為:對于直流充電,為了保證電池在大倍率充電電流下不出現安全事故,最大允許充電電流受電池溫度約束,即對應于一定的溫度值,有一個最大的許用電流;在開始恒流階段之前,為避免電流突然的劇增對電池造成損傷,在電流由零增加到最大許用充電電流這一階段,對電流做一個短時間的電流逐步增加處理;在充電電流的作用下,電池的電壓逐步增大,當某個單體電池的最高電壓達到充電截止電壓或者整個電池組的總電壓超過某一設定閾值時,恒流充電階段結束;進入恒壓充電階段,維持電池組中單體電池的最高電壓一直穩定在充電截止電壓,直至電池組中的最大SOC達到100%,充電結束。交流充電的控制過程與直流類似,不同的是交流充電的充電電流相對較小,充滿時間較長。
文中所設計的熱管理系統采用風冷的冷卻方式,風速通過一個兩擋風扇進行控制。BMS采集電池組中單體電池的最高溫度、最低溫度以及最大溫差。當單體電池的最高溫度超過35 ℃,或者最大溫差超過8 ℃且最小溫度超過30 ℃時,低速風扇開啟。在此基礎上,當單體電池的最高溫度超過40 ℃時,高速風扇開啟。在風扇處于開啟狀態,電池組中最高溫度低于30 ℃且最大溫差低于5 ℃時,風扇重新關閉,電池進行自然冷卻,整個過程根據條件依次循環,直至電池溫度處于最適宜的溫度范圍內(25~40 ℃)。
為了更好地對已設計好的BMS軟件進行仿真測試和驗證,需要建立BMS的受控對象,即電池系統模型。該模型必須能很好地模擬電池的外特性、產熱和散熱,以及單體電池間的不一致性。同時,受控對象必須與所研究的對象有很強的相關性。基于以上幾點,在MATLAB/Simulink中對電池系統進行建模,包括電池單體的建模和電池包的建模。
電池單體模型采用電熱耦合的電池模型,如圖1所示。其中電模型采用常用的二階RC等效電路模型,熱模型采用二狀態熱模型[5]。

圖1 電熱耦合模型原理
2.1.1 二階RC等效電路
對等效電路進行分析,得到等效電路中各個部分電壓和電流的關系為
(2)
2.1.2 二狀態熱模型
二狀態熱模型中的生熱和傳熱方程為
(3)
電動汽車的動力電池系統是由單體電池通過串并聯的方式組合在一起的,單個電池的特性無法體現整個電池系統的特征,因此為了更好地服務于軟件測試,在單體電池建模的基礎上,考慮各單體電池之間的聯系以及對整個電池組的影響,建立了一個既能反映單體電池間一致性,又能反映各單體電池間熱傳遞以及與環境之間進行熱交換情況的電池包模型。由于并聯在一起的電池組對所要研究的均衡策略的仿真分析無影響,且這部分的電池單體間緊密接觸,溫度效應接近,為了讓模型看起來簡潔且便于分析,將并聯在一起的電池視為完全一樣的電池,因此并聯的電池組與單個電池只存在數量上的倍數關系,所設計的電池組為20并。為了考慮串聯電池組間熱量的傳遞關系,在串聯的電池組間建立了熱對流模型,模擬電池組間電池的熱對流情況,能很好地反映電池包內部熱場分布。同時為了模擬電池與空氣的熱交換,引入一個等效熱阻Ru。Ru的值與電池包內部的空氣流速有關,能很好地模擬散熱系統在不同工作狀態時,電池包內部的熱場分布情況。除此之外,文中在模型中建立了正負繼電器、預充電回路和充電繼電器模型,以模擬電池充放電時的上下電過程和充電過程。為了分析的方便,只建立了4組電池串聯的模型,對于串數更多的電池組,可以很方便地進行添加。建好的電池包模型如圖2所示。

圖2 電池包結構及封裝
MIL即模型在環,是在Matlab/Simulink環境下進行仿真,通過輸入一系列測試用例,驗證模型是否滿足設計的功能要求。MIL測試簡單快捷、效率高,在個人計算機上就能實現,能夠很好地檢測軟件設計中的缺陷,已被廣泛應用于軟件開發初期的模型驗證[6-9]?;谇笆鏊⒌碾姵叵到y模型,對所開發的BMS軟件模型進行MIL測試,以驗證所設計的軟件功能的合理性。MIL測試分為單元測試和集成測試兩部分。
為了便于對模型仿真進行控制,并對仿真結果進行整理和顯示,文中基于MATLAB/GUI,建立了模型的可視化閉環仿真平臺,不僅可以通過GUI控件的簡單操控實現后臺模型的自動化仿真測試,還能對仿真中的主要數據進行動態顯示,較方便地對整個仿真過程進行更好的監控,極大地提高了軟件測試的效率。
圖形用戶界面GUI(Graphics User Interface)是由各種圖形對象,如圖形窗口、光標、按鍵、菜單、文字說明等對象構成的用戶界面。在GUIDE平臺下可實現對用戶自定義界面的菜單、快捷菜單以及各種控件的位置布置及其屬性編輯,從而設計出自定義的圖形用戶界面。圖形用戶界面可視化強、操作靈活,能為人們提供良好的科學分析仿真平臺。圖3為所建立的BMS應用層軟件模型仿真控制界面。

圖3 BMS模型MIL仿真控制界面
為了驗證各軟件模塊設計的合理性,將對模型中的SOC估計模塊、充電管理模塊、SOP估計模塊進行獨立的單元測試。由于熱管理在BMS中一直處于工作狀態,且通常都是和其他模塊一起工作,因此不單獨對熱管理模塊進行測試。
3.2.1SOC單元測試
將電池包模型與SOC估計模型結合組成SOC單元測試模型,如圖4所示。對SOC單元模型進行仿真測試,測試結果如圖5所示。

圖4 SOC單元模型

圖5 SOC單元模塊仿真結果
由圖5的仿真結果圖可以看到,在1處,通過開路電壓對SOC進行修正,精度較高,與真實值很接近。隨著安時積分的進行,由于系統噪聲的加入,安時積分對誤差不斷累積,導致積分得到的SOC與真實值的差距慢慢變大。當電池所處的工況滿足SOC修正機制的條件時,會觸發對應的SOC修正機制,從而對SOC進行修正。如圖中所示,2~6分別對應為動態低端修正、極限低端修正、預充電修正、充滿修正和極限高端修正。為了避免SOC值變化過大,給用戶帶來不安,文中所設計的修正策略加入了平滑處理。當電池處于放電工況時,如果計算得到的SOC比實際值小時,每次計算SOC變化值時,少減一定數值;反之,則多加一定數值。對于充電工況而言,其平滑處理與放電情況則相反。按照此修正機制,隨著時間的累積,誤差將會慢慢消除。
3.2.2 充電單元測試
將電池包模型與充電模型組合成充電單元測試模型如圖6所示,進行充電仿真測試。在這里對充電模塊的快充過程進行測試,測試結果如圖7所示。

圖6 充電單元模塊

圖7 充電模塊仿真結果
由圖7可以看到充電過程中SOC和充電電流的變化情況。由圖可知,電池是按照恒流恒壓進行充電的;電池從10%充到80%大概需要30 min。圖7(c)是由圖7(b)中A區域放大得到的,表示電流從零慢慢增加到最大允許充電電流,這樣做的目的是為了避免電流的迅速增大給電池組帶來沖擊。
3.2.3 SOP單元測試
將SOP估計模型和電池模型組合成SOP單元測試模型,如圖8所示。通過對電池組加載一定工況下的電流,得到在電壓、溫度和SOC限制下各時刻單體電池的峰值電流,結果如圖9所示。由圖9的結果可以看到,該電池組的峰值電流主要是受到單體電池端電壓的限制。隨著放電的持續,電池溫度在逐步上升,在中后期的時候達到溫度限制值,此時的峰值電流主要受溫度的限制。在后期,由于持續的放電,電池SOC在逐步減小,最終到達SOC限制值,此時的峰值電流主要受SOC的約束。在測試前,將溫度限制為不超過45 ℃;SOC限制為不低于0.05;端電壓的限制范圍為3~4.2 V。從溫度、SOC和端電壓的仿真可以看到,三者的變化范圍都在預期設定的限制范圍內。

圖8 SOP單元模塊

圖9 峰值電流仿真結果
由于BMS是由許多系統模塊組成的,在BMS實際工作過程中,要求各系統模塊協同作用,以達到期望的整體效果。因此,為了驗證各模塊集成在一起時的工作效果,文中以電池包模型為受控對象,將均衡管理模型、充電模型、SOC模型、SOP模型和熱管理模型集成在一起組成集成測試模型。
3.3.1 集成測試1
首先對該集成測試模型進行放電工況的仿真,建立的集成測試模型如圖10所示,測試結果如圖11所示。圖11(a)為該工況下,單體電池的峰值電流。圖11(b)表示SOC的變化情況以及對SOC進行動態低端和極限低端修正的情況。由仿真結果可以看到,經過修正后,SOC的誤差明顯減小。圖11(c)反映了該工況下,電池的溫度變化及相應的散熱系統的響應。當最高溫度超過35 ℃時,風扇開啟,對應的轉速為500 r/min,此時為低速擋;當溫度繼續增加時,超過40 ℃時,對應轉速為1 000 r/min,此時為高速擋;當溫度低于40 ℃時,風扇又回到低速擋。
3.3.2 集成測試2
為了對集成模型充電時的情況進行分析,對該模型進行了充電仿真測試。為了模擬電池組的不一致性,將各電池的初始SOC設置為不同值,將電池1和電池2設為一組,初始SOC為0.1;將電池3和電池4設為一組,初始SOC為0.15,最終得到測試結果如圖12所示。由圖可以看出,在初始階段,主要是以端電壓為均衡變量,對串聯電池組進行電壓均衡。之后到達SOC閾值時,以SOC為均衡變量進行均衡。由于所設計的均衡模式為被動均衡,每次的均衡電流很小,效率比較低,所以均衡時間較長。但是經過長時間的均衡作用,電池間的不一致性得到緩解。因此要完全消除電池間的不一致性,需要長時間的充電均衡來實現。對于一些不一致性非常嚴重的電池組來說,甚至需要多次的充電均衡才能達到很好的均衡效果。

圖10 集成測試模型

圖11 集成測試模型1仿真結果

圖12 集成測試模型2均衡仿真分析
當前的車載系統均為嵌入式系統,模型功能的實現,最終都要轉換成相應的代碼來實現。雖然通過之前的MIL仿真,已經驗證了模型的正確性,但是在模型代碼生成過程中可能會引入一些錯誤,導致模型功能無法正確實現。為了驗證自動生成的代碼和用于代碼生成的模型在功能實現上的一致性,建立了相應的軟件在環(SIL)模型,并進行了SIL仿真測試。
在進行SIL測試之前,需要將模型生成相應的代碼?;谀P驮O計有一個很大的優勢就是代碼自動生成,且生成的代碼質量和執行效率較高,省去了代碼編寫和調試的相關工作,大大提高了產品的開發效率[10-11]。因此,基于MATLAB R2017a/Simulink軟件平臺,將之前驗證過的模型進行代碼自動生成,并將代碼編譯成可執行文件。
在SIL測試階段,模型驗證已經完成,可以復用模型測試時使用的測試用例,避免對測試用例進行重新設計。
SIL測試主要是對比驗證測試。如圖13所示,在測試過程中,給SIL模型和用于代碼生成的模型相同的輸入,然后比較兩者的輸出是否一致。當輸入信號的數據量足夠大,能夠反映電池管理系統的各功能模塊,涵蓋各種信號范圍,并且兩者的輸出結果一致時,基本可以認為代碼和模型在功能上的執行效果是一致的。

圖13 SIL測試仿真模型
由圖14的對比測試結果可看出,自動生成的代碼和用于代碼生成的模型的仿真結果完全重合,誤差均為0,兩者在功能實現上具有很好的一致性。

圖14 仿真結果對比分析
基于模型設計這一產品開發思想給前期算法研究和應用層軟件開發帶來了極大的便利,可視化的開發環境可以讓工程師在前期軟件設計時效率大大增加,且降低出錯率。采用基于模型的設計思想,對BMS應用層軟件的主要功能模塊進行了開發和測試。單元測試和集成測試的結果均表明,所開發的BMS應用層軟件能滿足主要的功能需求和可靠性要求,所建立的BMS MIL仿真平臺能快捷、方便地對BMS應用層軟件進行測試和驗證。同時SIL仿真平臺能夠很方便地對模型生成的代碼在功能上的執行效果進行驗證。在后續的工作中,當把相應的硬件系統元件確定后,還能對模型進行PIL和HIL仿真,實現模型從MIL到HIL的一個完整的模型驗證流程,極大地方便了對所設計的功能策略進行驗證,提高前期功能軟件開發的效率,縮短產品的開發周期。