• Nenhum resultado encontrado

Esta seção apresenta de forma generalizada a metodologia de implementação proposta, concebida conforme a arquitetura definida em (de Queiroz e Cury, 2002). Na seção seguinte, a metodologia é aplicada na implementação do problema motivador Refrigerador Autônomo.

3.3.1 Arquitetura de Queiroz e Cury

A arquitetura de implementação apresentada em (de Queiroz e Cury, 2002) é ilustrada na Figura 3.17. Esta estrutura contém uma interface I entre a planta P (sistema real) e os supervisores modulares locais reduzidos SRs obtidos a partir do sistema produto SP (modelo abstrato). Esta interface I possui a função de, respeitando as desabilitações dos SRs, comandar o funcionamento de P conforme o modelo do SP e de traduzir o comportamento abstrato do

SP em sinais reais de entrada e saída de P, especificados pelas seqüências operacionais SO de

cada subsistema. Assim, esta interface I faz a planta P comportar-se de acordo com o modelo assumido na TCS (Ramadge e Wonham, 1989), que gera espontaneamente e seqüencialmente eventos que não estão desabilitados.

S istema de Contr o le SC Planta RW In te rface I

Figura 3.17 – Arquitetura de Queiroz e Cury (de Queiroz e Cury, 2002)

No nível SO o programa interpreta os comandos abstratos do nível SP como seqüências lógicas que guiam a operação de cada subsistema. Além disto, em SO são gerados os sinais de saída do sistema de controle SC (entradas de P) e são lidos os sinais de entrada do

SC (saídas de P). Nesta estrutura, a planta RW é formada pelos níveis SP e SO e planta P.

A comunicação entre os diferentes níveis da arquitetura ocorre empregando eventos, sinais de desabilitação, respostas, comandos e sinais de entrada e saída. A cada evento controlável é associado um comando e um sinal de desabilitação. A cada evento não controlável é associada uma resposta. Os sinais de entrada e saída do SC são estabelecidos com base nos sensores e atuadores que efetivamente constituem o sistema real (Vieira, 2007).

Conforme (Vieira, 2007), o módulo do sistema produto associado à um subsistema implementa o comportamento independente deste subsistema, gerando eventos controláveis e sinalizando a ocorrência de eventos não controláveis. A geração de um evento controlável resulta na ativação do comando associado ao evento em questão. Os eventos tratados (eventos controláveis gerados ou a sinalização da ocorrência dos eventos não controláveis) são enviados para o nível SRs e os comandos ativos são enviados para o nível SO.

Quando uma seqüência operacional identifica a ativação de um comando, ela dispara a execução das atividades associadas à ocorrência do evento controlável associado. A execução de tais atividades pode resultar na ocorrência de eventos não controláveis. Quando uma seqüência operacional identifica a ocorrência de um evento não controlável, ela ativa a resposta associada ao evento em questão. Esta resposta é enviada ao nível SP, o qual sinaliza ao nível SRs a ocorrência do evento. As seqüências operacionais dirigem a execução das

atividades enviando sinais para os atuadores (saídas do SC) e recebendo informações dos sensores (entradas do SC). Cada supervisor segue a seqüência de eventos tratada no nível SP. Com base nesta seqüência de eventos o conjunto de supervisores estabelece os sinais de desabilitação, os quais são enviados para o nível SP. Um evento controlável só pode ser gerado se o sinal de desabilitação correspondente não está ativado (Vieira, 2007).

Segundo (de Queiroz, 2004), para garantir a correta operação desta estrutura de controle, é importante atentar para os seguintes aspectos: a) a ação dos SRs (desabilitações) deve estar atualizada para a ocorrência de uma transição controlável em SP, b) as transições não controláveis do SP devem ser tratadas com maior prioridade que as transições controláveis e c) a sinalização da ocorrência de eventos para os SRs deve ser seqüencial.

3.3.2 Definição da Estrutura Proposta

A estrutura de implementação é ilustrada na Figura 3.18. Nesta estrutura, considera-se que um microcontrolador M encontra-se embarcado6 num sistema SE. O objetivo de M é efetuar o controle supervisório de uma planta P contida em SE e parcialmente contida em M.

Figura 3.18 – Estrutura de Implementação

Esta estrutura foi elaborada de acordo com a arquitetura de Queiroz e Cury (Figura 3.17), com seu detalhamento concebido visando a implementação de supervisores em microcontroladores.

