SCPI 查询 Keysight 双向直流电源 电压阶跃上升时间
核心结论
无专属 SCPI 单条指令直接返回上升时间
标准工业定义上升时间:10% → 90% 稳态幅值的时间
实现方案:
SCPI 程控输出电压阶跃
高速采样时域电压波形
上位机自动截取 10%~90% 区间计算上升时间
适用机型:N6781A、B2900、N6705 系列
一、标准定义
设阶跃起始值 V0,稳态终值 VfinalV10%V90%=V0+0.1(Vfinal−V0)=V0+0.9(Vfinal−V0)上升时间 tr:电压穿过 V10% 时刻 → 穿过 V90% 时刻的时间差
二、全套 SCPI 命令流
1. 仪器初始化
scpi
*RST
*CLS
OUTP ON
CAL:AUTO OFF ; 关闭自动校准,不干扰动态边沿
SENS:AUTO OFF ; 固定测量量程
CURR 3.0 ; 设定负载限流
2. 配置高速采样(精准抓边沿)
scpi
SENS:VOLT:SAMP 8192 ; 采样点数
SENS:VOLT:SRAT 2000000 ; 2MS/s 采样率 → 时间分辨率0.5μs
TRIG:SOUR IMM
TRIG:DEL 0
3. 下发电压阶跃信号
scpi
VOLT 2.0 ; 阶跃低电平
*WAI ; 等待稳定
INIT ; 启动波形采集
VOLT 5.0 ; 阶跃跳变,产生上升沿
*WAI
4. 读取时域波形
scpi
FETC:VOLT:ARR? ; 取回整段阶跃电压波形数组
5. 辅助查询指令
scpi
SENS:VOLT:SRAT? ; 查询当前采样率
VOLT:BAND? ; 查询电压环路带宽(带宽越大上升时间越短)
MEAS:VOLT? ; 读取稳态电压
三、Python+SCPI 自动计算上升时间(直接运行)
python
运行
import pyvisa
import numpy as np
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
inst.timeout = 20000
# 配置参数
V_LOW = 2.0
V_HIGH = 5.0
fs = 2000000 # 采样率 2MS/s
dt = 1 / fs # 单点时间间隔
# 仪器初始化
inst.write("*RST")
inst.write("OUTP ON")
inst.write("CAL:AUTO OFF")
inst.write("CURR 3.0")
# 采样配置
inst.write("SENS:VOLT:SAMP 8192")
inst.write(f"SENS:VOLT:SRAT {fs}")
inst.write("TRIG:SOUR IMM")
# 执行阶跃
inst.write(f"VOLT {V_LOW}")
inst.write("*WAI")
inst.write("INIT")
inst.write(f"VOLT {V_HIGH}")
inst.write("*WAI")
# 读取波形
wave_str = inst.query("FETC:VOLT:ARR?")
volt = np.array([float(v) for v in wave_str.split(",")])
# 计算10% / 90% 阈值
delta_V = V_HIGH - V_LOW
v10 = V_LOW + 0.1 * delta_V
v90 = V_LOW + 0.9 * delta_V
# 查找穿越点
idx10 = np.argwhere(volt >= v10)[0][0]
idx90 = np.argwhere(volt >= v90)[0][0]
# 计算上升时间
rise_time = (idx90 - idx10) * dt
print(f"10%~90% 上升时间:{rise_time*1e6:.2f} μs")
inst.write("OUTP OFF")
inst.close()
四、带宽与上升时间关系(实测规律)
scpi
VOLT:BAND LOW ; 低带宽 → 上升时间长
VOLT:BAND MED ; 中带宽 → 标准上升时间
VOLT:BAND HIGH ; 高带宽 → 上升时间最短
带宽越高,电压响应越快,上升时间越小
重载、容性负载会拉长上升时间
五、快速精简操作(无代码)
设高低电压阶跃
开启高速采样
FETC:VOLT:ARR? 导出波形
手动在波形里读取 10%~90% 时间差即为上升时间
六、停止与复位
scpi
ABORT
VOLT:BAND MED
*RST