DIAGNOSTICADOR REDE DE PETRI PARA UM SED MODELADO

Transcrição

DIAGNOSTICADOR REDE DE PETRI PARA UM SED MODELADO
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
DIAGNOSTICADOR REDE DE PETRI PARA UM SED MODELADO POR UM
AUTÔMATO FINITO
Marcos V. Moreira∗, Felipe G. Cabral†, Oumar Diene†
∗
†
COPPE-Programa de Engenharia Elétrica, Universidade Federal do Rio de Janeiro, Cidade
Universitária, Ilha do Fundão, Rio de Janeiro, 21.945-970, RJ, Brasil
Departamento de Engenharia Elétrica, Universidade Federal do Rio de Janeiro, Cidade Universitária,
Ilha do Fundão, Rio de Janeiro, 21.945-970, RJ, Brasil
Emails: [email protected], [email protected], [email protected]
Abstract— Fault detection and isolation is an essential task in automated manufacturing systems, and thus,
several works in the literature address this problem. We propose in this paper a Petri net approach to online
diagnosis of a discrete event system (DES) modeled as a finite state automaton. The diagnosis method requires
less memory than other methods proposed in the literature and relies on the computation of a Petri net diagnoser
(PND).
Keywords—
Petri net, Automaton, Fault diagnosis, Discrete event systems.
Resumo— Detecção e isolamento de falhas é uma tarefa essencial em sistemas de automação e, portanto,
vários trabalhos têm sido publicados sobre este assunto. Neste artigo, é proposta uma abordagem por redes
de Petri para diagnose online de falhas em um sistema a eventos discreto modelado por um autômato finito.
O método de diagnose requer menos memória do que outros métodos propostos na literatura e é baseado na
obtenção de um diagnosticador rede de Petri (DRP).
Palavras-chave—
1
Rede de Petri, Autômato, Diagnóstico de falhas, Sistemas a eventos discretos.
INTRODUÇÃO
Detecção e isolamento de falhas é uma tarefa essencial em sistemas de automação e, por isso,
muitos trabalhos têm sido publicados sobre esse
assunto (Lin, 1994; Sampath et al., 1995; Qiu
and Kumar, 2006; Carvalho et al., 2011; Basilio
et al., 2012).
Em Sampath et al. (1995), é apresentada uma
abordagem para diagnose de falhas utilizando sistemas a eventos discretos (SEDs) modelados por
autômatos finitos. O método de diagnose proposto em Sampath et al. (1995) consiste de três
etapas: (i) construção de um autômato rotulado
Gℓ obtido a partir do autômato G que modela o
sistema, cujos estados são (x, ℓ), em que x é um
estado de G e ℓ ∈ {Y, N }. Se x é um estado alcançado em G após a ocorrência de uma sequência sY que contém o evento de falha, então um
estado (x, Y ) é alcançado em Gℓ após a ocorrência da mesma sequência sY , e se x é alcançado
em G após uma sequência normal sN , então o estado (x, N ) é alcançado após sN 1 ; (ii) obtenção
do autômato diagnosticador Gdiag calculando-se o
observador de estados do autômato rotulado Gℓ ;
(iii) identificação dos eventos de falha baseado no
estado alcançado de Gdiag após a observação de
uma sequência executada pelo sistema.
O diagnosticador proposto em Sampath et al.
(1995) pode ser usado para detectar e isolar falhas
1 Note que o comportamento normal e o de falha do
sistema são separados em Gℓ , i.e., um estado (x, Y ) é alcançado em Gℓ após a ocorrência de uma sequência s se e
somente se s possui um evento de falha.
ISBN: 978-85-8001-069-5
online e ainda para verificação off-line da diagnosticabilidade da linguagem gerada pelo sistema.
Embora esse diagnosticador possa ser implementado de forma direta em um computador, em geral isso é evitado, uma vez que, no pior caso, o
espaço de estados do diagnosticador Gdiag cresce
exponencialmente com a cardinalidade do espaço
de estados do modelo do sistema G (Sampath
et al., 1995; Qiu and Kumar, 2006).
Em Qiu and Kumar (2006), um método de
diagnose online que evita a construção e o armazenamento do autômato Gdiag é proposto. Para
tanto, um autômato não determinı́stico Gnd
ℓ é calculado substituindo-se cada transição de Gl associada a um evento não observável por uma transição ε. Nesse método apenas o estado atual do diagnosticador Gdiag e o autômato Gnd
ℓ precisam ser
armazenados para diagnose online. Após a ocorrência de um evento observável, o próximo estado
de Gdiag pode ser obtido em tempo polinomial
conhecendo-se o estado atual de Gdiag e o autômato Gnd
ℓ .
Neste artigo, é apresentada uma abordagem
por redes de Petri para diagnose online de falhas
em um SED. A definição de diagnosticabilidade é
a mesma apresentada em Sampath et al. (1995). É
suposto também que o sistema é descrito por um
autômato finito G e que o conjunto de eventos de
falha Σf pode ser particionado em diferentes conjuntos de eventos de falha Σfk , k = 1, . . . , r, em
que r denota o número de tipos de falha. O método é baseado no cálculo de um autômato GC que
modela a composição dos comportamentos normais do sistema, obtido a partir de G e autômatos
3723
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
GNk , para k = 1, . . . , r, em que o autômato GNk
modela o comportamento normal de G com relação ao conjunto de eventos de falha Σfk . Em
geral, GNk possui um número menor de estados
do que G, levando a uma redução na complexidade computacional da diagnose online em comparação com o método proposto em Qiu and Kumar (2006), que usa os comportamento normais e
de falha do sistema descritos por Gℓk = G∥Aℓk ,
para k = 1, . . . , r, em que Aℓk denota o autômato
rotulador com relação à falha do tipo Fk .
A técnica de diagnose proposta neste trabalho consiste em encontrar os estados alcançáveis
de GC após a observação de uma sequência de
eventos e, baseado no conjunto de estados alcançáveis de GC , verificar se a falha ocorreu. Para
tanto, um diagnosticador rede de Petri (DRP) é
proposto. O DRP é obtido a partir de uma rede
de Petri binária que é capaz de encontrar os estados alcançáveis de GC após a observação de uma
sequência de eventos.
Este artigo está organizado da seguinte forma:
na seção 2 são apresentados conceitos preliminares de autômatos e de redes de Petri; na seção 3 é
apresentada a definição de diagnosticabilidade de
uma linguagem; na seção 4 é proposto um método
para a obtenção do autômato GC calculado a partir dos comportamentos normais do sistema GNk ,
k = 1, . . . , r; na seção 5 o diagnosticador rede de
Petri (DRP) é apresentado; finalmente, as conclusões são apresentadas na seção 6. Um exemplo
é usado para ilustrar os resultados ao longo do
texto.
2
FUNDAMENTOS TEÓRICOS
Seja G = (Q, Σ, Γ, f, q0 ) um autômato determinı́stico que modela um SED, em que Q é o espaço de estados finito, Σ é o conjunto de eventos, Γ : Q → 2Σ é a função de eventos ativos,
f : Q × Σ → Q é a função de transição de estados
e q0 é o estado inicial do sistema. Por simplicidade, a função de eventos ativos será omitida a
menos que seja necessária.
A parte acessı́vel de G, denotada por Ac(G),
é a operação que elimina todos os estados de
G que não são alcançáveis a partir do estado inicial q0 e suas transições relacionadas,
i.e., Ac(G) = (Qac , Σ, fac , q0 ), em que Qac =
{q ∈ Q : (∃s ∈ Σ⋆ )[f (q0 , s) = q]} e fac : Qac ×Σ →
Qac é a nova função de transição de estados.
A operação de projeção Ps : Σ⋆l → Σ⋆s , em
que Σs ⊂ Σl é definida como Ps (ε) = ε, Ps (σ) =
σ, se σ ∈ Σs ou Ps (σ) = ε, se σ ∈ Σl \ Σs , e
Ps (sσ) = Ps (s)Ps (σ), para todo s ∈ Σ⋆l , e σ ∈ Σl .
A operação de projeção pode ainda ser aplicada à
linguagem gerada por G, L(G), executando essas
regras a todas as sequências s ∈ L(G).
Sejam G1 e G2 dois autômatos. Então, G1 ×
G2 e G1 ∥G2 denotam o produto e a composição
ISBN: 978-85-8001-069-5
paralela de G1 e G2 , respectivamente (Cassandras
and Lafortune, 2008).
Suponha agora que o conjunto de eventos de
˙ uo , em que Σo e
G seja particionado em Σ = Σo ∪Σ
Σuo denotam os conjuntos de eventos observáveis
e não observáveis, respectivamente. O alcance não
observável do estado q ∈ Q com relação ao conjunto Σuo , denotado por U R(q), é definido como
U R(q) = {y ∈ Q : (∃t ∈ Σ⋆uo )(f (q, t) = y)}. (1)
Essa definição é estendida a um subconjunto de
estados B ⊆ Q da seguinte forma:
∪
U R(B) =
U R(q).
(2)
q∈B
Uma rede de Petri (RP) é outro formalismo comumente usado para modelar um SED
(Cassandras and Lafortune, 2008; Davi and Alla,
2005). A principal vantagem em usar redes de Petri para descrever SEDs em comparação com os
autômatos finitos, é a natureza distribuı́da do estado da RP, o que permite a obtenção de grafos
compactos para descrever SEDs. Para definir formalmente uma RP primeiramente a estrutura de
uma rede de Petri será definida.
Definição 1 A estrutura de uma rede de Petri é
um grafo bipartido ponderado (P, T, P re, P ost, w),
em que P é o conjunto finito de lugares, T é o
conjunto finito de transições, P re ⊆ (P × T ) é o
conjunto de arcos que ligam lugares a transições,
P ost ⊆ (T × P ) é o conjunto de arcos que ligam
transições a lugares, e w : (P × T ) ∪ (T × P ) → N
é a função de pesos dos arcos, com w(pi , tj ) = 0
e w(tj , pi ) = 0 se e somente se (pi , tj ) ̸∈ P re e
(tj , pi ) ̸∈ P ost, respectivamente.
O conjunto de lugares é representado neste
artigo por P = {p1 , p2 , . . . , pn } e o conjunto de
transições por T = {t1 , t2 , . . . , tm }. Logo, |P | = n
e |T | = m, em que |.| denota cardinalidade.
A indicação de que as condições para o disparo das transições são satisfeitas é obtida através da atribuição de fichas aos lugares. O número de fichas atribuı́das a um lugar pi é representado por x(pi ), em que x : P → N. Logo, uma
marcação de uma rede de Petri é o vetor coluna
T
x = [x(p1 ) x(p2 ) . . . x(pn )] , formado pelo número de fichas em cada lugar pi , para i = 1, . . . , n.
Definição 2 Uma rede de Petri N é uma sêxtupla N = (P, T, P re, P ost, w, x0 ), em que
(P, T, P re, P ost, w) é, de acordo com a definição
1, a estrutura de uma rede de Petri e x0 é a marcação inicial do conjunto de lugares.
Em uma rede de Petri, normalmente eventos
são associados a transições e lugares são associados às condições que precisam ser satisfeitas para
a ocorrência desses eventos. Isso leva à seguinte
definição de redes de Petri rotuladas.
3724
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
Definição 3 Uma rede de Petri rotulada N é
uma óctupla N = (P, T, P re, P ost, w, x0 , Σ, l), em
que (P, T, P re, P ost, w, x0 ) é, de acordo com a definição 2, uma rede de Petri, Σ é o conjunto de
eventos utilizados para rotulação das transições e
l : T → 2Σ é a função de rotulação que associa a
cada transição um subconjunto de eventos do conjunto Σ.
Uma transição tj é dita estar habilitada
quando o número de fichas em cada um dos seus
lugares de entrada é maior ou igual ao peso dos
arcos que conectam os lugares à transição tj , i.e.,
tj é dita estar habilitada se e somente se
x(pi ) ≥ w(pi , tj ), for all pi ∈ I(tj ),
(3)
sendo I(tj ) o conjunto de lugares de entrada de
tj . Se a transição tj está habilitada para uma
marcação x e o evento associado a tj ocorre, então
a transição tj dispara e uma nova marcação x̄ é
alcançada. A evolução das marcações é dada por:
x̄(pi ) = x(pi ) − w(pi , tj ) + w(tj , pi ), i = 1, . . . , n.
(4)
Uma classe particular de redes de Petri é a
chamada rede de Petri máquina de estados. Em
uma rede de Petri máquina de estados cada transição possui exatamente um lugar de entrada e um
lugar de saı́da. Se, aliado a isso, essa rede de Petri possuir apenas uma ficha, então a rede de Petri
máquina de estados se comporta exatamente como
um autômato, em que cada lugar é associado a um
estado em seu autômato correspondente.
3
Σ⋆o . Então L é dita ser diagnosticável com relação
à projeção Po e com relação à partição Πf em Σf
se
(∀k ∈ Πf )(∃nk ∈ N)(∀s ∈ L \ LNk )(∀st ∈ L \ LNk )
(∥t∥ ≥ nk ) ⇒ (∀ω ∈ Po−1 (Po (st)) ∩ L, ω ∈ L \ LNk ),
em que ∥.∥ denota o comprimento de uma sequência.
De acordo com a definição 4, L é 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 um evento de
falha do conjunto Σfk , não existirem sequências
sNk ∈ LNk , de tal forma que Po (sNk ) = Po (st)
para todo k ∈ Ir = {1, 2, . . . , r}. Portanto, se L é
diagnosticável então sempre é possı́vel identificar
unicamente o tipo de falha que ocorreu após um
número finito de observações de eventos.
O primeiro passo para implementar um diagnosticador online é verificar se todos os tipos de falha podem ser diagnosticados após a ocorrência da
falha em um número limitado de observações. Em
Moreira et al. (2011) um algoritmo em tempo polinomial para identificar se uma linguagem L é diagnosticável é apresentado. O algoritmo proposto
em Moreira et al. (2011) é baseado na construção de um autômato verificador determinı́stico e a
verificação tem complexidade computacional inferior comparada com outros métodos na literatura
(Qiu and Kumar, 2006; Yoo and Lafortune, 2002).
Neste artigo é suposto que a linguagem gerada
pelo sistema é diagnosticável com relação a Po e
Πf .
DIAGNOSTICABILIDADE DE SED
4
Seja G o autômato que modela o sistema e seja
Σf ⊆ Σuo o conjunto de eventos de falha. Além
disso, suponha que o conjunto de eventos de falha
possa ser particionado como
Σf =
r
∪
Σfk ,
(5)
k=1
em que Σfk representa um conjunto de eventos de
falha do mesmo tipo e Πf denota essa partição.
Seja L(G) = L a linguagem gerada por G e
GNk o subautômato de G que representa o comportamento normal do sistema com relação ao
conjunto de eventos de falha Σfk , i.e., supondo
que L(GNk ) = LNk , então LNk é a linguagem
prefixo-fechada formada por todas as sequências
de L que não contém nenhum evento de falha
do conjunto Σfk . A seguinte definição de diagnosticabilidade pode ser formulada (Sampath
et al., 1995).
Definição 4 Sejam L e LNk ⊂ L as linguagens
prefixo-fechadas geradas por G e GNk , respectivamente, e defina a operação de projeção Po : Σ⋆ →
ISBN: 978-85-8001-069-5
OBTENÇÃO DO AUTÔMATO GC
Nesta seção, é mostrado como obter o autômato
GC utilizado no processo de diagnose online. Diferente do autômato diagnosticador introduzido em
Qiu and Kumar (2006), que usa o comportamento
normal e de falha do sistema descrito por Gℓk , o
autômato GC é construı́do a partir dos autômatos GNk , que modelam o comportamento normal
de G com relação aos eventos de falha de Σfk , e
que, em geral, tem um número menor de estados
e transições do que Gℓk .
Algoritmo 1
• Passo 1: Calcule o autômato GNk , para cada
k ∈ Πf , que modela o comportamento normal
de G com relação ao conjunto de eventos de
falha Σfk , da seguinte forma:
– Passo 1.1: Defina ΣNk = Σ \ Σfk .
– Passo 1.2: Construa o autômato ANk
composto de um único estado Nk (também seu estado inicial) com um autolaço
rotulado com todos os eventos de ΣNk .
3725
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
– Passo 1.3: Faça GNk = G × ANk =
(QNk , Σ, fNk , ΓNk , q0,Nk ).
• Passo 2: Construa o autômato estendido
GaNk , para cada k ∈ Πf , adicionando um
novo estado Fk , que indica que um evento
de falha do conjunto Σfk ocorreu. Uma nova
transição rotulada com um evento σfk ∈ Σfk
é adicionada, conectando o estado (q, Nk ) de
GNk ao estado de falha Fk , se σfk ∈ Γ(q).
Adicione um autolaço rotulado com todos os
eventos σ ∈ Σ ao estado de falha Fk .
• Passo 3:
Calcule o autômato GC =
(QC , Σ, fC , ΓC , q0,C ) = GaN1 ∥GaN2 ∥ . . . ∥GaNr .
Note que, para cada GaNk , o comportamento
de falha do sistema com relação ao conjunto de
eventos de falha Σfk é representado pelo estado de
falha Fk , com um autolaço rotulado com todos os
eventos do conjunto Σ, o que indica que uma falha
do conjunto Σfk ocorreu. É importante mencionar
que essa representação não preserva a linguagem
gerada pelo sistema após a ocorrência do evento
de falha. Entretanto, como o diagnosticador é um
dispositivo passivo, essa representação não altera
a observação dos eventos do sistema e, portanto,
não interfere na diagnose de falhas.
Para mostrar como o autômato GC pode ser
usado na diagnose online de falhas é preciso primeiro definir uma função que fornece os possı́veis
estados atuais de GC após a ocorrência de um
evento observável. Essa estimativa é denotada
neste artigo por Reach(ν), em que ν = vσo =
Po (s) é a sequência observada pelo diagnosticador
após a execução de uma sequência s ∈ L cujo último evento observável é σo , e pode ser calculada
recursivamente como (Qiu and Kumar, 2006)
Reach(ε)
=
Reach(vσo )
=
U R(q0,C ),
(6)
U R(δ(Reach(v), σo )), (7)
∪κ
em que δ(Reach(v), σo ) =
i=1 δC (qCi , σo ),
com qCi ∈ Reach(v), κ = |Reach(v)|, e
δC (qCi , σo ) = fC (qCi , σo ) se fC (qCi , σo ) é definida
e δC (qCi , σo ) = ∅, caso contrário.
Após a observação de uma sequência ν, o
conjunto dos possı́veis estados atuais de GC ,
Reach(ν), pode ser calculado e seus estados podem ser usados para identificar a ocorrência de
um evento de falha. O teorema a seguir apresenta
a base para o método de diagnose proposto neste
artigo.
Teorema 1 Seja L a linguagem gerada por G e
suponha que L é diagnosticável com relação a Po
e Πf . Seja s ∈ L \ LNk tal que ∀ω ∈ L, com
Po (ω) = Po (s), ω ∈ L \ LNk . Então, a k-ésima
coordenada de todos os possı́veis estados atuais de
GC , alcançados após a ocorrência de s, dados por
Reach(Po (s)), é igual a Fk .
ISBN: 978-85-8001-069-5
0
a
σu
1
b
2
σf
σf
1
5
σu
3
4
c
2
σf
7
1
σu
a
6
a
8
a
9
b
Figura 1: Autômato G do Exemplo 1.
Nk
Σ\{σfk }
Figura 2: Autômato ANk do Exemplo 1.
Prova: A prova do teorema 1 segue diretamente
da construção do autômato GC e será, portanto,
omitida.
2
De acordo com o teorema 1, se L é diagnosticável com relação a Po e Πf , então sempre é possı́vel identificar a ocorrência de uma falha do tipo
Fk com um número limitado de observações verificando os possı́veis estados atuais de GC . Se após
a ocorrência de uma sequência s, todos os estados de Reach(ν), em que ν = Po (s), não possuem
uma coordenada (q, Nk ), então não é possı́vel que
uma sequência normal com relação ao conjunto de
eventos de falha Σfk , com a mesma projeção que
ν, tenha sido executada, o que implica que uma
falha do tipo Fk ocorreu, ou seja, s contém um
evento de falha σfk ∈ Σfk . Logo, a diagnose de
uma falha do tipo Fk pode ser feita verificando-se
se um estado do comportamento normal descrito
por GNk é uma coordenada de um possı́vel estado
atual de GC .
Observação 1 O número de estados de GC é, no
pior caso, igual a [(2r − 1) × |Q|] + 1, em que r é
o número de tipos de falha do sistema. Logo, a
complexidade computacional da construção de um
autômato GC é O(2r ×|Q|×|Σ|), o que mostra que
a complexidade é linear com o número de estados
e eventos do autômato do sistema e exponencial
com o número de tipos de falhas. A complexidade computacional pode ser linear com relação
ao número de tipos de falha se cada comportamento normal com relação a um tipo de falha é
considerado separadamente. Nesse caso, ao invés
de um único autômato GC , tem-se r autômatos
GaNk , em que cada um leva em consideração apenas a falha do tipo Fk , e a complexidade computacional é O(r×|Q|×|Σ|). Embora a análise de pior
caso sugira que é vantajoso considerar os autômatos GaNk , para k = 1, . . . , r, ao invés de GC , é importante observar que o número de estados de GC
pode ser menor que a soma do número de estados
de GaNk para k = 1, . . . , r, levando a um código
de programação menor para a implementação do
diagnosticador.
3726
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
Σ
0N1 ,0N2
F1
σf
σf
1
ON1
a
1N1
b
2N1
σu
3N1
4N1
F1 ,6N2
c
a
σf
F1 ,8N2
F1 ,9N2
7N1
σu
0N2
1N2
σf
b
2N2
σu
3N2
4N2
c
σf
1
2
5N2
Σ
F2
σf
1
a
6N2
a
8N2
a
9N2
b
Figura 4: Autômato aumentado GaN2 do Exemplo
1.
Exemplo 1 Seja G o autômato do sistema apresentado na figura 1, em que
Σ = {a, b, c, σu , σf1 , σf2 }, Σo = {a, b, c},
Σuo = {σu , σf1 , σf2 }, e Σf = {σf1 , σf2 }. Suponha
que o conjunto de eventos de falha possa ser
˙ f2 com Σf1 = {σf1 }
particionado em Σf = Σf1 ∪Σ
e Σf2 = {σf2 }, e suponha que se queira calcular
o autômato GC . De acordo com o algoritmo
1, o primeiro passo é obter os autômatos ANk ,
para k = 1, 2, mostrados na figura 2, e os
autômatos que modelam os comportamentos
normais GNk = G × ANk . O próximo passo é
a construção dos autômatos aumentados GaN1 e
GaN2 , mostrados nas figuras 3 e 4, respectivamente, obtidos adicionando-se os estados de falha
F1 e F2 aos autômatos GN1 e GN2 . O passo
final do algoritmo 1 é o cálculo do autômato
GC = GaN1 ∥GaN2 , ilustrado na figura 5.
A partir de agora será apresentado como o
autômato GC pode ser usado no processo de diagnose online. Suponha que uma sequência de falha s = aσf1 aa ∈ L \ LN1 tenha sido executada
pelo sistema. Então, a sequência observada é ν =
Po (s) = aaa. De acordo com o teorema 1, se não
existir uma sequência ω ∈ LN1 tal que Po (ω) = ν
então todos os estados no conjunto de estados alcançáveis Reach(ν) possuem a primeira coordenada igual a F1 . O conjunto de estados alcançáveis Reach(ν) pode ser obtido recursivamente
de acordo com as equações (6) e (7), da seguinte
forma: Reach(ε) = {(0N1 , 0N2 )}, Reach(a) =
{(1N1 , 1N2 ), (2N1 , 2N2 ), (F1 , 5N2 ), (7N1 , F2 ),
ISBN: 978-85-8001-069-5
b
3N1 ,3N2
σu
4N1 ,4N2
c
a
9N1 ,F2
σf
1
b
b
9N1
Figura 3: Autômato aumentado GaN1 do Exemplo
1.
σu
2N1 ,2N2
σ f2
7N1 ,F2
σu
8N1 ,F2
b
a
8N1
σu
a
2
a
1N1 ,1N2
σf1
F1 ,5N2
a
1
σu
a
Figura 5: Autômato GC = GaN1 ∥GaN2 do Exemplo
1.
(8N1 , F2 )}, Reach(aa) = {(F1 , 6N2 ), (9N1 , F2 )},
e Reach(aaa) = {(F1 , 8N2 )}.
Uma vez que o estado alcançado após a observação de ν = aaa possui a primeira coordenada
igual a F1 , então é possı́vel garantir que o evento
de falha σf1 ocorreu.
Com relação à complexidade computacional
para construção de GC , pode ser visto que GC
possui 12 estados e GaN1 e GaN2 possuem 9 e 10
estados, respectivamente. Logo GC possui um número menor de estados do que a soma de estados
de GaN1 e GaN2 . Portando, como mostrado na observação 1, a diagnose online pode ser executada,
neste caso, com um custo computacional menor
usando GC ao invés de GaNk , para k = 1, 2.
Na Seção 5, uma rede de Petri é usada para
fornecer um diagnosticador online capaz de encontrar os estados alcançáveis de GC após a observação de uma sequência de eventos para a identificação da ocorrência de um evento de falha.
5
DIAGNOSTICADOR REDE DE
PETRI
Considere o problema de encontrar os possı́veis estados de GC após a observação de uma sequência
ν ∈ Σ⋆o . Para resolver esse problema um observador online que armazena os estados estimados
atuais de GC após a ocorrência de um evento observável precisa ser calculado. Esse observador
online de estados pode ser construı́do usando o
formalismo de redes de Petri, explorando a natureza distribuı́da do estado de uma rede de Petri,
levando a um observador de estados rede de Petri.
O primeiro passo para a construção de um
observador rede de Petri é a obtenção de uma
rede de Petri máquina de estados, NC , a partir
do autômato GC . Isso pode ser feito associandose um lugar pCi em NC a cada estado qCi de
GC e associando-se a cada arco direcionado em
GC , (qCi , σ, q̄Ci ), em que q̄Ci = fC (qCi , σ) e σ ∈
ΓC (qCi ), uma transição tCj , rotulada com σ, em
NC (Cassandras and Lafortune, 2008). Para ligar
lugares e transições em NC , dois arcos com peso
3727
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
igual a um precisam ser criados para cada transição: um arco (pCi , tCj ) e um arco (tCj , p̄Ci ), em
que p̄Ci é o lugar de NC associado ao estado q̄Ci . O
estado inicial de NC é definido atribuindo-se uma
ficha ao lugar de NC associado ao estado inicial
de GC e atribuindo-se zero aos outros lugares.
Após NC ter sido obtida, o próximo passo
para o cálculo do observador de estados rede de
Petri de GC é a criação de novos arcos, conectando cada transição rotulada com um evento observável a lugares especı́ficos que correspondem ao
alcance não observável de lugares. Para isso, seja
TCo o conjunto de todas as transições de NC rotuladas com eventos observáveis e defina a função
ReachT : TCo → 2PC , em que PC é o conjunto
finito de lugares de NC . O conjunto de lugares
ReachT (tCj ), em que tCj ∈ TCo , pode ser calculado de acordo com o seguinte algoritmo.
Algoritmo 2 Sejam O(t) e O(p) o conjunto de
todos os lugares de saı́da de t e o conjunto de todas
as transições de saı́da
de p, respectivamente.
Seja
∪
∪
também O(P ) = p∈P O(p) e O(T ) = t∈T O(t).
• Passo 1: Defina pout = O(tCj ), Pr′ = {pout }
e Pr = Pr′ .
• Passo 2: Forme o conjunto Tu′ com todas as
transições de O(Pr′ ) associadas a eventos não
observáveis. Se Tu′ = ∅, ReachT (tCj ) = Pr e
pare.
• Passo 3: Faça Pr′ = O(Tu′ ), Pr ← Pr ∪ Pr′ , e
retorne ao Passo 2.
Para implementar o alcance não observável
após o disparo de cada transição observável, um
arco com peso um, conectando cada transição
tCj ∈ TCo a cada lugar pCi ∈ ReachT (tCj ), precisa ser adicionado a NC , gerando uma nova rede
de Petri NC′ . Após isso, todas as transições rotuladas com eventos não observáveis de NC′ , e seus arcos relacionados, precisam ser removidos levando
a uma nova rede de Petri NCo , cujas transições
são todas rotuladas com eventos observáveis pertencentes a Σo .
Note que para a estimação dos estados de GC ,
apenas os lugares que são associados aos possı́veis
estados atuais de GC devem ter fichas e, após a
ocorrência de um novo evento observável, o número de fichas nos lugares que não são mais possı́veis deve ser igual a zero. Isso implica que o número de fichas em cada lugar do observador rede
de Petri precisa ser igual a um ou zero, mesmo
que o disparo de uma transição tCj ∈ TCo resulte,
de acordo com a equação (4), em uma marcação
com duas ou mais fichas. Portanto, lugares são
forçados a ter marcações binárias e a equação (4)
não é mais válida. Esse requisito pode ser satisfeito usando-se redes de Petri binárias (Alayan
and Newcomb, 1987). Uma rede de Petri binária pode ser definida como uma rede de Petri com
ISBN: 978-85-8001-069-5
uma regra de evolução diferente para a marcação
de lugares alcançados após o disparo de uma transição tj , dada por:
{
0, se x(pi )− w(pi , tj )+ w(tj , pi ) = 0
,
x̄(pi ) =
1, se x(pi )− w(pi , tj )+ w(tj , pi ) > 0
(8)
para i = 1, . . . , n.
É importante observar que definir NCo como
uma rede de Petri binária não é suficiente para
garantir que NCo possa ser usada como um observador de estados. Suponha, por exemplo, que pCi
é um lugar de NCo que possui uma ficha e não tem
uma transição de saı́da rotulada com um evento
observável σo ∈ Σo . Suponha ainda que pCi não
possui uma transição de entrada habilitada rotulada com σo . Então, se σo ocorrer, pCi permanece
com uma ficha. Considerando que um lugar pCi
com uma ficha representa um possı́vel estado atual
qCi de GC , pode-se verificar que, neste exemplo,
pCi não deveria ter permanecido com uma ficha, o
que mostra que o estado da rede de Petri binária
NCo não corresponde aos possı́veis estados atuais
de GC após a ocorrência de σo .
Para se obter o observador rede de Petri, NSO ,
é necessário adicionar um arco conectando cada
lugar pCi de NCo a uma nova transição, rotulada
com os eventos observáveis de Σo que não estão
no conjunto de eventos ativos do estado qCi de
GC associado a pCi . Essa modificação e o fato
do observador rede de Petri ser uma rede de Petri
binária garantem que se o lugar pCi não está associado com um possı́vel estado atual de GC após o
disparo de uma transição observável, então o número de fichas de pCi é igual a zero. Finalmente,
para definir o estado inicial de NSO , uma ficha é
atribuı́da a cada lugar associado a um estado de
U R(q0,C ) e o número de fichas dos demais lugares
é igual a zero.
Após NSO ter sido obtida, o diagnosticador rede de Petri NDiag pode ser calculado
adicionando-se a NSO transições tfk , para k =
1, . . . , r, com um lugar de entrada pNk e um lugar
de saı́da pFk . Cada transição tfk está associada
à verificação da ocorrência de um tipo de falha.
Arcos inibidores (Davi and Alla, 2005) de peso
igual a um são usados para conectar cada lugar
associado a um estado de GC que tem uma coordenada (q, Nk ) à transição tfk . Como o arco
inibidor de peso um habilita a transição apenas
quando o número de fichas do lugar de entrada
é igual a zero, então tfk será habilitada apenas
quando o comportamento normal do sistema com
relação à falha do tipo Fk não for possı́vel, o que
implica que uma falha do conjunto Σfk ocorreu.
Um arco inibidor é representado por um arco cuja
extremidade final possui um pequeno cı́rculo. A
transição tfk será rotulada com o evento sempre
ocorrente λ (Davi and Alla, 2005) para representar que tfk dispara imediatamente após ter sido
3728
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
habilitada, removendo-se a ficha do lugar pNk e
adicionando-se uma ficha ao lugar pFk , o que indica que uma falha do tipo Fk ocorreu.
O algoritmo 3 resume os passos necessários
para a obtenção do diagnosticador rede de Petri
NDiag a partir do autômato GC .
0N1 0N2
1N1 1N2
•
a
• Passo 4: Calcule NSO = (PC , TSO , P reSO ,
P ostSO , wSO , x0,SO , Σo , lSO ) da seguinte
forma:
1
σf
3N1 3N2
4N1 4N2
σu
b
c
2
7N1 F2
a
F1 6N2
σu
8N1 F2
a
F1 8N2
• Passo 1: Calcule a rede de Petri máquina de estados NC = (PC , TC , P reC ,
P ostC , wC , x0,C , Σ, lC ) a partir de GC .
• Passo 3:
Elimine todas as transições
de NC′ rotuladas com eventos não observáveis e seus arcos relacionados, gerando a rede de Petri binária NCo =
(PC , TCo , P reCo , P ostCo , wCo , x0,C , Σo , lCo ).
σu
σf
F1 5N2
Algoritmo 3
• Passo 2: Adicione a NC arcos conectando
cada transição observável tCj ∈ TCo aos
lugares em ReachT (tCj ), gerando a rede
′
,
de Petri NC′ = (PC , TC , P reC , P ost′C , wC
x0,C , Σ, lC ).
2N1 2N2
a
9N1 F2
a
b
σf
F1 9N2
1
b
Figura 6: Rede de Petri máquina de estados NC .
0N1 0N2
1N1 1N2
•
2N1 2N2
3N1 3N2
a
b
F1 5N2
7N1 F2
4N1 4N2
c
a
F1 6N2
8N1 F2
a
F1 8N2
a
9N1 F2
a
b
F1 9N2
– Passo 4.1: Adicione à NCo transições
rotuladas com eventos observáveis de Σo
que não estão no conjunto de eventos
ativos do estado qCi de GC associado a
pCi .
– Passo 4.2: Defina o estado inicial de
NSO atribuindo uma ficha a cada lugar
associado a um estado de U R(q0,C ) e nenhuma ficha aos outros lugares.
• Passo 5: Calcule o diagnosticador rede de
Petri NDiag = (PDiag , TSO ∪ Tf , P reDiag ,
P ostDiag , InDiag , wDiag , x0,Diag∪, Σo ∪ {λ},
r
lDiag ), em que Tf
=
k=1 {tfk } e
InDiag ⊆ PDiag × Tf denota o conjunto
de arcos inibidores, como segue:
– Passo 5.1: Adicione à NSO transições
tfk , para k = 1, . . . , r, rotuladas com o
evento sempre ocorrente λ.
– Passo 5.2: Adicione a cada transição tfk
um lugar de entrada pNk e um lugar de
saı́da pFk , ambos conectados à tfk por
arcos com peso igual a um.
– Passo 5.3: Conecte cada lugar associado
a um estado de GC que tem uma coordenada (q, Nk ) à transição tfk com um
arco inibidor.
– Passo 5.4: A marcação inicial dos lugares pNk é igual a um e dos lugares pFk
é igual a zero. Os outros lugares possuem a mesma condição inicial definida
por x0,SO .
ISBN: 978-85-8001-069-5
b
Figura 7: Rede de Petri binária NCo .
Observação 2 Considerando a construção de
um diagnosticador rede de Petri para um único
tipo de falha, é possı́vel ver que no pior caso o número de lugares da rede é igual a |Q| + 2 e o número de transições é (|Q| + 2) × (|Σo | + 1). Assim,
a complexidade computacional do diagnosticador
considerando um tipo de falha é O(|Q| × |Σo |).
Note que isso é uma grande vantagem com relação ao diagnosticador proposto por Sampath et al.
(1995) cuja complexidade é exponencial no número de estados do sistema.
O exemplo a seguir ilustra os passos para a
obtenção da rede de Petri NDiag e o processo de
diagnose online.
Exemplo 2 Considere o autômato diagnosticador GC mostrado na figura 5, e considere o problema de obter o diagnosticador rede de Petri
NDiag a partir de GC . De acordo com o algoritmo 3 o primeiro passo é o cálculo da rede de
Petri máquina de estados NC , mostrada na figura
6. Seguindo os Passos 2 e 3, a rede de Petri binária NCo , apresentada na figura 7, é obtida. Em
seguida, de acordo com o Passo 4, o observador
rede de Petri NSO , mostrado na figura 8, é obtido
a partir de NCo . Finalmente, seguindo o Passo
5 do algoritmo 3, o diagnosticador rede de Petri
NDiag , apresentado na figura 9, é calculado.
3729
Anais do XIX Congresso Brasileiro de Automática, CBA 2012.
a, c
0N1 0N2
2N1 2N2
1N1 1N2
•
b
a , b, c
a
c
a , b, c
7N1 F2
F1 5N2 a , b , c
b, c
onando uma ficha ao lugar pF1 , indicando a ocorrência do evento de falha σf1 .
a, b
3N1 3N2 4N1 4N2
6
a
F1 6N2
b, c
8N1 F2
b, c
a
a
F1 8N2
b, c
9N1 F2
a, c
a
b
F1 9N2
a, c
b
Figura 8: Observador rede de Petri NSO .
a, c
tSO2
a
•
tSO3
tSO4
a , b, c
tSO1
b
a, b
a , b, c
tSO5
AGRADECIMENTOS
tSO7
PN1
a , b, c
•
tSO16
b, c
a
tSO10
tSO9
tSO17
b, c
tf1
b, c
a
tSO12
tSO11
tSO19
a
Referências
tSO18
PN2
a, c
tSO14
tSO13
tSO20
•
b
Este trabalho foi parcialmente financiado pela Petrobras, convênio no. 6000.0069294.11.4, PFRH no.19, e
pela FAPERJ, processo 110.728/2011.
PF1
b, c
a
Neste artigo foi apresentado um diagnosticador
rede de Petri que pode ser usado para a detecção e isolamento de falhas online de sistemas a
eventos discretos. Esse procedimento de diagnose
online utiliza menos memória do que outros métodos propostos na literatura. Como um trabalho
futuro, visando a implementação do diagnosticador em controladores lógicos programáveis, é sugerido o desenvolvimento de um método de conversão de diagnosticadores redes de Petri em uma
linguagem de programação adequada.
tSO6
c
tSO8
CONCLUSÃO
Alayan, H. and Newcomb, R. W. (1987). Binary petrinet relationships, IEEE transactions on circuits
and systems CAS-34: 565–568.
a, c
b
tSO15
PF2
tf2
Figura 9: Diagnosticador rede de Petri NDiag .
Será mostrado agora como utilizar a rede
de Petri NDiag no processo de diagnose online.
Para tanto, suponha que uma sequência de falha s = aσf1 aa ∈ L \ LN1 tenha sido executada pelo sistema. Então, a sequência observada é
ν = Po (s) = aaa. Como o estado inicial de NDiag
possui uma ficha apenas no lugar (0N1 , 0N2 ), associado ao estado inicial de GC , então, após a
ocorrência do primeiro evento a, a transição tSO1
dispara e o conjunto de lugares associados com os
possı́veis estados de GC que possuem uma ficha
é dado por {(1N1 , 1N2 ), (2N1 , 2N2 ), (7N1 , F2 ),
(8N1 , F2 ), (F1 , 5N2 )}. Então, quando o segundo
evento a é observado, as transições tSO2 , tSO3 ,
tSO9 , tSO16 , tSO18 disparam simultaneamente e o
conjunto de lugares com uma ficha é dado por
{(F1 , 6N2 ), (9N1 , F2 )}. Note que as transições
tSO2 , tSO3 , tSO16 removem as fichas dos lugares que não estão associados aos possı́veis estados atuais de GC após a observação da sequência aa. Após a ocorrência do terceiro evento a,
as transições tSO11 , tSO19 disparam e o único lugar de NDiag que continua com uma ficha é dado
por (F1 , 8N2 ). Como todos os lugares associados
a um estado de GC com uma coordenada (q, N1 )
não possuem fichas, então a transição tf1 , rotulada com o evento sempre ocorrente, é habilitada
e dispara, removendo a ficha do lugar pN1 e adici-
ISBN: 978-85-8001-069-5
Basilio, J. C., Lima, S. T. S., Lafortune, S. and Moreira, M. V. (2012). Computation of minimal
event bases that ensure diagnosability, Discrete
Event Dynamic Systems: Theory And Applications . to appear.
Carvalho, L. K., Moreira, M. V. and Basilio, J. C.
(2011). Generalized robust diagnosability of discrete event systems, 18th IFAC World Congress,
Milano, Italy, pp. 8737–8742.
Cassandras, C. G. and Lafortune, S. (2008). Introduction to Discrete Event System, Springer-Verlag
New York, Inc., Secaucus, NJ.
Davi, R. and Alla, H. (2005). Discrete, Continuous
and Hybrid Petri Nets, Springer.
Lin, F. (1994). Diagnosability of discrete event systems and its applications, Journal of Discrete
Event Dynamic Systems 4(2): 197–212.
Moreira, M. V., Jesus, T. C. and Basilio, J. C. (2011).
Polynomial time verification of decentralized diagnosability of discrete event systems, IEEE
Transactions on Automatic Control pp. 1679–
1684.
Qiu, W. and Kumar, R. (2006). Decentralized failure
diagnosis of discrete event systems, IEEE Transactions on Systems, Man, and Cybernetics Part
A:Systems and Humans 36(2).
Sampath, M., Sengupta, R., Lafortune, S., Sinnamohideen, K. and Teneketzis, D. (1995). Diagnosability of discrete-event systems, IEEE Trans. on
Automatic Control 40(9): 1555–1575.
Yoo, T.-S. and Lafortune, S. (2002). Polynomial-time
verification of diagnosability of partially observed discrete-event systems, IEEE Transactions
on Automatic Control 47(9).
3730

Documentos relacionados

ULTRADES - SBAI 2015

ULTRADES - SBAI 2015 A terceira e última planta a ser utilizada é o Sistema Flexı́vel de Manufatura (SFM) (de Queiroz e Cury, 2000), que gera dois tipos de produtos a partir de blocos e tarugos brutos: um bloco com u...

Leia mais