要通过SCPI指令设置双向直流电源输出电压斜率,需结合电源的斜坡功能(Ramp Function),在序列点之间设置电压变化的斜坡时间,使电源在切换时自动插值过渡。以下是具体方法与指令示例:
大多数支持序列的双向直流电源(如Keysight N6700、Chroma 62000P)允许为每个序列点设置电压斜坡时间(Ramp Time),指令格式如下:
plaintextSOURce:LIST:VOLTage:DATA# <voltage>, <dwell_time>, <ramp_time>
<voltage>:目标电压值(支持双向,如-12V)。<dwell_time>:达到目标电压后的保持时间(单位:秒)。<ramp_time>:从当前电压过渡到目标电压的时间(单位:秒)。plaintextSOURce:LIST:COUNt 3 ; 设置3个序列点SOURce:LIST:VOLTage:DATA1 0, 1, 0.5 ; 第1点:0V,保持1秒,斜坡时间0.5秒
SOURce:LIST:VOLTage:DATA2 12, 1, 1 ; 第2点:12V,保持1秒,斜坡时间1秒
SOURce:LIST:VOLTage:DATA3 0, 1, 0.5 ; 第3点:0V,保持1秒,斜坡时间0.5秒
SOURce:LIST:FUNCtion ON ; 启用序列模式
效果:电源输出从0V→12V(耗时1秒,其中斜坡时间1秒),再从12V→0V(耗时0.5秒),实现平滑插值。
若电源支持全局斜坡时间设置,可通过以下指令统一配置所有序列点的斜坡时间:
plaintextSOURce:VOLTage:RAMP:STATe ON ; 启用全局斜坡功能SOURce:VOLTage:RAMP:TIME 1 ; 设置全局斜坡时间为1秒
查询斜坡状态:
plaintextSOURce:VOLTage:RAMP:STATe? ; 返回"ON"表示已启用
plaintextTRIGger:SOURce EXTernal ; 选择外部触发源TRIGger:SLOPe POSitive ; 上升沿触发
OUTPut:TRIGger:DELay 0.1 ; 触发后延迟0.1秒输出(可选)
plaintextTRIGger:SOURce IMMediate ; 选择内部触发源TRIGger:INITiate ; 立即启动序列
plaintextSOURce:VOLTage:PROT:LEV? ; 查询过压保护阈值SOURce:CURRent:PROT:LEV? ; 查询过流保护阈值
plaintext*RST
plaintextSOUR:LIST:COUN 3SOUR:LIST:VOLT:DATA1 0, 1, 0.5 ; 0V → 12V(斜坡0.5秒)
SOUR:LIST:VOLT:DATA2 12, 1, 1 ; 12V → -12V(斜坡1秒)
SOUR:LIST:VOLT:DATA3 -12, 1, 0.5 ; -12V → 0V(斜坡0.5秒)
plaintextSOUR:LIST:FUNC ONOUTP ON
plaintextTRIG:SOUR EXTTRIG:SLOP POS
发送TTL信号至电源的Trigger In接口,电源自动启动序列。若电源不支持斜坡功能,可通过外部编程(如Python)控制电压步进,模拟插值效果:
pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")start_voltage = 0end_voltage = 12steps = 10step_time = 0.1power.write("OUTPut ON")for v in [start_voltage + (end_voltage - start_voltage) * i/steps for i in range(steps + 1)]: power.write(f"SOUR:VOLT {v}") # 设置当前电压 time.sleep(step_time) # 等待步进完成power.write("SOUR:VOLT 12")time.sleep(2)power.write("OUTPut OFF")power.close()
效果:电压从0V逐步增加到12V(共10步,每步0.1秒),实现软件插值。