微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于MATLAB的蓄电池充放电监测系统

基于MATLAB的蓄电池充放电监测系统

时间:03-07 来源:互联网 点击:

摘要:为了更科学、直观的掌握电池的充放电特性,设计了基于MATLAB的蓄电池充放电监控系统、主要有包括蓄电池容量检测、蓄电池损坏度检测、蓄电池充电状态检测等。利用检测电路采样温度、电流、电压等性能指标,通过串口和CAN总线等方式上传到上位机。利用MATLAB编写上位机的分析软件,实时地反映了蓄电池充放电过程中的状态。
关键词:充放电检测;多任务调度;时间片轮转;串口工具箱;句柄绘图

随着石油价格的不断调高,人们承担了越来越多的燃料成本压力。多数人开始关注以其他能源为能量的交通工具,以电池为能量来源的出行工具越来越多。而电池的安全、寿命等性能也日益引起人们的关注。目前能够被电动自行车采用的有以下三种:铅酸蓄电池、镍氢蓄电池和锂离子蓄电池。因为铅酸蓄电池成本低,性价比高,现在的电动车上绝大多数装的是铅酸蓄电池。本文就针对单节铅酸蓄电池设计的充电特性监测系统。

1 系统概述
与电池充放电有关的参量包括:电池端电压、充电电流、电池温度等。因此,系统需要实现这三个参数的准确采集。系统框图如图1所示,系统南MCU、模拟采样电路、温度采集电路和上位机组成。MCU采集电池充放电时端电压、电流和温度信息,然后信息通过串行通信接口发送到上位机,再由MATLAB接收处理,并绘制曲线。电流和电压每秒采集10次,温度每秒采集1次。MCU每秒向上位机传递一组数据,MATLAB跟踪更新数据,达到动态显示电压、电流、温度的效果。

2 硬件设计
2.1 MCU选择
本监测系统的MCU选用了STC12C5A60S2,芯片资源有:60K的flash,1280字节高速RAM,8通道10位A/D、2通道UART、2通道16位定时器、1通道内部看门狗定时器。晶振选择为11.0592MHz。
2.2 温度采集芯片选择
温度采集的电路芯片选用Dallas公司生产的DS18B20,它是DALLAS公司生产的线式数字温度传感器,采用3引脚T0-92型小体积封装;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字方式串行输出。具有直接输出数字信号,不存在信号传输过程干扰、扩展方便、不需要设计另外的信号调制电路等优点。
为了使温度的采集更准确,本系统使用两片DS18B20,A/D转换精度选择为12位,贴在电池壁的不同位置。
2.3 电流和电压检测电路设计
电压检查使用电阻分压,经电压跟随电路到A/D转换接口。运放的作用是提高输入阻抗,减小检测电路对充电电路的影响,提高测量精度。
电流检测有两种方法:高端检测和低端检测。低端检测实现起来比较容易,但是这种方案的坏处是负载会比实际地线抬高一个直流电压,测量不准确;另外,电源和负载具有不同的参考地,对EMI的控制不利。高端检测的难点在于输入端存在共模电压,测量电路复杂。本系统采用Maxim的MAX4173来测量差模电压,其内部包括一个差分放大器。选择两片MAX4173能够实现电流的双向采样,电流检测电路如图2所示。

3 MCU软件设计
MCU完成功能包括读两路A/D转换(电压、电流);读两路DS18B20转换结果;串口通信。电压、电流变化较为剧烈,采样周期要短,但周期短会造成数据量大,加重传输和数据分析负担,经权衡,取电压、电流的采样周期为0.1s。温度是一个时间参数较长的物理量,可以放宽采样时间,这里取采样周期为1s。
3.1 MCU程序
为协调各个功能的实现,本文参考了多任务调度算法和时间片轮转算法。多任务调度算法,是按照实际要求将单片机要实现的功能划分成多个任务模块,并规定优先级别,由一个任务调度模块统一控制执行顺序。CPU的控制权按不同优先级分配给不同的任务模块,各个模块分别在自己的执行时间内访问CPU,形成微观上轮流执行,宏观上并发运行的多任务效果,如图3所示。

本系统中的几个任务对时间要求比较敏感,单纯使用多任务调度不能满足需求。结合时间片轮转算法,在任务分配时考虑时间限制,并将任务区分优先级。优先级高的任务先执行。为保证采样周期的稳定,A/D转换和启动温度转换的优先级较高,串口发送晚几十毫秒不会造成不良影响,所以优先级较低。程序简要流程如图4所示。

其中,任务调度模块包含各任务的时间信息,如A/D转换0.1s一次,启动温度检测1s一次,读温度则40ms一次,串口发送0.1s一次。若任务中包含多个子功能快,借鉴有限状态机(FSM)算法,每次执行一个子功能,直到本任务执行完成。
其中A/D转换比较简单,不再赘述。主要注意一点,启动A/D后要等待转换完成再读结果,否则读出的是将上次转换结果。


3.2 DS18B20程序
DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。DS18B20的操作时序如图5所示。从时序图中可以得出,DS18B20对操作时序要求比较严格,否则将导致操作失败。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top