Comtrade格式录波数据显示

本文介绍几种comtrade格式的电力录波查看方法,并给出相关的下载链接 这几个软件的具体使用方法就不一一详述了,最后给出使用MATLAB GUI的录波数据查看步骤 具体还是要自己动手实现

几个软件实现效果图以及相关下载链接 仅供参考
  • ScopeView Download
    效果图:
    ScopeView
  • SFT2826 Download
    效果图:
    在这里插入图片描述
  • PQDiffractor Download
    效果图:
    在这里插入图片描述
  • OMICRON SVScout Download
    效果图:
    在这里插入图片描述
    如果无法下载 或者无法安装 建议更换软件 上面几个总有一款适合你
    —更新20181112—
    工具 waveEV
    在这里插入图片描述
    该工具可以直接下载,但是由于在CSDN上是有30积分下载的,不方便直接上链接 需要的可以留言 *留下邮箱 *
    —更新完毕—

最后 介绍使用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 GroupActiveX控件
  • 双击控件,在检查器中显示各控件的属性,其中常规属性有(以按钮控件为例):

在这里插入图片描述

  • 在展示界面添加静态文本、坐标和按钮

在这里插入图片描述

  • 编辑静态文本为“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上的录波查看软件需要太多积分了 我们还是自己动手吧
    欢迎讨论
  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 37
    评论
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值