APP下载

充电电池荷电状态检测系统设计

2013-07-05高凤友王相彬

电源技术 2013年11期
关键词:充电电池荷电充放电

高凤友,张 军,王相彬

(1.天津职业技术师范大学电子工程学院,天津 300222;2.大庆油田钻探工程公司测井公司,黑龙江 大庆 163412)

充电电池荷电状态检测系统设计

高凤友1,张 军1,王相彬2

(1.天津职业技术师范大学电子工程学院,天津 300222;2.大庆油田钻探工程公司测井公司,黑龙江 大庆 163412)

以在ARM 9硬件平台上实现充电电池荷电状态检测为背景,详细介绍了在嵌入式系统中的设计与实现。该系统硬件搭建以S3C2440 ARM 920T处理器为核心芯片,软件搭建以SQLite嵌入式数据库为数据存储、筛选、分析和处理核心,通过对S3C2440内部A DC编程获取波形数据,采用Qt/Embedded实现图形及人机界面显示,最后提出了进一步完善系统检测功能问题的解决方法。

ARM9;Linux;充电电池;荷电状态;SQLite;Qt/Embedded

电能可由多种形式的能量转化得来,其中把化学能转换成电能的装置称为化学电池,一般简称为电池,电池有原电池和充电电池之分。放电后不能用充电的方式使内部活性物质再生的电池称为原电池,也称一次性电池。放电后可以用充电的方式使内部活性物质再生,把电能储存为化学能,需要放电时再次把化学能转换为电能的电池称为充电电池,也称二次电池。

通过记录一个完整的充放电过程,得到一组被测电池的充放电电流、电压及荷电状态曲线,对于了解电池的实际充、放电状况,掌握电池的质量、实际容量和实际供电能力,保障重要用电设备的必要用电时间,提供进行维护的必要信息,延长电池使用寿命,提高电池利用率都具有非常重要的意义。

本文设计了一种基于ARM 9的新型充电电池荷电状态检测系统,该系统融合了ARM 9丰富的软硬件资源,将信号采集、荷电状态计算、波形显示、记录数据存储、可用剩余容量分析及其他管理操作集中交由ARM 9处理,实现了仪器的小型化、便携化和智能化。

1 检测系统设计

本文以安时测量法为应用背景,介绍基于ARM 9的充电电池荷电状态检测系统设计与实现。

1.1 系统硬件设计

硬件设计采用核心板加底板的设计思想。核心板选用三星公司的S3C2440 ARM 920T处理器作为核心芯片,板上的集成Flash Rom容量为64Mbyte(Nand Flash K9F1208),集成内存为32位的SDRAM(HY57V641620)2片共64Mbyte。该板为小板结构,只引出ARM芯片的所有信号送往底板。底板引入来自核心板的信号,并配以相应的硬件接口。外接器件,选配信号调理电路作为被测信号与S3C2440 ADC引脚间的接口电路,电压信号和电流信号分别从充电电池两个电极端及从与正极端串接的大功率低阻值取样电阻上取出,温度信号直接由数字温度传感器的输出端取出,选配8寸触摸液晶屏作为输入操作与输出显示器件,选配4×4键盘作为用户选用输入单元。

系统硬件基本组成框图如图1所示。

1.2 系统软件设计

整个系统软件主要由嵌入式Linux内核、设备驱动、以及基于Qt/Embedded的应用程序组构成,系统软件功能框如图2所示。

内核层采用Linux内核,版本号为Linux3.2.8。为了减少内核所占内存,需要对内核进行精简配置,并重新编译移植,关于Linux内核的配置和移植的方法与过程,本文不做重点介绍,具体可见参考文献[1]。驱动层直接由内核管理,通过驱动层提供的设备接口,可以直接访问硬件设备,如LCD显示器、触摸屏、键盘等。LCD和触摸屏的驱动由Qt/Embedded(QtE)提供。应用层主要包括信息采集与处理、数据管理、人机界面三个模块。

图1 系统硬件基本组成框图

图2 系统软件功能框图

1.3 系统测量原理

1.3.1 原理分析

充电电池荷电状态SOC(state of charge)被定义[6]为剩余能量和额定能量的比值,通常把一定温度下电池充电到不能再吸收能量的SOC定义为100%,而把电池放电到不能放出能量时的SOC定义为0%,荷电状态计算公式如下:式中:SOC0为充电电池在t0时刻的荷电状态;CR为充电电池的额定容量;Icm为充电电池的测量电流;tEND为充电电池达到放电终止电压的时间。

由式(1)~(2)可知SOC的大小直接和充电电池的充放电电流及充放电电压相关,在规定的温度下,只要测出充放电时的电流及电压,就可以根据定义式计算出该时刻的荷电状态。

1.3.2 测量方法

