diagnÓstico de falhas em uma planta modular...
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
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
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