摘要:给出了电动自行车智能检测中电池与充电器匹配性能检测的实现方法。这种检测系统是采用多功能数据采集卡对电动自行车用电池进行充放电控制,并且采集实时数据,然后在基于VB和pC机建立的平台上分析和处理电池充放电时的特点数据,从而得出该充电器与电池的匹配效果。
引言
根据不完全统计,我国电动自行车从1998年的5.4万辆新增到2001年的58万辆,每年都在以翻一番的速率上升。电动自行车数量以如此速度在不断新增的同时,市场上电动自行车用电池与充电器的种类也越来越多。由于电池和充电器的匹配性关系到电动自行车的一次续驶里程和整车的可靠性,因此,关于给定的电池,用何种充电器来充电可以达到最佳匹配效果不仅仅是厂家,更是用户关心的重要问题。从电池和充电器性能入手,我们利用VB强大的图形功能和友好的界面,成功地开发出了一套能用上位机直接控制电池充放电,并且还能直观显示电池充放电时的特点数据,以及进行必要的处理和曲线分析电池与充电器匹配性能的检测系统。
1匹配性检测原理
所谓匹配性,就是指用不同的充电器对同一种电池进行若干次充放电试验,根据试验中的电池性能状态和充电器的充电曲线判断哪种充电器更适合给此种电池充电。在匹配性检测中,不仅要考虑电池的性能,同时还要考虑到充电器的性能。衡量电池的性能重要包括电池容量、寿命、充放电时的电流电压等参数。而充电器的性能重要体现在充电电流电压曲线、最高充电电压以及浮充电流电压等方面。
电池容量的一般计算公式是:
容量=放电电流放电到截止下限电压所经历的时间(单位:mAh或Ah)(1)
根据式(1),如采用5A恒流放电[1],只须记录每次电池放电到截止下限电压所经历的时间,即可得出该电池的容量,同时,还可以记录电池的实时电压电流值,以上均是在电池放电时完成的。在给电池充电时,要同时记录充电器类型号,电池两端的电流电压值以及采样点数等参数,以便用VB描绘实时电流电压变化曲线,用来与标准的三段式充电曲线[2](如图1所示)相比较。根据此曲线,还可以观察电池充电时的最高电压值,浮充电压、电流值。关于充放电过程的不断切换是通过多功能数据采集卡的数字输出端口(DigitalOutput)输出的数字信号来控制的。2硬件组成
该套系统是硬件和软件结合设计出来的。其硬件重要包括多功能数据采集卡(pCL818),接线端子板(pCLD-8115),直流开关稳压电源,直流电流、电压隔离传感器,充放电继电器以及驱动电路板等。系统原理框图如图2所示。
2.1模拟量采集
采集的重要对象是电池充放电时的电压和电流值。其核心部分包括多功能数据采集板卡及电流、电压传感器。数据采集卡通过ISA接口与pC机通讯,它由装在pC机内的数据采集卡和外部接线端子板以及连接板卡的电缆组成,重要功能包括:
1)可实现40k/s的最大采样速率;
2)通过设定可实现16路的单端(SE)模拟信号输入,也可实现8路的差分(Diff)模拟信号输入,同时还可作为1路12位的模拟量输出;
3)可实现16路数字量的输入和输出;
4)通道/增益可自动扫描;
5)可作为1路16位的计数器使用。由于板卡的模拟量输入范围在0~5V,所以,不仅要求电流电压传感器的输入在所需范围内,还要保证其输出在0~5V。我们所选用的电流电压传感器的精度均可达到1%,输入最大值分别为25A和50V,输出均为5V,完全满足系统的要求。
2.2数字量控制
控制的重要对象是接在充电和放电电路的充电继电器和放电继电器。前面已提到此采集卡具有16位的数字量输出功能[3](引脚如图3所示)。其控制方法是只要将脚1~16(D/O0-D/O15)的某一脚或多脚与脚17或脚18接入电路,就可以通过编程给该电路引入高低电平。在此我们引用D/O0(脚1)和D/O2(脚3),循环地使此两脚接高电平,即循环地使充放电继电器工作,进而使电池循环地进入充放电状态,以达到用户自动检测电池的目的。其控制方式在后面的软件部分介绍。
但是,数字信号的高电平驱动能力一般都比较弱,无法直接驱动继电器,为此,必须通过功率驱动电路(如图4所示)来增强从数字输出端出来的数字信号的驱动能力。
3软件实现
研华公司的采集卡都配有许多例程,只要在VB中加载该采集卡的驱动程序driver.bas模块及系统的动态链接库文件(如adsapi32.dll等)[4][5],就可以根据例程建立基于VB和pC机的虚拟平台,来对电池充放电进行实时监控。
3.1数据的采集与记录
在此程序中,采用的是多通道模拟输入模式(MAI),通过pT_MAIVoltageIn获得外部数据。当然,在读入外部电压电流数据之前,要预先设置好它的读入通道号(NumChan--总通道数,StartChan--采集开始通道),通道增益(Gain)以及触发模式(TrigMode),同时还要将VB与将要存放实时电流和电压的数据库相链接。在VB里数据库的链接方式有多种:使用datalink文件、使用ODBC数据资源文件、使用连接字符串等。使用连接字符串的方法很轻松地就可以实现与外部数据库的链接。剩下的就是如何将实时数据记录到数据库里。在tmrRead_Timer事件里运用下面的语句即可以实现。WithAdodc1.Recordset
.AddNew
.Fields(0)=i'记录ID号
.Fields(1)=Val(ComNum.Text)'记录充电器号
.Fields(2)=Time'记录系统时间
.Fields(3)=10*fVoltage(0)'记录采集电压值
.Fields(4)=5*fVoltage(1)'记录采集电流值
每进行一次Timer事件,都会添加一次新纪录,而且其发生的时间间隔可以通过它的属性Interval来含义,这样一来,所要的数据都会随时间的不断变化记录到数据库里。3.2数据的分析与处理
通常来说,每做一次充放电试验获得数据达几千个,通过观察数据库里的数据还是不容易发现总的变化趋势,只有把这些数据在坐标系里描成曲线才是最直观的。具体的做法是先读出数据库中的各点的值,并在建立好的坐标系中描出来(pset),然后利用Line函数把各点连起来。对采集回来的电流电压如此处理,对每次放电的时间记录亦如此处理,以便观察电池的放电特性。在实际试验中,利用某一种型号的充电器所得到的充电时电池的电压和电流曲线如图5所示。
3.3数字量的控制方式
数字信号输出端口的高低电平是通过软件控制的。在软件中,高低电平通道选通信号是由二进制数(1和0)转换成十进制数而得到的。例如,假如要求将前8脚都输出高电平即用二进制数表示为#00FF,换算成十进制数即为255,在具体编程中,只要给lpDioWriteport.state分别赋1(#0001)和4(#0004)即可使脚1和脚3输出高电平。程序的设置如下:
lpDioWriteport.port=lpDioportMode.port;所用端口号(由硬件决定)
lpDioWriteport.Mask=255;允许输出的默认端口设置
lpDioWriteport.state=DoValue;操作端口设置(置1和4)
3.4程序流程图本系统软件流程图如图6所示。
4结语
基于VB开发的检测系统现已成功地在某电动自行车厂投入运行,以其直观的显示和自动化控制,节省了大量的人力和时间,同时防止了不合格充电器和电池进入市场,对公司出现了明显的经济效益。同时,pC机操作界面直观,操作方便,适合不同层次的工作人员使用。