1. 程式人生 > >Comtrade格式錄波資料顯示

Comtrade格式錄波資料顯示

本文介紹幾種comtrade格式的電力錄波檢視方法,並給出相關的下載連結 這幾個軟體的具體使用方法就不一一詳述了,最後給出使用MATLAB GUI的錄波資料檢視步驟 具體還是要自己動手實現

幾個軟體實現效果圖以及相關下載連結 僅供參考

  • ScopeView Download
    效果圖:
    ScopeView
  • SFT2826 Download
    效果圖:
    在這裡插入圖片描述
  • PQDiffractor Download
    效果圖:
    在這裡插入圖片描述
  • OMICRON SVScout Download
    效果圖:
    在這裡插入圖片描述
    如果無法下載 或者無法安裝 建議更換軟體 上面幾個總有一款適合你

最後 介紹使用MATLAB,利用GUI顯示comtrade錄波

第一種方法 可以使用read_comtrade函式來讀取 COMTRADE reader

這個我先不做介紹 之後可能會補充 讀者可以參考連線 下載相關檔案測試

第二種方法 利用GUI顯示錄波

圖形使用者介面(Graphical User Interface,GUI)又稱圖形使用者介面,是指採用圖形方式顯示的計算機操作使用者介面。建立Matlab GUI介面通常有兩種方式:一種是使用.m檔案直接動態新增控制元件;另一種是使用GUIDE快速的視覺化生成GUI介面。
電力系統瞬態資料交換通用格式(Common format for transient data exchange,COMTRADE)是IEEE為了解決數字故障錄波裝置、數字保護、微機測試裝置之間的資料交換問題,於1991年提出、1999年修訂和完善的一種公用的資料傳輸格式標準。該標準提供一種易於說明的資料交換通用格式,為不同廠家生產的裝置所遵循。本文采用GUIDE方法建立Matlab GUI實現Comtrade格式錄波資料顯示。

  • 首先,啟動matlab,在命令視窗輸入guide。
    在這裡插入圖片描述

  • 在彈出的視窗選擇 Blank GUI。
    在這裡插入圖片描述

  • 隨後彈出的視窗中,左側是工具欄,可以拖拽;右側是展示介面。
    在這裡插入圖片描述

  • 左側工具欄控制元件按圖中順序依次為:

按鈕 Push Button 滾動條 Slider
單選按鈕 Radio Button 檢查框 Checkbox
可編輯文字 Edit Text 靜態文字 Static Text
彈出式選單 Popup Menu 列表框 Listbox
切換按鈕 Toggle Button 表格 Table
座標 Axes 面板 Panel
按鈕組 Button Group ActiveX控制元件
  • 雙擊控制元件,在檢查器中顯示各控制元件的屬性,其中常規屬性有(以按鈕控制元件為例):
    在這裡插入圖片描述

  • 在展示介面新增靜態文字、座標和按鈕
    在這裡插入圖片描述

  • 編輯靜態文字為“Comtrade格式錄波資料顯示”;編輯座標為“fig”;編輯按鈕為“選擇檔案”。
    進一步編輯按鈕的事件響應Callback,單擊圖中紅框內的按鈕:
    在這裡插入圖片描述

  • 跳轉到指令碼guitest.m:
    在這裡插入圖片描述

  • 直接修改上圖紅框中的程式碼如下:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[t,data]= ComtradeRead();
%% 顯示
axes(handles.fig); %開啟fig的控制代碼
subplot(311)
plot(t,data(:,1),'r',t,data(:,2),'g',t,data(:,3),'b')
subplot(312)
plot(t,data(:,4),'k')
subplot(313)
plot(t,data(:,5),'r',t,data(:,6),'g',t,data(:,7),'b')

其中,[t,data]=ComtradeRead()源程式如下,相關程式碼已作註釋:

function [t,data] = ComtradeRead()
%% 匯入資料
[CFGFileName,PathName] = uigetfile('*.cfg','選擇.CFG檔案'); %開啟.CFG檔案
CFGPathFile = [PathName CFGFileName]; %讀取.CFG檔案路徑和名稱
DatFileName = [CFGFileName(:,1:length(CFGFileName)-4) '.dat']; %獲得.DAT檔名稱
DATPathFile = [PathName  DatFileName]; %獲得.DAT檔案路徑
%% 讀取配置檔案
CFGid = fopen(CFGPathFile);                     
CFG = textscan(CFGid,'%s','delimiter','\n'); 
fclose(CFGid);   
CFG_len = length(CFG{1,1});
CFG_str = cell(size(CFG{1,1}));
for i = 1:CFG_len
   temp_str = char(CFG{1,1}{i});
   CFG_str{i}=textscan(temp_str,'%s','delimiter',',');
end
% 通道數目
No_Ch = str2double(cell2mat(CFG_str{2,1}{1,1}(1)));
Ana_Ch = CFG_str{2,1}{1,1}{2,1};
Ana_Ch(length(Ana_Ch)) = []; 
Ana_Ch = str2double(Ana_Ch);
Dig_Ch = CFG_str{2,1}{1,1}{3,1};
Dig_Ch(length(Dig_Ch)) = [];
Dig_Ch = str2double(Dig_Ch);
% 取樣頻率
samp_rate = textscan(cell2mat(CFG_str{5+No_Ch,1}{1,1}(1)),'%f');
samp_rate = samp_rate{1,1};
% 資料長度
dat_len = textscan(cell2mat(CFG_str{5+No_Ch,1}{1,1}(2)),'%f');
dat_len = dat_len{1,1};
% 儲存格式
format=char(CFG_str{8+No_Ch,1}{1,1}(1));
%% 讀取資料檔案
DAT_id = fopen(DATPathFile);      
algdat = zeros(dat_len,Ana_Ch+2); 
num = zeros(dat_len,1); 
time = zeros(dat_len,1); 
if strcmpi(format, 'BINARY')
   for i = 1:dat_len
      num(i) = fread(DAT_id,1,'int32');
      time(i) = fread(DAT_id,1,'int32');
      row_array = fread(DAT_id,Ana_Ch+ceil(Dig_Ch/16),'int16');
      for j=3:Ana_Ch+2
          algdat(i,j) = row_array(j-2);
      end
   end
   algdat(:,1) = num;
   algdat(:,2) = time;
else
   DAT = textscan(DAT_id, '%s', 'delimiter', '\n');
   for i = 1:dat_len
      DAT_str = textscan(char(DAT{1,:}(i)), '%n', 'delimiter', ',');
      for j=1:Ana_Ch+2
          algdat(i,j) = dat_string(j);
      end
   end
end
fclose(DAT_id);
t = algdat(:,2)./1000;
%% 獲得最終資料
data = zeros(dat_len, Ana_Ch);
for i = 1:Ana_Ch
   j = i+2;
   var_string = strcat('Ch',char((CFG_str{j,1}{1,1}{1,1})));
   multiplier = str2double(CFG_str{j,1}{1,1}{6,1});
   offset = str2double(CFG_str{j,1}{1,1}{7,1}); 
   data(:,i) = algdat(:,i+2)*multiplier+offset;
end
end
  • 單擊開始按鈕,執行GUI。
    在這裡插入圖片描述
  • 選擇相應的.cfg檔案,執行結果如下:
    在這裡插入圖片描述
    GUI部分參考於 西涼河葛三叔
    後續補充作者測試結果
    ps : csdn上的錄波檢視軟體需要太多積分了 我們還是自己動手吧
    歡迎討論