modelName = 'CellThermalRunawayARC';open_system(modelName);
该系统包括ARC设备子系统和电池块蓄电池单元开路,这意味着它与任何电气负载断开打开ARC设备子系统ARC设备子系统包括ARC设备控制器图表和ARC设备硬件子系统硬件包括一个带有加热器和温度传感器的完全绝缘的盒子控制器命令是加热还是启用冷却open_system(strcat(modelName,'/ARC Device'))
打开ARC设备控制器图表open_sytem(strcat(modelName,'/ARC Device/ARC Device Controller'));
ARC设备子系统使用热等待寻道策略缓慢加热电池,直到电池开始自热然后设备等待,直到反应完成,并命令进行冷却程序利用热失控事件模拟ARC测试在本节中,将向电池块添加放热反应故障然后配置故障并运行模拟以绘制温度时间序列添加放热反应故障定义放热反应故障要确保放热反应从模拟开始就处于活动状态,将TriggerType属性设置为“始终打开”cellBlockName = "Battery Cell";blockPath = strcat(modelName,'/',cellBlockName);faultObj = getFaultObject(blockPath,"Exothermic reactions");faultObj.Name = "ExothermicAlwaysOn";faultObj.Description = strcat('Exothermic reactions with analytical model and no SOC tabulation. ', ... 'Trigger is always on to allow the ARC Device to find the actual exothermic onset temperature');faultObj.TriggerType = "Always On";
配置分析放热反应故障根据电池的电化学特性设置放热反应参数请参阅数据表,为您自己的单元模型自定义值选择不依赖于电池SOC的分析模型setFaultParameter(faultObj,"ExothermModel","simscape.battery.enum.cells.ExothermModel.analytical");setFaultParameter(faultObj,"TabulateWithSOC","0");TotalHeatOfReactionJ =29000; % JActivationEnergyJpmol =135000; % JPercentThermalMassVented =35; ExothermOnsetTemperatureK =340; % KCurrentInterruptTemperatureK =447; % KsetFaultParameter(faultObj,"TotalHeatOfReaction",num2str(TotalHeatOfReactionJ));setFaultParameter(faultObj,"ActivationEnergy",num2str(ActivationEnergyJpmol));setFaultParameter(faultObj,"PercentThermalMassVented",num2str(PercentThermalMassVented));setFaultParameter(faultObj,"ExothermOnsetTemperature",num2str(ExothermOnsetTemperatureK));setFaultParameter(faultObj,"CurrentInterruptTemperature",num2str(CurrentInterruptTemperatureK));
运行分析放热反应故障模拟启用故障并运行模拟faultObj.activate;out = sim(modelName);simlog1 = out.simlog_CellThermalRunawayARC;
绘图模拟结果绘制电池温度Tcell = simlog1.Battery_Cell.batteryTemperature;reactionExtent = simlog1.Battery_Cell.reactionExtent;plot(Tcell);
绘制反应的范围plot(reactionExtent);
电池放热反应您可以使用ARC测试通过实验确定自加热热失控事件期间作为温度函数的温度速率如果您有实验数据,请将其加载并绘制在本节中使用分析热失控模型的模拟结果作为实验测量结果[TcellSH,dTdtSH] = extractTemperatureDuringSelfHeating(simlog1);plot(TcellSH,dTdtSH,"r");grid ontitle("Temperature Rate as Function of Temperature");xlabel("Cell Temperature (K)");ylabel("dTdt (K/s)");
使用表查找配置数据驱动的放热反应模型使用模拟数据对数据驱动的放热反应模型进行参数化选择表格中的ARC测试温度速率,不要对SOC的依赖性进行建模setFaultParameter(faultObj,"ExothermModel","simscape.battery.enum.cells.ExothermModel.acceleratedRateCalorimetryTemperature"); % select Tabulated ARC test temperature ratesetFaultParameter(faultObj,"TabulateWithSOC","0"); % do not model dependency with SOC in this casesetFaultParameter(faultObj,"TemperaturesFromARC",mat2str(TcellSH));setFaultParameter(faultObj,"TemperatureRatesFromARC",mat2str(dTdtSH));faultObj.TriggerType = "Behavioral"; % Use Temperature-based trigger.faultObj.BehavioralTriggerData.TriggerTemperature.value = num2str(ExothermOnsetTemperatureK); % Set trigger temperature
运行数据驱动的放热反应故障模拟启用故障并运行数据驱动的模拟faultObj.activate;out = sim(modelName);simlog2 = out.simlog_CellThermalRunawayARC;
绘图模拟结果绘制电池温度Tcell = simlog2.Battery_Cell.batteryTemperature;reactionExtent = simlog2.Battery_Cell.reactionExtent;plot(Tcell)
绘制反应的范围plot(reactionExtent)
验证放热反应范围将测量的温度速率与来自数据驱动的放热反应模型的模拟温度速率进行比较ARC实验数据与查表模型的模拟结果非常吻合[simTcellSH,simdTdtSH] = extractTemperatureDuringSelfHeating(simlog2);figureplot(TcellSH,dTdtSH,"r")hold onplot(simTcellSH,simdTdtSH,"b")grid ontitle("Temperature Rate as Function of Temperature")xlabel("Cell Temperature (K)")ylabel("dTdt (K/s)")legend({"ARC Experiment (Analytical)","Simulation Results (Tabulated)"},Location="best")
结论:观察ARC实验数据与表查找模型的模拟结果之间的良好拟合函数function [TcellSH, dTdtSH] = extractTemperatureDuringSelfHeating(simlog) % Returns temperature and temperature-rate vectors during self-heating tvec = simlog.Battery_Cell.batteryTemperature.series.time; Tcell = simlog.Battery_Cell.batteryTemperature.series.values("K"); reactionExtent = simlog.Battery_Cell.reactionExtent.series.values; selfHeating = reactionExtent > 0.01 & reactionExtent < 0.99; TcellSH = Tcell(selfHeating); dTdtSH = diff(TcellSH)./diff(tvec(selfHeating)); TcellSH(end) = []; % to have the same length as dTdtSHend
(图片来源网络,侵删)
0 评论