Considera-se que P é parcialmente contida em M ao aceitar-se que elementos de M, tais como portas de entrada e saída, conversores analógico-digitais, temporizadores e

registros, bem como suas respectivas rotinas de tratamento, são parte integrante de P. Esta consideração é feita com o intuito de:

a) permitir a inclusão de elementos de baixo nível, tais como temporizadores e registros, no processo de modelagem e síntese dos supervisores;

b) ao modificar o modelo de M e/ou um elemento de P (sem alterar a lógica de controle), ser necessário somente ajustar as rotinas de baixo nível (RBNs), mantendo inalterado o restante do código, inclusive o código da interface I.

Assume-se que um sistema produto SP é uma abstração de P, de modo que o controle do SP, feito via um conjunto de supervisores modulares locais reduzidos SRs, resulta no efetivo controle de P. Considera-se que SP contém n subplantas assíncronas (cada uma com τn

transições e En estados) e que existem ao todo m SRs (cada um com τm transições e Em

estados). Os m SRs controlam o SP via a dinâmica habilitação ou desabilitação de c eventos controláveis do SP.

Assume-se que o SP se relaciona com P via uma interface I. Esta interface I contém u funções de leitura Lu(IP) → σ, onde IP é uma informação de um elemento de P e σ é um

evento não controlável (σ ∈ Σnc) ou vazio ε. A interface I possui também v funções de escrita

Ev(σ) AP, onde σ é um evento controlável (σ ∈ Σc) e AP é uma atuação num elemento de P. As funções de leitura Lu mapeiam a avaliação de informações provenientes de P com a ocorrência de eventos (não controlável ou vazio ε) no SP. Por sua vez, as funções de escrita

Ev mapeiam eventos controláveis ocorridos no SP com atuações em elementos de P. O evento vazio ε corresponde à não ocorrência de nenhum evento.

3.3.3 Representação do SP e dos SRs no Microcontrolador M

Considere que as informações referentes às n subplantas assíncronas SPi com i = 1, 2, ..., n, são implementadas na memória de programa de M pelas matrizes e vetores apresentados na Tabela 3.4.

Tabela 3.4 – Representação do SP no Microcontrolador M

Elemento Conteúdo

n n

3

SPτ × n matrizes de dimensão τn× 3, que contêm o estado de partida, evento e estado de chegada para toda transição de cada subplanta assíncrona SPi

n

EASP vetor linha de dimensão n, que contém o estado ativo de cada subplanta assíncrona SPi, ou seja, EASPn = [EASP1 EASP2 ... EASPn]

n n k E

ECASP

n – k vetores linha de dimensão En, que contêm binários [com c bits, cada bit correspondendo à condição (ativo = 1, inativo = 0) de um dos eventos controláveis] para cada estado das subplantas assíncronas SPi que contenham eventos controláveis, sendo k a quantidade de subplantas assíncronas SPi que não contêm eventos controláveis

Considere que as informações referentes aos m SRi, com i = 1, 2, ..., m, são implementadas na memória de programa de M pelas matrizes e vetores apresentados na Tabela 3.5.

Tabela 3.5 – Representação dos SRs no Microcontrolador M

Elemento Conteúdo

m m

3

SRτ × m matrizes de dimensão τm× 3, que contêm o estado de partida, evento e estado de chegada para toda transição de cada SRi

m

EASR vetor linha de dimensão m, que contém o estado ativo de cada supervisor modular local reduzido SR

i, ou seja, EASRm = [EASR1 EASR2 ... EASRm] m

m E

ECDSR m vetores linha de dimensão Ebits, cada bit correspondendo à condição (habilitado = 1, desabilitado = 0) de um dos eventos m, que contêm binários (para cada estado de todo SRi) com c

controláveis

3.3.4 Convenção de Etiquetagem dos Eventos

Na implementação utiliza-se a convenção de etiquetagem dos eventos adotada no programa TCT (Feng e Wonham, 2006), onde eventos controláveis são rotulados com inteiros ímpares e eventos não controláveis são rotulados com inteiros pares. Reserva-se o rótulo 0 para o evento vazio ε7.

3.3.5 Priorização de Eventos Não Controláveis e Eventos Controláveis

