Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yang2017 Model #1398

Merged
merged 54 commits into from
Mar 20, 2021
Merged
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d267aa3
Create Yang2017
KennethNwanoro Feb 4, 2021
28679bd
Create parameters.csv
KennethNwanoro Feb 4, 2021
55821b4
Rename Yang2017 to Yang2017.py
KennethNwanoro Feb 9, 2021
38df929
Check issues associated with calling Yang2017
KennethNwanoro Feb 17, 2021
0e3a63e
Corrections on Yang2017
KennethNwanoro Feb 22, 2021
7d91314
Yang2017 corrections
KennethNwanoro Feb 25, 2021
3cd1609
Corrections
KennethNwanoro Feb 26, 2021
6d7cab9
Merge branch 'develop' into develop
KennethNwanoro Feb 26, 2021
a14bf32
Formatted
KennethNwanoro Feb 26, 2021
94e9026
Merge branch 'develop' of https://github.com/KennethNwanoro/PyBaMM in…
KennethNwanoro Feb 26, 2021
e53004b
Spacing corrections
KennethNwanoro Feb 26, 2021
2e9adfb
Spacing corrections
KennethNwanoro Feb 26, 2021
04a3a35
Tests
KennethNwanoro Mar 1, 2021
17b8d3e
Merge branch 'develop' into develop
KennethNwanoro Mar 5, 2021
79298fb
Tests
KennethNwanoro Mar 8, 2021
d660020
Changes for tests
KennethNwanoro Mar 8, 2021
033e7cb
Merge branch 'develop' of https://github.com/KennethNwanoro/PyBaMM in…
KennethNwanoro Mar 8, 2021
7036d54
Corrections for tests
KennethNwanoro Mar 9, 2021
f5dd4ea
Changes for integration tests
KennethNwanoro Mar 11, 2021
a724f7a
Merge branch 'develop' into develop
KennethNwanoro Mar 11, 2021
1e1806e
Update base_battery_model.py
KennethNwanoro Mar 11, 2021
96302d1
Integration tests
KennethNwanoro Mar 11, 2021
205b74d
Changes for Integration tests
KennethNwanoro Mar 12, 2021
7d9c0a9
Doc string corrections
KennethNwanoro Mar 12, 2021
8043fc8
Merge branch 'develop' into develop
KennethNwanoro Mar 12, 2021
c814e39
Changes for tests
KennethNwanoro Mar 15, 2021
3b07c30
Merge branch 'develop' of https://github.com/KennethNwanoro/PyBaMM in…
KennethNwanoro Mar 15, 2021
9f9744e
Changes for tests
KennethNwanoro Mar 15, 2021
aa89cfb
Changes for tests
KennethNwanoro Mar 15, 2021
09b1371
Changes for tests
KennethNwanoro Mar 15, 2021
5e127a0
Changes for tests
KennethNwanoro Mar 15, 2021
a940782
Changes for tests
KennethNwanoro Mar 15, 2021
8cac84b
Update pybamm/input/parameters/lithium-ion/lithium_platings/okane2020…
KennethNwanoro Mar 17, 2021
32b9ee2
Update pybamm/input/parameters/lithium-ion/lithium_platings/okane2020…
KennethNwanoro Mar 17, 2021
6daaed5
Changes for tests
KennethNwanoro Mar 17, 2021
879ffc7
Merge branch 'develop' of https://github.com/KennethNwanoro/PyBaMM in…
KennethNwanoro Mar 17, 2021
38e262b
Changes for tests
KennethNwanoro Mar 18, 2021
3b1811e
Update README.md
KennethNwanoro Mar 18, 2021
386e135
Changes for tests
KennethNwanoro Mar 18, 2021
a331bad
Update README.md
KennethNwanoro Mar 18, 2021
1f27f3b
Changes for tests
KennethNwanoro Mar 19, 2021
b724272
Update pybamm/models/submodels/porosity/leading_reaction_driven_poros…
KennethNwanoro Mar 19, 2021
b8e296e
Update pybamm/models/submodels/porosity/full_reaction_driven_porosity.py
KennethNwanoro Mar 19, 2021
5a2c67c
Update pybamm/models/submodels/porosity/base_porosity.py
KennethNwanoro Mar 19, 2021
a13b035
Update pybamm/input/parameters/lithium-ion/lithium_platings/yang2017_…
KennethNwanoro Mar 19, 2021
651d21f
Update tests/integration/test_models/test_full_battery_models/test_li…
KennethNwanoro Mar 19, 2021
499805c
Update pybamm/models/submodels/interface/lithium_plating/reversible_p…
KennethNwanoro Mar 19, 2021
f9b5370
Update tests/integration/test_models/test_full_battery_models/test_li…
KennethNwanoro Mar 19, 2021
149c365
Update tests/unit/test_models/test_full_battery_models/test_base_batt…
KennethNwanoro Mar 19, 2021
731048e
Update pybamm/models/submodels/interface/lithium_plating/irreversible…
KennethNwanoro Mar 19, 2021
acd47ac
Update pybamm/CITATIONS.txt
KennethNwanoro Mar 19, 2021
276b1c6
Delete python
KennethNwanoro Mar 19, 2021
c7154e5
Changes for changelog.md
KennethNwanoro Mar 19, 2021
c092252
Update docs/source/models/lithium_ion/yang2017.rst
KennethNwanoro Mar 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions examples/notebooks/lithium-plating.ipynb

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/notebooks/using-submodels.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@
"source": [
"model.submodels[\"current collector\"] = pybamm.current_collector.Uniform(model.param)\n",
"model.submodels[\"thermal\"] = pybamm.thermal.isothermal.Isothermal(model.param)\n",
"model.submodels[\"porosity\"] = pybamm.porosity.Constant(model.param)\n",
"model.submodels[\"porosity\"] = pybamm.porosity.Constant(model.param, model.options)\n",
"model.submodels[\"negative active material\"] = pybamm.active_material.Constant(\n",
" model.param, \"Negative\", model.options\n",
")\n",
Expand Down
2 changes: 1 addition & 1 deletion examples/scripts/custom_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
)
model.submodels["current collector"] = pybamm.current_collector.Uniform(model.param)
model.submodels["thermal"] = pybamm.thermal.isothermal.Isothermal(model.param)
model.submodels["porosity"] = pybamm.porosity.Constant(model.param)
model.submodels["porosity"] = pybamm.porosity.Constant(model.param, model.options)
model.submodels["negative active material"] = pybamm.active_material.Constant(
model.param, "Negative", model.options
)
Expand Down
17 changes: 16 additions & 1 deletion pybamm/CITATIONS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,19 @@ doi={10.1149/2.0661810jes}
doi = {10.1006/jcph.2002.7041},
}


