分析快速充电过程中电池空间温度变化
此示例显示了电池快速充电过程中电池表面温度梯度的变化情况。快速充电是推动电池电动汽车普及的关键技术之一。快速充电会在电池内部推动大量电流。该过程会产生大量的热。了解电池内部温度的空间分布及其对长期保修的影响至关重要。通常情况下,为了确保电池寿命长且性能衰减均匀,电池电芯表面的温差不应超过 5 至 6 摄氏度。此示例使用 Simscape™ Battery™ 对电芯的电气动态特性进行建模,并使用 Partial Differential Equation Toolbox™ 生成描述电池三维热模型的简化模型 (ROM)。此示例使用 50 安培小时电池(Valence:U27_36XP
),从初始荷电状态 (SOC) 为 15% 开始充电 10 分钟。然后,该示例分析电芯温度的最大梯度。
构建电池模型
为了实现最佳的使用寿命和安全性,电动汽车上的电池应保持在 20 至 35 °C 之间。为避免性能下降不均匀,必须尽可能降低电池电芯表面的温度梯度。不均匀的性能衰减导致电池的放电速度快于制造商的规格。
预参数化电池
此图显示了如何使用可用的预参数化对 Battery (Table-Based) 模块进行参数化。有关 Simscape Battery 的 Battery (Table-Based) 模块中所有可预设参数的组件的完整列表,请参阅 Predefined Parameterization。
在此示例中,从 Simscape Battery 库中的预参数化 Battery (Table-Based) 模块中选择了 Valence:U27_36XP
电池。Valence:U27_36XP
电池的尺寸为:宽度 306 毫米,厚度 172 毫米,高度 225 毫米。正极和负极是电池外壳顶部的六角形端口。在此示例中,由于有足够的数据,因此假设外壳厚度(3 mm)和选项卡尺寸为已知。
使用 Partial Differential Equation Toolbox™ 模型电池热行为
来自 Partial Differential Equation Toolbox 的 ROM 对电池热行为进行了空间建模。
要构建用于仿真的电池三维模型,请运行 sscv_setupROMmodelForSimscape
MLX 文件,该文件使用 Partial Differential Equation Toolbox 从详细的三维表示生成 ROM。sscv_setupROMmodelForSimscape
MLX 文件包含用于定义电池尺寸、指定初始条件和边界条件的参数。所有电池边界均为绝热边界,底部表面除外。底部表面使用函数声明基于热阻的边界设置。
电池分为卷芯部分、电池电芯选项卡和外壳。sscv_setupROMmodelForSimscape
MLX 文件定义了这些电池区域的热属性集。每个地区都有自己独立的热量产生定义。电损耗使用 Simscape Battery (Table-Based) 库组件模块计算。预参数化电池模块的电池电化学损失是卷芯部分的输入热源。选项卡“热源”根据其电阻、流过电池的电流以及在连接点定义的焊接电阻计算得出。该外壳不产生任何热量。自定义组件将电池热模型整合到 Simscape 中。要生成可导出到 Simscape 的 ROM,请运行 sscv_setupROMmodelForSimscape
MLX 文件。此示例使用存储在 sscv_BatteryCellSpatialTempVariation_rom
MAT 文件中的预生成 ROM。
load('sscv_BatteryCellSpatialTempVariation_rom.mat');
要更新或运行 ROM,在 MATLAB® 命令行窗口中,运行:
edit sscv_setupROMmodelForSimscape.mlx
pde_rom
工作区变量包含与定义电芯热模型的 Partial Differential Equation Toolbox 中的 ROM 相关的所有数据。prop
结构定义了 pde_rom
变量中电池的所有物理参数:
pde_rom.prop
ans = struct with fields:
initialTemperature: 300
cellTab_weldR: 7.5000e-04
coolingArea_sqm: 0.0526
cell_width_mm: 306
cell_thickness_mm: 172
cell_height_mm: 225
cellCasing_thickness_mm: 5
cellTab_height_mm: 8
cellTab_radius_mm: 9
volume: [1×1 struct]
cellThermalCond: [1×1 struct]
tabThermalCond: 386
casingThermalCond: 50
thermalConductivity: [1×1 struct]
density: [1×1 struct]
spHeat: [1×1 struct]
cellThermalMass: 7.0170e+03
该结构的 density
、spHeat
、thmCond
和 volume
字段包含不同电池部分(卷芯、外壳、选项卡)的材料密度、比热、热导率和体积的详细信息。电芯在平面内和垂直于平面方向的热导率 [W/m.K] 为:
pde_rom.prop.cellThermalCond
ans = struct with fields:
inPlane: 80
throughPlane: 2
pde_rom.prop.thmCond.Jelly
参数用于设置电池热导率的方向性。电池底部冷却面积为:
pde_rom.prop.coolingArea_sqm
ans = 0.0526
要可视化电池,在 MATLAB 命令行窗口中,输入:
figure("Name","sscv_BattSpatialTempVar") pdegplot(pde_rom.Geometry,FaceAlpha=0.3); hold on plot3(pde_rom.thermocouples.probe_locations(1,:),... pde_rom.thermocouples.probe_locations(2,:),... pde_rom.thermocouples.probe_locations(3,:),... "r*",MarkerSize=5); hold off
图中的红色标记表示电池顶部安装了三个热电偶。要在任何位置添加并定义更多热电偶,请使用 sscv_setupROMmodelForSimscape.m
文件。
如果更改电池尺寸或热属性,则必须重新生成 ROM。要重新生成 ROM,请使用更新后的电池参数运行sscv_setupROMmodelForSimscape.m
文件。要编辑任何参数,请打开 sscv_setupROMmodelForSimscape.m
文件并应用您的更改。Simscape 自定义组件导出在 pde_rom
中定义的热模型。pde_rom
中的矩阵是 Simscape 自定义组件的参数,用于求解电池中的能量方程。
实现电池电气和热模型
该图显示了电池电气和热模型如何在 Simscape 中的更大电路系统中集成。
该图显示了电池电气和热建模的实现。Simscape 自定义组件 3D_ThermalModel 模块包含电池热建模的 ROM 实现。电池电气模型计算热模型的输入节点(Qcell、Qtabp、Qtabn)的损耗。
电池子系统已准备就绪,可集成到任何电路中。仿真完成后,您可以从自定义组件输出中重建三维热解决方案。冷却液控制基于 Simscape Battery 的 Battery Coolant Control 模块,根据电芯温度打开或关闭流量。
快速充电仿真
电池连接到一个 Charger 模块,该模块将充电电流输入电路。时间可变负载与电池并联,以满足冷却液泵、冷却器和加热器对辅助电源的需求。Thermal Inputs 模块中的选项参数定义了电池的电气属性。当您将此参数设置为 0
时,电池温度等于所有 PDE 节点温度的平均值。当您将此参数设置为大于 1 的任何值时,温度等于从您在选项参数中指定的索引或编号的热电偶测得的温度。这点很重要,因为热电偶安装在电池表面,而核心温度可能与热电偶的位置不同。
将快速充电的仿真时间设置为 10 分钟。
totalSimulationTime=600;
设置初始条件。
initialStateOfCharge=0.15; coolantTemperature_K=300;
根据冷却系统设计和冷却液流量确定热量去除率。
coolantThermalR=15; % W/K
根据电芯温度设置最大充电率(C 率)函数。
cellMaxCurrVec_T=[263 273 283 293 303 313]; % Temperature cellMaxCurrVec_C=[0.5 0.75 1.0 1.5 1.9 2.2];% C rate
将冷却液泵的功率损失设置为恒定值 50W。
lossAuxPowSources_W=50;
将制冷机或加热器的损失设置为冷却液与环境温度差的函数。
chillerHeaterLosses_dT=[0 20 30 40 50]; % |Tcoolant~Tambient| chillerHeaterLosses_W=[0 5 10 15 20]; % W
运行仿真。
sim('sscv_BattSpatialTempVar.slx') pde_results.pde_T_values=squeeze(... logsout_BatteryCellSpatialTempVariation.find("Tn").Values.Data);
仿真结果
绘制充电电流随时间的变化。
plot(simlog_sscv_BattSpatialTempVar.Charger.A.series.time/60,... abs(simlog_sscv_BattSpatialTempVar.Charger.A.series.values)); xlabel('Time (min)');ylabel('Current (A)'); title('Battery Charger Current');
绘制探头测量位置的温度曲线。
plot(logsout_BatteryCellSpatialTempVariation.find("Tp").Values.Time/60, ... squeeze(logsout_BatteryCellSpatialTempVariation.find("Tp").Values.Data)'); xlabel('Time (min)');ylabel('Temperature (K)'); title('Thermocouple Measurements');
根据详细的三维解中所有节点温度,绘制电池中的最大温度梯度。
plot(logsout_BatteryCellSpatialTempVariation.find("dT").Values.Time/60, ... squeeze(logsout_BatteryCellSpatialTempVariation.find("dT").Values.Data)'); xlabel('Time (min)');ylabel('Temperature difference (K)'); title('Maximum Temperature Gradient');
使用可视化 PDE 结果实时编辑器任务可视化电池电芯中的温度分布。
首先,使用 ROM 自由度、模态温度和仿真得出的时间数据构建完整的 PDE 解。
modalTemperature = squeeze(Tmodal.Data);
timeMinute = logsout_BatteryCellSpatialTempVariation.find("dT").Values.Time/60;
使用 pde_rom
中的 ROM 对象,并调用 reconstructSolution
方法来获取瞬态热结果对象。
Rtransient = pde_rom.rom.reconstructSolution(modalTemperature,timeMinute);
在实时编辑器选项卡中,选择任务 > 可视化 PDE 结果以插入任务。在任务的选择结果部分,从下拉列表中选择 Rtransient
。
% Clear temporary variables clearvars meshData nodalData
在 10 分钟的充电过程中,温度梯度最大值约为 5 度,这一数值是合理的。较高的温度梯度可能会导致冷却系统的重新设计或快速充电配置文件的更改,以限制电芯随时间推移而出现的性能不均匀现象。