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