资讯中心

联系我们

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

如何用SCPI指令查询双向直流电源输出电压序列的周期抖动?

2026-01-09 09:38:06  点击:

要使用SCPI指令查询双向直流电源输出电压序列的周期抖动,需结合序列配置查询时间戳分析,通过以下步骤实现:

1. 确认电源支持的序列功能

双向直流电源(如Keysight N6700、Chroma 62000P系列)通常支持列表模式(List Mode)或编程模式(Program Mode),允许用户定义电压序列的幅值、保持时间(即周期)等参数。需通过SCPI指令查询序列配置,确认是否支持周期参数查询。

2. 查询电压序列的周期(保持时间)

若电源支持列表模式,可通过以下指令查询每个电压点的保持时间(即周期):

scpiPROG:LIST:VOLT:DATA1?  ; 查询列表模式第1步的电压和保持时间(部分电源返回格式为"电压,时间")PROG:LIST:VOLT:DATA2?  ; 查询列表模式第2步的电压和保持时间
  • 返回格式:通常为逗号分隔的数值对(如12.0,1000),其中1000表示保持时间1000ms(即周期为1000ms)。
  • 参数说明:若电源返回仅电压值,需通过其他指令查询周期参数(如PROG:LIST:TIME:DATA1?,具体需参考电源手册)。

3. 查询实际输出时间戳(若支持)

若电源内置数据记录仪或时间戳功能,可记录电压变化的实际时间,通过以下指令查询:

scpiDATA:LOG:SOUR VOLTage  ; 设置数据记录源为电压DATA:LOG:STAR  ; 启动数据记录
; 触发电压序列输出(如通过外部触发或内部触发)
DATA:LOG:DATA?  ; 查询记录的数据(电压值和时间戳)
  • 返回格式:通常为逗号分隔的数值对(如12.0,0.0,24.0,1.0),其中奇数位为电压值,偶数位为时间戳(单位:s或ms)。

4. 计算周期抖动

通过分析时间戳数据,计算相邻电压点切换的时间差,进而得到周期抖动:

python# 示例:解析返回的时间戳数据并计算周期抖动raw_data = "12.0,0.0,24.0,1.0,0.0,2.0"  # 假设返回数据data_pairs = [float(x) for x in raw_data.split(',')]voltages = data_pairs[::2]  # 提取电压值timestamps = data_pairs[1::2]  # 提取时间戳jitter_values = []for i in range(1, len(timestamps)):    period = timestamps[i] - timestamps[i-1]  # 计算周期    jitter = period - expected_period  # 计算抖动(需预设期望周期expected_period)    jitter_values.append(jitter)print(f"周期抖动值: {jitter_values}s")

5. 注意事项

  • 单位一致性:确保时间戳和保持时间的单位一致(如均为ms或s)。
  • 电源限制:部分电源可能仅支持查询配置参数,无法直接测量实际抖动。此时需通过外部仪器(如示波器)配合SCPI触发同步测量。
  • 错误处理:查询前清除错误队列,避免历史错误影响结果:
    scpi*CLS  ; 清除错误队列SYST:ERR?  ; 检查当前错误

6. 扩展应用

若需动态调整序列参数并实时监测抖动,可结合设置指令:

scpiPROG:LIST:TIME:DATA1 1000  ; 设置第1步保持时间为1000msPROG:LIST:INIT  ; 初始化序列
TRIGger:SOURce IMM  ; 设置触发源为内部
*TRG  ; 触发序列输出