diff --git a/main.py b/main.py index a23f46c1a397e48195f712648cf8dcd298a4ded2..7d21457980397b00e1945bcb44feb3fca2e5df87 100644 --- a/main.py +++ b/main.py @@ -24,7 +24,7 @@ class MainWindow(UIWindown): ['acq_time', 'freq', 'y_min', 'y_max', 'y_step', 'x', 'field'] ], displays=['acq_time', 'freq'], - x_axis='X Position', + x_axis='Iteration', y_axis='Voltage', widget_list=tuple([ControlTab("Manual control")]), directory_input=True diff --git a/src/procedures/b_sweep.py b/src/procedures/b_sweep.py index 29158cdee9b6e2db51312d7abdd841259cc6f33f..d2958d329983284ab1122b2af21bad2e7553c197 100644 --- a/src/procedures/b_sweep.py +++ b/src/procedures/b_sweep.py @@ -15,13 +15,13 @@ class B_Sweep(Procedure): name = "B-Sweep" acq_time = FloatParameter('Aquisition time', units='s', default=1) freq = FloatParameter('Aquisition Frequency', units='Hz', default=50) - b_min = FloatParameter('From B', units='V', default=0) - b_max = FloatParameter('To B', units='V', default=5) - b_step = FloatParameter('Step', units='V', default=0.1) + b_min = FloatParameter('From B (max 6A)', units='A', minimum=0., maximum=6., default=0) + b_max = FloatParameter('To B (max 6A)', units='A', minimum=0., maximum=6., default=5) + b_step = FloatParameter('Step', units='A', default=0.1) x = FloatParameter('Position x', units='mm', default=0) y = FloatParameter('Position y', units='mm', default=0) - DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]'] + DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]'] def startup(self): log.info("Setting up the data aquisition") @@ -32,7 +32,7 @@ class B_Sweep(Procedure): voltage = DAC("ai0") field = DAC("ao1") - b_values = np.arange(self.b_min, self.b_max, self.b_step) + b_values = np.linspace(self.b_min, self.b_max, int((self.b_max-self.b_min)//self.b_step + 1), endpoint=True) field.write(self.b_min) @@ -60,7 +60,8 @@ class B_Sweep(Procedure): sleep(1/self.freq) data = { - 'Magnetic Field [V]': b_values[i], + 'Iteration': i, + 'Magnetic Field [A]': b_values[i], 'Voltage': np.mean(average_voltage) } diff --git a/src/procedures/x_sweep.py b/src/procedures/x_sweep.py index 74b059b17133d38c99d7458f6263a7a1f95749ac..ed8ba067b5e5af1c5a49869b4334670c58efb40f 100644 --- a/src/procedures/x_sweep.py +++ b/src/procedures/x_sweep.py @@ -21,7 +21,7 @@ class X_Sweep(Procedure): y = FloatParameter('Position y', units='mm', default=0) field = FloatParameter('Magnetic field', units='V', default=0) - DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]'] + DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]'] def startup(self): log.info("Setting up the data aquisition") @@ -32,7 +32,7 @@ class X_Sweep(Procedure): voltage = DAC("ai0") field = DAC("ao1") - x_positions = np.arange(self.x_min, self.x_max, self.x_step) + x_positions = np.linspace(self.x_min, self.x_max, int((self.x_max-self.x_min)//self.x_step+1), endpoint=True) field.write(self.field) @@ -58,6 +58,7 @@ class X_Sweep(Procedure): average_voltage[step] = voltage.read() sleep(1/self.freq) data = { + 'Iteration': i, 'X Position': x_positions[i], 'Voltage': np.mean(average_voltage) } diff --git a/src/procedures/y_sweep.py b/src/procedures/y_sweep.py index 60628b45b38dfbee9ad26d7dee4e199dced455c1..2acdef5309f98dd17b8812a8a11aa324a38ac4f4 100644 --- a/src/procedures/y_sweep.py +++ b/src/procedures/y_sweep.py @@ -19,9 +19,9 @@ class Y_Sweep(Procedure): y_max = FloatParameter('To y', units='mm', default=5) y_step = FloatParameter('Step', units='mm', default=0.1) x = FloatParameter('Position x', units='mm', default=0) - field = FloatParameter('Magnetic field', units='V', default=0) + field = FloatParameter('Magnetic field (max 6A)', units='V', default=0) - DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]'] + DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]'] def startup(self): log.info("Setting up the data aquisition") @@ -32,7 +32,7 @@ class Y_Sweep(Procedure): voltage = DAC("ai0") field = DAC("ao1") - y_positions = np.arange(self.y_min, self.y_max, self.y_step) + y_positions = np.linspace(self.y_min, self.y_max, int((self.y_max-self.y_min)//self.y_step+1), endpoint=True) field.write(self.field) @@ -58,6 +58,7 @@ class Y_Sweep(Procedure): average_voltage[step] = voltage.read() sleep(1/self.freq) data = { + 'Iteration': i, 'Y Position': y_positions[i], 'Voltage': np.mean(average_voltage) }