APP下载

基于LabVIEW的锂电池SOC预估与参数监测系统

2018-09-27李桂娟张持健施志刚

传感器与微系统 2018年10期
关键词:电池误差电压

李桂娟, 张持健, 施志刚, 李 亮, 刘 雪

(安徽师范大学 物理与电子信息学院,安徽 芜湖 241002)

0 引 言

目前,用于荷电状态(state of charge,SOC)估算的方法主要有开路电压法、放电实验法、安时积分法、卡尔曼滤波法[1]以及神经网络(neural network,NN)法。但是单一使用一种方法都存在诸如精度较低、不能在线预测等问题,文献[2~4]均采用开路电压联合安时积分的方法来预测SOC,并通过不断地修正SOC值消除累积误差,预测精度基本都能达到3%左右,但只适合短期预测,长时间会增加估算误差。文献[5,6]采用开路电压法和安时法结合的方法,然后再用卡尔曼法来修正SOC值,减小了预测误差,增加了运算的复杂性。文献[7,8]使用反向传播(back propogation,BP)算法估算SOC,输入参数为电压和电流,未考虑温度对电池SOC的影响,估计误差大部分处在2 %~5 %之间,误差较大。

考虑到电池的非线性特征[7]及温度对SOC的影响,本文采用开路电压法、安时积分法结合改进的BP算法对电池的SOC进行动态预测,根据采集的实验数据结合MATLAB进行仿真实验,结果表明,本文方法预测SOC,误差绝大多数都在1 %以内,提高了电池SOC的预测精度,验证了该预测模型的可行性。

1 改进的BPNN预测电池SOC

1.1 SOC预测模型的建立

标准的BP算法在应用中存在不足之处:1)网络训练过程中容易遗忘旧样本;2)容易陷入局部极小值;3)网络收敛速度较慢。本文采用列文伯格—马奈尔特(Levenberg-Marquardt,LM)算法来弥补标准BP算法的不足。LM算法是基于数值优化的一种快速算法,结合了梯度下降和高斯—牛顿法。

根据Kolmogorov定理,一个3层的NN具有对任意精度函数的逼近能力,本文采用图1的预测模型。输入层包含3个参数,分别为电池的电压、电流及温度,其与隐含层之间使用Sigmoid激活函数;输出层则为电池SOC,使用Purelin线性激活函数;隐含层数通过实验获取,亦采用Sigmoid函数。LM算法训练网络过程为:

1)计算网络误差

(1)

式中tk为期望输出,yk为实际输出。

2)修正连接权值

wk+1=wk+[JT(w)J(w)+μI]-1JT(w)e(w)

(2)

式中wk+1为修正后的权值;wk为当前权值;其余项为权值增量,即Δw。

图1 电池SOC网络训练模型

1.2 样本数据的选取及处理

本文采用的动力电池3.7 V单体锂电池,其标称容量为1 500 mA·h,充电限制电压为4.2 V。根据下位机设计的数据采集电路,将恒流放电电路分别以不同的倍率(0.1,0.2,1,2 C)对锂电池进行放电实验,电池的温度可以直接通过传感器获得,将实验采集到的数据随机选取一部分作为网络的训练样本,另一部分作为测试样本。均选取不同倍率下的15组样板数据作为网络输入,SOC为输出。并对数据归一化处理

(3)

式中x为实验测试数据;xmax,xmin分别为实验测试数据的最大值和最小值,且x′∈[xmin,xmax]。

2 电池SOC预测架构整体设计

2.1 总体设计

本文利用单片机STC12C5A60S2作为主控制器,完成对电池数据的采集。并利用串口协议,将单片机采集的电池参数数据传输到LabVIEW上位机,上位机界面将采集的数据通过波形图实时显示并存储。在上位机中设置有报警模块,当电池参数出现温度过高、电压异常等情况时报警,提高了电池的使用安全性。系统结构示意如图2所示。

图2 系统结构示意

硬件部分主要包括主控制器(STC12C5A60S2)、按键模块、电源模块以及恒流放电电路模块。单片机用于获取网络训练的电池参数(如电压、电流、温度等)数据;按键模块用于控制放电电流;恒流放电电路由场效应管IRF640、运放OP07、采样电阻器R1等组成,场效应管采取IRF640能较好地通过电压来实现恒流放电的目的,放电电路如图3所示。

图3 压控恒流放电电路

2.2 基于LabVIEW的监测系统设计

1) 用户登录模块

该模块作为整个上位机程序的入口,主要实现用户的登录管理。该模块提高了系统的安全性,满足了一般用户对实际应用的需求。其登录界面如图4所示。

图4 用户登录界面

2)参数监控模块

该模块的功能主要有电池参数的采集、显示、存储以及历史数据查看等。其中数据采集部分通过LabVIEW上位机中的VISA资源库实现对串口数据的读写,参数通过波形图以曲线的形式显示,数据存储和数据采集同步进行,以Excel的形式存储设定的目录下,如果需要查看某时段的数据,则可以点击“历史数据查询—打开数据”,将已保存的历史数据回调到显示界面上,界面显示结果如图5所示。

图5 用户显示界面

3 仿真结果与分析

借助MATLAB强大的工具箱来训练已搭建好的BPNN,将归一化到[0,1]处理后的电池数据送入网络进行不断的训练与学习。为了加快训练速度,减小训练误差,训练函数采用LM算法,训练目标误差均方误差(mean square error,MSE)定为10-4,其训练过程如图6。

图6 锂电池SOC训练曲线

图6(a)输入参数只考虑了电池的电压和电流,图6(b)在图6(a)的基础上考虑了温度对SOC的影响,而图6(c)为用LM算法的网络训练结果对比,输入参数为电池的电压、电流及温度,可以看出,相比未考虑温度参数的标准算法,加入温度参数后输出精度要高出2 %左右;采用改进的BP算法一定程度提高了SOC的预测精度,由此也验证了本文算法的可行性。

保存上述数据,采用本文网络模型进行仿真实验,训练的均方误差曲线及SOC误差曲线如图7、图8。其中,在500步长内最佳训练结果为0.000 100 38。

图7 训练均方误差曲线

图8 SOC误差曲线

4 结 论

实验结果证明:采用LM算法来预测电池的SOC具有可行性,在此基础上考虑了温度这一参数的影响,不但加快了训练速度,而且能够达到较高的精度要求。用本系统所构建的网络模型来估算电池的SOC,其误差绝大部分都小于1 %。结合LabVIEW上位机能够让用户更加直观地了解到电池的参数信息,提高了电池的使用安全性。

猜你喜欢

电池误差电压
电池很冤
“一粒盐电池”
把电池穿身上
穿在身上的电池
角接触球轴承接触角误差控制
Beidou, le système de navigation par satellite compatible et interopérable
压力容器制造误差探究
让我们一起认识电压
谈谈电压
基于Multisim的滞回电压比较器的设计及其应用