In battery R&D, simulation is becoming increasingly important. However, many engineers have experienced the frustration of trying to fit physical models like SPM (Single Particle Model) or DFN (Doyle-Fuller-Newman) to experimental data.
This article explains the fundamental reasons why parameter identification (fitting) for battery physical models is so difficult, and provides a practical approach to solving this issue.
- Non-Uniqueness & Cross-Correlation: Battery physical models contain 20+ intertwined parameters where vastly different combinations of kinetics, diffusion, and stoichiometry yield identical voltage curves (Garbage In, Garbage Out risk).
- Structured Multi-Step Identification: Avoid all-at-once unconstrained fitting; systematically decouple parameters into physical stages: OCV/stoichiometry at low rates ($\text{C}/20$), kinetic overpotentials via GITT/EIS, and diffusion/transport limits at high C-rates.
- Domain Physics Constraints: Optimization algorithms (Nelder-Mead / LM) must be bound by strict thermodynamic and material physics limits to ensure parameters remain valid across different temperatures and operating profiles.
1. The Problem of "Intertwined" Parameters
Battery physical models require a large number of parameters to faithfully reproduce internal electrochemical and physical phenomena. For example, even a basic SPM has the following parameters:
- Geometric parameters: Electrode thickness, active material volume fraction, particle radius
- Thermodynamic parameters: OCP (Open Circuit Potential) curve, initial stoichiometry
- Kinetic parameters: Exchange current density ($j_0$), solid-phase diffusion coefficient ($D_s$)
The problem is that these parameters do not affect the voltage curve independently. For example, it is extremely difficult to distinguish just from the shape of the voltage curve whether the voltage drop at the end of discharge is due to "delayed solid-phase diffusion (drop in $D_s$)" or "simply running out of capacity (underestimation of active material amount)".
If you leave all parameters free and run an optimization algorithm (e.g., simple least squares) all at once, the algorithm will output a parameter set that matches the visual curve but is physically impossible (e.g., abnormally large diffusion coefficients). This cannot be used for predictions at different temperatures or rates.
2. The Fundamental Premise: Measure What Can Be Measured
The biggest secret to successful parameter identification is the premise: "always measure and input the physical quantities that can be measured." Values obtained from teardown analyses or design specs, such as electrode thickness, porosity, and active material weight, dramatically narrow down the parameter search space.
In battery models with a huge number of variables, using measured values brings ultimate "peace of mind." Even if there is slight uncertainty in the measurement accuracy, serving as a strong guideline for the optimization algorithm to "search for nearby reference values" is extremely helpful in ensuring the reliability of the physical model.
So, how much should we trust measured values?
This is a very vexing problem. A model is strictly an "idealized model" and does not perfectly represent every complex physical phenomenon in reality. For example, the designed thickness of an electrode does not necessarily match its "electrochemically active thickness" after repeated charging/discharging and expansion.
Therefore, instead of "fixing the measured value completely as the 100% correct answer," an indispensable sense of compromise and balance is required, such as "allowing parameter variations only within a narrow range around the measured value."
Current fitting technologies, including the SPMe Curve Fitting Tool provided by us, operate by matching parameters so that the "battery's charge/discharge performance (voltage/current) matches."
Therefore, in a model with a massive number of parameters, a situation can occur where "even if physical parameters deviate from reality, the model superficially represents the battery performance (it appears to fit)." Thus, this alone does not complete a rigorous physical representation of the battery.
If you have the actual target battery on hand, we strongly recommend performing physical analyses such as CT scans, teardown investigations, and single-electrode electrochemical measurements to obtain reliable individual numerical values (ground truth). "We want to replace all real analysis with simulation" is the ideal and ultimate goal of us engineers, but the technological reality at this point is that they still complement each other.
3. The Approach of Decoupling Physical Phenomena
The most reliable approach to solving this multi-dimensional inverse problem is to **"intentionally create conditions where parameters have high sensitivity and identify them sequentially."** We call this the Multi-Step Identification Method.
Below is a summary of the fitting parameters that are the targets of optimization (adjustment) in each of the four fitting steps (STEP 1, STEP 2, STEP 2.5, and STEP 3):
STEP 1: OCV Fitting & Electrode Balance Adjustment
Using experimental data at a low C-rate (such as Quasi-OCV), this step optimizes the charge/discharge reference points and the capacity balance (N/P ratio) of the positive and negative electrodes.
| Parameter Name | Physical Symbol | Code Variable Path | Initial Value / Bounds | Physical Meaning / Usage |
|---|---|---|---|---|
| Negative electrode initial lithium stoichiometry | $x_{100}$ | n.initialConc / n.maxConc |
Initial: parameter set value Bounds: [0.6, 0.99] |
Lithium ratio (stoichiometric ratio) in the negative electrode active material at SOC 100% (fully charged state). |
| Positive electrode initial lithium stoichiometry | $y_{100}$ | p.initialConc / p.maxConc |
Initial: parameter set value Bounds: [0.05, 0.5] |
Lithium ratio (stoichiometric ratio) in the positive electrode active material at SOC 100% (fully charged state). |
| Electrode width | $w$ | electrodeWidth |
Initial: parameter set value Bounds: [0.5x, 2.0x of current width]
|
Scaling factor for the electrode area. Used for absolute fitting of total capacity. |
| Positive electrode thickness | $L_p$ | p.thickness |
Initial: parameter set value Bounds: [0.5x, 2.0x of current thickness]
|
Thickness of the positive electrode. Used to indirectly tune the capacity ratio (N/P ratio) with the negative electrode. |
NOTE
In STEP 1, in addition to the optimization parameters above, the following automatic synchronization and corrections are performed:
- Nominal Capacity (
nominalCapacity): Automatically synchronized with the maximum capacity of the experimental data. - Cutoff Voltages (
lowerVoltageCutoff,upperVoltageCutoff): Automatically synchronized with the minimum/maximum voltage of the experimental data. - OCP Correction (Residual Correction): A process that reflects the voltage difference (residuals) between experimental data and simulation during the fitting cycles back into the base potential table (OCP table) to correct it.
STEP 2: Solid Diffusion & Reaction Kinetics Fitting
Fits the discharge curves at medium-to-low C-rates (voltage drop amount and initial voltage drop). The search is performed in $\log_{10}$ space.
| Parameter Name | Physical Symbol | Code Variable Path | Initial Value / Bounds | Physical Meaning / Usage |
|---|---|---|---|---|
| Logarithm of negative electrode solid diffusion coefficient | $\log_{10}(D_{s,n})$ | n.diffusivity |
Initial: $\log_{10}$(current value) Bounds: [-16, -11] ($10^{-16}
\sim 10^{-11} \text{ m}^2/\text{s}$) |
Ease of diffusion of lithium atoms inside the negative electrode particles. |
| Logarithm of positive electrode solid diffusion coefficient | $\log_{10}(D_{s,p})$ | p.diffusivity |
Initial: $\log_{10}$(current value) Bounds: [-17, -12] ($10^{-17}
\sim 10^{-12} \text{ m}^2/\text{s}$) |
Ease of diffusion of lithium atoms inside the positive electrode particles. |
| Logarithm of negative electrode reference exchange current density | $\log_{10}(k_n)$ | n.exchangeCurrentDensityRef |
Initial: $\log_{10}$(current value) Bounds: [-9, -3] |
Rate constant of charge transfer (lithium insertion/extraction reaction) at the negative electrode particle interface. |
| Logarithm of positive electrode reference exchange current density | $\log_{10}(k_p)$ | p.exchangeCurrentDensityRef |
Initial: $\log_{10}$(current value) Bounds: [-9, -3] |
Rate constant of charge transfer reaction at the positive electrode particle interface. |
STEP 2.5: Electrolyte Dynamics Fitting
Fits the transport resistance and tortuosity (difficulty of ion movement) in the liquid phase (electrolyte), which have a significant impact during high C-rate discharge. Multipliers are optimized in $\log_{10}$ space, and the Bruggeman exponent is optimized in linear space.
| Parameter Name | Physical Symbol | Code Variable Path | Initial Value / Bounds | Physical Meaning / Usage |
|---|---|---|---|---|
| Logarithm of electrolyte diffusion coefficient multiplier | $\log_{10}(D_e, \text{mult})$ | e.diffusivityMultiplier |
Initial: 0 ($\log_{10}(1.0)$) Bounds: [-1.5, 1.5] ($10^{-1.5} \sim
10^{1.5}$ times) |
Scaling factor for the lithium-ion diffusion coefficient in the liquid phase (adjustment of liquid phase diffusion resistance). |
| Logarithm of electrolyte ionic conductivity multiplier | $\log_{10}(\kappa_e, \text{mult})$ | e.conductivityMultiplier |
Initial: 0 ($\log_{10}(1.0)$) Bounds: [-1.5, 1.5] ($10^{-1.5} \sim
10^{1.5}$ times) |
Scaling factor for the electrolyte ionic conductivity (adjustment of liquid phase ohmic resistance). |
| Separator Bruggeman exponent | $p_s$ | s.bruggeman |
Initial: parameter set value Bounds: [1.0, 4.5] |
Exponent representing the complexity of the ion path (tortuosity) in the separator porous structure. |
| Negative electrode Bruggeman exponent | $p_n$ | n.bruggeman |
Initial: parameter set value Bounds: [1.0, 4.5] |
Exponent representing the complexity of the ion path (tortuosity) in the negative porous electrode. |
| Positive electrode Bruggeman exponent | $p_p$ | p.bruggeman |
Initial: parameter set value Bounds: [1.0, 4.5] |
Exponent representing the complexity of the ion path (tortuosity) in the positive porous electrode. |
STEP 3: Temperature Dependency (Activation Energy) Fitting
Optimizes temperature response characteristics based on the Arrhenius relation using experimental data under temperature environments (e.g., 0°C, 45°C) other than the reference temperature (usually 25°C). To maintain physical consistency and compress the search space, optimization is performed in linear space by symmetrizing parameters into three groups.
| Grouped Parameter Name | Applied Code Variable | Initial Value / Bounds | Physical Meaning / Usage |
|---|---|---|---|
| Solid diffusion activation energy ($E_{a, D_s}$) | n.diffusivityActivationEnergyp.diffusivityActivationEnergy(applied as a common value for both positive and negative electrodes) |
Initial: current value (35000 if not set) Bounds: [20000, 50000]
($\text{J/mol}$) |
Controls the temperature dependency of the solid diffusion coefficient ($D_s$). Affects the discharge end capacity decrease at low temperatures. |
| Reaction kinetics activation energy ($E_{a, k}$) | n.activationEnergyp.activationEnergy(applied as a common value for both positive and negative electrodes) |
Initial: current value (35000 if not set) Bounds: [20000, 58000]
($\text{J/mol}$) |
Controls the temperature dependency of the charge transfer reaction (exchange current density $k$). Affects the voltage drop at low temperatures. |
| Electrolyte transport activation energy ($E_{a, e}$) | e.diffusivityActivationEnergye.conductivityActivationEnergy(applied as a common value for diffusion/conductivity) |
Initial: current value (17107 if not set) Bounds: [10000, 30000]
($\text{J/mol}$) |
Controls the temperature dependency of the lithium-ion diffusion coefficient and ionic conductivity in the electrolyte. |
NOTE
Note that contactResistance, which is a fitting parameter for contact resistance
(and its activation energy contactResistanceActivationEnergy), is forced to 0
inside each fitter and is excluded from the optimization targets (search variables) of the
current fitting steps.
4. Accelerating R&D and Engineering Intuition through Tools
Executing such multi-step fitting manually by writing scripts is highly labor-intensive and time-consuming. There is also a constant risk of falling into local minima due to poor initial value settings.
In battery R&D, a researcher's primary job is not "writing simulator code," but "analyzing battery degradation factors or evaluating the potential of next-generation materials from the extracted parameters."
Furthermore, there is another incredibly important use case for simulators: "Cultivating engineering intuition." What impact might a casual change in battery design parameters, like electrode thickness or porosity, have on the final rate characteristics and performance? By intentionally manipulating parameters using the tool, you can gain a deep understanding and intuition for design. We highly encourage you to actively use the simulator as a "design playground" in this way.
5. From Browser Tools to Full-Fledged Simulators
The "SPMe Curve Fitting Tool" we provide adopts an architecture where all calculations are completed on the browser (client-side) and absolutely no data is uploaded to the server, ensuring that it can be used with peace of mind even in R&D environments handling highly confidential, unreleased battery data. However, in exchange for this strict confidentiality, computational resources (model scale) are significantly limited, currently remaining at a 1D SPMe model.
If you gain an interest in "battery modeling" through our web tool and wish to explore deeper, we recommend introducing a commercial simulator as the next step. While there are several options, the one we recommend most highly is COMSOL Multiphysics.
Why recommend COMSOL? The reasons are diverse, but the major benefits are as follows:
- No Coding Required: Intuitive GUI-based operation; no mathematical programming needed.
- Abundant Presets: Extensive presets for battery material parameters ensure a smooth startup.
- Overwhelming Scalability: Easy to expand from a 1D model to 3D structural simulations, thermal simulations, and even combinations with Lumped models.
Once you overcome the initial hurdle of the "massive number of parameters" unique to physics-based simulations, you will be able to visualize and peek into what is actually happening inside the battery during charging and discharging. We assure you that this will be an incredibly exciting and fun experience for any engineer.
Advanced Simulation and Parameter Identification in Your Browser
YK Energy Device & Consulting provides the "SPMe Curve Fitting Tool," a web application that automates complex multi-step identification and can be run intuitively in your browser. Not only does it provide automatic identification via optimization algorithms, but it can also be used as a simulator to intuitively verify the sensitivity of design parameters and cultivate your engineering intuition.
View Fitting Tool Details →