Skip to content

Commit

Permalink
Merge pull request #824 from pybamm-team/issue-821-add-NCA-set
Browse files Browse the repository at this point in the history
Issue 821 add nca set
  • Loading branch information
Scottmar93 committed Feb 13, 2020
2 parents f68b303 + 7e06f15 commit bc96ffd
Show file tree
Hide file tree
Showing 28 changed files with 668 additions and 5 deletions.
2 changes: 1 addition & 1 deletion examples/scripts/compare_lithium_ion.py
Expand Up @@ -26,7 +26,7 @@

# load parameter values and process models and geometry
param = models[0].default_parameter_values
param["Current function [A]"] = 1.0
param["Current function [A]"] = 1

for model in models:
param.process_model(model)
Expand Down
11 changes: 11 additions & 0 deletions examples/scripts/nca_parameters.py
@@ -0,0 +1,11 @@
import pybamm as pb

pb.set_logging_level("INFO")
model = pb.lithium_ion.DFN()

chemistry = pb.parameter_sets.NCA_Kim2011
parameter_values = pb.ParameterValues(chemistry=chemistry)

sim = pb.Simulation(model, parameter_values=parameter_values, C_rate=1)
sim.solve()
sim.plot()
@@ -0,0 +1,7 @@
# Graphite anode parameters

Parameters for a graphite anode, from the paper

> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969.
Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio of the volumetric heat capacity provided in smith to the calculated value. This ensures that the values produce the same effective cell volumetric heat capacity. This works fine for x-lumped thermal models but not for x-full thermal models. We do the same for the planar effective thermal conductivity.
@@ -0,0 +1,37 @@
from pybamm import exp


def graphite_diffusivity_Kim2011(sto, T, T_inf, E_D_s, R_g):
"""
Graphite diffusivity [1].
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
Parameters
----------
sto: :class: `numpy.Array`
Electrode stochiometry
T: :class: `numpy.Array`
Dimensional temperature
T_inf: double
Reference temperature
E_D_s: double
Solid diffusion activation energy
R_g: double
The ideal gas constant
Returns
-------
: double
Solid diffusivity
"""

D_ref = 9 * 10 ** (-14)
arrhenius = exp(E_D_s / R_g * (1 / T_inf - 1 / T))

return D_ref * arrhenius
@@ -0,0 +1,48 @@
from pybamm import exp


def graphite_electrolyte_reaction_rate_Kim2011(T, T_inf, E_r, R_g):
"""
Reaction rate for Butler-Volmer reactions between graphite and LiPF6 in EC:DMC
[1].
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
Parameters
----------
T: :class: `numpy.Array`
Dimensional temperature
T_inf: double
Reference temperature
E_r: double
Reaction activation energy
R_g: double
The ideal gas constant
Returns
-------
:`numpy.Array`
Reaction rate
"""

i0_ref = 36 # reference exchange current density at 100% SOC
sto = 0.36 # stochiometry at 100% SOC
c_s_n_max = 2.87 * 10 ** 4 # max electrode concentration
c_s_n_ref = sto * c_s_n_max # reference electrode concentration
c_e_ref = 1.2 * 10 ** 3 # reference electrolyte concentration
alpha = 0.5 # charge transfer coefficient

m_ref = (
2
* i0_ref
/ (c_e_ref ** alpha * (c_s_n_max - c_s_n_ref) ** alpha * c_s_n_ref ** alpha)
)

arrhenius = exp(E_r / R_g * (1 / T_inf - 1 / T))

return m_ref * arrhenius
@@ -0,0 +1,29 @@
from pybamm import exp, tanh


def graphite_ocp_Kim2011(sto):
"""
Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1].
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
"""

u_eq = (
0.124
+ 1.5 * exp(-70 * sto)
- 0.0351 * tanh((sto - 0.286) / 0.083)
- 0.0045 * tanh((sto - 0.9) / 0.119)
- 0.035 * tanh((sto - 0.99) / 0.05)
- 0.0147 * tanh((sto - 0.5) / 0.034)
- 0.102 * tanh((sto - 0.194) / 0.142)
- 0.022 * tanh((sto - 0.98) / 0.0164)
- 0.011 * tanh((sto - 0.124) / 0.0226)
+ 0.0155 * tanh((sto - 0.105) / 0.029)
)

return u_eq
@@ -0,0 +1,38 @@
Name [units],Value,Reference,Notes
# Empty rows and rows starting with ‘#’ will be ignored,,,
,,,
# Electrode properties,,,
Negative electrode conductivity [S.m-1],100,,
Maximum concentration in negative electrode [mol.m-3],2.87E4,,
Negative electrode diffusivity [m2.s-1],[function]graphite_diffusivity_Kim2011,,
Negative electrode OCP [V],[function]graphite_ocp_Kim2011,
,,,
# Microstructure,,,
Negative electrode porosity,0.4,,
Negative electrode active material volume fraction,0.51,,
Negative particle radius [m],5.083E-7,,
Negative particle distribution in x,1,,
Negative electrode surface area density [m-1],3.01E6,,
Negative electrode Bruggeman coefficient (electrolyte),2,,
Negative electrode Bruggeman coefficient (electrode),2,,
,,,
# Interfacial reactions,,,
Negative electrode cation signed stoichiometry,-1,,
Negative electrode electrons in reaction,1,,
Reference OCP vs SHE in the negative electrode [V],,,
Negative electrode charge transfer coefficient,0.5,,
Negative electrode double-layer capacity [F.m-2],0.2,Not reported in Kim2011,
,,,
# Density,,,
Negative electrode density [kg.m-3],2136.43638,1657 * 1.28934,
,,,
# Thermal parameters,,,
Negative electrode specific heat capacity [J.kg-1.K-1],700,,
Negative electrode thermal conductivity [W.m-1.K-1],1.1339,1.7 * 0.667,
Negative electrode OCP entropic change [V.K-1],0,,
,,,
# Activation energies,,,
Reference temperature [K],298.15,25C,
Negative electrode reaction rate,[function]graphite_electrolyte_reaction_rate_Kim2011,,
Negative reaction rate activation energy [J.mol-1],3E4,,
Negative solid diffusion activation energy [J.mol-1],4E3,,
8 changes: 8 additions & 0 deletions input/parameters/lithium-ion/cathodes/nca_Kim2011/README.md
@@ -0,0 +1,8 @@
# Nickel Cobalt Aluminium (NCA) cathode parameters

Parameters for an NCA cathode, from the paper

> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969.
Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio of the volumetric heat capacity provided in smith to the calculated value. This ensures that the values produce the same effective cell volumetric heat capacity. This works fine for x-lumped thermal models but not for x-full thermal models. We do the same for the planar effective thermal conductivity.

@@ -0,0 +1,37 @@
from pybamm import exp


def nca_diffusivity_Kim2011(sto, T, T_inf, E_D_s, R_g):
"""
NCA diffusivity as a function of stochiometry [1].
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
Parameters
----------
sto: :class: `numpy.Array`
Electrode stochiometry
T: :class: `numpy.Array`
Dimensional temperature
T_inf: double
Reference temperature
E_D_s: double
Solid diffusion activation energy
R_g: double
The ideal gas constant
Returns
-------
: double
Solid diffusivity
"""

D_ref = 3 * 10 ** (-15)
arrhenius = exp(E_D_s / R_g * (1 / T_inf - 1 / T))

return D_ref * arrhenius
@@ -0,0 +1,46 @@
from pybamm import exp


def nca_electrolyte_reaction_rate_Kim2011(T, T_inf, E_r, R_g):
"""
Reaction rate for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC
[1].
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
Parameters
----------
T: :class: `numpy.Array`
Dimensional temperature
T_inf: double
Reference temperature
E_r: double
Reaction activation energy
R_g: double
The ideal gas constant
Returns
-------
: double
Reaction rate
"""
i0_ref = 4 # reference exchange current density at 100% SOC
sto = 0.41 # stochiometry at 100% SOC
c_s_max = 4.9 * 10 ** 4 # max electrode concentration
c_s_ref = sto * c_s_max # reference electrode concentration
c_e_ref = 1.2 * 10 ** 3 # reference electrolyte concentration
alpha = 0.5 # charge transfer coefficient

m_ref = (
2
* i0_ref
/ (c_e_ref ** alpha * (c_s_max - c_s_ref) ** alpha * c_s_ref ** alpha)
)
arrhenius = exp(E_r / R_g * (1 / T_inf - 1 / T))

