用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于DELPHI的镍氢电池管理系统软件设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:47:53
【本文由PB创新网为您整理】

摘要:通过对镍氢电池性能的研究,给出了一个应用ISA总线技术构建的、基于DELPHI编程平台的镍氢电池管理系统的设计方案,重点介绍了该系统的软件技术和实现方法。

    关键词:DELPHI;充放电;软件;模块;SOC

1 前言

镍氢电池是目前大容量电池的主要品种,已在通讯、交通、电力等部门得到广泛的应用,同时它也是其它智能仪表中最为常用的备用电池。但在实际使用中,由于充放电控制不合理而损坏的电池占大多数。实际上,若镍氢电池充放电适当,通常可以工作10年时间。为此,笔者研制了镍氢电池自动充放电控制系统。该系统由恒流源充电器和恒流源放电器对电池进行充放电因此电流、电压、温度控制是该电池控制系统的重要部分。为此,该系统在总体考虑电流、电压、温度控制系统的基础上,选用微机控制系统对电压 、电流、温度进行控制及模拟曲线处理,用得出的数据库对数据进行研究,并对电池性能及SOC进行预测。应用软件可在 Windows平台上用面向对象的 DELPHI6编程软件编写 这对整个系统控制软件的可靠性、易编制性大有益处。

2 DELPHI软件介绍

采用PC机作为上位机对采集的数据进行分析处理,是实现这种小型系统实时数据采集和分析的有效方法。Borland公司的Delphi是当今最优秀的Windows开发工具之一,它的可视化开发环境和面向对象的快速应用程序开发工具RAD,可使程序开发人员在Windows平台上快速开发出32位的应用程序。由于它采用面向对象的编程语言,能嵌入汇编和实现多线程操作,且开发数据库功能强大,因而是控制工程师极好的编程工具。

3 系统硬件设计javascript:window.open(this.src);" style="cursor:pointer;"/>

本文所设计的电池控制系统的硬件主要由工控机、PCL 711BI/ O接口板、光电隔离及采集板、恒流源充电器和恒流源放电器构成,其整体框图如图1所示,其各部分的硬件原理在此不再详述。

4 系统软件设计

图2所示是该系统的软件模块图。其中程序初始化包括关闭所有继电器选择开关(充放电选择继电器,充放电使能继电器)、接收数据模块的图象处理初始化、数据库初始化、充放电条件的选择(包括充电电池容量选择、充放电切换选择以及是否按预定曲线充放电)等,同样,程序退出也需实现一系列清零操作。

4.1 数据发送模块

数据发送模块用于完成电流信号的产生、调制以及通过对PCL711-B卡的编程操作来实现数据的发送和电流信号的形成。

由于充放电电流一般较大,考虑到安全问题,操作应严格按照操作规程来处理,本软件模拟了各项操作工序,并配以图文指示。

为了灵活地充放电,系统分为手动和自动充放电两种方式,如对电池有一定的了解,可以选择手动充电并通过一定的试验了解电池的性能,然后向数据库中或者预存曲线库中添加想要的充放电形式,从而实现充放电的智能控制。

若选择自动充电,可以选择不同情况下的充放电形式。电池充放电与许多因素有关,如夏天和冬天的情况不同,不同温度下充放电的要求也不一样,不同循环次数的电池充放电表现出来的SOC值也不一样,本系统在设计充放电预定库时都有基于此方面的考虑。一般电池充放电有2种主要形式:恒压充电和恒流充电,本系统选择的是恒流充电(恒流源自制,电路原理图可向作者索取),并通过软件和硬件相结合的方式实现电流的智能充电。

电池充放电就充电来说主要表现为三个阶段:电池恢复阶段、大电流充电阶段、涓流补充充电阶段。刚开始充电由于电池内阻较大,故需要用小电流充电以恢复电池,充电电流不宜高于0.3C,大电流充电阶段控制到0.5C-2C之间,待到电池电压上升到预定充电电压时(预定额度时),可以改为小电流补充充电方式,从而使其能量SOCState of charge达到满额(90%以上)。javascript:window.open(this.src);" style="cursor:pointer;"/>

而当基于DELPHI设计软件时,要综合考虑以上要素,然后在预定曲线图和数据库中给出理想的充放电方案。

利用DELPHI软件实现D/A卡的定时发送时,可通过系统的中断来实现。

4.2 数据采集模块

镍氢电池充放电系统一般需要采集4种数据:充放电电压、充放电电流、电池温度、充放电器温度。为了保证采样的准确性,可采用三次采样取平均值的算法来实现采样。

利用DLL提供的功能函数,再配以DELPHI软件,就能很容易地通过PCL911-B采集卡实现对设定通道内数据的采集。下面是其简单的例程:

{打开设备}

ErrCde:= DRV_ DeviceOpen(dwDeviceNum, De-viceHandle);

{设置采集通道,采集开始}

AiVolIn1.chan:= ptAIConfig1.DasChan;

AiVolIn1.gain := ptAIConfig1.DasGain;

AiVolIn1.TrigMode = AiCtrMode1;

AiVolIn1.voltage := @Voltage1;

................

ErrCde1:= DRV_ AIVoltageIn(DeviceHandle_AiVolIn1);

................

ErrCde :=ErrCde1*ErrCde2*ErrCde3*Er-rCde7*ErrCde8*ErrCde9;

{获取采集卡的数据}

Edit1.Text:=FloatToStrF(Voltage1/5,ffFixed 6,4);

{采集结束,保存、退出}

lpDioWritePort.port := lpDioPortMode.port;

lpDioWritePort.mask := 255;

lpDioWritePort.state:= 0;

ErrCde := DRV_ DioWritePortByte(DeviceHandle, lpDioWritePort);

4.3 数据处理模块

通过数据处理模块可以完成信号的存贮、显示、分析以及信号的调节、系统报警及紧急停止等功能。

信号的保存分为图象和数据库的保存,这些都可以利用DELPHI的SaveDialog对话框以及Pic-ture.SaveToFile事件来实现。

数据的显示可以利用DELPHI的Tcanvas对象,也可以用简单的绘图语句在图象框等控件中实时地复现出数据波形,还可以通过Teechart统计图表对采集数据进行波形复现和简单的分析。若要对其采集数据线性度以及信号的频率、幅度、变化率做进一步的分析,可以调用MATLAB进行高级处理。

有关数据库的操作可以围绕Table或者Query控件来完成,并通过ODBC数据源以及DELPHI的BDE数据管理器来进行连接。但Query控件需调用SQL语言来从事设计。

信号的分析主要包括通过采集的电流、电压、以及温度、循环次数来研究电池的能量-SOC(State of charge),电池荷电状态可反映电池的剩余容量。其数值上定义为电池剩余容量占电池容量的比值。

SOC建模的正确与否关系到电池的工作效率、电池的寿命、电池所能释放的能量和继续充放电的时间,所以SOC建模是电池管理系统的重要一环。因篇幅有限,这里不作介绍。

本系统还可利用经典的PID调节方式,并通过DELPHI软件来保证输出的线性度和稳定性。由于充放电需要恒流源 ,并且充放电时间都较长,故可采用常见的PID调节(可消除偏差)方法来满足系统要求。

5 结束语

利用DELPHI软件进行基于ISA总线的检测系统开发,可以与各类数据采集卡、数模转换卡进行无缝集成。实际使用证明:该系统稳定可靠,功能强大,可实现电池的自动化监控,并能够得出有价值的信息。目前,该系统已成功应用于某新型汽车研发平台。



Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:14,125.00000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号