NAME
Lab::XPRESS::Sweep::Level - Level (e.g. Voltage or Current) sweep
VERSION
version 3.692
SYNOPSIS
use Lab::XPRESS::hub;
my $hub = new Lab::XPRESS::hub();
my $Yoki = $hub->Instrument('Yokogawa7651',
{
connection_type => 'VISA_GPIB',
gpib_address => 2
});
my $sweep_level = $hub->Sweep('Level',
{
instrument => $Yoki,
points => [-1,1],
rate => [0.1,0.001],
mode => 'continuous',
interval => 1,
backsweep => 1
});
DESCRIPTION
Parent: Lab::XPRESS::Sweep
The Lab::XPRESS::Sweep::Level class implements a module for output level Sweeps in the Lab::XPRESS::Sweep framework.
CONSTRUCTOR
my $sweep_level = $hub->Sweep('Level',
{
instrument => $Yoki,
points => [-1,1],
rate => [0.1,0.001],
mode => 'continuous',
interval => 1,
backsweep => 1
});
Instantiates a new level-sweep.
PARAMETERS
instrument [Lab::Instrument] (mandatory)
Instrument, conducting the sweep. Must be of type Lab:Instrument. Allowed instruments: Lab::Instrument::Yokogawa7651
mode [string] (default = 'continuous' | 'step' | 'list')
continuous: perform a continuous level sweep. Measurements will be performed constantly at the time-interval defined in interval.
step: measurements will be performed at discrete values of the applied level between start and end points defined in parameter points, seperated by level steps defined in parameter stepwidth
list: measurements will be performed at a list level values defined in parameter points
points [float array] (mandatory)
array of level values that defines the characteristic points of the sweep. First value is appraoched before measurement begins.
Case mode => 'continuous' : List of at least 2 values, that define start and end point of the sweep or a sequence of consecutive sweep-sections (e.g. if changing the sweep-rate for different sections or reversing the sweep direction). points => [-5, 5] # Start: -5 / Stop: 5
points => [-5, -1, 1, 5]
points => [0, -5, 5]
Case mode => 'step' : Same as in 'continuous' but level will be swept in stop and go mode. I.e. level source approaches values between start and stop at the interval defined in 'stepwidth'. A measurement is performed, when level source is idle.
Case mode => 'list' : Array of levels, with minimum length 1, that are approached in sequence to perform a measurment.
rate [float array] (mandatory if not defined duration)
array of rates, at which the level is swept (V / sec). Has to be of length 1 or greater (Maximum length: length of points-array). The first value defines the rate to approach the starting point. The following values define the rates to approach the levels defined by the points-array. If the number of values in the rates-array is less than the length of the points-array, the last defined rate will be used for the remaining sweep sections.
points => [-5, -1, 1, 5],
rates => [1, 0.005, 0.02]
rate to approach -5 V (the starting point): 1 V/sec
rate to approach -1 V : 0.005 V/sec
rate to approach 1 V : 0.02 V/sec
rate to approach 5 V : 0.02 V/sec (last defined rate)
duration [float array] (mandatory if not defined rate)
can be used instead of 'rate'. Attention: Use only the 'duration' or the 'rate' parameter. Using both will cause an Error!
The first value defines the duration to approach the starting point. The second value defines the duration to approach the level value defined by the second value of the points-array. ... If the number of values in the duration-array is less than the length of the points-array, last defined duration will be used for the remaining sweep sections.
stepwidth [float array]
This parameter is relevant only if mode = 'step' has been selected. Stepwidth has to be an array of length '1' or greater. The values define the width for each step within the corresponding sweep sequence. If the length of the defined sweep sequence devided by the stepwidth is not an integer number, the last step will be smaller in order to reach the defined points-value.
points = [0, 0.5, 3]
stepwidth = [0.2, 0.5]
==> steps: 0, 0.2, 0.4, 0.5, 1.0, 1.5, 2.0, 2.5, 3
number_of_points [int array]
can be used instead of 'stepwidth'. Attention: Use only the 'number_of_points' or the 'stepwidth' parameter. Using both will cause an Error! This parameter is relevant only if mode = 'step' has been selected. Number_of_points has to be an array of length '1' or greater. The values defines the number of steps within the corresponding sweep sequence.
points = [0, 0.5, 3]
number_of_points = [5, 2]
==> steps: 0, 0.1, 0.2, 0.3, 0.4, 0.5, 1.75, 3
interval [float] (default = 1)
interval in seconds for taking measurement points. Only relevant in mode 'continuous'.
backsweep [int] (default = 0 | 1 | 2)
0 : no backsweep (default) 1 : a backsweep will be performed 2 : no backsweep performed automatically, but sweep sequence will be reverted every second time the sweep is started (relevant eg. if sweep operates as a slave. This way the sweep sequence is reverted at every second step of the master)
jump [int] (default = 0 | 1 )
can be used to switch off the sweeping between adjacent points in step or list mode.
0 : a sweep is performed between adjacent steps (default) 1 : the level is set without sweeping, given that gateprotect does not trigger a sweep.
id [string] (default = 'Level_sweep')
Just an ID.
filename_extention [string] (default = 'V=')
Defines a postfix, that will be appended to the filenames if necessary.
delay_before_loop [int] (default = 0)
defines the time in seconds to wait after the starting point has been reached.
delay_in_loop [int] (default = 0)
This parameter is relevant only if mode = 'step' or 'list' has been selected. Defines the time in seconds to wait after the value for the next step has been reached.
delay_after_loop [int] (default = 0)
Defines the time in seconds to wait after the sweep has been finished. This delay will be executed before an optional backsweep or optional repetitions of the sweep.
CAVEATS/BUGS
probably none
SEE ALSO
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by the Lab::Measurement team; in detail:
Copyright 2012 Stefan Geissler
2013 Alois Dirnaichner, Andreas K. Huettel, Christian Butschkow, Stefan Geissler
2014 Alois Dirnaichner, Andreas K. Huettel
2015 Alois Dirnaichner
2016 Simon Reinhardt
2017 Andreas K. Huettel, Simon Reinhardt
2019 Simon Reinhardt
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.