《融合SCADA系统数据的天然气管道泄漏多源感知技术研究》误报数据识别模型开发

数据处理不作表述。因为我用的是处理后的数据,数据点这。

文章目录

  • 工作内容1
    • CC040
      • VFD电流
      • VFD转速
      • 压缩机转速反馈
      • 进出口差压
    • 紧急截断阀开到位
    • 进出电动阀开到位
    • 发球筒电筒阀开到位
    • 收球筒电动阀开到位
    • 电动阀2005开到位
    • 越站阀开到位
  • 工作内容2
  • 工作内容3

工作内容1

任务描述:简单观察时序数据

CC040

VFD电流

在这里插入图片描述

VFD转速

在这里插入图片描述
这两观察一个就好。

压缩机转速反馈

在这里插入图片描述

蚌埠住了。

进出口差压

在这里插入图片描述
似乎我看不出什么。
不用看了以上数据无法用作时序分析。我们之后特征工程看看它们是否有用。现在简单处理一下,小0.1换0大0.1换1。只需选择一段就好,这几段的本质一样。那就进出口差压了。同时只有两台能用。

紧急截断阀开到位

在这里插入图片描述
开了29560的单位时间。
在这里插入图片描述
开了29554的单位时间。
唐山这里前开后关。
在这里插入图片描述
在这里插入图片描述
宝坻全都没有开启。
这些数据十分显然只能用于特征工程无法用于时序分析。

进出电动阀开到位

在这里插入图片描述
进站:开了0的单位时间。
出站:开了12869的单位时间。
这些数据十分显然只能用于特征工程无法用于时序分析。

发球筒电筒阀开到位

在这里插入图片描述
开了0的单位时间。
这些数据十分显然只能用于特征工程无法用于时序分析。

收球筒电动阀开到位

在这里插入图片描述
开了12874的单位时间。
这些数据十分显然只能用于特征工程无法用于时序分析。

电动阀2005开到位

在这里插入图片描述
开了2405的单位时间。
这些数据十分显然只能用于特征工程无法用于时序分析。

越站阀开到位

在这里插入图片描述
唐山:开了30082的单位时间。
宝坻:开了42946的单位时间。
这些数据十分显然只能用于特征工程无法用于时序分析。

代码忽略

工作内容2

任务描述:判断数据之中是否有天然气大量泄漏。理论概述:基于上面工作内容,显而易见不能判断天然气体是否泄漏。为什么呢??同一时间,各种阀门开关状态组合过少。按理来说,应该有 2 3 + 4 + 2 + 1 + 1 + 1 + 2 = 2 14 2^{3+4+2+1+1+1+2}=2^{14} 23+4+2+1+1+1+2=214种的状态,但是实际不是这样。例如:有的阀门一直关闭,有的阀门一直开启,有的阀门开启之时另一阀门必然关闭,有的阀门关闭之时另一阀门必然开启。这个情况在这数据尤为严重,所以不能。个人观点:压力波形作为输入才是更加合理选择。 但是显然不是上述这些简单分类变量。我们可以使用模态分解技术,奇异谱分析等进行曲线分析。我们可以使用循环神经网络,多层感知机等进行模型建立。关键就是我们需要使用哪些波形曲线。 还有就是标签问题,工作内容1中表明,所有阀门关不代表气体泄漏。根据统计学习原理,如果数据之中没有泄漏数据,那么模型就不可能能学习到泄漏特征。 特征我们都知道是多段波形,但是具体应该是什么呢?一定不是上面那些。标签我们都知道是是否泄漏,但是数据之中没有。在没有的情况之下,更偏向非统计建模。
曲线分析框架

