O último módulo do sistema contém as regras que, a partir dos diagnósticos gerados pelos módulos anteriores, definem qual, entre as duas ou três saídas geradas pelo Rogers, deve ser o diagnóstico final.
Assim como o Gás-Chave, este módulo somente é invocado quando o módulo Rogers gera mais de um diagnóstico para a mesma entrada.
A Figura 40 ilustra as entradas, saídas e o motor de inferência deste módulo:
Figura 40. Representação do módulo Gás-Chave Rogers no Xfuzzy
5.7.1 Dados de Entrada
Os dados de entrada deste módulo correspondem às saídas geradas pelos diagnósticos anteriores. Acrescenta-se ainda o valor dos gases C2H6 e CH4,
o C2H6 – valor do gás Etano obtido no ensaio de cromatografia; o CH4 – valor do gás Metano obtido no ensaio de cromatografia; o DiagGC – Diagnóstico gerado pelo módulo Gás-Chave;
o DiagR1 – Diagnóstico gerado pelo módulo Rogers; o DiagR2 – Diagnóstico gerado pelo módulo Rogers; o DiagR3 – Diagnóstico gerado pelo módulo Rogers;
5.7.2 Base de Conhecimento
A base de conhecimento corresponde às regras definidas pelo especialista (SUÑE, 2001) para mapear diagnósticos do critério Rogers a partir de diagnósticos do critério Gás-Chave.
Abaixo estão as regras definidas para a aplicação através da ferramenta XFuzzy.
rulebase rGasChave_Rogers (TValGas C2H6, TValGas CH4, TDiagGC DiagGC, TDiagRogers DiagR1, TDiagRogers DiagR2, TDiagRogers DiagR3 : TDiagRogers DiagFinal) using opGC_Rogers {
if(DiagR1 == Descargas_Alta_Energia & DiagR2 ==
Falha_Termica_Muito_Alta_300_700C & (DiagGC == Arco_Oleo | DiagGC == Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Falha_Termica_Muito_Alta_300_700C;
if(DiagR1 == Descargas_Alta_Energia & DiagR2 ==
Falha_Termica_Muito_Alta_300_700C & (DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Descargas_Alta_Energia;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Descargas_Baixa_Energia_Arco_Sem_Potencia & (DiagGC == Arco_Oleo | DiagGC == Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Descargas_Baixa_Energia_Arco_Sem_Potencia;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Descargas_Baixa_Energia_Arco_Sem_Potencia & (DiagGC ==
Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Sobreaquecimento_Condutor_Isolado & DiagGC ==
Celulose_Superaquecida) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Sobreaquecimento_Condutor_Isolado & (DiagGC == Arco_Oleo | DiagGC == Oleo_Superaquecido | DiagGC == Eletrolise)) -> DiagFinal =
Sobreaquecimento_Condutor_Isolado;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Descargas_Baixa_Energia_Potencial_Flutuacao & (DiagGC ==
Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Descargas_Baixa_Energia_Potencial_Flutuacao;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Descargas_Baixa_Energia_Potencial_Flutuacao & (DiagGC == Arco_Oleo | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Descargas_Alta_Energia & (DiagGC == Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Descargas_Alta_Energia;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Descargas_Alta_Energia & (DiagGC == Arco_Oleo | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Alta_150_300C & DiagR2 == Descargas_Baixa_Energia_Potencial_Flutuacao & (DiagGC ==
Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Descargas_Baixa_Energia_Potencial_Flutuacao;
if(DiagR1 == Falha_Termica_Alta_150_300C & DiagR2 ==
Descargas_Baixa_Energia_Potencial_Flutuacao & (DiagGC == Arco_Oleo | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Alta_150_300C;
if(DiagR1 == Falha_Termica_Muito_Alta_300_700C & DiagR2 ==
Descargas_Alta_Energia & (DiagGC == Oleo_Superaquecido | DiagGC == Celulose_Superaquecida)) -> DiagFinal = Descargas_Alta_Energia;
if(DiagR1 == Falha_Termica_Muito_Alta_300_700C & DiagR2 == Descargas_Alta_Energia & (DiagGC == Arco_Oleo | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Muito_Alta_300_700C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Falha_Termica_Alta_150_300C & DiagR3 !=
Descargas_Baixa_Energia_Potencial_Flutuacao & DiagGC == Arco_Oleo) -> DiagFinal = Falha_Termica_Alta_150_300C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Falha_Termica_Alta_150_300C & DiagR3 !=
Descargas_Baixa_Energia_Potencial_Flutuacao & (DiagGC ==
Oleo_Superaquecido | DiagGC == Celulose_Superaquecida | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal =
Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
& DiagGC == Arco_Oleo) -> DiagFinal = Falha_Termica_Muito_Alta_300_700C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Falha_Termica_Muito_Alta_300_700C & DiagR3 != Descargas_Alta_Energia & (DiagGC == Oleo_Superaquecido | DiagGC == Celulose_Superaquecida | DiagGC == Descargas_Parciais | DiagGC == Eletrolise)) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Falha_Termica_Alta_150_300C & DiagR3 ==
Descargas_Baixa_Energia_Potencial_Flutuacao & DiagGC == Arco_Oleo) -> DiagFinal = Descargas_Baixa_Energia_Potencial_Flutuacao;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Falha_Termica_Alta_150_300C & DiagR3 ==
Descargas_Baixa_Energia_Potencial_Flutuacao & DiagGC != Arco_Oleo & C2H6 == Total & CH4 <= Total) -> DiagFinal =
Falha_Termica_Alta_150_300C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 == Falha_Termica_Alta_150_300C & DiagR3 ==
Descargas_Baixa_Energia_Potencial_Flutuacao & DiagGC != Arco_Oleo & CH4 == Total & C2H6 <= Total) -> DiagFinal =
Falha_Termica_Media_100_200_C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Falha_Termica_Muito_Alta_300_700C & DiagR3 == Descargas_Alta_Energia & DiagGC == Arco_Oleo) -> DiagFinal = Descargas_Alta_Energia;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
& DiagGC != Arco_Oleo & C2H6 == Total & CH4 <= Total) -> DiagFinal = Falha_Termica_Muito_Alta_300_700C;
if(DiagR1 == Falha_Termica_Media_100_200_C & DiagR2 ==
Falha_Termica_Muito_Alta_300_700C & DiagR3 == Descargas_Alta_Energia & DiagGC != Arco_Oleo & CH4 == Total & C2H6 <= Total) -> DiagFinal = Falha_Termica_Media_100_200_C;
if(DiagR1 == Descargas_Parciais_Baixa_Energia | DiagR1 == Descargas_Parciais_Alta_Energia | DiagR2 ==
Descargas_Parciais_Baixa_Energia | DiagR2 ==
Descargas_Parciais_Alta_Energia) -> DiagFinal = Sem_Diagnostico; }
A última regra quer dizer que, se um dos diagnósticos de Rogers se apresentar como “Descargas_Parciais_Baixa_Energia” ou “Descargas_Parciais_Alta_Energia”, o módulo Gás-Chave Rogers não possui diagnóstico proposto. A regra que trata destes dois diagnósticos ainda está em estudo pelos especialistas responsáveis.