diagnÓstico de falhas em uma planta modular...

115

Upload: trinhkiet

Post on 03-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

DIAGNÓSTICO DE FALHAS EM UMA PLANTA MODULAR DE

MONTAGEM DE CUBOS

Maria Zeneide Mota Veras Neta

Projeto de Graduação apresentado ao Curso

de Engenharia Eletrônica e de Computação

da Escola Politécnica, Universidade Federal

do Rio de Janeiro, como parte dos requisitos

necessários à obtenção do título de Engenheiro.

Orientadores: Alessandro Jacoud Peixoto

Felipe Gomes de Oliveira Cabral

Rio de Janeiro

Setembro de 2016

DIAGNÓSTICO DE FALHAS EM UMA PLANTA MODULAR DE

MONTAGEM DE CUBOS

Maria Zeneide Mota Veras Neta

PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO

CURSO DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO DA ESCOLA

POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO

PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU

DE ENGENHEIRO ELETRÔNICO E DE COMPUTAÇÃO.

Examinado por:

Prof. Alessandro Jacoud Peixoto, D.Sc.

Prof. Felipe Gomes de Oliveira Cabral, M.Sc.

Prof. Marcos Vicente de Brito Moreira, D.Sc.

Prof. Eduardo Vieira Leão Nunes, D.Sc.

RIO DE JANEIRO, RJ � BRASIL

SETEMBRO DE 2016

Mota Veras Neta, Maria Zeneide

DIAGNÓSTICO DE FALHAS EM UMA PLANTA

MODULAR DE MONTAGEM DE CUBOS/Maria

Zeneide Mota Veras Neta. � Rio de Janeiro: UFRJ/

Escola Politécnica, 2016.

XI, 104 p.: il.; 29, 7cm.Orientadores: Alessandro Jacoud Peixoto

Felipe Gomes de Oliveira Cabral

Projeto de Graduação � UFRJ/ Escola Politécnica/

Curso de Engenharia Eletrônica e de Computação, 2016.

Referências Bibliográ�cas: p. 101 � 102.

1. Diagnóstico de falhas. 2. Sistemas a eventos

discretos. 3. Controlador lógico programável. I.

Peixoto, Alessandro Jacoud et al. II. Universidade Federal

do Rio de Janeiro, Escola Politécnica, Curso de Engenharia

Eletrônica e de Computação. III. Título.

iii

Agradecimentos

Agradeço primeiramente a Deus, por me permitir chegar até aqui. Em seguida

agradeço a toda a minha família, por ter me fornecido os meios para que eu pudesse

entrar nessa universidade e continuar até o �m, abdicando-se por vezes de sonhos

para realizar o meu.

Agradeço ao meu namorado Leandro de Sá Fernandes, por todo o apoio e com-

panheirismo ao longo de toda a faculdade. Agradeço também a todos os amigos,

conquistados durante a faculdade ou não. Sem vocês o caminho até aqui seria muito

mais difícil.

Agradeço ao professor e coorientador Felipe Cabral, por toda a paciência e en-

sinamentos ao longo deste trabalho, sua orientação foi fundamental para confecção

deste projeto de graduação. Da mesma forma, agradeço aos professores Alessandro

Jacoud e Marcos Moreira pela orientação dada ao longo deste trabalho.

Deixo também minha gratidão a todos os professores e funcionários que, de alguma

forma, me ajudaram, ensinaram e me aconselharam ao longo de toda essa trajetória.

iv

Resumo do Projeto de Graduação apresentado à Escola Politécnica/ UFRJ como

parte dos requisitos necessários para a obtenção do grau de Engenheiro Eletrônico

e de Computação.

DIAGNÓSTICO DE FALHAS EM UMA PLANTA MODULAR DE

MONTAGEM DE CUBOS

Maria Zeneide Mota Veras Neta

Setembro/2016

Orientadores: Alessandro Jacoud Peixoto

Felipe Gomes de Oliveira Cabral

Curso: Engenharia Eletrônica e de Computação

A partir da teoria de Sistemas a Eventos Discretos (SED), este trabalho apre-

senta a construção de uma rede de Petri diagnosticadora para um sistema modular

modelado por autômatos �nitos. O método utilizado para diagnose de falhas per-

mite informar a ocorrência de uma falha não observável a partir da observação dos

eventos gerados pelo sistema modular.

Por �m, um método de conversão de uma rede de Petri diagnosticadora para di-

agrama ladder e implementação em um Controlador Lógico Programável (CLP) é

apresentado. A implementação foi realizada em uma planta mecatrônica no Labo-

ratório de Controle e Automação da Universidade Federal do Rio de Janeiro.

v

Abstract of Undergraduate Project presented to POLI/UFRJ as a partial ful�llment

of the requirements for the degree of Engineer.

FAULT DIAGNOSIS IN A MODULAR PLANT OF CUBE ASSEMBLY

Maria Zeneide Mota Veras Neta

September/2016

Advisors: Alessandro Jacoud Peixoto

Felipe Gomes de Oliveira Cabral

Course: Electronic Engineering

Based on the theory of discrete event systems, this work presents the construction

of a Petri net diagnoser for a modular system modeled as �nite automata. The

diagnosis method informs the occurrence of an unobservable failure event based on

the observed events generated by the modular system.

A method for converting the Petri net diagnoser to ladder diagram and its im-

plementation on a Programmable Logic Controller (PLC) is presented. The PLC

used for implementation is part of a automated plant located at the Laboratory of

Control and Automation (LCA) of the Federal University of Rio de Janeiro.

vi

Sumário

Lista de Figuras ix

Lista de Tabelas xi

1 Introdução 1

2 Sistemas a eventos discretos 6

2.1 Linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 De�nições e notações . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.2 Operações com linguagens . . . . . . . . . . . . . . . . . . . . 9

2.2 Autômatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Fundamentos básicos . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.2 Operações com autômatos . . . . . . . . . . . . . . . . . . . . 14

2.2.3 Autômatos com observação parcial de eventos . . . . . . . . . 20

2.3 Redes de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.1 Fundamentos básicos . . . . . . . . . . . . . . . . . . . . . . . 24

2.3.2 Classes especiais de redes de Petri . . . . . . . . . . . . . . . . 29

2.4 Diagnóstico de falhas em SEDs . . . . . . . . . . . . . . . . . . . . . 30

3 Controlador lógico programável 35

3.1 Diagrama Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1.1 Contatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.1.2 Bobinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.3 Contatos comparadores . . . . . . . . . . . . . . . . . . . . . . 41

3.1.4 Bloco move . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.1.5 Temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.1.6 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Planta mecatrônica montadora de cubos 44

4.1 Características gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.1 Módulo 1 - Seletor de peças . . . . . . . . . . . . . . . . . . . 46

4.1.2 Módulo 2 - Transporte de peças e prensa cubo . . . . . . . . . 47

vii

5 Diagnosticador com condições para sistema modular 50

5.1 Veri�cador e diagnosticador síncrono com condições para sistemas

modulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.1.1 Veri�cação da diagnosticabilidade síncrona com condições . . . 55

5.1.2 Construção da rede de Petri diagnosticadora síncrona com

condições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2 Modelagem do sistema em autômatos . . . . . . . . . . . . . . . . . . 71

5.3 Implementação do diagnosticador para a planta montadora de cubos . 88

5.3.1 Conversão da rede de Petri diagnosticadora com condições em

diagrama ladder . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6 Conclusão 99

Referências Bibliográ�cas 101

A Informações complementares 103

viii

Lista de Figuras

2.1 Diagrama de transição de estados do autômato G do exemplo 2.4. . . . . . 13

2.2 Autômato G do exemplo 2.5. . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3 Resultados das operações acessível, coacessível e Trim do exemplo 2.5. 17

2.4 Autômatos G1 e G2 apresentados no exemplo 2.6. . . . . . . . . . . . 19

2.5 Composição produto e composição paralela do exemplo 2.6. . . . . . . 20

2.6 Autômato G e observador Obs(G) do exemplo 2.7. . . . . . . . . . . . 23

2.7 Estrutura da rede de Petri do exemplo 2.8. . . . . . . . . . . . . . . . . . 25

2.8 Exemplo de marcação de uma rede de Petri do exemplo 2.9. . . . . . . . . 25

2.9 Dinâmica da rede de Petri abordada no exemplo 2.10. . . . . . . . . . 27

2.10 Exemplo de uma rede de Petri estendida do exemplo exemplo 2.11. . . . . 28

2.11 Autômato G e rede de Petri máquina de estados N correspondente. . 30

2.12 Autômato Al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.13 Autômato G do exemplo 2.11. . . . . . . . . . . . . . . . . . . . . . . . 34

2.14 Autômato Gdiag do exemplo 2.11. . . . . . . . . . . . . . . . . . . . . . 34

3.1 Relação entre o CLP e os componentes de um sistema de automação. . . . 36

3.2 Esquema de funcionamento do ciclo de varredura. . . . . . . . . . . . . . 37

3.3 Funcionamento do diagrama ladder. . . . . . . . . . . . . . . . . . . . . 38

3.4 Contatos NA, NF, P e N. . . . . . . . . . . . . . . . . . . . . . . . . 38

3.5 Detecção da borda de subida e de descida de um sinal S. . . . . . . . . . 39

3.6 Bobina comum, tipo SET e tipo RESET. . . . . . . . . . . . . . . . . 40

3.7 Exemplo de contato comparador. . . . . . . . . . . . . . . . . . . . . . . 41

3.8 Bloco move. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.9 Bloco temporizador TON. . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.10 Bloco contador HSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.1 Planta mecatrônica Cube Assembly. . . . . . . . . . . . . . . . . . . . . 45

4.2 Divisão da planta mecatrônica em módulos. . . . . . . . . . . . . . . . . 46

4.3 Painel de controle da planta mecatrônica. . . . . . . . . . . . . . . . . . 47

4.4 Módulo 2 composto por braço giratório e prensa cubo. . . . . . . . . . . . 48

5.1 Autômatos G1 e G2 do exemplo 5.1. . . . . . . . . . . . . . . . . . . . 60

ix

5.2 Autômato GF do exemplo 5.1. . . . . . . . . . . . . . . . . . . . . . . . 60

5.3 Autômato GN do exemplo 5.1. . . . . . . . . . . . . . . . . . . . . . . . 61

5.4 Autômatos GN1 e GN2 do exemplo 5.1. . . . . . . . . . . . . . . . . . 61

5.5 Autômatos GN,R1 e GN,R2 do exemplo 5.1. . . . . . . . . . . . . . . . 61

5.6 Autômato GRNa

do exemplo 5.1. . . . . . . . . . . . . . . . . . . . . . . 62

5.7 Autômato GRNd

do exemplo 5.1. . . . . . . . . . . . . . . . . . . . . . . 62

5.8 Autômato veri�cador GMV do exemplo 5.1. . . . . . . . . . . . . . . . . . 63

5.9 Redes de Petri máquina de estados N1 e N2 do exemplo 5.2. . . . . . 70

5.10 Redes de Petri binárias No1 e No2 do exemplo 5.2. . . . . . . . . . . . 70

5.11 Redes de Petri observadoras de estados NSO1 e NSO2 do exemplo 5.2. 71

5.12 Redes de Petri observadoras de estados com condições NCSO1

e NCSO2

do exemplo 5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.13 Rede de Petri diagnosticadora sincronizada com condições NCD do exemplo

5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.14 Rede de Petri interpretada para controle do módulo 1 do sistema. . . . . . 75

5.15 Rede de Petri interpretada para controle do módulo 2 do sistema. . . . . . 78

5.16 Autômatos G1 e G2 do sistema prático. . . . . . . . . . . . . . . . . . 84

5.17 Autômato G do sistema prático. . . . . . . . . . . . . . . . . . . . . . . 85

5.18 Rede de Petri diagnosticadora com condições NCD da planta. . . . . . . . . 90

5.19 Diagrama ladder - Módulo de inicialização. . . . . . . . . . . . . . . . . 92

5.20 Diagrama ladder - Módulo dos eventos. . . . . . . . . . . . . . . . . . . 93

5.21 Diagrama ladder - Módulo das condições - Parte 1. . . . . . . . . . . . . 95

5.22 Diagrama ladder - Módulo das condições - Parte 2. . . . . . . . . . . . . 96

5.23 Diagrama ladder - Módulo das condições - Parte 3. . . . . . . . . . . . . 97

5.24 Diagrama ladder - Módulo da dinâmica. . . . . . . . . . . . . . . . . . . 97

5.25 Diagrama ladder - Módulo de alarme. . . . . . . . . . . . . . . . . . . . 98

A.1 Autômato veri�cador GV,C da planta. . . . . . . . . . . . . . . . . . . . 104

x

Lista de Tabelas

5.1 Ações realizadas nos lugares da RPIC do sistema prático implemen-

tado na planta mecatrônica. . . . . . . . . . . . . . . . . . . . . . . . 75

5.2 Transições presentes na RPIC referente ao módulo 1. . . . . . . . . . 76

5.3 Transições presentes na RPIC referente ao módulo 2. . . . . . . . . . 79

5.4 Lista de eventos do sistema prático implementado na planta meca-

trônica e seus signi�cados. . . . . . . . . . . . . . . . . . . . . . . . . 83

xi

Capítulo 1

Introdução

Os processos industriais, em sua grande maioria, são automatizados. Isto ocorre

como uma forma de maximizar a e�ciência e segurança da produção e reduzir custos

e mão de obra. Com isso, o uso da automação industrial é cada vez mais relevante e,

consequentemente, faz-se necessário o desenvolvimento de ferramentas matemáticas

que possam ser usadas para a modelagem, controle e diagnóstico de falhas de sis-

temas automatizados. Usualmente, esse tipo de sistema pode ser considerado como

um sistema a eventos discretos (SED).

SEDs são sistemas dinâmicos, cuja evolução é regida pela ocorrência de eventos, e

que possui conjunto de estados discreto [1, 2]. Eventos estão diretamente ligados a

mudanças de estado no sistema e são modelados como uma ocorrência instantânea.

Exemplos de eventos são o apertar de um botão, uma alteração no estado de um

sensor, o término de uma determinada tarefa.

Devido à natureza discreta e ocorrências instantâneas de eventos em SEDs, mo-

delos matemáticos baseados em equações diferenciais ou equações a diferenças não

são adequados para representação desses sistemas. Portanto, torna-se necessário o

estudo e desenvolvimento de formalismos matemáticos como alternativas capazes de

representá-los adequadamente.

1

Na literatura, há diversas maneiras de se representar SEDs. Entre as formas

mais utilizadas, duas foram aplicadas neste trabalho: autômatos e redes de Petri

[1�4]. Autômatos consistem em grafos orientados, cujos vértices representam os

estados do sistema e os arcos representam as transições, que estão associadas à

ocorrência de eventos. As redes de Petri são grafos bipartidos ponderados, em que

os estados possuem uma natureza distribuída no grafo, resultando em uma vantagem

na representação de sistemas com grande número de estados.

Sistemas utilizados para automação industrial estão sujeitos a falhas, as quais

podem comprometer a produção e a integridade da planta industrial, diminuindo a

con�abilidade e desempenho do sistema que foi projetado. Com isso, faz-se necessá-

rio o estudo de mecanismos para detecção de falhas, chamados de diagnosticadores

de falha. Na literatura, há diversos trabalhos na área de diagnose de falhas em

sistemas a eventos discretos, modelados tanto por autômatos quanto por redes de

Petri [5�10].

Em SAMPATH et al. [5, 6] é abordado uma metodologia para criação de um diag-

nosticador de falhas, para sistemas modelados por autômatos �nitos, o qual permite

a detecção e isolamento online de falhas e a veri�cação o�ine da diagnosticabili-

dade da linguagem gerada pelo sistema. Porém, o diagnosticador apresentado em

SAMPATH et al. [5, 6] tem, no pior caso, um crescimento exponencial do espaço

de estados do autômato diagnosticador a partir da cardinalidade do autômato que

modela o sistema, sendo, devido a isso, sua implementação direta não recomendada,

ou até mesmo inviável.

O método apresentando por QIU e KUMAR [7] também permite o diagnóstico

online de falhas. Com esse método, o armazenamento e construção completa do

autômato diagnosticador é evitado, sendo armazenado apenas o estado atual do

diagnosticador e, após a ocorrência de um evento observável, o próximo estado

pode ser obtido. Dessa forma, o esforço computacional torna-se polinomial. Porém,

2

o autômato diagnosticador abordado neste método é não determinístico, além de

não serem abordados os detalhes para implementação do diagnosticador em um

computador, principal objetivo desse trabalho.

A técnica de diagnose implementada neste trabalho tem como base o diagnostica-

dor apresentado em CABRAL et al. [11, 12]. Em [11] é apresentado um método de

diagnóstico de falhas online para SEDs modelados por autômatos �nitos, baseado

em redes de Petri. O diagnóstico consiste em acompanhar o comportamento normal

do sistema, ou seja, sem falhas, até que seja observada uma sequência de eventos

na planta que não pode ser observada no comportamento normal. Por ser utilizado

apenas o comportamento normal do sistema, o diagnosticador possui um cresci-

mento polinomial em relação ao autômato que modela o comportamento normal do

sistema.

Contudo, o diagnosticador apresentado em CABRAL et al. [11], é construído a

partir do modelo global da planta, que em geral é obtido a partir da composição

de módulos mais simples que formam o sistema. Tal composição, em casos em que

os módulos possuem poucos eventos em comum, pode resultar em um crescimento

exponencial do modelo global em relação ao número de módulos presentes na planta.

Isso ocorre principalmente quando há muito comportamento paralelo entre os mó-

dulos, já que ao fazer a composição, o comportamento de cada módulo deve ser

considerado em todas as ordens possíveis. Essa situação foi contornada em CA-

BRAL et al. [12], ao utilizar uma metodologia que visa reduzir ainda mais o esforço

computacional do diagnosticador. O método proposto em CABRAL et al. [12] tem

como base a metodologia apresentada em CABRAL et al. [11], porém é aplicado de

forma a usar a característica modular do sistema. Para tanto, o diagnosticador é

construído a partir dos modelos em autômato dos módulos da planta e uma sincro-

nização online das estimativas de estado de cada módulo a partir da ocorrência de

eventos observáveis é realizada. Assim, a construção do modelo da planta completo,

que possui crescimento exponencial em relação ao número de módulos do sistema, é

3

evitado para a obtenção do diagnosticador, o que faz com que a complexidade com-

putacional do diagnosticador síncrono seja polinomial em relação ao número total

de estados dos componentes que formam a planta.

Como auxílio na implementação deste trabalho, o projeto de graduação apresen-

tado em LUCIO [13] foi estudado. Assim como no presente trabalho, em LUCIO

[13] foi abordado a implementação de um diagnosticador síncrono modular baseado

em CABRAL et al. [12]. Contudo, neste trabalho é proposto adicionar novas con-

dições ao diagnosticador, as quais em alguns casos são necessárias para que ocorra

o diagnóstico. As novas condições propostas consistem em reduzir o conjunto de

sequências normais considerado pelo diagnosticador, com o objetivo de eliminar

sequências que não são possíveis de serem realizadas pela planta. Ao reduzir essas

sequências, diminui-se o risco de existir uma sequência de falha que se confunde com

uma sequência normal a ponto de não ser possível discernir se a falha ocorreu. As-

sim, com a adição dessas condições, é possível tornar sincronamente diagnosticáveis

determinados sistemas, possibilitando a utilização da diagnose síncrona que não usa

o modelo global do sistema para o diagnóstico.

A etapa inicial desse trabalho foi a construção do controle da planta mecatrônica

Cube Assembly localizada no Laboratório de Controle e Automação (LCA) da Uni-

versidade Federal do Rio de Janeiro, a qual consiste no sistema em que será realizado

a diagnose de falhas posteriormente. Como auxílio na con�guração e utilização da

planta mecatrônica foi utilizado o tutorial apresentado em JUNIOR [14]. Em se-

guida, foi feita a modelagem através de autômatos �nitos do comportamento normal

(sem falha) e com falha dos módulos do sistema. E na sequência foi construído o

diagnosticador sincronizado em redes de Petri a partir da modelagem em autômatos

�nitos, baseado nas metodologias apresentadas em CABRAL et al. [11, 12]. Por �m,

a implementação do diagnosticador na planta mecatrônica foi feita com a utilização

do diagrama ladder, de�nido na norma internacional IEC 61131-3 [15] como uma

das linguagens utilizadas para programação em um controlador lógico programável

4

(CLP). Para a conversão do diagnosticador em rede de Petri em diagrama ladder

foi utilizado o método abordado em MOREIRA e BASILIO [16] e adaptado em

CABRAL et al. [11].

Este trabalho está estruturado e dividido em 6 capítulos. No capítulo 2 são apre-

sentados alguns conceitos sobre SED necessários para o entendimento do conteúdo

nos capítulos seguintes, assim como o conceito de diagnosticabilidade. Fundamentos

teóricos sobre o controlador lógico programável são mostrados no capítulo 3. No ca-

pítulo 4 são apresentadas as características e funcionamento da planta mecatrônica

utilizada na implementação do trabalho. O capítulo 5 consiste em apresentar o pro-

cesso de construção da rede de Petri diagnosticadora proposta e sua implementação.

E, por �m, no capítulo 6 é apresentada a conclusão do trabalho.

5

Capítulo 2

Sistemas a eventos discretos

Esse capítulo contém a fundamentação teórica necessária para melhor compre-

ensão deste trabalho. Para tanto, o estudo está estruturado de forma a abordar o

conceito e de�nição de sistemas a eventos discretos, assim como os formalismos ma-

temáticos utilizados para descrever esses sistemas, os quais caracterizam os sistemas

estudados ao longo desse trabalho.

Um sistema trata-se de um conjunto de elementos interligados, os quais intera-

gem entre si de forma a realizar funções que não seriam possíveis com os elementos

separadamente. Os sistemas abordados neste trabalho são chamados de sistemas a

eventos discretos (SEDs), sendo de�nidos como sistemas dinâmicos, os quais contém

espaço de estados discreto, e cuja evolução de um estado para outro é resultado da

ocorrência de eventos. Um evento pode ser identi�cado por uma ação especí�ca,

como o apertar de um botão, por uma ocorrência espontânea, como um sistema

deixar de funcionar por uma razão desconhecida, ou pelo resultado de diversas con-

dições satisfeitas, como o nível de um �uido em um tanque exceder um dado valor

[1]. Dessa forma, com base no conhecimento sobre o estado inicial do sistema, e

como a ocorrência de eventos subsequentes causam alterações nos estados, é possí-

vel analisar todo o funcionamento de um SED.

6

Para �car mais claro, um exemplo simples de um sistema a eventos discretos é

o funcionamento de um portão automático de uma garagem. O estado inicial do

sistema é dado pelo portão fechado. No momento em que o motorista pressiona o

botão do controle remoto, esse evento resulta em uma evolução do estado inicial do

sistema para o estado que é caracterizado pelo portão abrindo. O sistema permanece

nesse estado até que o sensor �m de curso seja ativado. Após a ocorrência desse

evento, o sistema evolui para um terceiro estado, que consiste no portão aberto. Um

novo evento de aperto do botão faz com que o sistema alcance o estado caracterizado

