电池二阶等效电路模型(Simulink&MATLAB脚本)

电池二阶等效电路模型

电池二阶等效电路模型

1. 模型结构

该电路模型包含了以下主要部分:

  • R 0 R_0 R0:电池的内阻,表示电池的总内阻。
  • R 1 R_1 R1, R 2 R_2 R2 C 1 C_1 C1, C 2 C_2 C2:这些元件构成了一个由两个RC串联组成的电路。这两个电容 C 1 C_1 C1 C 2 C_2 C2模拟了电池的不同能量存储过程,而电阻 R 1 R_1 R1 R 2 R_2 R2描述了电池在不同放电阶段的电流损耗。
  • U 1 U_1 U1 U 2 U_2 U2:分别表示两个RC电路部分的电压。
  • 电池的输出电压 V m d l V_{mdl} Vmdl:这是通过模型计算的电池电压。

2. 电路方程

模型的电流、电压关系可以通过以下方程描述:

  • 电流方程:
    C 1 d U 1 d t + U 1 R 1 = I C_1 \frac{dU_1}{dt} + \frac{U_1}{R_1} = I C1dtdU1+R1U1=I
    C 2 d U 2 d t + U 2 R 2 = I C_2 \frac{dU_2}{dt} + \frac{U_2}{R_2} = I C2dtdU2+R2U2=I
    这两个方程分别描述了电池内部两个RC电路的电压和电流关系。第一个RC电路由电容 C 1 C_1 C1和电阻 R 1 R_1 R1组成,第二个RC电路由电容 C 2 C_2 C2和电阻 R 2 R_2 R2组成。它们共同影响电池电压的动态变化。
  • 电池输出电压方程:
    V mod = U ( soc ) − U 1 − U 2 − I R 0 V_{\text{mod}} = U(\text{soc}) - U_1 - U_2 - IR_0 Vmod=U(soc)U1U2IR0
    该方程表示电池的输出电压 V m d l V_{mdl} Vmdl,其中 U ( S O C ) U(SOC) U(SOC)是电池的开路电压, U 1 U_1 U1 U 2 U_2 U2分别表示两个RC电路的电压,而 R 0 R_0 R0是电池的内阻。
  • SOC方程:
    S O C = S O C 0 − ∫ η Q 3600 ⋅ I   d t SOC = SOC_0 - \int \frac{\eta}{Q_{3600}} \cdot I \, dt SOC=SOC0Q3600ηIdt
    与一阶模型相同,这个方程表示电池的充电状态(SOC),通过电流 I I I 和电池容量 Q Q Q 计算电池的剩余电量。

3. 应用场景

二阶等效电路模型比一阶模型更加精确,因此常用于以下领域:

  • 电池管理系统 (BMS):用于精确估算电池的电压、电流和剩余电量,并实时监控电池的健康状态。二阶模型提供了比一阶模型更高的精度,特别是在电池的充放电过程中。
  • 电动汽车 (EV):在电动汽车中,二阶模型能够更好地反映电池在不同工作状态下的性能,有助于优化电池的能量管理,提高续航里程和电池使用寿命。
  • 可再生能源系统:在太阳能或风能储能系统中,二阶电池模型用于准确模拟电池的充电和放电过程,以实现高效的能量存储和转换。
    电池健康监测:通过实时分析电池的充电状态和内部阻抗,二阶模型能够更精确地评估电池的健康状况,及时采取措施避免电池过度衰减或损坏。

4. 二阶RC等效电路模型(Simulink版)

请添加图片描述
其中fcn中设置的RMSE,来求解该模型的误差是多少

function y = fcn(u)
y = sqrt(mean(u.^2))

5. 二阶RC等效电路模型(MATLAB脚本版)

clear all
clc

% 加载电池参数和数据
load battParams.mat
load batteryData.mat

% 参数
R0 = 0.0037; % 内部电阻
R1 = 0.0045; % 等效串联电阻
C1 = 1042; % 等效电容
R2 = 0.001; % 等效串联电阻
C2 = 1000; % 等效电容

% 读取数据
time = data(:, 1); % 时间
current = data(:, 2); % 电流
voltage = data(:, 3); % 电压
t_end = time(end) - time(1); % 总时间

% 计算SOC
SOC = initialSoC*100 - cumtrapz(time,current)/3600/capacity*100;

% 插值获取开路电压
U = interp1(s0,e0,SOC);

% 初始条件
v0 = zeros(3300,1); % 初始电压
% 求解微分方程
[t, v] = ode45(@(t, v) myODE(t, v, time, current, C1, R1), [0 3300], 0);
[t2, v2] = ode45(@(t2, v2) myODE2(t2, v2, time, current, C2, R2), [0 3300], 0);

%sample time
time_sample = 0:1:time(end);
voltage_sample1 = interp1(t,v,time_sample,'linear')
voltage_sample2 = interp1(t2,v2,time_sample,'linear')

% 计算电池单元的电压
V_cell = U - current * R0 - voltage_sample1' - voltage_sample2';

%计算误差
Rmse = sqrt(mean((V_cell(1:end-2)-voltage(1:end-2)).^2))
%因为插值求得电压,voltage_sample最后两位是NaN,因此求rmse时舍掉了最后两位。

% 绘制电压随时间变化的图像
figure;
plot(time,voltage,time, V_cell);
xlabel('Time (s)');
ylabel('Voltage (V)');
title('Computed Voltage VS Actual Voltage');

function dvdt = myODE(t, v, time, current, C1, R1)
i = interp1(time,current,t)
dvdt = (1/C1)*(i - v/R1); % 描述微分方程
end

function dv2dt = myODE2(t2, v2, time, current, C2, R2)
i2 = interp1(time,current,t2)
dv2dt = (1/C2)*(i2 - v2/R2); % 描述微分方程
end

6. 总结

二阶等效电路模型通过引入更多的电容和电阻,能够更精确地描述电池的动态特性,尤其是在电池的充放电过程中。它能够更好地模拟电池的非线性行为,广泛应用于电池管理、电动汽车、可再生能源储存等领域,帮助提高电池系统的效率和性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗子要养老

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值