常用的充电电池荷电状态检测方法主要有密度法,开路电压法,内阻法和安时法等。安时法是利用测量得到的充放电电流和电压数据,通过计算得出蓄电池输出能量或者输入能量的一种测量方法。以1 000 Ah电池的10 h率放电试验为例,放电前先充电24 h。然后以100 A电流放电大约10 h。在一充一放两个过程中,对电池的电压和电流等原始数据定时进行记录。最后通过定义式计算出相应时刻的荷电状态。

2 应用层软件设计

2.1 数据采集

本系统对充电电池充放电电压、电流及温度的实时采集,是通过对S3C2440内部ADC(模数转换器)单元编程来实现。

2.1.1 A DC转换时间的计算

A/D转换时间即完成一次A/D转换所需要的时间。当系统的时钟频率为50 MHz,且ADC时钟源的预分频值为49时,10位数字量的转换时间为:

A/D converter freq=50MHz/(49+1)=1MHz

Conversion time=1/(1MHz/5cycles)=1/200 kHz=5μs

2.1.2 A DC分辨率的计算

S3C2440内部ADC的输出为10位数字量,由于输入的满刻度电压为2.5 V,因此ADC能分辨出来的输入电压变化的最小值为2.5 V/210=2.4mV。

2.1.3 数据采集读取程序(A DC读取程序)

S3C2440内部ADC数据采集读取程序如下:

程序工作流程是:(1)函数根据参数传递来的AD通道值进行ADC控制寄存器设置,并设置预分频值;(2)启动一次A/D转换;(3)等待一次转换完成;(4)返回AD转换的值。

2.2 数据管理

文中系统的数据管理选择嵌入式数据库SQLite来实现。嵌入式数据库是一种具备了基本数据库特性的数据文件,它与传统数据库的区别是采用程序方式直接驱动。嵌入式数据库体积很小,在运行时需要较少的内存,具有很好的实时性[1]。

系统针对数据库的管理操作主要有原始数据的导入、查询结果的生成、报表的提交、过期数据的删除(删除已经查询过的不再使用的数据)。

2.2.1 原始数据的导入

由于需要导入库中的数据来自ADC读取程序和温度传感器,所以需先将采集到的数据存入变量,再通过sqlite3_mprintf()函数将变量的值添加到SQL语句中,最后再执行相应的SQL语句就可以把数据插入到数据库中。程序如下:

2.2.2 查询结果的生成

本系统采用按时段查询的方法来查找经滤波处理和数值变换后的数据,用于QtE图形显示模块在屏幕指定位置生成放电电压/荷电状态曲线及本次放电计算容量。用于生成查询结果的SQLite操作语句如下:

2.2.3 报表的提交

提交报表(查询结果)时,对于波形数据,本系统通过Time字段选取所生成视图中,当前EventCycle(事件循环)中的数据上交到QtE模块。提交数据的SQLite操作语句为:

Sql=sqlite3_mprintf(dSELECT*FROM myview WHERE Time BETWEEN%d AND%dd,time1,time2);//time2=time1+ EventCycle

sqlite3_get_table(db,sql,&result,&nrow,&ncolumn,&errmsg);//结果被保存到result数组中。

2.2.4 过期数据的删除

数据库删除内容一般为前一个EventCycle之前的数据。本系统设定:在规定的Event Cycle时间内,记录条数大于1 000时系统自动调用删除记录的子程序删除多余记录;Event Cycle内记录条数不超过规定值时,每隔一个EventCycle的时间删除一次;用户界面取消某个查询时,SQLite中生成的相应视图也立即删除。删除视图的SQLite操作语句为:

sqlite3_exec(db,dDROPVIEW myview d,NULL,0,&errmsg);//释放掉视图名为myview的视图。

2.3 人机界面

本系统的人机界面模块选用Qt/Embedded设计开发。Qt是一个跨平台的C++图形用户界面应用程序开发框架。Qt/Embedded是Qt的嵌入式版本(简称QtE)。

2.3.1 测量波形的界面显示

本系统针对人机界面的程序设计内容主要有仪表界面设计,操作窗口设计,对话窗口设计等。对于测量波形的界面显示,主要是通过重载paint Event函数来实现具体的界面图形绘制,相应的Qt语句如下:

上述各项设计内容均通过QtE设计实现,通过交叉编译后,移植到嵌入式系统硬件平台。

2.3.2 人机界面程序模块工作流程

系统人机界面程序模块工作流程图如图3所示。

图3 人机界面程序模块工作流程图

3 测试与分析

测试对象为飞利浦R6B2A160AA1600mAh氢镍电池,该电池生产日期为2011年9月,测试日期为2012年3月9日,测试温度:(20±5)℃,容量测试方法参照国标GB/T 18288-2000标准。测试设计为三次充放电循环,前两次为激活过程数据,第三次的测试结果为容量测试数据。

第一循环:以0.1 C的电流(160mA)充电16 h,开路放置1 h再以0.4 C(640mA)的电流放至终止电压1.0 V,测放电曲线并计算本次容量。

