一种基于bp神经网络算法预测电池soc的方法。
背景技术:
1、电池管理系统(bms)是基于优化管理和保护电池的控制系统,其核心部分是电池soc(state of charge,即电池荷电状态)的准确估算;而电池作为复杂的非线性系统,很难找到电池soc与电压、电流、温度、内阻等参数的数学关系;根据电池的soc同电池的电流、电压、温度、老化程度等参数呈现非线性的特点,如何利用电池可测参数数据来实现当前电池剩余电量准确估算一直以来是蓄电池管理系统的核心问题和急需解决的技术难题,也是一项重要而富有挑战的任务。
2、目前常用的soc估算方法有:开路电压法、阻抗分析法、安时计量法和卡尔曼滤波法等;开路电压法显著的缺点是测量时需要电池长时间静置,通常需要几个到十几个小时,该方法只适用于电动汽车驻车状态测试soc;阻抗分析法是通过研究电池电阻与soc的关系来估算电池soc;但采用该电池阻抗对soc进行估算难度还很大,且估算的精度也不能得到保证;安时计量法是实际使用较多的soc估算方法,安时计量法在应用中会出现一些问题;电流测量中的误差,会导致soc产生计算误差,误差不断积累,越来越大,误差在高温和电流波动的情况下会更大;采用卡尔曼滤波法(kf,kalman filter)对电池进行soc估算时,电池被当作一个动力系统研究,soc被当成系统的一个内部状态;卡尔曼滤波算法用于soc估算主要存在以下两个问题:一是对电池模型依赖性较强,要获得准确的soc,需要建立较为准确的电池模型,而电池模型的准确程度和复杂度是成正比的;二是卡尔曼算法包含大量矩阵运算,计算量较大。
3、人工神经网络是模拟人脑神经系统抽象建立的一种网络系统。它是一种模拟人脑复杂的神经网络行为特征,进行分布式并行信息处理的算法数学模型。该网络依赖于系统的复杂性,通过调整大量连接节点之间的内部关系来实现处理信息的目的;bp神经网络是一种典型的人工智能网络算法,与传统的线性神经网络估计方法相比,它具有较强的非线性映射能力,求解非线性问题是最突出的功能。与其他相对线性估计方法相比,bp神经网络具有简单的网络拓扑结构和较高的误差精度。正确的实现,具有很强的可操作性。bp神经网络是一种基于误差反向传播的前向网络。它具有很强的解决非线性问题的非线性映射能力。bp神经网络具有自学习和自适应能力,对预测电池soc具有重要意义。
技术实现思路
1、本发明的目的在于提供一种基于bp神经网络算法预测电池soc的方法,以提高电池soc的估算精度。
2、为了实现上述目的,本发明提供一种基于bp神经网络算法预测电池soc的方法,包括如下步骤:
3、s1,构建bp神经网络,bp神经网络的学习过程如下:
4、首先输入信号正向传播,样本通过输入层进入网络,再经过隐含层进行计算,然后由输出层将信号输出;若输出信号与预期值相差较大,将计算两者之间误差从后向前反向传播,根据网络学习的算法,逐层修改各个神经元之间的连接权值与阈值,直至误差降低到预定范围内,结束网络训练;
5、本发明所建立的神经网络输入向量x=(x1,x2,x3)t,分别表示电池电压、温度、充放电电流,隐含层输出向量为y=(y1,y2,...,y8)t,由于系统只有电池电量一个输出值,所以输出层的输出值z,而期望输出值定义为o。输入层到隐含层各个神经元之间的权值为wml,隐含层各个神经元的阈值表示为θl;隐含层到输出层各个神经元之间的权值为ul,输出层神经元的阈值表示为δ。另外,为了提高soc估算的精确度,选择s型tansign函数作为激励函数进行训练,tansign函数可定义为:
6、;
7、那么,电池电量soc=f(v,i,t),v代表电压、i代表电流、t代表温度;
8、s1.1,将样本数据电压、温度、电流归一化到[-1,1]之间,设置soc误差要求ε与最大训练次数t,然后初始化权值wml、ul与阈值θl、δ,权值与阈值可以在(-1,1)区间内随机选取,令当前训练次数t=1与当前样本数i=1;
9、s1.2,将归一化后的电池样本数据输入到神经网络中,得出隐含层中第l个神经元的输出数据:
10、;
11、s1.3,获得隐含层神经元的输出数据后,可求得输出层输出数据为:
12、;
13、s1.4,计算第i样本得到的实际输出与期望输出之间的误差:
14、;
15、s1.5,将得到的误差反向传播,通过梯度下降法更新网络的权值与阈值,沿着误差曲面的负梯度方向调整权值与阈值;
16、隐含层第l个神经元到输出层神经元权值的更新增量为:
17、;
18、输出层神经元的阈值更新增量为:
19、;
20、输入层第m个神经元到隐含层第l个神经元之间权值的更新增量为:
21、;
22、隐含层第l个神经元阈值的更新增量为:
23、;
24、计算完更新增量后,可以得出下一次训练的权值与阈值分别为:
25、wml (t + 1) = wml (t) + δwml ul;(t + 1) = ul (t) + δul;
26、 θl(t + 1) = θl(t)+ δ θl;
27、 δ(t + 1) = δ(t)+ δ δ;
28、s6,判断所有样本数据是否训练完成,若训练完成继续步骤s1.7;否则令i=i+1,跳转步骤s1.2继续训练下一个样本;
29、s7,计算总误差e:
30、;
31、若e<ε或t>t,结束训练,输出训练结果;否则令t=t+1,i=1,跳转至步骤s1.2继续训练。
32、以上为bp神经网络训练学习的步骤,通过该方法可以对锂电池soc进行估算,将锂电池的测试样本输入到神经网络中正向传播,经过隐含层、输出层得到输出的电池soc,计算期望输出与实际输出之间的误差,然后将误差反向传播,再通过梯度下降法计算更新增量,更新权值与阈值进行下一轮训练,直到误差满足预定误差范围后结束训练,实现对锂电池soc的估算;本系统使用三层bp神经网络估算电池soc,三层网络结构简单,计算速度快,有较强的非线性逼近能力,可以满足拟合要求;采用隐含层黄金分割优选方法确定隐含层神经元的最佳范围,若输入层的神经元数量为m,输出层的神经元数量为n,隐含层最佳神的神经元数l在如下范围中选取:
33、。
34、经过多次训练实验,将隐含层的神经元数l设为8,可以在较短的时间内获得最好的训练效果。
35、使用matlab训练神经网络,然后将训练好的神经网络参数保存,再到上位机软件中应用该参数估算电池soc。所以,需要在matlab程序中建立神经网络,将样本数据输入网络进行训练。
36、s2,在完成bp神经网络的训练后,使用该网络对电池放电情况进行估算,并与实测数据进行对比,检验训练的神经网络对锂电池电量的实际估算精度。
37、有益效果:本发明实现了通过训练获得与电池拟合度较高的bp神经网络后,可以得到该网络的权值与阈值,将权值与阈值保存,并存放到上位机软件中,上位机软件获得电池管理系统上传的电压、电流、温度后可以根据该权值、阈值、激励函数计算出电池的soc,然后将神经网络计算的电池soc传入煤矿井下电池管理系统中,对电池soc进行校正,获得较精确的电池soc。
1.一种基于bp神经网络算法预测电池soc的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,采用隐含层黄金分割优选方法确定隐含层神经元的最佳范围,若输入层的神经元数量为m,输出层的神经元数量为n,隐含层最佳神的神经元数l在如下范围中选取:
3.根据权利要求1所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,步骤s1包括:
4.根据权利要求1所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,步骤s1使用matlab对bp神经网络进行训练。
5.根据权利要求5所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,使用levenherg-marquardt算法结合梯度下降法与牛顿法对bp神经网络进行优化。
6.根据权利要求1所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,还包括步骤s1.8,将训练好的神经网络参数存放到上位机软件中,上位机软件获得电池管理系统上传的电压、电流、温度后,根据该权值、阈值、激励函数计算出电池的soc,然后将神经网络计算的电池soc传入煤矿井下电池管理系统中,对电池soc进行校正,获得精确的电池soc。
7.根据权利要求7所述的一种基于bp神经网络算法预测电池soc的方法,其特征在于,步骤s1.8采用s型tansign函数作为激励函数进行训练,tansign函数定义为:
