要使用SCPI指令查詢雙向直流電源輸出電流的過沖,需結(jié)合序列模式配置、瞬態(tài)響應(yīng)測(cè)試與數(shù)據(jù)分析,通過以下步驟實(shí)現(xiàn):
電流過沖通常表現(xiàn)為輸出電流在階躍變化時(shí)(如負(fù)載突變或電源啟動(dòng))超過穩(wěn)態(tài)值并伴隨振蕩。通過SCPI指令可實(shí)現(xiàn):
plaintextSOURce:LIST:COUNt 2 ; 設(shè)置2個(gè)序列點(diǎn)SOURce:LIST:CURRent:DATA1 0, 0.1 ; 第1點(diǎn):0A,持續(xù)0.1秒(空載)
SOURce:LIST:CURRent:DATA2 10, 0.1 ; 第2點(diǎn):10A(滿載),持續(xù)0.1秒
SOURce:LIST:FUNCtion ON ; 啟用序列模式
SOURce:LIST:CYCLe OFF ; 禁用循環(huán)(單次執(zhí)行)
plaintextTRIGger:SOURce EXTernal ; 選擇外部觸發(fā)源TRIGger:SLOPe POSitive ; 上升沿觸發(fā)
OUTPut:STATe ON ; 準(zhǔn)備輸出,等待觸發(fā)
plaintextTRIGger:SOURce IMMediate ; 選擇內(nèi)部觸發(fā)TRIGger:INITiate ; 立即啟動(dòng)序列
plaintextMEASure:CURRent? ; 查詢當(dāng)前輸出電流(單位:A)
pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替換為實(shí)際地址# 配置序列(略,參考步驟1)power.write("TRIG:SOUR IMM")power.write("TRIG:INIT")# 連續(xù)采集100個(gè)電流值(采樣間隔10ms)current_data = []for _ in range(100): current = float(power.query("MEAS:CURR?")) current_data.append(current) time.sleep(0.01)power.close()
計(jì)算超調(diào)量:
Ipeak:輸出電流峰值(從數(shù)據(jù)中提取)。
Isteady:穩(wěn)態(tài)電流值(如滿載電流10A)。
振蕩次數(shù)與穩(wěn)定時(shí)間:
初始化與復(fù)位:
plaintextSYSTem:REMote ; 進(jìn)入遠(yuǎn)程模式*RST ; 復(fù)位設(shè)備
配置序列與觸發(fā):
plaintextSOUR:LIST:COUN 2SOUR:LIST:CURR 0, 0.1, 10, 0.1 ; 簡(jiǎn)化指令(部分電源支持)
SOUR:LIST:FUNC ON
TRIG:SOUR EXT
TRIG:SLOP POS
OUTP:STAT ON
啟動(dòng)測(cè)試并采集數(shù)據(jù):
TRIG:INIT)。MEAS:CURR?,記錄電流變化。數(shù)據(jù)分析:
PROG:LIST:CURR:DATA#),需參考具體型號(hào)手冊(cè)。SOUR:CURR:PROT:LEV),避免損壞設(shè)備。plaintextSOUR:LIST:CURR:DATA1 0, 0.1 ; 設(shè)置序列點(diǎn)SOUR:LIST:GOTO 2 ; 跳轉(zhuǎn)到第2點(diǎn)(部分型號(hào)支持)
plaintextLIST:CURR:DATA1 0, 1000 ; 時(shí)間單位可能為100μs(1000=100ms)
plaintextPROG:LIST:CURR:DATA1 0, 0.1 ; 設(shè)置序列點(diǎn)PROG:LIST:GOTO 2 ; 跳轉(zhuǎn)到第2點(diǎn)