The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Lab::Moose::Instrument::ZI_MFLI - Zurich Instruments MFLI Lock-in Amplifier.

SYNOPSIS

 use Lab::Moose;

 my $mfli = instrument(
     type => 'ZI_MFLI',
     connection_type => 'Zhinst',
     connection_options => {
         host => '132.188.12.13',
         port => 8004,
     });

 $mfli->set_frequency(value => 10000);

 # Set time constants of first two demodulators to 0.5 sec:
 $mfli->set_tc(demod => 0, value => 0.5);
 $mfli->set_tc(demod => 1, value => 0.5);

 # Read out demodulators:
 my $xy_0 = $mfli->get_xy(demod => 0);
 my $xy_1 = $mfli->get_xy(demod => 1);
 say "x_0, y_0: ", $xy_0->{x}, ", ", $xy_0->{y};

METHODS

If the MFLI has the Impedance Analyzer option, calling some of the following setter options might be without effect. E.g. if the Bandwith Control option of the Impedance Analyzer module is set, manipulating the time constant with set_tc will not work.

get_frequency

 my $freq = $mfli->get_frequency();

Get oscillator frequency.

set_frequency

 $mfli->set_frequency(value => 10000);

Set oscillator frequency.

get_voltage_sens

 my $sens = $mfli->get_voltage_sens();

Get sensitivity (range) of voltage input.

set_voltage_sens

 $mfli->set_voltage_sens(value => 1);

Set sensitivity (range) of voltage input.

get_current_sens

 my $sens = $mfli->get_current_sens();

Get sensitivity (range) of current input.

set_current_sens

 $mfli->set_current_sens(value => 100e-6);

Set sensitivity (range) of current input.

get_amplitude

 my $amplitude = $mfli->get_amplitude();

Get amplitude of voltage output.

set_amplitude

 $mfli->set_amplitude(value => 300e-3);

Set amplitude of voltage output.

get_amplitude_range

 my $amplitude_range = $mfli->get_amplitude_range();

Get range of voltage output.

set_amplitude_range

 $mfli->set_amplitude_range(value => 1);

Set amplitude of voltage output.

get_phase

 my $phase = $mfli->get_phase(demod => 0);

Get demodulator phase shift.

set_phase

 $mfli->set_phase(demod => 0, value => 10);

Set demodulator phase.

get_tc

 my $tc = $mfli->get_tc(demod => 0);

Get demodulator time constant.

set_tc

 $mfli->set_tc(demod => 0, value => 0.5);

Set demodulator time constant.

get_order

 my $order = $mfli->get_order(demod => 0);

Get demodulator filter order.

set_order

 $mfli->set_order(demod => 0, order => 4);

Set demodulator filter order.

get_xy

 my $xy_0 = $mfli->get_xy(demod => 0);
 my $xy_1 = $mfli->get_xy(demod => 1);
 
 printf("x: %g, y: %g\n", $xy_0->{x}, $xy_0->{y});

Get demodulator X and Y output measurement values.