LMG600高精度功率分析儀同步測量
在電氣測量中,同步是精確匹配測量數據的過程,以便從基本相同的時刻開始。當有來自不同位置和不同時間間隔的數據以及在不同時間范圍內測量的數據時,需要同步。LMG600定義了三種不同級別的同步:通道、儀器和系統級別。通道級別是指電壓和電流通道以及各功率通道的同步。儀器級別描述了儀器與所施加信號的同步以及C值(在一個周期時間內測量的值)和H值(在諧波窗口測量的值)之間的同步。系統級別用于描述各種儀器的同步。
1. 儀器級別同步
儀器級別同步是指某組的所有通道與所施加信號的同步。 同樣它也是指在測量C值和H值時的同步。第二種情況如下所述。
對于C值和H值,必需在整數個周期內進行測量。一方面,H值(諧波)是在固定數量的周期內測量的,不受周期時間的影響。另一方面,C值(RMS值和功率)通常在固定時間(周期時間)內測量。LMG600上有三種不同的選項(周期模式),用于確保顯示的C值和H值與時間同步。
ü 在“Instrument儀器”菜單和“Measuring測量”選項卡下,按“cycle周期”并選擇周期模式。選項“Fixed Interval固定間隔”、每組的諧波(例如“Harm1諧波組1”)、“Scope示波器”和“Flicker閃爍”可用。選項 “Extern外部”用于從外部設置周期時間。通過按屏幕底部狀態欄上的周期,可以到達相同的菜單。
2.1 Fixed Interval固定間隔
在這種循環模式下,重點是計算基于周期的值(C值),手動設置周期時間。每組基于周期的值顯示一組諧波。
§ 情況1:諧波值的計算速度快于基于周期的值
讓我們假設周期時間等于一秒,這意味著每秒有一組C值。諧波窗口的數量是固定的,等于每秒5次諧波。為了使H值與C值同步,僅顯示最后一次諧波計算。
圖 2:固定間隔,H值>C值
§ 情況 2:諧波值的計算速度慢于基于周期的值
現在我們假設循環時間為50ms。然后,每秒計算20組C值,而諧波窗口的數量是固定的,等于每秒5個H值。將顯示多個C值及同一組諧波值。
圖 3:固定間隔,H值值<>
2.2 諧波
當選擇諧波周期模式時,重點是關注某組(定義為主組)的諧波值。主組用于定義虛擬的周期時間。所有組的C值的計算都是使用此虛擬周期時間完成的。每組諧波值(主組)正好有一組C值(所有組)。其他組的諧波值則單獨計算。下圖說明了這些情況。
如在主組上每秒測量5組H值,則設備的所有組上測量相同數量的C值(5組C值/秒)。其他組的H值數量單獨計算得出,如上所述。例如,另一組每秒測量1組H值,因此相同的測量值將顯示五次。
圖 4:諧波
有兩種方法來決定哪個組是主組。要么選擇信號頻率最高的組作為主組,或選擇信號頻率最低的組。第一種情況下的問題是來自較慢組的大量重復數據。在第二種情況下時間分辨率最差。
ü 在周期模式選擇中,選項Harm1~Harm7相對每個組都可用。如果選擇其中之一,則周期時間不是用戶定義的,而是根據相應諧波分析的周期長度自動調整的。
ü 在“Group組”菜單和“Harmonics諧波”設置下,“Spect.Mode頻譜模式”可以設置為“Harmonics諧波”或“Frequency頻率”,間隔長度分別取決于間諧波和頻率或周期時間。僅當周期模式設置為“Fixed Interval固定間隔”時,“Freauency頻率”選擇才會生效 。
2.3 示波
LMG600具有一個特殊功能,即示波周期模式,可以設置UIP(電壓、電流和功率)采樣值的連續無間隙輸出和C值的無間隙輸出。對于前面的選項,重點是H值或C值,并存在重復或缺失的數據。現在,重點放在無間隙采樣上,而C值和H值可以在每個周期輸出。在固定間隔模式下,周期時間由用戶定義,諧波模式上是基于諧波窗口次數的固定值。在示波模式下,周期時間僅取決于真實記錄速率/記錄頻率。
周期時間=(1/真實記錄頻率)*緩存中的采樣值總數=
用戶可以通過GLCSR命令定義設定采樣頻率(以Hz為單位),在設定的頻率和實際的頻率之間,存在差異。原因是基于儀器的最大采樣率,即LMG600的1.2MHz(A模塊),有預定義的采樣頻率集。當用戶選擇一個采樣頻率時,儀器將選定下一個最大的預定義值??梢允褂肎LPSR命令讀取真實記錄頻率。
周期時間是根據真實記錄速率計算和每個周期的樣本總數按等式(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命令,選定的測量值將在每個周期連續輸出 。
審核編輯:湯梓紅
-
儀器
+關注
關注
1文章
3740瀏覽量
49708 -
功率分析儀
+關注
關注
3文章
185瀏覽量
22574
發布評論請先 登錄
相關推薦
評論