自动扫描记录不同参量下的超导腔调谐器piezo对动态洛伦兹力失谐补偿
源代码:
1 | # Program Name: auto record the raw data of detuning compensation by spoke cavity tuner piezo |
这段代码主要用于控制信号发生器,获取实时数据,并将数据写入CSV文件。
import pyvisa as visa: 导入PyVISA库并将其命名为visa,用于与仪器通信。import csv: 导入CSV库,用于读写CSV文件。import time: 导入时间库,用于添加延迟等待。import epics: 导入EPICS库,用于与实时控制系统通信。import numpy as np: 导入NumPy库并将其命名为np,用于处理数值计算。rm = visa.ResourceManager(): 创建PyVISA的资源管理器对象rm。signal_generator = rm.open_resource('TCPIP0::127.0.0.1::inst0::INSTR'): 打开连接到IP地址为127.0.0.1的信号发生器。for voltage in np.arange (4.0, 0, -0.4):: 使用NumPy的arange函数生成从4.0到0的间隔为0.4的电压值序列,并遍历每个电压值。for phase in range(0, 360, 2):: 在每个电压值下,遍历相位值从0到360,步长为2。signal_generator.write("SOURce2:VOLTage:AMPLitude {}".format(voltage))和signal_generator.write("SOURce2:Arb:Phase {}".format(phase)): 设置信号发生器的电压和相位值。start_time = time.time(): 记录当前时间作为起始时间。while time.time() - start_time < 15:: 在15秒内循环执行以下操作。ph_real = epics.caget('LRF:LLRF::SRF-s10:Power_KLY_RFLT')等代码:通过EPICS库获取实时数据,包括实时失谐量和幅度。通过四个
with open语句将实时数据写入不同的CSV文件中,文件名根据电压值和相位值动态生成。time.sleep(1): 程序暂停1秒,等待下一次数据采集。signal_generator.close(): 关闭信号发生器的连接。
这段代码主要实现了piezo在不同电压和相位条件下,控制信号发生器输出并获取实时数据,然后将数据写入CSV文件。