clear(); // Clears window var total_loops = 100; var average_duration = 1; var lower_end = -20; // Smallest mV to test var upper_end = 20; // Largest mV to test var step_size = 0.5; // Step size in mV if(!('Scope' in this)) throw "Please open a Scope instrument"; if (!('Wavegen' in this)) throw "Please open a Wavegen instrument"; Wavegen.Channel1.Mode.text = "Simple"; Wavegen.run(); Scope.run(); // Set the scope window width Scope1.Time.Position.value = 0; Scope1.Time.Base.value = average_duration; // Total window width Scope1.Channel1.Range.value = 10; // Turn on the power supplies Supplies.Output.PositiveSupply.Enable.Value = 1; Supplies.Output.NegativeSupply.Enable.Value = 1; Supplies.Output.PositiveSupply.Voltage.value = 5; Supplies.Output.NegativeSupply.Voltage.value = -5; Supplies.MasterEnable.checked = 1; print("Wavegen Output (mV),Wavegen Measured (mV),Diff Amplifier Measured (V),Single Amplifier Measured (V),Ideal Wavegen Gain,Real Wavegen Gain"); for (var i = 0; i < total_loops; i++) { for (var offset = lower_end; offset <= upper_end; offset += step_size) { var desired_output_voltage = offset / 1000 Wavegen.Channel1.Simple.Offset.value = desired_output_voltage; // Set offset for desired output voltage wait(average_duration + 0.2); var diff_amp_out = Scope.Channel1.measure("Average"); var average_wavegen_reading = Scope.Channel2.measure("Average"); var single_amp_out = diff_amp_out + 5; // Single ended assuming we provided GND and 10V var real_gain = diff_amp_out / average_wavegen_reading; var ideal_gain = diff_amp_out / offset * 1000; var output = offset + "," + ((average_wavegen_reading)*1000).toFixed(3) + "," + (diff_amp_out.toFixed(3)) + "," + (single_amp_out.toFixed(3)) + ","+ (ideal_gain.toFixed(3)) + "," + real_gain.toFixed(3); print(output); /* // Debug stuff print("Desired Wavegen = " + (offset) + " mV"); print("Measured Wavegen = " + (average_wavegen_reading*1000) + " mV"); print("Measured Amplifier Output = " + (average_reading) + " V"); print("Calculated Gain from Ideal Wavegen = " + (average_reading / offset * 1000)); print("Calculated Gain from Actual Wavegen = " + (gain)); */ } } Wavegen.Channel1.Simple.Offset.value = 0; // Turn off the wavegen Supplies.MasterEnable.checked = 0; // Turn off the supplies