本帖最后由 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文件,运行结果如下:

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

  1. matlab gui打开fig文件,求助gui打开word文件及打开fig格式图片

    我设计gui需要单击列表框里的标签打开word文件和在MATLAB中用plot画出来的图片,但程序编好之后,打不开文件,不知道怎么回事,求教各位高手看见了帮帮忙global mdl; mdltemp= ...

  2. 用matlab编辑器打开.m文件

    1.复制如下代码在,matlab命令行里运行 commandwindow; cwd=pwd; cd([matlabroot '\toolbox\matlab\winfun\private']); fi ...

  3. matlab如何打开flt文件,FIT文件格式解析及MATLAB读取程序

    FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...

  4. 解决matlab默认打开的文件夹问题(绝对有效)

    我原来的电脑就没有这个问题,每次打开都是上次关闭时的工作文件夹,但是最近换了个新电脑,再装上就出现了这个问题,下面说一下怎么解决. 右键matlab的快捷方式,打开"属性",把起始 ...

  5. MATLAB可以打开gms文件吗,GMS文件扩展名 - 什么是.gms以及如何打开? - ReviverSoft...

    你在这里因为你有,有一个文件扩展名结尾的​​文件 .gms. 文件与文件扩展名 .gms 只能通过特定的应用程序推出.这有可能是 .gms 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观 ...

  6. MATLAB可以打开gms文件吗,gms文件扩展名,gms文件怎么打开?

    .gms 文件类型:Gesture and Motion Signal File 扩展名为.gms的文件是一个数据文件. 文件说明:Low-level, binary, minimal but gen ...

  7. COMTRADE录波数据导入MATLAB分析的方法

    各路大佬发表了很多用Python编程.MATLAB编程实现COMTRADE录波数据提取的方法,对我这种小白来说属实是看不懂(也不想去看),只想怎么快点把数据提取出来做研究. 这里介绍一种极其简单的数据 ...

  8. java解析comtrade文件_一种COMTRADE二进制数据文件的快速解析方法与流程

    本发明涉及电子系统录波领域,更具体地,涉及一种COMTRADE二进制数据文件的快速解析方法. 背景技术: 近年来,随着电子技术的快速发展,电力系统暂态录波明显向高采样率.连续稳态记录和海量存储的趋势发 ...

  9. matlab链接打开cad文件,一篇读懂向Revit导入CAD文件并链接使用那些事!

    我们可以将现有CAD文件合并到Revit模型,以用作设计的起始点.使用CAD文件作为参照.二维绘图视图,或者帮助在Revit中生成三维几何图形.那么,向Revit导入CAD文件的文件时,你是否能顺利完 ...

最新文章

  1. 如何运用组策略禁用U盘
  2. js断点和调试学习总结3
  3. git的一些常用命令讲解和开发规范总结
  4. Kotlin 文档 .Google 正式确定将 Kotlin为android 开发语言
  5. 模块间接口设计的原则
  6. SAP Spartacus 最后渲染出的页面和后台 CMS 页面元数据的一一对应
  7. 倒计时 3 天!1024 程序员节全日程曝光,105 场深度演讲点燃数字经济新时代
  8. C#设计模式之2-抽象工厂模式
  9. 5G怎样实现波束赋形?
  10. Data Visualization [--0]
  11. C++第三方库管理工具vcpkg使用教程
  12. NideShop:基于Node.js+MySQL开发的高仿网易严选开源B2C商城
  13. 组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路
  14. 我的Android进阶之旅------android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
  15. linux 如何清理垃圾文件,清理Linux系统垃圾文件操作方法图文步骤详解
  16. 毕业论文的奋斗记(一)
  17. 树莓派GPIO针脚在python中BCM与BOARD模式
  18. 用几段代码搞定Java文件流
  19. MUI click事件无效 click没反应 click监听不到
  20. 为什么要申报绿色工厂?

热门文章

  1. 【证明】线性变换在两个基下的矩阵相似
  2. 就是我mac安装了虚拟机,装了win10,然后发现在mac系统桌面也会有win系统桌面的工具快捷键图标,如果删除mac桌面的快捷键图标,那么win10桌面的图标也消失了,我百度查的方法都不行。我想知道
  3. ctfshow 网络迷踪-爆破不了
  4. iOS:制作简易的 AAC 播放器 —— 了解音频的播放流程
  5. 计算机毕业设计Java多媒体素材管理系统(源码+系统+mysql数据库+lW文档)
  6. 简单了解JTable表格组件
  7. 帝国理工学院的计算机专业怎样,帝国理工学院计算机专业介绍
  8. 资源 | 适合AI新手的9款人工智能开源软件
  9. 软件开发未来发展五大趋势,从业者们注意了!
  10. 鸿蒙系统与极光系统,鸿蒙系统遇到新的竞争对手?当贝OS系统慢慢占据市场