Electrochemical Impedance Spectroscopy
This page documents the Electrochemical Impedance Spectroscopy (EIS or PEIS) method.
pypalmsens.ElectrochemicalImpedanceSpectroscopy
Create potentiometry method parameters.
Electrochemical Impedance Spectroscopy (EIS) is an electrochemical technique to measure the impedance of a system in dependence of the AC potentials frequency.
Although "spectroscopy" implies a frequency sweep, which is the most common measurement, this class provide the flexibility to set the frequency and vary other parameters, such as DC potential and time.
Available modes of EIS measurements:
- a frequency scan at a fixed dc-potential (default EIS)
- frequency scans at each dc-potential in a potential scan
- frequency scans at specified time intervals (time scan)
- a single frequency applied at each dc potential in a potential scan (Mott-Schottky)
- a repeated single frequency at specified time intervals
Methods:
-
to_dict–Return the technique instance as a new key/value dictionary mapping.
-
from_dict–Structure technique instance from dict.
-
from_method_id–Create new instance of appropriate technique from method ID.
Attributes:
-
general(General) –Sets general/other settings.
-
multiplexer(Multiplexer) –Set the multiplexer settings.
-
equilibrion_triggers(EquilibrationTriggers) –Set the trigger at equilibration settings.
-
measurement_triggers(MeasurementTriggers) –Set the trigger at measurement settings.
-
post_measurement(PostMeasurement) –Set the post measurement settings.
-
versus_ocp(VersusOCP) –Set the versus OCP settings.
-
pretreatment(Pretreatment) –Set the pretreatment settings.
-
potential_range(PotentialRange) –Set the autoranging potential.
-
current_range(CurrentRange) –Set the autoranging current.
-
id(Literal['eis']) –Unique method identifier.
-
equilibration_time(float) –Equilibration time in s.
-
dc_potential(float) –DC-potential applied during the EIS scan in V.
-
ac_potential(float) –AC potential in V RMS.
-
frequency_type(Literal['fixed', 'scan']) –Whether to measure a single frequency or scan over a range of frequencies.
-
fixed_frequency(float) –Fixed frequency in Hz (fixed frequency only).
-
min_frequency(float) –Minimum frequency in Hz (frequency scan only).
-
max_frequency(float) –Maximum frequency in Hz (frequency scan only).
-
n_frequencies(int) –Number of frequencies (frequency scan only).
-
scan_type(Literal['potential', 'time', 'fixed']) –Whether a single or multiple frequency scans are performed.
-
run_time(float) –Minimal run time in seconds in s (time scan only).
-
interval_time(float) –The interval at which a measurement iteration should be performed in s (time scan only).
-
begin_potential(float) –The dc-potential at which the measurement starts in V (potential scan only).
-
end_potential(float) –The dc-potential at which the scan ends in V (potential scan only).
-
step_potential(float) –Potential step size in V (potential scan only).
-
min_sampling_time(float) –Minimum sampling time in s.
-
max_equilibration_time(float) –Max equilibration time in s.
general
class-attribute
instance-attribute
Sets general/other settings.
multiplexer
class-attribute
instance-attribute
multiplexer: Multiplexer = Field(default_factory=Multiplexer)
Set the multiplexer settings.
equilibrion_triggers
class-attribute
instance-attribute
equilibrion_triggers: EquilibrationTriggers = Field(default_factory=EquilibrationTriggers)
Set the trigger at equilibration settings.
measurement_triggers
class-attribute
instance-attribute
measurement_triggers: MeasurementTriggers = Field(default_factory=MeasurementTriggers)
Set the trigger at measurement settings.
post_measurement
class-attribute
instance-attribute
post_measurement: PostMeasurement = Field(default_factory=PostMeasurement)
Set the post measurement settings.
versus_ocp
class-attribute
instance-attribute
Set the versus OCP settings.
pretreatment
class-attribute
instance-attribute
pretreatment: Pretreatment = Field(default_factory=Pretreatment)
Set the pretreatment settings.
potential_range
class-attribute
instance-attribute
potential_range: PotentialRange = Field(default_factory=PotentialRange)
Set the autoranging potential.
current_range
class-attribute
instance-attribute
current_range: CurrentRange = Field(default_factory=CurrentRange)
Set the autoranging current.
equilibration_time
class-attribute
instance-attribute
equilibration_time: float = 0.0
Equilibration time in s.
dc_potential
class-attribute
instance-attribute
dc_potential: float = 0.0
DC-potential applied during the EIS scan in V.
Also called DC Bias or level. The most common setting for this parameter is 0 V vs. OCP.
ac_potential
class-attribute
instance-attribute
ac_potential: float = 0.01
AC potential in V RMS.
The amplitude of the ac potential signal has a range of 0.001 V to 0.25 V (RMS). In many applications, a value of 0.010 V (RMS) is used.
frequency_type
class-attribute
instance-attribute
frequency_type: Literal['fixed', 'scan'] = 'scan'
Whether to measure a single frequency or scan over a range of frequencies.
Possible values: 'scan', 'fixed'.
- Scan: a frequency scan is performed starting at the given
max_frequencyto themin_frequency. - Fixed: a single frequency given by 'fixed_frequencya is applied for the given duration or at each potential step or time interval.
fixed_frequency
class-attribute
instance-attribute
fixed_frequency: float = 1000
Fixed frequency in Hz (fixed frequency only).
min_frequency
class-attribute
instance-attribute
min_frequency: float = 5.0
Minimum frequency in Hz (frequency scan only).
max_frequency
class-attribute
instance-attribute
max_frequency: float = 10000
Maximum frequency in Hz (frequency scan only).
n_frequencies
class-attribute
instance-attribute
n_frequencies: int = 11
Number of frequencies (frequency scan only).
Defines the range of frequencies to apply between the max_frequency and
min_frequency. For example, a value of 11 will measure at 11 frequencies,
including both end points.
scan_type
class-attribute
instance-attribute
scan_type: Literal['potential', 'time', 'fixed'] = 'fixed'
Whether a single or multiple frequency scans are performed.
Possible values: 'potential', 'time', 'fixed'.
- Fixed scan: perform a single scan (default).
- Time scan: scans are repeated for a specific amount of time at a specific interval.
- Potential scan: scans are repeated over a range of DC potential values. A potential scan should not be performed versus the OCP.
run_time
class-attribute
instance-attribute
run_time: float = 10.0
Minimal run time in seconds in s (time scan only).
For example, if a frequency scan takes 18 seconds and is measured
at an interval of 19 seconds for a run_time of 40 seconds, then
three iterations will be performed.
interval_time
class-attribute
instance-attribute
interval_time: float = 0.1
The interval at which a measurement iteration should be performed in s (time scan only).
The minimum interval time between each data point (frequency_type='fixed') or
between each frequency scan (frequency_type='scan').
We recommend a time higher than the required time to measure the data point or perform the
frequency scan + overhead time. While it's possible to use a shorter time, doing so may
lead to incorrect impedance calculations.
If a measurement iteration takes longer than the interval time the next measurement will not be triggered until after it has been completed.
begin_potential
class-attribute
instance-attribute
begin_potential: float = 0.0
The dc-potential at which the measurement starts in V (potential scan only).
I.e. the DC potential of the applied sine wave to start the series of iterative measurements at.
end_potential
class-attribute
instance-attribute
end_potential: float = 0.0
The dc-potential at which the scan ends in V (potential scan only).
I.e. the DC potential of the applied sine wave at which the series of iterative measurements ends.
step_potential
class-attribute
instance-attribute
step_potential: float = 0.01
Potential step size in V (potential scan only).
This sets the increment to be used between begin_potential and end_potential.
min_sampling_time
class-attribute
instance-attribute
min_sampling_time: float = 0.5
Minimum sampling time in s.
Each measurement point of the impedance spectrum is performed
during the period specified by min_sampling_time.
This means that the number of measured sine waves is equal to min_sampling_time * frequency.
If this value is less than 1 sine wave, the sampling is extended to 1 / frequency.
So for a measurement at a frequency, at least one complete sine wave is measured.
Reasonable values for the sampling are in the range of 0.1 to 1 s.
max_equilibration_time
class-attribute
instance-attribute
max_equilibration_time: float = 5.0
Max equilibration time in s.
The EIS measurement requires a stationary state.
This means that before the actual measurement starts, the sine wave is
applied during max_equilibration_time only to reach the stationary state.
The maximum number of equilibration sine waves is however 5.
The minimum number of equilibration sines is set to 1, but for very
low frequencies, this time is limited by max_equilibration_time.
The maximum time to wait for stationary state is determined by the value of this parameter. A reasonable value might be 5 seconds. In this case this parameter is only relevant when the lowest frequency is less than 1/5 s so 0.2 Hz.
to_dict
Return the technique instance as a new key/value dictionary mapping.
Source code in src/pypalmsens/_methods/base.py
30 31 32 | |
from_dict
classmethod
Structure technique instance from dict.
Opposite of .to_dict()
Source code in src/pypalmsens/_methods/base.py
34 35 36 37 38 39 | |
from_method_id
classmethod
from_method_id(id: str) -> BaseTechnique
Create new instance of appropriate technique from method ID.
Source code in src/pypalmsens/_methods/base.py
41 42 43 44 45 | |