pelo portão fechando. Por �m, após ativação de um outro sensor �m de curso

indicando a �nalização desse processo, o sistema evolui para o estado inicial e o

processo pode recomeçar.

O conjunto de eventos de um SED é considerado o alfabeto do sistema. Com

isso, sequências de eventos formam palavras, e um conjunto de palavras forma uma

linguagem. A linguagem de um sistema é o conjunto de todas as sequências de

eventos geradas por um sistema. Dessa forma, as linguagens determinam a evolução

de estados a partir da ocorrência de eventos em um SED, possuindo função seme-

lhante às das equações diferenciais para descrever sistemas dinâmicos. Embora ter

o conhecimento do estado inicial e da linguagem do sistema sejam su�cientes para

modelar um SED, a representação desse tipo de sistema não é trivial a partir das

simbologias matemáticas tradicionais e, devido a isso, é necessário de�nir formalis-

mos matemáticos capazes de representá-los com exatidão. Para isso, usualmente são

utilizadas estruturas em grafos como representação, dois exemplos de formalismos

baseados em grafos utilizados nesse trabalho são autômatos e redes de Petri, os quais

são explicados a seguir.

2.1 Linguagem

A linguagem de um sistema é de�nida pelo conjunto de sequências de eventos de

comprimento �nito geradas pelo comportamento do sistema. A partir disso, e com o

7

conhecimento do estado inicial do sistema, é possível descrever seu comportamento

futuro.

Diferentemente das linguagens de idiomas normalmente conhecidas, as linguagens

de SED possuem características especí�cas e um conjunto de operações, cujo enten-

dimento é necessário para compreensão desse trabalho e, portanto, são apresentados

a seguir.

2.1.1 De�nições e notações

O conjunto de eventos de um SED, ou seja, seu alfabeto, é representado por

Σ. O símbolo s representa uma sequência de eventos, ou palavra, e ||s|| denota

o comprimento da sequência s, ou seja, a quantidade de eventos que formam a

sequência s. Uma sequência vazia, ou palavra de comprimento nulo, é representada

por ε.

A de�nição formal de uma linguagem é apresentada na de�nição 2.1 [1].

De�nição 2.1 (Linguagem): Uma linguagem de�nida em um conjunto de even-

tos Σ é um conjunto de sequências de comprimento �nito, formadas por eventos

pertencentes a Σ.

O fecho de Kleene de Σ, denotado por Σ?, é o conjunto formado por todas as

sequências de comprimento �nito formadas pelos eventos de Σ, mais a sequência

vazia ε. Toda linguagem de�nida sobre Σ está contida ou é igual a Σ?.

Há também os conceitos de pre�xo, su�xo e subsequência de uma sequência. Dada

uma sequência s = tuv, em que t, u e v ∈ Σ?, temos que t é o pre�xo de s, u é uma

subsequência de s e v é o su�xo de s. O su�xo de s após seu pre�xo t é denotado

por s/t, o qual neste exemplo é a sequência uv. Se t não é um pre�xo de s, então

s/t não é de�nido.

8

2.1.2 Operações com linguagens

Como linguagens tratam-de de conjuntos, as operações usuais de conjuntos como

união, interseção, diferença e complemento, são válidas para linguagens. Além

dessas, há outras operações aplicadas a linguagens importantes de serem de�nidas.

De�nição 2.2 (Concatenação): Sejam La, Lb ⊆ Σ?, a operação de concatenação é

dada por:

LaLb = {s ∈ Σ? : (s = sasb) e (sa ∈ La) e (sb ∈ Lb)}.

A operação de concatenação gera um conjunto que contém a concatenação de

cada sequência do conjunto La com cada sequência do conjunto Lb.

De�nição 2.3 (Fecho de pre�xo): Seja L ⊆ Σ? a operação fecho de pre�xo L é

dada por:

L = {s ∈ Σ? : (∃t ∈ Σ?) [st ∈ L]}.

O fecho de pre�xo de uma linguagem contém todos os pre�xos de todas as

sequências contidas nessa linguagem, portanto L ⊆ L. Se L = L, ou seja, se todos

os pre�xos de todas as sequências dessa linguagem são também elementos dessa

linguagem, a linguagem é chamada de pre�xo-fechada.

De�nição 2.4 (Fecho de Kleene): Seja L ⊆ Σ?, a operação fecho de Kleene L? é

dada por:

L∗ = {ε} ∪ L ∪ LL ∪ LLL...

A operação fecho de Kleene resulta na concatenação de um número �nito de

elementos de L. Trata-se de uma operação idempotente, ou seja, (L?)? = L?

9

De�nição 2.5 (Projeção): Sejam Σs e Σl tais que Σs ⊂ Σl, a projeção Ps : Σ?l → Σ?

s

é de�nida recursivamente da seguinte maneira:

Ps(ε) = ε,

Ps(σ) =

σ, se σ ∈ Σs

ε, se σ ∈ Σl\Σs,

Ps(sσ) = P (s)P (σ) ∀s ∈ Σ?l , σ ∈ Σl,

sendo \ o operador que representa a diferença entre conjuntos.

O exemplo apresentado a seguir ilustra a operação de projeção sobre uma

sequência.

Exemplo 2.1 Considere Σl = {a, b, g} e Σs = {a, b}, e a sequência

s = abggabbg ∈ Σ?l . A projeção Ps : Σ?

l → Σ?s da sequência s é dada por

Ps(s) = ababb.

De�nição 2.6 (Projeção inversa): A projeção inversa P−1s : Σ?

s → 2Σ?l , em que 2Σ?

l

é o chamado conjunto potência de Σ?l , o qual trata-se de um conjunto formado por

todos os subconjuntos de Σ?l , é de�nida da seguinte forma:

P−1s (t) = {s ∈ Σ?

l : P (s) = t}.

Para uma sequência s ∈ Σ?s, sua operação de projeção inversa P−1

s (s),

Ps : Σ?l → Σ?

s, gera um conjunto cujos elementos são todas as sequências formadas

a partir do conjunto Σl, e cuja projeção Ps resulta na própria sequência s, como é

ilustrado no exemplo a seguir.

Exemplo 2.2 Considere Σl = {a, b, g} e Σs = {a, b}. A projeção inversa P−1s :

Σ?s → 2Σ?

l da sequência s = aba é dada por P−1s (s) = {g}?{a}{g}?{b}{g}?{a}{g}?.

10

Note que a projeção inversa de uma sequência não retorna uma sequência, mas

um conjunto de sequências.

Analogamente à aplicação em sequências, as operações de projeção e projeção

inversa podem ser estendidas para linguagens. Para isso, as operações devem ser

aplicadas em todas as sequências de uma linguagem, como é de�nido a seguir.

De�nição 2.7 (Projeção de linguagens): Considere a linguagem L ⊆ Σ?l . A projeção

é de�nida da seguinte forma:

Ps(L) = {t ∈ Σ?s : (∃s ∈ L)[Ps(s) = t]}.

De�nição 2.8 (Projeção inversa de linguagens): Considere a linguagem Ls ⊆ Σ?s.

A projeção inversa P−1s (Ls) é de�nida da seguinte forma:

P−1s (Ls) = {s ∈ Σ∗l : (∃t ∈ Ls)[Ps(s) = t]}.

Uma importante aplicação da operação de projeção é a representação da lingua-

gem observada de um SED por um observador que somente tem acesso a eventos

registrados por sensores ou eventos associados a comandos de um controlador. Di-

ante disso, através da operação de projeção, os eventos não observados são apagados

das sequências da linguagem gerada pelo sistema, resultando na linguagem obser-

vada.

No exemplo a seguir são demonstradas as operações de projeção e projeção

inversa aplicadas a linguagens.

Exemplo 2.3 Sejam Σl = {a, b, c}, Σs = {b, c} e L = {a, b, c, abba, aabacca}. Efe-

tuando a operação de projeção Ps : Σ?l → Σ?

s sobre a linguagem L, devemos remover

todos os eventos pertencentes ao conjunto Σl\Σs de todas as sequências da lingua-

gem L. Neste exemplo temos que Σl\Σs = {a}, com isso, Ps(L) = {b, c, bb, bcc}.

11

Além disso, temos que P−1s ({bcc}) = {a}?b{a}?c{a}?c{a}?.

2.2 Autômatos

Um autômato é um formalismo matemático capaz de representar linguagens atra-

vés de regras bem de�nidas.

2.2.1 Fundamentos básicos

De�nição 2.9 (Autômato): Um autômato determinístico, denotado por G, é uma

sêxtupla:

G = (Q,Σ, f,Γ, q0, Qm),

em que Q é o conjunto de estados, Σ é o conjunto de eventos �nitos associados a

G, f : Q × Σ→ Q é a função de transição de estados, Γ : Q→ 2Σ é a função de

eventos ativos, q0 ∈ Q é o estado inicial, Qm ⊆ Q é o conjunto de estados marcados.

A função de eventos ativos Γ será omitida da representação dos autômatos a menos

que seja necessária.

Autômatos podem ser representados por diagrama de transição de estados, o qual

trata-se de um grafo orientado capaz de reproduzir todas as características de�nidas

na sêxtupla. Os grafos são formados por vértices, representados por círculos, e

por arestas, representadas por arcos. Os vértices tratam-se dos estados do sistema,

enquanto as arestas são as transições entre esses estados, as quais são rotuladas

por eventos de Σ, a �m de reproduzir qual evento corresponde a cada transição de

estados de f .

Somente o estado inicial é indicado por uma seta sem estado de origem, e os

estados marcados são simbolizados por dois círculos concêntricos. No exemplo 2.4

é mostrado uma representação de um autômato e seu diagrama de transição de

estados.

12

Exemplo 2.4 Seja G um autômato com conjunto de estados Q = {0, 1, 2} e conjunto

de eventos Σ = {a, b, c}. Sua função de transição de estados é de�nida por: f(0, a) =

2; f(0, b) = 1; f(0, c) = 0; f(1, b) = f(1, c) = 1; f(2, a) = 2; f(2, b) = 1 e, portanto,

sua função de eventos ativos é de�nida por Γ(0) = {a, b, c}; Γ(1) = {b, c}; Γ(2) =

{a, b}. O estado inicial de G é q0 = 0 e o conjunto de estados marcados é dado

por Qm = {1, 2}. A partir disso, é possível representar o diagrama de transição de

estados do autômato G, o qual é mostrado na �gura 2.1.

0 1

2

c

bb, c

b

a

a

Figura 2.1: Diagrama de transição de estados do autômato G do exemplo

2.4.

Outras duas de�nições importantes são os conceitos de linguagem gerada e

linguagem marcada por um autômato, descritas a seguir.

De�nição 2.10 (Linguagem gerada e marcada): A linguagem gerada por um autô-

mato G é de�nida da seguinte forma:

L(G) = {s ∈ Σ? : f(q0, s) e definida}.

E a linguagem marcada é de�nida como:

Lm(G) = {s ∈ L(G) : f(q0, s) ∈ Xm}.

13

Vale ressaltar que nas de�nições 2.10 e 2.11 foi considerado que a função de

transição f é estendida, ou seja, f : Q × Σ? → Q. E, para qualquer G que possua

um conjunto de estados Q não vazio, ε ∈ L(G).

De forma geral, a linguagem gerada por uma autômato G, L(G), compõe todas

as sequências que podem ser realizadas no diagrama de transição de estados a partir

do estado inicial. Um caminho corresponde a uma sequência de eventos composta

pela concatenação de eventos que servem de rótulo das transições que constituem

seu caminho. Logo, uma vez que um caminho só é possível se todos os seus pre�xos

forem também possíveis, é interessante observar que a linguagem gerada L(G) é

pre�xo-fechada por de�nição.

A linguagem marcada Lm(G) é um subconjunto de L(G), o qual contém todas

as sequências s tais que f(q0, s) ∈ Qm, ou seja, todas as sequências que levam a

um estado marcado no diagrama de transição de estados de G. Nesse caso, não

necessariamente Lm(G) é pre�xo-fechada, uma vez que nem todos os estados de Q

precisam ser marcados.

2.2.2 Operações com autômatos

Assim como as linguagens, há diversas operações que podem ser aplicadas em

autômatos. Para que seja possível realizar as análises necessárias ao longo desse tra-

balho, é preciso de�nir um conjunto de operações capazes de modi�car o diagrama

de transição de estados. Nesta seção, são apresentadas essas de�nições subdividi-

das em operações unárias, aplicadas em apenas um autômato, e as operações de

composição, que envolvem dois ou mais autômatos.

Operações unárias

De�nição 2.11 (Parte acessível): Seja G = (Q,Σ, f, q0, Qm). A parte acessível

Ac(G), é de�nida como:

14

Ac(G) = (Qac,Σ, fac, q0, Qac,m), em que

Qac = {q ∈ Q : (∃ s ∈ Σ?)[f(q0, s) = q]},

Qac,m = Qm ∩Qac,

fac : Qac × Σ? → Qac.

A operação de tomar a parte acessível de um autômato apaga os estados que não

são alcançáveis a partir do estado inicial.

É importante ressaltar que apesar de a função de transição �car restrita a um

domínio menor de estados Qac, as linguagens gerada e marcada não são alteradas

com essa operação.

De�nição 2.12 (Parte coacessível): Seja G = (Q,Σ, f, q0, Qm). A parte coacessível

CoAc(G) é de�nida como:

CoAc(G) = (Qcoac,Σ, fcoac, q0,coac, Qm), em que

Qcoac = {q ∈ Q : (∃ s ∈ Σ?)[f(q, s) ∈ Qm]},

q0,coac =

q0, se q0 ∈ Qcoac

não de�nido caso contrário ,

fcoac : Qcoac × Σ? → Qcoac.

Um estado q ∈ Q é dito ser coacessível se existir uma sequência de eventos a

partir de q que alcance um estado marcado pertencente a Qm. Com a operação de

tomar a parte coacessível, todos os estados que não são coacessíveis, e suas transições

correspondentes, são removidos.

15

É importante notar que ao ser realizada a operação CoAc(G), a função de

transição �ca restrita a um domínio menor de estados Qcoac. E quanto às linguagens

gerada e marcada, temos que L(CoAc(G)) ⊆ L(G), e Lm(CoAc(G)) = Lm(G).

De�nição 2.13 (Operação Trim): Seja G = (Q,Σ, f, q0, Xm). A operação Trim(G)

é de�nida como:

Trim(G) := CoAc[Ac(G)] = Ac[CoAc(G)].

A operação Trim é obtida aplicando-se a operação acessível e posteriormente a

operação coacessível, ou vice-versa. Um autômato pode ser de�nido como Trim,

caso tenha todos os estados simultaneamente acessíveis e coacessíveis.

No exemplo a seguir, são mostrados os resultados das operações acessível,

coacessível e Trim em um autômato G.

Exemplo 2.5 Considere o autômato G apresentado na �gura 2.2. Ao realizar a

operação acessível, o estado 4 e a transição (4, b, 3) são removidos, uma vez que este

estado é impossível de ser alcançado a partir do estado inicial. Ao remover, então, o

estado 4 e a transição (4, b, 3) obtemos o autômato acessível apresentado na �gura

2.3(a). Note que o único estado marcado do autômato G é o estado 3, e este só pode

ser alcançado a partir dos estados 1 e 4. Portanto, para obter a parte coacessível do

autômatoG é necessário remover os outros estados e suas correspondentes transições,

obtendo-se o autômato CoAc(G) apresentado na �gura 2.3(b). Por �m, ao obter a

parte acessível da coacessível do autômato G, ou vice-versa, obtém-se o autômato

Trim(G) apresentado na �gura 2.3(c).

16

3

a1 2

5

4

a

cb

b

Figura 2.2: Autômato G do exemplo 2.5.

3

a1 2

5a

cb

(a) Ac(G).

3

1

4

b

b

(b)CoAc(G).

3

1

b

(c)Trim(G).

Figura 2.3: Resultados das operações acessível, coacessível e Trim do exemplo 2.5.

Operações de composição

Diversas análises em um sistema a eventos discretos modelado por autômatos

�nitos somente são possíveis a partir de operações que permitam combinar dois

ou mais autômatos. Além disso, para que modelos mais complexos de sistemas

reais possam ser construídos a partir de modelos de componentes mais simples do

sistema, é necessário o entendimento das operações de composição apresentadas a

seguir.

De�nição 2.14 (Composição produto): Sejam G1 = (Q1,Σ1, f1,Γ1, q01, Qm1) e

17

G2 = (Q2,Σ2, f2,Γ2, q02, Qm2). A composição produto G1 ×G2 é de�nida por:

G1 ×G2 = Ac(Q1 ×Q2,Σ1 ∪ Σ2, f1×2,Γ1×2, (q01, q02), Qm1 ×Qm2), em que

f1×2((q1, q2), e) =

(f1(q1, e), f2(q2, e)), se e ∈ Γ1(q1) ∩ Γ2(q2)

inde�nido, caso contrário,

Γ1×2(q1, q2) = Γ1(q1) ∩ Γ2(q2).

A composição produto é também chamada de composição completamente sín-

crona, já que um evento só ocorre no autômato resultante G1×G2 se ocorrer simul-

taneamente em G1 e G2.

A representação de estados do autômato composto G1 × G2 é feita através

de pares ordenados, em que o primeiro componente consiste no estado de G1

e o segundo componente consiste no estado de G2. Devido à sincronização da

evolução dos autômatos, a linguagem gerada e linguagem marcada por G1×G2 são

L(G1×G2) = L(G1)∩L(G2) e Lm(G1×G2) = Lm(G1)∩Lm(G2), respectivamente.

De�nição 2.15 (Composição paralela): Sejam G1 = (Q1,Σ1, f1,Γ1, q01, Qm1) e

G2 = (Q2,Σ2, f2,Γ2, q02, Qm2). A composição paralela G1 ‖ G2 é de�nida por:

G1 ‖ G2 = Ac(Q1 ×Q2,Σ1 ∪ Σ2, f1‖2,Γ1‖2, (q01, q02), Qm,1 ×Qm,2), em que

f((q1, q2), e) =

(f1(q1, e), f2(q2, e)), se e ∈ Γ1(q1) ∩ Γ2(q2)

(f1(q1, e), q2), se e ∈ Γ1(q1)\Σ2

(q1, f2(q2, e)), se e ∈ Γ2(q2)\Σ1

inde�nido, caso contrário,

Γ1‖2(q1, q2) = [Γ1(q1) ∩ Γ2(q2)] ∪ [Γ1(q1)\Σ2] ∪ [Γ2(q2)\Σ1].

18

A composição paralela é também chamada de composição síncrona. Diferente-

mente da composição produto, na composição paralela eventos exclusivos de um

autômato, ou seja, que pertencem ao conjunto (Σ1\Σ2) ∪ (Σ2\Σ1) podem ocorrer

sem serem sincronizados. Já os eventos comuns, aqueles que pertencem ao conjunto

Σ1 ∩ Σ2, somente ocorrem de maneira sincronizada.

É importante ressaltar que, caso o conjunto de eventos de dois autômatos G1 e

G2 sejam iguais, ou seja Σ1 = Σ2, será retornado o mesmo resultado com as duas

composições, produto e paralela, uma vez que todas as transições só poderão ocorrer

de forma sincronizada.

Para de�nir corretamente as linguagens gerada e marcada pelo autômato resul-

tante G1 ‖ G2 é necessário de�nir as seguintes projeções:

Pi : (Σ1 ∪ Σ2)? → Σ?i para i = 1, 2.

Com base nessas projeções, as linguagens gerada e marcada por G = G1 ‖ G2 são

de�nidas como segue.

L(G1 ‖ G2) = P−11 [L(G1)] ∩ P−1

2 [L(G2)],

Lm(G1 ‖ G2) = P−11 [Lm(G1)] ∩ P−1

2 [Lm(G2)].

Exemplo 2.6 Considere os autômatos G1 e G2 apresentados na �gura 2.4. As

composições produto e paralela dos autômatos G1 e G2 são mostradas na �gura 2.5.

0 1a

b

(a) G1.

0 1a

c

2

a

c

(b) G2.

Figura 2.4: Autômatos G1 e G2 apresentados no exemplo 2.6.

19

0,0 1,1a

(a) G1 ×G2.

0,0 1,1a

1,2c

bb, c

(b) G1 ‖ G2

Figura 2.5: Composição produto e composição paralela do exemplo 2.6.

A composição paralela pode ser usada para a construção de modelos de sistemas

complexos a partir de subsistemas mais simples. Ou seja, em vez da construção do

modelo completo de um sistema modelado por autômatos �nitos, é possível cons-

truir os modelos dos componentes mais simples que formam o sistema e, a partir

da composição paralela dos componentes modelados, obter o modelo completo do

sistema.

2.2.3 Autômatos com observação parcial de eventos

Nas seções abordadas anteriormente, foi considerado que é possível ter o conheci-

mento da ocorrência de todos os eventos do sistema, os quais são chamados eventos

observáveis.

Porém, em um sistema real, nem sempre a ocorrência de todos os eventos são

possíveis de serem percebidas. Eventos que não tenham nenhum sensor associado,

ou eventos de falha que não causam alteração imediata na leitura de sensores, são

exemplos de eventos que podem ocorrer e passar despercebidos pelo monitoramento

do funcionamento sistema. Tais eventos são chamado eventos não observáveis.

Portanto, podemos particionar o conjunto de eventos Σ = Σo∪Σuo, em que Σo

denota o conjunto de eventos observáveis, e Σuo denota o conjunto de eventos não

observáveis. Com base nisso, é possível de�nir a linguagem observada de um autô-

mato G como sendo Po(L(G)), em que Po : Σ? → Σ?o.

Além disso, com o conjunto de eventos particionado em eventos observáveis e não

observáveis, surge a necessidade de uma estrutura ou mecanismo que identi�que os

possíveis estados alcançados de um sistema após a observação de uma sequência

20

�nita de eventos. Essa estrutura é chamada de observador de G e denotada por

Obs(G).

Para entendimento da construção de Obs(G) é necessário abordar antes o conceito

de alcance não observável, denotado por UR(q), de�nido como segue.

De�nição 2.16 (Alcance não observável): O alcance não observável de um estado

q ∈ Q, representado por UR(q), é de�nido como:

UR(q) = {y ∈ Q : (∃t ∈ Σ?uo)(f(q, t) = y)}

Pode-se de�nir também o alcance não observável para um conjunto de estados

B ∈ 2Q como:

UR(B) =⋃q∈B

UR(q).

De um modo geral, o alcance não observável de um estado x representa o conjunto

de estados que podem ser alcançados a partir de q através da ocorrência de sequências

de eventos não observáveis.

A partir das de�nições de linguagem observada e alcance não observável, é

possível apresentar a de�nição formal do observador de estados do autômato G,

Obs(G), como segue.

De�nição 2.17 (Observador de estados): O observador de estados de um autômato

G, representado por Obs(G), em relação a um conjunto de eventos observáveis Σo

é dado por:

Obs(G) = (Qobs,Σo, fobs,Γobs, q0,obs, Qm,obs),

em que Qobs ⊆ 2Q e Qm,obs = {B ∈ Qobs : B ∩Qm 6= ∅}. fobs,Γobs e q0,obs podem ser

obtidos a partir do algoritmo 1 apresentando a seguir.

21

Algortimo 1 Considere o autômato G = (Q,Σ, f,Γ, q0, Qm), em que Σ = Σo∪Σuo.

O observador de G, Obs(G) = (Qobs,Σo, fobs,Γobs, q0,obs, Qm,obs) pode ser construído

ao seguir os seguintes passos:

• Passo 1: De�na q0,obs = UR(q0). Faça Qobs = q0,obs e Qobs = Qobs.

• Passo 2: Qobs = Qobs e Qobs = ∅.

• Passo 3: Para cada B ∈ Qobs,

� Passo 3.1: Γobs(B) = (⋃

q∈B Γ(q)) ∩ Σo.

� Passo 3.2: Para cada e ∈ Γobs(B),

fobs(B, e) = UR({q ∈ Q : (∃y ∈ B)[q = f(y, e)]}).

� Passo 3.3: Qobs ← Qobs ∪ fobs(B, e).

• Passo 4: Qobs ← Qobs ∪ Qobs.

• Passo 5: Repita os passos 2 a 4 até que toda a parte acessível de Obs(G) tenha

sido construída.

• Passo 6: Qm,obs = {B ∈ Qobs : B ∩Qm 6= ∅}.

É importante ressaltar que as linguagens gerada e marcada pelo autômato Obs(G)

são dadas por: L(Obs(G)) = Po[L(G)] e Lm(Obs(G)) = Po[Lm(G)], sendo Po : Σ? →

Σ?o.

Para melhor entendimento, o exemplo 2.7 apresenta o observador Obs(G) de um

autômato G com eventos não observáveis. Note que cada estado do observador

Obs(G) trata-de de um conjunto de estimativas do estado de G após a observação

de uma sequência de eventos.

22

Exemplo 2.7 Considere o autômato G representado na �gura 2.6(a). O conjunto

de eventos de G é Σ = {a, b, σuo}, em que Σo = {a, b} e Σuo = {σuo}. E o conjunto

de estados de G é Q = {0, 1, 2, 3}. O observador de G, Obs(G), é obtido a partir do

algoritmo 1, e está apresentando na �gura 2.6(b). Considere que o sistema tenha

executado a sequência de eventos t = {aσuob}, a sequência observada será Po(t) = ab,

para Po : Σ? → Σ?o. Após a sequência de eventos Po(t), pode-se observar que em

Obs(G) é alcançado o estado {2, 3}, o qual corresponde à estimativa de estado de G

após a observação dessa sequência.

0 1

3

a

b

a

2b

σuo

(a) Autômato G.

0 1,3 2,3

3

a b

a, b

b

(b) Obs(G)

Figura 2.6: Autômato G e observador Obs(G) do exemplo 2.7.

Na seção seguinte são apresentadas as características e os fundamentos de redes

de Petri, outro formalismo capaz de representar SEDs.

2.3 Redes de Petri

Assim como os autômatos, a rede de Petri é um formalismo matemático capaz

de representar linguagens através de regras bem de�nidas. Largamente utilizada

para representar SEDs, as redes de Petri possuem uma característica importante

que as diferem dos autômatos, o estado na rede de Petri tem uma representação

distribuída ao longo de sua estrutura, facilitando assim a representação de sistemas

mais complexos.

23

2.3.1 Fundamentos básicos

A de�nição formal da estrutura de uma rede de Petri é mostrada a seguir.

De�nição 2.18 (Estrutura de uma rede de Petri): Um grafo ou estrutura de uma

rede de Petri é um grafo bipartido ponderado (P, T, Pre, Post), em que P consiste

no conjunto �nito de lugares, T é o conjunto �nito de transições, Pre : (P×T )→ N

trata-se da função de arcos ordinários que conectam lugares a transições, e Post :

(T × P ) → N consiste na função de arcos ordinários que conectam transições a

lugares.

Em uma rede de Petri, os lugares são representados por círculos, as transições são

representadas por barras, e as ligações entre lugares e transições são representados

por arcos orientados.

As funções Pre e Post de�nem os elementos conectados e o sentido dos arcos,

assim como informam o peso dos arcos orientados. O peso unitário é considerado

padrão, por isso é geralmente omitido do diagrama. Para qualquer peso maior

que o unitário, sua representação é necessária, e esta é feita escrevendo-se o valor

do peso ao lado dos arcos. As redes de Petri que possuem apenas arcos com peso

unitário são chamadas redes de Petri ordinárias, caso possua pelo menos um arco

com peso maior que o unitário são chamadas de redes de Petri generalizadas. No

exemplo a seguir é ilustrado essa característica.

Exemplo 2.8 Considere a estrutura de uma rede de Petri apresentada na �gura

2.7. Nessa estrutura temos que P = {p1, p2}, T = {t1, t2}, Pre(p1, t2) = 1,

Post(t1, p1) = 1 e Post(t2, p2) = 2. Dessa forma, |P | = 2 e |T | = 2, sendo que |.|

denota a cardinalidade dos conjuntos. Note também que a rede de Petri abordada

trata-se de uma rede de Petri generalizada.

24

t1 p1 t2 p2

2

Figura 2.7: Estrutura da rede de Petri do exemplo 2.8.

De�nição 2.19 (Marcação de uma rede de Petri): Uma rede de Petri é uma quín-

tupla N = (P, T, Pre, Post, x), em que (P, T, Pre, Post) forma a estrutura de uma

rede de Petri, e x consiste no vetor de marcação de estados, sendo:

x = [x(p1) x(p2) ... x(pn)]T ∈ Nn.

A função de marcação de uma rede de Petri consiste no número de �chas

atribuídas a um lugar pi e é dada por x(pi), em que x : P → N. Ao expandir as

marcações para todos os lugares da estrutura obtém-se o vetor de marcação de

estados x = [x(p1) x(p2) ... x(pn)]T , formado pelo número de �chas em cada lugar

pi, para i = 1, 2, ..., n. O vetor de marcação de estados x representa o estado da

rede de Petri, como pode ser visto no exemplo a seguir.

Exemplo 2.9 Considere a estrutura da rede de Petri apresentada na �gura 2.7.

Suponha que o vetor de marcação de estados inicial de uma rede de Petri seja x0 =

[3 1]T , obtido através da função de marcação inicial. Como resultado, temos a rede

de Petri apresentada na �gura 2.8.

t1 p1 t2 p2

2

Figura 2.8: Exemplo de marcação da rede de Petri do exemplo 2.9.

25

A marcação de uma rede de Petri é fundamental para entender a relação entre

as �chas nos lugares e a regra de habilitação de cada transição. As �chas são

representadas gra�camente como pontos pretos dentro dos lugares.

De�nição 2.20 (Habilitação de transição de uma rede de Petri): Uma transição

tj ∈ T de uma rede de Petri é considerada habilitada se:

x(pi) ≥ Pre(pi, tj) para todo pi ∈ I(tj),

sendo I(tj) o conjunto de todos os lugares de entrada da transição tj.

De modo geral, para que uma transição tj esteja habilitada em uma rede de Petri,

é necessário que o número de �chas de todos os lugares de entrada dessa transição

seja igual ou superior ao peso dos arcos que ligam esses lugares à transição tj.

De�nição 2.21 (Dinâmica de uma rede de Petri): Ao disparar uma transição ha-

bilitada tj a partir da marcação atual x, a marcação resultante x′ = f(x, tj) é dada

por:

x′(pi) = x(pi)− Pre(pi, tj) + Post(tj, pi), i = 1, 2, ..., n.

A dinâmica de uma rede de Petri determina como evolui a marcação dos lugares

ao ocorrer o disparo de transições. Uma transição tj somente é disparada caso esteja

habilitada, e ao disparar, a rede de Petri alcança um vetor de marcação x para um

novo vetor de marcação x′.

Vale ressaltar que o novo vetor de marcação x′ alcançado depende explicitamente

dos lugares de entrada e de saída de uma transição e dos pesos dos arcos que conec-

tam esses lugares à transição. Dessa forma, com o disparo de tj, se pi é um lugar de

entrada de tj, ele perde uma quantidade de �chas igual ao peso do arco que conecta

pi a tj, e caso pi seja um lugar de saída de tj, ele ganha uma quantidade de �chas

igual ao peso do arco que conecta tj a pi. Repare que nada impede que pi seja

26

tanto um lugar de entrada quanto um lugar de saída de tj, nesse caso são retiradas

Pre(pi, tj) �chas de pi e colocadas Post(tj, pi) �chas em pi simultaneamente.

No exemplo a seguir é ilustrado a dinâmica de uma rede de Petri.

Exemplo 2.10 Considere a rede de Petri representada na �gura 2.9(a). A

transição t2 está habilitada para a marcação inicial x0 = [3 1]T . Se a transição

t2 disparar, como o arco que conecta p1 a t2 possui peso 1, o lugar p1 perde uma

�cha, e como o arco que conecta t2 a p2 tem peso 2, o lugar p2 recebe duas �chas.

Como resultado, obtém-se a rede de Petri apresentada na �gura 2.9(b), com nova

marcação x = [2 3]T .

t1 p1 t2 p2

2

(a) Rede de Petri do exemplo 2.10antes do disparo de t2.

t1 p1 t2 p2

2

(b) Rede de Petri do exemplo2.10 após o disparo de t2.

Figura 2.9: Dinâmica da rede de Petri abordada no exemplo 2.10.

Quando uma rede de Petri possui, além das características apresentadas nas

de�nições 2.18 a 2.21, o recurso de inibição de transições, é chamada de rede de

Petri estendida, explicada a seguir.

De�nição 2.22 (Rede de Petri estendida): Uma rede de Petri estendida é uma

sêxtupla (P, T, Pre, Post, x0, In) onde (P, T, Pre, Post, x0) consiste na rede de Petri

marcada vista na de�nição 2.19, e a função In : P × T → N representa seus arcos

inibidores.

O arco inibidor tem a função de inibir a transição tj quando o número de �chas do

lugar de entrada pi dessa transição é igual ou maior que o peso do arco inibidor que

conecta o lugar pi à transição tj. Ou seja, uma transição que tem um arco inibidor

27

em sua entrada, somente estará habilitada se o número de �chas do lugar de entrada

for menor que o peso do arco inibidor.

É importante ressaltar que no disparo da transição com arco inibidor, o lugar

de entrada que está conectado à transição através do arco inibidor não perde suas

�chas, mantendo assim a mesma marcação que tinha antes do disparo da transição.

Um arco inibidor tem como notação um pequeno círculo na ponta ligada à

transição. E para melhor entender seu funcionamento, segue o exemplo 2.11.

Exemplo 2.11 Considere a rede de Petri mostrada na �gura 2.10. Note que apesar

de p1 ter �chas su�cientes para habilitar a transição t1, esta não está habilitada uma

vez que p2 tem uma quantidade de �chas igual ao peso do arco inibidor que conecta

p2 a t1. No entanto, t2 está habilitada, já que, além de p3 ter �chas su�cientes para

habilitar t2, p2 possui apenas 1 �cha e está conectada à transição t2 por um arco

inibidor com peso igual a 2, maior que a quantidade de �chas do lugar p2.

p1t1

p3

2

2

p2

t2

p4

p5

Figura 2.10: Exemplo de rede de uma Petri estendida do exemplo exemplo

2.11.

Além das características apresentadas nessa seção, é possível obter classes especiais

de redes de Petri com algumas modi�cações ou características especí�cas. Tais

classes são apresentadas na seção a seguir.

28

2.3.2 Classes especiais de redes de Petri

Para a compreensão do estudo do diagnosticador síncrono, proposto nesse

trabalho, é necessário o entendimento de duas classes especiais de redes de Petri,

apresentadas nessa seção.

De�nição 2.23 (Rede de Petri máquina de estados): Uma rede de Petri pode ser

de�nida como uma rede de Petri máquina de estados quando, em sua estrutura, cada

transição possuir apenas um lugar de entrada e um lugar de saída.

Sua característica importante é de que uma rede de Petri máquina de estados

pode ser usada para representar um autômato de forma direta. Para se obter uma

rede de Petri a partir de um autômato, somente é preciso substituir os estados do

autômato por lugares, os arcos do autômato por transições rotuladas pelos mesmos

eventos, mantendo os pesos dos arcos iguais a um, e adicionar uma �cha ao lugar

referente ao estado inicial do autômato. Dessa forma, a evolução das �chas da rede

de Petri corresponderá a evolução dos estados do autômato em questão.

Para melhor entendimento sobre a equivalência de uma rede Petri máquina de

estados e um autômato, segue o exemplo 2.12.

Exemplo 2.12 Considere o autômato G com diagrama de estados representado na

�gura 2.11(a). A rede de Petri máquina de estados N correspondente ao autômato

G é mostrada na �gura 2.11(b). Para representar um autômato como uma rede

de Petri máquina de estados, os estados do autômato devem corresponder aos

lugares da rede de Petri máquina de estados, enquanto os arcos devem corres-

ponder às transições, preservando a equivalência entre os lugares de entrada e saída.

29

0 1a

a2b

3

b

a

(a) Autômato G.

0 1 2a b a

a

3

b

(b) Rede de Petri máquina de esta-dos N .

Figura 2.11: Autômato G e rede de Petri máquina de estados N correspondente.

De�nição 2.24 (Rede de Petri binária): Uma rede de Petri binária pode ser de�-

nida como uma rede de Petri com uma regra diferente para a marcação dos lugares

alcançados após o disparo de uma transição tj, dada por:

x(pi) =

0, se x(pi)− Pre(pi, tj) + Post(tj, pi) = 0

1, se x(pi)− Pre(pi, tj) + Post(tj, pi) > 0,

para i = 1, ..., n.

Em uma rede de Petri binária, o número máximo de �chas de cada lugar é igual

a um, ou seja, se um lugar já possui uma �cha e, por causa do disparo de uma

transição, esse lugar receber outra �cha, este lugar obrigatoriamente continua com

apenas uma �cha. Dessa forma, cada lugar de uma rede de Petri é forçado a possuir

um número de �chas igual a um ou zero.

2.4 Diagnóstico de falhas em SEDs

Conforme visto no capítulo 1, sistemas reais modelados por SEDs estão sujeitos à

ocorrência de falhas e, portanto, são necessários mecanismos capazes de monitorar

e diagnosticar a ocorrência de falhas constantemente.

Nesta seção são apresentados os fundamentos teóricos necessários para a veri�ca-

ção da diagnosticabilidade de um SED, assim como suas características e algoritmos

30

para a construção de um diagnosticador. Para isso, é necessário apresentar a

de�nição de comportamento normal de um SED como segue.

De�nição 2.25 (Comportamento normal): Seja o autômato G e o conjunto de

eventos de falhas Σf , em que Σf ⊆ Σuo. Seja também L(G) = L a linguagem gerada

pelo autômato G, e LN a linguagem pre�xo fechada composta por todas as sequências

de L que não contém nenhum evento do conjunto Σf . O comportamento normal do

autômato G é dado pelo autômato GN que gera a linguagem LN .

A partir da de�nição do comportamento normal de um autômato é possível

de�nir o conceito de diagnosticabilidade.

De�nição 2.26 (Diagnosticabilidade): Seja L a linguagem pre�xo-fechada gerada

pelo autômato G, e LN ⊂ L a linguagem gerada pelo autômato GN . Seja também

Σ = Σo ∪Σuo, e considere a operação de projeção Po : Σ? → Σ?o. Com isso, L é dita

ser diagnosticável com relação à projeção Po e ao conjunto de eventos de falha Σf ,

em que Σf ⊆ Σuo, se:

(∃n ∈ N)(∀s ∈ L\LN)(∀st ∈ L\LN)

(||t|| ≥ n)⇒ (∀ω ∈ P−1o (Po(st)) ∩ L, ω ∈ L\LN),

onde ||.|| denota o comprimento de uma sequência.

De modo geral, uma linguagem L é dita diagnosticável com relação a Po e Σf , se e

somente se para todas as sequências st de comprimento arbitrariamente longo após

a ocorrência de uma falha pertencente ao conjunto Σf , não existirem sequências

sN ∈ LN , de tal forma que Po(sN) = Po(st). Assim, se L é diagnosticável, então

sempre é possível identi�car unicamente o tipo de falha que ocorreu no sistema após

um número �nito de observações de eventos após a falha.

31

A veri�cação da diagnosticabilidade do sistema com relação a todos os tipos de

falha, ou seja, veri�car se é sempre possível identi�car se uma falha ocorreu após uma

sequência �nita de eventos observáveis, é o primeiro passo para implementação de um

diagnosticador. Após realizada a veri�cação, pode-se prosseguir para a construção

do diagnosticador.

Para construção do autômato diagnosticador, é preciso de�nir o autômato rotu-

lador Al, cujo diagrama de transição de estados é apresentado na �gura 2.12. O

autômato Al trata-se de um autômato com dois estados, em que o estado inicial é

rotulado por N , e a ocorrência de um evento de falha σf leva o autômato ao segundo

estado, rotulado por F , o qual possui um autolaço rotulado também pelo evento de

falha σf . A partir disso, a de�nição do diagnosticador é apresentada a seguir.

Nσf

F σf

Figura 2.12: Autômato Al.

De�nição 2.27 (Diagnosticador): O diagnosticador de falhas de G, Diag(G), é um

autômato de�nido como:

Diag(G) = Obs(G||Al).

O objetivo do autômato G ‖ Al é obter um autômato Gl com os estados rotulados

por N ou por F . Dessa forma, os estados de G alcançados por uma sequência normal

são rotulados por N , enquanto os estados alcançados por uma sequência de falha são

rotulados por F . Ao realizar Obs(G ‖ Al) obtemos então um autômato em que cada

estado é o alcance observável dos estados rotulados, o qual consiste no autômato

diagnosticador.

32

O autômato diagnosticador pode ter três tipos de estados: estado normal, estado

incerto e estado certo. O estado que possuir apenas rótulo N é chamado estado

normal, ao possuir os dois rótulosN e F chama-se estado incerto, e ao possuir apenas

rótulo F é chamado estado certo. Analisando o autômato diagnosticador, é possível

que existam ciclos de estados incertos, chamados ciclos incertos. Caso os estados de

um ciclo incerto possam ser associados a um ciclo de estados normais ou de estados

certos, tal ciclo é chamado ciclo indeterminado. Com isso, a condição necessária

e su�ciente para que um sistema seja diagnosticável é que seu diagnosticador não

tenha ciclos de estados indeterminados.

O exemplo a seguir é apresentado a �m de melhor compreender os conceitos

abordados.

Exemplo 2.13 Considere o autômato apresentado na �gura 2.13. O evento σf

é o evento de falha a ser diagnosticado. O conjunto de eventos é dado por

Σ = {a, b, c, d, σf}, em que Σo = {a, b, d}, Σuo = {c, σf} e Σf = {σf}. O autô-

mato diagnosticador de G, Gdiag, é apresentado na �gura 2.14. Analisando-se Gdiag

é possível perceber que, caso o primeiro evento observado seja b, o autômato entra

em um caminho em que é impossível ocorrer a falha. Caso o primeiro evento obser-

vado seja a, o diagnosticador se encontra no estado incerto {2N ; 3F}, e a ocorrência

de um novo evento b permite a con�rmação da ocorrência da falha, levando o diag-

nosticador para o estado {6F}, o qual é um estado certo. O autolaço rotulado pelo

evento c no estado {2N ; 3F} do diagnosticador é um ciclo indeterminado, pois ao

analisar esses estados no autômato G, percebe-se que a sequência de eventos a{c}∗

está associada ao autolaço no estado 2, que é um estado normal, e ao autolaço no

estado 3, que é um estado de falha. A existência desse ciclo indeterminado faz com

que o sistema seja não diagnosticável em relação a Po : Σ→ Σo e Σf = {σf}.

33

1 2a

3σf

c

c

4 5c 6ad

bb

Figura 2.13: Autômato G do exemplo 2.11.

1N

2N,3F 6F

6Nb a

d

4N,5N

dba

c

Figura 2.14: Autômato Gdiag do exemplo 2.11.

No próximo capítulo são abordados os fundamentos sobre o controlador lógico

programável (CLP), dispositivo eletrônico utilizado para implementação do controle

da planta mecatrônica e do diagnosticador, assim como a linguagem utilizada na

implementação.

34

Capítulo 3

Controlador lógico programável

O controlador lógico programável (CLP) é um dispositivo eletrônico muito utili-

zado em ambiente industrial com o objetivo de otimizar processos. Seu funciona-

mento consiste no uso de memória programável a qual armazena instruções respon-

sáveis pela execução de diversas aplicações e controles.

O CLP relaciona-se com uma planta de automação através de sensores e atuadores.

Sensores possuem a função de converter uma característica física de um elemento

do sistema em um sinal elétrico, o qual é enviado ao CLP. Enquanto atuadores

possuem a função de converter um sinal elétrico, recebido através de um CLP, em

uma condição ou ação física no sistema.

Um sensor, por exemplo, pode ser um detector de presença, o qual fornece o sinal

lógico 1 caso um objeto esteja posicionado na frente do sensor, e fornece sinal lógico

0 caso contrário. De forma similar, um atuador pode ser exempli�cado por uma

esteira, em que ao receber um sinal lógico de entrada 1, liga e se move, e ao receber

sinal 0, para.

Dessa maneira, um CLP é programado de forma a interagir com o sistema re-

cebendo valores provenientes de sensores, e gerando as saída para os atuadores,

fazendo com que a planta execute as funções da maneira desejada. Enquanto isso,

a interação entre o usuário e o CLP é feita através de mudanças nos parâmetros de

35

controle. Na �gura 3.1 é melhor ilustrado como o CLP se relaciona com o sistema

e com o usuário.

Usuario

Sensores

CLP

Atuadores

Logica de controleSaıdasEntradas

Estados Parametros

Figura 3.1: Relação entre o CLP e os componentes de um sistema de auto-

mação.

O CLP pode operar em dois modos distintos, chamados modo de programação

e modo de execução. Quando o CLP está no modo de programação é permitido

que o usuário con�gure, insira ou modi�que o código de programação. Já no modo

de execução o CLP executa o código programado pelo usuário. A execução ocorre

através de ciclos de varredura que são divididos em três etapas e executada na

seguinte ordem: (i) realização das leituras das entradas; (ii) execução do código de

controle programado; (iii) atualização das variáveis de saída. Ao �nal da etapa (iii),

um ciclo de varredura do CLP é encerrado, e um novo ciclo de varredura é iniciado,

seguindo exatamente as mesmas etapas, como ilustrado na �gura 3.2.

O CLP pode ser programado em uma das cinco diferentes linguagens de progra-

mação de�nidas pela norma internacional IEC61131-3 [15]. Essas linguagens são:

(i) diagrama bloco de funções; (ii) diagrama ladder; (iii) sequenciamento grá�co de

funções (em inglês, sequential function chart - SFC); (iv) lista de instruções e (v)

texto estruturado. Dentre as cinco linguagens, neste trabalho será abordado apenas

a linguagem ladder que foi utilizada na implementação da parte prática do trabalho.

36

Leitura das variaveisde entrada

Execucao do codigo

de controle

Atualizacao das variaveis

de saıda

