资讯中心

联系我们

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

如何通过SCPI查询双向直流电源纹波电压?

2026-02-28 09:39:11  点击:

  要通过SCPI指令查询Keysight双向直流电源的纹波电压,需结合电源的测量功能与SCPI命令体系,直接使用MEASure:VOLTage:AC?指令查询当前输出电压的交流分量(即纹波电压),但需注意部分型号可能需要先配置测量参数或启用纹波测量功能。以下是具体步骤和说明:

  一、核心查询指令

  MEASure:VOLTage:AC?:

  功能:查询当前输出电压的交流分量(即纹波电压)。

  返回值:纹波电压的有效值(单位:V)。

  示例:

  发送指令:MEASure:VOLTage:AC?

  返回结果:0.005(表示纹波电压为5mV)

  二、完整查询流程

  确认电源输出已开启:

  使用指令:OUTPut:STATe?

  返回值:ON或OFF,确认输出为ON后再进行纹波测量。

  查询纹波电压:

  使用指令:MEASure:VOLTage:AC?

  记录返回值,即为当前纹波电压的有效值。

  (可选)配置测量参数:

  部分Keysight电源支持配置测量带宽、平均次数等参数,以提高测量精度。

  示例指令:

  设置测量带宽:MEASure:BANDwidth 20MHz(将带宽限制在20MHz,以减少高频噪声干扰)

  设置平均次数:MEASure:AVERage:COUNt 16(对16次测量结果取平均,提高信噪比)

  三、厂商差异与指令扩展

  Keysight N6700系列:

  可能支持更详细的纹波测量指令,如MEASure:VOLTage:AC:PEAK?(查询纹波电压的峰峰值)。

  示例指令:

  查询纹波电压峰峰值:MEASure:VOLTage:AC:PEAK?

  返回值:0.010(表示纹波电压峰峰值为10mV)

  其他型号:

  若MEASure:VOLTage:AC?指令不支持,可尝试使用MEASure:VOLTage:RMS?(查询电压有效值)并结合MEASure:VOLTage:DC?(查询电压直流分量)计算纹波电压。

  计算方法:纹波电压有效值 ≈ √(总电压有效值² - 直流电压²)(但此方法精度较低,不推荐优先使用)。

  四、错误处理与调试

  常见错误代码:

  -400 Parameter Error:参数超出范围(如查询未启用的测量功能)。

  -350 Command Error:指令语法错误(如拼写错误)。

  -107 No Measurement Active:未启用测量功能时查询测量结果。

  调试建议:

  分步查询:先确认输出已开启,再查询纹波电压。

  确认测量功能已启用:部分型号需先发送MEASure:VOLTage:AC:ENABle ON启用纹波测量功能。

  日志记录:连续查询时记录时间戳和返回值,分析测量结果的稳定性。

  五、完整Python脚本示例(PyVISA)

  pythonimport pyvisa# 连接电源rm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")  # 替换为实际地址# 查询输出状态is_output_on = power_supply.query("OUTPut:STATe?").strip() == "ON"print(f"输出状态: {'已开启' if is_output_on else '已关闭'}")if is_output_on:    # 查询纹波电压有效值    ripple_voltage = float(power_supply.query("MEASure:VOLTage:AC?").strip())    print(f"纹波电压有效值: {ripple_voltage * 1000:.3f}mV")    # (可选)查询纹波电压峰峰值(仅限支持该指令的型号)    try:        ripple_peak_to_peak = float(power_supply.query("MEASure:VOLTage:AC:PEAK?").strip())        print(f"纹波电压峰峰值: {ripple_peak_to_peak * 1000:.3f}mV")    except:        print("当前型号不支持查询纹波电压峰峰值")else:    print("输出未开启,无法测量纹波电压")# 关闭连接power_supply.close()