Circuits

class eisfit.circuits.BaseCircuit(initial_guess=None, name=None, algorithm='leastsq', bounds=None)[source]

Base class for equivalent circuit models

Methods

fit(frequencies, impedance) Fit the circuit model
plot([f_data, Z_data, CI]) a convenience method for plotting Nyquist plots
predict(frequencies) Predict impedance using a fit equivalent circuit model
fit(frequencies, impedance)[source]

Fit the circuit model

Parameters:
frequencies: numpy array

Frequencies

impedance: numpy array of dtype ‘complex128’

Impedance values to fit

Returns:
self: returns an instance of self
plot(f_data=None, Z_data=None, CI=True)[source]

a convenience method for plotting Nyquist plots

Parameters:
f_data: np.array of type float

Frequencies of input data (for Bode plots)

Z_data: np.array of type complex

Impedance data to plot

CI: boolean

Include bootstrapped confidence intervals in plot

Returns:
ax: matplotlib.axes

axes of the created nyquist plot

predict(frequencies)[source]

Predict impedance using a fit equivalent circuit model

Parameters:
frequencies: numpy array

Frequencies

Returns:
impedance: numpy array of dtype ‘complex128’

Predicted impedance

class eisfit.circuits.DefineCircuit(circuit=None, **kwargs)[source]

Methods

fit(frequencies, impedance) Fit the circuit model
plot([f_data, Z_data, CI]) a convenience method for plotting Nyquist plots
predict(frequencies) Predict impedance using a fit equivalent circuit model
class eisfit.circuits.FlexiCircuit(max_elements=None, generations=2, popsize=30, initial_guess=None)[source]

Methods

fit(frequencies, impedances) Fit the circuit model
plot([f_data, Z_data, CI]) a convenience method for plotting Nyquist plots
predict(frequencies) Predict impedance using a fit equivalent circuit model
fit(frequencies, impedances)[source]

Fit the circuit model

Parameters:
frequencies: numpy array

Frequencies

impedance: numpy array of dtype ‘complex128’

Impedance values to fit

Returns:
self: returns an instance of self
class eisfit.circuits.Randles(CPE=False, **kwargs)[source]

A Randles circuit model class

Methods

fit(frequencies, impedance) Fit the circuit model
plot([f_data, Z_data, CI]) a convenience method for plotting Nyquist plots
predict(frequencies) Predict impedance using a fit equivalent circuit model
eisfit.circuit_elements.A(p, f)[source]

defines a semi-infinite Warburg element

eisfit.circuit_elements.C(p, f)[source]

defines a capacitor

\[Z = \frac{1}{C \times j 2 \pi f}\]
eisfit.circuit_elements.E(p, f)[source]

defines a constant phase element

Notes

\[Z = \frac{1}{Q \times (j 2 \pi f)^\alpha}\]

where \(Q\) = p[0] and \(\alpha\) = p[1].

eisfit.circuit_elements.G(p, f)[source]

defines a Gerischer Element

Notes

\[Z = \frac{1}{Y \times \sqrt{K + j 2 \pi f }}\]
eisfit.circuit_elements.R(p, f)[source]

defines a resistor

Notes

\[Z = R\]
eisfit.circuit_elements.W(p, f)[source]

defines a blocked boundary Finite-length Warburg Element

Notes

\[Z = \frac{R}{\sqrt{ T \times j 2 \pi f}} \coth{\sqrt{T \times j 2 \pi f }} # noqa: E501\]

where \(R\) = p[0] (Ohms) and \(T\) = p[1] (sec) = \(\frac{L^2}{D}\)

eisfit.circuit_elements.p(parallel)[source]

adds elements in parallel

Notes

\[Z = \frac{1}{\frac{1}{Z_1} + \frac{1}{Z_2} + ... + \frac{1}{Z_n}}\]
eisfit.circuit_elements.s(series)[source]

sums elements in series

Notes

\[Z = Z_1 + Z_2 + ... + Z_n\]