Para ter-se garantia de consistência do sistema de controle, prioriza-se o processamento dos eventos não controláveis (ocorridos em SP a partir de informações provenientes de P) em relação aos eventos controláveis (gerados em SP visando efetuar atuações na planta P). Desta forma, o estado do sistema produto SP é sempre fiel ao estado da planta P. O sincronismo entre os elementos do SP e os SRs é garantido, em virtude deles sempre serem atualizados num mesmo laço de processamento.

3.3.6 Dinâmica de Processamento

A dinâmica de processamento proposta, é detalhada a seguir e ilustrada de forma esquemática no fluxograma contido na Figura 3.19, apresentada na seqüência.

Após a inicialização, a interface I efetua uma varredura das informações da planta P via u funções de leitura Lk, com k = 1, 2, ..., u. Se o retorno de uma função de leitura Lk for um evento vazio ε, a próxima função de leitura, Lk+1, é avaliada. Caso contrário, o retorno da função de leitura Lk é um evento não controlável σ ∈ Σnc, que deve ser processado.

Numa primeira hipótese, considere que uma das funções de leitura Lk retorna um evento não controlável σ ∈ Σnc. Sendo assim, com este evento σ, atualiza-se o estado ativo de cada subplanta assíncrona SPi , i = 1, 2, ... n, via (3.1), onde j pode assumir j = 1, 2, ..., τn

( ) , se existir tal que ( ) e ( ) , caso contrário i i i ( i ) j ,3 j ,1 j ,2 ( i ) ( i ) SP j SP EASP SP EASP EASP σ = = ⎧ ⎪ = ⎨ ⎪⎩ (3.1)

e também atualiza-se o estado ativo de cada supervisor reduzido SRi , i = 1, 2, ... m, via (3.2), onde j pode assumir os valores j = 1, 2, ..., τm

( ) , se existir tal que ( ) e ( ) , caso contrário i i i ( i ) j ,3 j ,1 j ,2 ( i ) ( i ) SR j SR EASR SR EASR EASR σ = = ⎧ ⎪ = ⎨ ⎪⎩ (3.2)

Logo após, obtém-se o escalar binário ECAH através de (3.3), onde o símbolo E corresponde à operação lógica E-bit-a-bit,

(

( i )

) (

( i )

)

n k i m i

i 1 ( EASP ) i 1 ( EASR )

ECAH ECASP ECDSR

= =

= Ε Ε Ε . (3.3)

Este escalar binário ECAH, informa quais eventos controláveis σ ∈ Σc estão ativos no

SP e habilitados pelos SRs. Se nenhum evento controlável σ ∈ Σc estiver ativo no SP e habilitado pelos SRs, ou seja, se ECAH = 0, faz-se σ = ε e retorna-se à varredura das informações da planta P. Por outro lado, se existir mais de um evento controlável σ ∈ Σc ativo no SP e habilitado pelos SRs, define-se o evento σ à ocorrer através de um esquema de prioridade fixa (apresentado em detalhes na Seção 3.3.8). Ocorrido o evento σ, realiza-se um ciclo de atuação nos elementos de P via v funções de escrita Ek, k = 1, 2, ..., v. Além disto, processa-se este evento σ em SP e nos SRs, através de (3.1) e (3.2), respectivamente. Logo após, retorna-se ao processo de varredura das informações da planta P.

Agora, numa segunda hipótese, considere que após a inicialização, complete-se o ciclo de varredura sem ter-se nenhum evento não controlável σ ∈ Σnc a ser processado. Neste caso, obtém-se o escalar binário ECAH através de (3.3) e avalia-se a existência de eventos controláveis σ ∈ Σc ativos no SP e habilitados pelos SRs. Se nenhum evento controlável σ ∈ Σc estiver ativo no SP e habilitado pelos SRs, retorna-se à varredura das informações da planta

P. Caso contrário, define-se o evento controlável σ ∈ Σc à ocorrer, o evento σ ocorre, realiza-se um ciclo de atuação nos elementos de P via funções de escrita Ev e processa-se este evento

σ em SP e nos SRs, via (3.1) e (3.2), respectivamente. Logo após, retorna-se ao processo de varredura das informações da planta P.

Rotinas de baixo nível RBNs garantem que mudanças nas informações provenientes da planta P, ocorridas durante o processamento de outras rotinas, sejam memorizadas para tratamento posterior. Utiliza-se uma prioridade fixa para leitura das entradas via funções Lk, com k = 1, 2, ..., u (prioridade de L1 > prioridade de L2 > ... > prioridade de Lu), de modo que a ordem de ocorrência dos eventos não controláveis não é identificada.

