基于遗忘因子递推最小二乘法辨识一阶RC等效电路模型

在这里插入图片描述

%% 基于一阶RC等效电路模型实现不同倍率下电模型参数辨识
clear
clc

%% 载入实验数据
% 导入hppc实验数据
load('hppc_pulse_25deg')
temp = hppc_pulse_25deg;
% 导入电池ocv_soc
load('ocv_soc')
% 电池在不同温度点下的容量分别为
capacity = [7.8983 8.3174 8.6708 8.611];
% 当前实验温度下电池容量
Cn = capacity(3);
% 当前温度下电池ocv
ocv = ocv_soc(3,:);
SOC = [1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0];
% 选择辨识倍率片段
pulse = temp.pulse_1C;

%% 迭代辨识电模型参数
para = zeros(3,9);          %电模型参数矩阵
for k = 1:9
    % 提取不同SOC下的脉冲片段
    pulse_part = pulse(1+621*(k-1):621+621*(k-1),:);
    I = pulse_part(:,2);    %电流,规定电流方向为放电为负,充电为正
    V = pulse_part(:,3);    %电池端电压
    soc = pulse_part(:,4);  %电池SOC
    L_data = length(I);     %数据长度
    %平滑插值获取OCV
    Uocv = spline(SOC,ocv,soc);         
    Ud = V-Uocv;            %将端电压和开路电压的差值视为一个新变量
    % RLS参数初始化
    u = 0.99;               %遗忘因子
    Phi = zeros(1,3);       %数据向量
    thita = zeros(3,1);     %参数向量
    P = 1e6*eye(3);         %协方差矩阵
    K = zeros(3,1);         %增益矩阵
    % RLS递推过程
    for k1 = 2:L_data
        Phi = [-1*Ud(k1-1) I(k1,:) I(k1-1,:)];
        K = P*Phi'/(Phi*P*Phi'+u);
        thita = thita+K*(Ud(k1)-Phi*thita);
        P = (eye(3)-K*Phi)*P/u;
    end
    c1 = thita(1);
    c2 = thita(2);
    c3 = thita(3);
    % 手动推导电模型参数计算公式
    R0 = (c2-c3)/(1-c1);
    R1 = (c2+c3)/(1+c1)-R0;
    C1 = ((1-c1)/(2*c1+2))/R1;
    para(:,k) = [R0 R1 C1]';
end

参数辨识结果

基于遗忘因子递推最小二乘法辨识的一阶RC等效电路模型参数如下表所示:
在这里插入图片描述
图2 25度一阶RC等效电路模型辨识结果
在这里插入图片描述
图3 25度不同倍率下的欧姆内阻R0
在这里插入图片描述
图4 25度不同倍率下的极化内阻R1
在这里插入图片描述
图5 25度不同倍率下的极化电容C1
更多内容请关注【Future Car】。
在这里插入图片描述

  • 19
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值