资讯中心

联系我们

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

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

2026-05-18 09:30:34  点击:

  Keysight 双向直流电源(N6781A/B2902A/N6705B 等)没有一条 SCPI 命令能直接给出 “过冲时间–负载变化率” 的关系曲线,但可以用 SCPI 自动化扫描不同负载变化率 → 高速采样电压波形 → 后处理提取过冲时间,从而得到两者关系。下面给你完整 SCPI 命令流 + 测量原理 + 自动化脚本思路。

  一、概念澄清(SCPI 里没有直接 “过冲时间”)

  负载变化率 Slew Rate (SR):电流变化速度,单位 A/μs 或 A/ms,由电源 / 电子负载动态模式设定。

  电压过冲时间 Overshoot Time:

  过冲幅度:Vpk – Vsteady

  过冲时间:从进入过冲到 ** 回到稳态误差带(如 ±2%)** 的时间。

  SCPI 现状:

  ✅ 可设:负载电流、电流变化率、触发方式、采样点数

  ✅ 可读:电压最大值 / 最小值、采样波形数组

  ❌ 无:MEAS:VOLT:OVER:TIME? 这类直接命令

  因此只能:多 SR → 采样波形 → 离线算过冲时间 → 绘 SR vs tovershoot。

  二、SCPI 核心命令(双向电源 N6781A/B2902A)

  1. 基础初始化

  scpi

  *RST

  *CLS

  OUTP ON ; 开输出

  VOLT 5.0 ; 设定 Vsteady=5V

  CURR 1.0 ; 限流 1A

  2. 设置负载动态变化率(关键)

  双向电源自身做负载阶跃(源 / 阱切换):

  scpi

  ; 例如:1A ↔ 3A 方波,上升/下降斜率 = 0.1 A/μs

  CURR:STAR 1.0

  CURR:STOP 3.0

  CURR:SLEW:RIS 0.1e6 ; 上升斜率 0.1 A/μs

  CURR:SLEW:FAL 0.1e6 ; 下降斜率

  CURR:MODE DYN ; 动态电流模式

  若用外部电子负载,则 SCPI 发负载指令(如 CURR:SLEW)给负载,电源只做电压采样。

  3. 高速电压采样(捕获过冲波形)

  scpi

  SENS:VOLT:RANG AUTO

  SENS:VOLT:SAMP 2000 ; 2000 点

  SENS:VOLT:SRAT 1e6 ; 1 MSa/s(1μs/点)

  SENS:VOLT:TRIG:SOUR IMM ; 立即触发(或 EXT 同步负载边沿)

  SENS:VOLT:TRIG:DEL 0 ; 无延迟

  ; 启动采样

  INIT

  ; 读取波形(CSV 数组)

  FETC:VOLT:ARR?

  4. 读取峰值(用于过冲幅度)

  scpi

  MEAS:VOLT:MAX? ; Vpk

  MEAS:VOLT:MIN? ; Vvalley

  MEAS:VOLT? ; Vsteady

  三、“过冲时间 vs 负载变化率” 测量流程(SCPI 自动化)

  目标:在 0.01 → 1 A/μs 范围内扫描 SR,每次测 tovershoot。

  步骤 1:遍历负载变化率(SCPI 循环)

  scpi

  ; 伪代码(SCPI 无循环,由 Python 外层控制)

  FOR SR IN [0.01. 0.05. 0.1. 0.2. 0.5. 1.0] A/μs

  CURR:SLEW:RIS SR*1e6

  CURR:SLEW:FAL SR*1e6

  INIT ; 触发负载阶跃+采样

  READ FETC:VOLT:ARR? ; 拿到波形数组 V(t)

  READ MEAS:VOLT:MAX?

  READ MEAS:VOLT?

  ENDFOR

  步骤 2:从波形提取过冲时间(后处理算法)

  对每个 SR 的 V (t):

  找稳态:Vsteady = mean(最后 20% 点)

  过冲幅度:ΔV = max(V) − Vsteady

  过冲起始:首次 > Vsteady×1.02 的时刻

  过冲结束:最后一次 > Vsteady×1.02 后回到 ±2% 内的时刻

  过冲时间:tovershoot = t_end − t_start

  步骤 3:得到关系

  横轴:负载变化率 SR(A/μs)

  纵轴:过冲时间 tovershoot(μs)

  典型趋势:SR 越大 → 过冲幅度越大 → 过冲时间先减小后增大(欠阻尼→过阻尼)。

  四、Python + SCPI 最简可运行示例(N6781A)

  python

  运行

  import pyvisa

  import numpy as np

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")

  inst.timeout = 10000

  # 初始化

  inst.write("*RST")

  inst.write("OUTP ON")

  inst.write("VOLT 5.0")

  SR_list = [0.01. 0.05. 0.1. 0.2. 0.5. 1.0] # A/μs

  tovershoot_list = []

  for SR in SR_list:

  inst.write(f"CURR:SLEW:RIS {SR*1e6}")

  inst.write(f"CURR:SLEW:FAL {SR*1e6}")

  inst.write("CURR:MODE DYN")

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

  inst.write("SENS:VOLT:SRAT 1e6")

  inst.write("INIT")

  # 读取波形

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

  V = np.array([float(x) for x in data.split(',')])

  t = np.arange(len(V)) * 1e-6 # μs

  Vsteady = np.mean(V[-400:])

  Vpk = np.max(V)

  # 2% 误差带

  upper = Vsteady * 1.02

  cross_idx = np.where(V > upper)[0]

  if len(cross_idx) > 0:

  t_start = t[cross_idx[0]]

  t_end = t[cross_idx[-1]]

  tover = t_end - t_start

  else:

  tover = 0

  tovershoot_list.append(tover)

  print(f"SR={SR} A/μs, tover={tover:.2f} μs")

  # 最后:plot(SR_list, tovershoot_list)

  inst.close()

  五、关键限制与替代方案

  SCPI 只能采样,不能自动算时间:必须 PC 后处理。

  采样率上限:N6781A 约 1 MSa/s,看 1μs 级过冲足够;亚微秒需示波器。

  高精度替代:

  示波器(Keysight MSO-X)+ 电源同步触发

  示波器 SCPI:MEAS:OVER:TIME? 直接读过冲时间。

  总结

  无单条 SCPI 直接查 “过冲时间–负载变化率”。

  用 SCPI 扫不同 SR → 高速采样电压波形 → 后处理提取过冲时间,即可得到关系。

  命令核心:CURR:SLEW(设变化率)、SENS:VOLT:SAMP/SRAT(采样)、FETC:VOLT:ARR?(读波形)。