Skip to content

yangyuqing15715165798/trae_gis_pd_recognition

Repository files navigation

GIS局放监测系统 v1.2

系统简介

本系统是一个用于监测GIS设备局部放电的软件,提供实时数据显示和分析功能。系统基于PyQt5开发,集成了Modbus TCP通信、数据可视化和局部放电类型识别功能。 image

新增功能:局部放电类型识别

系统新增了局部放电类型识别模块,可以对PRPD图进行分析,识别出局部放电的类型,包括:

  • 电晕放电 (Corona)
  • 颗粒放电 (Particle)
  • 悬浮放电 (Floating)
  • 沿面放电 (Surface)
  • 气隙放电 (Void)

系统启动

为了方便用户使用,系统提供了一键启动脚本:

  1. 双击运行 启动GIS局放监测系统.bat
  2. 脚本会自动启动局放类型识别API服务和主程序

使用方法

局部放电类型识别

  1. 启动系统后,在左侧控制面板中找到「局放类型识别」模块
  2. 点击「检查API服务」按钮,确认API服务状态为「已连接」
  3. 当PRPD图显示有效数据后,点击「识别当前局放类型」按钮
  4. 系统会自动分析当前PRPD图,并显示识别结果和置信度

系统界面预览

主要功能

数据采集与显示

  • 通过Modbus TCP协议实时采集GIS设备局部放电数据
  • 显示放电次数总和和UHF_DB最大值等关键指标
  • 实时更新系统状态和连接信息

数据可视化

  • PRPD图(相位分辨局部放电图):直观展示放电相位与幅值关系
  • PRPS图(相位分辨局部放电谱):三维展示放电相位、周期和幅值关系
  • 支持参考波形显示,便于对比分析

数据管理

  • 数据记录功能:可随时开始/停止记录监测数据
  • 数据导出功能:将记录的数据导出为CSV格式,便于后续分析
  • 支持自定义刷新率,灵活调整数据更新频率
  • 数据表格视图:实时显示采集的数据,支持过滤、搜索和导出
  • 系统日志:记录系统运行状态和数据采集过程

系统控制

  • 设备连接/断开控制
  • 显示内容自定义(PRPD图、PRPS图、参考波形等)
  • 友好的用户界面,操作简单直观

系统要求

  • 操作系统:Windows 7/10/11
  • Python 3.6+
  • 依赖库:
    • PyQt5
    • matplotlib
    • numpy
    • pymodbus
    • struct
    • csv

安装指南

  1. 确保已安装Python 3.6或更高版本
  2. 安装所需依赖库:
pip install pyqt5 matplotlib numpy pymodbus
  1. 下载本项目代码
  2. 运行主程序:
python 3_11_gis_modbusTCPGUI_v3.py

使用说明

连接设备

  1. 确保监测设备已正确连接到网络
  2. 默认连接地址为192.168.0.150:6789(可在代码中修改)
  3. 点击"连接设备"按钮建立连接

数据监测

  • 系统启动后会自动开始数据采集和显示
  • 顶部面板显示系统信息和关键数据指标
  • 图表区域实时更新PRPD图和PRPS图

数据记录与导出

  1. 点击"开始记录"按钮开始记录数据
  2. 数据记录过程中按钮变为"停止记录"
  3. 点击"停止记录"结束数据记录
  4. 点击"导出数据"将记录的数据导出为CSV文件

显示设置

  • 通过控制面板的复选框控制是否显示PRPD图、PRPS图和参考波形
  • 可调整刷新率(100-5000毫秒)以适应不同的监测需求

数据表格与日志

  1. 切换到"数据视图"选项卡查看实时数据表格和系统日志
  2. 数据过滤功能:
    • 按数据类型过滤(放电次数、uhf_db、相位)
    • 文本搜索功能
    • 日期过滤
  3. 表格管理:
    • 导出表格数据为CSV文件
    • 清空表格数据
    • 设置最大行数限制(防止内存占用过大)
  4. 日志管理:
    • 清除日志
    • 保存日志到文本文件
    • 自动滚动设置

技术实现

通信协议

  • 采用Modbus TCP协议与设备通信
  • 自定义唤醒序列确保设备正常响应
  • 支持多组寄存器数据的读取和解析

数据处理

  • 实时解析设备返回的原始数据
  • 支持int16和float32等多种数据类型
  • 数据缓存和统计分析
  • 数据过滤和搜索功能

用户界面

  • 基于PyQt5构建现代化GUI界面
  • 采用Matplotlib实现数据可视化
  • 响应式布局适应不同屏幕尺寸
  • 选项卡设计,分离图表视图和数据视图
  • 标准输出重定向到日志区域

常见问题

  1. 连接失败怎么办?

    • 检查设备IP地址和端口是否正确
    • 确认网络连接是否正常
    • 尝试重启设备和软件
  2. 数据显示异常?

    • 检查设备是否正常工作
    • 确认寄存器配置是否正确
    • 尝试调整刷新率
  3. 导出数据失败?

    • 确保有足够的磁盘空间
    • 检查文件路径是否有写入权限
    • 确认是否已记录数据
  4. 系统运行缓慢?

    • 检查表格数据量是否过大,可适当减小最大行数限制
    • 调整刷新率,减少数据更新频率
    • 关闭不需要的显示内容(如PRPS图)
  5. PRPD图显示问题

    • 问题1: colorbar不断累积:在长时间运行后,PRPD图的colorbar会不断累积,导致界面混乱。

      • 解决方法:在update_plot方法中添加colorbar清除逻辑,确保每次更新前移除旧的colorbar。
      • 技术实现:添加self.colorbar属性跟踪当前colorbar,并在每次更新前检查并移除。
    • 问题2: PRPD图随时间变窄:长时间运行后,PRPD图会逐渐变窄,显示空间被挤压。

      • 解决方法:使用make_axes_locatable为colorbar创建固定空间,避免挤压主图。
      • 技术实现:
        from mpl_toolkits.axes_grid1 import make_axes_locatable
        divider = make_axes_locatable(self.ax1)
        cax = divider.append_axes("right", size="5%", pad=0.05)
        self.canvas.colorbar = self.canvas.fig.colorbar(scatter, cax=cax, label='幅值 (dB)')
    • 问题3: PRPS图挤压PRPD图:在某些情况下,3D的PRPS图会挤压2D的PRPD图显示空间。

      • 解决方法:使用GridSpec控制子图布局,设置固定的宽度比例。
      • 技术实现:
        from matplotlib.gridspec import GridSpec
        gs = GridSpec(1, 2, width_ratios=[1, 1])  # 1行2列,宽度比例1:1
        self.ax1 = self.fig.add_subplot(gs[0, 0])  # 左侧PRPD图
        self.ax2 = self.fig.add_subplot(gs[0, 1], projection='3d')  # 右侧PRPS图

开发者信息

本系统由电力设备监测团队开发,用于GIS设备局部放电监测和分析。

版本历史

  • v1.2 (当前版本):添加数据记录和导出功能,优化界面,增加数据表格和日志功能
  • v1.1:增加PRPS图显示,改进数据处理
  • v1.0:基础版本,实现数据采集和PRPD图显示

许可证

本软件仅供内部使用,未经授权不得分发或商用。

联系方式

如有问题或建议,请联系:

About

本系统是一个用于监测GIS设备局部放电的软件,提供实时数据显示和分析功能。系统基于PyQt5开发,集成了Modbus TCP通信、数据可视化和局部放电类型识别功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors