AUTOMAÇÃO

 / Supervisão




13/07/2008 07:43:14

Supervisão de sistemas a eventos discretos

Veja como construir um supervisor baseado na Suprema Sub-linguagem Controlável, uma técnica necessária para manter o controle de um sistema supervisório

Eduard Montgomery

Conforme visto na edição passada, quando existe um modelo de sistema definido em um autômato, é possível ver que as seqüências de ações que modificam os estados permitem formar uma certa “linguagem”. Essa “linguagem” do sistema é o conjunto de todas as possíveis seqüências, partindo do estado inicial. Esta linguagem contem a linguagem marcada do sistema, que é o conjunto de todas as seqüências que levam a uma tarefa concluída.

Para controlar um sistema deste tipo, a estrutura de controle utilizada deve ser um microcomputador ou CLP, onde o modelo do sistema controlado é introduzido e seus canais de comunicação são ligados por meio de sensores que recebem os dados que determinam o estado do sistema e atuadores que implementam o controle.

No caso de um sistema de vazão, por exemplo, o supervisor recebe as informações sobre a posição das válvulas, bem como do tanque. O supervisor envia o comando de fechar a válvula V1, se ela estiver aberta e o tanque estiver cheio. Da mesma forma, caso o supervisor verifi que que o tanque está cheio e deseja reduzir seu volume, ao verificar que a válvula V está fechada, pode enviar um comando para abri-la.

Quando se trata do supervisor, é preciso ter o sistema modelado e o comportamento definido em uma estrutura sincronizada ao modelo para, através de uma análise algorítmica, checar se o comportamento desejado é passível de controle. No caso de qualquer tarefa incomum solicitada é a construção do supervisor que prevê os cortes necessários para controlá-la.

Nesta situação o supervisor não permite que o sistema atinja este estado, reduzindo parte do comportamento desejado ao máximo de controle possível, o que chamamos de Suprema Sub-linguagem Controlável. Ela é a menor parte da linguagem referente ao comportamento pretendido para o sistema controlado pelo supervisor.

Um exemplo é o sistema da figura 1, onde um braço robótico pode pegar peças do buffer de entrada e inseri-las na máquina 1, como na máquina 2, que são eventos controláveis. Cada uma delas inicia o processamento ao receber uma peça e podem terminar o trabalho a qualquer momento. Ao final do processamento de peças por qualquer uma das máquinas, o braço robótico retira a peça processada da respectiva máquina e a dispensa no buffer de saída. O controle deve gerenciar o braço robótico para que ele sempre esteja disponível para colocar ou retirar peças das máquinas, permitindo que o sistema realize a tarefa programada.

Entretanto, o estado de bloqueio pode acontecer caso o braço insira peças tanto na máquina 1 como na máquina 2 e, antes do término do processamento de uma das máquinas, se prepare para a inserção de outra peça. Como ele não pode devolver a peça ao buffer de entrada, não pode soltá-la no buffer de saída nem inseri-la em nenhuma das máquinas, o braço fica paralisado, assim como as máquinas. Desse modo, o sistema se mantém bloqueado ou em dead lock.

Para evitar este problema, o supervisor deve verificar se há uma máquina livre para receber uma peça antes de enviar um comando ao braço robótico para pegar a peça no buffer de entrada. Caso contrário, a ocorrência deste evento gera o bloqueio completo do sistema. Para estruturar o controle são necessárias informações como dados de entrada, modelo do sistema e comportamento desejados. Sincronizando estes elementos, é preciso um algoritmo simples para fundamentar o supervisor para o sistema. Contudo, para entender o algoritmo, é necessário primeiro compreender a composição síncrona do modelo do sistema com o comportamento requerido.

É considerado que, para dois autômatos cujas transições são representadas por símbolos de um mesmo alfabeto (), onde os eventos se distribuem em controláveis e não controláveis, a composição síncrona entre eles gera um novo autômato que tem a linguagem do sistema sob supervisão. Este novo autômato tem um conjunto de
estados defi nido por pares, com:


Onde:

Q1 = é o conjunto de estados do autômato A1 (modelo do sistema);
Q2 = é o conjunto de estados do autômato A2 (comportamento especificado).

Os estados marcados são definidos por:


que defi ne que na composição síncrona, os estados marcados (conjunto representado por Qm) são apenas os marcados ao mesmo tempo no autômato A1 e no autômato A2;
q0 = (q0,1, q0,2) que indica que o estado inicial é a junção do estado inicial do sistema (autômato A1) e do comportamento desejado (autômato A2).

Por fim, as transições desse autômato composto são defi nidas a partir da equação abaixo, onde,  ( q) = q’ é a formalização matemática que defi ne o símbolo ( ) 
ou evento que leva do estado q para o estado q’. Com esta função de transição , entende-se a mesma como uma interseção os dois autômatos, ou seja, um arco 
qualquer só existirá no autômato composto pelos autômatos A1 e A2, saindo do estado (qi, qj) para o estado (qk, ql), se no autômato A1 existir um arco saindo de qi
para qk e no autômato A2 houver a mesma função saindo de qj para ql.

Para entender melhor esta composição síncrona, considere os dois autômatos da figura 2. Sua composição gera o autômato visto na figura 3 onde a linguagem do sistema fica sob o efeito de supervisão. Neste caso, os estados desta composição síncrona (estados: 1, 2, 3, 4, 5 e 6) são, respectivamente, os pares: (1,1); (2,1); (3,1);
(1,2); (2,2); (3,2). Esta composição pode ser utilizada para gerar o modelo, quando se consideram as partes do sistema separadamente. Assim, cada parte do sistema tem
um pequeno autômato que a representa e, usando esta composição, gera-se outro que representa todas as possibilidades de ocorrências de eventos, além dos estados
do sistema.

Outro exemplo simples desta composição pode ser dado por dois simples autômatos: duas máquinas que têm estados processando e livre (figura 4). Como a condição de iniciar ou finalizar um processamento independe da outra máquina, a composição síncrona gera o modelo deste sistema (figura 5).

O algoritmo da Suprema Sub-linguagem Controlável

Dado o modelo do sistema e o comportamento desejado, é feita a composição síncrona e sua avaliação referente ao conteúdo, em primeiro lugar, de algum estado marcado alcançável em qualquer outro estado, condição conhecida como co-acessibilidade. Em segundo lugar, a geração do supervisor final é feita avaliando os estados desta composição para verificar se em algum deles o supervisor não está bloqueando nenhum evento não controlável do sistema. Neste caso, o algoritmo da Suprema Sub-linguagem Controlável elimina este estado através do bloqueio de todos os eventos que resultem nele.

Construindo o algoritmo

Dados o autômato A1 e a especificação de comportamento A2, é possível contruir a composição síncrona A de A1 com A2. Siga os passos:

1. Construa a matriz de incidência A da composição A, em que


2. Inclua no lado direito da matriz de transições A o vetor coluna, com os eventos não controláveis que se encontram no estado respectivo do autômato A1 (modelo do sistema);

3. Inclua no lado direito da tabela o vetor coluna com os eventos habilitados no estado respectivo estado do autômato da composição síncrona A;

4. Para cada estado (linha) em A, cujo elemento do primeiro vetor coluna não se encontra no segundo vetor coluna, remova a linha da tabela e a coluna da matriz A referente a esse estado;

5. Encontre a componente coacessível do gerador resultante (ou seja, verifique se o autômato resultante tem estados marcados que são alcançados e elimine estados não marcados que não dão acesso a nenhum estado marcado na evolução do autômato resultante);

6. Realize este processo até que todos os estados restantes satisfaçam a condição do passo n. 4.

