Skip to content
Snippets Groups Projects
Commit 5d731b88 authored by Vadim Gubaidulin's avatar Vadim Gubaidulin
Browse files

Added logging to drive damp measurement. Removed stopping tune measurement in...

Added logging to drive damp measurement. Removed stopping tune measurement in growth and drive damp measurements
parent 9473e3d3
No related branches found
No related tags found
No related merge requests found
...@@ -8,6 +8,9 @@ from pythoncontrol.measurements.chromaticity import ChromaticityMeasurement ...@@ -8,6 +8,9 @@ from pythoncontrol.measurements.chromaticity import ChromaticityMeasurement
from pythoncontrol.devices.tune_monitor import BetatronTuneMonitor from pythoncontrol.devices.tune_monitor import BetatronTuneMonitor
from pythoncontrol.devices.masterclock import MasterClock from pythoncontrol.devices.masterclock import MasterClock
from time import sleep from time import sleep
import logging
logger = logging.getLogger(__name__)
class DriveDampMeasurement: class DriveDampMeasurement:
...@@ -26,8 +29,10 @@ class DriveDampMeasurement: ...@@ -26,8 +29,10 @@ class DriveDampMeasurement:
# Measurement params # Measurement params
self.sleep_time_delay_generator_change = 1 self.sleep_time_delay_generator_change = 1
logging.basicConfig(level=logging.INFO)
def measure_drive_damp(self, mode_frequency=0, chro_measurement=False, def measure_drive_damp(self, mode_frequency=0, chro_measurement=False,
window_width=300, window_delay=100): window_width=500, window_delay=100):
""" """
Growth damp core function. Growth damp core function.
...@@ -42,7 +47,7 @@ class DriveDampMeasurement: ...@@ -42,7 +47,7 @@ class DriveDampMeasurement:
Delay of the window during which the FBT is off. Delay of the window during which the FBT is off.
The default is 10. The default is 10.
mode_frequency : float, optional mode_frequency : float, optional
Frequency of the mode excitation. The default is 0. Harmonic of the mode excitation. The default is 0.
""" """
if chro_measurement: if chro_measurement:
...@@ -53,26 +58,37 @@ class DriveDampMeasurement: ...@@ -53,26 +58,37 @@ class DriveDampMeasurement:
beam_params.record_data(self.filename) beam_params.record_data(self.filename)
# Check if feedbacks are stopped # Check if feedbacks are stopped
logger.info("Checking if SOFB, FOFB and tune feedbacks are off.")
check_feedback_stopped() check_feedback_stopped()
# Stop tune measurement # Stop tune measurement
self.fbt.stop_tune_measurement() # self.fbt.stop_tune_measurement()
logger.info(f"Setting fine delay generator window to {window_width} \
us with a delay of {window_delay} ns")
self.delay_generator.set_window(width=window_width, self.delay_generator.set_window(width=window_width,
delay=window_delay, delay=window_delay,
sleeptime=self.sleep_time_delay_generator_change) sleeptime=self.sleep_time_delay_generator_change)
self.mode_excitation_generator.set_frequency((mode_frequency-self.tune.get_tunes()[1])*self.master_clock.get_frequency() / 416) freq = (mode_frequency-self.tune.get_tunes()[1])*self.master_clock.get_frequency() / 416
logger.info(f"Setting mode excitation frequency to \
{mode_frequency}-{self.tune.get_tunes()[1]} corresponding \
to {freq}")
self.mode_excitation_generator.set_frequency(freq)
# Measurement # Measurement
logger.info("Activating delay generator channel A")
self.delay_generator.delay_generator.activateChannelA = True self.delay_generator.delay_generator.activateChannelA = True
logger.info("FBT BPM buffer data is being acquired once")
self.fbt.fbt.acquiredataonce() self.fbt.fbt.acquiredataonce()
logger.info("Desactivating delay generator channel A")
self.delay_generator.delay_generator.activateChannelA = False self.delay_generator.delay_generator.activateChannelA = False
logger.info('Recording measurement data')
self.fbt.record_data(self.filename) self.fbt.record_data(self.filename)
self.delay_generator.record_data(self.filename) self.delay_generator.record_data(self.filename)
# Restart tune measurement # Restart tune measurement
self.fbt.restart_tune_measurement() # self.fbt.restart_tune_measurement()
beam_params.record_data(self.filename) beam_params.record_data(self.filename)
def scan_vs_frequencies(self, mode_frequencies, window_width=3000, def scan_vs_frequencies(self, mode_frequencies, window_width=3000,
...@@ -91,5 +107,4 @@ class DriveDampMeasurement: ...@@ -91,5 +107,4 @@ class DriveDampMeasurement:
self.measure_drive_damp(mode_frequency=freq, self.measure_drive_damp(mode_frequency=freq,
window_width=window_width, window_width=window_width,
window_delay=window_delay) window_delay=window_delay)
print(f"Measured drive damp at frequency: {freq} Hz")
sleep(sleeptime_between_measurements) sleep(sleeptime_between_measurements)
...@@ -75,8 +75,8 @@ class GrowthDampMeasurement: ...@@ -75,8 +75,8 @@ class GrowthDampMeasurement:
are stopped before measurement") are stopped before measurement")
check_feedback_stopped() check_feedback_stopped()
logger.info("Stopping tune measurement") # logger.info("Stopping tune measurement")
self.fbt.stop_tune_measurement() # self.fbt.stop_tune_measurement()
# Measurement # Measurement
logger.info("Acquiring bunch-by-bunch data") logger.info("Acquiring bunch-by-bunch data")
...@@ -87,9 +87,9 @@ class GrowthDampMeasurement: ...@@ -87,9 +87,9 @@ class GrowthDampMeasurement:
self.fbt.record_data(self.filename) self.fbt.record_data(self.filename)
self.delay_generator.record_data(self.filename) self.delay_generator.record_data(self.filename)
logger.info("Restarting tune measurement after growth damp \ # logger.info("Restarting tune measurement after growth damp \
measurement") # measurement")
self.fbt.restart_tune_measurement() # self.fbt.restart_tune_measurement()
logger.info("Growth damp measurement completed. Data recorded to %s", logger.info("Growth damp measurement completed. Data recorded to %s",
self.filename) self.filename)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment