Keysight 双向直流电源无直接 SCPI 命令可同时查询 “下冲时间 - 输出阻抗” 关系;需用 SCPI程控多组输出阻抗→测对应下冲时间→离线拟合关系曲线。以下以 N7900 系列(N7951A/N7952A)为例,给出完整 SCPI 指令与测试流程。
一、核心原理
输出阻抗(Zout):电源闭环输出阻抗,可调(如 0.1Ω/0.5Ω/1Ω/5Ω)。
下冲时间(Tus):负载阶跃时电压跌至最低点再回到稳态的时间,Zout 越大,Tus 越长。
SCPI 限制:电源仅支持设置 Zout、触发负载阶跃、读取电压波形 / 瞬态参数;无内置 “Zout-Tus” 关联查询指令。
二、必备 SCPI 命令(N7900 系列)
1. 基础设置
scpi
*RST // 复位
:SYST:REM // 远程控制
:VOLT 5.0 // 输出电压5V
:CURR 10.0 // 电流限制10A
:OUTP ON // 开启输出
2. 输出阻抗设置(关键)
scpi
:OUTP:IMP 0.1 // 设置Zout=0.1Ω(可选0.1/0.5/1/5Ω)
:OUTP:IMP? // 查询当前Zout,返回0.1
3. 负载阶跃触发(产生下冲)
scpi
:LOAD:STEP 1.5 // 负载从1A→5A阶跃(双向电源支持双向电流)
:LOAD:STEP:TRIG // 触发阶跃
4. 下冲时间测量(读取瞬态参数)
scpi
:MEAS:VOLT:UND? // 读取下冲幅度(V)
:MEAS:VOLT:UND:TIME? // 读取下冲时间(s,核心参数)
:TRACE:VOLT? // 读取电压波形数据(用于离线分析)
三、完整测试流程(SCPI 程控 + 数据拟合)
步骤 1:初始化与阻抗扫描
scpi
*RST;:SYST:REM;:VOLT 5.0;:CURR 10.0;:OUTP ON
:OUTP:IMP 0.1 // Zout=0.1Ω
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? // 读Tus1
:OUTP:IMP 0.5 // Zout=0.5Ω
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? // 读Tus2
:OUTP:IMP 1.0 // Zout=1Ω
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? // 读Tus3
:OUTP:IMP 5.0 // Zout=5Ω
:LOAD:STEP 1.5;:LOAD:STEP:TRIG
:MEAS:VOLT:UND:TIME? // 读Tus4
:OUTP OFF
步骤 2:数据记录(示例)
表格
步骤 3:离线拟合关系
拟合公式:Tus ≈ k·Zout + b(线性正相关)。
示例拟合:Tus(μs)≈ 32·Zout(Ω)+ 15.
四、关键注意事项
阻抗范围:N7900 系列支持0.1Ω~5Ω,超出范围会报错。
负载阶跃:双向电源需设置双向电流阶跃(如 - 5A→+5A),下冲更明显。
测量精度:用 **:TRACE:VOLT?读取完整波形,在 Python/MATLAB 中计算精确 Tus**,避免内置测量误差。
SCPI 超时:阶跃后需延迟 100ms再读 Tus,防止数据未更新。
五、Python 自动化示例(VISA+SCPI)
python
运行
import pyvisa
import time
rm = pyvisa.ResourceManager()
inst = rm.open_resource('TCPIP::192.168.1.100::INSTR') // 电源IP
inst.timeout = 5000
# 初始化
inst.write('*RST;:SYST:REM;:VOLT 5.0;:CURR 10.0;:OUTP ON')
# 阻抗扫描
z_list = [0.1. 0.5. 1.0. 5.0]
tus_list = []
for z in z_list:
inst.write(f':OUTP:IMP {z}')
time.sleep(0.1)
inst.write(':LOAD:STEP 1.5;:LOAD:STEP:TRIG')
time.sleep(0.1)
tus = float(inst.query(':MEAS:VOLT:UND:TIME?')) * 1e6 // 转μs
tus_list.append(tus)
print(f'Zout={z}Ω, Tus={tus}μs')
inst.write(':OUTP OFF')
inst.close()
# 拟合(示例)
import numpy as np
z = np.array(z_list)
tus = np.array(tus_list)
k, b = np.polyfit(z, tus, 1)
print(f'拟合公式:Tus(μs) = {k:.1f}·Zout(Ω) + {b:.1f}')
六、总结
无直接 SCPI 命令查询 “Zout-Tus” 关系,需程控多组 Zout→测对应 Tus→离线拟合。
核心 SCPI::OUTP:IMP(设置阻抗)、:MEAS:VOLT:UND:TIME?(读下冲时间)。
关系特征:Zout 越大,Tus 越长,近似线性正相关。