Keysight 双向直流电源无直接 SCPI 命令读取 “电压回摆 / 过冲 / 下冲”,但可通过峰值 / 谷值测量与高速采样间接获取,下面给出完整 SCPI 方案与实操步骤。
一、核心概念
电压回摆(Overshoot/Undershoot):输出切换 / 负载阶跃时,电压超出 / 低于稳态值的瞬态峰值。
双向电源(4 象限):如 N6781A、B2902A、IT6000.支持源 /sink 模式。
二、SCPI 命令(间接查询)
1. 峰值 / 谷值测量(最常用)
scpi
# 读取电压最大值(过冲)
MEAS:VOLT:MAX?
# 读取电压最小值(下冲)
MEAS:VOLT:MIN?
# 读取当前电压(稳态值)
MEAS:VOLT?
回摆幅度计算:
过冲:(V_MAX - V_STEADY) / V_STEADY × 100%
下冲:(V_STEADY - V_MIN) / V_STEADY × 100%
2. 高速采样(捕获瞬态波形)
scpi
# 配置高速采样(N6705B/N6781A)
SENS:VOLT:RANG AUTO
SENS:VOLT:SAMP 1000 # 1000次采样
SENS:VOLT:TRIG:SOUR IMM # 立即触发
# 读取采样数据
FETC:VOLT:ARR?
3. 状态与初始化
scpi
*RST # 复位仪器
*CLS # 清除状态
OUTP ON # 开启输出
三、实操步骤(以 N6781A 为例)
连接与通信:LAN/GPIB/USB 连接,VISA 地址如 TCPIP0::192.168.1.100::inst0::INSTR。
初始化:
python
运行
# Python+PyVISA示例
import visa
rm = visa.ResourceManager()
inst = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR')
inst.write('*RST')
inst.write('*CLS')
inst.write('OUTP ON')
触发回摆:切换输出电压 / 负载阶跃(如 0V→12V)。
查询峰值 / 谷值:
python
运行
v_max = float(inst.query('MEAS:VOLT:MAX?'))
v_min = float(inst.query('MEAS:VOLT:MIN?'))
v_steady = float(inst.query('MEAS:VOLT?'))
overshoot = (v_max - v_steady) / v_steady * 100
undershoot = (v_steady - v_min) / v_steady * 100
print(f"过冲: {overshoot:.2f}%, 下冲: {undershoot:.2f}%")
高速采样(可选):
python
运行
inst.write('SENS:VOLT:SAMP 1000')
samples = inst.query('FETC:VOLT:ARR?')
四、关键说明
适用型号:N6705B、N6781A、B2902A、IT6000 等;E364XA/E363XA 无内置峰值测量,需外接示波器。
精度:内置测量约 0.01%+10mV,高速采样可达 1μs 间隔。
局限性:无法直接读取 “回摆时间”,需配合示波器或高速采样数据后处理。
五、替代方案(高精度)
示波器 + SCPI:Keysight Infiniium 示波器用 MEAS:OVER? 直接读取过冲,电源同步触发。
六、总结
优先用 MEAS:VOLT:MAX?/MIN? 快速查询回摆幅度;需波形细节时用 高速采样;高精度场景配合示波器。