從事BMS軟件設(shè)計(jì)已有一段時(shí)間了,自覺(jué)還沒(méi)有真正的入門,不過(guò)還是有一些心得是想可以分享的,也是對(duì)自己的知識(shí)做一個(gè)梳理吧。在我梳理之前,我發(fā)現(xiàn)網(wǎng)上已有相關(guān)的梳理,竟然軟件架構(gòu)都差不多,我就借鑒了一下。
首先,電池管理系統(tǒng)(BMS)是電池與用戶之間的紐帶,主要對(duì)象是二次電池,主要就是為了能夠提高電池的利用率,防止電池出現(xiàn)過(guò)度充電和過(guò)度放電,可用于電動(dòng)汽車,電瓶車,機(jī)器人,無(wú)人機(jī)等。
接下來(lái),我會(huì)從信號(hào)采集,數(shù)據(jù)處理和控制邏輯,進(jìn)行解析我眼中的BMS。
一、信號(hào)采集
顧名思義,電池管理系統(tǒng),首先管理的對(duì)象是電池。我們就必須對(duì)當(dāng)前電池的狀態(tài)有一個(gè)細(xì)致的了解,也不能什么都不知道就用開(kāi)始電池。電池的狀態(tài),主要表現(xiàn)為以下的幾個(gè)方面。
電池的單芯電壓
電池的溫度
電池組的總電壓
電池組的總電流
電池組的絕緣電阻
下面,我就對(duì)電池信息的采集,做一簡(jiǎn)單的說(shuō)明:
1. 單芯電壓的檢測(cè)
電池的成組方式一般是串聯(lián)加并聯(lián)。以我的理解,串聯(lián)主要是加大整個(gè)電池模組的電壓,并聯(lián)就是增加電池的可充放電電流。
我們都知道,想要能驅(qū)動(dòng)電機(jī)工作,就必須給它一定的能量,能量怎么來(lái)的,學(xué)過(guò)物理的都知道
P= V*I
想要 P 變大,不就得使電流電壓變大嗎?
再說(shuō)電池,一節(jié)電池的最大放電電流和最大充電電流都是固定的。并聯(lián)簡(jiǎn)單的就是將這兩個(gè)值成倍的放大。
那么,單芯電壓到底怎么測(cè)?就是將并聯(lián)的單芯當(dāng)做一節(jié)電池使用,這節(jié)電池的兩端電壓,就是單芯電壓了。很簡(jiǎn)單的,不是嗎?
原理雖然說(shuō)起來(lái)是很簡(jiǎn)單,不過(guò)精度要求卻是挺高的,這是硬性要求。我們一般的電池OCV曲線,是上下抖中間平的的樣子。電池的電壓稍有變化,SOC的變化就很大了。
2. 電池的溫度檢測(cè)
相對(duì)于電壓的高精度要求,溫度的檢測(cè)不是那么的嚴(yán)格了。一般來(lái)說(shuō)在2°的誤差內(nèi),都是可接受的。溫度的檢測(cè),相對(duì)來(lái)說(shuō)也是簡(jiǎn)單多了,我了解的大多數(shù)做BMS的廠商,用的都是NTC來(lái)做檢測(cè)的。
NTC檢測(cè)溫度的原理,就是溫度值和對(duì)應(yīng)溫度下電阻值一一對(duì)應(yīng),一般和另一個(gè)電阻分壓一個(gè)標(biāo)準(zhǔn)電壓。使用單片機(jī)ADC功能就可以簡(jiǎn)單的得到溫度值。
3. 電池的總電壓采集
總電壓,即觀察電池整個(gè)模組的電壓狀況。一般來(lái)說(shuō),沒(méi)什么太大的用處,只是作為一個(gè)參考值,來(lái)用??傠妷撼噪姵氐拇?lián)數(shù),就是一個(gè)大概的單芯電壓平均值。
總電壓的大小不定,這是由車輛本身的需求決定,就我所見(jiàn)到的電壓等級(jí)150V~800V不等。
那么,總電壓如何采集?
常用的一種方法就是,將總電壓使用電阻等比例分壓,AD采集采樣電阻的兩端電壓。需要注意的是,動(dòng)態(tài)電壓的變化是十分不穩(wěn)定的,所以必須的消抖電路和消抖程序都是需要的。
4. 電池的總電流采集
工作模式有充有放,電流因此有正有負(fù)。
電流,我認(rèn)為這是所有電子設(shè)計(jì)中是最需要關(guān)注的一個(gè)參數(shù)。電流,是最容易引發(fā)故障,也是最為危險(xiǎn)的。
在BMS系統(tǒng)中,電流在SOC的計(jì)算,電池均衡策略中都有不可忽視的作用。
5. 電池的絕緣電阻采集
什么是絕緣電阻? 簡(jiǎn)單來(lái)說(shuō),就是防觸電保護(hù)的最小電阻。國(guó)標(biāo)上的要求是0.1mA。我們一般來(lái)說(shuō)都會(huì)放大余量,安全問(wèn)題再怎么關(guān)注都不差。
那么,絕緣電阻又是怎么測(cè)量的呢?
當(dāng)前主流的絕緣檢測(cè)方法有兩種,電橋法和交流注入法。使用較多的應(yīng)該是前者,今天就介紹一種電橋檢測(cè)法。
二、數(shù)據(jù)處理
之前一直在思考,什么是程序,程序的本質(zhì)是什么?
我的理解“程序就是一種控制思想,一種因果變化”。
為了實(shí)現(xiàn)某個(gè)功能,具現(xiàn)化為某個(gè)狀態(tài)變量的輸出。就要從已有的輸入變量中選擇合適的變量作為輸入。輸入通過(guò)某種復(fù)雜的轉(zhuǎn)換(控制實(shí)現(xiàn)/計(jì)算實(shí)現(xiàn))得到輸出的過(guò)程就是程序。
關(guān)鍵:
確保輸入輸出變量的準(zhǔn)確性(數(shù)據(jù)處理)
從輸入到輸出實(shí)現(xiàn)的可能性(邏輯控制)
數(shù)據(jù)的處理可以從以下的兩個(gè)方面考慮:
輸出變量的處理
輸入變量的處理
數(shù)據(jù),我將它分為兩類
功能數(shù)據(jù)
性能數(shù)據(jù)
功能數(shù)據(jù):數(shù)據(jù)是作為算法的必要輸入特意獲取的數(shù)據(jù),比如上面的采集數(shù)據(jù),SOC等;
性能數(shù)據(jù):數(shù)據(jù)不作為功能邏輯上的輸入,更多的是對(duì)軟硬件的穩(wěn)定性安全性的一個(gè)評(píng)估作用。比如板子的輸入電壓檢測(cè),繼電器開(kāi)關(guān)的狀態(tài)檢測(cè),CAN出錯(cuò)等。
變量分兩類:數(shù)據(jù)和狀態(tài),有以下的幾種處理方式
數(shù)據(jù):不同狀態(tài)下,多個(gè)數(shù)據(jù),取權(quán)重。
數(shù)據(jù):
去除在范圍之外的數(shù)據(jù),多個(gè)采樣,取有效值的均值。
對(duì)于超范圍的數(shù)據(jù),設(shè)置標(biāo)志位,故障處理。
狀態(tài):連續(xù)一段時(shí)間維持某一狀態(tài)不變(消抖)
數(shù)據(jù),經(jīng)過(guò)處理,如果沒(méi)有問(wèn)題就可以作為有效輸入數(shù)據(jù)。在功能被觸發(fā)的條件下,直接被調(diào)用。
那出錯(cuò)了呢?對(duì)于這個(gè)問(wèn)題,專門有一個(gè)故障處理的模塊。實(shí)時(shí)的將故障點(diǎn)檢測(cè)出來(lái),發(fā)給整車,并且存儲(chǔ)起來(lái)。
故障等級(jí)大致是這樣的分的:
一級(jí):只是報(bào)警,不做任何處理,可消退
二級(jí):報(bào)警,限速,可消退
三級(jí):報(bào)警,限速,不可消退
四級(jí):報(bào)警,制動(dòng),不可消退
具體的哪些故障對(duì)應(yīng)哪個(gè)等級(jí),就不說(shuō)了。
三、邏輯控制
邏輯控制主要有以下的幾個(gè)部分:
上電自檢,確定系統(tǒng)狀態(tài)
繼電器控制,不同狀態(tài),不同的繼電器數(shù)量有不同的控制方式
充電控制,分為快充和慢充,需要分開(kāi)處理
均衡控制
電池加熱控制
1. 上電自檢
汽車一共有兩個(gè)工作模式:放電,充電。其中充電再分為快充和慢充。確定工作模式的方式是,給BMS供電的到底是哪個(gè)24V電源,T15/快充/慢充
只有自檢通過(guò)才允許上高壓,也就是閉合對(duì)應(yīng)的繼電器。那么,觀察哪些信號(hào),就可以確認(rèn)自檢沒(méi)問(wèn)題?
所有繼電器狀態(tài)OK
總電流OK
絕緣電阻OK
只存在一個(gè)工作模式
自檢OK,就可以使能對(duì)應(yīng)的CAN通訊,也可以上高壓放電和充電。
2. 繼電器控制
繼電器的控制邏輯更多的是一個(gè)先后順序
開(kāi)始放電
吸合負(fù)極繼電器
吸合預(yù)充繼電器
吸合放電繼電器(正極和電機(jī)之間的繼電器)
斷開(kāi)預(yù)充繼電器
停止放電
斷開(kāi)負(fù)極繼電器
斷開(kāi)放電繼電器
開(kāi)始充電
吸合負(fù)極繼電器
吸合充電繼電器(正極和充電機(jī)之間的繼電器)
停止充電
斷開(kāi)負(fù)極繼電器
斷開(kāi)充電繼電器
先斷負(fù)極,再斷正極,是為了分擔(dān)上下電的壓力;這種說(shuō)法保留
通過(guò)做過(guò)的項(xiàng)目來(lái)講,繼電器的控制,要根據(jù)不同的客戶需求來(lái)定
3. 電池加熱控制
電池加熱主要是在電池充電的時(shí)候使用。
溫度過(guò)低,電池的活性降低,所以需要先給電池加熱,后續(xù)再充電。
基本的流程:吸合加熱繼電器,向充電機(jī)需求一個(gè)電流。此時(shí)動(dòng)力和充電機(jī)同時(shí)給加熱繼電器提供電流,只是充電機(jī)電流比較大。加熱結(jié)束,斷開(kāi)加熱繼電器,同時(shí)向充電機(jī)需求一個(gè)大的充電電流。
4. 充電(快充)控制
所有的控制邏輯在國(guó)標(biāo)GBT 27930-2015中定義的很清楚。嚴(yán)格按照國(guó)標(biāo)來(lái)基本不會(huì)出什么問(wèn)題
5. 均衡控制
均衡,是一個(gè)比較大的概念,后續(xù)再講
總結(jié)
梳理了BMS的一些基本概念,通過(guò)這個(gè)過(guò)程這才發(fā)現(xiàn),我了解的還是太少太生疏了。
留下的問(wèn)題:
SOC算法和均衡控制算法? ? 這個(gè)確實(shí)是個(gè)難點(diǎn)
標(biāo)準(zhǔn)化設(shè)計(jì)的一些想法? 有待學(xué)習(xí)
bootloader
自動(dòng)化生產(chǎn)測(cè)試
上位機(jī)相關(guān)知識(shí)
電池知識(shí)的深入了解
等等
今天簡(jiǎn)單梳理,今后我會(huì)陸續(xù)更新,往里面增加類容。。。。。。
? ? ? ? 愿你出走半生,歸來(lái)仍是少年…