Para entender melhor este algoritmo, considere o exemplo da figura 7. O primeiro é o modelo de um sistema e o segundo é a especificação de comportamento definida. Na figura 6 encontra-se a composição síncrona, desde que os demais não sejam alcançados nesta composição. Considere que neste sistema, o evento  é não controlável. Acompanhe a tabela 1.

Os termos do primeiro vetor junto à matriz de incidência são representados matematicamente por (H(x)) uc e os termos do segundo vetor coluna, por (x).
Desse modo, utilizando o algoritmo, é possível ver que o elemento não controlável  se encontra na segunda coluna na quarta linha, mas não se encontra nesta linha na
segunda coluna. Dessa forma, elimina-se esta linha completa na tabela, e a coluna da matriz de incidência correspondente (coluna 4), o que exclui o evento  que leva
do estado 3 para o estado 4 (tabela 2).

Através da verificação de estados marcados alcançáveis no autômato a partir de qualquer outro estado é possível concluir que todos os estados levam a um estado
marcado, fazendo o autômato resultante satisfazer este teste. Ao repetir o procedimento, verifica-se que em nenhuma outra linha da segunda coluna existe um
elemento  que não se encontra na correspondente linha do segundo vetor coluna. Logo, o autômato supervisor resultante que é completamente controlável é definido pela matriz de incidência resultante, que pode ser vista na figura 8.

Por outro lado, mudando a especificação de comportamento para o autômato da figura 9, onde apenas é modificado o evento do estado 2 para o estado 1 de  para , encontra-se a composição síncrona dada pelo autômato da figura 10. Com este procedimento chegamos a tabela 3.

Entretanto, da mesma forma que o caso anterior, como o evento  se encontra na quarta linha da primeira coluna justaposta à matriz de incidência e não na quarta linha
da segunda coluna, elimina-se esta linha e a coluna 4 da matriz de incidência, ficando a mesma tabela mostrada anteriormente. Porém, fazendo o teste de coacessibilidade, percebe-se que o estado 3 é um bloqueio, pois não é marcado. Dele não se pode ir para qualquer estado que leve a um estado marcado. Logo, elimina-se a linha 3 da tabela, e a coluna 3 da matriz de incidência, resultando na tabela 4. A matriz resultante é o autômato supervisor completamente controlável para a especificação de comportamento dada (figura 11).

Considerações finais

A Teoria de Controle Supervisório é uma importante ferramenta aplicada à automação na formulação de um agente supervisor inteligente. O formalismo envolvido permite estruturar supervisores para sistemas a eventos discretos, embora o problema seja lidar com um número exponencial de estados do sistema. Este problema é visível tanto em nível da construção do modelo, quanto na composição síncrona e na síntese do supervisor. Entretanto, é uma teoria fundamental que baseia inclusive a mesma estruturação quando se utilizam as redes de Petri.

É preciso observar que esta formulação garante que qualquer usuário insira uma especificação de comportamento, sem causar problemas ao sistema, desde que o algoritmo impeça que sejam realizadas tarefas danosas ao sistema na construção do supervisor. Além disso, o supervisor construído garante que o sistema nunca funcione se não for possível realizar nenhuma tarefa completa.

Para este caso, vários softwares editores e simuladores de autômatos e controle supervisório podem ser encontrados para download na Internet. Um deles, ainda numa versão beta para Windows, é denominado RWDES e pode ser localizado na página do autor em www.geocities.com/emontyc. Nele, o usuário pode editar seu modelo e entrar com a especificação de comportamento na forma de uma matriz de incidência para gerar a composição síncrona e o supervisor, bem como ver a simulação do funcionamento do autômato apenas, ou do supervisor em paralelo com o sistema supervisionado.

Eduard Montgomery é professor da Faculdade Área 1 e do Programa de Pós-Graduação em Mecatrônica da Universidade Federal da Bahia.

*Originalmente publicado na revista Mecatrônica Atual - Ano 6 - Edição 35 - Ago/Set/07

Acesse o melhor conteúdo de mecatrônica da internet! Registre-se grátis!