欢迎来到天天文库
浏览记录
ID:10643255
大小:54.50 KB
页数:4页
时间:2018-07-07
《基于delphi的镍氢电池管理系统软件设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于DELPHI的镍氢电池管理系统软件设计
2、第1摘要:通过对镍氢电池性能的研究,给出了一个应用ISA总线技术构建的、基于DELPHI编程平台的镍氢电池管理系统的设计方案,重点介绍了该系统的软件技术和实现方法。关键词:DELPHI;充放电;软件;模块;SOC1前言镍氢电池是目前大容量电池的主要品种,已在通讯、交通、电力等部门得到广泛的应用,同时它也是其它智能仪表中最为常用的备用电池。但在实际使用中,由于充放电控制不合理而损坏的电池占大多数。实际上,若镍氢电池充放电适当,通常可以工作10年时间。为此,笔者研制了镍氢电池自
3、动充放电控制系统。该系统由恒流源充电器和恒流源放电器对电池进行充放电因此电流、电压、温度控制是该电池控制系统的重要部分。为此,该系统在总体考虑电流、电压、温度控制系统的基础上,选用微机控制系统对电压、电流、温度进行控制及模拟曲线处理,用得出的数据库对数据进行研究,并对电池性能及SOC进行预测。应用软件可在Windows平台上用面向对象的DELPHI6编程软件编写这对整个系统控制软件的可靠性、易编制性大有益处。2 DELPHI软件介绍采用PC机作为上位机对采集的数据进行分析处理,是实现这种小型系统实时数据采集和分析
4、的有效方法。Borland公司的Delphi是当今最优秀的Windows开发工具之一,它的可视化开发环境和面向对象的快速应用程序开发工具RAD,可使程序开发人员在Windows平台上快速开发出32位的应用程序。由于它采用面向对象的编程语言,能嵌入汇编和实现多线程操作,且开发数据库功能强大,因而是控制工程师极好的编程工具。3 系统硬件设计本文所设计的电池控制系统的硬件主要由工控机、PCL711BI/O接口板、光电隔离及采集板、恒流源充电器和恒流源放电器构成,其整体框图如图1所示,其各部分的硬件原理在此不再详述。4 系统
5、软件设计图2所示是该系统的软件模块图。其中程序初始化包括关闭所有继电器选择开关(充放电选择继电器,充放电使能继电器)、接收数据模块的图象处理初始化、数据库初始化、充放电条件的选择(包括充电电池容量选择、充放电切换选择以及是否按预定曲线充放电)等,同样,程序退出也需实现一系列清零操作。4.1数据发送模块数据发送模块用于完成电流信号的产生、调制以及通过对PCL711-B卡的编程操作来实现数据的发送和电流信号的形成。由于充放电电流一般较大,考虑到安全问题,操作应严格按照操作规程来处理,本软件模拟了各项操作工序,并配以图文指
6、示。为了灵活地充放电,系统分为手动和自动充放电两种方式,如对电池有一定的了解,可以选择手动充电并通过一定的试验了解电池的性能,然后向数据库中或者预存曲线库中添加想要的充放电形式,从而实现充放电的智能控制。若选择自动充电,可以选择不同情况下的充放电形式。电池充放电与许多因素有关,如夏天和冬天的情况不同,不同温度下充放电的要求也不一样,不同循环次数的电池充放电表现出来的SOC值也不一样,本系统在设计充放电预定库时都有基于此方面的考虑。一般电池充放电有2种主要形式:恒压充电和恒流充电,本系统选择的是恒流充电(恒流源自制,电
7、路原理图可向索取),并通过软件和硬件相结合的方式实现电流的智能充电。电池充放电就充电来说主要表现为三个阶段:电池恢复阶段、大电流充电阶段、涓流补充充电阶段。刚开始充电由于电池内阻较大,故需要用小电流充电以恢复电池,充电电流不宜高于0.3C,大电流充电阶段控制到0.5C-2C之间,待到电池电压上升到预定充电电压时(预定额度时),可以改为小电流补充充电方式,从而使其能量SOCStateofcharge达到满额(90%以上)。而当基于DELPHI设计软件时,要综合考虑以上要素,然后在预定曲线图和数据库中给出理想的充放电
8、方案。利用DELPHI软件实现D/A卡的定时发送时,可通过系统的中断来实现。4.2数据采集模块镍氢电池充放电系统一般需要采集4种数据:充放电电压、充放电电流、电池温度、充放电器温度。为了保证采样的准确性,可采用三次采样取平均值的算法来实现采样。利用DLL提供的功能函数,再配以DELPHI软件,就能很容易地通过PCL911-B采集卡实现对设定通道内数据的采集。下面是其简单的例程:{打开设备}ErrCde:=DRV_DeviceOpen(dwDeviceNum,De-viceHandle);{设置采集通道,采集开始}Ai
9、VolIn1.chan:=ptAIConfig1.DasChan;AiVolIn1.gain:=ptAIConfig1.DasGain;AiVolIn1.TrigMode=AiCtrMode1;AiVolIn1.voltage:=@Voltage1;................ErrCde1:=DRV_AIVoltageIn(Devic
此文档下载收益归作者所有