Figura 3.2: Esquema de funcionamento do ciclo de varredura.

Essa escolha foi feita devido a sua grande difusão na indústria, estando disponível

em quase todos os CLPs.

3.1 Diagrama Ladder

O diagrama ladder é uma das linguagens mais usadas na indústria para progra-

mação de CLPs, sendo compatível com a maioria dos controladores lógicos progra-

máveis. Seu funcionamento, como ilustrado na �gura 3.3, é dado pela existência

de uma corrente �ctícia que percorre todo o diagrama, e sua leitura é feita da es-

querda para a direita e de cima para baixo. Dessa forma, os contatos a esquerda

do diagrama funcionam como condições energizar ou não as bobinas posicionadas a

direita.

No diagrama ladder, as funções lógicas são representadas através de diagramas

grá�cos, compostos por diferentes componentes, como contatos, bobinas, blocos

contadores, comparadores, operadores matemáticos, temporizadores, entre outros.

Alguns são apresentados a seguir.

37

Corrente fictıcia

Figura 3.3: Funcionamento do diagrama ladder.

3.1.1 Contatos

Os contatos são componentes largamente usados em diagramas ladder, os quais

representam o conjunto de condições para a energização de uma linha do diagrama

ladder, através da permissão de passagem de uma corrente lógica �ctícia. Um con-

tato está sempre associado a uma variável de controle do CLP, e seu comportamento

depende do tipo do contato, e da variável a qual ele está associado.

A seguir são explicados quatro tipos de contatos: NA, NF, P e N. E suas respec-

tivas representações grá�cas são apresentadas na �gura 3.4.

(a) Contato NA. (b) Contato NF.

P(c) Contato tipo P.

N(d) Contato tipo N.

Figura 3.4: Contatos NA, NF, P e N.

• Contato NA (Normalmente Aberto): Não conduz corrente �ctícia inicialmente,

até que a variável a ele associada possua valor lógico 1. A partir disso, o

contato é dito fechado e energiza o elemento à sua direita. No momento em

que a variável associada retorna ao valor lógico 0, o contato volta a abrir,

impedindo a passagem de corrente.

• Contato NF (Normalmente Fechado): Conduz corrente quando a variável as-

sociada ao contato possui valor lógico 0 e interrompe a corrente quando a

38

variável possui nível lógico 1.

• Contato tipo P: Inicialmente não conduz corrente elétrica, até que reconheça

a borda de subida da variável a ele associada. A borda de subida de um

sinal trata-se do exato instante em que o sinal passa do nível lógico 0 para o

nível lógico 1, e é representado por uma seta para cima. Ao veri�car a borda

de subida da variável, o contato conduz corrente apenas durante um ciclo de

varredura. Esse fenômeno pode ser melhor observado a partir da �gura 3.5.

• Contato tipo N: Seu funcionamento é semelhante ao contato tipo P. Inicial-

mente não conduz corrente, até que reconheça a borda de descida da variável

a ele associada. A borda de descida de um sinal trata-se do exato instante em

que o sinal passa do nível lógico 1 para o nível lógico 0, e é representado por

uma seta para baixo, como ilustrado na �gura 3.5. Ao veri�car a borda de

descida da variável, o contato conduz corrente durante um ciclo de varredura.

Sinal S

↑ S

↓ S

Figura 3.5: Detecção da borda de subida e de descida de um sinal S.

Como exemplo prático, considere um sistema em que um determinado processo

somente inicia na condição que um sensor S1 retorne valor lógico 1, e um sensor S2

retorne valor lógico 0. Para representação das condições de início desse processo,

é necessário a utilização de um contato NA associado a variável que representa S1,

concatenado em série a um contato NF associado a variável S2. Considere agora

a condição de início de um processo sendo o exato momento de chegada, ou o

exato momento de saída, de um objeto frente a um sensor de presença. O contato

necessário para representar essa nova condição é agora o contato tipo P associado ao

39

sensor de presença, para o caso onde o interesse é o momento de chegada do objeto,

e o contato tipo N, para o caso onde o interesse é o momento de saída do objeto.

3.1.2 Bobinas

As bobinas são também elementos essenciais em um diagrama ladder. Uma bo-

bina, assim como um contato, sempre é associada a uma variável de memória ou

variável interna de um CLP. Alterações no valor lógico da variável associada à bo-

bina acontece no momento em que a bobina é energizada. Uma bobina é dita estar

energizada quando a lógica que a antecede possui valor lógico 1. Há três tipos de

bobinas: bobinas comuns, bobinas tipo SET e bobinas tipo RESET. Suas respec-

tivas de�nições são feitas a seguir, e representações grá�cas apresentadas na �gura

3.6.

(a) Bobina comum.

S(b) Bobina tipo SET.

R(c) Bobina tipo RE-SET.

Figura 3.6: Bobina comum, tipo SET e tipo RESET.

• Bobinas comuns: A bobina comum atualiza o valor da sua variável associada a

cada ciclo de varredura. Caso a lógica que antecede a bobina seja verdadeira,

a bobina estará energizada e sua variável associada recebe o valor lógico 1.

Caso a lógica que antecede a bobina seja falsa, a bobina estará desenergizada

e sua variável associada recebe o valor lógico 0.

• Bobinas tipo SET: A bobina tipo SET atualiza o valor da sua variável associada

somente no ciclo de varredura em que é energizada. Neste momento, o valor

de sua variável associada é atualizado para 1, mantendo este valor mesmo se

a bobina for desenergizada.

• Bobinas tipo RESET: A bobina tipo RESET tem um comportamento seme-

lhante à bobina tipo SET, atualizando o valor da sua variável associada so-

mente no ciclo em que é energizada. Porém, sua variável associada recebe

40

valor lógico 0 ao ser energizada, mantendo seu valor mesmo se a bobina for

desenergizada.

É importante notar que uma variável associada à uma bobina tipo SET, com

valor lógico 1, somente poderá ter seu valor alterado para 0 se uma outra bobina

tipo RESET associada à mesma variável for energizada. De forma análoga, uma

variável associada à uma bobina tipo RESET, com valor lógico 0, somente poderá

ter seu valor alterado para 1 ao energizar uma outra bobina tipo SET associada à

mesma variável.

3.1.3 Contatos comparadores

Os contatos comparadores conduzem corrente apenas enquanto sua informação

lógica for verdadeira, com isso, nos ciclos de varredura em que sua informação lógica

se torna falsa, a condução é interrompida. Os tipos de comparações que esse contato

é capaz de realizar são: se os valores são iguais (==), diferentes (<>), menor que

(<), maior que (>), menor ou igual que (<=), maior ou igual que (>=). Na

�gura 3.7 é apresentado um exemplo de contato comparador em que a condução

de corrente ocorre somente quando as variáveis a e b possuírem o mesmo valor. As

interrogações estão substituindo o tipo de variável que a e b representam, podendo

ser, por exemplo, um tipo de variável booleana ou um número inteiro.

a==???b

Figura 3.7: Exemplo de contato comparador.

3.1.4 Bloco move

A funcionalidade do bloco move é alterar o valor de uma variável. Ele é formado

por duas entradas, uma chamada EN e outra IN, e uma saída chamada OUT1. No

41

ciclo de varredura em que a entrada EN é energizada, o valor contido na entrada

IN é enviado à variável associada à saída OUT1. Sua representação é mostrada na

�gura 3.8.

Figura 3.8: Bloco move.

3.1.5 Temporizadores

Há diversos tipos temporizadores no diagrama ladder. Neste trabalho foi utilizado

apenas o Timer On Delay (TON), o qual funciona como um contato temporizado.

O bloco TON possui duas entradas, nomeadas IN e PT, e duas saídas, nomeadas Q

e ET. No momento em que a entrada IN é energizada, o bloco começa a contagem de

tempo, a qual é armazenada na variável ET e comparada ao valor predeterminado

na entrada PT. A partir do ciclo de varredura em que o valor em ET se igualar

ao valor de PT, o bloco TON passa a conduzir, habilitando a saída Q enquanto a

entrada IN estiver energizada. Se a entrada IN for desenergizada antes dos valores

em ET e PT se igualarem, o tempo armazenado em ET é zerado.

Um exemplo de utilização do bloco TON é apresentado na �gura 3.9, em que o

valor T#1S_500MS contido na entrada PT corresponde a 1500ms.

Figura 3.9: Bloco temporizador TON.

42

3.1.6 Contadores

Há diversos tipos de contadores no diagrama ladder. Neste trabalho foi utilizado

apenas o bloco High Speed Counter (HSC), que consiste em um contador de alta

velocidade.

O contador HSC é utilizado para contabilizar bordas de subida que ocorrem em

intervalos menores que o tempo de varredura do CLP. Na �gura 3.10 está repre-

sentada a simbologia do bloco HSC. Para que o contador funcione corretamente, a

entrada EN deve estar energizada. Para que o contador esteja habilitado, a entrada

SW_GATE deve ter valor lógico igual a 1. No momento em que o valor lógico de

SW_GATE passa de 0 para 1, o bloco HSC é resetado e desabilitado. A contagem

dos pulsos é realizada através da entrada SET_DO sempre que veri�cado a passa-

gem do nível lógico de 0 para 1. O resultado da contagem é armazenado na variável

COUNTVAL.

Figura 3.10: Bloco contador HSC.

No próximo capítulo são apresentadas as características da planta mecatrônica

que possui o CLP utilizado na parte prática desse trabalho, bem como o controle

implementado, e a falha a ser diagnosticada.

43

Capítulo 4

Planta mecatrônica montadora de

cubos

Neste capítulo, é apresentada a planta mecatrônica Cube Assembly utilizada

na implementação desse trabalho. A planta, fabricada pela empresa Christiani-

Technical Institute for Vocational Training, está localizada no laboratório de Con-

trole e Automação (LCA-COPPE/UFRJ) no Centro de Tecnologia, Ilha do Fundão.

E trata-se de uma versão reduzida e acadêmica de uma planta industrial real de

seleção, transporte e armazenagem de peças.

A planta é utilizada sobretudo para o treinamento prático dos alunos que cursam

disciplinas relacionadas ao estudo da automação industrial dos cursos de engenharia

da Universidade Federal do Rio de Janeiro. Na �gura 4.1 é apresentada uma imagem

da planta mecatrônica.

Este capítulo está dividido em três seções. Na primeira são apresentadas as ca-

racterísticas principais da planta e sua divisão em módulos. A segunda apresenta o

controle da planta. Na terceira seção é descrita a falha considerada na planta para

o sistema de diagnose de falhas.

44

Figura 4.1: Planta mecatrônica Cube Assembly.

4.1 Características gerais

A planta é composta por diversos recursos bastantes aplicados na indústria, como

a seleção de objetos, utilização de diferentes tipos de sensores e atuadores, transporte

de objetos através de esteiras rolantes, manipulação de peças a partir de um braço

robótico e sistema de armazenagem através de um elevador. As peças transportadas

e manipuladas pela planta consistem em metades de cubos que podem ser unidas

em um cubo inteiro utilizando-se a prensa cubo.

A planta pode ser dividida em três módulos, os quais interagem entre si simulando

o processo industrial. O primeiro módulo da planta é responsável pela seleção de

peças, constituído por empilhadeira e esteira. O segundo é encarregado pelo trans-

porte das peças entre os três módulos realizado por um braço robótico, além de

possuir um prensa cubo responsável por unir duas peças de diferentes materiais. E

o terceiro é responsável pelo armazenamento das peças, constituído por um elevador

e sistema de estocagem. Sua divisão em módulos pode ser vista na �gura 4.2. Para

este trabalho foram utilizados os módulos 1 e 2, que são explicados a seguir.

45

Modulo 3 Modulo 2 Modulo 1

Figura 4.2: Divisão da planta mecatrônica em módulos.

4.1.1 Módulo 1 - Seletor de peças

O módulo 1, responsável pela seleção das peças, é composto por um painel de

controle com botões e chaves, dois estoques de peças chamados MAG1 (que arma-

zena peças metálicas) e MAG2 (que armazena peças plásticas), uma esteira rolante,

quatro sensores ao longo da esteira capazes de identi�car os tipos e posições das

peças, e um sensor de presença no �nal da esteira.

O painel de controle, ilustrado na �gura 4.3, é utilizado de forma que a planta

mecatrônica possa ter algumas de suas funções controladas diretamente pelo usuário.

É composto por quatro botões luminosos, nas cores verde, vermelho, azul e branco,

nomeados por start, stop, quit e S6, respectivamente, além de possuir seis chaves e

um botão de emergência. As chaves, nomeadas por S1, S2, S3, S4 e S5, possuem

duas posições, enquanto a chave nomeada por Hand/Auto possui três posições, sendo

a posição central neutra. O botão de emergência, ao ser pressionado, aciona um relé

de segurança que bloqueia toda a alimentação elétrica dos motores e atuadores,

parando o sistema de forma imediata.

Cada estoque de peça, MAG1 e MAG2, possui um atuador pneumático composto

por um pistão horizontal em sua base, capaz de empurrar a peça para a esteira.

Em cada estoque contém também um sensor de posição que permite identi�car se o

46

Figura 4.3: Painel de controle da planta mecatrônica.

pistão está recuado ou estendido, além de um sensor �m de curso capaz de identi�car

caso o estoque de peças possua uma peça ou menos.

A esteira rolante é capaz de se movimentar tanto para frente (em direção ao mó-

dulo 2) quanto para trás (em direção oposta ao módulo 2), através de um motor

DC. Os sensores presentes ao longo da esteira são: sensor capacitivo, sensor de pro-

fundidade, sensor óptico e sensor indutivo. O sensor capacitivo permite identi�car

a passagem de uma peça, o sensor de profundidade determina se a peça está com a

concavidade para cima ou para baixo, o sensor óptico é responsável por identi�car a

cor da peça, e o sensor indutivo permite identi�car se a peça é metálica. Para este

trabalho, estes sensores posicionados ao longo da esteira não foram considerados,

sendo considerado apenas o sensor de presença posicionado no �m da esteira. O

sensor de presença trata-se de um sensor óptico por barreira, que permite identi�car

o momento em que a peça chega na extremidade �nal da esteira.

4.1.2 Módulo 2 - Transporte de peças e prensa cubo

O módulo 2 é encarregado pelo transporte das peças entre os módulos contidos na

planta mecatrônica, além de ser o responsável por unir duas metades de cubos. Para

isso, ele é composto por um braço giratório e uma prensa pneumática, mostrados

na �gura 4.4.

47

Braco robotico

Prensa

Figura 4.4: Módulo 2 composto por braço giratório e prensa cubo.

A prensa é responsável por acoplar uma peça plástica a uma peça metálica, for-

mando um cubo. É composta por um atuador pneumático horizontal, um atuador

pneumático vertical e uma porta, a qual é aberta ou fechada por um terceiro atuador

pneumático. O atuador pneumático horizontal, de ação impulsiva, tem a função de

puxar as peças para dentro da prensa ou empurrar o cubo já formado para fora da

prensa, além de possuir um sensor que permite identi�car se está estendido ou recu-

ado. O atuador pneumático vertical, também de ação impulsiva, tem como função

prensar as duas metades do cubo caso esteja estendido, ao prensar as duas peças

o mesmo é então recuado, permitindo a liberação do cubo. A porta vertical possui

um atuador pneumático de ação impulsiva que tem como função abrir ou fechar a

porta. A porta deve estar aberta quando o atuador horizontal puxar ou empurrar

peças, e deve estar fechada sempre que o cubo estiver sendo prensado. O atuador

pneumático da porta possui também um sensor que permite identi�car se a porta

está aberta ou fechada.

Para que duas peças sejam prensadas formando um cubo é necessário seguir uma

ordem de operações. Primeiramente, deve-se abrir a porta vertical, recuar o atuador

horizontal para que as peças sejam puxadas para dentro da prensa, fechar a porta

vertical, estender o atuador vertical, com isso as peças são prensadas, e então recuar

48

o atuador vertical, abrir a porta vertical e estender o atuador horizontal, o qual

empurrará o cubo prensado para fora da prensa.

O braço giratório é responsável pelo transporte de peças entre a extremidade da

esteira, a prensa e o módulo 3 da planta. Para isso, ele é capaz de girar 360o em

torno do seu eixo, tanto do sentido horário quanto no sentido anti-horário. Com-

posto também por dois atuadores pneumáticos, de ação contínua, os quais permitem

que o braço faça movimentos tanto na horizontal, estendendo-se, quanto na vertical,

elevando-se, além de possuir sensores que permitem identi�car se os atuadores pneu-

máticos estão recuados ou estendidos. Além disso, o braço giratório possui, em sua

extremidade, um sistema a vácuo, de ação contínua, com a função de pegar as peças

a serem transportadas. E possui ainda um sensor indutivo, utilizado para calibra-

ção de seu posicionamento angular. Quando sensor está alinhado com o elemento

metálico, indica que o braço está em sua posição zero, permitindo assim recomeçar

a contagem dos pulsos.

Para que o braço giratório opere de forma segura, deve-se girar o braço sempre

com o atuador pneumático vertical estendido e o atuador pneumático horizontal

recuado, evitando assim a colisão do braço com qualquer outro dispositivo. Deve-se

tomar cuidado também para não seja feita mais de uma volta em torno do eixo

vertical, a �m de garantir que não hajam rupturas dos �os que estão presos ao braço

giratório.

No próximo capítulo é apresentado o sistema automático considerado nesse tra-

balho, assim como a forma que foi controlado, sua modelagem em autômatos e os

algoritmos necessários para criação da rede de Petri diagnosticadora síncrona com

condições. Por �m, é apresentado a implementação do diagnosticador síncrono com

condições no CLP presente na planta mecatrônica Cube Assembly, utilizando dia-

grama ladder.

49

Capítulo 5

Diagnosticador com condições para

sistema modular

Um sistema real e com alta complexidade, em geral, é formado por diversos mó-

dulos mais simples que, ao aplicar a composição paralela entre esses módulos, é

obtido o modelo completo do sistema. Contudo, se os módulos do sistema possuí-

rem muito comportamento paralelo, o modelo completo do sistema terá, no pior

caso, crescimento exponencial em relação a quantidade de módulos do sistema, já

que o comportamento de cada módulo deverá ser considerado em todas as ordens

possíveis [12]. Dessa forma, ao utilizar as metodologias clássicas de diagnóstico de

falhas, que se baseiam no modelo completo do sistema, o diagnosticador centrali-

zado pode ter uma complexidade computacional elevada, capaz até de inviabilizar

sua implementação.

Conforme discutido no capítulo 1, a metodologia proposta em CABRAL et al. [12]

visa contornar esse problema. Em CABRAL et al. [12] é apresentado uma proposta

de diagnosticador baseado na estimativa de estado da parte normal dos módulos ou

componentes do sistema. A sincronização online dessas estimativas é implementada,

resultando no diagnosticador síncrono. O diagnóstico da falha é realizado quando

pelo menos uma sequência de eventos que não é possível de ser realizada é observada

em um dos componentes.

50

Para melhor compreensão da metodologia apresentada em CABRAL et al. [12],

é necessário apresentar o teorema abaixo.

Teorema 5.1 Seja G = G1 ‖ G2, em que Gk = (Qk,Σk, fk,Γk, q0,k) para k = 1, 2, e

Σok ⊆ Σk denota o conjunto de eventos observáveis de Gk. Além disso, Obs(G1,Σo1)

e Obs(G2,Σo2) denotam os observadores de G1 e G2, respectivamente. Então,

L(Obs(G1 ‖ G2,Σo)) ⊆ L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)).

Prova 5.1 Sejam L a linguagem gerada por G, Lk a linguagem gerada por Gk para

k = 1, 2, e considere as seguintes operações de projeção:

• Po : (Σ1 ∪ Σ2)? → (Σo1 ∪ Σo2)?;

• Pok : Σ?k → Σ?

ok, para k = 1, 2;

• Pk : (Σ1 ∪ Σ2)? → Σ?k, para k = 1, 2;

• Pok : (Σo1 ∪ Σo2)? → Σ?

ok, para k = 1, 2.

Como G = G1 ‖ G2, então L(G) = (G1 ‖ G2) = P−11 (L1) ∩ P−1

2 (L2). Além disso,

L(Obs(G1 ‖ G2),Σo) = Po[P−11 (L1) ∩ P−1

2 (L2)]. (5.1)

Considere L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)). Uma vez que L(Obs(G1,Σo1)) = Po1(L1)

e L(Obs(G2,Σo2)) = Po2(L2), então L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)) =

P−1o1

[Po1(L1)] ∩ P−1o2

[Po2(L2)].

De acordo com as de�nições de Pok, Pk e Po, pode ser visto que

P−1ok

(s) = Po(P−1k (s))

para todo s ∈ Σ?ok. Assim,

P−1ok

(Pok(Lk)) = Po(P−1k (Pok(Lk))), (5.2)

51

para k = 1, 2.

Note que, uma vez que Lk ⊆ Σ?k, Pok(Lk) = Po(Lk), e

Po(P−1k (Pok(Lk))) = Po(P

−1k (Po(Lk))), (5.3)

Para k=1,2. Além disso, note que

Po(P−1k (Po(s))) = Po(P

−1k (s)), (5.4)

para todo s ∈ Lk. Assim,

Po(P−1k (Po(Lk))) = Po(P

−1k (Lk)), (5.5)

para k = 1, 2. De acordo com a equação (5.2),

P−1o1

[Po1(L1)] ∩ P−1o2

[Po2(L2)] = Po(P−11 (Po1(L1))) ∩ Po(P

−12 (P2(L2))). (5.6)

Note que o lado direito da equação (5.6) pode ser reescrita de acordo com a equação

(5.3), como mostrado abaixo:

Po(P−11 (Po1(L1))) ∩ Po(P

−12 (Po2(L2))) = Po(P

−11 (Po(L1))) ∩ Po(P

−12 (Po(L2))) (5.7)

Utilizando a equação (5.5) na equação (5.7), temos que:

Po(P−11 (Po(L1))) ∩ Po(P

−12 (Po(L2))) = Po(P

−11 (L1)) ∩ Po(P

−12 (L2)), (5.8)

52

e, portanto,

L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)) =

P−1o1

[Po1(L1)] ∩ P−1o2

[Po2(L2)] =

Po(P−11 (L1)) ∩ Po(P

−12 (L2)) (5.9)

Finalmente, uma vez que Ps(LA ∩ LB) ⊆ Ps(LA) ∩ Ps(LB), pode-se perceber que:

Po[P−11 (L1) ∩ P−1

2 (L2)] ⊆ Po(P−11 (L1)) ∩ Po(P

−12 (L2)).

Portanto, de acordo com as equações (5.1) e (5.9),

L(Obs(G1 ‖ G2,Σo)) ⊆ L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)). (5.10)

Seja LNa uma linguagem normal aumentada, tal que Po(LNa) =

L(Obs(GN1 ,Σo1) ‖ Obs(GN2 ,Σo2)), então, de acordo com o teorema 5.1,

Po(LN) ⊆ Po(LNa). Isso mostra que um diagnosticador que utiliza informa-

ção proveniente da composição paralela de observadores dos módulos pode

apresentar mais sequências observáveis do que o sistema pode gerar.

É apresentado a seguir, no corolário 5.1, uma condição que garante a igualdade

