首页 > 技术专题 > LMG600功率计特殊功能之示波周期模式怎么测量
LMG600功率计特殊功能之示波周期模式怎么测量
上传时间:24-02-15

发布时间:2022年09月29日                  作者:德国GMC-I高美测仪(上海电励士)

LMG600功率计特殊功能之示波周期模式怎么测量

LMG600功率计特殊功能之示波周期模式:

LMG600功率计具有一个特殊功能,即示波周期模式,可以设置UIP(电压、电流和功率)采样值的连续无间隙输出和C值的无间隙输出。对于前面的选项,重点是H值或C值,并存在重复或缺失的数据。现在,重点放在无间隙采样上,而C值和H值可以在每个周期输出。在固定间隔模式下,周期时间由用户定义,谐波模式上是基于谐波窗口次数的固定值。在示波模式下,周期时间仅取决于真实记录速率/记录频率。

示波模式周期时间测量

用户可以通过GLCSR命令定义设定采样频率(以Hz为单位),在设定的频率和实际的频率之间,存在差异。原因是基于仪器的最大采样率,即LMG600功率计的1.2MHz(A模块),有预定义的采样频率集。当用户选择一个采样频率时,仪器将选定下一个最大的预定义值。可以使用GLPSR命令读取真实记录频率。

周期时间是根据真实记录速率计算和每个周期的样本总数按等式(1.1)计算的,可以使用GLPTLEN命令获取样本总数。当缓存满时,当前周期结束,新周期开始。

★ 通过选择“Scope示波”周期模式,重点是采样值的计算。所有其他的测量值(例如H值、C值、瞬态值、闪烁值)可以每个周期输出一次。

下面提供了有关如何使用此功能的Python代码示例。在本例中,设置了一个通道的电压、电流和功率的连续无间隙输出采样值。同一通道的电压和电流的真有效值以及功率通过使用Cont On命令每周期输出一次。最终,所有结果都存储在CSV文件中。请注意,此示例对于读取瞬态事件采样值或闪烁值无效。

#同一个通道的电压、电流和功率采样值和真有效值

cycleno=int(raw_input("nPlease specify the number of cycles: ")) #设置周期数 

sampling_rate=int(raw_input("nPlease specify the sampling rate: ")) #设置采样速率 

if (sampling_rate>1212121 or sampling_rate<=0):

print "nThe maximum sampling rate is 1,212121 MSamples per Second!nPlease restart and specify a valid sampling raten"

sys.exit()

IP=str(raw_input("nPlease specify the IP address of the device: ")) #定义仪器的IP地址 

TestDevice = LMG600(10) #超过10秒之后连接超时 

TestDevice.open("ethernet", IP)

TestDevice.write_opc("*zlang short") #选择短指令模式 

TestDevice.write_opc("glctrac 0,'U1111'") #选择Track0轨迹 0 的信号

TestDevice.write_opc("glctrac 1,'I1111'") #选择Track1轨迹 1 的信号 

TestDevice.write_opc("glctrac 2,'P1111'") #选择Track2轨迹 2 的信号

TestDevice.write_opc("glcsr %d" % (sampling_rate))

TestDevice.write_opc("cyclmod SCOPE") #调整周期长度到采样速率模式

TestDevice.write_opc("inim") #实现采样值的缓存读取 

samples_per_cycle = TestDevice.request("glptlen?") #读取每周期的采样值

ts = TestDevice.request("glpsr?") #读取真实采样速率 

upper_border = int(samples_per_cycle) - 1

#读取每条轨迹的采样值 

glpquery = "glpval? 0,(0:%d); glpval? 1,(0:%d); glpval? 2,(0:%d)" % (upper_border, upper_border, upper_border)

print glpquery

print ts

col_sep = ";" #列分隔符 

dec_sep = "." #小数分隔符 

answer = TestDevice.request(glpquery)

TestDevice.write("ACTN; DURNORM?; UTRMS?; ITRMS?; P?; %s" % glpquery) #指定所有的输出

TestDevice.write("CONT ON") #开始连续输出 

#得到每周期的结果 

x = 0

answer = ""

while x < cycleno:

current_answer = TestDevice.read()

current_answer_splitted = current_answer.split(";")

durnorm = current_answer_splitted[0]

utrms = current_answer_splitted[1]

itrms = current_answer_splitted[2]

p = current_answer_splitted[3]

glctrac_0 = current_answer_splitted[4]

glctrac_1 = current_answer_splitted[5]

glctrac_2 = current_answer_splitted[6]

glctrac_0_splitted = glctrac_0.split(",")

glctrac_1_splitted = glctrac_1.split(",")

glctrac_2_splitted = glctrac_2.split(",")

sample_count = 0

while sample_count < len(glctrac_0_splitted):

answer += ("%d" % (x)) + col_sep + durnorm + col_sep + ("%d" % (sample_count)) + col_sep + utrms + col_sep + glctrac_0_splitted[sample_count] + col_sep + itrms + col_sep + glctrac_1_splitted[sample_count] + col_sep + p + col_sep + glctrac_2_splitted[sample_count] + "r"

sample_count = sample_count + 1

x=x+1

TestDevice.write("CONT OFF") #停止连续输出 

print answer

#输出结果到CSV文件

csv_handle = open("Gapless Scope.csv", "w") #创建文件对象

#生成CSV文件参数名栏

csv_header = "Cycle" + col_sep + "Measuring Time (sec)" + col_sep + "Samples Number" + col_sep + "Voltage Rms (V)" + col_sep + "Voltage Sample (V)" + col_sep + "Current Rms (A)" + col_sep + "Current Sample (A)" + col_sep + "Power (W)" + col_sep + "Power Sample (W)" + "n"

csv_handle.write(csv_header) #写参数名到文件

csv_handle.write(answer) #写测量结果到文件

TestDevice.write("GTL") #关闭通讯接口并设置到本地控制

TestDevice.close(False) #使用False避免重置仪器设置或移除它以重置仪器设置

print "Measurement finished!n"

csv_handle.close() #关闭记录文件#结束

信号选择基于以下定义:

★ 使用GLCTRAC命令,您可以定义轨迹的信号并选择将要测量的信号的采样值。最多可提供16条轨迹(使用GLPNTR命令在无间隙示波期间读取可用轨迹的数量)。

★ 使用ACTN命令,可以指定将输出的值。通过添加通道数字从特定通道中选择一个,例如,UTRMS2表示第二个通道的真有效值电压。如果不添加任何数字(例如UTRMS),则将输出第一个通道的真有效值电压。


示波周期模式信号选择

★ 通过使用Cont On命令,选定的测量值将在每个周期连续输出 。

ico ico ico ico ico
版权所有©高美测仪(天津)科技有限公司 网站地图德国GMC-I高美测仪Camillebauer津ICP备09009987号-12