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

来源 :电子元器件应用 | 被引量 : 0次 | 上传用户:shijincheng520
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:为了更科学、直观的掌握电池的充放电特性,设计了基于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~C,可编程为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后要等待转换完成再读结果,否则读出的是将上次转换结果 。
   void do_sent_data16(UINT data_sent)
   {
   while (ASIF6 & 0x02) /*等待转换完成 */
   ;
   TXB6 = data_sent >> 8;
   while (ASIF6 & 0x02)
   ;
   TXB6 = data_sent;
   }
  3.2 DS18B20程序
  DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。DS18B20的操作时序如图5所示。从时序图中可以得出,DS18B20对操作时序要求比较严格,否则将导致操作失败。
  根据时序图所示,每读一位数据需要60us延时,为了延时精确,采用的方法是查看汇编语言,计算需要加入的空指令(NOP)个数。
  根据时序要求编写代码后,有如下统计,启动温度转换时间约为2.5ms,读温度时间约为10.25ms,这些时间量都远小于一个时间片(20ms)的长度,符合要求。为达到12位精度,器件手册要求两次启动温度转换时间间隔不得低于750ms。温度采集1s一次可以实现。读取温度任务流程图如图6所示。
  图6中,SenseNo是指DS18B20的序号,SENSE_CNT为器件总数。读取不同DS18B20的方法是器件自身的ID,这个ID可以通过程序读出,但较为繁琐。为了减轻程序的负担,我们事先通过其他方式读出每个器件的ID,读温度时直接使用,简化了任务。
  3.3 通信规约
  系统每1s将采样的数据传递给上位机,为了保证传输可靠,制定如下通信规约:
  共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在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。图形对象包括根屏幕、窗口、坐标轴、线等。所谓的句柄作图就是利用底层绘图函数,通过对对象属性的设置(Handle Graphics)与操作实现绘图。
  5 运行实例分析
  使用该系统对一节铅酸蓄电池(12V)充电进行监控,电脑效果如图7所示:
  图7中,横坐标为时间轴,每秒更新一次;纵坐标有三个,分别是左侧坐標电流和电压,右侧坐标温度;电流曲线为红色,电压为黑色,温度1为蓝色实线,温度2为蓝色虚线,4条曲线分别对应各自的坐标。
  一般情况下,由于蓄电池内阻,电化学反应速度等因素影响,充电时的端电压要比静置时高,放电时要比静置时低。蓄电池使用时间越长内阻越高,对充放电电流也就越敏感。如图所示,充电电流的微小变化(0.1A左右)引起了端电压的剧烈波动(9V左右)。蓄电池端电压对充电电流及其敏感,说明蓄电池内阻很大。另外,对于一节性能较好的的铅酸蓄电池,静置时电压在11V~13V之间,而该电池静置端电压不到6V。能够推断该蓄电池已经严重损坏。
  6 结束语
  通过该系统,我们能够非常直观地监控蓄电池端电压和充放电电流的关系,以及温度的变化,有助于研究蓄电池充放电特性,更加科学、高效地管理蓄电池,为电动汽车电源管理提供依据。
  参考文献
  [1] 张秋菊 王凤贺 多任务调度算法在单片机控制系统中的应用 《光电对抗与无源干扰》 2002年03期
  [2] 陈劲松 陈新明 魏忠 时间片轮转算法在单片机程序设计中的应用 《电子技术应用》
  [3] 薛天宇.一种实时多任务系统软件设计方法[J].电子技术应用,2001年04期
  [4] 周航慈.单片机应用程序设计技术(修订版).北京航空航天大学出版社,2002年11月.ISBN:781077238
  [5] 袁涛,李月香,杨胜利.单片机C高级语言程序设计及其应用.北京航空航天大学出版社.2001.10.ISBN:7810771175
  [6] 施晓红,周佳.精通GUI图形界面编程北京大学出版社,2003 ISBN 7301061021
  [7] 彭燕.蓄电池智能检测.微计算机信息.2007.23(1)
  [8] 郭屹松.基于DS2438的智能电池监测系统设计.北京石油化工学院学报2008,16(3)
  作者简介
  张雷(1978-),中级工程师,研究方向:电气工程。
  
  收稿日期:2011-08-09
其他文献
资料:某女,25岁,G2P1,因停经35天,服米非司酮配伍米索前列醇药物流产后3个月,月经未复潮,来站就诊。平素体健,月经规律,2006年5月21日剖宫产助娩一女婴,胎盘无异常。哺乳期闭经11个月,后
母亲在子女的教育过程中发挥着重要作用,小学语文教科书十分注重母亲形象的塑造。笔者在对部编版小学语文低年段教科书母亲形象的选文分析时发现,塑造母亲形象的选文数量较多
目的:观察利洛司酮对离体培养的人绒毛蜕膜组织细胞分泌功能的影响,以探讨其抗旱孕机理。方法:用放射免疫方法测定人绒毛蜕膜组织细胞培养液中的人绒毛膜促性腺激素(hCG)、孕酮(P)、
法律移植是不同文明之间的法律制度互相借鉴与取舍的过程,只要国家或民族间彼此发生了关系,都将会造成文化上的冲突与融合的过程.自有国家以来,几乎任何形式的法律文化都避免
目的:观察异丙酚联合氯胺酮、芬太尼在输卵管绝育术中的镇痛效果。方法:选择要求做输卵管绝育且无禁忌证者100例,随机分为观察组(异丙酚联合氯胺酮、芬太尼静脉麻醉)和对照组(异丙
所长的昨天今天和明天□冀斌长子县“城关派出所所长路小晚受到留党察看,撤销副科级侦察员职务,降低一级工资的处分”的消息传出,人们议论纷纷。值得回忆的昨天1966年3月,路小晚经过
民主党派在构建和谐政党关系的实践中,有必要正视自身所面临的问题,在认识上予以进一步明确:一、政党意识是政党与政党关系的内核。民主党派要正确理解和把握自身作为政党的本质
教育创新的重大意义在于:它是新时代发展的要求,是实现社会主义现代化建设的需要,也是实现教育自身发展的根本要求.教育创新的基本内容包含教育观念创新,教育内容、方法的创