from PyEMD import CEEMDAN
from vmdpy import VMD
import pandas as pd
import numpy as npclass Decomposition:def EMD(data):ceemdan=CEEMDAN()ceemdan.ceemdan([i for i in data])IMFS,RES=ceemdan.get_imfs_and_residue()f=pd.ExcelWriter("data/EMD.xlsx")pd.DataFrame(IMFS.T).to_excel(f,sheet_name="IMFS",index=None,columns=None,header=None)pd.DataFrame(RES.T).to_excel(f,sheet_name="RES",index=None,columns=None,header=None)f.save()return IMFS.shape[0]+1def VMD(data,x):alpha,tau,K,DC,init,tol=5000,0,x,0,1,1e-6U,u_hat,omega=VMD(data,alpha,tau,K,DC,init,tol)f=pd.ExcelWriter("data/VMD.xlsx")pd.DataFrame(U.T).to_excel(f,index=None,columns=None,header=None)f.save()def SSA(data,x):windowlen=x;datalen=data.shape[0]K=datalen-windowlen+1;X=np.zeros((windowlen,K))for i in range(K):X[:,i]=data[i:i+windowlen]U,sigma,VT=np.linalg.svd(X,full_matrices=False)for i in range(VT.shape[0]):VT[i,:]*=sigma[i]A=VTREC=np.zeros((windowlen,datalen))for i in range(windowlen):for j in range(windowlen-1):for m in range(j+1):REC[i,j]+=A[i,j-m]*U[m,i]REC[i,j]/=(j+1)for j in range(windowlen-1,datalen-windowlen+1):for m in range(windowlen):REC[i,j]+=A[i,j-m]*U[m,i]REC[i,j]/=windowlenfor j in range(datalen-windowlen+1,datalen):for m in range(j-datalen+windowlen,windowlen):REC[i,j]+=A[i,j-m]*U[m,i]REC[i,j]/=(datalen-j)f=pd.ExcelWriter("data/SSA.xlsx")pd.DataFrame(REC.T).to_excel(f,index=None,columns=None,header=None)f.save()

神经网络框架(tensorflow版)

