atomiq.components.electronics.currentsource module#
- class atomiq.components.electronics.currentsource.CurrentSource(min_current=- inf, max_current=inf, default_ramp_steps=30, *args, **kwargs)#
Bases:
Component
,Parametrizable
Current Source
This abstract class represents any device that can output a defined, controllable current.
- Parameters:
min_current (TFloat) -- The minimum current the device can output [A]
max_current (TFloat) -- The maximum current the device can output [A]
default_ramp_steps (TInt32) -- The default number of steps that this device should use if the current is ramped. This value is only used if no
ramp_steps
are given in theramp_current()
method.
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'default_ramp_steps', 'max_current', 'min_current'}#
- set_current(current)#
Set the current delivered by the current source
- Parameters:
current (TFloat) -- Current in A
- ramp_current(duration, current_start, current_end, ramp_timestep=- 1.0, ramp_steps=- 1)#
Ramp current over a given duration.
This method advances the timeline by duration
- Parameters:
duration (TFloat) -- ramp duration [s]
current_start (TFloat) -- initial current [V]
current_end (TFloat) -- end current [V]
ramp_timestep (TFloat) --
ramp_steps (TInt32) --
- class atomiq.components.electronics.currentsource.HBridgedCurrentSource(current_source, switch_fwd, switch_rev, *args, **kwargs)#
Bases:
CurrentSource
,Switchable
Combination of an H-bridge and a current source
Combining an H-bridge with a unipolar current source allows to create a bipolar current source. This class bundles these two comoponents an exposes them as a bipolar current source.
This class uses two switches to control the state of the H-bridge,
switch_fwd
andswitch_rev
. It assumes that your H-brigde does the following depending on their state:H-Bridge States# switch_fwd
switch_rev
Current Flow
False
False
Off
True
False
Forward
False
True
Reverse
True
True
Invalid
- Parameters:
current_source (CurrentSource) -- The current source connected to the H-bridge
switch_fwd (Switchable) -- Switch to enable current flow in the forward direction
switch_rev (Switchable) -- Switch to enable current flow in the reverse direction
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'current_source', 'switch_fwd', 'switch_rev'}#
- off()#
- on()#
- ramp_current(duration, current_start, current_end, ramp_timestep=- 1.0, ramp_steps=- 1)#
Ramp current over a given duration.
This method advances the timeline by duration
- Parameters:
duration (TFloat) -- ramp duration [s]
current_start (TFloat) -- initial current [V]
current_end (TFloat) -- end current [V]
ramp_timestep (TFloat) --
ramp_steps (TInt32) --
- set_current(current)#
Set the current delivered by the current source
- Parameters:
current (TFloat) -- Current in A
- class atomiq.components.electronics.currentsource.RPCCurrentSource(rpc_currentsource, *args, **kwargs)#
Bases:
CurrentSource
A current source controlled via RPC calls
- Parameters:
rpc_currentsource (Component) -- The ARTIQ rpc object representing the current source. This object needs to provide a function named set_current(current_in_A) to set the current.
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'currentsource'}#
- ramp_current(duration, current_start, current_end, ramp_timestep=- 1.0, ramp_steps=- 1)#
Ramp current over a given duration.
This method advances the timeline by duration
- Parameters:
duration (TFloat) -- ramp duration [s]
current_start (TFloat) -- initial current [V]
current_end (TFloat) -- end current [V]
ramp_timestep (TFloat) --
ramp_steps (TInt32) --
- set_current(current)#
Set the current delivered by the current source
- Parameters:
current (TFloat) -- Current in A
- class atomiq.components.electronics.currentsource.RPCCurrentSourceChannel(rpc_currentsource, channel, *args, **kwargs)#
Bases:
CurrentSource
One channel of a multi-channel currentsource controlled via RPC
- Parameters:
rpc_currentsource (Component) -- The ARTIQ rpc object representing the multi channel current source. This object needs to provide a function named set_current(current_in_A, channel) to set the current.
channel (TInt32) -- channel of the multi-channel current source to operate on
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'channel', 'currentsource'}#
- ramp_current(duration, current_start, current_end, ramp_timestep=- 1.0, ramp_steps=- 1)#
Ramp current over a given duration.
This method advances the timeline by duration
- Parameters:
duration (TFloat) -- ramp duration [s]
current_start (TFloat) -- initial current [V]
current_end (TFloat) -- end current [V]
ramp_timestep (TFloat) --
ramp_steps (TInt32) --
- set_current(current)#
Set the current delivered by the current source
- Parameters:
current (TFloat) -- Current in A
- class atomiq.components.electronics.currentsource.VoltageControlledCurrentSource(voltage_source, calibration, *args, **kwargs)#
Bases:
CurrentSource
A current source controlled by an analog voltage
A typical usecase for this class are voltage-controlled power supplies that drive the current through a coil.
- Parameters:
voltage_source (VoltageSource) -- Voltage source that controls the current source
calibration (Calibration) -- Calibration U = f(I) to give the control voltage U for a desired current I
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'calibration', 'voltage_source'}#
- ramp_current(duration, current_start, current_end, ramp_timestep=- 1.0, ramp_steps=- 1)#
Ramp current over a given duration.
This method advances the timeline by duration
- Parameters:
duration (TFloat) -- ramp duration [s]
current_start (TFloat) -- initial current [V]
current_end (TFloat) -- end current [V]
ramp_timestep (TFloat) --
ramp_steps (TInt32) --
- set_current(current)#
Set the current delivered by the current source
- Parameters:
current (TFloat) -- Current in A