高端數字萬用表在市電諧波分析中的應用
實現原理
此實驗需要數字萬用表具有高速采樣、高精度測量和寬的電壓測量范圍特性,而RIGOL DM3068正好具備以上全部性能。其中,它的最高測量速度達到了10kSa/s,直流電壓測量準確度可以達到±(讀數*0.0035%+量程*0.0005%),量程范圍為200mV~1000V。在測試環境準備完畢后,利用遠程命令對其進行設置,然后開始進行數據采集,可以方便的直接對市電信號進行多樣本采樣,同時,還可以將所采集數據傳輸到電腦進行進一步分析。本文引用地址:http://www.104case.com/article/180370.htm
軟件環境
在http://joule.ni.com/nidu/cds/view/p/id/988/lang/en 下載并安裝Visa430full.exe,這個安裝包提供了各種VISA通信接口驅動,我們的采集程序需要借助此驅動程序通過USB接口從DM3068采集數據。安裝Visa430后,“C:WINDOWSsystem32”目錄下會有一個“visa32.dll”文件。“C:Program FilesIVI FoundationVISAWinNTlibmsc”目錄下包含了編譯時鏈接“visa32.dll”時所需的“visa32.lib”文件。在“C:Program FilesIVI FoundationVISAWinNTinclude”目錄下包含了我們所需的頭文件。可以通過設置VC 6.0的工程路徑包含上述文件,或直接將上述文件復制到程序存放的目錄即可。
安裝VC6.0以上環境,用于開發基于C/C++語言的測量控制程序。
安裝Matlab 2007以上版本,用于進行數據分析和圖形化分析結果。
利用Matlab生成FFT分析程序
數據分析直接利用Matlab進行,在Matlab中編輯好用于數據分析的源碼并寫成函數,保存編輯好的源碼為“FFT.m”文件。假設使用“F: matlab”為當前工作目錄。源代碼如下:
function FFT_Tran()
load f:matlabdata.txt
Fs = 10000; % Sampling frequency
T = 1/Fs; % Sample time
L = 5000; % Length of signal
t = (0:L-1)*T; % Time vector
NFFT = 2^nextpow2(L);
Y = fft(x,NFFT)/L ;
f= Fs/2*linspace (0,1,NFFT/2);
figure;
Py = 2*abs(Y(1:NFFT/2))
plot(f, Py)
title('FFT translation')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
end
其中“data.txt”為外部數據源文件。此數據源就是將來用C語言借助VISA驅動控制DM3068測量的數據保存為文本文件,每一個測量數據以文本方式保存為獨立的一行即可。
在Matlab交互窗口輸入命令“mbuild -setup”安裝C編譯器。如果已經安裝了VC6.0,Matlab會自動查找到此編譯器,按照提示選擇VC 6.0編譯器。
接著輸入“mcc -m f:matlabFFT.m -d f:matlab”,Matlab將利用C編譯器編譯FFT.m文件,并將編譯結果輸出到f:matlab目錄。編譯完成后當前工作目錄下有幾個新的文件誕生,其中應該有一個名為FFT.exe的文件。這個文件可以直接運行或被C語言程序調用執行。
電力信號測量與分析
利用VC 6.0和C語言,調用VISA驅動接口函數完成對DM3068的設置和數據采集。具體的接口函數及用法請參考隨visa430安裝的《NI-VISA HELP》文檔。數據采集與處理流程參見圖2處理流程圖。
圖2 數據采集與處理流程
晶振相關文章:晶振的作用—有用就是任性
評論