Circuits

class impedance.models.circuits.circuits.BaseCircuit(initial_guess=[], constants=None, name=None)[source]

Base class for equivalent circuit models

Methods

fit(frequencies, impedance[, bounds, …]) Fit the circuit model
get_param_names() Converts circuit string to names and units
load(filepath[, fitted_as_initial]) Imports a model from JSON
plot([ax, f_data, Z_data, kind]) visualizes the model and optional data as a nyquist,
predict(frequencies[, use_initial]) Predict impedance using an equivalent circuit model
save(filepath) Exports a model to JSON
fit(frequencies, impedance, bounds=None, weight_by_modulus=False, **kwargs)[source]

Fit the circuit model

Parameters:
frequencies: numpy array

Frequencies

impedance: numpy array of dtype ‘complex128’

Impedance values to fit

bounds: 2-tuple of array_like, optional

Lower and upper bounds on parameters. Defaults to bounds on all parameters of 0 and np.inf, except the CPE alpha which has an upper bound of 1

weight_by_modulus : bool, optional

Uses the modulus of each data (|Z|) as the weighting factor. Standard weighting scheme when experimental variances are unavailable. Only applicable when global_opt = False

kwargs

Keyword arguments passed to impedance.models.circuits.fitting.circuit_fit, and subsequently to scipy.optimize.curve_fit or scipy.optimize.basinhopping

Returns:
self: returns an instance of self
get_param_names()[source]

Converts circuit string to names and units

load(filepath, fitted_as_initial=False)[source]

Imports a model from JSON

Parameters:
filepath: str

filepath to JSON file to load model from

fitted_as_initial: bool

If true, loads the model’s fitted parameters as initial guesses

Otherwise, loads the model’s initial and fitted parameters as a completed model

plot(ax=None, f_data=None, Z_data=None, kind='altair', **kwargs)[source]
visualizes the model and optional data as a nyquist,
bode, or altair (interactive) plots
Parameters:
ax: matplotlib.axes

axes to plot on

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

kind: {‘altair’, ‘nyquist’, ‘bode’}

type of plot to visualize

Returns:
ax: matplotlib.axes

axes of the created nyquist plot

Other Parameters:
 
**kwargs : optional
If kind is ‘nyquist’ or ‘bode’, used to specify additional

matplotlib.pyplot.Line2D properties like linewidth, line color, marker color, and labels.

If kind is ‘altair’, used to specify nyquist height as size

predict(frequencies, use_initial=False)[source]

Predict impedance using an equivalent circuit model

Parameters:
frequencies: ndarray of numeric dtype
use_initial: boolean

If true and the model was previously fit use the initial parameters instead

Returns:
impedance: ndarray of dtype ‘complex128’

Predicted impedance

save(filepath)[source]

Exports a model to JSON

Parameters:
filepath: str

Destination for exporting model object

class impedance.models.circuits.circuits.CustomCircuit(circuit='', **kwargs)[source]

Methods

fit(frequencies, impedance[, bounds, …]) Fit the circuit model
get_param_names() Converts circuit string to names and units
load(filepath[, fitted_as_initial]) Imports a model from JSON
plot([ax, f_data, Z_data, kind]) visualizes the model and optional data as a nyquist,
predict(frequencies[, use_initial]) Predict impedance using an equivalent circuit model
save(filepath) Exports a model to JSON
class impedance.models.circuits.circuits.Randles(CPE=False, **kwargs)[source]

A Randles circuit model class

Methods

fit(frequencies, impedance[, bounds, …]) Fit the circuit model
get_param_names() Converts circuit string to names and units
load(filepath[, fitted_as_initial]) Imports a model from JSON
plot([ax, f_data, Z_data, kind]) visualizes the model and optional data as a nyquist,
predict(frequencies[, use_initial]) Predict impedance using an equivalent circuit model
save(filepath) Exports a model to JSON