基于递推最小二乘法的电池模型参数在线辨识(一阶等效电路模型)

一、一阶等效电路模型

离散化过程域在这里插入图片描述
时域——>s域——>z域

二、递推最小二乘法

很多论文中会有关于递推最小二乘法的推导过程,如果想细致了解一下,可以跟着推一下,不理解也可以,可以拿来直接用也无妨。
最小二乘法公式

三、程序编写

clear all
clc
Matrix=xlsread('E:\Matlabyuan\Practice\RLS\DST_25_A123.xlsx');
s=length(Matrix);
Ud=Matrix(:,4);%第四列的数据,电压量,列向量
I=Matrix(:,3);%第三列的数据,电流量,列向量
t=Matrix(:,2);
%初始化
Phi(:,1)=[0 0 0]';
theta(:,1)=[0 0 0]';
Lamda=1;%遗忘因子
P=10000*eye(3,3);%函数eye(3,3):生成3*3的单位矩阵
SOC(1)=1;
for i=2:s
    
    SOC(i)=SOC(i-1)+I(i-1)*(t(i)-t(i-1))/(1.1*3600);
    
end
for i=1:s
    Uoc(i)=(334.0856*SOC(i)^7-1299.6*SOC(i)^6+2048.6*SOC(i)^5-1679*SOC(i)^4+763.6108*SOC(i)^3-190.4243*SOC(i)^2+24.1076*SOC(i)+2.0087);
    U(i)=Ud(i)-Uoc(i);
end
for k=2:s
    Phi(:,k)=[U(k-1) I(k) I(k-1)]';
    e(k)=U(k)-Phi(:,k)'*theta(:,(k-1));
    K=P*Phi(:,k)/(Lamda+Phi(:,k)'*P*Phi(:,k));
    P=(P-K*Phi(:,k)'*P)/Lamda;
    theta(:,(k))=theta(:,(k-1))+K*e(k);%θ矩阵[C1 C2 C3]',是3行、s列的矩阵
    c1=theta(1,:);
    c2=theta(2,:);
    c3=theta(3,:);
end
for i=1:s
    R0(i)=(c2(i)-c3(i))/(1+c1(i));
    R1(i)=(c2(i)+c3(i))/(1-c1(i))-R0(i);
    C1(i)=((1+c1(i))/(2-2*c1(i)))/R1(i);
end
figure(1)
plot(SOC,R0,'r-', 'LineWidth', 2)
xlabel('SOC');
ylabel('R0');
title('R0结果');
figure(2)
plot(SOC,R1,'b-', 'LineWidth', 2)
xlabel('SOC');
ylabel('R1');
title('R1结果')
figure(3)
plot(SOC,C1,'g-', 'LineWidth', 2)
xlabel('SOC');
ylabel('C1');
title('C1结果')	

四、仿真结果的验证

仿真验证等效电路图
本文采用的数据集是公开数据集,辨识的过程使用的是DST工况,之后又在simulink中搭建等效电路,验证辨识参数的准确性,使用DST工况作为输入,当然也可以使用其他工况进行验证。结果如下
在这里插入图片描述
模拟的电压与实际电压基本吻合,可能会存在一些误差,总体趋势相同,证明辨识结果的合理性。
注:辨识得到的参数还可以继续优化,之后如果继续学习,还会做一下优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值