From 062f5bc67202a1e468c1caa6deca1a04c779f9c7 Mon Sep 17 00:00:00 2001 From: DrSOKane Date: Wed, 5 Jun 2024 16:50:26 +0100 Subject: [PATCH] Updated Ecker2015 diffusivity to better match the original paper --- pybamm/CITATIONS.bib | 8 +++++ .../input/parameters/lithium_ion/Ecker2015.py | 18 +++++++++-- .../Ecker2015_graphite_halfcell.py | 32 ++++++++++++------- 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/pybamm/CITATIONS.bib b/pybamm/CITATIONS.bib index 00d41fadd3..c8b8c278df 100644 --- a/pybamm/CITATIONS.bib +++ b/pybamm/CITATIONS.bib @@ -783,3 +783,11 @@ @article{Wycisk2022 author = {Dominik Wycisk and Marc Oldenburger and Marc Gerry Stoye and Toni Mrkonjic and Arnulf Latz}, keywords = {Lithium-ion battery, Voltage hysteresis, Plett-model, Silicon–graphite anode}, } +@article{Yuan2023, + title = {A electrochemical-electro-thermal coupled computational framework to simulate the performance of Li-ion batteries at cell-level: Analysis on the thermal effects}, + journal = {arXiv preprint}, + year = {2023}, + doi = {https://doi.org/10.48550/arXiv.2303.09838}, + url = {https://arxiv.org/abs/2303.09838}, + author = {Han Yuan and Shen Li and Tao Zhu and Simon O'Kane and Carlos Garcia and Gregory Offer and Monica Marinescu}, +} diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 32cc631293..afc2bfb12c 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -31,7 +31,15 @@ def graphite_diffusivity_Ecker2015(sto, T): Solid diffusivity """ - D_ref = 8.4e-13 * np.exp(-11.3 * sto) + 8.2e-15 + log_D_ref = ( + -15.06 + + 2.722 * np.exp(-((sto / 0.0777) ** 2)) + + 1.503 * np.exp(-(((sto - 0.17) / 0.1153) ** 2)) + + 1.055 * np.exp(-(((sto - 0.3118) / 0.04089) ** 2)) + + 1.555 * np.exp(-(((sto - 0.6061) / 0.04545) ** 2)) + + 1.215 * np.exp(-(((sto - 1) / 0.02759) ** 2)) + ) + D_ref = 10**log_D_ref E_D_s = 3.03e4 arrhenius = np.exp(-E_D_s / (pybamm.constants.R * T)) * np.exp( E_D_s / (pybamm.constants.R * 296) @@ -179,7 +187,12 @@ def nco_diffusivity_Ecker2015(sto, T): Solid diffusivity """ - D_ref = 3.7e-13 - 3.4e-13 * np.exp(-12 * (sto - 0.62) * (sto - 0.62)) + log_D_ref = ( + -12.67 + - 1.597 * np.exp(-(((sto - 0.6169) / 0.07859) ** 2)) + - 1.608 * np.exp(-(((sto - 1) / 0.0931) ** 2)) + ) + D_ref = 10**log_D_ref E_D_s = 8.06e4 arrhenius = np.exp(-E_D_s / (pybamm.constants.R * T)) * np.exp( E_D_s / (pybamm.constants.R * 296.15) @@ -634,5 +647,6 @@ def get_parameter_values(): "Hales2019", "Richardson2020", "OKane2020", + "Yuan2023", ], } diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py b/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py index 365bb6386c..02c5b21f79 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py @@ -1,4 +1,5 @@ import pybamm +import numpy as np def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): @@ -61,9 +62,17 @@ def graphite_diffusivity_Ecker2015(sto, T): Solid diffusivity """ - D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 + log_D_ref = ( + -15.06 + + 2.722 * np.exp(-((sto / 0.0777) ** 2)) + + 1.503 * np.exp(-(((sto - 0.17) / 0.1153) ** 2)) + + 1.055 * np.exp(-(((sto - 0.3118) / 0.04089) ** 2)) + + 1.555 * np.exp(-(((sto - 0.6061) / 0.04545) ** 2)) + + 1.215 * np.exp(-(((sto - 1) / 0.02759) ** 2)) + ) + D_ref = 10**log_D_ref E_D_s = 3.03e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + arrhenius = np.exp(-E_D_s / (pybamm.constants.R * T)) * np.exp( E_D_s / (pybamm.constants.R * 296) ) @@ -119,12 +128,12 @@ def graphite_ocp_Ecker2015(sto): t = 0.196176 u_eq = ( - a * pybamm.exp(-b * sto) - + c * pybamm.exp(-d * (sto - e)) - - r * pybamm.tanh(s * (sto - t)) - - g * pybamm.tanh(h * (sto - i)) - - j * pybamm.tanh(k * (sto - m)) - - n * pybamm.exp(o * (sto - p)) + a * np.exp(-b * sto) + + c * np.exp(-d * (sto - e)) + - r * np.tanh(s * (sto - t)) + - g * np.tanh(h * (sto - i)) + - j * np.tanh(k * (sto - m)) + - n * np.exp(o * (sto - p)) + q ) @@ -173,7 +182,7 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + arrhenius = np.exp(-E_r / (pybamm.constants.R * T)) * np.exp( E_r / (pybamm.constants.R * 296.15) ) @@ -351,8 +360,8 @@ def electrolyte_conductivity_Ecker2015(c_e, T): # add temperature dependence E_k_e = 1.71e4 - C = 296 * pybamm.exp(E_k_e / (pybamm.constants.R * 296)) - sigma_e = C * sigma_e_296 * pybamm.exp(-E_k_e / (pybamm.constants.R * T)) / T + C = 296 * np.exp(E_k_e / (pybamm.constants.R * 296)) + sigma_e = C * sigma_e_296 * np.exp(-E_k_e / (pybamm.constants.R * T)) / T return sigma_e @@ -538,5 +547,6 @@ def get_parameter_values(): "Xu2019", "Richardson2020", "OKane2020", + "Yuan2023", ], }