@article{Yang2017,
author = {Yang, Xiao Guang and Leng, Yongjun and Zhang, Guangsheng and Ge, Shanhai and Wang, Chao Yang},
title = {Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging},
journal = {Journal of Power Sources},
volume = {360},
pages = {28--40},
year = {2017},
publisher = {Elsevier},
doi = {10.1016/j.jpowsour.2017.05.110},
}


@article{Ramadass2004,
title={Development of first principles capacity fade model for Li-ion cells},
author={Ramadass, P and Haran, Bala and Gomadam, Parthasarathy M and White, Ralph and Popov, Branko N},
Expand All @@ -358,7 +371,8 @@ doi={10.1149/2.0661810jes}
year={2004},
publisher={IOP Publishing},
doi={10.1149/1.1634273},
}
}
KennethNwanoro marked this conversation as resolved.
Show resolved Hide resolved


@article{Newman1962,
title={Theoretical analysis of current distribution in porous electrodes},
Expand All @@ -380,3 +394,4 @@ doi={10.1149/2.0661810jes}
year={2020},
publisher={Elsevier}
}

4 changes: 2 additions & 2 deletions pybamm/expression_tree/symbol.py
Original file line number Diff line number Diff line change
Expand Up @@ -610,8 +610,8 @@ def diff(self, variable):
return pybamm.Scalar(0)

def _diff(self, variable):
"""Default behaviour for differentiation, overriden by Binary and Unary Operators
"""
"""Default behaviour for differentiation, overriden by Binary
and Unary Operators"""
raise NotImplementedError

