鋰電池管理系統(tǒng)的研究與實現 — 鋰電池管理系統(tǒng)的軟件實現
4.1鋰電池管理系統(tǒng)的軟件框圖
硬件電路確定以后,控制系統(tǒng)的主要功能將依賴于系統(tǒng)軟件的實現。控制系統(tǒng)能否正??煽康墓ぷ?,除了與硬件的合理設計外,與功能完善的軟件設計也是分不開的。在軟件設計時,首先要根據控制系統(tǒng)要求分析軟件要實現的任務,然后進行軟件的總體設計,包括程序總體結構設計和對程序進行模塊化設計。按整體功能分成多個不同的模塊,單獨設計、編程、調試,然后將各個模塊組合調試,實現軟件的全部功能。
本系統(tǒng)軟件是基于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系統(tǒng)調試
系統(tǒng)的現場調試在實驗室進行,下圖為鋰電池管理系統(tǒng)的現場運行
實驗證明系統(tǒng)能進行較為精確的數據采樣,電壓測量精度可以達到0.05V,可實現對鋰電池的分階段充電控制,SOC估算基本可靠。下圖為電路板和上位機的數據顯示:
評論