matlab能打开comtrade文件吗,怎么设计COMTRADE录波数据在MATLAB中的读取

本帖最后由 Cello1995 于 2018-11-12 12:21 编辑

图形用户界面(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文件,运行结果如下:

format,png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
录波文件是电力系统监测和分析的一种重要数据文件格式,而COMTRADE文件是其一种常见的录波文件格式。要下载COMTRADE文件,可以按照以下步骤进行操作。 首先,需要确认要下载的COMTRADE文件所在的位置。通常,这些文件会存储在一个特定的服务器或者数据。在电力系统监测和分析软件,可能会有一个专门的下载或者导出功能,可以用于下载COMTRADE文件。 其次,打开电力系统监测和分析软件,找到相关的数据源或者数据库。在软件的导航菜单,可以查找和选择要下载的COMTRADE文件,一般会以文件名或者时间标签进行标识。 然后,在选择了要下载的COMTRADE文件之后,可能会弹出一个文件保存的对话框。在这个对话框,可以选择COMTRADE文件的保存路径和文件名。可以选择一个方便管理和查找的文件夹,并且起一个有意义的文件名。 最后,点击保存按钮,开始下载COMTRADE文件。根据COMTRADE文件的大小和网络连接的速度,可能需要一定的时间来完成下载过程。在下载完成后,可以在选择的保存路径找到COMTRADE文件,并且可以在电力系统监测和分析软件进行后续的数据处理和分析工作。 总而言之,要下载COMTRADE文件,需要找到对应的数据源或数据库,在电力系统监测和分析软件选择并保存COMTRADE文件,然后等待下载完成。这样就可以获取到所需的录波数据进行后续分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值