def jac(self, variable, known_jacs=None, clear_domain=True):
Expand Down
34 changes: 34 additions & 0 deletions pybamm/input/parameters/lithium-ion/cells/Yang2017/parameters.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Name [units],Value,Reference,Notes,,
# Empty rows and rows starting with ‘#’ will be ignored,,,,,
,,,,,
# Macroscale geometry,,,,,
Negative current collector thickness [m],2.50E-05,Scott Moura FastDFN,no info from Peyman MPM,,`
Negative electrode thickness [m],4.87E-05,Yang 2017,,,
Separator thickness [m],2.50E-05,Yang 2017,,,
Positive electrode thickness [m],4.75E-05,Yang 2017,,,
Positive current collector thickness [m],2.50E-05,Scott Moura FastDFN,no info from Peyman MPM,,
Electrode height [m],1,KOKAM SLPB78205130H,Not needed for 1D,,
Electrode width [m],0.205,KOKAM SLPB78205130H,Not needed for 1D,,
Cell cooling surface area [m2],0.41,,pouch,,
Cell volume [m3],3.92E-05,,pouch,,
,,,,,
# Current collector properties ,,,,,
Negative current collector conductivity [S.m-1],59600000,LIONSIMBA,carbon,,
Positive current collector conductivity [S.m-1],35500000,LIONSIMBA,aluminium,,
,,,,,
# Density,,,,,
Negative current collector density [kg.m-3],8954,,,,
Positive current collector density [kg.m-3],2707,,,,
,,,,,
# Specific heat capacity,,,,,
Negative current collector specific heat capacity [J.kg-1.K-1],385,,,,
Positive current collector specific heat capacity [J.kg-1.K-1],897,,,,
,,,,,
# Thermal conductivity,,,,,
Negative current collector thermal conductivity [W.m-1.K-1],401,,,,
Positive current collector thermal conductivity [W.m-1.K-1],237,,,,
,,,,,
# Electrical,,,,,
Nominal cell capacity [A.h],12.4,Yang2017,,,
Typical current [A],12.4,,1C current,,
Current function [A],12.4,default current function,,,
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Parameters for a LiPF6 electrolyte, from the papers

> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery i. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848.

>Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857.
> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857.

The fits to data for the electrode and electrolyte properties are those provided
by Dr. Simon O’Kane in the paper:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Lithium plating parameters

Some example parameters for lithium plating from the paper:

> O’Kane, S. E. J., Campbell, I. D., Marzook, M. W. J., Offer, G. J., & Marinescu, M. (2020) Physical origin of the differential voltage minimum associated with lithium plating in Li-ion batteries. Journal of The Electrochemical Society 167(3), 090540.

Note: this parameter set does not claim to be representative of the true parameter values. Instead these are parameter values that were used to fit plating models to observed experimental data in the referenced papers.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Name [units],Value,Reference,Notes
,,,
,,,
# Lithium plating parameters,,,
Lithium metal partial molar volume [m3.mol-1],1.30E-05,Yang2017,
Exchange-current density for plating [A.m-2],[function]plating_exchange_current_density_OKane2020,,
Exchange-current density for stripping [A.m-2],[function]stripping_exchange_current_density_OKane2020,,
Initial plated lithium concentration [mol.m-3],0.00E+00,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from pybamm import constants


def plating_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li plating reaction [A.m-2].
References
----------
.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.
Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]
Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = 1e-10

return constants.F * k_plating * c_e
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from pybamm import constants


def stripping_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li stripping reaction [A.m-2].

References
----------

.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.

Parameters
----------

c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]

Returns
-------

:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = 1e-10

return constants.F * k_plating * c_Li
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SEI parameters

Some example parameters for SEI growth from the papers:

> Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the Electrochemical Society, 151(2), A196-A203.
> Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), A456-A462.
> Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), 1950-1955.
> Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics-Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The Electrochemical Society, 156(3),
> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40.

Note: this parameter set does not claim to be representative of the true parameter values. Instead these are parameter values that were used to fit SEI models to observed experimental data in the referenced papers.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Name [units],Value,Reference,Notes
,,,
,,,
# Lithium plating parameters,,,
Lithium metal partial molar volume [m3.mol-1],1.30E-05,Yang2017,
Lithium plating kinetic rate constant [m.s-1],1.00E+00,,Not required for Yang2017
KennethNwanoro marked this conversation as resolved.
Show resolved Hide resolved
Exchange-current density for plating [A.m-2],0.001,,
Initial plated lithium concentration [mol.m-3],0.00E+00,,
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Negative electrode OCP [V],[data]graphite_LGM50_ocp_Chen2020,Chen 2020,
# Microstructure,,,
Negative electrode porosity,0.25,Chen 2020,
Negative electrode active material volume fraction,0.75,Chen 2020,
Negative particle radius [m],5.86E-6,Chen 2020,
Negative particle radius [m],5.86E-06,Chen 2020,
Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical
Negative electrode Bruggeman coefficient (electrode),1.5,default,
,,,
Expand All @@ -30,7 +30,6 @@ Negative electrode specific heat capacity [J.kg-1.K-1],700,default,
Negative electrode thermal conductivity [W.m-1.K-1],1.7,default,
Negative electrode OCP entropic change [V.K-1],0,,
,,,
# Lithium plating parameters,,,
Lithium metal partial molar volume [m3.mol-1],1.3E-5,,
Lithium plating kinetic rate constant [m.s-1],1E-10,,
Initial plated lithium concentration [mol.m-3],0,,
,,,
,,,
,,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Graphite negative electrode parameters
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we using the Ecker parameter set for Yang? If so, we don't need to define it again. Otherwise, the Yang paper should be listed in the references here.


Parameters for a graphite negative electrode, from the papers:

> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery I. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848.

> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857.

The fits to data for the electrode and electrolyte properties are those provided
by Dr. Simon O’Kane in the paper:

> Richardson, Giles, et. al. "Generalised single particle models for high-rate operation of graded lithium-ion electrodes: Systematic derivation and validation." Electrochemica Acta 339 (2020): 135862
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from pybamm import exp, constants


def graphite_diffusivity_Ecker2015(sto, T):
"""
Graphite diffusivity as a function of stochiometry [1, 2, 3].

References
----------
.. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of
a lithium-ion battery i. determination of parameters." Journal of the
Electrochemical Society 162.9 (2015): A1836-A1848.
.. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of
a lithium-ion battery ii. model validation." Journal of The Electrochemical
Society 162.9 (2015): A1849-A1857.
.. [3] Richardson, Giles, et. al. "Generalised single particle models for
high-rate operation of graded lithium-ion electrodes: Systematic derivation
and validation." Electrochemica Acta 339 (2020): 135862

Parameters
----------
sto: :class:`pybamm.Symbol`
Electrode stochiometry
T: :class:`pybamm.Symbol`
Dimensional temperature

Returns
-------
:class:`pybamm.Symbol`
Solid diffusivity
"""

D_ref = 8.4e-13 * exp(-11.3 * sto) + 8.2e-15
E_D_s = 3.03e4
arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296))

return D_ref * arrhenius
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from pybamm import exp, constants, Parameter


def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, T):
"""
Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in
EC:DMC.

References
----------
.. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of
a lithium-ion battery i. determination of parameters." Journal of the
Electrochemical Society 162.9 (2015): A1836-A1848.
.. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of
a lithium-ion battery ii. model validation." Journal of The Electrochemical
Society 162.9 (2015): A1849-A1857.
.. [3] Richardson, Giles, et. al. "Generalised single particle models for
high-rate operation of graded lithium-ion electrodes: Systematic derivation
and validation." Electrochemica Acta 339 (2020): 135862

Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_s_surf : :class:`pybamm.Symbol`
Particle concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]

Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_ref = 1.995 * 1e-10

# multiply by Faraday's constant to get correct units
m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations
E_r = 53400

arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15))

c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]")

return (
m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
0.0015151515151514694, 1.4325153374233128
0.0060606060606061, 0.8619631901840491
0.010606060606060619, 0.7914110429447854
0.016666666666666607, 0.6595092024539877
0.021212121212121238, 0.5797546012269938
0.022727272727272707, 0.5245398773006136
0.030303030303030276, 0.4754601226993864
0.039393939393939315, 0.4141104294478526
0.045454545454545414, 0.3680981595092023
0.05303030303030298, 0.3312883435582821
0.06666666666666665, 0.28220858895705514
0.07878787878787874, 0.24846625766871155
0.08939393939393936, 0.2239263803680982
0.10151515151515145, 0.22085889570552153
0.12727272727272732, 0.21165644171779152
0.14242424242424245, 0.2024539877300613
0.15909090909090917, 0.19938650306748462
0.17727272727272725, 0.19325153374233128
0.19393939393939397, 0.18404907975460127
0.21363636363636362, 0.1809815950920246
0.23333333333333328, 0.17177914110429437
0.25757575757575757, 0.16564417177914104
0.2787878787878788, 0.16257668711656437
0.303030303030303, 0.15337423312883436
0.32878787878787885, 0.14110429447852746
0.35151515151515156, 0.13496932515337412
0.3712121212121211, 0.13190184049079745
0.39242424242424234, 0.128834355828221
0.5681818181818183, 0.1257668711656441
0.5878787878787879, 0.12269938650306744
0.6060606060606062, 0.1165644171779141
0.6272727272727272, 0.10122699386503076
0.6545454545454545, 0.0950920245398772
0.6742424242424243, 0.0950920245398772
0.6939393939393939, 0.08895705521472386
0.7181818181818183, 0.08895705521472386
0.7393939393939393, 0.08588957055214719
0.8909090909090911, 0.08282208588957074
0.956060606060606, 0.08272208588957074
0.9772727272727273, 0.07975460122699385
1, 0.07055214723926384
Loading