基于MATLAB的蓄電池充放電監測系統
3.3 通信規約
系統每1s將采樣的數據傳遞給上位機,為了保證傳輸可靠,制定如下通信規約:本文引用地址:http://dyxdggzs.com/article/177783.htm
共4組數據,電壓(24Byte)、電流(24Byte)、溫度1(6Byte)、溫度2(6Byte)波特率取19200bps時(shí),最長(cháng)的一組傳輸時(shí)間約為12ms,小于一個(gè)時(shí)間片長(cháng)度,滿(mǎn)足要求。任務(wù)中,每次發(fā)送一組數據,算法類(lèi)似讀溫度任務(wù)。
4 MATLAB程序設計
為了便于作圖和數據分析,我們采用MATLAB作為上位機開(kāi)發(fā)工具。主要任務(wù)包括與MCU串可通信;數據的尺度變換;并存同一界面上畫(huà)出4條曲線(xiàn)。
4.1 串口通信及數據處理
從Matlab6.0版本開(kāi)始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。利用該工具箱的Serial類(lèi)及instrcallback回調函數,能可靠地進(jìn)行實(shí)時(shí)串行通信。
串口操作的順序是(1)創(chuàng )建串口并沒(méi)置屬性;(2)打開(kāi)串口;(3)讀寫(xiě)串口操作;(4)關(guān)閉并清除串口沒(méi)備對象。
讀取數據后,根據規約提取電樂(lè )、電流和兩路溫度數據。由于這些數據為原始的A/D轉換數據,沒(méi)有實(shí)際的物理意義,所以需要進(jìn)行尺度變換。即將數據代表的物理意義表示出來(lái)。比如,電壓檢測,A/D參考電壓為5V,那么對于10位ADC來(lái)說(shuō),轉換結果N代表的電壓值為:N*5/1024。尺度變換完成后存入緩沖區。
4.2 句柄繪圖
系統需要顯示3個(gè)物理量,電壓、電流和溫度。由于物理單位、采樣周期不同,需要繪制3個(gè)坐標系分別顯示。MATLAB中并沒(méi)有提供這樣的繪圖函數,這里用到了MATLAB的句柄繪圖功能。
MATLAB在創(chuàng )建每一個(gè)圖形對象時(shí),都為陔對象分配唯一的一個(gè)值,稱(chēng)其為圖形對象句柄(Handie)。句柄是圖形對象的唯一標識符,不同對象的句柄不可能重復和混淆。圖形塒象包括根屏幕、窗口、坐標軸、線(xiàn)等。所謂的句柄作圖就是利用底層繪圖函數,通過(guò)對對象屬性的設置(Handle Graphics)與操作實(shí)現繪圖。
5 運行實(shí)例分析
使用該系統對一節鉛酸蓄電池(12V)充電進(jìn)行監控,電腦效果如圖7所示:
圖7中,橫坐標為時(shí)間軸,每秒更新一次;縱坐標有三個(gè),分別是左側坐標電流和電壓,右側坐標溫度;電流曲線(xiàn)為紅色,電壓為黑色,溫度1為藍色實(shí)線(xiàn),溫度2為藍色虛線(xiàn),4條曲線(xiàn)分別對應各自的坐標。
一般情況下,由于蓄電池內阻,電化學(xué)反應速度等因素影響,充電時(shí)的端電壓要比靜置時(shí)高,放電時(shí)要比靜置時(shí)低。蓄電池使用時(shí)間越長(cháng)內阻越高,對充放電電流也就越敏感。如圖所示,充電電流的微小變化(0.1A左右)引起了端電壓的劇烈波動(dòng)(9V左右)。蓄電池端電壓對充電電流及其敏感,說(shuō)明蓄電池內阻很大。另外,對于一節性能較好的的鉛酸蓄電池,靜置時(shí)電壓在11V~13V之間,而該電池靜置端電壓不到6V。能夠推斷該蓄電池已經(jīng)嚴重損壞。
6 結束語(yǔ)
通過(guò)該系統,我們能夠非常直觀(guān)地監控蓄電池端電壓和充放電電流的關(guān)系,以及溫度的變化,有助于研究蓄電池充放電特性,更加科學(xué)、高效地管理蓄電池,為電動(dòng)汽車(chē)電源管理提供依據。
評論