da equação (5.10).

Corolário 5.1 Seja Σuok o conjunto de eventos não observáveis de Σk, para k = 1, 2.

Se Σuo1 ∩ Σuo2 = ∅, então L(Obs(G1 ‖ G2,Σo)) = L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)).

Prova 5.2 Para provar que L(Obs(G1 ‖ G2,Σo)) = L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)),

deve-se provar que L(Obs(G1 ‖ G2,Σo)) ⊇ L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)),

quando Σuo1 ∩ Σuo2 = ∅, uma vez que no teorema 5.1 já foi mostrado que

L(Obs(G1 ‖ G2,Σo)) ⊆ L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)). Para tal, seja η ∈

53

L(Obs(G1,Σo1) ‖ Obs(G2,Σo2)), em que, de acordo com a equação (5.9), implica

que η ∈ Po(P−11 (L1))∩Po(P

−12 (L2)), i.e., existe uma sequência s1 ∈ P−1

1 (L1) e uma

sequência s2 ∈ P−12 (L2), tal que Po(s1) = Po(s2) = η. Sejam K1 ⊆ P−1

1 (L1) e

K2 ⊆ P−12 (L2) duas linguagens, tais que η = Po(s1) = Po(s2), para todo s1 ∈ K1 e

s2 ∈ K2. Como Σuo1 ∩Σuo2 = ∅, então todos os eventos não observáveis do conjunto

Σuok são eventos particulares de Σk, para k = 1, 2, o que implica que K1 ∩K2 6= ∅.

Portanto, η ∈ Po(P−11 (L1) ∩ P−1

2 (L2)), que de acordo com a equação (5.1), implica

que η ∈ L(Obs(G1 ‖ G2),Σo).

Portanto, se a condição de não haver eventos não observáveis em comum a dois

ou mais módulos do sistema for satisfeita, o resultado da veri�cação da diagnosti-

cabilidade do método baseado na observação dos módulos é igual ao resultado da

veri�cação da diagnosticabilidade do método clássico. Sendo assim, basta veri�car

a diagnosticabilidade do sistema de acordo com o método proposto na seção 2.4.

Contudo, ao se tratar de sistemas genéricos, essa condição pode não ser satisfeita,

impossibilitando a veri�cação da diagnosticabilidade a partir da metodologia apre-

sentada na seção na 2.4.

Uma vez que o diagnosticador síncrono para sistemas modulares é equivalente ao

diagnóstico de um sistema aumentado Ga cuja linguagem gerada, também chamada

linguagem aumentada, é La = LNa ∪ LF , é possível observar que, caso exista

uma sequência normal em LNa\LN com a mesma projeção que uma sequência de

falha arbitrariamente longa em LF , então La é não-diagnosticável mesmo se L for

diagnosticável. Portanto, faz-se necessário de�nir a diagnosticabilidade síncrona de

sistemas modulares conforme abaixo.

De�nição 5.1 Sejam L e LN ⊂ L linguagens geradas por, respectivamente, G e

GN , e seja LF = L\LN . Considere um sistema composto por dois módulos G1 e G2,

tal que GN = GN1 ‖ GN2, em que GNké o autômato que modela o comportamento

normal de Gk, e LNka linguagem gerada por GNk

, para k = 1, 2. Com isso, L

54

é dita ser sincronamente diagnosticável com relação a LN1, LN2, P1 : Σ? → Σ?1,

P2 : Σ? → Σ?2, Po : Σ? → Σ?

o e Σf se

(∃n ∈ N)(∀s ∈ LF )(∀st ∈ LF , ||t|| ≥ n)⇒ (Po(st) 6∈ Po(P−11 (LN1))∩Po(P

−12 (LN2))).

Neste trabalho, é proposto a adição de condições aos sistemas modulares, de forma

a reduzir a linguagem normal aumentada LNa do diagnosticador. Dessa forma,

são eliminadas sequências que não são possíveis de serem realizadas pela planta,

diminuindo também o risco de existir uma sequência de falha que se confunde com

uma sequência normal a ponto de não ser possível discernir se a falha ocorreu.

Contudo, a adição das condições não garante que todas as sequências observáveis

pelo diagnosticador e que não são possíveis de serem realizadas pela planta sejam

eliminadas. Dessa forma, tem-se a necessidade do desenvolvimento de um método

para veri�cação da diagnosticabilidade, chamada diagnosticabilidade síncrona com

condições, explicado na próxima seção.

5.1 Veri�cador e diagnosticador síncrono com con-

dições para sistemas modulares

Nesta seção é apresentado o algoritmo necessário para veri�cação prévia da di-

agnosticabilidade síncrona com condições de sistemas modulares. Uma vez que

o sistema seja diagnosticável sincronamente, são apresentados os algoritmos para

construção da rede de Petri diagnosticadora síncrona com condições, proposta neste

trabalho.

5.1.1 Veri�cação da diagnosticabilidade síncrona com condi-

ções

Considere um sistema composto por dois módulos G1 e G2, em que GN1 e GN2 são

os autômatos que modelam o comportamento normal de G1 e G2, respectivamente,

55

e GN = GN1 ‖ GN2 é o autômato que modela o comportamento normal do sistema.

Em seguida, renomeando os eventos não observáveis de GN1 e GN2 , obtendo res-

pectivamente GRN1

e GRN2, de forma que ao fazermos a composição paralela desses

autômatos obtemos GRN = GR

N1‖ GR

N2tal que Po(L(GR

N)) = Po(LNa).

Em seguida, deve-se comparar GRN com GN procurando por transições rotuladas

por eventos observáveis em GRN que não existem em GN por partirem ou alcançarem

estados que não fazem parte do conjunto de estados de GN . Se apagarmos essas

transições, obtendo GRNd, a linguagem observada em GR

Ndcorresponderá à linguagem

observada normal pelo diagnosticador síncrono com condições proposto neste traba-

lho CABRAL et al. [17]. Assim, é necessário de�nir a noção de diagnosticabilidade

síncrona com condições como segue.

De�nição 5.2 Sejam L e LN ⊂ L linguagens geradas por, respectivamente, G e

GN , e seja LF = L\LN . Considere um sistema composto por dois módulos G1 e G2,

tal que GN = GN1 ‖ GN2, em que GNké o autômato que modela o comportamento

normal de Gk, e LNka linguagem gerada por GNk

, para k = 1, 2. Considere também

GRNd

o autômato cuja linguagem trata-se da linguagem normal resultante da adição

das novas condições ao diagnosticador. Com isso, L é dita ser sincronamente diag-

nosticável com relação a LN1, LN2, P1 : Σ? → Σ?1, P2 : Σ? → Σ?

2, Po : Σ? → Σ?o e Σf

se

(∃n ∈ N)(∀s ∈ LF )(∀st ∈ LF , ||t|| ≥ n)⇒ (Po(st) 6∈ Po(L(GdNR

))).

Portanto, é necessário a veri�cação prévia da diagnosticabilidade síncrona com

condições do modelo do sistema, para então implementar o diagnosticador síncrono

com condições. Note que, como uma forma de contribuição teórica, seria necessário

a apresentação de uma prova matemática para a de�nição apresentada, destacando

assim a possível utilização desse trabalho em uma futura contribuição teórica para

esta área de estudo.

56

A construção do veri�cador é feita a partir dos passos apresentados no algoritmo

2, mostrado abaixo.

Algoritmo 2 Considere, sem perda de generalidade, que o sistema G é composto

por dois módulos, G1 e G2, tal que G = G1 ‖ G2.

• Passo 1: Calcule o autômato GF = (QF ,Σ, fF ,ΓF , qo,F ) que modela o compor-

tamento de falha do sistema como segue:

� Passo 1.1: De�na Al = (Ql,Σf , fl, q0,l) onde Ql = {N,F}, q0,l = {N},

fl(N, σf ) = F e fl(F, σf ) = F .

� Passo 1.2: Calcule Gl = G ‖ Al e marque todos os estados de Gl cuja

segunda coordenada é igual a F .

� Passo 1.3: Calcule o autômato de falha GF = CoAc(Gl).

• Passo 2: Calcule o autômato GN que modela o comportamento normal do

autômato G seguindo os seguintes passos:

� Passo 2.1: De�na ΣN = Σ\Σf .

� Passo 2.2: Construa o autômato AN = ({N},ΣN , fN , {N}), em que

fN(N, σ) = N , para todo σ ∈ ΣN .

� Passo 2.3: Calcule o autômato GN = G× AN = (QN ,Σ, fN ,ΓN , q0,N).

� Passo 2.4: Rede�na o conjunto de eventos de GN por ΣN , resultando em

GN = (QN ,ΣN , fN ,ΓN , q0,N).

• Passo 3: Calcule GNk, para k = 1, 2 como segue:

� Passo 3.1: Identi�que cada transição de Gk que não pertence a GN .

� Passo 3.2: Remova as transições de Gk que aparecem em Gk, mas não

aparecem em GN , resultando no autômato G′k, k = 1, 2.

� Passo 3.3: Realize a operação Acessível no autômato G′k, k = 1, 2,

obtendo-se GNk= Ac(G′k). Note que ΣNk

pode ser particionado em

ΣNk= Σuo,Nk

∪Σo,Nk.

57

• Passo 4: Calcule GRNa

= (QRN ,ΣR, f

RN , q0,N), como segue:

� Passo 4.1: De�na a função Rk : ΣNk→ ΣRk

como sendo:

Rk(σ) =

σ, se σ ∈ Σo,Nk

σRk, se σ ∈ Σuo,Nk

.

� Passo 4.2: Construa o autômato GRNk

= (QNk,ΣRk

, fRNk, q0,Nk

), para k =

1, 2, em que fRNk

(qNk, Rk(σ)) = fNk

(qNk, σ) para todo σ ∈ ΣNk

� Passo 4.3: Calcule GRNa

= GRN1‖ GR

N2.

• Passo 5: Construa GRNd

como segue:

� Passo 5.1: Calcule GR′N eliminando-se as transições fR

N (qRN , σ) = qR′

N tais

que qRN /∈ QN ou qR′

N /∈ QN e σ ∈ Σo.

� Passo 5.2: Calcule GRNd

= Ac(GR′N ).

• Passo 6: Construa o autômato veri�cador GMV = (QV ,ΣV , fV , q0,V ) = GF ‖

GRNd. Note que um estado de GM

V é dado por qV = (qF , qNd), em que qF e

qNdsão estados de GF e GR

Nd, respectivamente, e qF = (q, ql), onde q ∈ Q e

ql ∈ {N,F}.

• Passo 7: Veri�que a existência de um ciclo cl = (qiV , σi, qi+1V , ..., qlV , σl, q

iV ) em

que l ≥ i > 0, em GMV tal que:

∃j ∈ {i, i+ 1, ..., l} tal que para algum qjV , (qjl = F ) ∧ (σj ∈ Σ).

Caso a resposta seja negativa, então L é diagnosticável sincronamente em

relação a LN1, LN2, P1 : Σ? → Σ?1, P2 : Σ? → Σ?

2, Po : Σ? → Σ?o, e Σf . Caso

contrário, L não é sincronamente diagnosticável.

Com o objetivo de facilitar o entendimento, é apresentado a seguir um exemplo

de veri�cação de diagnosticabilidade síncrona com condições.

58

Exemplo 5.1 Considere G1 e G2 os autômatos que representam os módulos do

sistema G = G1 ‖ G2, apresentados na �gura 5.1. O conjunto formado por todos os

eventos do sistema G é dado por Σ = {a, b, c, e, σu, σf}, em que Σ1 = {a, e, σu, σf}

é o conjunto composto pelos eventos do autômato G1 e Σ2 = {a, b, c, σu} o conjunto

formado pelos eventos do autômato G2. Sejam Σo = {a, b, c, e} o conjunto de todos

os eventos observáveis de G, Σuo = {σu, σf} o conjunto de todos os eventos não

observáveis de G e Σf = {σf} o conjunto de evento de falha de G. Ao seguir o

passo 1 do algoritmo 2, obtém-se o autômato GF que modela o comportamento de

falha do autômato G, apresentado na �gura 5.2. Com o passo 2, é obtido o autômato

GN , o qual modela o comportamento normal do autômato G, apresentado na �gura

5.3, e com o passo 3, são obtidos os autômatos GN1 e GN2, apresentados na �gura

5.4, que modelam o comportamento normal dos autômatos G1 e G2, respectivamente.

Com isso, é possível obter os autômatos GN,R1 e GN,R2 apresentados na �gura 5.5

e o autômato GRNa

= GN,R1 ‖ GN,R2, apresentado na �gura 5.6, seguindo o passo

4. O autômato GRNd

é obtido a partir do passo 5, e apresentado na �gura 5.7.

Por �m, com a composição paralela GF ‖ GRNd, obtém-se o autômato veri�cador

GMV apresentado na �gura 5.8. Analisando o autômato veri�cador GM

V , é possível

notar que o mesmo não possui ciclo de estados com rótulo F e, portanto, o sistema

modular G é diagnosticável sincronamente com condições em relação a LN1, LN2,

P1 : Σ? → Σ?1, P2 : Σ? → Σ?

2, Po : Σ? → Σ?o e Σf .

Note que os estados hachurados de cinza em GRNa, apresentado na �gura 5.6, e

suas transições relacionadas rotuladas por eventos observáveis não existem em GN ,

ilustrado na �gura 5.3. Para diminuir a linguagem normal aumentada, as condições

podem ser adicionadas ao diagnosticador síncrono, o que tem o mesmo efeito de se

apagar as transições rotuladas por eventos observáveis que partem ou alcançam uma

combinação de estados (qRN1, qRN2

) que não existem em GN , ou seja, uma transição

observável que parta ou alcance um estado (qRN1, qRN2

) tal que não existe um estado

(qN1 , qN2) em G em que qRN16= qN1 ou qRN2

6= qN2.

59

Note também que, em GRNd, apresentado na �gura 5.7, ainda existem estados que

não são alcançáveis em GN . Portanto, é possível que ainda existam transições em

GRNd

que não existam em GN , mas por partirem e alcançarem estados que existem em

GN , não são retiradas de GRNa, mostrando que, embora a linguagem L(GR

Nd) ≤ LNa,

sequências normais a mais ainda podem existir mesmo adicionando-se condições ao

diagnosticador síncrono.

0 1

e23

a

e

σu

4

a, eσf

(a) Autômato G1.

0 1

23

a

b

σu

c

(b) Autômato G2.

Figura 5.1: Autômatos G1 e G2 do exemplo 5.1.

0,0,Ne

σf

b

e

c

e

a

1,0,N

1,1,N0,1,N

0,2,N 1,2,N 4,2,F

σf4,0,F

σf4,1,F

b

c

b

c

σu

2,3,Ne

3,3,N

e

e

e

Figura 5.2: Autômato GF do exemplo 5.1.

60

0,0,Ne

b

e

c

e

a

1,0,N

1,1,N0,1,N

0,2,N 1,2,N

b

c

σu

2,3,Ne

3,3,N

Figura 5.3: Autômato GN do exemplo 5.1.

0 1

e23

a

e

σu

(a) Autômato GN1.

0 1

23

a

b

σu

c

(b) Autômato GN2.

Figura 5.4: Autômatos GN1 e GN2 do exemplo 5.1.

0 1

e23

a

e

σuR1

(a) Autômato GN,R1 .

0 1

23

a

b

σuR2

c

(b) Autômato GN,R2 .

Figura 5.5: Autômatos GN,R1 e GN,R2 do exemplo 5.1.

Após a veri�cação da diagnosticabilidade síncrona com condições do sistema G, é

possível construir a rede de Petri diagnosticadora síncrona modular com condições

apresentado na subseção seguinte.

5.1.2 Construção da rede de Petri diagnosticadora síncrona

com condições

Para construção da rede de Petri diagnosticadora síncrona com condições, é uti-

lizado um método baseado na construção de um diagnosticador capaz de estimar

61

0,0e

b

e

c

e

b

c

σuR2

e

σuR2

1,0

1,10,1

0,2 1,2

0,3 1,3σuR1

2,3

σuR12,2

σuR2

σuR12,1

c

σuR12,0

b

e

e

e

e

3,0

3,1

3,2

3,3

b

c

σuR2

a

Figura 5.6: Autômato GRNa

do exemplo 5.1.

0,0e

b

e

c

e

b

c

σuR2σuR2

1,0

1,10,1

0,2 1,2

0,3 1,3σuR1

2,3

σuR12,2

σuR2

σuR12,1

σuR12,0

e3,3

a

Figura 5.7: Autômato GRNd

do exemplo 5.1.

os estados dos módulos do sistema e sincronizar a ocorrência de eventos observáveis

nesses módulos. Além disso, condições associadas aos estados de cada módulo do

sistema são adicionadas.

Em CABRAL et al. [11] são apresentados quatro algoritmos para obtenção

de uma rede de Petri observadora de estados NSO para SEDs modelados por

autômatos �nitos. O primeiro algoritmo é aplicado em um sistema G, resultando na

construção de uma rede de Petri máquina de estados. Tal algoritmo é apresentado

a seguir.

62

0,0,N,0,0e

1,0,N,1,0

σuR11,0,N,2,0 4,0,F,1,0

σuR14,0,F,2,0

σf

σf

1,1,N,1,1

σuR11,1,N,2,1 4,1,F,1,1

σuR14,1,F,2,1

σf

σf

b bb

0,1,N,0,1e

1,2,N,1,2

σuR11,2,N,2,2 4,2,F,1,2

σuR14,2,F,2,2

σf

σf

c cc

0,2,N,0,2e

1,2,N,1,3

σuR11,2,N,2,3 4,2,F,1,3

σuR14,2,F,2,3

σf

σf

σuR2 σuR2σuR2

σuR12,3,N,1,2 2,3,N,2,2

σuR2σuR2

2,3,N,1,3

σuR12,3,N,2,3

σu σu

σuσuR2

0,2,N,0,3

σu

e

4,2,F,3,3

e3,3,N,3,3

a

Figura 5.8: Autômato veri�cador GMV do exemplo 5.1.

Algoritmo 3 Considere um sistema representado por G = (Q,Σ, f,Γ, q0). Uma

rede de Petri máquina de estados N = (P, T, Pre, Post, x0,Σ, l) pode ser obtida a

partir dos seguintes passos:

• Passo 1: Crie um lugar pi ∈ P para cada estado qi ∈ Q.

• Passo 2: Crie uma transição tj ∈ T para cada transição ql = f(qi, σ) de�nida

em G, para todo qi ∈ Q e σ ∈ Γ(qi), e rotule tj como l(tj) = {σ}.

• Passo 3: De�na Pre(pi, tj) = Post(tj, pl) = 1 para cada transição tj ∈ T , se

a transição ql = f(qi, σ) é de�nida em G. Por outro lado, de�na Pre(pi, tj) =

Post(tj, pl) = 0.

• Passo 4: De�na x0(p0) = 1 e x0(pi) = 0, para todo pi ∈ P\{p0}, em que p0

denota o lugar associado ao estado inicial de G, q0.

63

Após obtenção da rede de Petri N , o passo seguinte é a criação de novos arcos

conectando cada transição rotulada por um evento observável a lugares especí�cos

que correspondem ao alcance não observável dos lugares após a ocorrência de tran-

sições observáveis. Para isso, considere To ⊆ T o conjunto de todas as transições

de N rotuladas por eventos observáveis, e de�na ReachT : To → 2P . O conjunto

de lugares ReachT (tj), onde tj ∈ To, pode ser calculado através do algoritmo a seguir.

Algoritmo 4 Seja O(t)o conjunto de todos os lugares de saída de t, e O(p) o

conjunto de todas as transições de saída de p. Considere também O(P ) =⋃

p∈P P (p)

e O(T ) =⋃

t∈T O(t).

• Passo 1: Sejam {pout} = O(tcj), P′r = {pout} e Pr = P ′r.

• Passo 2: Forme o conjunto T ′u com todas as transições de O(P ′r) associadas a

eventos não observáveis. Caso T ′u = ∅, ReachT (tCj) = Pr e pare.

• Passo 3: De�na P ′r = O(T ′u), Pr ← Pr ∪ P ′r, e retorne ao passo 2.

Para implementar o alcance não observável após a ocorrência de cada transição

observável, é necessário adicionar à N um arco de peso unitário conectando cada

transição tj ∈ To a cada lugar pi ∈ ReachT (tj), gerando uma nova rede de Petri N ′.

Em seguida, devem ser removidas de N ′ todas as transições rotuladas com eventos

não observáveis e seus arcos relacionados, dando origem a uma nova rede de Petri

No, cujas transições são rotuladas apenas com eventos observáveis. A construção

de No é formalizada pelo do algoritmo a seguir.

Algoritmo 5 Seja N = (P, T, Pre, Post, x0,Σ, l) a rede de Petri máquina de estados

construída a partir de G através da aplicação do algoritmo 3. A rede de Petri No

pode ser obtida a partir dos seguintes passos:

• Passo 1: Seja To ⊆ T o conjunto de todas as transições de N rotuladas com

eventos observáveis. De�na uma nova função Post′ : T × P → N tal que

64

Post′(tj, pi) = 1 se tj ∈ To e p ∈ ReachT (Tj), e Post′(tj, pi) = Post(tj, pi)

caso contrário.

• Passo 2: De�na as funções Preo : P × To → N e Posto : To × P → N, em

que Preo(pi, tj) = Pre(pi, tj) e Posto(tj, pl) = Post′(tj, pl) para todo tj ∈ To e

pi, pl ∈ P .

• Passo 3: De�na uma nova função de rotulação lo : To → 2Σo tal que lo(tj) =

l(tj) para todo tj ∈ To.

Em seguida, a construção da rede de Petri observadora de estados NSO é obtida

após aplicação do algoritmo a seguir.

Algoritmo 6 Seja No = (P, To, P reo, Posto, x0,Σo, lo) a rede de Petri observadora

alcançada a partir do algoritmo 5. A rede de Petri observadora de estados NSO =

(P, TSO, P reSO, PostSO, x0,SO,Σo, lSO) pode ser obtida a partir dos seguintes passos:

• Passo 1: Seja T ′o = ∅. Para todo qi ∈ Q tal que Γ(qi) ∩ Σo 6= Σo, crie uma

nova transição ti e de�na T ′o = T ′o ∪ {ti}.

• Passo 2: De�na TSO = To ∪ T ′o.

• Passo 3: De�na a nova função de rotulação lSO : TSO → 2Σo em que lSO(Tj) =

lo(tj) se tj ∈ To e lSO(ti) = Σo\(Γ(qi) ∩ Σo), se ti ∈ T ′o.

• Passo 4: De�na PreSO : P × TSO → N e PostSO : TSO × P → N em

que PreSO(pi, tj) = Preo(pi, tj) e PostSO(tj, pl) = Posto(tj, pl), para todo

pi, pl ∈ P e tj ∈ To, e PreSO(pi, ti) = 1, PreSO(pl, t

i) = 0 e PostSO(ti, pl) =

PostSO(ti, pi) = 0, para todo ti ∈ T ′o e pi, pl ∈ P , em que i 6= l.

• Passo 5: De�na o estado inicial de NSO atribuindo uma �cha a cada lugar

