资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过SCPI命令查询Keysight双向直流电源输出电压恢复时间与负载电流的关系?

2026-05-18 09:50:40  点击:

  SCPI 查询 Keysight 双向直流电源:电压恢复时间 ↔ 负载电流 关系

  核心结论

  无直读恢复时间专用 SCPI 指令,依靠程控切换负载电流 + 高速电压采样 + 上位机判稳计算实现

  标准定义:扰动后电压进入稳态误差带并持续稳定的时长

  规律:负载电流越大,输出压降越大,环路调节量增加,电压恢复时间越长

  一、SCPI 核心指令集

  1. 仪器初始化(固定基准工况)

  scpi

  *RST

  *CLS

  OUTP ON

  VOLT 24.0 ; 固定目标输出电压

  CAL:AUTO OFF ; 关闭自动校准,避免动态响应偏移

  SENS:AUTO OFF

  VOLT:BAND MED ; 固定电压环路带宽,单一变量仅改电流

  2. 程控设置梯度负载电流(核心变量)

  scpi

  CURR 1.0 ; 轻载电流

  CURR 3.0 ; 中载电流

  CURR 6.0 ; 重载电流

  *WAI ; 等待输出稳态

  3. 配置高速采样抓取恢复全过程

  scpi

  SENS:VOLT:SAMP 16384 ; 采样点数

  SENS:VOLT:SRAT 1000000 ; 1MS/s 采样率,1μs时间精度

  TRIG:SOUR IMM

  TRIG:DEL 0

  4. 施加电流阶跃扰动(激发电压波动)

  scpi

  CURR 0.5 ; 初始轻载稳态

  *WAI

  INIT ; 启动波形采集

  CURR 6.0 ; 阶跃切换至目标负载电流,产生电压跌落/波动

  *WAI

  5. 读取波形与辅助参数

  scpi

  FETC:VOLT:ARR? ; 读取完整电压时域波形

  MEAS:VOLT? ; 读取最终稳态电压

  MEAS:TEMP? ; 同步读取模块温度,排除温漂干扰

  CURR? ; 确认实际负载电流

  6. 参数查询指令

  scpi

  VOLT:BAND? ; 查询当前环路带宽

  SENS:VOLT:SRAT? ; 查询采样速率

  二、恢复时间判定规则

  设稳态标称电压 Vset误差带常用:±0.1%Vset

  电流阶跃后电压发生偏移

  判定电压首次进入误差带,且后续连续采样点不再超出

  从阶跃触发时刻到稳定时刻的时长 = 电压恢复时间

  三、Python+SCPI 全自动测试代码

  python

  运行

  import pyvisa

  import numpy as np

  # 仪器连接

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP0::仪器IP::inst0::INSTR")

  inst.timeout = 30000

  # 测试配置

  V_STD = 24.0

  TOL_RANGE = V_STD * 0.001 # ±0.1%误差带

  SAMPLE_RATE = 1000000

  TIME_STEP = 1 / SAMPLE_RATE

  # 梯度负载电流序列

  LOAD_CUR_LIST = [1. 2. 3. 4. 5. 6]

  # 仪器初始化

  inst.write("*RST")

  inst.write("OUTP ON")

  inst.write(f"VOLT {V_STD}")

  inst.write("CAL:AUTO OFF")

  inst.write("VOLT:BAND MED")

  print("负载电流(A) 电压恢复时间(μs)")

  print("-"*40)

  for load_i in LOAD_CUR_LIST:

  # 初始低电流稳态

  inst.write("CURR 0.5")

  inst.write("*WAI")

  # 配置采样

  inst.write("SENS:VOLT:SAMP 16384")

  inst.write(f"SENS:VOLT:SRAT {SAMPLE_RATE}")

  # 阶跃切换负载电流

  inst.write("INIT")

  inst.write(f"CURR {load_i}")

  inst.write("*WAI")

  # 读取电压波形

  wave_data = inst.query("FETC:VOLT:ARR?")

  volt_array = np.array([float(v) for v in wave_data.split(",")])

  # 筛选稳定区间

  stable_upper = V_STD + TOL_RANGE

  stable_lower = V_STD - TOL_RANGE

  stable_flag = np.logical_and(volt_array >= stable_lower, volt_array <= stable_upper)

  # 查找首次持续稳定点

  settle_index = None

  for idx in range(len(stable_flag)):

  if np.all(stable_flag[idx:idx+200]):

  settle_index = idx

  break

  restore_time = settle_index * TIME_STEP * 1e6 if settle_index else 0

  print(f"{load_i:>6} {restore_time:.2f}")

  inst.write("OUTP OFF")

  inst.close()

  四、实测对应关系

  轻载小电流:电压波动幅度小,环路调节压力小,恢复时间最短

  中载电流:恢复时间平稳递增

  重载大电流:电压偏移量大,闭环调节过程变长,恢复时间显著增加

  同电流下:灌电流模式恢复时间略长于源电流模式

  五、测试收尾复位 SCPI

  scpi

  ABORT ; 终止波形采集

  VOLT:BAND MED ; 恢复默认环路带宽

  CURR 0 ; 清零输出电流

  OUTP OFF

  *RST

  六、关键注意事项

  全程固定输出电压、环路带宽、环境温度,仅更改负载电流,保证单一变量

  采样率越高,恢复时间计算精度越高

  容性负载搭配大电流负载,会进一步拉长电压恢复时间

  避免测试过程中开启自动量程、自动校准,干扰动态响应数据