主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

新电池包和老电池包的热分析

此示例说明了如何评估新锂离子电池包和寿命终止 (EOL) 锂离子电池包。随着电芯的使用和时间推移,由于在阳极表面形成固体电解质界面 (SEI) - 一种钝化层,电芯的容量会下降,电阻会增加。您必须从电源、性能和包装方面设计电池包组件,以满足 EOL 时保修标准。此示例根据包装对 400V 电池包的 EOL 热性能进行分析。

构建电池包

要构建此示例中使用的电池包,请按照 构建具有电芯老化的电池包的模型 示例中的步骤操作,并在工作目录中生成 batt_PackCellAgingModelLib SLX 文件。该 SLX 文件包含用于电池电芯老化应用的电池包模型。该电池包由五个模组组件组成。每个模组组件都包括五个模组。每个电池模组有 12 个电芯。电池包的寿命为 1000 次循环。

batt_PackCellAgingModel_pic.png

Module 模块对电池包模组进行冷却,Battery Coolant Control 模块控制冷却液的流量。为了分析最坏情况,电路在 30 分钟内持续接收 2C 率的电流,电流值为 54 安培。

定义参数并运行仿真

初始化电池参数。在 MATLAB® 命令行窗口中输入:

run("batt_PackCellAgingModel_param");

仿真新电池包在 2C 放电率下的恒定放电电流。

batt_PackCellAgingModelData = sim("batt_PackCellAgingModelSim");
% Post-process data
newPack_Temp = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Temperature").Values.Data;
newPack_Time = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Temperature").Values.Time;
newPack_Volt = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Voltage").Values.Data;
newPack_Curr = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Current").Values.Data;
newPack_Flow = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Flowrate").Values.Data;

仿真 EOL 电池包。每 100 个循环,电芯的端电阻 R0 参数降低 5%。在每个模组中,将 N 次放电循环后的端电阻变化(%) 参数设置为 5,将放电循环次数 N 参数设置为 100。

ModuleType1.N0Cell = 100;
ParallelAssemblyType1.N0Cell = 100;
ModuleType1.dR0Cell = 5;
ParallelAssemblyType1.dR0Cell = 5;

电池包、电池电芯和冷却系统之间的热阻会随着时间推移而下降。热阻值从新包装的 1.2 增加到老化包装的 5。

ModuleType1.CoolantThermalPathResistance = 5;
ParallelAssemblyType1.CoolantThermalPathResistance = 5;

在接近 EOL 循环(999)时初始化电池包。

end_of_life_cycles = 999;
run("batt_PackCellAgingModel_param_EOL")

以 2C 率对 EOL 电池包进行恒定放电电流仿真。

batt_PackCellAgingModelData = sim("batt_PackCellAgingModelSim");
% Post-process data
agedPack_Temp = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Temperature").Values.Data;
agedPack_Time = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Temperature").Values.Time;
agedPack_Volt = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Voltage").Values.Data;
agedPack_Curr = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Current").Values.Data;
agedPack_Flow = batt_PackCellAgingModelData.batt_PackCellAgingResults.get("Flowrate").Values.Data;

分析结果

加载 batt_PackWithCellBalancingResults MAT 文件并运行 batt_PackWithCellBalancingPlot 文件。在 MATLAB 命令行窗口中,输入:

max_temp_diff = round(max(squeeze(agedPack_Temp))-max(squeeze(newPack_Temp)),1);
disp(['Battery EOL maximum cell temperature is around ',num2str(max_temp_diff),...
    ' degree Celsius higher than the maximum cell temperature in a new pack.'])
Battery EOL maximum cell temperature is around 5.4 degree Celsius higher than the maximum cell temperature in a new pack.
figure(1)
plot(agedPack_Time,squeeze(agedPack_Volt));hold on;
plot(newPack_Time,squeeze(newPack_Volt));hold off;
legend('aged','new','Location','northeast')
ylabel('Voltage (V)')
xlabel('Time (s)')

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Voltage (V) contains 2 objects of type line. These objects represent aged, new.

对于老化的电芯,其最高电芯温度比新电池组的最高电芯温度高出近 7 摄氏度。老化电池组的电压略低于新电池组的电压。这些值表明,从 EOL 的角度来看,电池包的设计在热方面是安全的。

figure(2)
plot(agedPack_Time,squeeze(agedPack_Flow));hold on;
plot(newPack_Time,squeeze(newPack_Flow));hold off;
legend('aged','new','Location','northwest')
ylabel('Flow Rate (kg/s)')
xlabel('Time (s)')
ylim([0 0.07])

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Flow Rate (kg/s) contains 2 objects of type line. These objects represent aged, new.

该图显示了新电池包和旧电池包的冷却液流开关开启时间。在老化的电池包内,由于电芯比新电池包更热,电池控制器会更早地启动冷却液泵。由于冷却液泵启动较早,泵的功耗较高。

实时仿真结果

本示例在配备 Intel(R) 3.5 GHz i7 多核 CPU 的 Speedgoat Performance 实时目标机上进行了测试。该模型可以以 40 毫秒的步长实时运行。

另请参阅

|

主题