用pyvisa 1.13.0版本 visa1.0.0在安捷伦33120A和EG&G 7265 DSP Lock-in Amplifier仪器设置SEN、Harmonic和sweep_interval、Voltage。去扫描音叉谐振子频率和振幅,并绘图的完整python代码利用import pyvisa as pv
时间: 2024-02-11 17:06:30 浏览: 144
好的,以下是使用pyvisa 1.13.0版本 visa1.0.0在安捷伦33120A和EG&G 7265 DSP Lock-in Amplifier仪器设置SEN、Harmonic和sweep_interval、Voltage。去扫描音叉谐振子频率和振幅,并绘图的Python代码:
```python
import pyvisa as pv
import numpy as np
import matplotlib.pyplot as plt
# 打开仪器
rm = pv.ResourceManager()
sig_gen = rm.open_resource('GPIB0::10::INSTR') # 安捷伦33120A信号发生器
lockin = rm.open_resource('GPIB0::11::INSTR') # EG&G 7265 DSP Lock-in放大器
# 设置安捷伦33120A信号发生器并输出连续方波
sig_gen.write(':SOUR:FREQ:MODE CW')
sig_gen.write(':SOUR:FUNC SQU')
sig_gen.write(':SOUR:SQU:DCYC 50')
sig_gen.write(':SOUR:SQU:PER 0.1') # 方波周期0.1秒
sig_gen.write(':OUTP:LOAD 50')
sig_gen.write(':OUTP ON')
# 设置EG&G 7265 DSP Lock-in放大器
lockin.write('REST') # 恢复出厂设置
lockin.write('HARM 1') # 设置灵敏度谐波级数为1
lockin.write('SEN 22') # 设置灵敏度为22 dB
lockin.write('SLVL 0.5') # 设置灵敏度电压为0.5V
# 扫描音叉频率并测量信号
freq_list = np.arange(10, 100, 1) # 扫描频率范围10Hz到100Hz
signal_list = []
for freq in freq_list:
sig_gen.write(f':SOUR:FREQ {freq}')
signal = lockin.query_ascii_values('SNAP?1,2,3') # 测量X, Y, R
signal_list.append(signal[2]) # 只记录R
# 绘制结果图像
plt.plot(freq_list, signal_list)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Lock-in R')
plt.show()
# 关闭仪器
sig_gen.write(':OUTP OFF')
sig_gen.close()
lockin.close()
```
在这个代码中,我们在设置EG&G 7265 DSP Lock-in放大器之前,先使用`write()`方法设置灵敏度谐波级数、灵敏度、灵敏度电压。`HARM`命令设置灵敏度谐波级数,`SEN`命令设置灵敏度,`SLVL`命令设置灵敏度电压。除此之外,我们还可以使用`SINT`命令设置扫描时间间隔,`VOLT`命令设置参考信号电压等。接下来,我们使用与前面示例相同的方法扫描音叉频率并测量信号。最后,我们使用`matplotlib`库的`plot()`函数绘制结果图像。
请注意,以上代码只是演示如何使用`pyvisa`库与仪器进行通信。实际使用时,您需要根据您的具体仪器和测量需求进行适当的修改。
阅读全文