haotianblog
EIS Equivalent Circuit Fitter
Search
Ask the AI

EIS Equivalent Circuit Fitter

Fit an equivalent circuit to an impedance spectrum, entirely in your browser. Nothing is uploaded and the page makes no network requests.

The site already has an HPPC pulse resistance analyser and a dQ/dV incremental capacity analyser; this is the third of the three standard battery characterisation techniques.

Input format

Three columns of CSV or TSV: frequency (Hz), Z real (ohm), Z imaginary (ohm). A header row is optional and the delimiter is detected automatically (comma, tab, semicolon). Column mapping can be corrected below the input.

The sign of the imaginary column is inferred. Some instruments export Im(Z) and some export it already negated, because the Nyquist plot everyone draws is -Im(Z). The tool picks whichever reading places the spectrum in the capacitive half-plane and states which one it used; if the arc appears mirrored, switch it by hand.

Three choices that change the answer and that no plot displays

Weighting. Unweighted least squares minimises absolute error, so the low-frequency tail where |Z| is largest sets the fit, and the mid-frequency arc that R_ct lives in is barely constrained. Over 60 noise realisations of the built-in synthetic cell, the same spectrum fitted both ways returns R0 as -0.04% +/-0.19% under modulus weighting and -10.03% +/-30.37% under unit weighting, with 6 of the 60 also driving R1 onto its bound. Weighting is therefore a visible control and is printed with every result: a fit quoted without it cannot be reproduced.

Identifiability. A branch whose characteristic frequency lies outside the measured window was extrapolated, not measured, and the residual will not tell you. Every branch reports its f_c and is flagged when it falls outside the data.

Depressed arcs. Real electrodes give arcs centred below the real axis. Forcing an ideal RC onto one biases R low and C high while the residual often still looks acceptable. The ZARC (R parallel CPE) exists for this, and its exponent n is a diagnostic in its own right: n well below 1 means an ideal capacitor was never going to fit.

Why the Nyquist plot is square

Both axes share one scale. That is not a layout preference: once the axes stretch independently, a depressed arc and a true semicircle look identical – and whether the arc is depressed is the main reason to look at the plot. So the shape of the box is set by the data, not by the column width.

Typical failures

  • A parameter marked “at bound – not identified”. Usually the model is richer than the data supports. A ZARC degenerates into a pure CPE as R grows with R*Q held fixed, so R and Q run off together along a valley while the residual never moves. The tool flags that instead of printing an astronomical number. Use a simpler model, or measure a wider frequency range.
  • The fit lands in a local minimum. Starting values are read off the Nyquist plot (high-frequency real-axis intercept, apex frequency), which is enough in most cases; two strongly overlapping arcs may need a few attempts with the two-ZARC model.
  • The low-frequency tail is not Warburg. A cell with blocking boundaries turns upward at very low frequency, which a semi-infinite Warburg cannot follow. Trim those points, or accept the larger residual there.

None of these failures raises an error; building this fitter turned up eight such silent problems, the most expensive being a missing minus sign in the LM step that made the function quietly return its initial guess, and the full account is in eight failures that never errored.

Scroll down