associado com um estado de UR(q0,C), e nenhuma �cha aos outros lugares.

• Passo 6: Rede�na TSO, P reSO e PostSO através da remoção das transições de

autolaço e seus arcos associados.

65

É importante notar que a rede de Petri observadora de estados NSO trata-se de

uma rede binária, a qual é capaz de fornecer a estimativa correta do estado de um

autômato após a ocorrência de um evento observável. Sua construção representa a

base do diagnosticador proposto nesse trabalho.

Considere, agora, o sistema G com quantidade de módulos igual a r, tal que

G = G1 ‖ G2 ‖ ... ‖ Gr, em que Gk representa o autômato que modela o k-ésimo

módulo de G. Através dos algoritmos 3 a 6, o primeiro passo para obtenção da rede

de Petri diagnosticadora sincronizada com condições (RPDSC) é a construção da

rede de Petri observadora de estados NSOkpara cada autômato GNk

do respectivo

módulo Gk do sistema. Em seguida, o próximo passo após obtenção de todas as

NSOk, para k = 1, ..., r, é a adição de condições aos lugares de cada rede LSOk

que

relacionam a possibilidade de disparo de cada transição com os lugares alcançados

permissíveis dos demais módulos. Assim, para que uma transição possa disparar,

a combinação do lugar de entrada dessa transição com os lugares alcançados nas

demais redes deve ser possível em GN . Caso isso não ocorra, a transição não dispara

e o alcance é corrigido, podendo provocar o diagnóstico da falha. Adicionando-se

essas condições, novas redes de Petri observadoras de estado NCSOk

, k = 1, ..., r são

obtidas, como é descrito no algoritmo a seguir, em que apenas dois módulos são

considerados para facilitar o entendimento do método.

Algoritmo 7 Sejam NSOk= (Pk, TSOk

, P reSOk, PostSOk

, x0,SOk,Σok , lSOk

), para k =

1, 2, as redes de Petri observadoras de estados obtidas a partir dos algoritmos 3 a 6.

Para adicionar as novas condições às redes de Petri observadoras de estados, obtendo

NCSOk

= (Pk, TCSOk

, P reCSOk, PostCSOk

, xC0,SOk,Σok , l

CSOk

), para k = 1, 2, deve-se seguir

os seguintes passos:

• Passo 1: Seja T ′SOk= ∅. Crie uma nova transição tc para cada transição

qNk,l= fNk

(qNk,i, σ) de�nida em GNk

, para todo qNk,i∈ QNk

e σ ∈ ΓNk(qNk,i

).

De�na T ′SOk= T ′SOk

∪ {tc}.

66

• Passo 2: De�na TCSOk

= TSOk∪ T ′SOk

.

• Passo 3: De�na uma nova função de rotulação lCSOk: TC

SOk→ 2Σok em que:

lCSOk(tj) =

{σ.[C]}, se tj ∈ To{σ.[C]}, se tj ∈ T ′SOk

.

sendo [C] uma condição [C] = [∨

m 6=k,i pNm,i] com pNm,i

correspondendo ao

estado qNm,i∈ QNm tal que ∀qNm,i

∈ QNm, ∃ f(qN , σ) e qNm,icompõe qN .

• Passo 4: De�na PreCSOk: Pk × TC

SOk→ N e PostCSOk

: TCSOk× Pk → N em que

PreCSOk(pk,i, tk,j) = PreSOk

(pk,i, tk,j) e PostCSOk(tk,j, pk,l) = PostSOk

(tk,j, pk,l),

para todo pk,i, pk,l ∈ Pk e tj ∈ TSOk, e PreCSOk

(pk,i, tc) = 1, PreCSOk

(pk,l, tc) = 0

e PostCSOk(tc, pk,l) = PostCSOk

(tc, pk,i) = 0, para todo tc ∈ T ′SOke pk,i, pk,l ∈ Pk,

em que i 6= l.

• Passo 5: De�na o estado inicial de NCSOk

como xC0,SOk= x0,SOk

, para k = 1, 2.

Por �m, o próximo passo para obtenção da RPDSC, NCD , a partir de todas as

redes de Petri observadoras de estados com condições NCSOk

, para k = 1, ..., r, é a

adição de uma transição e um lugar para cada rede NCSOk

, além de um lugar pf

com o objetivo de indicar o diagnóstico da falha. A esse lugar, é possível associar

alarmes ou ações corretivas com o objetivo de se alertar o diagnóstico da falha ou

evitar possíveis consequências danosas decorrentes do comportamento de falha do

sistema.

Algoritmo 8 Sejam NCSOk

= (Pk, TCSOk

, P reCSOk, PostCSOk

, xC0,SOk,Σok , l

CSOk

), para k =

1, 2, as redes de Petri observadoras de estados com condições obtidas a partir dos

algoritmos 3 a 7. A rede de Petri diagnosticadora síncrona com condições NCD =

(PD, TD, P reD, PostD, InD, x0,D,Σo, lCSO), em que InD : PD × TD → {0, 1} denota a

função de arcos inibidores, pode ser obtida seguindo os passos seguintes:

• Passo 1: Calcule a rede de Petri NDk= (PDk

, TDk, P reDk

, InDk, x0,D,Σo, l

CSO),

67

em que InDk: PDk

× TDk→ {0, 1} denota a função de arcos inibidores e

lCSO : To → Σo denota a função de rotulação de transições que associa a cada

transição em To um evento observável, como descrita a seguir:

� Passo 1.1: Adicione a NCSOk

uma transição tfk rotulada com o evento

sempre ocorrente λ. De�na TD =⋃

k=1,...,r TCSOk∪ {tfk}.

� Passo 1.2: Adicione às redes NCSOk

os lugares pNk, para k = 1, 2, e de�na

PreDk(pNk

, tfk) = 1. De�na x0,D(pNk) = 1, e PDk

= PCSOk∪ {pNk

}.

� Passo 1.3: De�na InDk(pDk

, tfk) = 1 e InDk(pDk

, tCSOk) = 0, ∀pDk

∈ PDk,

e ∀tCSOk∈ TC

SOk.

• Passo 2: Obtenha a rede de Petri diagnosticadora sincronizada com condições

NCD = (PD, TD, P reD, PostD, InD, x0,D,Σo, l

CSO), da seguinte maneira:

� Passo 2.1: Forme uma única rede de Petri através do agrupamento de

todas as redes de Petri NDk, ou seja, faça PD =

⋃k=1,...,r PDk

, TD =⋃k=1,...,r TDk

.

� Passo 2.2: Adicione um lugar pF e de�na PostD(tfk , pF ) = 1, para k =

1, ..., r. De�na x0,D(pF ) = 0.

Para melhor compreensão dos algoritmos apresentados, um exemplo de construção

de uma rede de Petri diagnosticadora síncrona com condições é apresentado a seguir.

Exemplo 5.2 Novamente, considere o sistema modelado por G = G1 ‖ G2, em

que G1 e G2 são apresentados na �gura 5.1. Ao aplicar o algoritmo 3 em GN1 e

em GN2, mostrados na �gura 5.4, são obtidas as redes de Petri máquina de estados

N1 e N2 apresentadas na �gura 5.9. Em seguida, aplicando-se os algoritmos 4 e

5, obtém-se as redes de Petri binárias No1 e No2, apresentadas na �gura 5.10. A

partir do algoritmo 6, são construídas as redes de Petri observadoras de estados

NSO1 e NSO2, mostradas na �gura 5.11 e, ao adicionar as novas condições seguindo

os passos do algoritmo 7, obtém-se as redes de Petri observadoras de estados com

68

condições NCSO1

e NCSO2

, apresentadas na �gura 5.12. Por �m, através do algoritmo

8, a rede de Petri diagnosticadora sincronizada com condições NCD é construída e

apresentada na �gura 5.13.

A ocorrência de uma falha é diagnosticada quando o diagnosticador observar uma

sequência que não condiz ao comportamento normal de um dos módulos do sistema

a partir da marcação inicial. Analisando, por exemplo, a sequência ebe, observamos

primeiramente o disparo da transição t1,2 com a ocorrência do evento e, em que

a �cha é retirada do lugar 0N1 e são colocadas duas �chas, uma em 1N1 e outra

em 2N1. Em seguida, a transição t2,2 é disparada com a ocorrência do evento b,

retirando a �cha do lugar 0N2 e colocando uma �cha em 1N2. Porém, ao ocorrer o

evento e novamente, como a rede ND2 não possui �cha no lugar 3N2, as transições

t1,9 e t1,4 são disparadas, e a rede ND1 perde todas as suas �chas. Com isso, a

transição tf1 é disparada e a �cha de pN1 é retirada e colocada no lugar pF , indicando

a ocorrência de uma falha no sistema. É importante perceber que a adição das

novas condições, a partir do algoritmo 7, foi essencial para o diagnóstico da falha

ao observar a sequência ebe, visto que sem elas essa sequência seria confundida

com o comportamento normal do sistema. Isso ocorre devido a sincronização dos

autômatos G1 e G2, apresentados na �gura 5.1, ser feita a partir do evento não

observável σu.

Note que o sistema G é diagnosticável sincronamente. Entretanto, sem a adição

das condições o diagnosticador síncrono proposto em CABRAL et al. [12] não teria

diagnosticado a sequência ebe, precisando observar mais eventos para poder diag-

nosticar a ocorrência de σf , o que não ocorre quando as condições são adicionadas,

provocando o diagnóstico da falha no instante em que a sequência ebe é observada.

Isso mostra que, mesmo para sistemas diagnosticáveis sincronamente a adição das

condições pode contribuir para a redução do número de eventos necessários para o

diagnóstico da falha. Isso é útil principalmente em ocasiões em que a ocorrência de

mais eventos para que o diagnóstico aconteça resulte em danos à planta, à produção

69

ou até mesmo a pessoas que estejam operando o sistema.

Embora neste exemplo não haja diferença entre a quantidade de estados do autô-

mato GN e a soma dos estados dos autômatos GN1 e GN2, ambos possuem um total

de 8 estados, é possível notar que quanto maior o comportamento paralelo entre os

módulos, maior que será o crescimento de GN [12].

0N1

e

a

e

σu

1N1

2N13N1

(a) N1.

0N2

ca

b

σu

1N2

2N23N2

(b) N2.

Figura 5.9: Redes de Petri máquina de estados N1 e N2 do exemplo 5.2.

0N1

e

a

2N11N1

3N1

e

(a) No1 .

0N2

b

c

a

1N2

3N2 2N2

(b) No2 .

Figura 5.10: Redes de Petri binárias No1 e No2 do exemplo 5.2.

A próxima seção consiste em apresentar como foi feito o controle do sistema de

automação implementado na planta mecatrônica Cube Assembly, assim como a falha

considerada. Em seguida é apresentado como foi modelado o comportamento normal

e o comportamento de falha dos módulos do sistema, para por �m ser apresentado

70

0N1

e

a

a

t1,1t1,2

t1,3

t1,6

e, a

t1,4t1,5

t1,7

2N11N1

3N1

a

ee

(a) NSO1 .

0N2

b

a

c, a

t2,1t2,2

t2,3

t2,5 b, c, a

t2,6

t2,4c

t2,7

1N2

3N2 2N2

b, a

b, c

(b) NSO2 .

Figura 5.11: Redes de Petri observadoras de estados NSO1 e NSO2 do exemplo 5.2.

0N1

e.[0N2, 1N2, 2N2]

a.[3N2]

a

t1,1

t1,2

t1,3

t1,6

e, a

t1,4

t1,5

t1,7

2N11N1

3N1

a

e.[3N2]

e

t1,8 e.[0N2.1N2.2N2]

t1,9e.[3N2]

a.[3N2]

t1,10

(a) NSO1.

0N2

b.[0N1, 1N1]

a.[3N1]

c, a

t2,1

t2,2

t2,3

t2,5

b, c, a

t2,6

t2,4c.[0N1, 1N1]

t2,7

1N2

3N2 2N2

b, a

b, c

t2,8 b.[0N1.1N1]

t2,9

c.[0N1.1N1]

t2,10a.[3N1]

(b) NSO2.

Figura 5.12: Redes de Petri observadoras de estados com condições NCSO1

e NCSO2

doexemplo 5.2.

a veri�cação da diagnosticabilidade síncrona e a construção da RPDSC utilizando

os algoritmos apresentados nessa seção.

5.2 Modelagem do sistema em autômatos

O sistema automatizado utilizado neste trabalho e implementado na planta meca-

trônica trata-se de um processo cíclico, em que duas peças são enviadas a partir dos

71

0N2

b.[0N1, 1N1]

a.[3N1]

c, a

t2,1

t2,2

t2,3

t2,5

b, c, a

t2,6

t2,4c.[0N1, 1N1]

t2,7

1N2

3N2 2N2

b, a

b, c

t2,8 b.[0N1.1N1]

t2,9

c.[0N1.1N1]

t2,10a.[3N1]

0N1

e.[0N2, 1N2, 2N2]

a.[3N2]

a

t1,1

t1,2

t1,3

t1,6

e, a

t1,4

t1,5

t1,7

2N11N1

3N1

a

e.[3N2]

e

t1,8 e.[0N2.1N2.2N2]

t1,9e.[3N2]

a.[3N2]

t1,10

pN1

tf1

pF

pN2

tf2

ND1 ND2

Figura 5.13: Rede de Petri diagnosticadora sincronizada com condições NCD

do exemplo 5.2.

estoques MAG1 e MAG2, transportadas pela esteira, até que o braço as conduza

até para a prensa que as une formando um cubo. O cubo, por sua vez, é trans-

portado pelo braço mecânico até a esteira, e por �m descartado. Porém, devido

aos sensores ao longo da esteira, os quais não estão posicionados a uma distância

da esteira su�ciente para a passagem de um cubo montado, a ação de prensar não

será de fato realizada. Dessa forma, as duas peças serão transportadas até a prensa,

simulando o processo de prensamento, no entanto o atuador pneumático vertical da

prensa responsável pela ação de prensar não será acionado. Essa escolha foi feita

de modo a não precisar mexer no posicionamento dos sensores ao longo da esteira,

preservando a estrutura e montagem atual da planta mecatrônica.

Ao iniciar o funcionamento do sistema, apenas o botão START é habilitado acen-

dendo sua respectiva lâmpada e, ao ser pressionado, o sistema começa seu processo

72

de calibragem. Na calibração, a esteira é ligada no sentido contrário ao módulo 2,

com o objetivo de descartar qualquer objeto presente em sua extensão. O braço

mecânico inicia o giro no sentido horário até que o sensor indutivo seja acionado

e, em seguida, inicia o giro no sentido anti-horário até que a contagem dos pulsos

através do contador de alta velocidade seja igual ao número predeterminado para

o alinhamento do braço com a esteira. Ainda na calibração, o atuador pneumático

horizontal do prensa cubo é estendido, e a porta vertical é aberta, preparando o

prensa cubo para o recebimento de peças.

Após a calibragem, o botão START é novamente habilitado para que o sistema

inicie seu processo cíclico, o qual somente irá parar caso o sensor �m de curso presente

em algum dos estoques de peças MAG1 ou MAG2 seja acionado, indicando que não

há peça su�ciente para dar continuidade ao processo. Dessa forma, o sistema �cará

parado até que novas peças sejam colocadas no estoque em questão.

O processo cíclico é iniciado com uma peça presente no estoque MAG1 sendo

entregue à esteira através do atuador pneumático horizontal presente em sua base.

A esteira é então ligada, transportando a peça no sentido do módulo 2 da planta,

e sendo desligada quando o sensor óptico por barreira é acionado, indicando que a

peça chegou ao �nal do percurso. Em seguida, o braço mecânico pega a peça através

do sistema a vácuo presente em sua extremidade, e a transporta até a prensa. Ao

ser entregue à prensa, o braço retorna à posição alinhado com a esteira rolante,

esperando por uma segunda peça.

O módulo 1, por sua vez, ao enxergar que a primeira peça foi retirada da esteira

através da borda de descida do sensor óptico por barreiras, imediatamente aciona o

atuador pneumático horizontal do estoque MAG2 e a segunda peça é colocada na

esteira. Assim como a primeira peça, a esteira é ligada sentido ao módulo 2 até que

a peça alcance o �nal da esteira, nesse momento o braço a pega e a transporta até

a prensa.

73

Com as duas peças entregues à prensa, o braço mecânico continua posicionado

alinhado à prensa, espera 5 segundos, que seria o tempo necessário para a prensa

�nalizar o processo de prensamento, e em seguida o braço retira a peça da prensa

transportando-a de volta à esteira rolante. Como não foi realizada a ação de prensar,

apenas uma peça é capturada pelo braço, sendo necessário retirar a outra peça da

prensa manualmente, simulando então que o cubo formado pelas duas peças foi

retirado da prensa pelo braço.

No instante em que a peça é entregue de volta à esteira rolante, a mesma é ligada

no sentido contrário ao módulo 2 por 13 segundos, tempo su�ciente para que a peça

seja conduzida até fora da planta mecatrônica. Desse modo, um ciclo foi então

�nalizado, iniciando automaticamente um novo ciclo.

Durante todo o processo, tanto de calibração quanto o comportamento normal e

cíclico do sistema, o botão QUIT é habilitado e sua respectiva lâmpada acesa. Ao

ser pressionado, o sistema volta à condição inicial, em que apenas o botão START

é habilitado para que a calibração do sistema seja refeita e o processo reiniciado.

A explicação do sistema automático descrito acima pode ser melhor compreendida

a partir da análise das redes de Petri interpretadas para controle dos módulos 1 e 2,

apresentadas nas �guras 5.14 e 5.15, respectivamente. Enquanto nas tabelas 5.1, 5.2

e 5.3 são apresentadas as ações realizadas em cada lugar, transições do módulo 1 e

transições do módulo 2 referentes a essas redes de Petri, respectivamente. O evento λ

é considerado um evento sempre ocorrente, ou seja, as transições cuja condição está

representada por λ são transições que não dependem da ocorrência de um evento

especí�co para serem habilitadas.

74

PiniE1PiniE2

PiniE4PiniE5

PE1

tiniE1 tiniE4 tiniE5

tE2 PE2PE3

tiniE3

tE1

tiniE2 PiniE3

tE3PE4tE4PE4atE4aPE5

tE5

PE6

tE6

tE7

PE8atE8 tE8a PE9 PE10tE9 PE11tE10 tE11

PE7

PE8

Figura 5.14: Rede de Petri interpretada para controle do módulo 1 do

sistema.

Tabela 5.1: Ações realizadas nos lugares da RPIC do

sistema prático implementado na planta mecatrônica.

Lugares Ações

PiniE1, PiniE4

Liga lâmpada START

PiniE2, PiniE5

Desliga lâmpada START

PiniE2Liga lâmpada QUIT

PiniE1Desliga lâmpada QUIT

PiniE2, PE11 Liga esteira para trás

PE4 , PiniE4a, PiniE8

, PiniE8aLiga esteira para frente

PiniE2, PE3 Recua atuador horizontal MAG1

75

PE2 Estende atuador horizontal MAG1

PiniE2, PE7 Recua atuador horizontal MAG2

PE6 Estende atuador horizontal MAG2

PiniE1, PE11 Variável "Peça pronta entregue"= 0

PB33 Variável "Peça pronta entregue"= 1

PiniB2Elevador desce

PiniB3Elevador vai à frente

PiniB4Abre a porta - Prensa cubo

PiniB4Recua atuador vertical - Prensa cubo

PiniB5, PB12 , PB28 , PB35 Gira o braço no sentido horário

PiniB6, PB7 , PB12a , PB18 , PB28a , PB36 Gira o braço no sentido anti-horário

PiniB6, PB7 , PB12a , PB18 , PB28a , PB36 Habilita HSC

PB2 , PB6 , PB11 , PB17 , PB22 , PB27 , PB32 Estende atuador vertical - Braço

PB5 , PB9 , PB16 , PB20 , PB26 , PB30 , PB34 Recua atuador vertical - Braço

PB3 , PB8 , PB14 , PB19 , PB24 , PB29 Estende atuador horizontal - Braço

PB6 , PB11 , PB17 , PB22 , PB27 , PB32 Recua atuador horizontal - Braço

PB4 , PB15 , PB25 Liga bomba à vácuo - Braço

PB10 , PB21 , PB31 Desliga bomba à vácuo - Braço

Tabela 5.2: Transições presentes na RPIC referente ao

módulo 1.

Transições Condições

tiniE1Borda de subida - botão START

tiniE2t = 13 segundos

tiniE3Contagem de 808 pulsos pelo HSC

tiniE4Borda de subida - botão START

tiniE5λ

tE1 Sensor �m de curso - MAG1

76

tE2 Atuador horizontal estendido - MAG1

tE3 Atuador horizontal recuado - MAG1

tE4 Sensor �m de curso - Esteira

tE4a t = 1 segundo

tE5 Sensor �m de curso - MAG2

Borda de descida do sensor �m de curso - Esteira

tE6 Atuador horizontal estendido - MAG2

tE7 Atuador horizontal recuado - MAG2

tE8 Sensor �m de curso - Esteira

tE8a t = 1 segundo

tE9 Borda de descida do sensor �m de curso - Esteira

tE10 "Peça pronta entregue"= 1

tE11 t = 13 segundos

77

PiniB1PiniB2

tiniB1 PiniB3tiniB2 PiniB4

tiniB3 PiniB5tiniB4 tiniB5

PiniB6

PiniB7

tiniB6

tiniB7

PB1

PB2 tB1tB2PB3tB3PB4tB4PB5tB5PB6

PB7

PB11tB10PB10tB9PB9tB8PB8tB7

tB6

tB11

PB12

PB12atB12aPB13tB13PB14tB14PB15tB15 tB12

PB16

PB17

PB21tB20PB20tB19PB19tB18PB18tB17

tB16

tB21

PB22

PB23tB23PB24tB24PB25tB25PB26tB26 tB22

PB27

tB27

PB28

PB31tB30PB30tB29PB29tB28aPB28atB28 tB31

PB32

PB33tB33PB34tB34PB35tB35PB36tB36 tB32

Figura 5.15: Rede de Petri interpretada para controle do módulo 2 do

sistema.

78

Tabela 5.3: Transições presentes na RPIC referente ao

módulo 2.

Transições Condições

tiniB1Borda de subida - botão START

tiniB2Sensor �m de curso inferior - Elevador

tiniB3Sensor �m de curso frente - Elevador

tiniB4Sensor porta aberta - Prensa cubo;

Atuador horizontal estendido - Prensa cubo

tiniB5Sensor indutivo - Braço

tiniB6Contagem de 795 pulsos pelo HSC

tiniB7Borda de subida - botão START

tB1 Sensor �m de curso - Esteira

tB2 Atuador vertical estendido - Braço

tB3 Atuador horizontal estendido - Braço

tB4 t = 1,5s

tB5 Atuador vertical recuado - Braço

tB6 t = 1s; Atuador vertical estendido - Braço

tB7 Contagem de 810 pulsos pelo HSC

tB8 Atuador horizontal estendido - Braço

tB9 Atuador vertical recuado - Braço

tB10 t = 0,5s

tB11 t = 1s; Atuador vertical estendido - Braço

tB12 Sensor indutivo - Braço

