电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)

基于 遗忘因子的最小二乘法电池参数辨识

  最小二乘法是系统辨识中最常用的一种估算方法。为了克服最小二乘法存在”数据饱和”的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forgetting Factor Recursive Least Square,FFRLS)算法进行电池模型的参数辨识。

1、二阶RC数学模型的建立

  一般来说,建立精准的电池模型我们需要考虑以下几点:该模型能够准确的描述电池的动态及静态特性;该模型复杂度较低,易于计算;该模型工程实现较为简单可行。综合考虑,我们选择二阶RC等效电路模型。为了对电池等效电路模型进行参数辨识,我们需要把电池模型转化为可应用最小二乘法辨识的数学形式。具体的递推公式可以参考电池SOC相关文献。

2、遗忘因子递推最小二乘法辨识

  利用Matlab进行编程,步骤如下:
  (1)系统初始化。

    c0 = [1 4 4 -0.057 -0.005 -0.001]';
    p0 = 10^6*eye(6,6);
    c=[c0,zeros(6,N-1)];

  (2)载入测试数据,包括k-1时刻和k-2时刻的端电压和电流值。

    I1=-I(3:95057);  %I ,k
    I2=-I(2:95056);  %I ,k-1
    I3=-I(1:95055);  %I ,k-2
    U1= V(3:95057);  %V ,k
    U2= V(2:95056);  %V ,k-1
    U3= V(1:95055);  %V ,k-2

  (3)启动递推最小二乘法。

    h=[1,y2(k),y3(k),I1(k),I2(k),I3(k)]'; 
    x=h'*p0*h+1; 
    x1=inv(x);               % 开始求K(k) 遗忘因子为0.996
    Kk=p0*h*x1;              % 求出K的值 G(n)
    d1(k)=y1(k)-h'*c0;       % 电压差
    c1=c0+Kk*d1(k);          % 求被辨识参数c 
    c0=c1;                   % 新获得的参数作为下一次递推的旧参数 
    c(:,k)=c1;               % 把辨识参数c列向量加入辨识参数矩阵的最后一列
    p1=(p0-Kk*h'*p0)/0.996;  % 求出 p(k)的值 
    p0=p1; %给下次用 

  (4)根据含遗忘因子的递推最小二乘法,得出常数项k1~k5。

    k0=c(1,:);
    k1=c(2,:);
    k2=c(3,:);
    k3=c(4,:);
    k4=c(5,:);
    k5=c(6,:);

  (5)根据递推公式分别求得极化电阻R1-R2,欧姆内阻R0,极化电容C1-C2。

    R0 = a;
    pp = tao1 - tao2;
    R1 = (tao1.*d+R0.*c-R0.*tao1-e)./pp;
    R2 = d - R0 - R1;
    C1 = tao1./R1;
    C2 = tao2./R2;

  (6)绘图。

    figure(1)
    i=1:N; 
    plot(i,R0)
    figure(2)
    i=1:N; 
    plot(i,R1)
    figure(3)
    i=1:N; 
    plot(i,R2)
    figure(4)
    i=1:N; 
    plot(i,C1)
    figure(5)
    i=1:N; 
    plot(i,C2)

3、实验结果及分析

  电路模型参数辨识结果如下图所示。
电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)_第1张图片
电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)_第2张图片
电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)_第3张图片
  在模拟工况情况下,辨识前一阶段,电路模型参数变化较为剧烈,这是因为模型参数初值的选取差异和其初值的较大偏差造成的,辨识中后期各参数的辨识值变得较为平缓,此时辨识的参数较为准确。同时,也为后面的工作打下良好的基础。因而可以说明,针对二阶RC模型,利用FFRLS算法进行模型参数在线辨识较为精确。

4、常见问题

4.1、激励要求

  在参数辨识过程中存在一个非常明显的问题:往往我们需要辨识的参数个数大于被提供用于参数辨识的激励。以二阶RC等效电路为例,我们需要辨识欧姆内阻、传荷过程和扩散过程的参数,而后两者每个都包含两个参数,导致我们做该模型辨识时,只有电流和电压两个输入作为模型激励,却需要辨识5个参数结果。在更高阶的等效电路模型或者更复杂的电池模型中这个问题会更加严重。因此,某些情况下,导致RC环节参数无法准确辨识甚至无法收敛,乃至出现负数的情况。
  另外不同的激励条件(不同的电池测试工况)也会带来不同的参数辨识结果。比如:如果使用短时间的直流脉冲数据进行参数辨识,则锂电池中存在的扩散环节的作用无法充分体现,导致参数辨识算法对扩散环节的辨识存在极大的误差。所以,在参数辨识过程中,对激励的选择也是十分重摇的。

4.2、数值计算

  在电动汽车的动力电池系统中,电流偏移量可能是几百安培的数量级,而电压偏移量则是几伏的数量级。试图避免数值问题所采取的一项有效措施是缩放信号,使得它们在同一数量级。因此,用输入电流和电压的最大值来缩放输入电流和电压的方法被认为是解决数值问题的有效方法。

4.3、模型特性的多尺度问题

  电池在电流作用下的电压响应中包含快速响应环节,也包含缓慢变化环节,即电池的动态特性分布在一个较宽的频率范围之内。为了适应这种情况,一般确立的二阶RC等效电路模型中两个RC环节具有明显不同的时间常数,描述双电层效应导致的环节与扩散效应导致的环节时间常数相差较大。

5、总结

  综上所述,电池参数辨识的过程中会遇到各种各样的问题,当我们面对问题时一定要耐心的对待,切勿急躁,相信过程一定会找到相应的解决办法。(备注:需要本期文章试验数据和模型的同学可以联系QQ:2057034985或者关注微信公众号:xinnengyuanqiche666学习更多相关知识)

你可能感兴趣的:(电池参数辨识,二阶RC)