from sklearn.neural_network import MLPRegressor
import matplotlib.pyplot as plt
from Function import Function
import tensorflow as tf
import numpy as npclass Neural_network():def BPNN(X_train,Y_train,X_test,Y_test,scaled_tool,step_size,batch_size,epochs,Boolean1,Boolean2):inputs=tf.keras.Input(shape=(step_size,))x=tf.keras.layers.Dense(step_size//4*3,activation='relu',name='dense_1')(inputs)x=tf.keras.layers.Dense(step_size//4*2,activation='relu',name='dense_2')(x)x=tf.keras.layers.Dense(step_size//4*1,activation='relu',name='dense_3')(x)x=tf.keras.layers.Dense(1,activation='relu',name='dense_4')(x)model=tf.keras.Model(inputs=inputs,outputs=x)model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),loss='mean_squared_error')history=model.fit(X_train,Y_train,batch_size=batch_size,epochs=epochs)loss=history.history['loss']if Boolean1==True:plt.plot(loss,label='BPNN '+'Training Loss')return Function.Function2(model,X_train,X_test,scaled_tool,Y_test,Boolean2)def RNN(X_train,Y_train,X_test,Y_test,scaled_tool,step_size,batch_size,epochs,Boolean1,Boolean2):X_train=np.reshape(X_train,(X_train.shape[0],X_train.shape[1],1))model=tf.keras.models.Sequential()model.add(tf.keras.layers.SimpleRNN(step_size,input_shape=(step_size,1)))model.add(tf.keras.layers.Dense(1))model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),loss='mean_squared_error')history=model.fit(X_train,Y_train,batch_size=batch_size,epochs=epochs)loss=history.history['loss']if Boolean1==True:plt.plot(loss,label="RNN "+'Training Loss')X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1))return Function.Function2(model,X_train,X_test,scaled_tool,Y_test,Boolean2)def LSTM(X_train,Y_train,X_test,Y_test,scaled_tool,step_size,batch_size,epochs,Boolean1,Boolean2):X_train=np.reshape(X_train,(X_train.shape[0],X_train.shape[1],1))model=tf.keras.models.Sequential()model.add(tf.keras.layers.LSTM(step_size,input_shape=(step_size,1)))model.add(tf.keras.layers.Dense(1))model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),loss='mean_squared_error')history=model.fit(X_train,Y_train,batch_size=batch_size,epochs=epochs)loss=history.history['loss']if Boolean1==True:plt.plot(loss,label="LSTM "+'Training Loss')X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1))return Function.Function2(model,X_train,X_test,scaled_tool,Y_test,Boolean2)def GRU(X_train,Y_train,X_test,Y_test,scaled_tool,step_size,batch_size,epochs,Boolean1,Boolean2):X_train=np.reshape(X_train,(X_train.shape[0],X_train.shape[1],1))model=tf.keras.models.Sequential()model.add(tf.keras.layers.GRU(step_size,input_shape=(step_size,1)))model.add(tf.keras.layers.Dense(1))model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),loss='mean_squared_error')history=model.fit(X_train,Y_train,batch_size=batch_size,epochs=epochs)loss=history.history['loss']if Boolean1==True:plt.plot(loss,label="GRU "+'Training Loss')X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1))return Function.Function2(model,X_train,X_test,scaled_tool,Y_test,Boolean2)def MLP(X_train,Y_train,X_test,Y_test,scaled_tool,Boolean):model=MLPRegressor(max_iter=50,hidden_layer_sizes=(200),random_state=0)model.fit(X_train,Y_train)return Function.Function2(model,X_train,X_test,scaled_tool,Y_test,Boolean)

工作内容3

之前的word。据word中的那些工作,温度压强同阀门的开关有强作用。也许温度也在考虑范围。温度直接影响压强从而影响模型效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/204313.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java小游戏 王者荣耀

GameFrame类 所需图片: package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayLis…

<JavaDS> 二叉树遍历各种遍历方式的代码实现 -- 前序、中序、后序、层序遍历

目录 有以下二叉树: 一、递归 1.1 前序遍历-递归 1.2 中序遍历-递归 1.3 后序遍历-递归 二、递归--使用链表 2.1 前序遍历-递归-返回链表 2.2 中序遍历-递归-返回链表 2.3 后序遍历-递归-返回链表 三、迭代--使用栈 3.1 前序遍历-迭代-使用栈 3.2 中序遍…

【Python3】【力扣题】367. 有效的完全平方数

【力扣题】题目描述: 【Python3】代码: 1、解题思路:Python函数。num的平方根 或者 num的0.5次幂。 知识点:float.is_integer(...):判断浮点数的值是否等于整数。也可以:浮点数.is_integer()。 pow(a,b)&…

【SpringCloud】微服务的扩展性及其与 SOA 的区别

一、微服务的扩展性 由上一篇文章(没看过的可点击传送阅读)可知, 微服务具有极强的可扩展性,这些扩展性包含以下几个方面: 性能可扩展:性能无法完全实现线性扩展,但要尽量使用具有并发性和异步…

【Intel FPGA】D5005 使用笔记

项目总目标,在AFU中实现xx算法DDR 1.FPGA device :1SX280HN2F43E2VG 2 .硬件架构图 3.DDR信息 4.FIM (FPAG Interface Manager) The FIM contains the FPGA logic to support the accelerators, including the PCIe IP core, …

UDS 相关时间参数

文章目录 UDS 全部时间参数UDS 应用层诊断时间参数1、P2 Client P2 Server P2* Client P2* Server 图例2、S3 Client S3 Server 图例 UDS CNA-TP网络层时间参数1、N_As/N_Ar 图例2、N_Bs 图例3、 N_Br 图例4、N_Cs 图例N_Cr 图例 UDS 网络层流控制时间参数 UDS 全部时间参数 UD…

Java17(LTS Long Term Support)特性

支持JDK17的主流技术框架 spring framework 6.xspringboot 3.xkafka 3.0(不在支持jdk8)jenkins 2.357(必须jdk11起步)James Gosling表示赶紧弃用Java8,使用性能最好的JDK17Chart GPT也推荐JDK17,从长期到性能来说。 JDK17的特性 …

【古月居《ros入门21讲》学习笔记】15_ROS中的坐标系管理系统

目录 说明: 1. 机器人中的坐标变换 tf功能包能干什么? tf坐标变换如何实现 2. 小海龟跟随实验 安装 ros-melodic-turtle-tf 实验命令 运行效果 说明: 1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使…

数据治理框架和成熟度模型

数据治理成熟度模型 一个企业的数据治理能力越高,所享受到数据治理带来的价值也会越多,如增加收入、减少成本、降低风险等。于是,很多企业想要准确地评估本公司的数据治理能力,可以利用数据治理成熟度模型方法,包括 D…

求和(打表题)

题目 打个表发现当 n 时答案为 p &#xff0c;否则为 1 &#xff0c;然后套板子。 #include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <cmath>using namespace std;#define int long long using i64 …

直线(蓝桥杯)

直线 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 在平面直角坐标系中&#xff0c;两点可以确定一条直线。如果有多点在一条直线上&#xff0c; 那么这些点中任意两点确定的直线是同一条。 给定平面上 2 3 个…

万字解析设计模式之模板方法与解释器模式

一、模板方法模式 1.1概述 定义一个操作中算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 例如&#xff0c;去银行办理业务一般要经过以下4个流程&#xff1a;取号、排队、办理具体业…

戴尔科技推出全新96核Precision 7875塔式工作站

工作站行业一直是快节奏且充满惊喜的。在过去25年中,戴尔Precision一直处于行业前沿,帮助创作者、工程师、建筑师、研究人员等将想法变为现实,并对整个世界产生影响。工作站所发挥的作用至关重要,被视为化不可能为可能的必要工具。如今,人工智能(AI)和生成式AI(GenAI)的浪潮正在…

【JavaEE初阶】认识线程、创建线程

1. 认识线程&#xff08;Thread&#xff09; 1.1 概念 1) 线程是什么 一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 举例&#xff1a; 还是回到我们之前的银⾏的例⼦中。之前我们主要描…

业务逻辑漏洞

业务逻辑漏洞 扫描器扫不出来 漏洞包括 暴力破解任意用户/密码登陆短信/邮箱轰炸验证码绕过/爆破/重放/回传用户名/手机号枚举(用户名枚举&#xff1a;当用户登录时&#xff0c;显示用户名不存在&#xff0c;或密码不正确&#xff0c;两个其中一个不正确就称为用户名枚举)越…

Python中的datetime库

1. datetime datetime是Python中用于处理日期和时间的类&#xff0c;它包含在datetime模块中。使用datetime类&#xff0c;我们可以创建表示特定日期和时间的对象&#xff0c;以及进行日期和时间的计算和操作。 from datetime import datetime, timedelta# 获取当前日期和时间…

20 章 多线程

20.1线程简介. 20.2创建线程 2.1继承Thread类 Thread 类是java.lang包中的一个类&#xff0c;从这个类中实例化的对象代表线程&#xff0c;程序员启动一个新线程需要建立Thread 实例。Thread类中常用的两个构造方法如下: public Thread():创建一个新的线程对象。 public Thre…

用C++和python混合编写数据采集程序?

之前看过一篇文章&#xff0c;主要阐述的就是多种语言混合编写爬虫程序&#xff0c;结合各种语言自身优势写一个爬虫代码是否行得通&#xff1f;觉得挺有意思的&#xff0c;带着这样的问题&#xff0c;我尝试着利用我毕生所学写了一段C和python混合爬虫程序&#xff0c;目前运行…

LeetCode Hot100 84.柱状图中最大的矩形

题目&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 方法&#xff1a; 代码&#xff1a; class Solution {public int largestRectang…

成为AI产品经理——模型评估概述

目录 一、模型宣讲和评估的原因 二、模型宣讲 三、模型评估 1. 重要特征 ① 特征来源 ②特征意义 2.选择测试样本 3.模型性能和稳定性 一、模型宣讲和评估的原因 刘海丰老师提到他们在做一个金融AI产品未注重模型指标&#xff0c;过于注重业务指标&#xff0c;导致产生…