The Application in Management System of Ni-MH Power Battery
Abstract The monitoring system of high power Ni-MH battery Energy management system based on CAN bus For Hybrid Vehicle by LabVIEW7.0 ensures the safety of Hybrid Vehicle used the power battery ,and the function of data record offers important information for the research on power battery’s capability in different conditions.
Keywords LabVIEW,CAN,Electric Vehicles,Power Battery,Management System,Threads
摘 要 以LabVIEW7.0为软件开发平台,基于CAN总线实现电动汽车用高功率镍氢动力电池管理系统的在线实时监控,为镍氢动力电池组在混合动力电动车中的运行提供了安全可靠的保障,同时历史数据的记录为动力电池组在复杂工况下性能的研究提供了重要的参考依据
关键词 LabVIEW CAN 电动车 动力电池 管理系统 多线程
0 引言
本课题来源于“十五”国家863计划“燃料电池城市客车用高功率镍氢动力电池组系统及其应用技术(2005AA501140)”子课题电池管理系统。电动汽车的行驶工况十分复杂,对蓄电池的寿命影响很大,而镍氢蓄电池的使用寿命有限。因此,必须对电动汽车的动力电池组设置专门的管理系统,用于监控电池的工作状态、管理电池的工作情况。为了使动力电池管理系统能为电动车的运行提供安全、可靠的保证,必须在电动车的运行过程中对蓄电池组的各项性能指标进行实时的监测和必要的修正,LabVIEW(laboratory virtual instrument engineering workbench)为实现这一功能提供了良好的软件开发平台。
LabVIEW是美国国家仪器公司(National Instruments,NI)的创新软件产品,在研究、制造和开发的众多领域得到了广泛的应用,它支持多种先进测试总线和各种虚拟仪器软件标准,并提供了丰富完善的针对数据采集、仪器控制、信号分析和数据处理等任务的功能模块。虽然LabVIEW采用基于流程图的图形化编程方式,简单直观、易于理解,但如果开发出高效、灵活、可靠的复杂系统就需要对它的设计原理、程序结构、运行控制和系统管理有透彻的理解和深入的分析。在本系统中就应用了LabVIEW的DLL(dynamic link library)、多线程、运行控制等多种技术。
1 系统组成
实现“电动汽车用高功率镍氢动力电池管理系统”的实时在线监控由硬件和软件两部分组成。硬件包括广州周立功单片机发展有限公司的USBCAN-Ⅱ的智能CAN接口卡和PC机。以计算机为主体,连接智能CAN接口卡,通过CAN总线与下位机的各子系统相连接构成硬件平台。软件安装USBCAN-Ⅱ的驱动程序,采用LabVIEW7.0图形化编程语言,应用动态链接库、多线程、运行控制等多种技术实现电池管理系统的实时在线监控。
2 硬件实现
计算机为普通台式个人计算机或者笔记本电脑均可,本系统上位机选用的配置为Intel(R) Pentium(R) Processor 1.60GHz,512 MB的内存。USBCAN-II 智能CAN 接口卡是与USB1.1 总线兼容的带有2 路CAN 接口的智能型CAN 数据接口卡。采用USBCAN-II 智能CAN 接口卡,PC 可以通过USB 总线连接至CAN 网络,构成CAN 网络领域中数据处理、数据采集。USBCAN-II 接口卡上自带光电隔离模块使USBCAN-II 接口卡避免由于地环流的损坏,增强系统在恶劣环境中使用的可靠性。USBCAN-II 智能CAN 接口卡配有可在Win9X/Me 、Win2000/XP 下工作的驱动程序。
USBCAN-II 智能CAN 接口卡具有2 路CAN 通道,分别通过2 个DB9 针型插座CZ1 CZ2 与实际CAN-bus网络进行连接,可以支持连接2 个不同通讯速率的CAN-bus 网络。
3 软件实现
采用LabVIEW7.0为软件开发平台,在实现需求功能的同时要兼顾程序的灵活性、可扩展性、可维护性、代码重用性和可读性。
“电动汽车用高功率镍氢动力电池管理系统”的实时在线监控要求在通过CAN总线高速采集数据的同时,能够把动力电池组相关性能指标的所有参数以多种形式显示给用户用于监测,同时计算电池组的NEC(net energy change,净能量的改变)、统计动力电池组的最高充电电流、最高放电电流、最低总电压、最大输出功率、模块电池的最低电压、最高温度、模块电池电压和温度的极差并且能够设置下位机电量测量单元的SOC和时钟初始参数等,周期记录动力电池组的各项性能参数。
为了提高应用程序的效率和性能,同时完成所需要的多个任务,本系统应用了LabVIEW的多线程技术。所谓线程(thread)是指由进程进一步派生出来的一组代码(指令组)的运行过程。多线程技术可以使同一个程序有几个并行运行的路径,从而提高程序的运行速度,线程所占用的系统资源比进程要小。在一个程序中,线程并不是越多越好,也并不是越多程序执行得越快。因为计算机的CPU只有一个,当一个线程在执行的时候,其它的线程就处于挂起或者阻塞状态,那么程序使用内存的效率就会很低。本系统考虑能够最大发挥操作系统的性能,又能提高系统的效率,共设计了三个线程:通过CAN总线高速采集数据;参数的显示、记录和设置;所需参数的计算。
3.1 数据采集
本系统采用USBCAN-Ⅱ的智能CAN接口卡和PC机相连接,将CAN总线上的数据以50ms的周期采集到上位机。
USBCAN-Ⅱ提供了可供LabVIEW调用的动态链接库。LabVIEW中动态链接库的调用是通过CLF(Call Library Function)节点实现的,CLF节点位于LabVIEW功能模板中的Advanced子模板中,使用时必须先对它进行配置。
CAN是一种具有国际标准而且性能价格比又较高的现场总线,和一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从。CAN节点只需通过对报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。CAN协议有两种不同的帧格式,不同之处为标识符域的长度不同:含有11位标识符的帧称之为标准帧,而含有29位标识符的帧为扩展帧。本协议采用标准帧格式。
本系统当电池测量单元和电量测量单元节点向CAN总线上发送数据时,上位机节点接收并存储到数据缓冲区。每个测量单元发送到总线的数据有12个模块电池的电压和10个温度点(有符号),每一帧数据的长度为8个字节,第一个字节为帧id,所以测量单元需用8帧数据才能将测量单元的数据传输给上位机。根据模块电池的电压在充、放电过程中的变化可以诊断模块电池的健康状态,温度点变化的检测可以避免动力电池在使用过程中的损坏。电量测量单元发送到总线的数据有动力电池的充、放电类型,总电流、总电压、SOC(state of charge,剩余电量)、功率密度、漏电压和子节点系统时钟。SOC能反映电池中所剩下的电量,估计电动车在纯电动情况下的续驶里程,SOC的估计是动力电池管理系统所研究的重要参数,也是反映电池性能指标的主要技术参数。根据蓄电池组在充、放电过程中总电流和总电压的变化,可以诊断动力电池组的性能和健康状态。在LabVIEW中可以调用DLL中的VCI_Receive 函数来实现数据的采集。
因为在本系统中应用了多线程技术,所以要注意对公共数据缓冲区的访问。在数据采集线程中从CAN总线接收的数据存放到数据缓冲区,而在数据显示和参数计算中都要访问这个数据缓冲区,如果对数据同时读和写就会产生不可预知的错误,所以要对公共数据缓冲区互斥访问,在写的情况下不能进行读操作。本系统应用了互斥量来实现这一功能,把读、写操作在一个子vi中实现,然后将这个vi的运行属性设置为不可重入,这样就保证了程序运行中至多只有一个操作在执行。
3.2 数据的显示、记录和参数的设置
在LabVIEW中常用的记录数据的方法有利用数据库技术存储数据和利用文件系统存储数据。使用数据库访问技术,用户可以创建一个使用数据库来管理复杂测试任务、存储测试数据并且能够总结测试结果的自动测试系统。使用文件系统管理数据文件读写速度快、占用磁盘空间少、检索方便快捷。本系统数据记录要求把每次系统运行时电量测量单元和电池测量单元发送到总线的数据实时记录下来,并能简单记录每次的测试信息,并能将数据直观、方便的提供给用户使用。如果频繁的访问数据库则很难保证数据记录的实时性,而且要建立数据库模型,所以对于简单的大量的实时数据并不适合采用这种方法。文件系统虽然数据读写速度快,但是数据格式不直观。这两种方法都需要单独编写应用程序来实现对数据的读取,如果数据量大,可能需要对数据再处理并需要一定的时间。在LabVIEW的函数库里封装了一系列可以直接对Excel表格操作的VI库,为在程序中直接操作Excel表格提供了方便快捷的方法。综合以上分析,在本系统中采用直接操作Excel表格的方法,每次运行时将数据周期性的直接存储到表格中。根据用户需求,每次系统运行建立一个工作簿,其中自动创建6个工作表:分别记录测试基本信息、SOC节点数据、测量单元1数据、测量单元2数据、测量单元3数据和测量单元4数据。
参数的设置包括对统计量的复位和对子节点单元参数的设定。对统计量的复位包括对最高充电电流、最高放电电流、最低总电压、最高输出功率、模块最低电压和最高温度、模块电压和温度极差的复位操作。因为这些操作都是根据用户的需要在运行中随时进行,所以采用LabVIEW中提供的事件触发的方法来实现。Functions模板>>Structures>>Event Structure可以响应多个事件的发生,把上述操作的执行统一到菜单中,当用户选择菜单中的操作时,就会马上执行程序中相应的事件触发程序,完成操作。对子节点单元参数的设定也可以这样来实现,只是事件触发程序不同,如果实现对子节点的操作必须通过CAN总线来完成,把相应的命令发送到CAN总线上,子节点接收到命令后执行,USBCAN-Ⅱ提供了向CAN总线发送数据的函数库。
3.3 参数的计算
本系统中大部分参数的计算都是在子节点中完成,但NEC的计算是在上位机中实现的。NEC定义为净能量的改变,∫UIdt。U:电池组的总电压,I:电池组的总电流(充电为正,放电为负)。要求采样频率≤20Hz,所以本系统计算的周期选择为50ms,为了保证计算的精确性,首先要做到周期定时的准确性。
4 结束语
本系统的创新点在于应用LabVIE多线程技术实现了基于CAN总线的高速数据采集和基于Excel表格的实时数据记录。该系统在清华大学“清能3#”车运行近半年的时间里,运行稳定、可靠,向用户及时、准确地提供了实时在线监测数据和历史数据,为镍氢动力电池组在混合动力电动车中的运行提供了安全可靠的保障,同时为动力电池组在复杂工况下性能的研究提供了重要的参考依据。
参考文献
1 杨乐平,李海涛,赵勇,杨磊,安雪滢.LabVIEW高级程序设计[M].北京:清华大学出版社,2003-4
2 饶运涛,邹继军,郑勇芸。现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003-6
3马建新 李青松 龚元明 朱建新。 基于CAN总线的电动汽车蓄电池管理系统[J]. 机电一体化, 2004(5)
4 梁惺彦 和卫星。LabVIEW实现远程数据采集与传输[J].微计算机信息,2005