设计符合汽车要求的电池模组
此示例说明了如何根据电池电芯测试数据设计电池模组和冷却板。模块化电池单元是降低汽车电池包成本的良好解决方案。电池模组可帮助满足类似行业领域不同客户的需求。电池电芯通常使用脉冲放电和充电数据进行参数化。此示例使用混合脉冲功率特性 (HPPC) 测试 [1] 来估计电池欧姆电阻和其他动态电阻值。
在测试室中,对采用磷酸铁锂 (LFP) 化学成分的 A123 电芯在五种不同温度下进行了测试:、、、 和 [2]。在测试过程中,腔体内的温度保持均匀。有关测试程序和电池电芯参数化的详细信息,请参阅 表征电动汽车的电池电芯 示例。
参数化电池电芯
指定 HPPC 测试温度,单位为摄氏度。
T_vec = [0 10 25 35 45]; cellParameters = cell(1,length(T_vec));
对于每个测试温度值,运行 getInputParamLFPbattery 函数以获得所有 HPPC 参数,并绘制测试数据。要启用绘图,必须将函数的布尔标志设置为 true。使用 batteryParametersLUT 函数根据 HPPC 测试数据估计电池参数。
for valT = 1:length(T_vec) [battery, iniEstimate] = getInputParamLFPbattery(T_vec(1,valT),true); result = batt_BatteryCellCharacterization.batteryParametersLUT(... battery.TestData,battery.CellData,battery.PulseVal,... iniEstimate.numRCshort,iniEstimate.RCshort,... iniEstimate.numRClong,iniEstimate.RClong,... "fminsearch", false); cellParameters{1,valT} = exportResultsForLib(result,0:1e-3:1,false); end

*** Number of discharge pulses =9 *** Number of charge pulses =9 *** Number of SOC sweep pulses =8

*** Number of discharge pulses =9 *** Number of charge pulses =9 *** Number of SOC sweep pulses =8

*** Number of discharge pulses =9 *** Number of charge pulses =9 *** Number of SOC sweep pulses =8

*** Number of discharge pulses =9 *** Number of charge pulses =9 *** Number of SOC sweep pulses =8

*** Number of discharge pulses =9 *** Number of charge pulses =9 *** Number of SOC sweep pulses =8
cellModel 工作区变量存储了在 Simscape™ Battery™ 中对 Battery (Table-Based) 模块进行参数化所需的所有数据。
cellModel = getBatteryTableBasedParams(T_vec,cellParameters,"long",... [iniEstimate.numRCshort iniEstimate.numRClong]);






