電池快速充電時間是電動汽車 (EV) 設計的一個關鍵性能指標,也是電動汽車客戶關注的重點。本文介紹了如何使用 Simscape Battery 以及 About:Energy 開發的自定義電池模型模塊和參數為不同電池系統尺寸生成安全且穩健的快速充電配置文件。這包括符合 SAE J1772 的直流 1 級(高達 80 kW)和 2 級(高達 400 kW,也稱為 3 級)電池快速充電配置文件。本文還展示了如何使用 Simscape 和 Simscape Battery 的 Battery Pack Builder 工作流程來擴展自定義電池電芯模型(圖 1)。工作流程圖展示了如何使用 Simscape 將電池電芯組裝成用于快速充電應用的電池組。
圖 1. 使用 Battery Builder 中的自定義 Simscape 電池模型模塊實現電池到電池組的快速充電工作流程。
電動汽車鋰離子電池電芯內部的幾個過程會影響電池的最大充電速率,例如負極中的鋰擴散和電解質中的鋰離子傳輸。這些過程發生在微觀尺度上,受單個電池的局部溫度、充電狀態 (SOC) 和健康狀態 (SOH) 以及電池化學性質的控制。其他因素也會在電池模塊和電池組層面發揮作用,例如系統和直流充電器的電流限制、由于熱管理策略導致的電池間溫度差異、由于電氣設計、控制策略、傳感器位置、非電池電阻和制造變化導致的 SOC 差異。這些額外的因素可能會進一步限制快速充電速度。因此,在任何電池設計和驗證工作流程中考慮所有這些變量至關重要。
電池電芯模型
Simscape Battery 中的 Battery Builder 功能可以從用戶定義的單個電池電芯的Simscape 模塊(包括 About:Energy 提供的電池電芯模塊)自動創建電池模塊和電池組模型。在本文中,我們展示了由 About:Energy 提供的兩種先前驗證過的富鎳高能 2170 電池模型:
- 帶電解質的熱單粒子模型 (TSPMe),可用于獲取內部電化學狀態或執行快速充電控制等任務所需的變量。
- 專為快速充電而參數化的等效電路模型 (ECM),一旦擴展到模塊或電池組級別,就能提供相對較快的計算時間。
圖 2. Simscape 中的基礎電池電芯模型模塊。
電池到模塊工作示例
我們可以使用 Simscape Battery 中的電池構建器功能快速構建電池系統模型的原型,并在各種熱和電邊界條件和初始運行狀態(SOC 和溫度)下評估不同子組件級別的電池快速充電時間。首先,我們必須定義一個電池電芯對象,并將該電芯對象鏈接到 About:Energy 提供的相應電芯模型模塊。我們首先擴大 ECM。要使用 ECM 模塊,我們首先加載 About:Energy 提供的電熱參數,這些參數包含在名為 cellData 的結構體中。
run("CellModelParameters.mlx") % Load cell ECM parameters (e.g., capacity, energy)
要定義電池電芯對象,我們必須實例化 Simscape Battery 中 Battery Builder 包中的 Cell 類:
import simscape.battery.builder.* % Import battery builder package
battCell = Cell(Geometry = CylindricalGeometry(...
'Height',simscape.Value(cellData.cellHeight,'m'),...
'Radius',simscape.Value(cellData.cellRadius,'m')), ...
Capacity = simscape.Value(cellData.cellCapacity,"A*hr"), ...
Energy = simscape.Value(cellData.cellNominalEnergy,"W*hr")); % Cell object
我們可以通過修改 CellModelOptions 屬性將我們的電芯對象鏈接至 About:Engery 的自定義模塊:
battCell.CellModelOptions.CellModelBlockPath = "AE_Mathworks_lib/AE_mathworks_ECM";
disp(battCell.CellModelOptions)
CellModelBlock with properties:
CellModelBlockPath: "AE_Mathworks_lib/AE)_mathworks_ECM"
BlockParameters: [1x1 struct]
在這個例子中,我們創建了一個由 16 個電池模塊組成的 400 伏汽車式牽引電池。每個電池模塊由 36 個圓柱形電池組成,這些電池以并聯方式電連接,然后其中 6 個并聯組件以串聯方式電連接 (36p6s)。將電芯組件放大為并聯組件,然后放大為模塊的代碼如下所示:
battPSet = ParallelAssembly(Cell = battCell, NumParallelCells = 36,...
Rows = 9, ModelResolution="Detailed",...
NonCellResistance = "on",...
AmbientThermalPath="CellBasedThermalResistance", ...
CoolantThermalPath="CellBasedThermalResistance",...
CoolingPlate="Bottom"); % Parallel assembly object
battModule = Module(ParallelAssembly = battPSet, NumSeriesAssemblies = 6,...
NonCellResistance = "on",...
ModelResolution="Grouped",...
SeriesGrouping = [1,4,1],...
ParallelGrouping = [36,1,36],...
AmbientThermalPath="CellBasedThermalResistance", ...
CoolantThermalPath="CellBasedThermalResistance",...
CoolingPlate="Bottom"); % Module object
或者,我們也可以使用 Battery Builder 應用程序定義相同的電池設計和對象(圖 3)。圖 3. 用于電池設計的 Battery Builder 應用程序界面。
我們可以通過調用 buildBattery 函數從上面定義的電池對象自動生成 Simscape 模型。調用此函數時,我們還可以定義 MaskParameters 名稱-值對為“VariableNamesByType”來生成一個包含運行模型所需的所有參數的腳本。在創建模型之前,我們可以使用以下方法驗證電池定義和設計:BatteryChart 對象,它有助于在 3D 空間中可視化電池電芯的幾何形狀和定位。
表 1 展示了我們的模塊和并行組裝對象使用這些函數的典型輸出。
電池可視化代碼 |
電池模型創建代碼 |
f = uifigure(Color="w"); BatteryChart(Battery=battPSet);
|
buildBattery(battPSet, Library= "detailedPSet",... MaskParameters = "VariableNamesByType"); |
f = uifigure(Color="w"); BatteryChart(Battery=battModule);
|
buildBattery(battModule, Library= "groupedModule",... MaskParameters = "VariableNamesByType"); |
表 1. 用于可視化電池對象的代碼并在 Simscape Battery 中自動生成模型,這些模型是使用 About:Energy 模塊構建的。
接下來,我們定義快速充電電負載,用于測試生成的電池模型。為了實現這一點,我們必須首先評估電池電芯的快速充電能力。
電池級快速充電
在快速充電過程中,根據電池的運行條件及其電化學性質,鋰鍍層的風險更高。最終,鋰沉積背后的關鍵驅動力是陽極電解質界面處固相和液相之間的局部電位差,該電位差受溫度、擴散限制、SOC 和充電速率等多種因素的影響。寒冷的溫度通常會導致充電過程中傳輸現象緩慢和電位差變大。因此,電芯內部溫度和 SOC 的差異,自然就會導致電芯不同區域更容易出現鋰析出的風險。在特定的電池設計和電池周圍的熱邊界條件下,這些差異總是會存在。
表 2 列出了得出安全快速充電曲線必須考慮的關鍵內部變量和邊界條件。
多變的 |
描述和代碼 |
陽極電位 |
我們將使用負極相對于 Li/Li+ 參比電極的靜電勢作為鋰沉積風險增加和加速降解的指標。在充電過程中,由于電池內部發生的質量傳輸和化學反應過程,該電位會下降。為了降低鋰鍍層的風險,該電位不得低于 0 V 太多。在此示例中,該電位閾值將任意設置為 50 mV。 AnodePotentialThreshold = 0.05; % Unit:V |
電池溫度 |
電池溫度必須保持在其運行極限以下,以限制性能下降并降低熱失控風險。 TemperatureThreshold = 55 + 273.15; % Unit:K |
初始電池溫度 |
溫度越高,電流就越大。如果達到最高工作溫度,這將導致控制系統降低電流并延長充電時間。較低的初始溫度可提供更多的溫度增量來抑制高熱量的產生,但較低的溫度也會限制最大電流。因此,存在一個最佳初始溫度,可以通過模擬或物理測試找到它。 InitialCellTemperature = 35 + 273.15; % Unit:K |
熱管理邊界條件 |
在此示例中,我們考慮將“底部冷卻”電池電芯封裝到冷卻板上,如下圖所示。我們假設從電池底面到冷卻通道中的大量冷卻劑的熱阻恒定為 5 K/W。 CellThermalPathResistance = 5; % Unit:K/W |
電池端電壓 |
在充電過程中,電池電壓會增加。為防止出現過壓或過充情況,電池電壓不能超過電池供應商規定的最大值。 MaximumBatteryVoltage = 4.2; % Unit:V |
電池充滿電 |
在充電階段結束時,端電壓上升至最大值。為了確保最佳快速充電并避免過度充電情況,必須以恒定電壓步驟 (CV) 降低電流。在本文中,一旦電流值降至額定電池容量的 1/10 以下,即達到完全充電 (100% SOC)狀態。 FullyChargedCurrentThreshold = cellData.cellCapacity/10; % Unit:A |
最大充電電流 |
該值應由電池制造商針對一組特定條件(SOC、SOH、溫度)指定。一般來說,電池可以在短時間內接受較大的充電電流,在較長時間內接受較小的充電電流。 MaximumChargeCurrent = 30; % @ 0% SOC, instantaneous limit, Unit:A |
表 2. 快速充電模擬的約束、操作條件和邊界條件。
快速充電配置文件方法
為了監測整個果凍卷的陽極電位,使用 Simscape 語言和 About:Energy TSPMe 模型作為基礎,創建了高度離散化的電熱電池級模型(圖 4)。熱模型沿高度離散化,以捕捉由基底冷卻產生的熱梯度。離散元件以并聯電連接和串聯熱連接的方式復制電池內部結構并允許更高的內部狀態分辨率。通過徑向劃分元素,可以實現更高、更精確的狀態分辨率。About:Energy 還提供 Simscape 2D 熱模型模塊。
圖 4. 使用 Simscape 和 Simulink 創建的離散電池電芯模型。
三個 PI 控制器降低最大允許電流并維持安全運行條件(圖 5):
圖 5. 離散電池電芯模型的 Simulink 控制策略。
最佳充電電流的推導采用的是這種策略(圖 6):
- 在 0% SOC 和選定的初始溫度下以供應商允許的最快速度對電池進行充電。
- 如果陽極電位達到其指定的閾值,則降低電流。
- 如果電池電芯上的最熱點達到最高工作溫度,則降低額定值。
- 如果端電壓達到最大電壓限制,則降低額定值以防止過度充電。
- 如果有必要,可以根據其他狀態添加其他降額條件,例如電解液中的鋰濃度。
- 一旦恒定電壓階躍達到 C/10,充電就會停止。
- 將最終傳輸的電流信號存儲為最終的快速充電電流曲線。
cellSimulation = sim("CellLevelFastCharge.slx","StartTime","0","StopTime","3600");
run("PlotCellSimulation.mlx");
圖 6. 離散電池模型模擬的結果。
表 3 總結了根據我們的假設得出的離散化電芯級模擬結果。
表 3. 電池快速充電時間。
電池快充地圖
上一節建立的快速充電控制器將輸出僅對假設的初始溫度和 SOC 有效的電流曲線,并且不考慮這些狀態的初始值或動態值的不均勻性。通過在不同的初始條件下運行多次模擬,我們可以得出最大充電電流作為溫度和 SOC(壽命開始時)的函數的更通用的二維圖。使用Stateflow 邏輯上,對于每一組初始條件,我們都可以運行一個模擬,其中我們將電流從零安培快速增加,直到達到陽極電位閾值或端電壓閾值(圖 7)。當達到其中一個閾值時,我們會降低電流以使限制變量在給定時間內保持在其閾值上恒定。在本文中,該持續時間將被任意定義為 60 秒(有時稱為連續限制),以模擬充電等長時間事件。
圖 7. 離散化電池電芯模型模擬用于獲得電池充電電流限制。
一般來說,持續時間越長,電流限制就越低或越嚴格。模擬在給定的時間范圍內停止,然后我們將最終電流值保存為限制(圖 8)。生成的地圖可以用作我們之前定義的系統級模擬的輸入,而該系統級模擬無法訪問陽極電位等內部電化學狀態。
InitialCellTemperatureVector = [5,15,25,35,45,50] + 273.15; % Unit: K
InitialSOCVector = [0,0.05,0.1,0.2,0.5,0.6,0.8,0.95]; % Unit: -
for initTempIdx = 1:numel(InitialCellTemperatureVector)
for initSOCIdx = 1:numel(InitialSOCVector)
InitialCellTemperature = InitialCellTemperatureVector(initTempIdx);
InitialSOC = InitialSOCVector(initSOCIdx);
cellSimulations(initTempIdx).SOCPoint(initSOCIdx).Data = sim("CellLevelFastChargeLimitsStateFlow.slx","StartTime","0","StopTime","60");
cellCurrentLimit(initTempIdx,initSOCIdx) = cellSimulations(initTempIdx).SOCPoint(initSOCIdx).Data.simout.Data(end);
save cellCurrentLimit
end
end
newCellCurrentLimit = [cellCurrentLimit, zeros(1,numel(cellCurrentLimit(:,1)))'];
figure("Color","w")
[xq,yq]= meshgrid([550]+273.15, 01);
vq = griddata(InitialCellTemperatureVector,[InitialSOCVector,1],newCellCurrentLimit',xq,yq);
mesh(xq,yq,vq)
xlabel('Temperature (°C)')
ylabel('State of Charge (-)')
zlabel('Current Limit (A)')
view([-53.55])
圖 8. 連續充電電流限制圖作為溫度和 SOC 的函數。
并聯級快充
在制造電動汽車電池組時,通常首先將電池電芯與其他電池電芯電并聯連接以形成并聯組件,從而擴大電池容量和能量。要計算并聯組裝子系統的快速充電曲線,我們只需將獲得的電池快速充電曲線乘以并聯電池的數量。取決于這個數字 P,產生的快速充電電流可能會超過充電站常見電池直流充電器的最大電流限制。當嘗試預測系統級快速充電時間時,這是需要牢記的一個重要約束。如果電池總數量固定,且電池能量特定,則 400 伏電池組的并聯電池數量通常會比 800 伏系統更多。如果我們想利用第一部分中得出的最佳電池快速充電曲線,那么并聯的電池數量越多,快速充電電流就越大。對于典型的 400 伏系統,更高的電流或 P 數字意味著它們更有可能受到充電站的限制(當以 0% SOC 開始充電時)。這種限制可能導致電池快速充電能力無法得到發揮以及充電速度變慢。表 4 顯示了不同直流電動汽車充電器的典型最大電流。
表4. 快速充電器規格。
圖 9 顯示了增壓器電流限制為 500 安培,以及典型的 400 伏和 800 伏系統的典型放大、并聯組件級快速充電曲線。由于并聯電池數量較多與 400 伏系統相關(對于給定的電池能量),我們將任意定義 “36 P” 并聯組件作為 400 伏系統的代表。然后我們將該系統與 "18 P" 并聯組件,代表 35°C 下的 800 伏系統。
run("parallelAssemblyProfile.m")
圖 9. 35°C 時 800 V 和 400 V 充電曲線比較。
如圖所示,400 伏系統最初無法利用電池的所有充電能力,這可能會導致充電時間比預計的 14 分鐘內 0-80% 更慢。一般來說,電連接的電池組的充電速率由最冷電池上的最冷點和 SOC 最高的電池內的最高 SOC 點控制。因此,快速充電控制將基于從并行裝配廠模型獲得的最低電池溫度和最高 SOC 信號。電池電芯通常布置在與冷卻板(也包含一層電隔離層)接觸的熱界面材料的頂部。我們將通過假設一些不均勻性(例如,在電池和冷卻板之間應用熱界面材料)來定義該熱路徑中的隨機變化。
ParallelAssembly1.CoolantResistance = 14 + (30-14)*rand(36,1)'; % Cell level coolant thermal path resistance, K/W
其他需要考慮的重要方面可以使用 Simscape 進行建模,但本文未明確涉及,包括:
- 電池制造過程中電池間內阻和容量的變化。
- 如果設計不當,集電板設計可能會導致輕微的電流不平衡。
- 到環境的熱路徑不同(這些動態通常較慢)。
- 冷卻液控制:通常情況下,電動汽車會配備固定的冷卻器或冷卻能力(例如 5 千瓦),用于從電池系統(和其他組件)中去除熱量。實際的冷卻液控制也會對電池快速充電時間產生重要影響。
圖 10. 并行組裝模擬(上)和并行組裝快速充電輪廓控制模塊(下)。
運行并行裝配模擬并繪制結果(圖 11)。
run("detailedPSet_param.m");
set_param("ParallelAssemblyLevelFastCharge","SimscapeLogType",'all')
pSetSimulation = sim("ParallelAssemblyLevelFastCharge.slx","StartTime","0","StopTime","5200");
run("PlotParallelAssemblySimulation.mlx"); % Plot results
圖 11. 平行裝配模擬結果。
如摘要圖所示,并聯組件在模擬開始時受到充電器 500 安培最大電流的限制。此外,最熱的電池溫度達到 55°C,引發熱降額,從而減慢模擬時間。為了可視化電池動態溫度,我們可以創建電池模擬日志對象,如下面的代碼所示(圖 12)。
pSetSimLog = BatterySimulationLog( battPSet, pSetSimulation.simlog.ParallelAssembly1);
pSetSimLog.SelectedVariableUnit = "degC";
f = uifigure("Color","w");
g = uigridlayout(f, [1,1]);
parallelAssemblyChart = BatterySimulationChart(Parent = g, ...
BatterySimulationLog = pSetSimLog);
parallelAssemblyChartColorBar = colorbar(parallelAssemblyChart);
ylabel( parallelAssemblyChartColorBar, strcat("Cell temperature", " (", pSetSimLog.SelectedVariableUnit,")") ,'FontSize',14 );
parallelAssemblyChartColorBar = colormap(parallelAssemblyChart);
圖 12. 平行組裝動態 BatteryChart 仿真結果。
如動態電池圖所示,電池之間的溫差約為 5°C。這種差異主要是由于冷卻劑假設的熱路徑隨機變化造成的。表5顯示了并行裝配模擬結果。0–80% SOC快速充電時間增加了10分鐘,這主要是由于系統級限制和熱假設。
表 5. 并行組裝充電時間。
定制電池塊指南(適用版本最高 R2024a)
Simscape Battery 組構建器有一些有效使用自定義電池模塊的指導原則:
- 自定義電芯模型不能有名為 power_dissipated 的變量。
- 如果需要熱效應,模型必須至少有一個類型為“熱域”的端口或節點。
- 如果一個關鍵的電芯模型模塊變量需要在 Simulink 畫布中可見(例如,使用 Probe 模塊),那么這個變量的 ExternalAccess 必須設置為公共,并且沒有任何限制。否則,該變量將僅在后處理的模擬日志中可見。
按照與上述相同的過程,我們可以為上面生成的模塊以及更大的電池模塊(例如電池組)創建 Simulink 模型。然后,我們可以將這些模塊耦合到同一個并行組裝充電控制模塊,該模塊依賴于二維電池充電圖。表 6 包含這些模擬的摘要??傮w而言,由于溫差增大及部分電池溫度較高,當前模塊和電池組設計中的快速充電時間會略有增加。
模型 |
結果/動態電池圖表 |
0-80%:25 分鐘 0-100%:44 分鐘 |
|
0-80%:27 分鐘 0-100%:46 分鐘 |
表 6. 模塊及包快充效果。
結論
我們使用 Simscape Battery 和 About:Energy 模塊和參數對電池快速充電時間的調查證明了從單個電池建模到電池組模擬的系統化多尺度方法的重要性。我們強調將 About:Energy TSPMe 和電氣模型與 Simscape Battery 支持的詳細電池組模型相結合的重要性,以確保電池管理系統的準確性和安全性,促進電池充電領域的持續進步。這些預測的快速充電時間的主要不確定性主要歸因于模型分辨率(例如,電熱離散化)、建模假設以及所使用的電化學/ECM 模型的準確性。一般來說,模型離散化程度或分辨率越高,結果就越準確。
正如電池到電池組的工作流程所示,電池快速充電時間取決于多種變量,并且電池組設計會產生很大的影響。從電池層面開始,電池電芯的最快充電速度取決于小規模發生的鋰擴散和傳輸過程。在模塊和電池組級別,其他變量也變得重要,例如直流充電器電流限制、并聯電池數量、電池組標稱電壓(400 伏對 800 伏)、電池內和電池間溫度范圍、電池內和電池間 SOC 范圍、非電池電阻等等。正如本文所示,這些變量,特別是溫差,會對充電率產生重要影響,因此在電池虛擬設計和驗證工作流程中考慮它們至關重要。下圖顯示了本文研究的 400 伏系統的預測電池到電池組快速充電時間(圖 13)。
batteries = ["Cell","Parallel Assembly","Module", "Pack"];
batteries0To80ChargeTimes = [ChargeTime0To80 pSetChargeTime0To80 moduleChargeTime0To80 packChargeTime0To80];
batteries0To100ChargeTimes = [ChargeTime0To100 pSetChargeTime0To100 moduleChargeTime0To100 packChargeTime0To100];
figure("Color","w")
subplot(1,2,1)
bar(batteries,batteries0To80ChargeTimes)
ylabel("0 to 80% SOC Charge Time (min)")
grid on
subplot(1,2,2)
bar(batteries,batteries0To100ChargeTimes)
ylabel("0 to 100% SOC Charge Time (min)")
grid on
圖 13. 電池到電池組的快速充電時間。
-
電動汽車
+關注
關注
155文章
11939瀏覽量
230451 -
鋰離子電池
+關注
關注
85文章
3215瀏覽量
77544 -
電芯
+關注
關注
14文章
717瀏覽量
25805
原文標題:使用 Simscape Battery 和 About:Energy 實現電池快速充電
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論