Capacity Fade At Higher Temperatures #3939
Alistair-Douglas
started this conversation in
General
Replies: 1 comment
-
See this comment and the rest of the discussion for an explanation of why this is happening: #3273 (comment) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
TLDR: Should my cell degrade faster at higher ambient temperatures?
Hello!
I am using PyBamm as the basis of my dissertation and it is very cool.
Right now I am trying to calculate at what temperature it is viable to thermally manage batteries on an energy storage scale, be it a grid or home using HVAC. As I understand, most large BESS currently do have HVAC systems for cooling, but for smaller commercial systems only the Tesla powerwall has any kind of temperature control, in this case it keeps the battery between 0’C and 30’C.
I am hoping to write a piece of code that shows the increase degradation of the LG M50t cell with increasing temperature via capacity and provides the heat generated by the battery.
At the moment I am having a couple of issues. Using the code below, the cell’s capacity does not seem to degrade unless I include the SEI rate limit.
If I do include the SEI rate limit, the rate of degradation decreases as temperature increases.
I know that higher temperatures increase capacity but I understood that they increased capacity degradation as well?
Even if I increase the ambient temperature to 100’C the rate of capacity fade continues to decrease.
Is capacity the best measurement for degradation in this case?
Any hints, tips, or a general direction of which to go here would be massively appreciated, thank you.
My code is currently:
import pybamm
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Set up model and parameters
DFN_Chen = pybamm.lithium_ion.DFN(options = {
"thermal":"lumped",
"dimensionality":0,
"cell geometry": "arbitrary",
"SEI": "solvent-diffusion limited",
"SEI porosity change": "true",
"particle mechanics": ("swelling and cracking", "swelling and cracking"),
"SEI on cracks": "true",
"loss of active material": "current-driven",
"calculate discharge energy": "true",
"lithium plating": "partially reversible",
"lithium plating porosity change": "true"
},
name="TDFN",
)
param = DFN_Chen.param
parameters = pybamm.ParameterValues("Chen2020")
parameters["Ambient temperature [K]"] = 303
#Solver crashes run
#solver = pybamm.CasadiSolver(mode="fast")
#Using SEI means decreasing capacity degradation with increasing temps but means that average heating values no longer export
parameters.update({"SEI kinetic rate constant [m.s-1]": 1e-14})
DFN_Chen = pybamm.lithium_ion.DFN({"SEI": "ec reaction limited"})
Experiment setup
experiment = pybamm.Experiment(
[
(
"Discharge at 1C until 3V",
"Rest for 1 hour",
"Charge at 1C until 4.2V",
"Hold at 4.2V until C/50",
)
]
* 100,
termination="80% capacity",
)
Solving the model
var_pts = {"x_n": 30, "x_s": 30, "x_p": 30, "r_n": 10, "r_p": 10}
pybamm.set_logging_level("NOTICE")
sim_DFN = pybamm.Simulation(
DFN_Chen,
experiment=experiment,
parameter_values=parameters,
var_pts=var_pts,
#Solver continues bringing up errors
#solver=solver
)
sim_DFN.solve()
Outputs
solution_DFN = sim_DFN.solution
t_DFN = solution_DFN["Time [s]"].entries
Total_heating_DFN = solution_DFN["Total heating [W.m-3]"].entries
Ohmic_heating_DFN = solution_DFN["Ohmic heating [W.m-3]"].entries
Cell_Temp_DFN = solution_DFN["Cell temperature [K]"].entries
Discharge_capacity = solution_DFN["Discharge capacity [A.h]"].entries
Plots
Cell_volume = parameters["Cell volume [m3]"]
Total_heating_DFN = np.average(Total_heating_DFN, axis=0) * Cell_volume
Ohmic_heating_DFN = np.average(Ohmic_heating_DFN, axis=0) * Cell_volume
Cell_Temp_DFN = np.average(Cell_Temp_DFN, axis=0)
fig, axs = plt.subplots(1, 3)
axs[0].plot(t_DFN, Total_heating_DFN)
axs[0].set_title("Total heating as a function of time")
axs[0].set(xlabel="Time [in s]")
axs[0].set(ylabel="Total heating [W]")
axs[1].plot(t_DFN, Ohmic_heating_DFN)
axs[1].set_title("Joule heating as a function of time")
axs[1].set(xlabel="Time [in s]")
axs[1].set(ylabel="Joule heating [W]")
axs[2].plot(t_DFN, Cell_Temp_DFN)
axs[2].set_title("Average cell temperature as a function of time")
axs[2].set(xlabel="Time [in s]")
axs[2].set(ylabel="Cell temperature [K]")
plt.show()
#sol = sim_DFN.solve()
pybamm.plot_summary_variables(solution_DFN)
Export using Df>PyBamm
#Use df function to export csv file as PyBamm export comes out as a blurr of characters that I can't figure out how to get the proper data
data = {
"Time [s]": t_DFN,
"Total heating [W]": Total_heating_DFN, # This is the averaged total heating
# Include other variables
"Ohmic heating [W]": Ohmic_heating_DFN,
"Cell temperature [K]": Cell_Temp_DFN,
"Discharge capacity [A.h]": Discharge_capacity,
}
Convert the dictionary into a pandas DataFrame
df = pd.DataFrame(data)
Export the DataFrame to a CSV file
df.to_csv("Chen303.csv", index=False)
Beta Was this translation helpful? Give feedback.
All reactions