存储在 cellModel 工作区变量中的 Battery (Table-Based) 参数为:
温度值向量
荷电状态值向量
开路电压
充电过程中的端电阻
放电过程中的端电阻
电芯容量
电芯动态特性 - 所有 RC 对的极化电阻和时间常数
您可以在 cellModel 结构体中指定其他相关的电池参数。
cellModel.Dim.Height = 0.195; % Battery cell height cellModel.Dim.Width = 0.150; % Battery cell width cellModel.Dim.Thickness = 0.020; % Battery cell thickness cellModel.Dim.Mass = 0.4; % Battery cell mass cellModel.Dim.Cp = 800; % Battery cell heat capacity clearvars -except cellModel
构建电池模组
电池电芯在充电或放电时会产生热量。您必须安装冷却板以散热,并确保电池在运行期间保持在合理温度范围内。下表列出了关键的设计要求以及如何指定电池模组参数以满足这些要求:
要求 | 模型参数 |
在 100 A 的恒定电流下快速充电 20 分钟,然后操作电池模组。 HPPC 脉冲幅度为 40 A。对于 100 A 的电流,必须至少并联连接三个电芯。 |
|
为防止电芯过热,电芯温度的最大上升幅度必须低于或等于 10 摄氏度。将此要求设置得尽可能低。 |
|
模组内的最大温度梯度不得超过 5 摄氏度。电芯必须保持均匀衰减。将此要求设置得尽可能低。 |
|
冷却液的泵送要求必须较低,且模组的泵送要求必须低于 20 kPa。 |
|
电池模组由五个串联单元组成,每个单元由三个并联电芯组成,共计 15 个电芯。
% Specify the number of cells in the parallel set. numCells_p = 3; % Specify the number of series-connected parallel set. numCells_s = 5; % Specify the maximum acceptable temperature gradient in the battery module. requirements.MaxModuleTgrad = 5; % Specify the maximum acceptable temperature rise within the battery module. requirements.MaxCellTempInc = 10; % Specify the maximum acceptable pressure drop for the module cooling system. requirements.MaxPressureDrop = 20000;
加载预生成的电池模组库。
batteryLFP = load('BattDetailedModuleLFP.mat');要更新预生成的电池库模块,请使用 buildBatteryModule 函数。在 MATLAB® 命令行窗口中输入:
% If you already have BattDetailedModuleLFP library folder in your working directory, % then you must delete it before running this code. [~,moduleDetailed] = buildBatteryModule(numCells_s,numCells_p,cellModel); buildBattery(moduleDetailed,'LibraryName','BattDetailedModuleLFP',... 'MaskParameters','VariableNamesByInstance'); moduleLFP = load('BattDetailedModuleLFP.mat');
绘制电池模组。
battDetailedPlot = batteryChart(batteryLFP.Detailed);
title(battDetailedPlot,"Detailed Battery Model");
初始化详细电池模组模块的参数。
run('BattDetailedModuleLFP_param');参数化电池模组
根据上一节中定义的电芯参数设置模组参数。
run('setBattModuleLFPcell_param');通过指定 thermal_massCellPercentDeviation 值来设置电池电芯的热质量变化。
thermalMassPercentDev = load("BattDetailedModuleCellVar.mat");
Detailed.thermal_massCellPercentDeviation = thermalMassPercentDev.cellToCell;设计模组的冷却系统
此例中的电池模组采用 Parallel Channels 冷却板。设置并联通道冷却板的参数。
run('setBattModuleCoolingPlate_param');设置工作参数。
chargingParams.SOC = 0.05; % Initial battery state of charge chargingParams.T = 300; % Initial battery temperature, K chargingParams.I = 100; % Charging current, A chargingParams.time = 1200; % Charging time, s chargingParams.CoolT = 300; % Coolant inlet temperature, K chargingParams.Flow = 3; % Flowrate, lpm
您必须运行一个试验设计来估计冷却板的所需参数。设置冷却通道数量、通道直径和适用冷却液流量的选项。定义平行通道冷却板的设计参数。
designParams.NumChannelOptions = [2 3 4]; designParams.FlowrateOptions = [1 3 5]; designParams.ChannelDiaOptions = [1.5e-3 2e-3 2.5e-3];
要运行全因子设计选项,在 MATLAB 命令行窗口中,输入:
simResults = getBattModuleThermalDesign(designParams, chargingParams, thermalMassPercentDev.cellToCell); save battModuleLFPsimResults.mat simResults
加载仿真结果。
load('battModuleLFPsimResults.mat');选择符合要求的仿真。
selectData = simResults.("Max. Gradient Tcell") <= requirements.MaxModuleTgrad &... simResults.("Pressure Drop") <= requirements.MaxPressureDrop &... simResults.("Max. Tcell") - chargingParams.T <= requirements.MaxCellTempInc; goodDesignPoints = simResults(selectData,:)
goodDesignPoints=2×6 table
Max. Gradient Tcell Max. Tcell Pressure Drop Num. Channels Flowrate Channel Diameter
___________________ __________ _____________ _____________ ________ ________________
1.5143 309.71 18024 2 1 0.002
0.39745 309.07 13021 3 1 0.002
根据电芯温度上升的最低值选择最终设计。
[~,bestOptionID] = min(goodDesignPoints.("Max. Tcell"));
finalDesign = goodDesignPoints(bestOptionID,:)finalDesign=1×6 table
Max. Gradient Tcell Max. Tcell Pressure Drop Num. Channels Flowrate Channel Diameter
___________________ __________ _____________ _____________ ________ ________________
0.39745 309.07 13021 3 1 0.002
disp(strcat('Select coolant plate with #Channels=',num2str(finalDesign.("Num. Channels")),', ChannelDia=',num2str(finalDesign.("Channel Diameter")*1000),'mm.'));
Select coolant plate with #Channels=3, ChannelDia=2mm.
该参数化冷却板非常适合该要求。
参考资料
Christophersen, Jon P. Battery Test Manual For Electric Vehicles, Revision 3.United States:N. p., 2015.Web. doi:10.2172/1186745
Anandaroop Bhattacharya, Subhasish Basu Majumder."Experimental data collected with Biologic BCS-815 8-channel battery tester for battery HPPC test".Indian Institute of Technology (IIT) Kharagpur, India.