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
- Select EIS Data: choose a folder, or multi-select a group of files from the same experiment.
- Select a Circuit Model: use one of the preset models, or type a custom circuit expression.
- Set Initial Values: leave the field blank to use automatic estimates, or override only the parameters whose approximate values you already know.
- Review the Fit: after fitting, inspect the Nyquist fit and residual quality before using the parameters in a report or manuscript.
- Optionally Export an Origin Project: generate an
.opjufile if you need further figure editing.
Circuit Expression Syntax
- Use
-for series connection, such asR0-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)-W1is treated asR0-p(C1,R1)-W1. - Use numeric suffixes to distinguish elements of the same type, such as
R0,R1, andC1. - If an element is entered without a numeric suffix, the workflow adds one automatically. For example,
R0-p(C1,R1)-G-Lis treated asR0-p(C1,R1)-G1-L1. - Multi-parameter elements are expanded into multiple fit parameters. For example,
CPE1corresponds toCPE1_0andCPE1_1;Wo1corresponds toWo1_0andWo1_1.
Common preset models:
R0-C1— series resistance + a single capacitorR0-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_relmeans 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 and .
| Element | Fit Parameters | Units | Common Meaning |
|---|---|---|---|
R | R0 | Ohmic, solution, or charge-transfer resistance | |
C | C0 | Ideal capacitance, such as ideal double-layer capacitance | |
L | L0 | Inductance or high-frequency parasitic response | |
W | W0 | Semi-infinite Warburg diffusion impedance | |
Wo | Wo0_0, Wo0_1 | , | Open finite-space Warburg element |
Ws | Ws0_0, Ws0_1 | , | Short finite-length Warburg element |
CPE | CPE0_0, CPE0_1 | , dimensionless | Constant phase element for non-ideal capacitance |
La | La0_0, La0_1 | , dimensionless | Modified inductance for non-ideal inductive behavior |
G | G0_0, G0_1 | , | Gerischer element for coupled reaction-diffusion response |
Gs | Gs0_0, Gs0_1, Gs0_2 | , , dimensionless | Finite-length Gerischer element |
K | K0_0, K0_1 | , | Single RC relaxation process |
Zarc | Zarc0_0, Zarc0_1, Zarc0_2 | , , dimensionless | Depressed semicircle or Cole-Cole-type relaxation |
TLMQ | TLMQ0_0, TLMQ0_1, TLMQ0_2 | , , dimensionless | Simplified transmission-line model with non-ideal interfacial capacitance |
T | T0_0, T0_1, T0_2, T0_3 | , , dimensionless, | Macrohomogeneous porous-electrode transmission-line model |
Appendix: Element Equations
The series and parallel combination rules are:
The impedance expressions for the supported elements are:
| Element | Equation |
|---|---|
R | |
C | |
L | |
W | |
Wo | |
Ws | |
CPE | |
La | |
G | |
Gs | |
K | |
Zarc | |
TLMQ | , where |
T | , where |
For multi-parameter elements, _0, _1, _2, and _3 follow the parameter order in the equation. For example, CPE1_0 is and CPE1_1 is ; Wo1_0 is and Wo1_1 is ; Gs1_0, Gs1_1, and Gs1_2 are , , and , 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.