k = 0 k = k + 1 Lk (IP)

= ?

Atualiza estado ativo de cada subplanta assíncrona SPi, i = 1, 2, ... n

usando a Equação (3.1) Atualiza estado ativo de cada supervisor reduzido SRi, i = 1, 2, ... m

usando a Equação (3.2)

Usando a Equação (3.3), identifica quais eventos controláveis cestão ativos em SP e habilitados pelos SRs

k = 0 k = k + 1 Ek ( ) AP k = u ? k = v ? ECAH = 0? N Início N

Usando esquema de prioridade fixa apresentado na Seção 3.3.7, define qual evento controlável c deve ocorrer

Fu nções d e Leitur a Fu ões d e Escr it a S N S N S INTERFACE SISTEMA PRODUTO SUPERVISORES = k = 0 S

Figura 3.19 – Fluxograma da Dinâmica de Processamento

3.3.7 Insensibilidade ao Entrelaçamento de Eventos Não Controláveis

A metodologia de implementação aqui proposta, pode não reconhecer a ordem de ocorrência dos eventos não controláveis, pois se durante o processamento de um determinado

evento ocorrerem dois ou mais eventos não controláveis, não será possível identificar qual evento não controlável ocorreu primeiro. Sendo assim, é importante que os supervisores sintetizados sejam insensíveis ao entrelaçamento (Fabian e Hellgren, 1998).

Dadas duas seqüências de eventos s1 e s2 ∈ Σ*, o conjunto de seqüências de eventos denotado por s1 ||| s2, consiste nos possíveis entrelaçamentos de s1 e s2.

Exemplo 3.1 Sejam s1 = abc e s2 = xy duas seqüências de eventos. Então s1 ||| s2 = {abcxy,

abxyc, abxcy, axybc, axbyc, axbcy, xyabc, xaybc, xabyc, xabcy}.

Um supervisor S é insensível ao entrelaçamento com relação a uma planta G (definida sobre um alfabeto Σ = Σc ∪ Σnc), se para s ∈ Σ*, s1, s2 ∈ Σnc e σ ∈ Σc,

s s1 s2 σ ∈ L(S/G) → s (s1 ||| s2) σ ⊆ L(S/G) (3.4) ou seja, um supervisor é insensível ao entrelaçamento se sua ação de controle não depender

dos possíveis entrelaçamentos de eventos não controláveis que possam ocorrer após qualquer seqüência de eventos s.

Caso esta propriedade não seja satisfeita, o supervisor pode adotar uma ação de controle incorreta, em função de não reconhecer a ordem de ocorrência dos eventos não controláveis. Este problema não existe se o supervisor é insensível ao entrelaçamento (Fabian e Hellgren, 1998).

Exemplo 3.2 Seja o supervisor apresentado na Figura 3.20, cujo objetivo é identificar a

ordem de ocorrência dos eventos a1 e a2 e desabilitar adequadamente um dentre os eventos b1 e b2. Após a seqüência a1a2 o supervisor desabilita o evento b2 (habilita o evento b1) e após a seqüência a2a1 o supervisor desabilita o evento b1 (habilita o evento b2).

Figura 3.20 – Supervisor para Distinção de Seqüência de Eventos (Fabian e Hellgren, 1998)

Considerando que o autômato ilustrado na Figura 3.20 gera a linguagem L(S/G), e assumindo que s = ε, s1 = a1 ∈ Σnc, s2 = a2 ∈ Σnc e σ = b1 ∈ Σc, tem-se s s1 s2 σ = a1a2b1 ∈ L(S/G) e s (s1 |||

s2) σ = {a1a2b1, a2a1b1}. Como a2a1b1 ∉ L(S/G), então este supervisor não é insensível ao entrelaçamento.

Exemplo 3.3 Seja o supervisor ilustrado na Figura 3.21, cujo objetivo é habilitar a ocorrência

do evento b após uma ocorrência de cada um dos eventos a1 e a2, independente da ordem.

Figura 3.21 – Supervisor Insensível ao Entrelaçamento

Considerando que o autômato ilustrado na Figura 3.21 gera a linguagem L(S/G) e assumindo que s = ε, s1 = a1 ∈ Σnc, s2 = a2 ∈ Σnc e σ = b ∈ Σc, tem-se s (s1 ||| s2) σ = {a1a2b, a2a1b} ⊆

