一种基于粒子群优化的电池状态估计方法
技术领域
本发明属于电池状态估计领域,涉及一种基于粒子群优化的电池状态估计方法。
背景技术
在二次电池的应用中,需要对SOC等电池状态进行估计。现有的技术包括安时积分法、电压法、状态滤波法。在这些方法中,状态滤波法的长期精确度最佳。状态滤波法中较为常用的一种方法是卡尔曼滤波。
通过卡尔曼滤波进行电池状态估计时,需要获得准确的电池模型,然而目前的技术常使用固定的电池模型参数,难以适应电池使用时电池模型参数的变化。也有方法通过卡尔曼滤波同时对电池状态和电池参数进行估计,这种方法的缺陷在于,卡尔曼滤波的理论基础是线性模型,而电池系统呈现很强的非线性特性,因此卡尔曼滤波在对电池系统进行估计时精度下降。同时,如果电池模型存在多个局部最优点,卡尔曼滤波容易陷入局部最优点,因此对全局最优点的搜索能力不强。
为了对非线性的电池系统进行估计,可以采用非线性估计方法对电池参数进行估计。对于参数为连续量的电池系统,可以采用粒子群优化对电池参数进行估计。粒子群优化是模拟现实世界中鸟群觅食的一种算法,该算法对于非线性系统的估计能力较强,且有一定的全局最优点搜索能力。
发明内容
针对上述存在问题或不足,本发明提供了一种基于粒子群优化的电池状态估计方法,克服现有技术的局限性。以使得在对电池状态进行在线估计时,能够适应电池模型参数的变化,从而获得更精确的电池模型参数估计,使得电池状态的估计更加精确。
一种基于粒子群优化的电池状态估计方法,其具体步骤如下:
步骤S1、初始化粒子群,初始化状态估计器;
首先,根据模型复杂度和估计精度要求,确定粒子数量,并根据电池参数的取值范围,初始化粒子群;
然后,根据电池特性和电池初始状态,对粒子群中的每个粒子初始化一个状态估计器,每个状态估计器对应粒子群中的一个粒子;
步骤S2、对于粒子群中的每个粒子,获得状态后验估计,并比较状态后验估计的精度获得状态估计,再通过状态后验估计得到下一采样点的状态先验估计;
首先,对于粒子群中的每个粒子,根据粒子坐标获得电池参数,并根据状态先验估计,通过对应的状态估计器获得状态后验估计;
然后,计算粒子适应度,比较粒子适应度获得状态估计;
最后,根据状态后验估计,通过电池模型获得下一采样点的状态先验估计;
步骤S3、根据状态后验估计的精度,对粒子群进行演化,获得新的粒子群;
首先,根据步骤S2所得粒子适应度,更新粒子群中粒子的历史最优值;
然后,根据电池参数估计全局性的要求,选取粒子群中领袖数量,并根据粒子适应度选取粒子作为领袖;
最后,通过更新公式得到新的子种群后,合并所有子种群得到新的粒子群。
进一步的,所述步骤S3中,更新公式包括速度更新公式和坐标更新公式;
速度更新公式
坐标更新公式
其中,pi,k是粒子坐标,vi,k是粒子速度,Δtk是采样点时间间隔,ppbest,i是粒子的历史最优值,plbest是领袖的历史最优值。γv是惯性系数,α、β是加速常数,这三个系数用于控制粒子群的搜索特性,其中γv在0至1之间,γv越大,全局搜索能力越强,γv越小,局部搜索能力越强,α、β越大,则粒子对应地更多地向粒子历史最优值或领袖历史最优值搜索。这三个系数根据实际需求适当取值。u1、u2是服从N(0,1)的正态分布的随机值,u3是服从U(0,1)的均匀分布的随机值,其作用是加大坐标更新的时间间隔,减弱粒子坐标变化对粒子适应度计算的影响。是粒子适应度衰减常数,在0至1之间取值。
进一步的,所述步骤S2中,粒子适应度的计算公式为
其中是粒子适应度,是粒子适应度衰减常数,在0至1之间取值。Δtk是采样点时间间隔,yk是电压测量值,是电压预测值。
进一步的,还包括一个步骤S4:重复步骤S2、S3,以持续对电池状态作出估计。
本发明在对电池进行状态估计时,通过粒子群优化,得到电池参数的估计,且当电池模型有多个局部最优点时,相比于局部优化方法更容易得到电池模型的全局最优估计,从而使得状态滤波得到的电池状态估计更加精确。
综上所述,本发明在对电池状态进行在线估计时,能够适应电池模型参数的变化,从而获得更精确的电池模型参数估计,使得电池状态的估计更加精确。
附图说明
图1为本发明的整体流程图;
图2为本发明步骤S1的细节流程图;
图3为本发明步骤S2的细节流程图;
图4为本发明步骤S3的细节流程图;
图5为实施例获得的状态估计曲线,其中,SOC估计95%置信上限、SOC估计95%置信下限根据状态误差协方差矩阵估计计算获得;
图6为实施例获得的电压预测值曲线与电池电压曲线。
具体实施方式
下面结合附图及实施例,对本发明进行进一步详细说明。
参阅图1,一种基于粒子群优化的电池状态估计方法可分为以下步骤:
步骤S1:初始化粒子群,根据模型复杂度和估计精度要求,确定粒子数量,并对于粒子群中每个粒子初始化一个状态估计器,每个状态估计器对应一个粒子群中的粒子。
参阅图2,步骤S1具体包括步骤S11~S12。
步骤S11:根据模型复杂度和估计精度要求,确定粒子数量,并根据电池参数的取值范围,初始化粒子群。
本发明方法可用于不同电池模型的估计。实际应用时,粒子群的粒子数量应根据模型复杂性及所需的估计精度进行确定。粒子数量越高,估计精度越好,但计算量也越高。本实施例中,使用一阶滞变RC模型,一共初始化100个粒子构成粒子群。电池参数包括放电内阻R+、充电内阻R-、滞变常数γ、滤波器常数α1、α2、g1、g2。其中,γ大于0,α1、α2在0到1之间。根据经验或历史数据,获得关于电池参数的取值范围的估计,根据电池参数的取值范围初始化粒子群。单个粒子的初始坐标为
其中,k为采样点编号,下标min、max表示各参数的取值范围的最小值和最大值,γ0是与γ相关的值,|γ0|=γ,用于限制粒子群中γ为非负值,ζ1,min、ζ1,max、ζ2,min、ζ2,max是与α1、α2的最小、最大值相关的值,|ζi,minormax|=-logai,maxormin,i=1,2,用于限制粒子群中α1、α2值的范围至(0,1],u是与粒子坐标维数相同的随机向量,其各元素服从相互独立的U(0,1)的均匀分布。符号代表元素相乘。
单个粒子的初始速度通过随机分布进行初始化,
其中r是与粒子坐标维数相同的随机向量,各元素期望为0。单个粒子初始速度也可以设为0。本发明实施例中,单个粒子的初始速度vi,k设为0。
步骤S12:根据电池特性和电池初始状态,对粒子群中的每个粒子初始化一个状态估计器,每个状态估计器对应一个粒子群中的粒子。
本实施例中,采用卡尔曼滤波器作为状态滤波器。对于任意一个卡尔曼滤波器,初始化其状态先验估计状态误差协方差矩阵先验估计
其中,k是采样点编号,是SOC先验估计,通过测量电池初始静置电压,根据开路电压函数得到初始估计,是滞变先验估计,这里初始估计为0,为滤波器状态先验估计,这里初始估计为0。是对应的状态误差协方差先验估计,其取值大于0。
步骤S2:对于粒子群中的每个粒子,根据粒子坐标获得电池参数,并通过对应的状态估计器获得状态后验估计,计算粒子适应度,比较粒子适应度获得状态估计,最后通过状态后验估计得到下一采样点的状态先验估计。
参阅图3,步骤S2具体包括步骤S21~S23。
步骤S21:对于粒子群中的每个粒子,根据粒子坐标获得电池参数,并根据状态先验估计,通过对应的状态估计器获得状态后验估计。
本实施例中,对于粒子pi,k,有
pi,k=[R+ R- γ0 ζ1 ζ2 g1 g2]
根据粒子pi,k得到电池参数,即放电内阻R+、充电内阻R-、滞变常数γ=|γ0|、滤波器常数α1=exp(-|ζ1|)、α2=exp(-|ζ2|)、g1、g2。
由电池参数得到卡尔曼滤波的状态方程
输出方程
状态矩阵
输出矩阵
Ck=[OCV′(zk) 1 g1 g2]
其中,ik是电池电流,通过测量获得,Δtk是采样周期,可通过测量获得,或取为固定值,Cn是电池容量,通常通过标称或放电测试获得,M(z)是电池最大滞变函数,即电池充分充电至一定SOC后的开路电压与电池充分放电至该SOC后的开路电压的差值关于SOC的函数,通常通过充放电测试获得,M′(z)是M(z)关于z的导数,sgn(·)是符号函数,yk是电池电压,通过测量获得,OCV(z)是电池开路电压函数,即排除滞变影响后电池开路电压关于SOC的函数,通常通过充放电测试获得,OCV′(z)是OCV(z)关于z的导数。
得到卡尔曼增益
其中,Ev为输出噪声协方差,根据测量仪器的精确度、输出方程的精确度以及输出噪声的大小综合确定。
根据输出方程得到电压预测值
从而得到状态后验估计
以及状态误差协方差矩阵后验估计
步骤S22:计算粒子适应度,比较粒子适应度获得状态估计。
本实施例中,对于任一粒子,其粒子适应度为
其中是粒子适应度,是粒子适应度衰减常数,在0至1之间取值。表征了粒子对应状态滤波器在一定时间内电池电压估计的精度,可以表征状态后验估计的精度。越小,说明状态后验估计的精度越高。以最小的粒子对应的状态后验估计、状态误差协方差矩阵后验估计作为状态估计、状态误差协方差矩阵估计。由上述估计可以获得电池SOC的估计以及对电池SOC估计的精度的估计。
步骤S23:根据状态后验估计,通过电池模型获得下一采样点的状态先验估计。
本实施例中,根据状态方程得到下一采样点的状态先验估计为
其中
分别是的各分量。
又根据状态矩阵得到下一采样点的状态误差协方差矩阵先验估计为
其中,Ew为状态噪声协方差矩阵,其各分量值根据状态方程的精确度及误差相关性综合确定。
步骤S3:根据步骤S2所得粒子适应度,对粒子群进行演化,获得新的粒子群。
参阅图4,步骤S3具体包括步骤S31~S33。
步骤S31:根据粒子适应度,更新粒子群中粒子的历史最优值。
本实施例中,根据状态后验估计的精度,即粒子适应度将粒子群中各粒子排序,将各粒子的名次与历史名次比较,若名次上升,则将当前粒子坐标作为粒子历史最优值。然后,将各粒子的名次作为新的历史名次。
步骤S32:根据电池参数估计全局性的要求,选取粒子群中领袖数量,并根据粒子适应度选取粒子作为领袖。
领袖粒子数量的选取根据系统的局部最优点数量确定,局部最优点越多,对全局搜索性能要求越大,则领袖粒子数量越大。
本实施例中,将100个粒子分为10个子种群,其方法为,选取粒子适应度最高的10个粒子作为子种群的领袖,依次选取剩余粒子中粒子适应度最低的9个粒子与粒子适应度最高的一个领袖一同构成一个子种群。
步骤S33:通过更新公式得到新的粒子群。
本发明实施例中,对于每个子种群,各粒子为pi,k,各粒子速度为vi,k,各粒子历史最优值为ppbest,i领袖历史最优值为plbest,则更新公式包括速度更新公式
以及坐标更新公式
其中,γv是惯性系数,α、β是加速常数,这三个系数用于控制粒子群的搜索特性,其中γv在0至1之间,γv越大,全局搜索能力越强,γv越小,局部搜索能力越强,α、β越大,则粒子对应地更多地向粒子历史最优值或领袖历史最优值搜索。这三个系数根据实际需求适当取值。u1、u2是服从N(0,1)的正态分布的随机值,u3是服从U(0,1)的均匀分布的随机值,其作用是加大坐标更新的时间间隔,减弱粒子坐标变化对粒子适应度计算的影响。
通过更新公式得到新的子种群后,合并所有子种群得到新的粒子群。
完成上述步骤后,重复步骤S2、S3,以获得电池状态的实时估计。
图5为实施例获得的状态估计曲线,其中,SOC估计95%置信上限、SOC估计95%置信下限根据状态误差协方差矩阵估计计算获得;图6为实施例获得的电压预测值曲线与电池电压曲线。
通过图5、图6可以看出本发明所述方法能较好地对电池状态进行估计。