tB12a Contagem de 795 pulsos pelo HSC

tB13 Sensor �m de curso - Esteira

tB14 Atuador horizontal estendido - Braço

tB15 t = 1,5s

tB16 Atuador vertical recuado - Braço

79

tB17 t = 1s; Atuador vertical estendido - Braço

tB18 Contagem de 810 pulsos pelo HSC

tB19 Atuador horizontal estendido - Braço

tB20 Atuador vertical recuado - Braço

tB21 t = 0,5s

tB22 t = 1s; Atuador vertical estendido - Braço

tB23 t = 5s

tB24 Atuador horizontal estendido - Braço

tB25 t = 1,5 segundos

tB26 Atuador vertical recuado - Braço

tB27 t = 1s; Atuador vertical estendido - Braço

tB28 Sensor indutivo - Braço

tB28a Contagem de 795 pulsos pelo HSC

tB29 Atuador horizontal estendido - Braço

tB30 Atuador vertical recuado - Braço

tB31 t = 0,5s

tB32 t = 1s; Atuador vertical estendido - Braço

tB33 λ

tB34 Atuador vertical recuado - Braço

tB35 Sensor indutivo - Braço

tB36 Contagem de 795 pulsos pelo HSC

Para construção da rede de Petri diagnosticadora, é preciso primeiramente mo-

delar a falha a qual deseja-se diagnosticar. A falha analisada e considerada neste

trabalho ocorre no braço mecânico, localizado no módulo 2 da planta mecatrônica, e

trata-se do não funcionamento do sistema a vácuo posicionado em sua extremidade,

cuja função é pegar peças.

80

Ao observar o comportamento normal do sistema, essa falha pode ocorrer em três

momentos dentro de um ciclo de funcionamento. O primeiro e segundo momento

são ao chegar a peça enviada pelo estoque MAG1 e MAG2, respectivamente, ao �m

da esteira. Após isso, o sensor óptico por barreira é ativado, e o braço está então

habilitado a realizar o procedimento de pegar a peça para transportar até a prensa.

Porém, devido à falha, a ação não é realizada, e a peça então permanece no �m da

esteira. O terceiro momento em que a falha pode ocorrer é no instante em que o

braço está habilitado a pegar a peça na prensa para transportar de volta à esteira,

e ao ocorrer a falha, a peça também permanece na prensa. É importante ressaltar

que uma vez ocorrida a falha, o sistema a vácuo não retorna ao seu funcionamento

normal.

Nos três momentos em que a falha pode ocorrer dentro de um ciclo de funciona-

mento, são observadas mudanças no comportamento normal do sistema. A esteira,

caso a falha ocorra em um dos dois momentos em que a peça chega ao �nal de

sua extensão, tem seu comportamento normal interrompido. Isso ocorre devido a

continuação do seu comportamento normal ter como condição a borda de descida

do sensor �m de curso ser igual a 1, o qual somente ocorre no instante em que a

peça é retirada da esteira. Porém, caso a falha ocorra no momento em que o braço

está habilitado a pegar a peça na prensa, o mesmo seguirá seu comportamento nor-

mal de entregar a peça à esteira, a esteira seguirá seu comportamento normal sendo

ligada no sentido contrário ao módulo 2 para descarte da peça, e será inicializado

um novo ciclo. Em seguida, uma peça será entregue novamente à esteira a partir

do estoque MAG1, mas ao chegar ao �m da esteira, o braço realizará o processo de

pegar a peça, falhando novamente, e o comportamento normal da esteira será por

�m interrompido.

O braço mecânico, por sua vez, independente do momento em que a falha ocorra

inicialmente, permanece seguindo seu comportamento normal. Enquanto a esteira

tem seu comportamento interrompido, não transportando peças novas até o braço,

81

o braço permanece realizando o processo de pegar peças no �m da esteira, uma vez

que a condição para que isso aconteça seja o sensor óptico por barreiras no �nal

da esteira estar ativado. E como a ação de pegar peças não está sendo de fato

realizada, fazendo com que a peça permaneça na esteira, essa condição nunca deixa

de ser satisfeita. Enquanto isso, na prensa, não há condições que impossibilitem o

funcionamento normal do braço e, portanto, o mesmo seguirá agindo como se as

peças estivessem sendo pegas e transportadas entre os módulos em todos os ciclos

após a falha.

Com o sistema de automação implementado na planta mecatrônica Cube Assem-

bly, e considerado o comportamento de falha descrito acima, o primeiro passo para

a criação do diagnosticador síncrono é a modelagem do comportamento do sistema

em autômatos. Porém, como será visto a seguir, não serão considerados todos os

eventos e estados do sistema para a modelagem em autômatos. Isso é devido a

muitos desses eventos não ter importância para a diagnosticabilidade síncrona do

sistema. Dessa forma, somente serão considerados os eventos e estados essenciais

para o entendimento do comportamento real e com a devida importância no estudo

da diagnosticabilidade do sistema. Essa redução dos modelos tem como objetivo

facilitar a aprendizagem e entendimento dos conceitos apresentados ao longo desse

trabalho, diminuindo a complexidade na construção e implementação dos algorit-

mos propostos. Com isso, foram considerados 13 eventos apresentados na tabela

5.4, os quais formam o conjunto de eventos Σ do sistema, que pode ser dividido

em Σ = Σo ∪ Σuo, em que Σo = {EP1 , EP2 , LE, DE, BE, LER, DP , BEP , SI, PT} é o

conjunto de eventos observáveis e Σuo = {BPE, BPP , σf} é o conjunto de eventos não

observáveis. O conjunto de evento de falha ΣF do sistema é dado por ΣF = {σf}.

Os eventos BPE e BPP , que signi�cam Braço pega peça na esteira e Braço pega peça

na prensa, respectivamente, foram considerados não observáveis na modelagem do

sistema devido a não existência de sensores presentes no braço capazes de identi�car

se uma peça foi de fato capturada pelo sistema a vácuo do braço.

82

Tabela 5.4: Lista de eventos do sistema prático implementado na planta mecatrônicae seus signi�cados.

Evento Signi�cado

EP1 Empurra primeira peça na esteiraEP2 Empurra segunda peça na esteiraLE Liga esteiraDE Desliga esteiraBPE Braço pega peça na esteiraBE Braço entrega peça à esteiraLER Liga esteira no sentido reversoDP Descarta peçaBEP Braço entrega peça à prensaSI Sensor indutivoPT Prensa terminaBPP Braço pega peça na prensaσf Evento de falha

O sistema foi modelado utilizando-se dois autômatos: (i) o autômato G1, apre-

sentado na �gura 5.16(a), modela o conjunto formado pela esteira e os estoques

de peças MAG1 e MAG2, além de seus respectivos atuadores pneumáticos; (ii) o

autômato G2, apresentado na �gura 5.16(b), modela o comportamento do braço ro-

bótico e da prensa pneumática. O modelo completo do sistema, G, pode ser obtido

realizando-se a composição paralela entre G1 e G2, G = G1 ‖ G2, mostrado na �gura

5.17.

Para melhor entendimento, será explicado inicialmente a modelagem do com-

portamento normal (sem falha) do sistema, para então explicar a modelagem do

comportamento de falha e suas consequências nos autômatos G1 e G2. O autômato

G1, a partir da ocorrência do evento Ep1 , sai do seu estado inicial 0 para o estado

1, o que representa o momento em que a esteira recebe a primeira peça. Após a

primeira peça ser empurrada para a esteira a partir do estoque de peças MAG1,

ocorre o evento LE, em que a esteira é ligada, e a peça começa a ser transportada

em direção ao módulo 2 da planta, representando o estado 2 do autômato. No mo-

mento em que a peça chega ao �m da esteira há a ocorrência do evento DE, em que

83

0 1Ep1

BE

2

3

4

5

6

7

89

10

11

12

LE

DE

BPE

Ep2

LE

DE

BPE

BE

LER

DP

DE

BE

BE

(a) Autômato G1.

0 1

2

3

4

5

67

8

9

10

11

BEP

SI

BPE

SI

σf

PT

SI

BPP

BE 16

15

BE

12

13

14

SI

BPE

BEP

σf

σf

BEP

SI

BEP

SI

PT

(b) Autômato G2.

Figura 5.16: Autômatos G1 e G2 do sistema prático.

a esteira é desligada, levando o autômato ao estado 3, representando o momento

em que a primeira peça está pronta para ser pegue na esteira pelo braço mecânico.

Com isso, a esteira permanece parada até que a peça seja retirada pelo braço através

da ocorrência do evento não observável BPE, levando o autômato ao estado 4, que

representa o momento em que a esteira espera a segunda peça ser empurrada pelo

MAG2. Em seguida, há a ocorrência do evento Ep2 e uma nova peça é entregue à

esteira, levando o sistema para o estado 5, indicando o momento em que a esteira

recebe a segunda peça. E então ocorre novamente o evento LE, saindo do estado 5

para o estado 6, representando o momento em que a segunda peça é transportada

em direção ao módulo 2. A esteira permanece ligada até que a peça percorra toda

sua extensão e chegue ao �nal da esteira, ocorrendo então o evento DE, levando o

autômato ao estado 7, momento em que a segunda peça está pronta para ser pegue

pelo braço na esteira. Da mesma forma, a esteira permanece parada até a ocorrên-

cia novamente do evento BPE, o qual ao ocorrer leva o autômato ao estado 8. Tal

estado representa o momento em que o módulo 1 está a espera do cubo montado ser

84

0,0,N

Ep 1

LE

1,0,N

0,10,Fσf

12,16,F

2,0,N

DE

3,0,N

BPE

4,1,N

Ep 2

5,1,N

LE

6,1,N

DE

7,1,N B

EP

SI

7,2,N

7,3,N

BEP

SI

6,2,N

6,3,N

BEP

SI

5,2,N

5,3,N

BEP

SI

4,2,N

4,3,N

Ep 2

LE

DE

Ep 2

LE

DE

1,10,F

2,10,F

σf

σf

3,10,Fσf

LE

Ep 1

DE

0,11,FBEP

1,11,F

2,11,F

3,11,F

LE

Ep 1

DE

BEP

BEP

BEP

0,12,FSI

1,12,F

2,12,F

3,12,F

LE

Ep 1

DE

SI

SI

SI

0,13,FBEP

1,13,F

2,13,F

3,13,F

LE

Ep 1

DE

BEP

BEP

BEP

0,14,FPT

1,14,F

2,14,F

3,14,F

LE

Ep 1

DE

PT

PT

PT

0,15,FSI

1,15,F

2,15,F

3,15,F

LE

Ep 1

DE

SI

SI

SI

4,12,Fσf

5,12,F

6,12,F

σf

σf

7,12,Fσf

Ep 2

LE

DE

4,13,FBEP

5,13,F

6,13,F

7,13,F

LE

Ep 2

DE

BEP

BEP

BEP

4,14,FPT

5,14,F

6,14,F

7,14,F

LE

Ep 2

DE

PT

PT

PT

4,15,FSI

5,15,F

6,15,F

7,15,F

LE

Ep 2

DE

SI

SI

SI

BE

BE

12,10,F

12,11,F

12,12,F

12,15,F

12,14,F

12,13,F

SI

BEP

SI

BEP

PT

SI

BE

8,4,N

BPE

BEP

8,5,N P

T

8,6,N B

PP

8,7,N SI

8,8,N B

E

9,9,N

8,14,F

8,15,FSIσf

SI

9,0,N

10,0,N

DP

11,0,N

DE

LER

10,9,N

DP

11,9,N

DE

LER

SI

SI

0,9,N

Ep 1

1,9,N

LE

2,9,N

DE

3,9,N

SI

SI

SI

SI

9,16,F

BE

9,10,F

BEP

SI

9,12,F

BEP

SI

9,11,F

9,13,F

PT

9,14,F

9,15,F

SI

10,15,F LER

10,14,F LER

SI

10,13,F LER

10,12,F LER

10,11,F LER

10,10,F LER

SI

10,16,F LER

PT

BEP

SI

BEP

11,15,F DP

11,14,F DP

SI

11,13,F DP

11,12,F DP

11,11,F DP

11,10,F DP

SI

11,16,F DP

PT

BEP

SI

BEP

SI

0,16,F

Figura 5.17: Autômato G do sistema prático.

entregue pelo braço à esteira, ação representada pelo evento BE. Com a ocorrência

do evento BE, o sistema sai do estado 8 para o estado 9, representando o momento

em que o módulo 1 recebeu o cubo montado e pode começar o processo de descarte.

Para o descarte da peça, há primeiramente a ocorrência do evento LER, em que a

85

esteira é ligada no sentido contrário ao módulo 2, e o sistema é levado ao estado

10, indicando o momento em que o cubo é transportado para fora da esteira. Na

sequência, há a ocorrência do evento DP , em que a peça é por �m descartada na

outra extremidade da esteira, levando o autômato ao estado 11, o que representa o

momento em que a peça foi descartada, havendo então a ocorrência do evento DE

novamente, iniciando um novo ciclo e retornando ao estado inicial 0.

O comportamento de falha do módulo 1 do sistema é modelado pela ocorrência

do evento BE tanto no estado 3 quanto no estado 7 do autômato G1, levando ao

estado adicional 12, em que o autômato permanecerá inde�nidamente. Isso ocorre

pois após a falha considerada ocorrer no módulo 2 da planta, o evento BPE não irá

mais acontecer, e a esteira permanecerá então parada. Com isso, o autômato G1 se

manterá no estado 3 ou 7, que são os estados que representam os dois momentos em

que a esteira permanece parada com uma peça no �nal de sua extensão pronta para

ser pegue pelo braço mecânico. Porém, como abordado anteriormente, mesmo após

ocorrer o evento de falha, o braço seguirá seu comportamento de tentar pegar peças

e entregá-las aos seus respectivos lugares. Portanto, após a ocorrência do evento de

falha, o autômato G1 seguirá seu comportamento normal até chegar ao estado 3 ou

7, e permanecerá no estado em questão até que o evento BE ocorra, indicando que

o braço tentou entregar o cubo à esteira, levando o autômato G1 ao estado 12, no

qual somente é possível a ocorrência do evento BE. Com isso, a ação do braço de

continuar tentando entregar peças à esteira é modelada adequadamente.

Analisando, agora, a modelagem do comportamento do módulo 2 da planta, e ini-

cializando com a explicação da modelagem de seu comportamento normal, observa-se

que o autômato G2 sai de seu estado inicial 0 ao ocorrer o evento BPE, representando

a ação em que o braço pega peça na esteira, para o estado 1. Tal estado representa a

situação em que a peça está sendo transportada da esteira para a prensa pelo braço.

Portanto, após o braço pegar a primeira peça na esteira, o mesmo entrega à prensa

com a ocorrência do evento BEP , levando o autômato ao estado 2, que representa a

86

calibração do braço mecânico após a entrega da peça. Em seguida, há a ocorrência

o evento SI, representando a ativação do sensor indutivo utilizado na calibração do

braço, levando o autômato ao estado 3, momento em que o braço está pronto para

pegar a segunda peça na esteira. Na sequência, uma nova peça é pega pelo braço

na esteira através da ocorrência do evento BPE, levando o autômato ao estado 4,

representando o momento em que a segunda peça está sendo transportada da es-

teira para a prensa. E, então, ocorre novamente o evento BEP , Braço entrega peça à

prensa, levando o autômato ao estado 5, em que o braço está a espera da �nalização

do processo de prensar. Com a ocorrência do evento PT , em que a prensa �naliza o

prensamento das peças, o autômato é levado ao estado 6, indicando o momento em

que a prensa espera que o braço pegue o cubo montado. Logo após há a ocorrência

do evento BPP , Braço pega peça na prensa, e ao pegar a peça o autômato é levado

ao estado 7, situação que indica novamente a calibração do braço mecânico. Então,

novamente ocorre o evento SI, levando o autômato ao estado 8, representando o

momento em que o cubo é transportado para a esteira. Em seguida, ocorre o evento

BE, em que o cubo é entregue à esteira, levando o autômato G2 ao estado 9, repre-

sentando novamente a calibração do braço após entregar o cubo. E, por �m, há a

ocorrência do evento SI, levando o autômato ao estado inicial 0 novamente.

A falha considerada trata-se do não funcionamento do sistema a vácuo posicionado

na extremidade do braço e utilizado para pegar peças, que pode ocorrer em três

momentos durante o comportamento normal do módulo 2 da planta. No modelo

representado pelo autômato G2, esses três momentos são os estados 0, 3 e 6, os quais

representam o momento em que o braço está habilitado a pegar, respectivamente,

a primeira peça na esteira, a segunda peça na esteira e a peça no prensa cubo. De

forma a representar �elmente o comportamento real do sistema após falha, ao ocorrer

o evento σf o autômato G2 permanece em um ciclo que pode ser iniciado no estado

10, 12 ou 14, dependendo do primeiro instante em que ocorrer a falha. Caso o ciclo

seja iniciado, por exemplo, no estado 10, ou seja, caso o evento de falha σf ocorra no

momento em que o braço está habilitado a pegar a primeira peça na esteira, situação

87

representada pelo estado 0, a sequência de eventos s = BEP SI BEP PT SI BE SI

irá se repetir de forma indeterminada. Com isso, o comportamento real do sistema

após falha em que o módulo 2 continua o seu processo sem perceber a ocorrência da

falha é então modelado adequadamente.

Na seção seguinte é apresentada a veri�cação da diagnosticabilidade síncrona com

condições do sistema modelado por G1 e G2, assim como a construção da rede de

Petri diagnosticadora síncrona com condições e sua implementação em diagrama

ladder.

5.3 Implementação do diagnosticador para a planta

montadora de cubos

A partir de toda a fundamentação teórica apresentada ao longo dos capítulos

anteriores, do estudo sobre a veri�cação da diagnosticabilidade abordado na seção

5.1.1, algoritmos para implementação de um diagnosticador síncrono com condições

para sistema modular abordado na seção 5.1.2, e a partir da modelagem do sis-

tema obtida na seção 5.2, é possível iniciar a parte prática, em que a aplicação dos

algoritmos é apresentada.

Com o sistema modelado pelos autômatosG1 eG2 apresentados nas �guras 5.16(a)

e 5.16(b), respectivamente, o próximo passo trata-se da veri�cação da diagnostica-

bilidade do sistema. Através da aplicação do algoritmo 2, apresentado na seção

5.1.1, aos autômatos G1 e G2, é obtido o autômato veri�cador GV,C apresentado na

�gura A.1 localizada no apêndice desse trabalho. Analisando GV,C , é possível notar

que não há ciclos de estados com rótulo F e, portanto, é provado que o sistema é

sincronamente diagnosticável com condições.

Com isso, é possível então realizar a construção do diagnosticador modular sín-

crono com condições a partir da metodologia apresentada na seção 5.1.2. Ao aplicar

88

os algoritmos 3 a 8 aos autômatos G1 e G2, obtém-se a rede de Petri diagnostica-

dora síncrona com condições NCD apresentada na �gura 5.18. Para melhor entender

seu funcionamento, e supondo que a falha tenha ocorrido antes de o braço robótico

pegar a primeira peça, é possível observar como o diagnóstico da falha é realizado

analisando a sequência de eventos Ep1 LE DE BEP SI BEP . Tal sequência indica o

comportamento real em que uma peça é empurrada para a esteira, a esteira é ligada

e desligada no instante em que o sensor �m de curso da esteira é ativado, o braço

tenta pegar a primeira peça na esteira e a entrega à prensa, em seguida o braço é

calibrado e ao ver que o sensor �m de curso da esteira está ativado, tenta pegar a

peça novamente na esteira para entregar à prensa. Observando a evolução das �chas

na rede de Petri NCD apresentada na �gura 5.18, nota-se que as transições t1,0, t1,1 e

t1,2 são disparadas após a ocorrência dos eventos Ep1 LE DE, colocando uma �cha

nos lugares 3N1 e 4N1. Em seguida, as transições t2,1, t2,10 e t2,2 são disparadas com

a ocorrência dos eventos BEP SI, colocando �chas nos lugares 3N2 e 4N2. Porém,

ao ocorrer novamente o evento BEP , a transição t2,4 não está habilitada devido à

condição de o lugar 8N1 possuir uma �cha não ser satisfeita, dessa forma as transi-

ções t2,22 e t2,13 são disparadas, retirando as �chas dos lugares 3N2 e 4N2 e com isso

habilitando a transição tf2 . Ao tf2 ser disparada, uma �cha é retirada de PN2 e colo-

cada em PF , indicando a ocorrência de uma falha. Note que a adição das condições

foi essencial para que a falha fosse diagnosticada na segunda ocorrência do evento

BEP , caso não houvessem as condições seria necessário observar mais eventos para

que o diagnóstico fosse realizado, mostrando assim uma vantagem e maior rapidez

no diagnóstico.

Por �m, com a obtenção da RPDSC é possível realizar a conversão para diagrama

ladder, utilizando o método aborado em MOREIRA e BASILIO [16] e adaptado em

CABRAL et al. [11]. Os detalhes da conversão da rede de Petri diagnosticadora

síncrona com condições, NCD , para diagrama ladder são apresentados a seguir.

89

Ep 1.[0 N

2,9

N2]

LE.[0 N

2,9

N2]

DE.[0 N

2,9

N2]

Ep 2.[1 N

2,2

N2,3

N2]

LE.[1 N

2,2

N2,3

N2]

DE.[1 N

2,2

N2,3

N2]

LER.[0 N

2,9

N2]

DE.[0 N

2,9

N2]

BE.[8 N

2]

ND1

LE,D

E,E

p 2,B

E,L

ER,D

P

0N1

Ep 1,D

E,E

p 2,B

E,L

ER,D

P

Ep 1,L

E,E

p 2,B

E,L

ER,D

P

Ep 1,L

E,D

E,B

E,L

ER,D

P

Ep 1,D

E,E

p 2,B

E,L

ER,D

P

Ep 1,L

E,E

p 2,B

E,L

ER,D

P

Ep 1,L

E,D

E,E

p 2,L

ER,D

P

Ep 1,L

E,D

E,E

p 2,B

E,D

PE

p 1,L

E,D

E,

Ep 1,L

E,E

p 2,

Ep 2,B

E,L

ER

BE,L

ER,D

P

PN1

ND2

SI,P

T,B

E

SI.[4 N

1,5

N1,6

N1,7

N1]

BEP,P

T,B

E

BEP.[8 N

1]

BEP,S

I,B

E

PT.[8 N

1]

BEP,S

I,P

T

SI.[8 N

1]

BEP,P

T,B

E

BEP,P

T,B

E

BE.[8 N

1]

SI.[0 N

1,1

N1,2

N1,3

N1,9

N1,10 N

1,11 N

1]

BEP,S

I,

PN2

PF

PT,B

E

BEP,S

I,

PT,B

E

BEP,S

I,

PT,B

E

Ep 1,L

E,D

E,E

p 2,

BE,L

ER,D

P

t 1,0

t 1,12

t 1,1

LE. [0 N

2].[9

N2]

1N1

t 1,13

2N1

t 1,14

t 1,2 4N

13N

1E

p 2.[1 N

2].[2

N2].[3

N2]

t 1,4

t 1,5

t 1,65N

1

6N1

8N1

t 1,8

9N1

