You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello Good People,
Thank you so much for your willingness to read my question. I have designed a pouch cell model using "Marquis2019" parameters. I adjusted my pouch cell's physical parameters in the model (changed electrode dimensions, thickness, volume, surface are and etc.). Anode and Cathode assumed as graphite and NMC (simulation at -10 Degree C). The simulation results shows at 0.2 C-rate is pretty normal but for high C-rate (3C) the model is producing abnormal capacity. Also, I am not getting voltage cutoff at high C-rate, like at a 3 C-rate the voltage should reach its cutoff at around 60-70% of charging capacity. But I am getting the voltage cutoff at 95% of its total capacity (too high at -10 deg C at 3 C-rate).
Here is the code:
importpybammimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt# Load parameter valuesparameter_values=pybamm.ParameterValues("Marquis2019")
# Update parameter valuesparameter_values.update({
"Initial concentration in negative electrode [mol.m-3]": 500,
"Initial concentration in positive electrode [mol.m-3]": 47500,
"Maximum concentration in negative electrode [mol.m-3]": 31507,
"Current function [A]": 1,
"Nominal cell capacity [A.h]": 2.1
})
parameter_values.update({
"Cell cooling surface area [m2]": 0.004921,
"Cell volume [m3]": 0.000014112,
"Electrode height [m]": 0.08,
"Electrode width [m]": 0.056,
"Lower voltage cut-off [V]": 3.2,
"Open-circuit voltage at 0% SOC [V]": 3.2,
"Open-circuit voltage at 100% SOC [V]": 4.2,
"Upper voltage cut-off [V]": 4.2,
"Negative electrode thickness [m]": 0.000060,
"Positive electrode thickness [m]": 0.000080,
"Positive current collector thickness [m]": 0.00001,
"Negative current collector thickness [m]": 0.00001,
"Positive particle radius [m]": 0.000005,
"Number of electrodes connected in parallel to make a cell": 18.0,
# "Negative tab width [m]": 0.01,# "Positive tab width [m]": 0.01,
})
parameter_values.search('voltage')
parameter_values.search('particle')
parameter_values.update({"Negative particle radius [m]": 15e-6})
parameter_values.update({"Positive particle radius [m]": 5e-6})
parameter_values.search('particle')
parameter_values.update({"Ambient temperature [K]": 263.15})
parameter_values.update({"Initial temperature [K]": 263.15})
parameter_values.update({"Reference temperature [K]": 298.15})
experiment_steps= [
# "Charge at 0.1C for 1 minutes",# "Charge at 0.2C for 2 minutes",
]
# Define the repeated part of the experiment using list comprehensionrepeated_steps= (
[
# "Charge at 0.1C for 100 seconds", "Charge at 4C until 4.2V"
]
)
#Combine the initial steps with the repeated stepsexperiment_steps.extend(repeated_steps)
# Define the experiment in PyBaMMexperiment=pybamm.Experiment(experiment_steps)
# Create the modelmodel=pybamm.lithium_ion.DFN({"thermal": "x-full"}, name="full thermal model")
solver=pybamm.CasadiSolver(dt_max=60) # Reduce from 600 to 60 seconds (or even smaller)sim=pybamm.Simulation(model, experiment=experiment, parameter_values=parameter_values, solver=solver)
solution=sim.solve()
sim.plot()
# Create and run the simulation# Extract the solution datatime=solution["Time [s]"].entriescurrent1=solution["Current [A]"].entriesvoltage=solution["Terminal voltage [V]"].entriesmain_current=np.array(current1)
current=-main_current# Integrate current over time to get capacity (Ah)dt=np.diff(time)
incremental_capacity=current[:-1] *dtcapacity=np.cumsum((incremental_capacity)) /3600# Convert to Ah#Adjust length of voltage to match capacityvoltage=voltage[:-1]
#-------------------------------------------------------------------------------------------------# Voltage vs capacity data=np.column_stack((capacity, voltage))
np.savetxt("Voltage_vs_capacity_data.csv", data, delimiter=",", header="Capacity [Ah],Voltage [V]", comments="")
# Save using pandasdf=pd.DataFrame({"Capacity [Ah]": capacity, "Voltage [V]": voltage})
df.to_csv("Voltage_vs_capacity_data.csv", index=False)
# Plot the charging capacity vs voltageplt.figure(figsize=(10, 6))
plt.plot(capacity, voltage, label="Charging")
plt.xlabel("Capacity [Ah]")
plt.ylabel("Voltage [V]")
plt.title("Charging Capacity vs Voltage")
plt.legend()
plt.grid(True)
plt.show()
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello Good People,
Thank you so much for your willingness to read my question. I have designed a pouch cell model using "Marquis2019" parameters. I adjusted my pouch cell's physical parameters in the model (changed electrode dimensions, thickness, volume, surface are and etc.). Anode and Cathode assumed as graphite and NMC (simulation at -10 Degree C). The simulation results shows at 0.2 C-rate is pretty normal but for high C-rate (3C) the model is producing abnormal capacity. Also, I am not getting voltage cutoff at high C-rate, like at a 3 C-rate the voltage should reach its cutoff at around 60-70% of charging capacity. But I am getting the voltage cutoff at 95% of its total capacity (too high at -10 deg C at 3 C-rate).
Here is the code:
-326de2e2e1e6)
Beta Was this translation helpful? Give feedback.
All reactions