Galvanostatic Impedance Spectroscopy
This page documents the Galvanostatic Impedance Spectroscopy (GIS or GEIS) method.
pypalmsens.GalvanostaticImpedanceSpectroscopy
Create galvanostatic impedance spectroscopy method parameters.
For Galvanostatic EIS (GEIS) the modes are:
- a frequency scan at a fixed dc-current
- frequency scans at each current in a current scan
- frequency scans at specified time intervals (time scan)
- a single frequency applied at each current in a current scan
- a 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.
-
measurement_triggers(MeasurementTriggers) –Set the trigger at measurement settings.
-
equilibrion_triggers(EquilibrationTriggers) –Set the trigger at equilibration settings.
-
post_measurement(PostMeasurement) –Set the post measurement settings.
-
pretreatment(Pretreatment) –Set the pretreatment settings.
-
potential_range(PotentialRange) –Set the autoranging potential.
-
current_range(CurrentRange) –Set the autoranging current.
-
id(Literal['gis']) –Unique method identifier.
-
applied_current_range(AllowedCurrentRanges) –Applied current range.
-
equilibration_time(float) –Equilibration time in s.
-
ac_current(float) –AC current expressed in the applied current range RMS.
-
dc_current(float) –DC current expressed in the applied current range.
-
frequency_type(AllowedFrequencyTypes) –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(AllowedScanTypes) –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_current(float) –Current at which the scan starts expressed in the applied current range (current scan only).
-
end_current(float) –Current at which the scan ends expressed in the applied current range (current scan only).
-
step_current(float) –Current step size expressed in the applied current range (current 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.
measurement_triggers
class-attribute
instance-attribute
measurement_triggers: MeasurementTriggers = Field(default_factory=MeasurementTriggers)
Set the trigger at measurement settings.
equilibrion_triggers
class-attribute
instance-attribute
equilibrion_triggers: EquilibrationTriggers = Field(default_factory=EquilibrationTriggers)
Set the trigger at equilibration settings.
post_measurement
class-attribute
instance-attribute
post_measurement: PostMeasurement = Field(default_factory=PostMeasurement)
Set the post measurement 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.
applied_current_range
class-attribute
instance-attribute
applied_current_range: AllowedCurrentRanges = '100uA'
Applied current range.
This is the range in which the specified current values (such as ac_current,
begin_current, or `step_current) will be applied.
See pypalmsens.settings.AllowedCurrentRanges for options.
equilibration_time
class-attribute
instance-attribute
equilibration_time: float = 0.0
Equilibration time in s.
ac_current
class-attribute
instance-attribute
ac_current: float = 0.01
AC current expressed in the applied current range RMS.
dc_current
class-attribute
instance-attribute
dc_current: float = 0.0
DC current expressed in the applied current range.
frequency_type
class-attribute
instance-attribute
frequency_type: AllowedFrequencyTypes = '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_frequencyis 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: AllowedScanTypes = 'fixed'
Whether a single or multiple frequency scans are performed.
Possible values: 'current', 'time', 'fixed'.
- Fixed scan: perform a single scan (default).
- Time scan: scans are repeated for a specific amount of time at a specific interval.
- Current scan: scans are repeated over a range of current values, starting at
begin_currentand ending atend_currentwith step sizestep_current. At each DC current level, a single fixed frequency or frequency scan is applied.
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_current
class-attribute
instance-attribute
begin_current: float = 0.0
Current at which the scan starts expressed in the applied current range (current scan only).
end_current
class-attribute
instance-attribute
end_current: float = 0.0
Current at which the scan ends expressed in the applied current range (current scan only).
step_current
class-attribute
instance-attribute
step_current: float = 0.01
Current step size expressed in the applied current range (current scan only).
This sets the increment to be used between begin_current and end_current.
min_sampling_time
class-attribute
instance-attribute
min_sampling_time: float = Field(0.5, gt=0)
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
45 46 47 | |
from_dict
classmethod
from_dict(obj: dict[str, Any]) -> MethodType
Structure technique instance from dict.
Opposite of .to_dict()
Source code in src/pypalmsens/_methods/base.py
49 50 51 52 53 54 | |
from_method_id
classmethod
from_method_id(id: str) -> MethodType
Create new instance of appropriate technique from method ID.
Source code in src/pypalmsens/_methods/base.py
56 57 58 59 60 | |