L(S/G), logo este supervisor é insensível ao entrelaçamento.

3.3.8 Priorização de Eventos Controláveis

A ordem de processamento dos eventos controláveis ativos no SP e habilitados pelos

SRs segue esquema de prioridade fixa, definida pela ordenação dos bits (referentes à cada evento controlável σc) dos elementos binários dos vetores ECASPn-k e ECDSRm, sendo o bit mais à esquerda associado ao evento controlável σc de processamento mais prioritário.

Exemplo 3.4 Seja um SP contendo três eventos controláveis c1, c2 e c3. Considerando a ordenação <c1><c2><c3> dos bits dos elementos binários dos vetores ECASPn-k e ECDSRm, define-se que o evento controlável σc de processamento mais prioritário é o c1 (e o de processamento menos prioritário é o c3). Assim, se num determinado laço de processamento os eventos controláveis c2 e c3 estiverem ativos no SP e habilitados pelos SRs, o evento controlável c2 será processado neste laço.

A definição deste esquema de prioridade é um processo importante, pois dependendo da priorização adotada, o comportamento do sistema sob supervisão pode tornar-se bloqueante. Além disto, ao priorizar um evento controlável em relação aos demais, uma parcela do comportamento do sistema sob supervisão deixa de ser realizável (Vieira, 2007).

Em (Malik, 2002), é definido um algoritmo que verifica se um determinado supervisor representado por um autômato S é insensível à priorização dos eventos controláveis. Este algoritmo é apresentado na seqüência.

Insensibilidade à Priorização de Eventos Controláveis (Malik, 2002)

Seja um supervisor representado por um autômato S = (Q, Σ, q0, Qm, δ) e um conjunto de estados Q0, Q1, ... de S, onde:

Q0 = Qm Qn+1 = Qn ∪ {q ∈ Q | existe σnc ∈ ΣS(q) ∩ Σnc : δ(q, σnc) ∈ Qn} ∪ {q ∈ Q | ΣS(q) ∩ Σc≠ ∅ e para todo σc ∈ ΣS(q) ∩ Σc : δ(q, σc) ∈ Qn} Q = i i Q

O supervisor S é insensível à priorização dos eventos controláveis se e somente se todos os estados alcançáveis de S estão contidos em Q.

Exemplo 3.5 (Vieira, 2007) Considere um SED formado pelas subplantas G1 e G2 (Figura 3.22), onde os eventos controláveis ai e bi, com i = {1, 2}, correspondem respectivamente ao início e fim de operação de dois dispositivos G1 e G2. A especificação de controle E visa evitar que os dois equipamentos estejam em operação simultaneamente e que sempre seja possível operar o equipamento G2.

0 G1: 0 1 1 a1 b1 0 G2: 1 a2 b2 2 a2 b2 a1 b1 E:

Figura 3.22 – Subplantas G1 e G2 e Especificação de Controle E

Pode-se verificar que a linguagem alvo K = E || Lm(G) é não bloqueante e controlável e.r.a.

L(G), onde G = G1 || G2. Portanto, existe um supervisor S tal que Lm(S/G) = K. Teoricamente, o comportamento do SED sob supervisão é o ilustrado na Figura 3.23(a). No entanto, na implementação é necessário o uso de um esquema de prioridade. Se no esquema de prioridade o evento a1 possuir maior prioridade em relação ao evento a2 (ordenação <a1><a2>), então o evento a2 nunca ocorrerá e o comportamento efetivo do SED sob supervisão será bloqueante, conforme apresentado na Figura 3.23(b). Por outro lado, se o evento a2 possuir maior prioridade em relação ao evento a1 (ordenação <a2><a1>), o evento a1 nunca ocorrerá e o problema do bloqueio não é mais observado, mas o comportamento efetivo do SED sob supervisão corresponde a apenas uma parcela do previsto, ou seja, o dispositivo G1 nunca entrará em operação, conforme ilustrado na Figura 3.23(c).

O uso do algoritmo de verificação da insensibilidade à priorização de eventos controláveis para este supervisor S resulta em Q0 = Q1 = {2}, evidenciando que a definição do esquema de prioridade deve ser feita com cuidado, pois dependendo da priorização adotada, o comportamento efetivo do sistema sob supervisão pode tornar-se bloqueante.