本发明涉及电动汽车电池领域,尤其是一种基于神经网络与无迹卡尔曼滤波器的锂电子电池剩余电量与传感器偏差协同估计的方法。
背景技术:
汽车行业的快速发展间接导致了能源的大量消耗、环境的日益恶化。因此,以蓄电池为动力的电动汽车凭借低能耗、零排放、性价比高等优势在新能源汽车行业获得广泛关注。锂电子电池由于能量密度高、自放电低、充电快、寿命长等优点,在便携式电器如手提电脑、摄像机、移动通讯中得到普遍应用,因此也成为新能源电动汽车的优选。
电池管理系统是电动汽车发展的关键技术之一。它可以有效评估电池的荷电状态、健康状态和温度等。其中,电池的荷电状态,是电池剩余电量的一个重要指标。它定义为使用一段时间或长期搁置不用后的剩余容量与其完全充电状态的容量的比值,常用百分数表示。其取值范围为0-1,当荷电状态为0时表示电池放电完全,当荷电状态为1时表示电池完全充满。在电池的使用过程中,需将其荷电状态保持在合适的范围内,以提高电池的安全性能、延长电池的充放电循环寿命。同时可以防止电池因过充或过放而导致锂电子电池老化、性能降低。
但是在电池充放电过程中,由于电池内部复杂的电化学反应特性及外部环境因素的影响,锂电子电池是一个高度非线性系统。锂电子电池的soc无法直接通过仪表直接测量,只能通过电池的终端电压、电流等外部特性参数,选取准确有效的模型进行估算,这为准确估算soc带来了很大的困难。
目前研究soc的方法主要有安时积分法、开路电压法、神经网络法、卡尔曼滤波算法等。现有方法不足之处如下:一、安时积分法需要知道soc初始值,同时作为开环算法,由于不确定的干扰比如温度、电流测量偏差,soc计算过程中会出现误差累计效应;二、开环电压法只有在电池处于开路、长期静置条件下方可估算soc,不可在线估计,而且这个静置过程一般需要几个到十几个小时;三、神经网络法需要大量实验数据来对网络进行训练;四、传统的卡尔曼滤波算法只适合应用于线性系统,因此对于高度非线性系统的锂电子电池不适用。
技术实现要素:
本发明所要解决的技术问题在于,提供一种基于神经网络与无迹卡尔曼滤波器的锂电子电池剩余电量与传感器偏差协同估计的方法,能够实现soc和传感器偏差的协同估计,具有收敛速度快、精度高、误差小的优点。
为解决上述技术问题,本发明提供一种基于神经网络与无迹卡尔曼滤波器的锂电子电池剩余电量与传感器偏差协同估计的方法,包括如下步骤:
s1:进行锂电子电池充放电实验并采集样本数据,包含训练数据和测试数据;
s2:确定神经网络的输入和输出变量,建立soc的rbfnn模型;
s3:基于训练数据集对建立的rbfnn进行参数学习,获取准确的rbfnn模型;
s4:利用测试数据对建立的rbfnn进行独立精度检验;
s5:将soc设置为内部状态,设计rbfnn-ukf,实现在初始soc不确定的情况下对soc的实时估计;
s6:将传感器偏差设置为扩张状态,在原有rbfnn-ukf基础上设计扩张rbfnn-ukf,实现soc与未知传感器偏差的协同估计。
优选的,步骤s1中,采集的样本数据包括锂电子电池的电流、终端电压和soc数据。实验用不同大小的电流对锂电子电池进行充放电,保证样本数据的覆盖性,测量数据的采样时间设置为1秒。为了获得soc初始值,一开始将锂电子电池充电到满负荷状态,根据安时积分法计算出每时刻的soc值。
优选的,步骤s2中,确定神经网络的输入和输出变量,建立soc的rbfnn模型具体为:根据锂电子电池充放电实验采集的数据,将k-1时刻的电压数据、k时刻的soc数据、k时刻的电流数据作为神经网络的输入,k时刻的电压数据作为神经网络的输出,从而建立rbf神经网络。
优选的,rbf神经网络具有三层结构——输入层、隐含层、输出层;其中,隐含层每个神经元的激活函数为径向基函数(一般为高斯函数),即:
其中,
其中,f为rbfnn输入到输出的非线性函数,w0为阈值,wi=[w1,w2,...,wn]t为隐含层至输出层的权值向量,m为隐含层神经元数目。
优选的,步骤s3中,基于训练数据集对建立的rbfnn进行参数学习,获取准确的rbfnn模型具体包括如下步骤:
s31:利用已知的电流、电压和soc训练数据对建立的rbfnn进行参数学习;
s32:根据训练好的rbfnn,确定最优参数,获取准确的rbfnn模型。
优选的,步骤s4中,利用测试数据对建立的rbfnn进行独立精度检验具体为:利用测试数据对建立的rbfnn进行独立精度检验。将电压估计值与真实电压值比较,验证所建立网络模型的准确度。
优选的,步骤s5中,将soc设置为内部状态,设计rbfnn-ukf,实现在初始soc不确定的情况下对soc的实时估计具体包括如下步骤:
s51:根据式(4)设计rbfnn-ukf:
基于训练好的rbfnn模型设计ukf滤波器,将k-1时刻的电压、k时刻的soc分别作为第一、第二状态变量、k时刻电流作为输入变量,k时刻电压作为观测输出。则系统的状态变量与观测变量定义为:
其中,v(k-1)、v(k)、z(k)和z(k+1)分别为k-1时刻的电压、k时刻的电压、k时刻的soc、k+1时刻的soc,每个时刻的soc值通过安时积分法获得;
根据式(3)设计ukf滤波器,其状态空间模型表达为:
其中,uk为ukf的输入变量,即k时刻的电流,f是由训练好的rbfnn确定的网络输入到输出的非线性函数,cn为锂电子电池的额定容量,δt为采样时间,w(k)和ν(k)分别为过程噪声和测量噪声;
s52:将soc设置为内部状态进行观测,通过对soc进行反馈补偿实现在初始soc不确定的情况下对soc的实时估计。
优选的,步骤s51中,每个时刻的soc值通过安时积分法获得具体为:
其中,z(t)和z(t0)分别为t时刻soc和soc初始值,cn为锂电子电池的额定容量,ηi为库伦效率,设置为1,i(τ)为锂电子电池电流,锂电子电池充电时为负、放电时为正;
ukf中建立的模型需将式(5)离散化,由于采样时间δt很小,可以代替式(5)中的积分,则式(5)重新表达为:
其中,z(k)和z(k+1)分别为k时刻、k+1时刻的soc,i(k)为k时刻的电流,cn为锂电子电池的额定容量,δt为采样时间。
优选的,步骤s6中,将传感器偏差设置为扩张状态,在原有rbfnn-ukf基础上设计扩张rbfnn-ukf,实现soc与未知传感器偏差的协同估计具体包括如下步骤:
s61:根据式(8)设计扩张rbfnn-ukf:
将电流传感器偏差设置为扩张状态,扩张进入式(3),通过在采集的电流测量值上加上一个常数,这个常数即为电流传感器偏差,则系统的状态变量与观测变量重新定义为:
其中,v(k-1)、v(k)、z(k)和z(k+1)分别为k-1时刻的电压、k时刻的电压、k时刻的soc、k+1时刻的soc,b(k)为电流传感器偏差值,由于此偏差值设置为常数,b(k+1)=b(k);
根据式(7)设计扩张ukf滤波器,实现soc与未知传感器偏差的协同估计,其状态空间模型重新表达为:
其中,f是由训练好的rbfnn确定的网络输入到输出的非线性函数,cn为锂电子电池的额定容量,δt为采样时间,uk为输入变量,即k时刻的电流,w(k)和ν(k)分别为过程噪声和测量噪声;
s62:将电流传感器偏差设置为扩张状态进行观测,通过对传感器偏差进行反馈补偿实现soc与未知传感器偏差的协同估计。
本发明的有益效果为:本发明将soc设置为内部状态,将未知传感器偏差设置为扩张状态,实现soc和传感器偏差的协同估计,具有收敛速度快、精度高、误差小的优点。
附图说明
图1为本发明具体实施方式中rbf神经网络的结构示意图。
图2为本发明具体实施方式中rbf神经网络测试效果示意图。
图3为本发明具体实施方式中基于rbf神经网络与ukf的soc估计流程示意图。
图4(a)为本发明具体实施方式中soc初始值为68.1%,rbfnn-ukf对soc的估计值与真实值的拟合效果示意图。
图4(b)为本发明具体实施方式中soc初始值为100%,rbfnn-ukf对soc的估计值与真实值的拟合效果示意图。
图5为本发明电流传感器存在偏差下,rbfnn-ukf、扩张rbfnn-ukf对soc的估计值与真实值的对比效果示意图。
图6为本发明电流传感器存在偏差下,扩张rbfnn-ukf对电流传感器偏差的估计值与真实值的拟合效果示意图。
具体实施方式
一种基于神经网络与无迹卡尔曼滤波器的锂电子电池剩余电量与传感器偏差协同估计的方法,包括如下步骤:
s1:进行锂电子电池充放电实验并采集样本数据,包含训练数据和测试数据;
s2:确定神经网络的输入和输出变量,建立soc的rbfnn模型;
s3:基于训练数据集对建立的rbfnn进行参数学习,获取准确的rbfnn模型;
s4:利用测试数据对建立的rbfnn进行独立精度检验;
s5:将soc设置为内部状态,设计rbfnn-ukf,实现在初始soc不确定的情况下对soc的实时估计;
s6:将传感器偏差设置为扩张状态,在原有rbfnn-ukf基础上设计扩张rbfnn-ukf,实现soc与未知传感器偏差的协同估计。
进一步作为优选的实施方式,所述步骤s1,具体为:
实验用不同大小的电流对锂电子电池进行充放电,保证样本数据的覆盖性,样本数据包括电池的电流、终端电压和soc数据。测量数据的采样时间设置为1秒。为了获得soc初始值,一开始将锂电子电池充电到满负荷状态,根据安时积分法计算出每时刻的soc值。
进一步作为优选的实施方式,所述步骤s2,具体为:
根据锂电子电池充放电实验采集的数据,将k-1时刻的电压数据、k时刻的soc数据、k时刻的电流数据作为神经网络的输入,k时刻的电压数据作为神经网络的输出,从而建立rbf神经网络。
图1为rbf神经网络结构图。所述的rbf神经网络具有三层结构——输入层、隐含层、输出层。其中,隐含层每个神经元的激活函数为径向基函数(一般为高斯函数),即:
其中,
其中,f为rbfnn输入到输出的非线性函数,w0为阈值,wi=[w1,w2,...,wn]t为隐含层至输出层的权值向量,m为隐含层神经元数目。
进一步作为优选的实施方式,所述步骤s3,具体包括:
s31:利用已知的电流、电压和soc训练数据对建立的rbfnn进行参数学习;
s32:根据训练好的rbfnn,确定了最优的隐含层神经元数为73个、基宽为0.8326,获取准确的rbfnn模型。
进一步作为优选的实施方式,所述步骤s4,具体为:
利用测试数据对建立的rbfnn进行独立精度检验。图2将电压估计值与真实电压值比较,而网络输出电压与真实值误差很小,验证了所建立的网络模型的准确度。
进一步作为优选的实施方式,所述步骤s5,具体包括:
s51:根据式(4)设计rbfnn-ukf:
基于训练好的rbfnn模型设计ukf,将k-1时刻的电压、k时刻的soc分别作为第一、第二状态变量、k时刻电流作为输入变量,k时刻电压作为观测输出。则系统的状态变量与观测变量定义为:
其中,v(k-1)、v(k)、z(k)和z(k+1)分别为k-1时刻的电压、k时刻的电压、k时刻的soc、k+1时刻的soc。每个时刻的soc值通过安时积分法获得。
根据式(3)设计ukf滤波器,其状态空间模型表达为:
其中,uk为ukf的输入变量,即k时刻的电流。f是由训练好的rbfnn确定的网络输入到输出的非线性函数,cn为锂电子电池的额定容量,δt为采样时间。w(k)和ν(k)分别为过程噪声和测量噪声。
s52:将soc设置为内部状态进行观测,通过对soc进行反馈补偿实现在初始soc不确定的情况下对soc的实时估计。
所述的安时积分法获得soc的计算方法为:
其中,z(t)和z(t0)分别为t时刻soc和soc初始值,cn为锂电子电池的额定容量,ηi为库伦效率,设置为1。i(τ)为锂电子电池电流,锂电子电池充电时为负、放电时为正。
ukf中建立的模型需将式(5)离散化,由于采样时间δt很小,可以代替式(5)中的积分,则式(5)重新表达为:
其中,z(k)和z(k+1)分别为k时刻、k+1时刻的soc,i(k)为k时刻的电流,cn为锂电子电池的额定容量,δt为采样时间。
图3为基于rbf神经网络与ukf的估计soc流程图。利用ukf滤波器估算锂电子电池soc时,先对状态变量初始化后,算法在每一个采样周期内对电池的soc进行预测和更新。同时,根据误差协方差的大小,卡尔曼增益会不断调节,反馈回来修正估算误差。随着时间累积,算法循环次数增加,soc估计值不断向真实值靠近。
图4(a)、(b)分别为soc初始值为68.1%、100%时,rbfnn-ukf对soc的估计值与真实值的拟合效果图。从图中可以看出,在初始soc未知的情况下,rbfnn-ukf估计的soc在50秒内很快收敛到真实值,证明了设计的rbfnn-ukf对不同初始情况具有很好的鲁棒性。
进一步作为优选的实施方式,所述步骤s6,具体包括:
s61:根据式(8)设计扩张rbfnn-ukf:
将电流传感器偏差设置为扩张状态,扩张进入式(3)。通过在采集的电流测量值上加上一个常数,这个常数即为电流传感器偏差,设置为100ma。则系统的状态变量与观测变量重新定义为:
其中,v(k-1)、v(k)、z(k)和z(k+1)分别为k-1时刻的电压、k时刻的电压、k时刻的soc、k+1时刻的soc。b(k)为电流传感器偏差值,由于此偏差值设置为常数,b(k+1)=b(k)。
根据式(7)设计扩张ukf滤波器,实现soc与未知传感器偏差的协同估计。其状态空间模型重新表达为:
其中,f是由训练好的rbfnn确定的网络输入到输出的非线性函数,cn为锂电子电池的额定容量,δt为采样时间,uk为输入变量,即k时刻的电流。w(k)和ν(k)分别为过程噪声和测量噪声。
s62:将电流传感器偏差设置为扩张状态进行观测,通过对传感器偏差进行反馈补偿实现soc与未知传感器偏差的协同估计。
在电流传感器存在偏差情况下,rbfnn-ukf估计的soc必然存在较大误差,可以通过将传感器偏差设置为扩张状态,设计扩张rbfnn-ukf解决这一难题。图5为电流传感器存在偏差下,rbfnn-ukf、扩张rbfnn-ukf对soc的估计值与真实值的对比效果图。从图中可以看出,rbfnn-ukf的soc估计值有着很大的误差,而扩张rbfnn-ukf能很好地跟踪soc真实值,并且能同时快速估计出未知的传感器偏差,这一结论可以从图6看出。从而证明了所设计的扩张rbfnn-ukf在未知传感器偏差存在情况下,实现了soc与传感器偏差的协同估计。