Keysight 双向直流电源(N7900/N6700 等)没有一条 SCPI 指令直接 “查询下冲时间–环路补偿关系”;必须用 SCPI 程控切换不同环路补偿模式 / 参数 → 触发负载阶跃 → 测量每组下冲时间 → 离线拟合关系。下面以 N7900 系列(最常用双向机型)给出完整 SCPI 命令、流程和自动化脚本。
一、原理:环路补偿 ↔ 下冲时间
环路补偿(Loop Compensation):决定 CV 环带宽 / 相位裕度;Keysight 电源一般提供:
FAST(高带宽、快响应、易振荡 / 下冲大)
MEDIUM(折中,默认)
SLOW(低带宽、稳、下冲小但恢复慢)
部分型号支持 用户自定义补偿参数(带宽 / 增益)
下冲时间 Tus:负载阶跃时电压跌到最低点再回到稳态的时间。
定性关系:补偿越快(带宽越高)→ Tus 越短,但下冲幅度越大;补偿越慢 → Tus 越长,下冲越小。
二、必备 SCPI 命令(N7900.固件 ≥ v4.x)
1. 基础与补偿设置(核心)
scpi
*RST
:SYST:REM
:VOLT 5.0
:CURR 10.0
:OUTP ON
; 环路补偿模式设置(三档)
:OUTP:COMP FAST ; 快速补偿
:OUTP:COMP MEDIUM ; 中等(默认)
:OUTP:COMP SLOW ; 慢速补偿
:OUTP:COMP? ; 查询当前补偿:FAST/MED/SLOW
; 部分高级型号支持直接设带宽(示例)
:OUTP:BAND 100e3 ; 100kHz 环路带宽
:OUTP:BAND?
2. 负载阶跃(产生下冲)
scpi
:LOAD:STEP 1.5 ; 1A → 5A 阶跃(双向可设正负)
:LOAD:STEP:TRIG ; 触发阶跃
3. 下冲时间测量
scpi
:MEAS:VOLT:UND? ; 下冲幅度(V)
:MEAS:VOLT:UND:TIME? ; 下冲时间(s,关键)
:TRACE:VOLT? ; 完整电压波形(高精度分析用)
三、完整 SCPI 测试流程(补偿扫描 → 测 Tus → 拟合)
步骤 1:初始化
scpi
*RST;:SYST:REM;:VOLT 5.0;:CURR 10.0;:OUTP ON
步骤 2:遍历三种补偿模式,测 Tus
scpi
; 1) FAST 补偿
:OUTP:COMP FAST
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? ; 记为 Tus_FAST
; 2) MEDIUM 补偿
:OUTP:COMP MEDIUM
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? ; Tus_MED
; 3) SLOW 补偿
:OUTP:COMP SLOW
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? ; Tus_SLOW
:OUTP OFF
步骤 3:数据记录(典型值,仅供参考)
表格
步骤 4:离线拟合关系
近似关系:Tus ∝ 1 / 环路带宽(带宽越高,Tus 越短)。
可拟合:Tus = k / f_BW + b。
四、Python 自动化(VISA + SCPI,一键扫补偿)
python
运行
import pyvisa, time, numpy as np
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP::192.168.1.100::INSTR")
inst.timeout = 5000
# 初始化
inst.write("*RST;:SYST:REM;:VOLT 5.0;:CURR 10.0;:OUTP ON")
modes = ["FAST", "MEDIUM", "SLOW"]
tus_list = []
for m in modes:
inst.write(f":OUTP:COMP {m}")
time.sleep(0.2)
inst.write(":LOAD:STEP 1.5;:LOAD:STEP:TRIG")
time.sleep(0.2)
tus = float(inst.query(":MEAS:VOLT:UND:TIME?")) * 1e6
tus_list.append(tus)
print(f"Mode={m}, Tus={tus:.1f} us")
inst.write(":OUTP OFF")
inst.close()
# 简单拟合(带宽近似反比)
bw = [100e3. 40e3. 10e3] # 典型带宽
k, b = np.polyfit(1/np.array(bw), tus_list, 1)
print(f"Tus(us) = {k:.2e}/f_BW + {b:.1f}")
五、关键注意点
命令可用性::OUTP:COMP 仅 N7900、N6705B/6700B 等较新双向电源支持;老型号无此命令,只能通过调整输出阻抗 / 电容间接改变环路响应。
阶跃设置:双向电源建议用 -5A → +5A 双向阶跃,下冲更明显。
精度提升:用 :TRACE:VOLT? 读波形,在 Python 中做插值 / 微分,比内置 :MEAS 更准。
超时:阶跃后至少延迟 200ms再读 Tus,避免数据未更新。
六、总结
无直接 SCPI 查询命令,必须:程控补偿模式 → 阶跃 → 测 Tus → 离线分析。
核心 SCPI::OUTP:COMP(设补偿)、:MEAS:VOLT:UND:TIME?(读下冲时间)。
规律:补偿越快(带宽越高)→ 下冲时间越短,下冲幅度越大。