陳瑞 張博倫 白創(chuàng)
摘 要 本文針對21700鋰電池管理系統(tǒng)(BMS)的設(shè)計(jì),提出了以STM32F104處理器為核心,基于神經(jīng)網(wǎng)絡(luò)法的電池管理系統(tǒng)設(shè)計(jì)方案。設(shè)計(jì)中,使用了LTC6803芯片完成了電壓監(jiān)測電壓均衡,電池組保護(hù)的設(shè)計(jì)要求。通過BP神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)模型的建立,該設(shè)計(jì)可以應(yīng)用于鋰離子電池的管理系統(tǒng)中。
關(guān)鍵詞 BMS;神經(jīng)網(wǎng)絡(luò);電壓監(jiān)測;電池組保護(hù)
引言
本文基于BP神經(jīng)網(wǎng)絡(luò)模型,電壓監(jiān)測芯片LTC6803,霍爾電流計(jì)ACS758,數(shù)字隔離器ISO7241,處理器STM32F104,溫度監(jiān)測芯片TMP36以及其他外圍電路,提出了一種基于神經(jīng)網(wǎng)絡(luò)法的電池管理系統(tǒng),它能夠?qū)崿F(xiàn)對電池進(jìn)行狀態(tài)估算,對電池組中每節(jié)電池進(jìn)行電壓均衡以及安全保護(hù)的功能。
1常見的SOC估算方法分析
首先,我要闡述兩個(gè)概念:
第一個(gè)概念是SOC,全稱是State of Charge,荷電狀態(tài),也叫剩余電量,代表的是電池放電后剩余容量與其完全充電狀態(tài)的容量的比值。其取值范圍為0~1,當(dāng)SOC=0時(shí)表示電池放電完全,當(dāng)SOC=1時(shí)表示電池完全充滿。SOC的計(jì)算公式[1-3]為:
第二個(gè)概念是電池放電倍率(C)放電倍率是指在規(guī)定時(shí)間內(nèi)放出其額定容量(Q)時(shí)所需要的電流值,它在數(shù)值上等于電池額定容量的倍數(shù)。即:充放電電流(A)/額定容量(Ah),其單位一般為C ( C-rate的簡寫),如0.5C,1C,5C等。
對于電池管理系統(tǒng)來說,主要的監(jiān)測對象就是SOC。然而,動(dòng)力電池SOC的估算不能簡單地通過儀表觀測得到,它必須對動(dòng)力電池采集大量的動(dòng)態(tài)數(shù)據(jù),并通過相應(yīng)的估算方法來間接估算。目前常見的方法有:安時(shí)法、開路電壓法、卡爾曼濾波法,神經(jīng)網(wǎng)絡(luò)法等。下面將對這幾種常見的SOC估算方法進(jìn)行分析:
1.1 安時(shí)法
安時(shí)法也稱庫侖計(jì)量法,主要通過對一段時(shí)間內(nèi)動(dòng)力電池回路中電流與時(shí)間進(jìn)行積分,然后根據(jù)SOC初始值,就可以計(jì)算出當(dāng)前的SOC值:
式中:SOC0為動(dòng)力電池?cái)?shù)據(jù)采集時(shí)的SOC初始值。 安時(shí)法對于估算動(dòng)力電池當(dāng)前狀態(tài)的SOC十分有效,但安時(shí)法的缺點(diǎn)非常明顯:首先,安時(shí)法對于初始狀態(tài)SOC0的精度非常依賴,不僅如此,在后續(xù)的工作過程中,安時(shí)法會(huì)累計(jì)誤差,最終導(dǎo)致系統(tǒng)誤差變大,精度降低。
1.2 開路電壓法
開路電壓法的工作原理主要是采集動(dòng)力電池的開路電壓值(OCV),由于大量的試驗(yàn)數(shù)據(jù)證明,動(dòng)力電池的OCV和動(dòng)力電池的SOC之間存在一定的函數(shù)關(guān)系,所以可以通過使用專業(yè)儀器測量電池開路電壓與SOC之間的關(guān)系,得到OCV曲線。
1.3 卡爾曼濾波法
卡爾曼濾波法通過一個(gè)狀態(tài)方程和一個(gè)量測方程來完整的描述一個(gè)線性動(dòng)態(tài)過程,計(jì)算基礎(chǔ)是利用動(dòng)力電池的工作特性建立相應(yīng)的等效模型,然后通過等效模型的具體表征來描述動(dòng)力電池的狀態(tài)方程,通過結(jié)合狀態(tài)空間和隨機(jī)估計(jì)理論,來估算動(dòng)力電池的SOC。
但是鋰電池的工作狀態(tài)并不是線性過程。同時(shí),卡爾曼濾波法嚴(yán)重依賴建立的等效模型的準(zhǔn)確度,所以我們選取了神經(jīng)網(wǎng)絡(luò)法。
1.4 神經(jīng)網(wǎng)絡(luò)法
神經(jīng)網(wǎng)絡(luò)法通過大量的電池充放電數(shù)據(jù)建立神經(jīng)網(wǎng)絡(luò)模型,并且利用神經(jīng)網(wǎng)絡(luò)模型的強(qiáng)非線性、自主學(xué)習(xí)能力等特點(diǎn),可以在自主學(xué)習(xí)過程中會(huì)不斷修改自身的權(quán)重以及偏差,使其誤差始終保持在最小值,從而確保神經(jīng)網(wǎng)絡(luò)模型的精度。
2電池?cái)?shù)據(jù)的采集
本設(shè)計(jì)針對“天津力神21700鋰電池”進(jìn)行設(shè)計(jì)。
首先,我們要獲得電池的OCV曲線,方法是:將一個(gè)充滿電的電池在25℃的溫度下,通過0.33C的電流恒流放電,每放電10%,等待30分鐘后記錄此刻的開路電壓。重復(fù)此步驟,直到電池工作電壓低于放電截止電壓。將這些開路電壓通過Matlab軟件進(jìn)行擬合,就得到了OCV曲線。
根據(jù)神經(jīng)網(wǎng)絡(luò)模型的要求,我們需要準(zhǔn)確的知道電池放電過程中,電壓與電池剩余電量的對應(yīng)關(guān)系,這樣,我們就可以通過檢測電池在工作中的電壓,得到電池的剩余電量。但是,由于鋰電池會(huì)受到放電電流和環(huán)境溫度的影響,所以我們也將放電電流和環(huán)境溫度作為參變量考慮在模型內(nèi)。
具體的測試方法是:我們通過鋰電池測試儀,在控制環(huán)境溫度恒溫的前提下,對充滿電的鋰電池進(jìn)行恒流放電。根據(jù)公式Q=It,我們就可以得到在該條件下電壓與剩余電量的關(guān)系。在室溫為20℃,放電電流1C的情況下,測得的放電電壓與剩余電量的關(guān)系。
用同樣的方法,我們改變環(huán)境溫度和放電電流,就可以得到不同環(huán)境下,放電電壓與剩余電量的關(guān)系。將數(shù)據(jù)通過神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,就可以得到適合于本系統(tǒng)的電池工作模型。
3系統(tǒng)設(shè)計(jì)
3.1 電壓監(jiān)測的實(shí)現(xiàn)方法
LTC6803中,C1至C12是用于監(jiān)視電池電壓的輸入。底端電池的負(fù)端子連接至引腳V- 。 S1至S12引腳用于平衡電池組里的電池。如果串聯(lián)電池中的一節(jié)電池過度充電,則S輸出的內(nèi)部可用于對該節(jié)電池進(jìn)行放電。每個(gè)S輸出的內(nèi)部具有一個(gè)用于放電N溝道MOSFET。(見圖1),實(shí)現(xiàn)電壓均衡的效果。
3.2 停機(jī)保護(hù)的實(shí)現(xiàn)方法
保護(hù)模塊中,每當(dāng)電壓,電流和溫度中任意一項(xiàng)超過了預(yù)設(shè)的警戒值,處理器就會(huì)立刻輸出信號(hào),關(guān)斷繼電器,使電路停止工作。由于并聯(lián)電容的作用,雖然電路被關(guān)斷,但是整個(gè)系統(tǒng)并不會(huì)瞬間失去供電,而是緩慢的耗盡電容中儲(chǔ)存的電量,繼而停機(jī)。這一緩沖裝置在實(shí)際的應(yīng)用中,能夠減輕突然開關(guān)機(jī)產(chǎn)生的瞬時(shí)電壓對電路的沖擊,起到保護(hù)效果。
4神經(jīng)網(wǎng)絡(luò)模型的搭建
4.1 神經(jīng)網(wǎng)絡(luò)建模原理
BP神經(jīng)網(wǎng)絡(luò)是一種信息正向傳播,誤差反向傳播的多層前向型網(wǎng)絡(luò)。常見模型結(jié)構(gòu)如圖1所示. 按照信息傳播的方向給出網(wǎng)絡(luò)的狀態(tài)方程,用和分別表示第i層第j個(gè)神經(jīng)元的輸入和輸出量,則BP網(wǎng)絡(luò)的每一層輸入輸出關(guān)系可描述為:
人工神經(jīng)網(wǎng)絡(luò)無須事先確定輸入輸出之間映射關(guān)系的數(shù)學(xué)方程,僅通過自身的訓(xùn)練,學(xué)習(xí)某種規(guī)則,在給定輸入值時(shí)得到最接近期望輸出值的結(jié)果。作為一種智能信息處理系統(tǒng),人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)其功能的核心是算法。BP神經(jīng)網(wǎng)絡(luò)是一種按誤差反向傳播(簡稱誤差反傳)訓(xùn)練的多層前饋網(wǎng)絡(luò),其算法稱為BP算法,它的基本思想是梯度下降法,利用梯度搜索技術(shù),以期使網(wǎng)絡(luò)的實(shí)際輸出值和期望輸出值的誤差均方差為最小。
基本BP算法包括信號(hào)的前向傳播和誤差的反向傳播兩個(gè)過程。正向傳播時(shí),輸入信號(hào)通過隱含層作用于輸出節(jié)點(diǎn),經(jīng)過非線性變換,產(chǎn)生輸出信號(hào),若實(shí)際輸出與期望輸出不相符,則轉(zhuǎn)入誤差的反向傳播過程。誤差反傳是將輸出誤差通過隱含層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層所有單元,以從各層獲得的誤差信號(hào)作為調(diào)整各單元權(quán)值的依據(jù)。通過調(diào)整輸入節(jié)點(diǎn)與隱層節(jié)點(diǎn)的連接強(qiáng)度和隱層節(jié)點(diǎn)與輸出節(jié)點(diǎn)的連接強(qiáng)度以及閾值,使誤差沿梯度方向下降,經(jīng)過反復(fù)學(xué)習(xí)訓(xùn)練,確定與最小誤差相對應(yīng)的網(wǎng)絡(luò)參數(shù)(權(quán)值和閾值),訓(xùn)練即告停止。此時(shí)經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)即能對類似樣本的輸入信息,自行處理輸出誤差最小的經(jīng)過非線性轉(zhuǎn)換的信息。
4.2 神經(jīng)網(wǎng)絡(luò)建模方法
21700鋰電池 SOC 預(yù)測需考慮的因素有很多,在進(jìn)行21700鋰電池 SOC 預(yù)測時(shí)必須綜合考慮,研究選取電池的放電電壓作為預(yù)測指標(biāo),荷電狀態(tài) SOC 為網(wǎng)絡(luò)輸出,以生成 BP 神經(jīng)網(wǎng)絡(luò)的21700鋰電池 SOC 預(yù)測模型。
(1)數(shù)據(jù)預(yù)處理
原始數(shù)據(jù)預(yù)處理包括數(shù)據(jù)量化和歸一化。預(yù)處理后的數(shù)據(jù)能夠被 BP 神經(jīng)網(wǎng)絡(luò)讀入。
數(shù)據(jù)歸一化是神經(jīng)網(wǎng)絡(luò)預(yù)測前對數(shù)據(jù)的預(yù)處理,是將網(wǎng)絡(luò)中所有輸入數(shù)據(jù)都轉(zhuǎn)化為[0,1]之間的值。數(shù)據(jù)歸一化的函數(shù)形式為
式中,和分別為數(shù)據(jù)序列中的最小值和最大值。
(2)訓(xùn)練集/測試集產(chǎn)生
為保證訓(xùn)練數(shù)據(jù)隨機(jī)性,隨機(jī)選取測試數(shù)據(jù)庫中—— 組數(shù)據(jù)作為訓(xùn)練集,其余 —— 組數(shù)據(jù)作為測試集。
(3)BP 神經(jīng)網(wǎng)絡(luò)
把訓(xùn)練集輸入構(gòu)建好的 BP 神經(jīng)網(wǎng)絡(luò),然后進(jìn)行網(wǎng)絡(luò)訓(xùn)練,具體步驟如下:①隨機(jī)生成BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值構(gòu)造 BP 神經(jīng)網(wǎng)絡(luò);②BP 網(wǎng)絡(luò)創(chuàng)建完畢后,便可將訓(xùn)練集向量輸入到網(wǎng)絡(luò)中,利用BP 神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行優(yōu)化調(diào)整,直至滿足訓(xùn)練要求,迭代終止。
(4)21700鋰電池 SOC 測試
網(wǎng)絡(luò)訓(xùn)練完成后,即可對測試集的21700鋰電池SOC 進(jìn)行預(yù)測。
5軟件系統(tǒng)的實(shí)現(xiàn)方法系統(tǒng)框架:采用uC/OS-III內(nèi)核
uC/OS-III被設(shè)計(jì)用于32位處理器,適合本系統(tǒng)使用的STM32F103主控芯片。
uC/OS-III允許多個(gè)任務(wù)具有相同的優(yōu)先級(jí),例如本系統(tǒng)中的SPI函數(shù)、溫度檢測函數(shù)和電流檢測函數(shù)的優(yōu)先級(jí)便相同。這三個(gè)函數(shù)通過時(shí)間片輪轉(zhuǎn)法輪流(round robin) 運(yùn)行。uC/OS-III是一個(gè)可擴(kuò)展的,可固化的,搶占式的實(shí)時(shí)內(nèi)核。當(dāng)狀態(tài)異常時(shí),便能及時(shí)插入停機(jī)保護(hù)函數(shù)。雖然目前的任務(wù)數(shù)不多,但是在二次開發(fā)增加功能時(shí),該框架可以為各個(gè)任務(wù)之間的調(diào)度提供方便。
參考文獻(xiàn)
[1] 楊保亮,楊守良. 基于STM32和PWM的鋰離子電池檢測系統(tǒng)設(shè)計(jì)和研究[J]現(xiàn)代電子技術(shù),2018(12):128-131.
[2] 唐俊龍,龔磊,禹智文,等. 基于UCOSII鋰離子電池監(jiān)控管理系統(tǒng)的設(shè)計(jì)[J].電子測試,2019,407(2):48-50,115.
[3] 高文敬.動(dòng)力電池 SOC 估算方法研究與BMS開發(fā)[D].淄博:山東理工大學(xué),2018.