Lab::Moose::Sweep::Step - Base class for step/list sweeps
version 3.651
use Lab::Moose; # # basic 1D sweep (e.g. IV curve) # my $source = instrument( type => ..., connection_type => ..., connection_options => {...} ); my $multimeter = instrument(...); my $sweep = sweep( type => 'Step::Voltage', instrument => $instrument, from => -1, to => 1, step => 0.1, backsweep => 1, # points: -1, -0.9, ..., 0.9, 1, 0.9, ..., -1 ); my $datafile = sweep_datafile(columns => ['volt', 'current']); $datafile->add_plot(x => 'volt', y => 'current'); my $meas = sub { my $sweep = shift; my $volt = $source->cached_level(); my $current = $multimeter->get_value(); $sweep->log(volt => $volt, current => $current); }; $sweep->start( datafiles => [$datafile], measurement => $meas, ); # # 2D sweep (quantum dot stability diagram) # my $gate = instrument(...); my $bias = instrument(...); my $multimeter = instrument(...); # master sweep my $gate_sweep = sweep( type => 'Step::Voltage', instrument => $gate, from => -5, to => 5, step => 0.01 ); # slave sweep my $bias_sweep = sweep( type => 'Step::Voltage', instrument => $bias, from => -1, to => 1, step => 0.01 ); my $datafile = sweep_datafile(columns => [qw/gate bias current/]); $datafile->add_plot( type => 'pm3d', x => 'gate', y => 'bias', z => 'current' ); my $meas = sub { my $sweep = shift; my $gate_v = $gate->cached_level(); my $bias_v = $bias->cached_level(); my $current = $multimeter->get_value(); $sweep->log(gate => $gate_v, bias => $bias_v, current => $current); }; $gate_sweep->start( slaves => [$bias_sweep], datafiles => [$datafile], measurement => $meas );
This sweep constructor defines the following arguments
sweep
from/to/step
define a linear range of points.
list
alternative to from/to/step, give an arbitrary arrayref of points.
backsweep
Include a backsweep: After finishing the sweep, go through all points in reverse.
setter
A coderef which will be called to change the source level. Use this if you do some arcane type of sweep which does not justify its own sweep subclass. Sweep subclasses like Lab::Moose::Sweep::Step::Voltage will define defaults for this. E.g. for the Voltage sweep:
sub { my $sweep = shift; my $value = shift; $sweep->instrument->set_level(value => $value); };
This software is copyright (c) 2018 by the Lab::Measurement team; in detail:
Copyright 2017-2018 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.
To install Lab::Measurement, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lab::Measurement
CPAN shell
perl -MCPAN -e shell install Lab::Measurement
For more information on module installation, please visit the detailed CPAN module installation guide.