return m_ref * arrhenius
@@ -0,0 +1,75 @@
0.370214428274133, 4.210440859985937
0.37577436378229034, 4.198214873372019
0.3836904770360269, 4.182142025684674
0.3918959828337426, 4.165163132847251
0.40106922140226364, 4.149604765177982
0.40686180736573874, 4.138286599370602
0.4116896199858422, 4.129799619141419
0.4194137255876832, 4.115653556008545
0.4266554445178383, 4.10292308566477
0.4329304171529992, 4.090189327068291
0.4396907358872798, 4.0802916864290655
0.44548430832656627, 4.070390757537136
0.4532103868800297, 4.059079168235163
0.45852157264763016, 4.050593832132332
0.4628660121202365, 4.042105207776797
0.4710764502970082, 4.032212499516627
0.47638763606460877, 4.023727163413795
0.4836313279463863, 4.013831166900922
0.48942490038567266, 4.0039302380089925
0.4981187117099415, 3.994039173875174
0.5077763099017708, 3.979899687247709
0.5164711077018508, 3.971425860029342
0.5280592390562348, 3.9530412391609326
0.537716837248064, 3.938901752533467
0.5493089145056929, 3.9261860793268606
0.5565516199116592, 3.914872845898536
0.5671749779226715, 3.8993194106083244
0.5768345490661232, 3.88801439781176
0.5869745339296383, 3.872459318395196
0.5961487589739706, 3.8583181876413786
0.6087065960507823, 3.844188565772025
0.6159493014567486, 3.832875332343701
0.6246431127810175, 3.822984268209883
0.6352684437436521, 3.8102653067505723
0.6463781343295951, 3.798965226333064
0.660386090848898, 3.784840536842767
0.6763275399581893, 3.7707224238578783
0.6917856159199836, 3.756602666746637
0.7038630392767319, 3.7467231114972837
0.7246372333851825, 3.7312042028604644
0.7391305360036051, 3.71991563132742
0.7531414519503417, 3.710042652583475
0.7676347545687643, 3.698754081050431
0.7797121779255124, 3.6888745258010776
0.7917886148064496, 3.677577733636274
0.8043484248348838, 3.6662825855978216
0.8144923556016439, 3.65639645384306
0.8260854193350838, 3.645098017551904
0.8357449904785356, 3.6337930047553395
0.8463732808686039, 3.6253257540423807
0.8560318655362443, 3.612603504330366
0.8652100364838214, 3.604131321238351
0.8739028613322789, 3.5928230201890825
0.8840477785748505, 3.5843541253497717
0.8927425763749305, 3.5758802981314046
0.9024031339941933, 3.5659925222502906
0.9125490377125759, 3.5589408643264306
0.9222105818076499, 3.5504703253607675
0.9338056184927125, 3.5420063629005125
0.9482959616837011, 3.526466080621117
0.957951586923908, 3.5094921201627503
0.965192319378252, 3.495344412903525
0.9709740541078039, 3.4684366410261873
0.9743448419547373, 3.450024070009794
0.976744937603432, 3.425939263078894
0.9805892338397507, 3.393355967034346
0.9820196237660176, 3.36501616110439
0.9834510001680955, 3.3380935920898844
0.9848843495217959, 3.3140054969062804
0.9858323527763772, 3.287081283765423
0.987258796799399, 3.2530725301736645
0.9896421223593032, 3.204894695680104
0.9905703960976598, 3.1496257442302342
0.9915055751666949, 3.104277451188519
0.9933828386354436, 3.023501523513243
@@ -0,0 +1,37 @@
from pybamm import exp


def nca_ocp_Kim2011_function(sto):
"""
NCA open-circuit potential (OCP) [1]. Fit in paper seems wrong to using
nca_ocp_Kim2011_data.csv instead.
References
----------
.. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A.
(2011). Multi-domain modeling of lithium-ion batteries encompassing
multi-physics in varied length scales. Journal of The Electrochemical
Society, 158(8), A955-A969.
Parameters
----------
sto: double
Stochiometry of material (li-fraction)
"""

u_eq = (
1.68 * sto ** 10
- 2.222 * sto ** 9
+ 15.056 * sto ** 8
- 23.488 * sto ** 7
+ 81.246 * sto ** 6
- 344.566 * sto ** 5
+ 621.3475 * sto ** 4
- 544.774 * sto ** 3
+ 264.427 * sto ** 2
- 66.3691 * sto
+ 11.8058
- 0.61386 * exp(5.8201 * sto ** 136.4)
)

return u_eq

0 comments on commit bc96ffd

Please sign in to comment.