#Montar o drive:
from google.colab import drive
drive.mount('/content/drive')Mounted at /content/drive
###Campus Universitário de Tucuruí
###Programa de Pós-Graduação em Computação Aplicada - PPCA
Comunicação Drive
#Montar o drive:
from google.colab import drive
drive.mount('/content/drive')Mounted at /content/drive
H2 = float(input('Hidrogênio: '))
CH4 = float(input('Metano: '))
C2H4 = float(input('Etileno: '))
C2H6 = float(input('Etano: '))
C2H2 = float(input('Acetileno: '))Hidrogênio: 36
Metano: 12
Etileno: 10
Etano: 10
Acetileno: 1
import pickle
import numpy as np
import pandas as pdknn_DGA = '/content/drive/MyDrive/Mestrado/Mestrado_Otacílio_Raphael/Codigo2022/knn_DGA.sav'rnn_DGA = '/content/drive/MyDrive/Mestrado/Mestrado_Otacílio_Raphael/Codigo2022/meuRnn.pkl'def duval (x_test):
PiCH4 =(100*CH4) / (CH4+C2H4+C2H2)
PiC2H4 =(100*C2H4) / (CH4+C2H4+C2H2)
PiC2H2 =(100*C2H2) / (CH4+C2H4+C2H2)
# Zona de falhas de Duval
if PiCH4 >= 98:
R = "DUVAL: Descarga Parcial Tipo Corona"
elif PiC2H4 < 23 and PiC2H2 >= 13:
R = "DUVAL: Descarga de Baixa Energia - D1"
elif PiC2H4 >= 23 and PiC2H2 >= 29:
R = "DUVAL: Descarga de Alta Energia - D2"
elif 23 <= PiC2H4 < 40 and 13 <= PiC2H2 < 29:
R = "DUVAL: Descarga de Alta Energia - D2"
elif PiC2H4 < 50 and 4 <= PiC2H2 < 13:
R = "DUVAL: Falha Térmica/Elétrica"
elif 40 <= PiC2H4 < 50 and 13 <= PiC2H2 < 29:
R = "DUVAL: Falha Térmica/Elétrica"
elif PiC2H4 >= 50 and 15 <= PiC2H2 < 29:
R = "DUVAL: Falha Térmica/Elétrica"
elif PiCH4 < 98 and PiC2H4 < 20 and PiC2H2 < 4:
R = "DUVAL: Térmico < 300°C"
elif 20 <= PiC2H4 < 50 and PiC2H2 < 4:
R = "DUVAL: Térmico 300°C < T < 700 °C"
elif PiC2H4 >= 50 and PiC2H2 < 15:
R = "DUVAL: Térmico > 700 °C"
else:
R = "DUVAL: Inconclusivo"
return RKNN_DGA = pickle.load(knn_DGA, 'rb')RNN_DGA = pickle.load(rnn_DGA, 'rb')H2_Media_ln = 2.71161374
CH4_Media_ln = 3.30010706
C2H4_Media_ln = 2.09968543
C2H6_Media_ln = 1.96715411
C2H2_Media_ln = -2.86100623H2_Desvio_ln = 2.44189199
CH4_Desvio_ln = 1.70911597
C2H4_Desvio_ln = 3.03121717
C2H6_Desvio_ln = 3.0799964
C2H2_Desvio_ln = 3.04023271Media = [H2_Media_ln, CH4_Media_ln, C2H4_Media_ln, C2H6_Media_ln, C2H2_Media_ln]Desvio = [H2_Desvio_ln, CH4_Desvio_ln, C2H4_Desvio_ln, C2H6_Desvio_ln, C2H2_Desvio_ln]x_test = [H2, CH4, C2H4, C2H6, C2H2]xl = np.log(x_test)x_Normalizado = np.array((xl[:5]-Media[:5])/Desvio[:5]).reshape(1,-1)x_Normalizadoarray([[0.15538309, 0.16582367, 0.54037177, 0.10890629, 0.94104843]])
yk = KNN_DGA.predict(x_Normalizado)if yk == 0:
print('Amostra normal')
elif yk == 1:
print('Defeito térmico')
elif yk == 2:
print('Defeito elétrico')yr0 = RNN_DGA.predict(x_Normalizado)
yr0 = (yr0 >= 0.5)
print("\n")
yr0yr = pd.DataFrame(yr0, columns=['X1', 'X2', 'X3'])
yrX1 = yr["X1"].values
X2 = yr["X2"].values
X3 = yr["X3"].valuesif X1 == True and X2 == False and X3 == False:
print('Amostra normal')
elif X1 == False and X2 == True and X3 == False:
print('Defeito térmico')
elif X1 == False and X2 == False and X3 == True:
print('Defeito elétrico')yd = duval(x_test)
yd'DUVAL: Térmico > 700 °C'
Análise de Normalidade
#CONDIÇÃO 1: KNN=ANN PARA FALHAS
if yk == 0 and X1 == True: # KNN=ANN PARA NORMAIS
print('KNN e Rede Neural - Amostra normal')
if yk != 0 and X1 != True: # KNN=ANN PARA FALHAS
print('KNN e Reunral - Prossiga a análise')
if yk == 0 and X2 == True or X3 == True: # KNN=NORMAL E ANN=FALHA
print('Realise análise da evolução dos gases - TENDÊNCIA A FALHAS - Rede Neural')
if yk != 0 and X1 == True: # KNN=FALHA E ANN=NORMAL
print('Realise análise da evolução dos gases - TENDÊNCIA A FALHAS - K-Vizinhos')
Tipo de Falha
for yr in (RNN_DGA.predict(x_Normalizado)):
if X1 == False and X2 == False and X3 == True:
print('REDE NEURAL: Defeito elétrico')
#print("\n")
if yk == 1:
print('K-VIZINHOS: Defeito térmico')
for yd in duval(x_test).replace("", ""):
print(yd, end="")# Diagrama de Blocos - Sistema de Diagnóstico Inteligente - SDI
for yk in (KNN_DGA.predict(x_Normalizado)):
if yk == 0:
print('Amostra normal')
print("\n")
break
for yr in (RNN_DGA.predict(x_Normalizado)):
if X1 == True and X2 == False and X3 == False:
print('REDE NEURAL: Realizar nova coleta de óleo - Discordância entre KNN e ANN')
print("\n")
break
for yr in (RNN_DGA.predict(x_Normalizado)):
if X1 == False and X2 == True and X3 == False:
print('REDE NEURAL: Defeito térmico')
#print("\n")
for yr in (RNN_DGA.predict(x_Normalizado)):
if X1 == False and X2 == False and X3 == True:
print('REDE NEURAL: Defeito elétrico')
#print("\n")
if yk == 1:
print('K-VIZINHOS: Defeito térmico')
for yd in duval(x_test).replace("", ""):
print(yd, end="")from IPython.core.display import display, Markdown, clear_output
import matplotlib.pyplot as plt
import ipywidgets as widgets
from logging import PlaceHolderequation = widgets.Text(value = 'sin(x)+cos(x)', PlaceHolder = "Digite algo:", description = 'Equação:')Text_diagnostico = widgets.Text(value = "")range_ = widgets.FloatRangeSlider(value = [-5, 5], min = -100, step = 0.1, description = 'Escala:', orientation = 'horizontal', redaout = True, redaout_format = 'd')points1 = widgets.IntText(value = 0, description = ' Hidrogênio:')points2 = widgets.IntText(value = 0, description = 'Metano:')points3 = widgets.IntText(value = 0, description = 'Etileno:')points4 = widgets.IntText(value = 0, description = 'Etano:')points5 = widgets.IntText(value = 0, description = 'Acetileno:')from codeop import compile_command
button = widgets.Button(description = 'Diagnóstico', compile_command=defdiag)--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-71-901141993795> in <cell line: 2>() 1 from codeop import compile_command ----> 2 button = widgets.Button(description = 'Diagnóstico', compile_command=defdiag) NameError: name 'defdiag' is not defined
out = widgets.Output()grapher = widgets.VBox([points1, points2, points3, points4, points5, button, out, Text_diagnostico])--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-73-b54efe859ba1> in <cell line: 1>() ----> 1 grapher = widgets.VBox([points1, points2, points3, points4, points5, button, out, Text_diagnostico]) NameError: name 'button' is not defined
info = Markdown("""# Sistema de Diagnóstico Inteligente - SDI
- Digite a amostra gascromatográfica.
- Aperte diagnóstico.""")display(info, grapher)--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-75-ecc5b9db6586> in <cell line: 1>() ----> 1 display(info, grapher) NameError: name 'grapher' is not defined