鉅大LARGE | 點(diǎn)擊量:1416次 | 2019年11月07日
鋰電池管理系統(tǒng)的研究與實(shí)現(xiàn) — 鋰電池管理系統(tǒng)的軟件實(shí)現(xiàn)
4.1鋰電池管理系統(tǒng)的軟件框圖4.2鋰電池管理系統(tǒng)的軟件實(shí)現(xiàn)
硬件電路確定以后,控制系統(tǒng)的主要功能將依賴于系統(tǒng)軟件的實(shí)現(xiàn)??刂葡到y(tǒng)能否正常可靠的工作,除了與硬件的合理設(shè)計(jì)外,與功能完善的軟件設(shè)計(jì)也是分不開的。在軟件設(shè)計(jì)時(shí),首先要根據(jù)控制系統(tǒng)要求分析軟件要實(shí)現(xiàn)的任務(wù),然后進(jìn)行軟件的總體設(shè)計(jì),包括程序總體結(jié)構(gòu)設(shè)計(jì)和對程序進(jìn)行模塊化設(shè)計(jì)。按整體功能分成多個(gè)不同的模塊,單獨(dú)設(shè)計(jì)、編程、調(diào)試,然后將各個(gè)模塊組合調(diào)試,實(shí)現(xiàn)軟件的全部功能。
本系統(tǒng)軟件是基于ATMEGA8L的C語言實(shí)現(xiàn)的,其中:電壓測量模塊,由單片機(jī)控制模擬開關(guān),通過單片機(jī)的10位A/D模塊測量單節(jié)電池電壓值。為了提高測量的精度,軟件采用“篩值平均”的軟件慮波方法。在對每一節(jié)電池的模擬量測量時(shí),連續(xù)測量多次,然后篩去最高值和最低值,再對剩余的測量值取平均,獲得最佳的測量結(jié)果。然后根據(jù)電壓的計(jì)算方式,獲得電池的電壓。在電壓測量完成后,要運(yùn)行“冒泡排序”的程序,對所有的電池電壓進(jìn)行排序,標(biāo)記最低、最高電池,為均衡模塊服務(wù)。充電管理模塊,通過檢測到的單節(jié)電池電壓判斷電池所在的充電階段,并利用單片機(jī)的脈寬調(diào)制輸出(pWM)控制MOSFET實(shí)現(xiàn)預(yù)充階段的小電流充電和保持充電階段的脈沖充電。當(dāng)檢測到電池充電完畢后,自動斷開充電回路,點(diǎn)亮充電完畢提示燈。充電管理模塊通過檢測到的電壓,電流,溫度值判斷電池是否工作在正常狀態(tài),如出現(xiàn)過壓,過流,溫度過高等情況,馬上通過MOSFET關(guān)閉充放電回路,并點(diǎn)亮故障提示燈。剩余容量估計(jì)包括檢測開路電壓,通過開路電壓與電池電量的對應(yīng)關(guān)系計(jì)算,另外主要依靠安時(shí)積分法在充放電時(shí)對實(shí)時(shí)檢測到的電流值作積分,這通過單片機(jī)的定時(shí)器產(chǎn)生定時(shí)中斷來實(shí)現(xiàn)。串口通信利用單片機(jī)的串口USART與pC機(jī)的RS232通信。在上位pC機(jī)中,主要完成的是對串口設(shè)置的選擇控制、采集數(shù)據(jù)的讀取顯示,并對采集的數(shù)據(jù)存儲。我們選擇了VC++6.0完成界面設(shè)計(jì),通訊串口設(shè)置和存儲數(shù)據(jù)。VC++6.0開發(fā)串行通信程序主要有兩種方法:
1、利用VC++6.0提供的MSComm控件;
2、利用專門的Windows的SDK提供的ApI函數(shù)。
本文采用了MSComm控件。MSComm控件在串口編程時(shí)非常方便。程序員不必花時(shí)間去了解較為復(fù)雜的ApI函數(shù),只需要在串口通信資源的屬性(properties)一項(xiàng)中配置串口。串口通信的波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)、發(fā)送緩沖區(qū)大小、接收緩沖區(qū)大小以及超時(shí)設(shè)置等均在此時(shí)進(jìn)行配置。完成串口配置之后即可打開串口,進(jìn)行數(shù)據(jù)讀寫。它只有一個(gè)事件,即OnComm事件。通過事件驅(qū)動,對時(shí)間的發(fā)生進(jìn)行跟蹤和處理,從而檢測和處理通信錯(cuò)誤以及進(jìn)行對數(shù)據(jù)的處理顯示等。
5系統(tǒng)調(diào)試系統(tǒng)的現(xiàn)場調(diào)試在實(shí)驗(yàn)室進(jìn)行,下圖為鋰電池管理系統(tǒng)的現(xiàn)場運(yùn)行實(shí)驗(yàn)證明系統(tǒng)能進(jìn)行較為精確的數(shù)據(jù)采樣,電壓測量精度可以達(dá)到0.05V,可實(shí)現(xiàn)對鋰電池的分階段充電控制,SOC估算基本可靠。下圖為電路板和上位機(jī)的數(shù)據(jù)顯示:
6總結(jié)與展望
本文針對水下機(jī)器人的動力源——鋰離子電池組提出一種電池管理系統(tǒng)的設(shè)計(jì)方法。該電池管理系統(tǒng)可直接檢測及管理儲能電池工作的全過程,包括電池充放電過程管理、電池溫度檢測、電池電壓電流檢測、電量估計(jì)、單體電池間的均衡、電池故障診斷等幾個(gè)方面。在單電池電壓測量、總電壓、總電流、溫度測量及SOC估計(jì)和其他功能方面均達(dá)到了要求。系統(tǒng)不可避免地存在一些不足,對進(jìn)一步的研究工作有如下展望:
(1)增加CAN通信模塊,CAN(ControlAreaNetwork)總線是德國BOSCH公司在80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,具有實(shí)時(shí)性強(qiáng)、抗干擾能力強(qiáng)、結(jié)構(gòu)簡單、應(yīng)用方便、價(jià)格低廉等特點(diǎn),在現(xiàn)場總線中有一定的優(yōu)勢。通過CAN總線組成具有兩級控制結(jié)構(gòu)的可同時(shí)管理多組鋰電池組的分布式鋰電池管理系統(tǒng)。系統(tǒng)采用1個(gè)CECU(centralelectriccontrolunit)和5個(gè)LECU(localelectralcontrolunit)組成,原理圖如圖6-1所示,8節(jié)鋰電池為1個(gè)電池組,每個(gè)電池組由1個(gè)LECU管理,本文設(shè)計(jì)的鋰電池管理系統(tǒng)只作為1個(gè)LECU管理1組電池組。CECU接收各LECU數(shù)據(jù)并對數(shù)據(jù)進(jìn)行處理。(2)對于SOC估測方案的研究還沒有達(dá)到較為理想的狀態(tài),需要進(jìn)一步深入下去,把一些沒有考慮到的對SOC有影響的因素引入到算法中來,如:電池老化引起電池容量的變化,單體電池對電池組的影響,溫度和電池容量對自放電的影響等。