新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 鋰電池管理系統(tǒng)的研究與實現(xiàn) — 鋰電池管理系統(tǒng)的軟件實現(xiàn)

鋰電池管理系統(tǒng)的研究與實現(xiàn) — 鋰電池管理系統(tǒng)的軟件實現(xiàn)

作者: 時間:2013-04-25 來源:網(wǎng)絡(luò) 收藏

4.1管理系統(tǒng)的軟件框圖

鋰電池管理系統(tǒng)的研究與實現(xiàn) — 鋰電池管理系統(tǒng)的軟件實現(xiàn)

4.2管理系統(tǒng)的

硬件電路確定以后,控制系統(tǒng)的主要功能將依賴于系統(tǒng)軟件的實現(xiàn)??刂葡到y(tǒng)能否正??煽康墓ぷ鳎伺c硬件的合理設(shè)計外,與功能完善的軟件設(shè)計也是分不開的。在軟件設(shè)計時,首先要根據(jù)控制系統(tǒng)要求分析軟件要實現(xiàn)的任務(wù),然后進行軟件的總體設(shè)計,包括程序總體結(jié)構(gòu)設(shè)計和對程序進行模塊化設(shè)計。按整體功能分成多個不同的模塊,單獨設(shè)計、編程、調(diào)試,然后將各個模塊組合調(diào)試,實現(xiàn)軟件的全部功能。

本系統(tǒng)軟件是基于ATMEGA8L的C語言實現(xiàn)的,其中:電壓測量模塊,由單片機控制模擬開關(guān),通過單片機的10位A/D模塊測量單節(jié)電池電壓值。為了提高測量的精度,軟件采用“篩值平均”的軟件慮波方法。在對每一節(jié)電池的模擬量測量時,連續(xù)測量多次,然后篩去最高值和最低值,再對剩余的測量值取平均,獲得最佳的測量結(jié)果。然后根據(jù)電壓的計算方式,獲得電池的電壓。在電壓測量完成后,要運行“冒泡排序”的程序,對所有的電池電壓進行排序,標(biāo)記最低、最高電池,為均衡模塊服務(wù)。

充電管理模塊,通過檢測到的單節(jié)電池電壓判斷電池所在的充電階段,并利用單片機的脈寬調(diào)制輸出(PWM)控制MOSFET實現(xiàn)預(yù)充階段的小電流充電和保持充電階段的脈沖充電。當(dāng)檢測到電池充電完畢后,自動斷開充電回路,點亮充電完畢提示燈。充電管理模塊通過檢測到的電壓,電流,溫度值判斷電池是否工作在正常狀態(tài),如出現(xiàn)過壓,過流,溫度過高等情況,馬上通過MOSFET關(guān)閉充放電回路,并點亮故障提示燈。

剩余容量估計包括檢測開路電壓,通過開路電壓與電池電量的對應(yīng)關(guān)系計算,另外主要依靠安時積分法在充放電時對實時檢測到的電流值作積分,這通過單片機的定時器產(chǎn)生定時中斷來實現(xiàn)。

串口通信利用單片機的串口USART與PC機的RS232通信。在上位PC機中,主要完成的是對串口設(shè)置的選擇控制、采集數(shù)據(jù)的讀取顯示,并對采集的數(shù)據(jù)存儲。我們選擇了VC++6.0完成界面設(shè)計,通訊串口設(shè)置和存儲數(shù)據(jù)。VC++6.0開發(fā)串行通信程序主要有兩種方法:

1、利用VC++6.0提供的MSComm控件;

2、利用專門的Windows的SDK提供的API函數(shù)。

本文采用了MSComm控件。MSComm控件在串口編程時非常方便。程序員不必花時間去了解較為復(fù)雜的API函數(shù),只需要在串口通信資源的屬性(Properties)一項中配置串口。串口通信的波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗、發(fā)送緩沖區(qū)大小、接收緩沖區(qū)大小以及超時設(shè)置等均在此時進行配置。完成串口配置之后即可打開串口,進行數(shù)據(jù)讀寫。它只有一個事件,即OnComm事件。通過事件驅(qū)動,對時間的發(fā)生進行跟蹤和處理,從而檢測和處理通信錯誤以及進行對數(shù)據(jù)的處理顯示等。

5系統(tǒng)調(diào)試

系統(tǒng)的現(xiàn)場調(diào)試在實驗室進行,下圖為管理系統(tǒng)的現(xiàn)場運行

鋰電池管理系統(tǒng)的研究與實現(xiàn) — 鋰電池管理系統(tǒng)的軟件實現(xiàn)

實驗證明系統(tǒng)能進行較為精確的數(shù)據(jù)采樣,電壓測量精度可以達到0.05V,可實現(xiàn)對鋰電池的分階段充電控制,SOC估算基本可靠。下圖為電路板和上位機的數(shù)據(jù)顯示:


上一頁 1 2 下一頁

關(guān)鍵詞: 鋰電池 軟件實現(xiàn)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