第二循环:使用大电流智能快充充电,自动充停后(-ΔV=5mV)以0.1 C(160mA)补充电2 h,开路放置1 h再以0.4 C(640mA)电流放电到终止电压1.0 V,测放电曲线并计算本次容量。

第三循环(正式标定容量):以0.4 C电流(640mA)充电3.5 h,开路放置1 h再以0.2 C电流(320mA)放电至终止电压1.0 V,测放电曲线并计算容量,并以此作为该电池的实测容量数据。

实际测量结果如图4、5、6所示。从图中可见,第一次测试容量为1 472mAh,第二次测试容量为1 559mAh,比第一次有所增加,表明有活性物质被激活,第三次测试容量为1 593mAh。三次测量结果符合充电电池循环充放电规律,所得测试容量基本接近标称容量,与实际情况吻合。测试结果证明文中荷电检测系统软、硬件设计正确,测量方法可行,系统满足实际测量需求。

图4 第一次放电曲线及测试容量显示界面

图5 第二次放电曲线及测试容量显示界面

图6 第三次放电曲线及测试容量显示界面

4 结束语

充电电池荷电状态检测系统在嵌入式硬件平台上实现需要解决多项问题,文中仅就主要硬件模块的选择与性能配置、主要软件系统的选择与性能配置、系统数据的获取、嵌入式数据库的选用及数据存储与筛选,Qt/Embedded的选用等实际问题,介绍了在ARM 9平台上解决这些问题的方法。文中系统,界面触摸操作,电压/荷电状态波形实时显示,波形数据存储,数据的回放、阅读和转存等项功能已经实现。系统需要继续完善的问题还有测量精度问题。这个问题的解决可以从两个方面入手:一方面提高前端数据的测量精度并合理设置补偿数据;另一方面是建立合适的荷电状态数学模型并引入相应的计算补偿。

[1] 谢荣生,丰海,李远敏,等.嵌入式系统软件设计[M].北京:北京邮电大学出版社,2011.

[2] 弓雷.ARM嵌入式Linux系统开发详解[M].北京:清华大学出版社,2010.

[3] 康维新.嵌入式Linux系统开发与应用[M].北京:机械工业出版社,2011.

[4] 何先波,李薇,罗建,等.嵌入式系统软件开发技术基础[M].北京:清华大学出版社,2011.

[5] 钱恭斌,肖敦鹤.嵌入式系统开发基础与实践教程[M].北京:电子工业出版社,2011.

[6] KOZLOWSKI JD,BYINGTON C S,GARGA A K,et a1.Modelbased predictive diagnostics for electrochemical energy sources[J]. IEEE,2001,6:3149-3164.

[7] 雷肖,陈清泉,刘开培,等.电动车蓄电池荷电状态估计的支持向量机方法Ⅲ[J].中国电机工程学报,2008,28(18):197-199.

[8] 李立伟,邹积岩.基于交流测量法的蓄电池内阻测量装置的研究[J].计量技术,2002(12):15-17.

[9] 徐曼珍.新型蓄电池原理与应用[M].北京:人民邮电出版社:2005.

Design of battery SOC detection system

GAO Feng-you1,ZHANG Jun1,WANG Xiang-bin2
(1.College of Electronics Engineering,Tianjin University of Technology and Education,Tianjin 300222,China; 2.Daqing Oilfield Drilling Engineering Company,Logging Company,Daqing Heilongjiang 163412,China)

A battery detection system of state of charge based on ARM9 was designed.In this system,S3C2440 ARM920T processor was chosen as the core of hardware,SQLite database was chosen as the core for data saving, sieving,analysis and processing.The waveform data were

by writing procedure to the ADC in S3C2440,the sketch and man-machine interface manifestation was realized by Qt/Embedded.In the end,some methods were put forward,which could solve the question of detection.

ARM9;Linux;battery;state of charge(SOC);SQLite;Qt/Embedded

T M 912

A

1002-087 X(2013)11-1999-04

2013-04-01

国家自然科学基金资助项目(61071204)

高凤友(1963—),男,黑龙江省人,副教授,工学硕士,主要研究方向为嵌入式系统设计、测量与诊断技术。

猜你喜欢

充电电池荷电充放电
V2G模式下电动汽车充放电效率的研究
基于SG3525的电池充放电管理的双向DC-DC转换器设计
基于双扩展卡尔曼滤波的电池荷电状态估计
电动汽车锂离子电池荷电状态估计方法研究
锂电池荷电状态(SOC)预测方法综述
考虑混合储能荷电状态的独立光伏系统控制策略
考虑充电电池组循环利用的集中充电站容量配置
一种平抑光伏和负荷波动的电动汽车有序充放电策略
充电电池到底该怎么带?——话说锂电池
V2G充放电机的设计及其仿真