Comtrade格式录波数据显示

article/2025/10/22 3:50:37

本文介绍几种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_lentemp_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_lennum(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+2algdat(i,j) = row_array(j-2);endendalgdat(:,1) = num;algdat(:,2) = time;
elseDAT = textscan(DAT_id, '%s', 'delimiter', '\n');for i = 1:dat_lenDAT_str = textscan(char(DAT{1,:}(i)), '%n', 'delimiter', ',');for j=1:Ana_Ch+2algdat(i,j) = dat_string(j);endend
end
fclose(DAT_id);
t = algdat(:,2)./1000;
%% 获得最终数据
data = zeros(dat_len, Ana_Ch);
for i = 1:Ana_Chj = 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上的录波查看软件需要太多积分了 我们还是自己动手吧
    欢迎讨论

http://chatgpt.dhexx.cn/article/pl7chwTf.shtml

相关文章

COMTRADE格式录波数据分析以及函数实现(一)

一、首先,看一下COMTARDE是什么 COMTRADE是IEEE标准电力系统暂态数据交换通用格式。标准为电力系统或电力系统模型采集到的暂态波形和事故数据的文件定义了一种格式。该格式意欲提供一种易于说明的数据交换通用格式。IEEE于1991年提出,并于1999进行了修…

如何申请免费SSL证书?宝塔面板SSL证书安装部署完整教程

如何申请免费SSL证书?宝塔面板SSL证书安装部署完整教程 现在很多网站都由原来的http://www.xxx.com转换为https://www.xxx.com,这就是说从http协议转到了https协议。如果说网站不是https协议,Chrome浏览器会提示不安全。https比http协议安全性…

HTTPS证书及其安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 HTTPS证书及其安装 HTTPS证书一、 试查http协议1启动jmeter,添加测试元件1)添加缓存管理器2)添加cookie管理器3)添加http请求默…

【Linux】宝塔面板 SSL 证书安装部署

宝塔面板 SSL 证书安装部署 前言证书下载宝塔配置SSL注意事项 前言 前期有讲过Tomcat和Nginx分别部署SSL证书,但也有好多小伙伴们私信我说,帮忙出一期宝塔面板部署SSL证书的教程,毕竟宝塔的用户体量也是蛮大的,于是宠粉的博主&am…

宝塔面板 SSL 证书安装部署

注册与购买域名-Tencent Cloud 腾讯云、华为云、阿里云等都可以购买域名并备案做dns解析。需要主要:域名的购买可以任意选云服务厂商,但是dns解析时只能指向dns服务商的主机。简单的说:腾讯云的dns服务器可以解析腾讯云的云服务器(ECS),不能…

javaScript中的鼠标事件

鼠标点击事件 onclick单击事件 鼠标单击时事件处理函数 <input type"button" id"bt" value"点击"> <script> //找到按钮并设置点击事件document.getElementById("bt").onclick function (){//被点击后弹出弹出框alert…

JavaScript鼠标事件与函数

通过鼠标触发事件&#xff0c;类似用户的行为&#xff1a; 鼠标事件列表&#xff0c;要在(body)里设一个div,id名要为box&#xff0c;style里设置它的的宽、高&#xff0c;然后再script里设置脚本语言&#xff0c;使他在里面能够运行。下面script都例了鼠标每一样事件&#xff…

java鼠标js触发事件吗,JavaScript鼠标事件是什么?JavaScript鼠标事件详解

js中是比较简单的语言&#xff0c;然而js的精髓就是js事件&#xff0c;这也是js当中最重要的部分&#xff0c;很多人对JavaScript鼠标事件是什么还不是很了解&#xff0c;下面我们对JavaScript鼠标事件进行详解。 一&#xff1a;在js中&#xff0c;鼠标事件有很多&#xff0c;其…

Js鼠标事件与函数

鼠标事件&#xff08;Mouse Events&#xff09; 通过鼠标触发事件, 类似用户的行为: 鼠标事件列表&#xff0c;要在body里设一个div&#xff0c;id名要为box&#xff0c;style里设置它的宽、高&#xff0c;然后再script里设置脚本语言&#xff0c;使它在里面能够运行。下面scr…

JS鼠标事件(非常详细)

这里写目录标题 一、 常用到的鼠标事件鼠标点击鼠标移动鼠标经过鼠标来源鼠标定位鼠标按键 一、 常用到的鼠标事件 在 JavaScript 中&#xff0c;鼠标事件是 Web 开发中最常用的事件类型&#xff0c;鼠标事件类型详细说明如下表所示&#xff1a; 鼠标事件类型 项目Valueclick…

JS鼠标事件实现动效

1 JS鼠标事件 click鼠标点击事件 事件对象.onclickfunction() {}mousedown / mouseup 鼠标按下/松开事件 事件对象.onmousedown function() {}mouseenter / mouseleave 鼠标移入/移出事件mouseover / mouseout 鼠标移入移出mousemove 鼠标移动事件mousewheel 滚轮滚动事件 注…

JavaScript鼠标事件

JavaScript鼠标事件 js中是比较简单的语言&#xff0c;然而js的精髓就是js事件&#xff0c;这也是js当中最重要的部分&#xff0c;很多人对JavaScript鼠标事件是什么还不是很了解&#xff0c;下面我们对JavaScript鼠标事件进行详解。 鼠标事件&#xff08;Mouse Events&#…

Linux运维之zabbix(四)onealert云告警平台

Linux运维之zabbix&#xff08;四&#xff09;onealert云告警平台 什么是云告警平台&#xff1f; 可以通过微信、邮件等快速接入各类警告信息&#xff0c;通过降噪、聚类、分派、通知、排班等功能&#xff0c;提高告警管理能力 云告警平台的部署 百度搜索oneallert&#xf…

zabbix集成onealert报警 、利用proxy分担server端压力

前言 告警将重要信息发送给运维「或者其他相关人」&#xff0c;及时发现并且处理问题。在所有开源监控软件里面&#xff0c;Zabbix 的告警方式无疑是最棒的。告警的方式各式各样&#xff0c;从 Email 告警到飞信、139/189邮箱、最后到微信甚至电话告警&#xff0c;接入存在各种…

利用zabbix部署onealert云报警平台

实验环境&#xff1a; server4 172.25.254.4 server4作为zabbix-server服务器&#xff0c;并在其上搭建zabbix-agent客户端。 server5 172.25.254.5 server5 作为zabbix-agent客户端 1. 部署好zabbix基本环境&#xff0c;让其监控sever4、s…

Zabbix(五)利用Zabbix部署onealert云告警平台

一、利用Zabbix部署onealert云告警平台 人的精力是有限的&#xff0c;当我们部署好zabbix监控&#xff0c;为监控主机添加各种监控项完毕之后&#xff0c;不可能时时刻刻去盯着我们的主机看&#xff0c;如果一个主机出现异常&#xff0c;我们该如何在第一时间获得其异常信息&a…

Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警

Zabbix传统告警方法 Email&#xff1a;调用 sendmail 、sendEmail 等脚本通过 SMTP 发送邮件 飞信&#xff1a;飞信已经退出历史舞台&#xff0c;不再有人使用 189/139&#xff1a;发送邮箱邮件至邮箱&#xff0c;邮箱将短信转到用户手机短信&#xff0c;存在一定的延迟 微…

详解 OneAlert 排班可以帮你做什么

排班的存在&#xff0c;实质是通过有序安排&#xff0c;降低企业/团队人力成本&#xff0c;提升工作效率。 阅读导航&#xff08;预计2min&#xff09; 1. 详解排班功能 轮班机制 工作时间 双视图展示 灵活调整 2. 利用排班如何助力运维团队 排班策略让告警更精准分派到人 …

zabbix 使用onealert云报警平台

在www.onealert.com上 获取key值 安装步骤&#xff1a; [rootserver1 zabbix安装包]# cp oneitsm_zabbix_release-1.2.0.tar.gz /usr/lib/zabbix/alertscripts/ [rootserver1 zabbix安装包]# cd /usr/lib/zabbix/alertscripts/ [rootserver1 alertscripts]# ls oneitsm_zab…

Promethus(普罗米修斯)的Grafana+onealert实现报警功能

1、Centos7安装Promethus(普罗米修斯&#xff09;监控系统完整版 2、Promethus(普罗米修斯&#xff09;监控Mysql数据库 3、Promethus(普罗米修斯&#xff09;安装Grafana可视化图形工具 4、Promethus的Grafana图形显示MySQL监控数据 5、Promethus(普罗米修斯&#xff09;的…