Skip to content

Commit

Permalink
Updated Ecker2015 diffusivity to better match the original paper
Browse files Browse the repository at this point in the history
  • Loading branch information
DrSOKane committed Jun 5, 2024
1 parent 2b4cf49 commit 062f5bc
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 13 deletions.
8 changes: 8 additions & 0 deletions pybamm/CITATIONS.bib
Original file line number Diff line number Diff line change
Expand Up @@ -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},
}
18 changes: 16 additions & 2 deletions pybamm/input/parameters/lithium_ion/Ecker2015.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -634,5 +647,6 @@ def get_parameter_values():
"Hales2019",
"Richardson2020",
"OKane2020",
"Yuan2023",
],
}
32 changes: 21 additions & 11 deletions pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import pybamm
import numpy as np


def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T):
Expand Down Expand Up @@ -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)
)

Expand Down Expand Up @@ -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
)

Expand Down Expand Up @@ -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)
)

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -538,5 +547,6 @@ def get_parameter_values():
"Xu2019",
"Richardson2020",
"OKane2020",
"Yuan2023",
],
}

0 comments on commit 062f5bc

Please sign in to comment.