Skip to content
EIS Equivalent-Circuit Fitting: Interpreting Impedance Spectra with Physical Models

EIS Equivalent-Circuit Fitting: Interpreting Impedance Spectra with Physical Models

Pro

EIS Equivalent-Circuit Fitting: Interpreting Impedance Spectra with Physical Models

After reviewing the Nyquist and Bode plots, you may want to convert the resistance, capacitance, diffusion, or transmission-line features in the spectrum into comparable parameters. This workflow is designed for that step.

It fits EIS data with an equivalent circuit and outputs fitted curves, parameter tables, and residual diagnostics for each sample. It is useful for comparing samples, treatment conditions, or interfacial kinetic changes before and after cycling.

Input Data

Select a folder containing instrument-exported raw EIS data, or multi-select a group of raw EIS data files. Common text, CSV, Excel, EC-Lab .mpr, Gamry .dta, and VersaStudio .par files can be recognized automatically.

Procedure

  1. Select EIS Data: choose a folder, or multi-select a group of files from the same experiment.
  2. Select a Circuit Model: use one of the preset models, or type a custom circuit expression.
  3. Set Initial Values: leave the field blank to use automatic estimates, or override only the parameters whose approximate values you already know.
  4. Review the Fit: after fitting, inspect the Nyquist fit and residual quality before using the parameters in a report or manuscript.
  5. Optionally Export an Origin Project: generate an .opju file if you need further figure editing.

Circuit Expression Syntax

  • Use - for series connection, such as R0-C1.
  • Use p(...) for parallel connection. For example, R0-p(C1,R1) means a series resistance followed by a capacitor/resistor parallel branch.
  • Full-width parentheses, Chinese commas, Chinese dash-like connectors, and P(...) are accepted and normalized automatically. For example, R0-P(C1,R1)-W1 is treated as R0-p(C1,R1)-W1.
  • Use numeric suffixes to distinguish elements of the same type, such as R0, R1, and C1.
  • If an element is entered without a numeric suffix, the workflow adds one automatically. For example, R0-p(C1,R1)-G-L is treated as R0-p(C1,R1)-G1-L1.
  • Multi-parameter elements are expanded into multiple fit parameters. For example, CPE1 corresponds to CPE1_0 and CPE1_1; Wo1 corresponds to Wo1_0 and Wo1_1.

Common preset models:

  • R0-C1 — series resistance + a single capacitor
  • R0-p(C1,R1) — series resistance + parallel capacitor/resistor (the typical double-layer capacitance with charge-transfer resistance)
  • R0-CPE1 — series resistance + constant phase element (non-ideal capacitance)
  • R0-p(CPE1,R1) — series resistance + parallel CPE/resistor (useful for rough interfaces, porous structures, or distributed time constants)
  • R0-p(C1,R1)-W1 — series resistance + (parallel capacitor/resistor) + Warburg (adds semi-infinite diffusion impedance after interfacial charge transfer)

See the “Element Overview” section below for the full list of supported elements with their units and impedance equations.

How to Set Initial Values

In most cases, start by leaving the initial-value field blank and let the workflow estimate the initial values automatically. Complex circuits, strong diffusion control, or overlapping semicircles can make fitting more sensitive to initial values; in those cases, you can enter the parameters you trust more.

Use the format parameter=value, and separate multiple entries with commas, for example R0=1.2, CPE1_1=0.85. Parameters that are not entered will still be estimated automatically.

On the initial-value page, the workflow displays the parameter table for the current circuit and the impedance expressions for the elements used in that circuit. Check this table first to confirm the physical meaning of each parameter before overriding initial values manually.

If the initial values are uncertain but the circuit is relatively complex, you can enable global optimization. It explores a wider parameter space, but it also takes noticeably longer.

Output

Each sample produces:

  • *_circuit_fit.csv: experimental impedance, fitted impedance, and real/imaginary residuals.
  • *_circuit_fit.png: Nyquist comparison between experimental points and the circuit fit.
  • circuit_summary.json: circuit expression, parameter names, units, automatic initial values, actual initial values, fitted parameters, confidence intervals, and RMSE.

Batch-level results include:

  • fit_summary.csv: fitted parameters for all samples.
  • fit_diagnostics.csv: fit quality and simple diagnostic information.
  • fit_diagnostics.md: a quick-readable fitting report.
  • filter_circuit_fit.opju: optional Origin project.

How to Judge Whether the Fit Is Trustworthy

  • The fitted line should closely follow the experimental points in the Nyquist plot, especially near the semicircle apex, low-frequency diffusion tail, and high-frequency intercept.
  • A smaller rmse_rel means a smaller overall residual, but a small residual does not prove that the model is unique or mechanistically correct.
  • Parameters should have reasonable magnitudes. For example, solution resistance should be positive, and the CPE exponent is usually between 0 and 1.
  • Do not interpret a single parameter in isolation. Compare the circuit structure, fitted plot, residuals, and electrochemical context together.
  • If several circuits fit well, prefer the simpler model with clearer physical meaning.

Element Overview

The following table lists the equivalent-circuit elements supported by this workflow. Let ω=2πf\omega = 2\pi f and j=1j=\sqrt{-1}.

