새 배터리 팩과 에이징된 배터리 팩의 열 분석
이 예제에서는 새 리튬이온 배터리 팩과 EOL(수명 종료) 리튬이온 배터리 팩을 평가하는 방법을 보여줍니다. 셀 사용이 늘고 시간이 지남에 따라 셀의 용량이 감소하고, 애노드 표면에 일종의 보호막인 SEI(solid-electrolyte-interface) 패시베이션 층이 형성되어 저항이 증가합니다. 배터리 팩 컴포넌트를 설계할 때는 EOL 시점에도 전력, 성능, 패키징 관점에서 보증 기준을 충족하도록 설계해야 합니다. 이 예제에서는 패키징을 기반으로 400V 배터리 팩의 EOL 열 성능을 분석합니다.
배터리 팩 구축하기
이 예제에서 사용하는 배터리 팩을 구축하려면 Build Model of Battery Pack with Cell Aging 예제에 나와 있는 단계에 따라 작업 디렉터리에 batt_PackCellAgingModelLib SLX 파일을 생성합니다. 이 SLX 파일에는 셀 에이징 응용 사례를 위한 배터리 팩 모델이 포함되어 있습니다. 이 배터리 팩은 5개의 모듈 어셈블리로 구성됩니다. 각 모듈 어셈블리는 5개의 모듈로 이루어집니다. 각 배터리 모듈에는 12개의 셀이 있습니다. 배터리 팩의 EOL은 1000회 사이클입니다.

Pipe 블록은 배터리 팩 모듈을 냉각하며, Battery Coolant Control 블록은 냉매의 유량을 제어합니다. 최악의 시나리오를 분석하기 위해, 54A의 일정한 2 C-rate 전류가 30분 동안 회로에 공급됩니다.
파라미터를 정의하고 시뮬레이션 실행하기
배터리 파라미터를 초기화합니다. MATLAB® 명령 창에 다음을 입력합니다.
run("batt_PackCellAgingModel_param");2 C rate의 일정한 방전 전류로 새 배터리 팩을 시뮬레이션합니다.
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")2 C rate의 일정한 방전 전류로 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밀리초의 스텝 크기로 실행할 수 있습니다.