LER.[0 N

2].[9

N2]

t 1,9

t 1,10

10N

1

11N

1

t 1,11

BEP. [4 N

1].[5

N1].[6

N1].[7

N1]

t 2,1

t 2,11

1N2

t 2,2

2N2

SI.[4 N

1].[5

N1].[6

N1].[7

N1]

t 2,12

0N2

t 2,10

3N2

t 2,4

4N2

t 2,13

BEP.[8 N

1]

t 2,5

5N2

PT.[8 N

1]

BE.[8 N

1]

8N2

t 2,16

6N2

SI.[8 N

1]

7N2

t 2,8

SI.[0 N

1].[1

N1].[2

N1].[3

N1].[9

N1].[10 N

1].[11 N

1]

9N2

t 2,9

t f2

t f1

t 1,25

t 1,24

Ep 1.[0 N

2].[9

N2]

DE. [0 N

2].[9

N2]

t 1,26

t 1,27

LE. [1 N

2].[2

N2].[3

N2]

t 1,28

DE.[1 N

2].[2

N2].[3

N2]

t 1,29

t 1,16

t 1,17

t 1,18

BE.[8 N

2]

t 1,30

t 1,20

7N1

t 1,21

t 1,31

t 1,22

DP. [0 N

2].[9

N2]

t 1,32

DP.[0 N

2,9

N2]

t 1,19

t 1,23

DE.[0 N

2].[9

N2]

t 1,33

Ep 1,L

E,D

E,

Ep 2,B

E,L

ER,D

P

t 1,15

BEP.[4 N

1,5

N1,6

N1,7

N1]

t 2,20

t 2,21

SI,P

T,B

E

t 2,14

t 2,22 t 2,15

t 2,23 t 2,18

t 2,25t 2,17

t 2,24

t 2,26

t 2,19

t 2,7

Figura 5.18: Rede de Petri diagnosticadora com condições NCD da planta.

90

5.3.1 Conversão da rede de Petri diagnosticadora com con-

dições em diagrama ladder

Com a obtenção da rede de Petri diagnosticadora síncrona com condições apre-

sentada na �gura 5.18, o próximo passo trata-se de sua implementação em diagrama

ladder em um CLP conectado à planta montadora de cubos. Nesse trabalho, a im-

plementação foi feita no mesmo CLP usado para o controle do sistema. Para isso,

foi feita a conversão da rede de Petri diagnosticadora para diagrama ladder através

do algoritmo proposto em CABRAL et al. [11], o qual trata-se de uma adaptação

feita a partir da metodologia abordada em MOREIRA e BASILIO [16].

Esse método propõe a divisão do diagrama ladder em cinco módulos, implemen-

tados em uma ordem predeterminada, de forma a obter uma melhor organização e

evitar problemas como o efeito avalanche. Os cinco módulos, e a ordem proposta,

são: (i) módulo de inicialização; (ii) módulo de eventos externos; (iii) módulo das

condições para a ocorrência de transições; (iv) módulo da dinâmica; e (v) módulo

de alarme.

O módulo de inicialização tem como objetivo realizar a marcação inicial do sis-

tema. Isso se dá através de um contato normalmente fechado conectado a bobinas

do tipo SET, em que cada bobina está associada a um lugar inicialmente marcado.

O contato normalmente fechado da inicialização é aberto através de outra bobina

SET atribuída à sua variável. Dessa forma, as marcações iniciais são realizadas so-

mente no momento em que o CLP é ligado, ou seja, no primeiro ciclo de varredura.

Na �gura 5.19 é apresentando o módulo de inicialização do diagnosticador síncrono

mostrado na �gura 5.18.

O segundo módulo a ser implementado é o módulo de eventos. Esse módulo tem

como função permitir que o sistema reconheça a ocorrência de eventos. Por exemplo,

no caso em que um evento está associado a uma borda de subida de um sensor,

este sensor deve ser associado um contato tipo P, e deve estar conectado à bobina

91

I0 0N1

S

0N2

I0

S

S

PN1

S

PN2

S

1N2

S

Figura 5.19: Diagrama ladder - Módulo de inicialização.

correspondente ao evento. Dessa forma, no momento em que o sistema perceber a

borda de subida do sensor em questão, o evento associado a ele será reconhecido. Em

casos em que o diagnosticador é implementando no mesmo CLP que possui o controle

da planta, é possível ainda considerar como evento certos comandos acionados pela

planta, por exemplo, o comando responsável por ligar a esteira pode ser associado

a um contato tipo P e, no momento em que for acionado pelo controle da planta,

será observado pelo diagnosticador através da bobina ligada a esse contato tipo P.

O módulo de eventos da rede de Petri diagnosticadora representada na �gura 5.18,

é apresentado na �gura 5.20.

Em seguida, a implementação do módulo de condições para o disparo das transi-

ções deve ser realizada. Esse módulo serve para de�nir as condições para o disparo

de cada transição do sistema. Ou seja, se uma transição tem como condições um

determinado lugar possuir uma �cha e a ocorrência de um determinado evento, o

lugar e evento em questão devem estar associados a contatos normalmente aberto,

e ambos conectados a uma bobina associada à transição. Dessa forma, a bobina

associada à transição somente será energizada se tanto o lugar quanto o evento pos-

suírem nível lógico alto, funcionando como condições para o disparo da transição.

Nas �guras 5.21, 5.22 e 5.23 é apresentado o módulo das condições do diagnosticador

92

Ep1s P1

Ep2s P2

SIs ind

PTc PT

P

P

P

P

LEc LE

P

DEc DE

P

BEc BE

P

LERc LER

P

DPc DP

P

BEPc BEP

P

Figura 5.20: Diagrama ladder - Módulo dos eventos.

apresentando na 5.18.

Na sequência do módulo das condições, o quarto módulo a ser implementado é

do módulo da dinâmica, o qual possui a função de realizar a dinâmica das �chas

nos lugares do sistema em função dos disparos das transições. Por exemplo, ao ser

disparada uma transição responsável por tirar uma �cha de um lugar e colocá-la

em um outro lugar, essa transição deve estar associada a um contato normalmente

aberto, e conectada a duas bobinas. Uma bobina deve ser do tipo RESET e associada

ao lugar em que a �cha deve ser retirada, e a segunda bobina deve ser do tipo SET e

associada ao lugar que deve receber a �cha. O módulo da dinâmica do diagnosticador

síncrono da �gura 5.18 é apresentado na �gura 5.24.

Para �nalizar o diagrama ladder do diagnosticador, o quinto e último módulo

deve ser implementado. O módulo de alarme possibilita que a ocorrência de um

93

evento de falha seja associado ao alarme de�nido no sistema, como por exemplo

uma lâmpada, sirene ou qualquer sinalização desejada para indicar uma situação de

falha. O lugar correspondente a ocorrência de uma falha deve ser associado a um

contato normalmente aberto, e a partir do momento em que este lugar recebe uma

�cha, ou seja, o momento em que contato normalmente aberto é acionado, a bobina

de alarme é energizada, e a sinalização para ocorrência de falha habilitada. A ação

de alarme implementada foi o desligamento de toda a planta, além do acendimento

de uma lâmpada vermelha no painel. Isso pode ser visto na �gura 5.25, a qual

representa o módulo de alarme da rede de Petri diagnosticadora apresentada na

�gura 5.18.

O diagrama ladder apresentado foi implementado no CLP conectado à planta me-

catrônica Cube Assembly. Após sua implementação e execução, a falha considerada

foi simulada e corretamente diagnosticada, indicando que o trabalho foi concluído

com sucesso.

94

0N1 t1,12LE

DE

Ep2

BE

LER

DP

1N1 t1,13Ep1

DE

Ep2

BE

LER

DP

2N1 t1,14Ep1

LE

Ep2

BE

LER

DP

3N1 t1,15Ep1

LE

Ep2

BE

LER

DP

DE

4N1 t1,16Ep1

LE

DE

BE

LER

DP

0N1 0N2Ep1

9N2

t1,0

1N1 LE 0N2

9N2

t1,1

2N1 DE 0N2

9N2

t1,2

4N1 Ep2 1N2

2N2

t1,4

3N2

5N1 LE 1N2

2N2

t1,5

3N2

6N1 DE 1N2

2N2

t1,6

3N2

8N1 BE 8N2 t1,8

9N1 LER 0N2

9N2

t1,9

10N1 DP 0N2

9N2

t1,10

11N1 DE 0N2

9N2

t1,11

5N1 t1,17Ep1

Ep2

DE

BE

LER

DP

6N1 t1,18Ep1

Ep2

BE

LE

LER

DP

7N1 t1,19Ep1

Ep2

DE

LE

LER

DP

BE

8N1 t1,20Ep1

Ep2

DE

LE

LER

DP

Figura 5.21: Diagrama ladder - Módulo das condições - Parte 1.

95

0N1 t1,240N2 9N2Ep1

9N1 t1,21Ep1

Ep2

DE

LE

BE

DP

10N1 t1,22Ep1

Ep2

DE

LE

BE

LER

11N1 t1,23Ep1

Ep2

DP

LE

BE

LER

1N1 t1,250N2 9N2LE

2N1 t1,260N2 9N2DE

4N1 t1,271N2 2N2Ep2 3N2

5N1 t1,281N2 2N2LE 3N2

6N1 t1,291N2 2N2DE 3N2

8N1 t1,308N2BE

9N1 t1,310N2 9N2LER

10N1 t1,320N2 9N2DP

11N1 t1,330N2 9N2DE

1N2 BEP 4N1

5N1

t2,1

6N1

7N1

2N2 SI 4N1

5N1

t2,2

6N1

7N1

4N2 BEP 8N1 t2,4

5N2 PT 8N1 t2,5

7N2 SI 8N1 t2,7

8N2 BE 8N1 t2,8

9N2 SI 0N1

1N1

t2,9

2N1

3N1

9N1

10N1

11N1

0N2 t2,10BEP

SI

PT

BE

1N2 t2,11SI

PT

BE

2N2 t2,12BEP

PT

BE

3N2 t2,13BEP

SI

PT

BE

4N2 t2,14SI

PT

BE

5N2 t2,15BEP

PT

BE

6N2 t2,16BEP

SI

BE

7N2 t2,17BEP

PT

PT

BE

8N2 t2,18BEP

SI

PT

9N2 t2,19BEP

PT

BE

Figura 5.22: Diagrama ladder - Módulo das condições - Parte 2.

96

1N2 t2,204N1 5N1BEP 6N1 7N1

2N2 t2,214N1 5N1SI 6N1 7N1

4N2 t2,228N1BEP

5N2 t2,238N1

SI7N2 t2,248N1

PT

8N2 t2,258N1BE

9N2 t2,260N1 1N1SI 2N1 3N1 9N1 10N1 11N1

PN1 tf10N1 1N1 2N1 3N1 9N1 10N1 11N14N1 5N1 6N1 7N1 8N1

PN2 0N2 1N2 2N2 3N2 9N24N2 5N2 6N2 7N2 8N2 tf2

Figura 5.23: Diagrama ladder - Módulo das condições - Parte 3.

0N1

S

t1,0R

S

t1,1R

1N1

1N1

2N1

S

t1,4R

S

t1,5R

5N1

5N1

6N1

4N1

S

t1,2R2N1

3N1

4N1

S

S

t1,6R6N1

7N1

S8N1

S

t1,8R8N1

9N1

S

t1,9R9N1

10N1

S

t1,10R

10N1

11N1

S

t1,11R

0N1

10N1

t1,12R0N1

t1,13R1N1

t1,14R2N1

t1,15R3N1

t1,16R4N1

t1,17R5N1

t1,18R6N1

t1,19R7N1

t1,20R8N1

t1,21R9N1

t1,22R

10N1

t1,23R

11N1

t1,24R0N1

t1,25R1N1

t1,26R2N1

t1,27R4N1

t1,28R5N1

t1,29R6N1

t1,30R8N1

t1,31R9N1

t1,32R

10N1

t1,33R

11N1

1N2

S

t2,1R

2N2

2N2

S

t2,2R

3N2

S4N2

4N2

S

t2,4R

5N2

5N2

S

t2,5R

6N2

7N2

S

t2,7R

8N2

S7N2

8N2

S

t2,8R

9N2

9N2

S

t2,9R

0N2

S1N2

t2,10R0N2

t2,11R1N2

t2,12R2N2

t2,13R3N2

t2,14R4N2

t2,15R5N2

t2,16R6N2

t2,17R7N2

t2,18R8N2

t2,19R9N2

t2,20R

2N2t2,21R

1N2

t2,22R

5N2t2,23R

7N2t2,24R

4N2

t2,25R8N2

t2,26R9N2

Figura 5.24: Diagrama ladder - Módulo da dinâmica.

97

Lamp VermelhaPF

S

RRede 1

RRede 2

Figura 5.25: Diagrama ladder - Módulo de alarme.

98

Capítulo 6

Conclusão

Neste trabalho, primeiramente foi realizado o controle da planta mecatrônica edu-

cacional Cube Assembly, localizada no Laboratório de Controle e Automação da

Universidade Federal do Rio de Janeiro. Em seguida, foram estudados os conceitos

de sistemas a eventos discretos para então apresentar a construção e implementa-

ção de um diagnosticador de falhas síncrono online com condições aplicado a um

sistema de manufaturas. Um modelo do sistema foi obtido através de autômatos

�nitos, e o diagnóstico de falhas realizado através de uma rede de Petri diagnosti-

cadora síncrona com condições. Por �m, um método de conversão de rede de Petri

para diagrama ladder foi utilizado para implementação do diagnosticador na planta

mecatrônica.

A metodologia abordada para criação da rede de Petri diagnosticadora síncrona

utiliza a característica modular do sistema. Dessa forma, a construção do diagnos-

ticador não é feita a partir do modelo completo da planta, mas sim a partir dos

modelos de seus componentes, o que faz com que o esforço computacional seja re-

duzido, como é apresentado em CABRAL et al. [12]. Neste trabalho, foi proposta a

adição de novas condições ao diagnosticador, com o objetivo de eliminar do conjunto

de sequências normais considerado pelo diagnosticador, sequências que não são pos-

síveis de serem realizadas pela planta. Com isso, o risco de existir uma sequência de

falha que se confunde com uma sequência normal diminui. A partir do sistema apre-

99

sentado e da falha considerada neste trabalho, foi possível observar que a adição das

novas condições foi essencial para que a falha fosse diagnosticada adequadamente a

partir da observação de uma quantidade menor de eventos.

Como trabalhos futuros é proposto o estudo de um método que seja capaz de

diminuir ainda mais a linguagem normal considerada pelo diagnosticador, de modo

a eliminar todas as sequências presentes na linguagem que não são possíveis de se-

rem realizadas pela planta. Com isso, não seria necessário a utilização de um novo

método para veri�cação da diagnosticabilidade de sistemas modulares. Outra pro-

posta de trabalho futuro é classi�car quais características, se há um conjunto de

características, que um sistema deve ter de forma a garantir que a aplicação do

diagnosticador síncrono com condições funcione. Uma última proposta de traba-

lho futuro é o estudo e implementação do diagnosticador síncrono em um sistema

considerando mais de um tipo de falha. O estudo pode ser realizado de modo que

em um primeiro diagnosticador, apenas uma falha seja considerada como evento de

falha enquanto a outra seja considerada como parte do comportamento normal do

sistema, e em um segundo diagnosticador, a primeira falha seja considerada parte

do comportamento normal enquanto apenas a segunda é considerada um evento de

falha. Com isso, diferentes alarmes para cada tipo de falha podem ser utilizados,

de forma que se apenas um acionar, é possível identi�car qual falha ocorreu, e se os

dois forem acionados, as duas falhas ocorreram.

100

Referências Bibliográ�cas

[1] CASSANDRAS, C., LAFORTUNE, S. Introduction do Discrete Event System.

Secaucus, NJ, Springer-Verlag New York, Inc., 2008.

[2] HOPCROFT, J., MOTWANI, R., ULLMAN, J. Introduction to Automata The-

ory, Languages, and Computation. Prentice Hall, 2006.

[3] LAWSON, M. Finite Automata. Chapman and Hall/CRC, 2003.

[4] DAVID, R., ALLA, H. Discrete, Continuous and Hybrid Petri Nets. Springer,

2005.

[5] SAMPATH, M., SENGUPTA, R., LAFORTUNE, S. �Diagnosability of discrete-

event systems�, IEEE Trans. on Automatic Control, v. 40, n. 9, pp. 1555�

1575, 1995.

[6] SAMPATH, M., SENGUPTA, R., LAFORTUNE, S. �Failure diagnosis using

discrete-event models�, IEEE Trans. on Control Systems Technology, v. 4,

n. 2, pp. 105�124, 1996.

[7] QIU, W., KUMAR, R. �Decentralized failure diagnosis of discrete event systems�,

IEEE Transactions on Systems, Man, and Cybernetics Part A:Systems

and Humans, v. 36, n. 2, 2006.

[8] CARVALHO, L. K., BASILIO, J. C., MOREIRA, M. V. �Robust diagnosis of

discrete-event systems against intermittent loss of observations�, Automa-

tica, v. 48, n. 9, pp. 2068�2078, 2012.

[9] CARVALHO, L. K., BASILIO, J. C., MOREIRA, M. V. �Robust diagnosis of

discrete-event systems against permanent loss of observations�, Automa-

tica, v. 49, n. 1, pp. 223�231, 2013.

[10] CABASINO, M., GIUA, A., LAFORTUNE, S. �A New Approach for Diagno-

sability Analysis of Petri Nets using Veri�ers Nets�, IEEE Transactions

on Automatic Control, v. 57, n. 12, pp. 3104�3117, 2012.

101

[11] CABRAL, F. G., MOREIRA, M. V., DIENE, O. �A Petri net diagnoser for dis-

crete event systems modeled by �nite state automata�, IEEE Transactions

on Automatic Control, v. 60, n. 1, pp. 59�71, 2014.

[12] CABRAL, F. G., MOREIRA, M. V., DIENE, O. �Online fault diagnosis of

modular discrete-event systems�, 2015 54th IEEE Conference on Decision

and Control (CDC), pp. 4450�4455, 2015.

[13] LUCIO, M. L. �Diagnóstico de falhas sincronizado de uma planta de manufa-

tura�, Projeto de graduação, Universidade Federal do Rio de Janeiro, Rio

de Janeiro, RJ, Brasil, 2015.

[14] JUNIOR, F. L. �Automação de uma planta mecatrônica modelada por uma rede

de Petri interpretada para controle�, Projeto de graduação, Universidade

Federal do Rio de Janeiro, Rio de Janeiro, RJ, Brasil, 2014.

[15] ISO/IEC. �International standard IEC 61131-3�. ISO/IEC, 2001.

[16] MOREIRA, M. V., BASILIO, J. C. �Bridging the Gap Between Design and Im-

plementation of Discrete-Event Controllers�, IEEE Transactions on Au-

tomation Science and Engineering, v. 11, n. 1, pp. 48�65, 2014.

[17] CABRAL, F. G., MOREIRA, M. V., DIENE, O. �Online fault diagnosis of mo-

dular discrete-event systems�, IEEE Transactions on Automatic Control,

p. Enviado para publicação.

102

Apêndice A

Informações complementares

103

Ep 1

0,0,N

,0,0

1,0,N

,1,0

2,0,N

,2,0

3,0,N

,3,0

3,0,N

,4,0

3,0,N

,4,1

4,1,N

,4,1

5,1,N

,5,1

6,1,N

,6,1

0,10,F

,0,0

1,10,F

,1,0

2,10,F

,2,0

3,10,F

,3,0

σf

LE

DE

BPER1

BPER2

BPE

Ep 1

Ep 2

LE

4,2,N

,4,2

BEP

3,0,N

,3,1

4,1,N

,3,1

BPER1

4,1,N

,3,0

4,1,N

,4,0

BPER1

BPE

BPER2

BPE

BPER2

4,3,N

,4,3

SI

4,12,F

,4,3

σf

Ep 2

Ep 2

Ep 2

5,2,N

,5,2

BEP

5,3,N

,5,3

SI

5,12,F

,5,3

6,2,N

,6,2

6,3,N

,6,3

6,12,F

,6,3

BEP

SI

LE

LE

LE

DE

DE

DE

DE

7,1,N

,7,1

7,2,N

,7,2

BEP

7,3,N

,7,3

SI

7,12,F

,7,3

σf

8,4,N

,7,3

BPER1

BPER2

7,3,N

,8,3

7,3,N

,8,4

8,4,N

,8,3

7,3,N

,7,4

BPE

8,4,N

,7,4

BPER1

BPE

BPER2

8,4,N

,8,4

BPER2

BPE

8,5,N

,8,5

BEP

8,6,N

,8,6

SI

8,6,N

,8,7

PT

7,12,F

,8,3

7,12,F

,8,4

7,12,F

,7,4B

PER1

BPER2

BPER2

BPER1

7,13,F

,8,5

7,14,F

,8,6

7,14,F

,8,7

12,16,F

,9,9

7,15,F

,8,8

BPPR2

BE

12,10,F

,9,0

3,10,F

,4,0

3,10,F

,4,1

3,10,F

,3,1

BPER1

BPER2

BPER2

BPER1

3,11,F

,4,2

BEP

3,12,F

,4,3

0,16,F

,0,9

DE11,16,F

,11,9

10,16,F

,10,9

DP

LER9,16,F

,9,9

SI

PT

8,14,F

,8,7

11,10,F

,11,0

DP10,10,F

,10,0

9,10,F

,9,0

LER

8,15,F

,8,8

BPPR2

SI

SI

SI

DE

SI

10,9,N

,10,9

9,9,N

,9,9

SI

9,0,N

,9,0

10,0,N

,10,0

LER

SI

8,8,N

,8,8

σf

11,9,N

,11,9

SI

11,0,N

,11,0

0,9,N

,0,9

2,9,N

,2,9

1,9,N

,1,9

3,9,N

,3,9

DE

LE

Ep 1

BE

DP

DE

LE

DE

LER

DP

DE

SI

SI

SI

0,10,F

,0,1

1,10,F

,1,1

2,10,F

,2,1

σf

σf

σf

σf

σf

σf

2,0,N

,2,1

1,0,N

,1,1

0,0,N

,0,1

BPER2

BPER2

BPER2

3,12,F

,4,4

BPER2

4,3,N

,4,4

5,3,N

,5,4

6,3,N

,6,4

BPER2

BPER2

BPER2

12,10,F

,9,1

BPE

BPER1

BPER2

8,14,F

,8,6

SI

BPER2

BPER2

BPER2

SI

σf

σf

σf

σf

BPER2

4,12,F

,4,4

5,12,F

,5,4

BPER2

σf

σf

σf

σf

BPER2

6,12,F

,6,4

BPER1

σf

σf

σf

BEP

SI

BPER2

BE

BPER2

BPER2

BPER2

9,10,F

,9,1

10,10,F

,10,1

11,10,F

,11,1

8,7,N

,8,6

8,7,N

,8,7

BPP

BPPR2

BPPR2

BPP

11,0,N

,11,1

10,0,N

,10,1

9,0,N

,9,1

BPER2

BPER2

BPER2

Figura A.1: Autômato veri�cador GV,C da planta.

104