ElementFit ParametersUnitsCommon Meaning
RR0Ω\OmegaOhmic, solution, or charge-transfer resistance
CC0F\mathrm{F}Ideal capacitance, such as ideal double-layer capacitance
LL0H\mathrm{H}Inductance or high-frequency parasitic response
WW0Ωs1/2\Omega\,\mathrm{s}^{-1/2}Semi-infinite Warburg diffusion impedance
WoWo0_0, Wo0_1Ω\Omega, s\mathrm{s}Open finite-space Warburg element
WsWs0_0, Ws0_1Ω\Omega, s\mathrm{s}Short finite-length Warburg element
CPECPE0_0, CPE0_1Ω1sα\Omega^{-1}\,\mathrm{s}^{\alpha}, dimensionlessConstant phase element for non-ideal capacitance
LaLa0_0, La0_1Hs\mathrm{H}\,\mathrm{s}, dimensionlessModified inductance for non-ideal inductive behavior
GG0_0, G0_1Ω\Omega, s\mathrm{s}Gerischer element for coupled reaction-diffusion response
GsGs0_0, Gs0_1, Gs0_2Ω\Omega, s\mathrm{s}, dimensionlessFinite-length Gerischer element
KK0_0, K0_1Ω\Omega, s\mathrm{s}Single RC relaxation process
ZarcZarc0_0, Zarc0_1, Zarc0_2Ω\Omega, s\mathrm{s}, dimensionlessDepressed semicircle or Cole-Cole-type relaxation
TLMQTLMQ0_0, TLMQ0_1, TLMQ0_2Ω\Omega, Fsγ1\mathrm{F}\,\mathrm{s}^{\gamma-1}, dimensionlessSimplified transmission-line model with non-ideal interfacial capacitance
TT0_0, T0_1, T0_2, T0_3Ωm2\Omega\,\mathrm{m}^2, Ωm2\Omega\,\mathrm{m}^2, dimensionless, s\mathrm{s}Macrohomogeneous porous-electrode transmission-line model

Appendix: Element Equations

The series and parallel combination rules are:

Zseries=Z1+Z2++ZnZ_{\mathrm{series}} = Z_1 + Z_2 + \cdots + Z_nZparallel=11Z1+1Z2++1ZnZ_{\mathrm{parallel}} = \frac{1}{\frac{1}{Z_1}+\frac{1}{Z_2}+\cdots+\frac{1}{Z_n}}

The impedance expressions for the supported elements are:

ElementEquation
RZR=RZ_R=R
CZC=1jωCZ_C=\frac{1}{j\omega C}
LZL=jωLZ_L=j\omega L
WZW=AW(1j)ωZ_W=\frac{A_W(1-j)}{\sqrt{\omega}}
WoZWo=Z0jωτcoth(jωτ)Z_{Wo}=\frac{Z_0}{\sqrt{j\omega\tau}}\coth(\sqrt{j\omega\tau})
WsZWs=Z0tanh(jωτ)jωτZ_{Ws}=\frac{Z_0\tanh(\sqrt{j\omega\tau})}{\sqrt{j\omega\tau}}
CPEZCPE=1Q(jω)αZ_{CPE}=\frac{1}{Q(j\omega)^\alpha}
LaZLa=L(jω)αZ_{La}=L(j\omega)^\alpha
GZG=RG1+jωtGZ_G=\frac{R_G}{\sqrt{1+j\omega t_G}}
GsZGs=RG1+jωtGtanh(ϕ1+jωtG)Z_{Gs}=\frac{R_G}{\sqrt{1+j\omega t_G}\tanh(\phi\sqrt{1+j\omega t_G})}
KZK=R1+jωτkZ_K=\frac{R}{1+j\omega\tau_k}
ZarcZarc=R1+(jωτk)γZ_{arc}=\frac{R}{1+(j\omega\tau_k)^\gamma}
TLMQZTLMQ=RionZScothRionZSZ_{TLMQ}=\sqrt{R_{ion}Z_S}\coth\sqrt{\frac{R_{ion}}{Z_S}}, where ZS=1QS(jω)γZ_S=\frac{1}{Q_S(j\omega)^\gamma}
TZT=Acothββ+B1βsinhβZ_T=A\frac{\coth\beta}{\beta}+B\frac{1}{\beta\sinh\beta}, where β=(a+jωb)1/2\beta=(a+j\omega b)^{1/2}

For multi-parameter elements, _0, _1, _2, and _3 follow the parameter order in the equation. For example, CPE1_0 is QQ and CPE1_1 is α\alpha; Wo1_0 is Z0Z_0 and Wo1_1 is τ\tau; Gs1_0, Gs1_1, and Gs1_2 are RGR_G, tGt_G, and ϕ\phi, respectively. Use the units listed in the Element Overview table above.

Practical Tips

If you have not yet inspected the raw EIS curves, use EIS Plotting: Nyquist and Bode Visualization first to review the Nyquist and Bode plots. If the curve contains obvious outliers, inductive tails, or low-frequency drift, address the data quality before fitting an equivalent circuit.

If the circuit parameters are unstable or difficult to interpret, use EIS/DRT Analysis: Mapping Frequency-Domain Impedance to a Distribution of Relaxation Times to inspect the distribution of relaxation times, then return to this workflow with a more physically motivated circuit structure.