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