用pyvisa 1.13.0版本 visa1.0.0在仪器安捷伦33120A和EG&G 7265 DSP Lock-in Amplifier扫描音叉谐振子频率并绘图的完整python代码利用import pyvisa as visa
时间: 2024-05-13 19:15:54 浏览: 162
下面是一个完整的 Python 代码样例,用于扫描安捷伦33120A和EG&G 7265 DSP Lock-in Amplifier中的音叉谐振子频率,并绘制图形。在此之前,请确保已经安装了 pyvisa 和 visa1.0.0,并且正确连接了仪器。
```python
import pyvisa as visa
import numpy as np
import matplotlib.pyplot as plt
# 初始化 GPIB 控制器
rm = visa.ResourceManager()
# 打印 GPIB 设备列表
print(rm.list_resources())
# 连接安捷伦33120A信号发生器
agilent = rm.open_resource('GPIB0::10::INSTR')
# 设置输出波形为正弦波
agilent.write('FUNC SIN')
# 设置输出电压峰峰值为2V
agilent.write('VOLT:UNIT VPP')
agilent.write('VOLT 2')
# 设置输出频率为100Hz
agilent.write('FREQ:UNIT HZ')
agilent.write('FREQ 100')
# 连接EG&G 7265 DSP Lock-in 放大器
lockin = rm.open_resource('GPIB0::8::INSTR')
# 设置参考频率为100Hz
lockin.write('FREQ 100')
# 设置灵敏度为10mV
lockin.write('SENS 10E-3')
# 打开同步滤波器
lockin.write('SYNC ON')
# 扫描频率并测量幅度
freqs = np.linspace(10, 1000, 100)
amplitudes = []
for freq in freqs:
# 设置信号发生器频率
agilent.write(f'FREQ {freq}')
# 延时等待信号发生器稳定
time.sleep(0.1)
# 读取放大器输出幅度
amplitude = float(lockin.query('OUTP?1'))
amplitudes.append(amplitude)
# 绘制幅度-频率曲线
plt.plot(freqs, amplitudes)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude (V)')
plt.show()
# 关闭 GPIB 控制器
agilent.close()
lockin.close()
rm.close()
```
在此代码中,我们首先初始化了 GPIB 控制器,并连接了安捷伦33120A信号发生器和EG&G 7265 DSP Lock-in 放大器。然后,我们扫描了一系列频率,并在每个频率上测量了放大器输出的幅度。最后,我们使用 Matplotlib 库绘制了幅度-频率曲线。
请注意,这个代码仅供参考,并且在实际使用时需要进行适当的修改。例如,您可能需要根据您的仪器连接方式和参数对 GPIB 地址和命令进行修改。
阅读全文