新电池包和老电池包的热分析
此示例说明了如何评估新锂离子电池包和寿命终止 (EOL) 锂离子电池包。随着电芯的使用和时间推移,由于在阳极表面形成固体电解质界面 (SEI) - 一种钝化层,电芯的容量会下降,电阻会增加。您必须从电源、性能和包装方面设计电池包组件,以满足 EOL 时保修标准。此示例根据包装对 400V 电池包的 EOL 热性能进行分析。
构建电池包
要构建此示例中使用的电池包,请按照 构建具有电芯老化的电池包的模型 示例中的步骤操作,并在工作目录中生成 batt_PackCellAgingModelLib SLX 文件。该 SLX 文件包含用于电池电芯老化应用的电池包模型。该电池包由五个模组组件组成。每个模组组件都包括五个模组。每个电池模组有 12 个电芯。电池包的寿命为 1000 次循环。

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)')

对于老化的电芯,其最高电芯温度比新电池组的最高电芯温度高出近 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])

该图显示了新电池包和旧电池包的冷却液流开关开启时间。在老化的电池包内,由于电芯比新电池包更热,电池控制器会更早地启动冷却液泵。由于冷却液泵启动较早,泵的功耗较高。
实时仿真结果
本示例在配备 Intel(R) 3.5 GHz i7 多核 CPU 的 Speedgoat Performance 实时目标机上进行了测试。该模型可以以 40 毫秒的步长实时运行。