Keysight 双向直流电源(N6705、N6781A、B2900 等)没有 SCPI 指令可以 “直接设置某一个纹波幅值(例如 10mVpp)”。纹波是环路带宽、输出滤波器、采样率、平均 / 滤波、负载共同决定的,只能通过 SCPI 间接配置、抑制、测量纹波,不能像 VOLT 一样直接写一个纹波值。
下面给你一套完整可用、工业常用的 SCPI 方案:包含:抑制纹波(变小)、放大纹波(变大)、测量纹波、查看带宽 / 滤波设置。
一、核心原理(为什么不能直接设纹波)
纹波主要来自:开关频率、控制环路增益 / 带宽、输出 LC 滤波、负载动态
Keysight 电源只能调:
环路带宽(快 = 纹波大,慢 = 纹波小)
输出滤波器 / 平均滤波
采样带宽(测量时)
因此:只能通过带宽 / 滤波间接控制纹波大小
二、SCPI:减小输出纹波(最常用)
目标:把纹波压到最小(mV 级甚至亚 mV)
1. 降低控制环路带宽(最有效)
scpi
; 带宽选低 → 响应慢 → 纹波显著减小
VOLT:BAND LOW ; 低带宽(推荐:纹波最小)
VOLT:BAND MED ; 中带宽
VOLT:BAND HIGH ; 高带宽(纹波最大、响应最快)
2. 打开输出端低通滤波(部分机型支持)
scpi
OUTP:FILT ON ; 输出低通滤波开 → 纹波变小
OUTP:FILT OFF
3. 测量端滤波(测纹波时用)
scpi
SENS:VOLT:FILT ON ; 测量滤波开 → 读数更平滑
SENS:VOLT:BAND 20MHZ ; 限制测量带宽(标准纹波测试 20MHz)
4. 电源初始化(干净工况)
scpi
*RST
*CLS
OUTP ON
VOLT 12.0
CURR 5.0
CAL:AUTO OFF ; 关自动校准,避免引入扰动
三、SCPI:增大输出纹波(模拟恶劣纹波)
目标:故意把纹波调大(做抗扰测试)
scpi
VOLT:BAND HIGH ; 高带宽 → 响应快 → 纹波大
OUTP:FILT OFF ; 关闭输出滤波
SENS:VOLT:FILT OFF
; 也可以叠加负载动态:容性负载会放大纹波
LOAD:TYPE CAP
LOAD:CAP 100e-6
四、SCPI:测量输出纹波(峰峰值 / 有效值)
Keysight 不能直接读 “Ripple”,但可以高速采样电压波形 → 上位机算峰峰值 / 有效值。
1. 高速采样(抓纹波)
scpi
SENS:VOLT:SAMP 10000 ; 采样点数
SENS:VOLT:SRAT 1000000 ; 1MS/s
TRIG:SOUR IMM
INIT
FETC:VOLT:ARR? ; 传回波形数组
2. 上位机算纹波(Python 示例)
python
运行
import numpy as np
wave = [float(x) for x in inst.query("FETC:VOLT:ARR?").split(',')]
dc = np.mean(wave)
ac = np.array(wave) - dc
ripple_pp = np.max(ac) - np.min(ac) ; 峰峰值
ripple_rms = np.sqrt(np.mean(ac**2)) ; 有效值
print("纹波峰峰值 (V):", ripple_pp)
print("纹波有效值 (V):", ripple_rms)
五、SCPI:查询当前带宽 / 滤波设置
scpi
VOLT:BAND? ; 返回 LOW/MED/HIGH
OUTP:FILT? ; 0=OFF,1=ON
SENS:VOLT:FILT?
SENS:VOLT:BAND?
六、实际操作结论(非常实用)
想纹波最小:VOLT:BAND LOW + OUTP:FILT ON
想纹波最大(模拟干扰):VOLT:BAND HIGH + OUTP:FILT OFF
标准纹波测量:SENS:VOLT:BAND 20MHZ
没有指令能直接写:RIPP 10MV
七、给你一套可直接运行的 “低纹波” 脚本
scpi
*RST
*CLS
OUTP ON
VOLT 12.0
CURR 5.0
CAL:AUTO OFF
VOLT:BAND LOW
OUTP:FILT ON
SENS:VOLT:FILT ON
SENS:VOLT:BAND 20MHZ