鉅大LARGE | 點(diǎn)擊量:1069次 | 2019年11月08日
基于STM32和CAN總線的電動(dòng)車電池管理系統(tǒng)設(shè)計(jì)
隨著電池能源的廣泛應(yīng)用,石油資源的枯竭和環(huán)境污染,電動(dòng)汽車以其節(jié)能環(huán)保的優(yōu)勢(shì)引起越來(lái)越多的重視,在電動(dòng)汽車的研究和發(fā)展上,車載電池及其管理系統(tǒng)的研究與制造占據(jù)著重要位置。電動(dòng)汽車動(dòng)力電池在應(yīng)用中的主要問(wèn)題表現(xiàn)在:生產(chǎn)過(guò)程中,電池的工藝,技術(shù)以及成組技術(shù)還不能保證其初始性能具有良好的一致性;使用過(guò)程中,對(duì)過(guò)充電、過(guò)放電、過(guò)溫度、過(guò)電流等非常敏感,這類情況的發(fā)生會(huì)明顯縮短電池壽命,甚至?xí)?dǎo)致電池報(bào)廢。電池組是幾十個(gè)甚至上百個(gè)單體電池串聯(lián),單體電池之間存在不一致性,隨著連續(xù)的充放電循環(huán),電池間的不一致性加劇,電池組的可用容量受容量最小的單體電池制約。對(duì)于這些情況,電池的初始性能必須要依靠企業(yè)生產(chǎn)工藝的優(yōu)化,生產(chǎn)過(guò)程關(guān)鍵參數(shù)的控制來(lái)改善,而使用過(guò)程中出現(xiàn)的問(wèn)題則需要電池管理系統(tǒng)來(lái)解決。本設(shè)計(jì)是以STM32F107為核心的主控制器通過(guò)CAN通信網(wǎng)絡(luò)控制以C8051F500單片機(jī)為核心的電池組信息采集和基本控制模塊工作及獲取數(shù)據(jù)。主要實(shí)現(xiàn)了單體電池的過(guò)壓放電均衡,過(guò)流保護(hù)、過(guò)溫保護(hù)、過(guò)放電保護(hù)以及通過(guò)上級(jí)控制器匯報(bào)并存儲(chǔ)整體電池組的工作狀態(tài)。
1硬件設(shè)計(jì)
1.1系統(tǒng)總體架構(gòu)
系統(tǒng)所監(jiān)控管理的電池包組成結(jié)構(gòu)為:先將一定數(shù)目的鋰離子電池串聯(lián),將若干電池串并聯(lián)成一電池組,最后將若干電池組串聯(lián)構(gòu)成整體的電池包,這種串并聯(lián)復(fù)用的組織形式有利于進(jìn)行單串電池的充放電起停操作,降低使用過(guò)程中產(chǎn)生的電池容量不一致性。管理系統(tǒng)的構(gòu)成如圖所示,每個(gè)電池串配置一個(gè)二級(jí)控制器監(jiān)測(cè)管理,采集電流、電壓、溫度等數(shù)據(jù)并上傳,控制電池串起停與均衡操作,一級(jí)控制器為雙CAN控制器結(jié)構(gòu),CAN1控制器與二級(jí)控制器組成電池組的CAN網(wǎng)絡(luò),CAN2控制器與主控板電池包組成內(nèi)部一級(jí)CAN總線網(wǎng)絡(luò),負(fù)責(zé)向主控板匯報(bào)該電池組工作情況及向下屬二級(jí)控制器傳達(dá)指令,主控制板的CAN2控制器則接入整車CAN總線。由于各電池組為串聯(lián)結(jié)構(gòu),電壓的遞增關(guān)系影響到二級(jí)控制器,故而供電時(shí)需經(jīng)DC/DC轉(zhuǎn)換。
1.2主控制器、一級(jí)控制器架構(gòu)
主控制器,一級(jí)控制器的核心控制由意法半導(dǎo)體的STFM32F107完成,STM32F107是一款高性能、低成本、低功耗的32位RISC微處理器,采用ARMCortex-M3的內(nèi)核,內(nèi)部含有256kB的Flash和64kB的SRAM,有著充足的編程空間,主頻為72MHz,足以承擔(dān)對(duì)下級(jí)控制器的實(shí)時(shí)管理。所包含外設(shè)有:基本的電源電路、復(fù)位電路、標(biāo)準(zhǔn)JTAG調(diào)試口、雙CAN物理層電路、EEpROM存儲(chǔ)器,對(duì)于本系統(tǒng)設(shè)計(jì)來(lái)說(shuō)是最佳方案。
1.3二級(jí)控制器架構(gòu)
由于鋰離子電池單體電壓較小,一般約為4V,而整體電池包電壓則高達(dá)數(shù)百伏,單串電池長(zhǎng)度也在15個(gè)以上,而目前常用的電池測(cè)量芯片成本較高且只能監(jiān)測(cè)6節(jié)或12節(jié)電池電壓,綜合考慮決定以C8051F500為核心設(shè)計(jì)二級(jí)控制器,這種設(shè)計(jì)相較于專用電池測(cè)量芯片而言,缺點(diǎn)是精度較低,優(yōu)點(diǎn)是可以對(duì)所測(cè)量的數(shù)據(jù)先進(jìn)行計(jì)算處理,不完全依賴上級(jí)控制器的指令。
C8051FS00處理器按AEC-Q100測(cè)試標(biāo)準(zhǔn)設(shè)計(jì),具有寬工作電壓、寬工作溫度范圍、抗干擾能力強(qiáng)并內(nèi)置CAN及LIN總線控制器,適合汽車電子及工業(yè)控制方面的應(yīng)用。該芯片具有32路I/O口,接口數(shù)滿足監(jiān)控電池串工作的需要,具有12bit的ADC,每個(gè)通道的最小建立時(shí)間<50μs即巡檢一個(gè)循環(huán)的總時(shí)間<1ms,足以支持對(duì)于電池串的實(shí)時(shí)監(jiān)控,控制器架構(gòu)如圖2所示。
其中帶隔離驅(qū)動(dòng)的CAN總線物理層電路如圖3所示,此外還有DC/DC電源,C2在線調(diào)試接口等外部設(shè)備。
2軟件設(shè)計(jì)
2.1二級(jí)控制器軟件流程
(1)系數(shù)修正程序。因?yàn)殡姵乜倲?shù)極多,為降低系統(tǒng)的成產(chǎn)成本和占用空間,電壓測(cè)量采用較為簡(jiǎn)單的電阻分壓,電流測(cè)量則采用電阻采樣法,為彌補(bǔ)電阻造成的誤差,預(yù)置了修正系數(shù)的程序,每塊電路板投入使用前,可先在所有電壓測(cè)量端口接5V標(biāo)準(zhǔn)電壓,采樣電阻兩端通10A標(biāo)準(zhǔn)電流。程序可自動(dòng)根據(jù)所測(cè)值修改系數(shù),提高工作精確度。
(2)軟件流程。如圖4所示,程序開(kāi)始運(yùn)行時(shí),首先對(duì)C8051FS00內(nèi)部的系統(tǒng)時(shí)鐘以及一些變量進(jìn)行初始化,然后對(duì)各I/O口、定時(shí)器、中斷、ADC工作方式及CAN總線工作方式初始化,接著根據(jù)測(cè)量電流的兩個(gè)I/O數(shù)據(jù)判斷電池組目前是充電還是放電,以選取不同的控制方案,繼而檢測(cè)是否有一級(jí)控制器發(fā)出的指令,若有則執(zhí)行指令,否則ADC將巡檢各I/O的輸入電壓,程序通過(guò)預(yù)存的系數(shù)將其還原為各電池的端電壓,電池串的電流和溫度。最后計(jì)算各電池的SOC,考慮C8051F500的運(yùn)算能力,采用精確度和運(yùn)算復(fù)雜度都較為中等的安時(shí)積分法,并根據(jù)溫度,電壓,電壓-時(shí)間梯度等量加以修正。與此同時(shí),實(shí)時(shí)上報(bào)總電壓、電流、溫度和總SOC共4個(gè)參數(shù)給一級(jí)控制器,充電時(shí)如果有單節(jié)電池電壓過(guò)高,則開(kāi)啟相對(duì)應(yīng)的MOS管,以均衡充電。出現(xiàn)過(guò)溫,過(guò)流或達(dá)到放電終點(diǎn)時(shí),斷開(kāi)該串電池,并將斷開(kāi)時(shí)的所有數(shù)據(jù)均上報(bào)一級(jí)控制器,否則主程序繼續(xù)判斷是否有指令,循環(huán)上述過(guò)程。
2.2一級(jí)控制器軟件流程
(1)接收二級(jí)控制器上傳的數(shù)據(jù),這里主要有兩種數(shù)據(jù):一是時(shí)刻上傳的每串電池的電流、電壓、溫度,剩余電量;二是當(dāng)某串電池因故停止工作時(shí)上傳的完整數(shù)據(jù)和停止原因。
(2)SOC計(jì)算,這里計(jì)算的SOC是根據(jù)實(shí)時(shí)上傳的電流、電壓和溫度計(jì)算整串電池的剩余電量,因?yàn)镾TM32F107芯片運(yùn)算能力強(qiáng)于C8051F500,所以這里的計(jì)算模型采用模糊神經(jīng)網(wǎng)絡(luò)法。
(3)對(duì)二級(jí)控制器下達(dá)指令,這里的指令有兩種:一是要求其上傳目前工作情況的完整數(shù)據(jù),主要是停車前保存歷史數(shù)據(jù)或手動(dòng)要求查看;二是在其充放電時(shí)SOC明顯高于/低于其他電池串時(shí),讓該電池串暫停工作一段時(shí)間,有利于在使用中盡量抹平電池間的不一致性。當(dāng)上傳的SOC和所計(jì)算的SOC之間有較大差異時(shí),則上傳該情況,方便檢查并修正模型系數(shù)。
(4)向主控制器上傳數(shù)據(jù),這里的數(shù)據(jù)除了主動(dòng)或應(yīng)主控制器要求上傳的包括電池包整體電壓、電流和SOC,相應(yīng)電池串乃至相應(yīng)電池的電壓、電流、溫度和SOC等一系列工作情況以外,還有各種意外情況的匯報(bào)。
2.3主控制器軟件流程
主控制器的任務(wù)是向整車控制器匯報(bào)電池組的工作情況,并根據(jù)要求向一級(jí)控制器傳達(dá)指令,與一級(jí)控制器相似,但由于各電池包可能會(huì)切斷某條電池串,造成SOC的突變,所以沒(méi)有計(jì)算各電池包SOC的操作。
3結(jié)束語(yǔ)
本文提出了一種以STM32F107為核心控制器,通過(guò)CAN總線與以C8051F500為核心的子控制器互聯(lián)的電池組監(jiān)控管理系統(tǒng),可以高效地管理電池,為駕駛員提供剩余動(dòng)力信息,延長(zhǎng)電池的使用壽命。文章從硬件和軟件兩個(gè)方面詳細(xì)描述了系統(tǒng)的實(shí)現(xiàn)過(guò)程和各項(xiàng)功能。本系統(tǒng)在用電壓源和電流源進(jìn)行檢測(cè)時(shí),所測(cè)量的電壓誤差不超過(guò)0.01V,電流誤差不超過(guò)0.05A,對(duì)于模擬的過(guò)壓、過(guò)流、過(guò)溫、放電終止等情況,控制板均能迅速做出反應(yīng),驗(yàn)證了系統(tǒng)的測(cè)量精度、實(shí)時(shí)控制和良好暢通的CAN通信網(wǎng)絡(luò),在使用鋰電池進(jìn)行充放電實(shí)驗(yàn)時(shí),所估算的SOC與實(shí)際情況也基本吻合,充電時(shí)當(dāng)有電池接近充滿時(shí)均衡操作能及時(shí)啟動(dòng),且保護(hù)過(guò)充的效果也較為理想。