mapas cognitivos aplicados ao controle ......os conceitos de um mapa cognitivo podem ser atualizados...

31
MAPAS COGNITIVOS APLICADOS AO CONTROLE QUALITATIVO DE PROCESSOS. MARCIO MENDONÇA, LUCIA V. R ARRUDA, FLAVIO NEVES-JR. Laboratório de Automação e Sistemas de Controle Avançado LASCA, Universidade Tecnológica Federal do Paraná. Rua Sete de Setembro, 3165Centro80230-901 - Curitiba, PR - Brasil E-mails: [email protected], [email protected], [email protected]. Abstract This work proposes the use of the Fuzzy Cognitive Maps (FCM) tuned by Genetic Algorithm and Neural Networks to the qualitative control process. First, a FCM is used to extract and model the expert knowledge about the process control. After this, a genetic algorithm is used to tuning the FCM from data process operating for several points. Finally a neural network is trained to adapt the FCM weighs according to process changes. The obtained FCM is applied in the supervision of a chemical processes in order to generate setpoints to PID control. The goal is to assure the reaction product quality. .Keywords Fuzzy Cognitive Maps, Artificial Neural Networks, Intelligent Control Resumo Este trabalho propõe o uso de Fuzzy Cognitive Maps (FCM) ajustados por Algoritmos Genéticos e Redes Neurais pa- ra o controle qualitativo de processos. Um FCM é usado inicialmente para a aquisição e modelagem do conhecimento empírico de especialistas. Em seguida um algoritmo genético é utilizado para sintonizar o FCM a partir de dados do processo obtidos para várias faixas de operações, gerando para cada faixa de operação um conjunto diferente de pesos para o FCM. Por fim uma rede neural é treinada para adaptar as ponderações do FCM de acordo com as mudanças de ponto de operação do processo. O FCM assim ajustado é aplicado no controle supervisório de um processo de fermentação sendo responsável pela mudança de setpoints do processo a fim de garantir a qualidade do resultado da reação química. Palavras-chave Mapas Cognitivos Difusos, Redes Neurais Artificiais, Controle Inteligente. 1 Introdução Seres humanos são capazes de lidar com proces- sos bastante complexos, baseados em informações imprecisas e/ou aproximadas. A estratégia adotada é também de natureza imprecisa e geralmente possível de ser expressa em termos lingüísticos. Esse tipo de informação pode ser formalmente modelado através de sistemas fuzzy (Zadeh, 1992). Entretanto, informa- ções também podem ser adquiridas a partir dos dados de operação e/ou, funcionamento de um sistema. Este tipo de conhecimento pode ser adquirido através de técnicas de identificação e modelagem. Entre estas técnicas as Redes Neurais Artificiais (RNA) se desta- cam pela capacidade de processar dados massivos de uma maneira paralela (Haykin, 2000). Por outro lado, os mapas cognitivos difusos, do inglês Fuzzy Cogni- tive Maps (FCM), é uma ferramenta para a modela- gem do conhecimento humano, obtido através de termos lingüísticos, inerentes aos sistemas difusos, mas com uma estrutura semelhante à das RNA, apre- sentando, portanto capacidade de treinamento e adap- tação. Neste contexto, um FCM pode ser considerado um modelo híbrido (fusão de duas áreas de conheci- mento) com um forte grau de iteração, no qual não se pode identificar e separar as estruturas das áreas de origens, somente a semântica de construção. Além das vantagens e características herdadas das técnicas primárias, FCM foi originalmente pro- posto como uma ferramenta para construção de mo- delos e/ou mapas mentais em diversas áreas de co- nhecimento, o que sugere que a técnica possui uma facilidade na abstração de informações para modela- gem devido à sua semelhança de construção com o raciocínio humano. Os mapas cognitivos difusos a- gregam vantagens de aquisição, tratamento e capaci- dade de adaptação a partir de dados e informações do sistema a ser modelado, com uma capacidade inteli- gente de tomada de decisão devido à sua natureza heurística. Estas características os tornam apropria- dos ao desenvolvimento de sistemas inteligentes de controle. O crescente interesse pela aplicação de sistemas inteligentes no controle automático de processos in- dustriais complexos é devido à presença de não- linearidades em regime dinâmico, e, em alguns casos a baixa qualidade na aquisição de medidas disponí- veis, níveis de ruído e sensoriamento fortemente dis- tribuído. Em geral, nesses sistemas, controlam-se apenas variáveis secundárias, as quais podem ser medidas (temperatura, pressão, fluxo, entre outros), deixando a cargo do operador a tomada de decisão que influencia a quantidade e a qualidade final e/ou parcial do processo. Com isto, o maior fator de para- das de produção é a falha humana, devido a erros inerentes à cognição humana, como por exemplo, erro de interpretação dos alarmes e respostas do sis- tema, ou seja, ocorre uma sobrecarga de informação, que contribui para a ocorrência de erros em tomadas de decisão, entre outras. Neste contexto, o uso de sistemas inteligentes baseados em FCM apresenta vantagens na modela- gem e simulação de sistemas complexos, na facilida- de de abstração dos mapas cognitivos aliado à possi- bilidade de treinamento devido a uma estrutura seme- lhante às das Redes Neurais, (Stylios e Groumpos, 2005). O presente trabalho propõe o uso de um FCM para a tomada de decisão sobre mudança de setpoint

Upload: others

Post on 28-Dec-2019

33 views

Category:

Documents


0 download

TRANSCRIPT

MAPAS COGNITIVOS APLICADOS AO CONTROLE QUALITATIVO DE PROCESSOS.

MARCIO MENDONÇA, LUCIA V. R ARRUDA, FLAVIO NEVES-JR.

Laboratório de Automação e Sistemas de Controle Avançado LASCA, Universidade Tecnológica Federal do Paraná. Rua Sete de Setembro, 3165Centro80230-901 - Curitiba, PR - Brasil

E-mails: [email protected], [email protected], [email protected].

Abstract This work proposes the use of the Fuzzy Cognitive Maps (FCM) tuned by Genetic Algorithm and Neural Networks to the qualitative control process. First, a FCM is used to extract and model the expert knowledge about the process control. After this, a genetic algorithm is used to tuning the FCM from data process operating for several points. Finally a neural network is trained to adapt the FCM weighs according to process changes. The obtained FCM is applied in the supervision of a chemical processes in order to generate setpoints to PID control. The goal is to assure the reaction product quality.

.Keywords Fuzzy Cognitive Maps, Artificial Neural Networks, Intelligent Control

Resumo Este trabalho propõe o uso de Fuzzy Cognitive Maps (FCM) ajustados por Algoritmos Genéticos e Redes Neurais pa-ra o controle qualitativo de processos. Um FCM é usado inicialmente para a aquisição e modelagem do conhecimento empírico de especialistas. Em seguida um algoritmo genético é utilizado para sintonizar o FCM a partir de dados do processo obtidos para várias faixas de operações, gerando para cada faixa de operação um conjunto diferente de pesos para o FCM. Por fim uma rede neural é treinada para adaptar as ponderações do FCM de acordo com as mudanças de ponto de operação do processo. O FCM assim ajustado é aplicado no controle supervisório de um processo de fermentação sendo responsável pela mudança de setpoints do processo a fim de garantir a qualidade do resultado da reação química.

Palavras-chave Mapas Cognitivos Difusos, Redes Neurais Artificiais, Controle Inteligente.

1 Introdução

Seres humanos são capazes de lidar com proces-sos bastante complexos, baseados em informações imprecisas e/ou aproximadas. A estratégia adotada é também de natureza imprecisa e geralmente possível de ser expressa em termos lingüísticos. Esse tipo de informação pode ser formalmente modelado através de sistemas fuzzy (Zadeh, 1992). Entretanto, informa-ções também podem ser adquiridas a partir dos dados de operação e/ou, funcionamento de um sistema. Este tipo de conhecimento pode ser adquirido através de técnicas de identificação e modelagem. Entre estas técnicas as Redes Neurais Artificiais (RNA) se desta-cam pela capacidade de processar dados massivos de uma maneira paralela (Haykin, 2000). Por outro lado, os mapas cognitivos difusos, do inglês Fuzzy Cogni-tive Maps (FCM), é uma ferramenta para a modela-gem do conhecimento humano, obtido através de termos lingüísticos, inerentes aos sistemas difusos, mas com uma estrutura semelhante à das RNA, apre-sentando, portanto capacidade de treinamento e adap-tação. Neste contexto, um FCM pode ser considerado um modelo híbrido (fusão de duas áreas de conheci-mento) com um forte grau de iteração, no qual não se pode identificar e separar as estruturas das áreas de origens, somente a semântica de construção.

Além das vantagens e características herdadas das técnicas primárias, FCM foi originalmente pro-posto como uma ferramenta para construção de mo-delos e/ou mapas mentais em diversas áreas de co-nhecimento, o que sugere que a técnica possui uma facilidade na abstração de informações para modela-gem devido à sua semelhança de construção com o

raciocínio humano. Os mapas cognitivos difusos a-gregam vantagens de aquisição, tratamento e capaci-dade de adaptação a partir de dados e informações do sistema a ser modelado, com uma capacidade inteli-gente de tomada de decisão devido à sua natureza heurística. Estas características os tornam apropria-dos ao desenvolvimento de sistemas inteligentes de controle.

O crescente interesse pela aplicação de sistemas inteligentes no controle automático de processos in-dustriais complexos é devido à presença de não-linearidades em regime dinâmico, e, em alguns casos a baixa qualidade na aquisição de medidas disponí-veis, níveis de ruído e sensoriamento fortemente dis-tribuído. Em geral, nesses sistemas, controlam-se apenas variáveis secundárias, as quais podem ser medidas (temperatura, pressão, fluxo, entre outros), deixando a cargo do operador a tomada de decisão que influencia a quantidade e a qualidade final e/ou parcial do processo. Com isto, o maior fator de para-das de produção é a falha humana, devido a erros inerentes à cognição humana, como por exemplo, erro de interpretação dos alarmes e respostas do sis-tema, ou seja, ocorre uma sobrecarga de informação, que contribui para a ocorrência de erros em tomadas de decisão, entre outras.

Neste contexto, o uso de sistemas inteligentes baseados em FCM apresenta vantagens na modela-gem e simulação de sistemas complexos, na facilida-de de abstração dos mapas cognitivos aliado à possi-bilidade de treinamento devido a uma estrutura seme-lhante às das Redes Neurais, (Stylios e Groumpos, 2005).

O presente trabalho propõe o uso de um FCM para a tomada de decisão sobre mudança de setpoint

em controle de processos. Na arquitetura proposta, um FCM é usado inicialmente para a aquisição e mo-delagem do conhecimento empírico de especialistas. Em seguida um algoritmo genético é utilizado para sintonizar o FCM modelado pelo especialista a partir de dados do processo obtidos para várias faixas de operações. O algoritmo genético gera para cada faixa de operação um conjunto diferente de pesos para o FCM. Por fim uma rede neural é treinada para adap-tar as ponderações do FCM de acordo com as mu-danças de ponto de operação do processo. A princi-pal vantagem dessa proposta em que um FCM é a-daptado por redes neurais está na facilidade de abs-tração da heurística de funcionamento do sistema de controle a partir do conhecimento especialista com-binada a capacidade de aprendizado de uma rede neural.

O restante deste artigo é organizado como segue. A seção 2 introduz os conceitos necessários ao de-senvolvimento de um FCM. A seção 3 apresenta o processo de fermentação alcoólica a ser controlado e a obtenção do FCM a partir do conhecimento especi-alista. Após a introdução do processo de fermenta-ção, o FCM é sintonizado via algoritmo genético gerando para cada uma das faixas de operação uma matriz de pesos diferentes. Nesta seção também é apresentada a RNA que fará o ajuste dinâmico do FCM. Os resultados obtidos com simulação são apre-sentados na seção 4 e as conclusões e trabalhos futu-ros são endereçados na seção 5.

2 Mapas Cognitivos Difusos

Os mapas cognitivos foram inicialmente propostos por Axelrod (1976) para representar palavras, idéias, tarefas ou outros itens ligados a um conceito central e dispostos radialmente em volta deste conceito. Axel-rod desenvolveu também um tratamento matemático, por meio de operações com matrizes e teoria de gra-fos, para seus mapas cognitivos, nos quais crenças ou afirmações a respeito de um domínio de conhecimen-to limitado são expressas por meio de palavras ou expressões lingüísticas, interligadas por relações simples de causa e efeito (causa/não-causa). Este modelo matemático foi adaptado para inclusão de incertezas através da lógica difusa por Kosko (1986) gerando os mapas cognitivos difusos. À semelhança dos mapas cognitivos originais, os FCMs são grafos direcionais (dígrafos), em que os valores numéricos são variáveis ou conjuntos difusos. Os “nós” destes grafos são conceitos lingüísticos, representados por conjuntos difusos e cada “nó” é associado com outros através de conexões. A cada uma dessas conexões é associado um peso numérico, que representa uma variável difusa relacionada com o nível de causalida-de entre os conceitos.

Os conceitos de um mapa cognitivo podem ser atualizados através da iteração com os outros concei-tos e com o seu próprio valor. Isto é dado pela equa-ção (1) em que as relações causais são representadas

pelo peso da somatória. Resumindo, os valores dos conceitos vão evoluindo após algumas iterações, e normalmente estabilizam-se num ponto fixo ou num ciclo limite (Papageorgiou et al.,2007).

anterioriji

n

ijj

ji AWAfA +×=≠=

∑ ))((1

Onde k é o contador das iterações, n é o número de nós no grafo, Wij é o peso do arco que conecta o conceito Cj ao conceito Ci, Ai (Ai

anterior) é o valor do conceito Ci na iteração atual (anterior) e a função f é uma função do tipo sigmóide:

xexf λ−+

=1

1)(

O fator λ é um fator de esquecimento que ponde-ra a contribuição das relações causais no novo valor do conceito.

A construção de um FCM pode ser realizada em cinco passos:

Passo 1 – Identificação dos conceitos e das suas

interconexões ou relações determinando a natureza (positiva, negativa, neutra) das relações causais entre conceitos.

Passo 2 – Aquisição de dados iniciais, através de ponderação de opinião de especialistas e ou análise do sistema de equações, quando se conhece o modelo matemático.

Passo 3 – Apresentação dos dados referentes à opinião dos diversos especialistas a um sistema lógi-co fuzzy que tem como saída os valores dos pesos do FCM.

Passo 4 – Tratamento da informação, adaptação e ou otimização do FCM inicialmente proposto, ajus-tando suas respostas às saídas desejadas.

Passo 5 – Validação do FCM ajustado nas con-dições de operação do sistema ou processo modela-do.

Na literatura encontram-se aplicações de FCM

em diversas áreas, tais como vida artificial (Dicker-son e Kosko, 1996), sistemas sociais (Taber, 1991), modelagem e tomada de decisão em ambientes cor-porativos, comércio eletrônico (Lee e Lee, 2003), tomada de decisão em rodovias de acesso rápido (Pe-rusich, 1996), tomada decisão na área médica (Papa-georgiou, Stylios e Groumpos, 2006, 2007 e Stylios et al., 2008) entre vários outros. Em especial na área de controle inteligente citam-se os trabalhos de Styli-os, Groumpos (1999, 2005) e de Carvalho (2001).

(1)

(2)

3 Processo Fermentação Alcoólica

O processo de fermentação utilizado nas simula-ções utilizado no trabalho de Fabro em (Fabro e Ar-ruda, 2003). Existem duas válvulas, Fin e Fout, que controlam o fluxo de substrato inserido no tanque e o fluxo de produto (fermentado) retirado deste, respec-tivamente. Um diagrama representando o processo é apresentado na figura 1.

Este processo apresenta quatro variáveis de es-tado: as concentrações de substrato (S), de biomassa (C), de produto (P) e o volume (V) presente dentro do tanque onde ocorre a fermentação. As concentra-ções são dadas em gramas/litro (g/l), e o volume em litros (l). As equações diferenciais descrevendo o comportamento dinâmico do processo são dadas em (3) a (6).

SV

FoutSa

V

FinC

sYcdt

dS −+−= µ/

1

SV

FoutC

dt

dC −= µ

PV

FoutC

sYc

sYp

dt

dP −−= µ/

/

FoutFindt

dV −=

3.1 Construção do FCM para o processo de fermen-tação

O modelo foi desenvolvido utilizando os concei-tos criados a partir das variáveis físicas do processo (Substrato, Biomassa, Produto e o Volume) e dos dispositivos de controle (Válvulas de entrada e saí-da). E, após a definição dos conceitos, determinaram-se as relações causais entre eles. Estas relações cau-

sais foram obtidas a partir de uma análise das equa-ções (3) a (6) e de vários resultados de simulação em que se analisaram as variáveis do processo, em espe-cial suas taxas de variação. Da análise matemática e da observação do comportamento do sistema resul-tam a seguinte lista de eventos e suas causas: • Um aumento da biomassa diminui o substrato

(W1)

• Abertura da válvula Fin aumenta o substrato (W10)

• Abertura da válvula Fout decrementa o substrato (W12).

• A biomassa aumenta com a própria quantidade interna (W3)

• A Biomassa diminui com a abertura da válvula de saída Fout (W5).

• Biomassa diminui com o aumento do substrato (W6).

• O Produto aumenta com incremento de biomassa (W7).

• Produto decrementa com o próprio produto (W8), a abertura da válvula Fout. (W9).

• Biomassa diminui com abertura válvula saída (W11).

• Variações em Vin e Vout alteram o volume. (W2) e (W4).

A fim de realizar o interfaceamento entre o sistema supervisório representado pelo FCM e a malha de controle, foi introduzido no FCM o conceito de SETPOINT, gerando o FCM final dado na figura 2. Nesta figura as relações causais pontilhadas (Ws1 a Ws4) são somente de entrada para o conceito SETPOINT, ou seja, o conceito SETPOINT não tem as características de um conceito de FCM clássico, devido a não interação com os demais conceitos do mapa. Conforme (Jones, Roy e Corbett 2004), este tipo de conceito que possui apenas relações causais de entrada é denominado conceito resposta ou saída, e serve como conexão entre mapas ou sistemas.

O próximo passo na construção do FCM é a de-

terminação dos valores de ponderação das relações causais, isto é, os valores dos W ij interligando os conceitos. Estes valores podem ser indicado pelos especialistas ou obtido a partir de dados do processo. Neste artigo, utilizou-se um algoritmo genético stan-dard (Goldberg, 1989) para obtenção destes valores de peso. Para este AG utilizou-se uma taxa de re-combinação de 95%, e de mutação 5%, cruzamento em um ponto e mutação aleatória. A população inici-al foi de 20 indivíduos com critério de seleção por torneio e o número máximo de geração de 100. O cromossomo é composto por uma lista encadeada de pesos W ij . Mais detalhes sobre a geração desta matriz

Figura 1. Processo Químico Fermentação Alcoólica

(3)

(4)

(6)

(5)

de pesos via algoritmo genético é dada em (Neves, Arruda e Mendonça, 2009).

A tabela 1 mostra os valores finais do subcon-

junto de pesos Wsi associado ao conceito de saída, obtidos pelo AG para dois diferentes valores de set-point. Já a tabela 2 mostra a evolução dos valores dos conceitos no FCM. Após a execução de um ciclo de controle, observa-se que, após 5 iterações o FCM se estabiliza. Nesta tabela, apenas os conceitos A1 até A4 evoluem a partir de seus valores medidos do pro-

cesso, uma vez que os conceitos A5 e A6, associados respectivamente às válvulas de entrada e saída do processo mantêm-se fixo.

A última linha da tabela 2 mostra o valor do conceito de saída de setpoint o qual será enviado para os controladores PID, após o FCM atingir este limite.

3.2 Heurística de Controle

Uma dificuldade na área de controle inteligente de processos está na obtenção e formalização da se-qüência de ações feitas pelos operadores para garan-tir o funcionamento robusto do processo em todas as situações encontradas na prática. Como por exemplo, quais são as ações necessárias para se manter sempre o volume do reator dentro dos seus limites máximo e mínimo, independente das variações de concentração de substrato e produto ao longo da reação?

Para modelar esta seqüência de ações uma lista de ações foi elaborada objetivando controlar o nível do produto não somente em função do volume, mas também o relacionando com as outras variáveis do processo, biomassa e substrato. Considerando que todos os parâmetros do PID são fixos, a sequência de ações utilizada pelo especialista é a seguinte:

1. Para garantir o volume dentro de limites máximo

mínimo, o setpoint do produto é ajustado dentro de uma faixa de valores, aproximadamente 32 e 39 g/l de acordo com necessidade de saída.

2. A biomassa não deve ultrapassar de 10g/l com a mínima inserção de substrato no processo.

3. Quando o volume da mistura atinge os limites, mínino de 1.5l (altura inferior a da válvula de sa-ída do produto) ou máximo de 3.5l (transborda-mento), conseqüentemente, as válvulas de entra-da e saída são fechadas para reestabelecer as condições de operação.

O controle qualitativo proposto neste trabalho emprega uma RNA para identificar as situações críti-cas de volume e substituir a sequência de ações por uma troca de conjunto de pesos, Ws1 a Ws4, no FCM que por sua vez alteram o valor do conceito de saída SETPOINT que será fornecido ao processo. A rede realiza o mapeamento reverso do FCM, tendo como entrada os valores de conceito e como saída os valo-res de pesos do FCM. Para o treinamento são utiliza-dos os dados obtidos com o AG que caracterizam os diferentes regimes de operação (valor de setpoint), do

Tabela 2. Evolução dos conceitos do FCM de controle

3768.03768.03768.03768.03768.03768.0

3562.03562.03562.03562.03562.03562.06

3565.03565.03565.03565.03565.03565.05

5001.05001.05001.05001.05001.00800.04

6499.06496.06476.06342.05706.03311.03

5438.05438.05443.05479.05109.02000.02

4953.04953.04952.05009.05541.01125.01

intsetpoA

A

A

A

A

A

A

FCM=

Figura 2. FCM do processo incluindo conceito SETPOINT

Tabela 1. Subconjunto de parâmetros FCM

Conjunto de pesos relações cau-

sais

Ws1=-1,0000 Ws1=1,0000 Ws2=0,1486 Ws2=0,0486 Ws3=-1,0000 Ws3=-0,8000 Ws4=0,7592 Ws4=0,7192

Fator de esquecimento λ=1,15000 λ=0,8000

Setpoint 32 39

Figura 3. Arquitetura RNA-FCM

processo. Com isto a rede aprende cada regime de operação sendo capaz de generalizar o comportamen-to do FCM para situações intermediárias não treina-das. A topologia utilizada é de 120 neurônios na camada intermediária, 4 sinais de entrada correspondendo às variáveis do processo na entrada da rede (Substrato, Volume, Biomassa e Produto) e 5 neurônios na ca-mada de saída. A saída da RNA determina os valores das quatro relações causais que ligam os conceitos Substrato, Volume, Biomassa e Produto ao conceito SETPOINT, e ainda o valor do fator de esquecimento da função de ativação do nó do FCM dada na equa-ção 2. A rede utiliza treinamento supervisionado (Haykin, 2000), e emprega o método de Levenberg-Marquadt para otimização do processo de aprendiza-gem.

A arquitetura final do sistema de controle é dada na figura 3.

4 Resultados de simulação.

Simulações foram executadas para avaliação de desempenho e robustez da arquitetura do controlador RNA-FCM. No experimento 1, a RNA foi treinada em condições ideais, sem ruído ou perturbações com dados de resposta das variáveis do processo. A figura 4 mostra o desempenho do controlador PID e do con-trolador proposto (RNA-FCM). Ressalta-se que, esse experimento avalia desempenho dos controladores e não a tomada de decisões, como por exemplo, no experimento 2, o cálculo de novo valor de setpoint, em situações de erros. Deste modo, a rede é capaz de auxiliar o FCM na tomada de decisões de controle semelhante à de um operador humano.

O segundo experimento, objetiva avaliar robus-tez e capacidade de adaptação do controlador. Deste modo, o processo é inicializado ou permanece por um período de tempo em um ponto de operação dife-rente, fora da faixa de operação desejada (setpo-int=30), como mostra figura 5. O FCM identifica a situação e, determina outro ponto de operação, porém

dentro dos limites de operação do processo. Neste contexto, outra avaliação da robustez da arquitetura

de controle proposta é considerada. Assim, em um terceiro experimento, introduz-se erro de medição, supostamente provocado por uma falha de leitura de sensor, no instante de amostragem k = 220 no con-junto de dados de treinamento da rede. A figura 6

mostra o resultado, resposta do controlador RNA-FCM, e os dados de treinamento da rede.

Estes resultados mostram a habilidade da RNA auxiliar o FCM no chaveamento de setpoint do pro-cesso simulado, ou seja, a adaptação das relações de causalidade, previamente determinadas pelo algorit-mo genético. Em resumo, os testes demonstraram flexibilidade e robustez da arquitetura proposta frente a erros de operação e presença de ruídos.

5 Conclusão Final

Neste trabalho desenvolveu-se uma arquitetura de controle inteligente baseada em FCM, AG e RNA no controle de um processo não-linear. De um modo geral, resumem-se algumas vantagens da utilização da arquitetura proposta:

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

Figura 4. Resposta do controlador PID e RNA-FCM (sem ruído).

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

Figura 6. Dados de treinamento e resposta, do RNA-FCM.

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

0 50 100 150 200 250 300 3500

10

20

30

40

50

60

70

X: 175Y: 38.99

Figura 5. Resposta da RNA-FCM após erro de inicialização.

PID

RNA-FCM

Dados Treino RNA

Resposta RNA-FCM

Erro em um período inicial.

Erro em um ponto inicial

� Volume � Produto � Substrato � Biomassa

� Volume � Produto � Substrato � Biomassa

� Volume � Produto � Substrato � Biomassa

• Capacidade de modelagem do processo a partir de conhecimento empírico e prático de especia-listas. O modelo obtido é um FCM.

• Facilidade de refinamento posterior do FCM em que um AG é utilizado para construir um modelo FCM para cada ponto de operação. Outras técni-cas tais com nuvem de partículas, ou um método clássico de otimização poderia ter sido utilizado.

• Adaptação on-line do modelo a partir de uma rede neural. E, deste modo, FCM tem uma alta capacidade de aprendizado, podendo empregar técnicas off-line e on-line no processo de apren-dizagem do modelo.

• FCM tem alta flexibilidade de configuração, cada conceito pode ser uma entrada ou saída de um modelo e, deste modo, tem facilidade em a-plicações de controle multivariado.

Os resultados simulados apresentados neste tra-

balho credenciam a utilização da arquitetura proposta e de FCMs em particular, para o controle inteligente de processos. A proposta de utilizar RNA para o a-juste dinâmico de um FCM, apesar de apresentar resultados ainda iniciais, através da mudança em re-gime das relações causais do FCM. tem aplicação potencial em processos onde não se conhece total ou parcialmente o modelo matemático.

Somente uma tarefa do controle supervisório foi desenvolvida, a geração de setpoint para o nível mais baixo da planta. Outras funções poderão ser imple-mentadas com a arquitetura proposta, como por e-xemplo, detecção de falhas, monitoração, diagnósti-cos entre outras. Finalizando, essas arquiteturas po-dem auxiliar na aquisição de dados e/ou conhecimen-to ao modelo FCM na construção de controladores inteligentes com capacidade de inferência, adaptação e flexibilidade de desenvolvimento.

Referências Bibliográficas

Axelrod, R. (1976). Structure of Decision: the Cognitive Maps of Political Elites. Princeton University Press, New Jersey.

Carvalho, J.P.B. (2001). Mapas Cognitivos Baseados em Regras Difusas. Dissertação de mestrado. Universidade de Lisboa.

Dickerson, J.A. and Kosko, B. (1996). Virtual worlds as fuzzy dynamical systems. In: B. Sheu Editor, Technology for Multimedia, IEEE Press, New York.

Fabro, J. A. e Arruda, L. V. R. (2003). Fuzzy-Neuro Predictive Control, Tuned by Genetic Algorithms, Applied to a Fermentation Process. Proceedings of the 2003 IEEE International Symposium on Intelligent Control Houston, Texas • October 5-8.

Goldberg, D. E. (1989). Genetic Algorithmos in Search Optmization and Machine Learning.Reading, Mass: Addison-Wesley.

Haykin, S. (2000). Redes Neurais, Princípios e Prática Bookman C. Editora, São Paulo, 2ª Edição.

Jones, P.M., Roy R, Corbett. J. (2004). Modeling Physical Systems using Fuzzy Inference Cognitive Maps. IEEE. 0-7803-8376-1/04/.

Kosko, B. (1986). Fuzzy Cognitive Maps, Int.J. Man-Machine Studies, 24, p.65-75.

Lee K. C., Lee S. (2003). A cognitive map simulation approach to adjusting the design factors of the electronic commerce web sites. Expert Systems with Applications, Volume 24, Issue 1, January, Pages 1-11.

Neves-Jr. F., Arruda L. V.R. e Mendonça M. (2009). A Combined FCM-GA Approach to Supervise Industrial Process. SAFE - 3rd international conference on safety and security engineering. (to appear).

Papageorgiou E., Stylios C. and Groumpos P. (2006). A Combined Fuzzy Cognitive Map and Decision Trees Model for Medical Decision Making," Engineering in Medicine and Biology Society.

Papageorgiou E., Stylios C. and Groumpos P. (2007). Novel Architecture for supporting medical decision making of different data types based on Fuzzy Cognitive Map Framework. Proceedings of the 29th Annual International Conference of the IEEE EMBSCité Internationale, Lyon, France August 23-26.

Perusich K. (1996). Fuzzy Cognitive Maps for Policy Analysis. IEEE Purdue University South Bend, IN 46634 USA

Stylios D.C., Groumpos P. (1999). Fuzzy Cognitive Maps: a model for intelligent supervisory control systems Elsevier Computers in Industry 39-.229–238.

Stylios D.C., Groumpos P. (2005). A First Study of Fuzzy Cognitive Maps Learning Using Particle Swarm Optimization. Journal of Intelligent Information System. Volume 25, Issue 1.95 - 121 ISSN: 0925-9902.

Stylios D.C., Georgopoulos, V. C., Malandraki, G. A., and Chouliara, S. (2008). Fuzzy cognitive map architectures for medical decision support systems. Appl. Soft Comput. 8, 3 (Jun. 2008), 1243-1251.

Taber, R. (1991). Knowledge processing with fuzzy cognitive maps. Expert Systems with Applications 2 1, pp. 83–87,

Zadeh L.A, (1992). An introduction to fuzzy logic applications in intelligent systems, 1st edn. Kluwer Academic Publisher, Boston.

EVOLUÇÃO DE PROGRAMAS INSTRUCTION LIST PARA CONTROLADORES LÓGICO PROGRAMÁVEIS

UTILIZANDO PROGRAMAÇÃO GENÉTICA

MARCOS L. CARNEIRO, LEONARDO C. BRITO, SÉRGIO G. ARAÚJO

Escola de Engenharia Elétrica e Computação, Universidade Federal de Goiás, Av. Universitária, n 1488 – Quadra 86 – Bloco A – 3º piso, 74605-010 – Setor Leste Universitário, Goiânia - GO, BRASIL E-mails: [email protected], [email protected], [email protected]

Abstract¾ In this paper, we propose a technique to automatically generate control programs for Programmable Logic Control-ler (PLC) devices. To this end, previous studies have used genetic programming techniques. Among these programming tech-niques, the Ladder language was the first to be applied. In this work, we demonstrate that by using the Instruction List program-ming, we can achieve a greater number of answers to one given problem and more flexibility in the program structure. With col-lected statistical data and four study cases, the simulations also showed better performance for higher taxes of mutation.

Keywords ¾ Genetic programming, automation, PLC, Instruction List.

Resumo¾ Esse artigo propõe uma técnica para gerar automaticamente programas para Controladores Lógicos Programáveis (CLP) utilizando Programação Genética (PG). Trabalhos anteriores utilizaram a linguagem Ladder como forma de representação dos programas. Este trabalho propõe a utilização da linguagem Instruction List com o objetivo de alcançar maior desempenho. Os resultados demonstraram que essa técnica foi capaz de produzir maior número de respostas para um mesmo problema e mai-or flexibilidade da estrutura do programa. Com dados estatísticos coletados através de quatro estudos de caso, as simulações demonstraram também maior desempenho com o uso de elevadas taxas de mutação.

Palavras-chave ¾ Programação genética, automação, CLP, Instruction List.

1 Introdução

Sistemas automáticos são usados em todas as indús-trias e em sistemas de produção em larga escala. A-lem disso, existe grande quantidade de pequenos sis-temas automáticos dedicados a tarefas simples, como por exemplo, na automação de residências. Entretan-to, esses sistemas ainda exigem conhecimento especí-fico e trabalho manual para serem programados.

A possibilidade de programar automaticamente um Controlador Lógico Programável (CLP) através da geração automática de programas Ladder e Ins-truction List usando abordagem de aprendizado de máquina é bastante atrativa uma vez que não é neces-sário saber os detalhes da lógica da programação, mas apenas cenários intuitivos de funcionamento.

Esse artigo propõe o uso da Programação Gené-tica (PG) para gerar programas para serem colocados em CLPs. A abordagem proposta é avaliada através de dados empíricos de simulações.

1.1 Linguagem Instruction List e os CLPs

A linguagem Instruction List para PLC se assemelha à linguagem assembly e é usada para fornecer a lógi-ca de controle para o dispositivo de acordo com as entradas de dados no tempo (Lewis, 1995).

A Instruction List é uma linguagem de baixo ní-vel encontrada em muitos dispositivos eletrônicos microcontrolados e é basicamente estruturada em duas colunas de código: uma para comandos e outra para entradas, saídas ou referências auxiliares.

O CLP é um dispositivo básico para automação de sistemas. Ele pode ser re-programado muitas ve-

zes sendo, portanto, possível reinstala-lo em diferen-tes plantas industriais. Através da evolução de pro-gramas de PLC, e a flexibilidade desse equipamento, ele pode representar um hardware evolutivo (Higui-chi et al, 1992), (Mange; Tomassini, 1998).

Atualmente o CLP é um dispositivo comum, en-contrado em plantas industriais e até em residências podendo ter como função o controle da iluminação, de sistemas de segurança e de comunicação. De for-ma contínua ele realiza leituras em suas entradas, executa um programa e atualiza suas saídas (processo conhecido como scan).

Apesar da existência da IEC 1131-1 Internatio-nal Standard for PLC Languages (Lewis, 1995), cada indústria possui uma linguagem Instruction List pró-pria com diversas particularidades. A linguagem de referência usada neste trabalho para a criação dos programas foi a Instruction List do CLP TPW-03 WEG (WEG, 2008).

1.2 Programação Genética

A técnica apresentada nesse artigo para a criação de programas de CLP é baseada na programação genéti-ca (PG) (Banzhaf, et al, 1998), (Koza, 2000), (Hol-land, 1975), (Carneiro, 2008). A PG é um sistema de busca e otimização criada inspirada na teoria da evo-lução natural de Darwin (Darwin, 1859). O primeiro passo do algoritmo é a criação de uma população de programas aleatórios compostos por um conjunto de comandos. Estes possuem o potencial de representar a solução desejada por meio de uma combinação entre eles.

Em cada geração, a aplicação das operações ge-néticas cross-over, mutação e a seleção, transformam

os indivíduos (programas) em outro grupo de solu-ções. Cada solução é testada e um nível de aptidão (fitness) é atribuído a ela de acordo com a fidelidade com que consegue representar o comportamento de-sejado para o sistema de automação.

1.3 Trabalhos anteriores

Esse artigo e uma extensão do trabalho anterior (Car-neiro, 2008), no qual programas em linguagem Lad-der foram evoluídos geneticamente. O sistema de-monstrou ser eficiente para pequenos programas, mas perdia desempenho para programas maiores e mais complexos. Nesses casos, o nível de aptidão da popu-lação permanecia próximo do nível ideal, mas não alcançava a pontuação máxima. Um problema obser-vado foi a manipulação de elementos gráficos Ladder que tornou o processo mais lento em relação ao tra-balho atual. Dessa forma, simulações que utilizavam um número grande de gerações se tornavam demora-das e improdutivas.

No trabalho anterior, uma matriz foi utilizada pa-ra representar os elementos gráficos dos programas Ladder. Em simulações utilizando a Instruction List, os programas são representados por conjuntos de linhas de texto e sua lógica é realizada por um siste-ma de matrizes que representam apenas variáveis booleanas (Boole, 1854). Isso fez o processo de si-mulação ficar mais rápido permitindo a busca de so-luções por um número maior de gerações ou a execu-ção de várias simulações em um tempo menor.

Como no trabalho anterior, todo o sistema foi desenvolvido utilizando a plataforma de programação Borland Delphi, incluindo o simulador e o sistema de programação genética.

2 Experimento

2.1 Programação Genética

Nos experimentos desta pesquisa foram utilizadas populações de 100 indivíduos. O método de seleção adotado foi o de torneio. O trabalho anterior (Carnei-ro, 2008), assim como as referências (Manovit, et al, 1998) e (Romero; Mantovani, 2004), demonstraram que a seleção proporcional causa alguns problemas de desempenho. O problema principal é a convergên-cia prematura para um mínimo local. A solução re-comendada é a seleção por torneio (Manovit, et al, 1998), (Romero; Mantovani, 2004). Nesse caso, um pequeno grupo de indivíduos da população (4 indiví-duos neste trabalho) é selecionado de forma aleatória e em seguida a melhor solução deste pequeno grupo é escolhida. Esse processo auxilia o algoritmo a evitar a convergência prematura e proporciona a chance de reprodução a quase todos os indivíduos da popula-ção.

O operador genético cross-over realiza a troca de informação entre dois indivíduos da população sec-cionando o código de cada um dos dois indivíduos em dois pontos. Em seguida os segmentos de selecio-nados são passados de um indivíduo para o outro. A seleção deste código é realizada de forma aleatória e pode atingir qualquer segmento do código. O com-primento do código selecionando também é aleatório, proporcionalmente ao tamanho do indivíduo (Ban-zhaf, et al, 1998).

O operador genético mutação é aplicado em um indivíduo pela seleção aleatória de uma linha do có-digo. O local escolhido pode ser um comando ou uma referência de entrada, saída ou auxiliar (Fig. 1). O código selecionado é substituído aleatoriamente por outro código da mesma classe.

Os indivíduos são representados com os próprios comandos de programação, como na Fig. 1 (represen-tação linear).

2.2 Função Objetivo e o Simulador

Começando pela população aleatória criada, cada programa passa por uma sequência de testes e ao final de cada iteração um nível de aptidão é atribuído. Essas seqüências de testes são cenários que represen-tam o comportamento do ambiente automatizado. O comportamento é descrito no tempo através da repre-sentação do sequenciamento dos acionamentos de suas entradas e as respectivas respostas nos contatos auxiliares, nas saídas e nos temporizadores do siste-ma.

Os trabalhos de (Koza, 2000) e (Banzhaf, et al, 1998) mostraram a relevância dos conhecimentos produzidos pelas analogias entre a inteligência artifi-cial e os sistemas biológicos. Em (Hutchinson, 1957), o autor discute a respeito da tolerância e dos meios de interação entre os seres vivos e o ambiente para que estes realizem seu modo de vida. Deste modo, cada seqüência de teste representa um tipo de pressão do meio no sentido de selecionar melhores soluções, assim como os seres vivos são selecionados por con-dições como umidade relativa, pH, fluxo de água, velocidade do vento.

Figura 1. Exemplo de programa Instruction List.

O comportamento do sistema não pode ser des-crito diretamente através de uma tabela verdade por possuir memória. Dessa forma, é necessária uma se-qüência de tabelas verdade ao longo do tempo, for-mando assim o que chamamos de linha do tempo. Foi determinado então que um conjunto de linhas do tem-po representa um cenário. Os cenários de teste são compostos por linhas do tempo que descrevem cada uma, parcialmente o comportamento do sistema (Ma-novit, et al, 1998), (Chongstitvatana, Aporntewan, 1999). Apenas a intersecção de todas as linhas do tempo pode representar o comportamento global de-sejado.

A Fig.2 exemplifica que cada seqüência é capaz de selecionar um conjunto de programas (círculos brancos). Como cada seqüência seleciona diferentes características de cada conjunto, a intersecção se torna cada vez menor (área escura), reduzindo o gru-po de programas que obedecem a todos os compor-tamentos ao mesmo tempo. A viabilidade física ga-rante a existência de um programa que possa obede-cer todos os comportamentos ao mesmo tempo.

Esse projeto utiliza a programação genética pelo fato de ela essencialmente manipular códigos de lin-guagem de programação. Existem três estruturas de programas executáveis na programação genética: em árvore, linear e em gráfico (Banzhaf et al, 1998). A estrutura utilizada no código foi a linear, assim como a dos programas em assembly, e os programas possu-em um limite máximo.

Para simular o programa de automação são ne-cessárias linhas do tempo para descrever a seqüência na qual o dispositivo é operado. À medida que a se-qüência é percorrida, os resultados registrados for-mam a linha do tempo das saídas do CLP.

Após a simulação do programa, o comportamen-to das saídas no tempo é comparado com outra linha do tempo de referência que representa o comporta-mento desejado. Cada linha do tempo criada por um indivíduo é comparada com essa linha do tempo pa-drão. Para cada igualdade, um ponto é acrescentado no nível de aptidão. Se ao final desse cálculo o nível de aptidão alcançar o valor máximo o indivíduo cor-respondente, então, atingiu o objetivo.

A soma de todos os pontos ao longo da simula-ção de todos os cenários gera o nível de aptidão da

solução. A Fig. 3 representa um conjunto de linhas do tempo com o comportamento das entradas (I's), suas respectivas saídas (Q's), contatos auxiliares (M's) e temporizadores (T1). Os momentos preenchi-dos na linha do tempo representam que aquele conta-to está ativo.

Utilizando as linhas do tempo mostradas na Fig. 3 para exemplificar o sistema, cada população de programas receberá como informação de entrada as linhas do tempo I1, I2, I3 e I4. O simulador irá gerar Q1, Q2, M1, M2 e T1. As linhas do tempo M1, M2 e T1 são auxiliares. O nível de aptidão do indivíduo será calculado utilizando apenas Q1 e Q2, pois repre-sentam o comportamento das saídas do CLP que afe-tam o meio externo.

3 Estudos de Caso

A técnica proposta foi aplicada em quatro estudos de caso diferentes: controle de iluminação para escadas (caso I), partida direta de motor (caso II), partida direta de motor com reversão (caso III) e partida es-trela-triângulo (caso IV).

O caso I consiste em uma escada com um inter-ruptor em seu início e outro no final, um conjunto de lâmpadas e um sensor de presença. O objetivo é fazer com que o ambiente se comporte da seguinte forma:

a) Quando alguém sobe ou desce a escada, as lâmpadas precisam ser energizadas para fornecer iluminação.

b) Após a saída da pessoa, o sistema de ilumina-ção precisa ser desligado manualmente ou em cinco minutos automaticamente.

O caso II consiste na lógica de ligação de duas botoeiras em um motor com o seguinte funcionamen-to:

a) Uma botoeira realiza a partida direta do motor através de um inter-travamento.

Figura 3. Exemplo de linha do tempo descrevendo o comportamen-

to de um sistema.

Figura 2. Diagrama demonstrativo das seqüências de teste.

b) Outra botoeira libera o inter-travamento e pa-ra o motor.

O caso III consiste no sistema de ligação de três botoeiras em um motor para que ele possa partir em dois sentidos diferentes:

a) A botoeira I2 parte o motor no sentido horá-rio.

b) A botoeira I3 parte o motor no sentido anti-horário.

c) A botoeira I1 pára o motor. d) Quando o motor está girando em um sentido a

botoeira que executa a rotação no outro sentido deve ser impedida de executar sua função até que o motor tenha sido desligado da alimentação através da boto-eira I1.

O caso IV consiste em um sistema de partida de motor em estrela-triângulo com o seguinte funciona-mento:

a) A botoeira I2 habilita o funcionamento do mo-tor e inicia sua partida com alimentação estrela.

b) Após alguns segundos o sistema deve automa-ticamente trocar a topologia de alimentação do motor de estrela para triângulo. Durante essa etapa é preciso cautela para que o sistema não ative as duas formas de ligação ao mesmo tempo, o que poderia provocar um curto-circuito. O sistema deve garantir que quan-do a topologia estrela estiver ligada não seja possível conectar ao mesmo tempo a topologia triângulo, e vice-versa. A comutação das formas de ligação deve ser realizada através de um temporizador.

c) A botoeira I1 desabilita a alimentação do mo-tor.

Para que a busca pelos programas seja realizada é preciso definir cenários que englobem cada situa-ção de operação através de linhas do tempo. A tabela 1 descreve algumas características de cada estudo como: a necessidade de inter-travamentos, tempori-zadores e a quantidade de cenários que foram defini-dos para cada estudo.

Tabela 1. Características dos estudos de caso.

Caso Inter-

travamento Temporizador Nº

cenários I sim sim 4 II sim não 6 III sim não 8 IV sim sim 4

Foram realizadas 1500 execuções do gerador de

programas para cada estudo de caso, resultando em 6000 execuções ao todo. Foi feita uma seqüência de testes com a utilização de diferentes parâmetros ini-ciais como: número máximo de gerações, número de simulações independentes, taxa de cross-over e taxa de mutação.

As 1500 execuções foram divididas em três gru-pos de 500, cada grupo com os seguintes parâmetros:

a) Cross-Over 80%, mutação 10% e reprodução 10%.

b) Cross-Over 45%, mutação 45% e reprodução 10%.

c) Cross-Over 10%, mutação 80% e reprodução 10%.

Os grupos de 500 execuções foram subdivididos em outros grupos, cada um com um limite de geração diferente, indicado nas colunas “Nº Sim” e “Gmax” nas tabelas 2, 3 e 4.

Os dados coletados podem ser observados nas tabelas 2, 3 e 4. Em cada tabela podem ser vistos o número de simulações independentes (coluna “Nº Sim”) e a quantidade delas que obtiveram sucesso.

Tabela 2. Sucessos para cross-over 80%, mutação 10%, reprodução 10%.

Nº de sucessos em cada caso Gmax Nº Sim I II III IV

25 150 6 73 0 0 50 100 3 57 0 0

100 80 3 59 0 0 150 50 3 37 0 0 200 30 1 22 0 0 300 30 3 22 0 0 400 30 4 21 0 0 500 30 6 21 0 0

Total 500 29 312 0 0

Tabela 3. Sucessos para cross-over 45%, mutação 45%, reprodução 10%.

Nº de sucessos em cada caso Gmax Nº Sim I II III IV

25 150 2 91 0 0 50 100 4 70 0 0

100 80 7 61 0 0 150 50 7 41 0 0 200 30 4 29 0 0 300 30 3 30 2 0 400 30 6 29 2 4 500 30 9 30 9 3

Total 500 42 381 13 7

Tabela 4. Sucesso para cross-over 10%, mutação 80%, reprodução 10%.

Nº de sucessos em cada caso Gmax Nº Sim I II III IV

25 150 1 99 0 0 50 100 2 83 0 0

100 80 4 79 2 1 150 50 7 50 4 0 200 30 8 30 2 2 300 30 8 30 11 2 400 30 8 30 11 6 500 30 12 30 14 5

Total 500 50 431 44 16 Nas tabelas 5, 6 e 7, pela metodologia de (Koza,

2000) foram calculados as porcentagens acumuladas de sucesso e o número de simulações necessárias para se obter um sucesso, P(M,i) e R(z), respectiva-mente, para cada configuração de simulação.

Tabela 5. P(M,I) e R(z) para cross-over 80%, mutação 10%, re-produção 10%.

P(M,I) / R(z) G max Caso I Caso II Caso III Caso IV 25 4% / 113 49% / 7 0% / 0 0% / 0 50 8% / 58 52% / 6 0% / 0 0% / 0

100 11% / 39 57% / 5 0% / 0 0% / 0 150 15% / 28 59% / 5 0% / 0 0% / 0 200 19% / 22 60% / 5 0% / 0 0% / 0 300 23% / 17 61% / 5 0% / 0 0% / 0 400 28% / 14 62% / 5 0% / 0 0% / 0 500 35% / 11 62% / 5 0% / 0 0% / 0

Tabela 6. P(M,I) e R(z) para cross-over 45%, mutação 45%, re-produção 10%.

P(M,I) / R(z) G max Caso I Caso II Caso III Caso IV 25 1% / 343 61% / 5 0%/0 0% / 0 50 4% / 121 64% / 5 0%/0 0% / 0

100 8% / 58 67% / 4 0%/0 0% / 0 150 13% / 34 69% / 4 0%/0 0% / 0 200 18% / 23 71% / 4 0%/0 0% / 0 300 24% / 17 73% / 3 0%/1010 0% / 0 400 30% / 13 75% / 3 1%/539 1% / 539 500 39% / 9 76% / 3 3%/174 1% / 326

Tabela 7. P(M,I) e R(z) para cross-over 10%, mutação 80%, re-produção 10%.

P(M,I) / R(z) G max Caso I Caso II Caso III Caso IV 25 1% / 688 66% / 4 0% / 0 0%/0 50 2% / 244 73% / 4 0% / 0 0%/0

100 4% / 113 79% / 3 1% / 757 0%/1517 150 8% / 58 82% / 3 2% / 289 0%/1747 200 13% / 33 83% / 3 2% / 234 1%/627 300 20% / 21 84% / 2 4% / 104 1%/402 400 28% / 14 85% / 2 6% / 70 2%/194 500 38% / 10 86% / 2 9% / 50 3%/141

A fig. 4 demonstra o formato das soluções

obtidas: programa Instruction List e seu correspondente em Ladder.

4 Discussão dos Resultados

A partir das 6000 simulações executadas e das tabelas apresentadas percebe-se que o conjunto de parâmetros da tabela 4 é o mais favorável para todos os estudos de caso pelo maior número de soluções.

Percebe-se também que os parâmetros da Tabela 2 forneceram os resultados com menor eficiência, sendo completamente ineficientes para os estudos de caso III e IV. Porém, com os parâmetros tabela 3, com um número mais elevado de gerações passou-se a encontrar algumas soluções para os casos III e IV. Essa dificuldade é devida a maior complexidade e

tamanho dos programas da aplicação. Observa-se que quanto maior a quantidade de gerações disponíveis para a evolução do programa, maior é a chance de se encontrarem soluções. Portanto a complexidade do programa afeta o desempenho da técnica.

O estudo de caso II, por se tratar de uma aplica-ção mais simples e de um programa menor, apresen-tou grande facilidade de produzir soluções. Observa-se também que houve uma mudança significativa em seu desempenho da tabela 2 para a tabela 4.

Um fato a ser observado nos resultados do estu-do de caso I é que simulações com maior taxa de cross-over foram mais favoráveis quando o número máximo de gerações é menor. Observa-se nas linhas com geração máxima de 25 que à medida que o cross-over foi sendo reduzido, a quantidade de solu-ções também foi reduzida.

O índice P(M,I) indica a porcentagem de sucesso acumulado referente ao quadro geral de simulações feitas até aquela etapa. À medida que a quantidade de tentativas e o número de gerações aumenta (como as tabelas 5, 6 e 7 indicam), o índice de sucesso acumu-lado aumenta. Dessa forma tem-se uma visão geral da eficiência das execuções quando se utiliza um deter-minado limite máximo de gerações e quando se reali-za uma determinada quantidade de tentativas, ou exe-cuções.

Observa-se pelas tabelas 5, 6 e 7 que o desempe-nho do estudo de caso I permaneceu praticamente constante para longas simulações, apresentando me-lhor desempenho para simulações curtas com maior taxa de cross-over.

Através das tabelas 6 e 7 percebe-se que a técni-ca é capaz de encontrar soluções para os estudos de caso III e IV, porém em ambos os casos é preciso que

Figura 4. Exemplo de solução encontrada.

vários processos de busca independentes sejam exe-cutados. Essa instabilidade quanto à solução do pro-blema deve-se à necessidade de um processamento com mais gerações. Como (Koza, 2000) descreve, o potencial da programação genética é demonstrado empiricamente, não havendo uma prova matemática de que uma solução será encontrada com certeza.

Apesar dos estudos de caso III e IV demonstra-rem maior dificuldade para encontrar soluções, foram encontradas 44 e 16 soluções para eles, respectiva-mente, como pode ser visto na tabela 4.

Os resultados obtidos demonstram que a técnica utiliza um número baixo de gerações para encontrar suas soluções. Para o cenário de coleta de dados mais longo foi definido uma quantidade máxima de 500 gerações. Para aplicações de programação genética esta quantidade é considerada baixa, pois é comum encontrar aplicações na área com limites de geração da ordem de 10.000. Portanto para simulações longas com milhares de gerações espera-se que um número ainda maior de soluções seja encontrado.

5 Conclusões

Esse artigo propôs uma abordagem para a geração automática de programas de CLP para implementa-ção de pequenos sistemas automáticos. A técnica de evolução de programas Instruction List demonstrou ser eficiente pela capacidade de encontrar programas com uma quantidade menor de gerações comparado com a evolução de programas em Ladder (Carneiro, 2008).

Além dos resultados estatísticos obtidos, a análi-se de cada programa-solução em si demonstrou que a geração de programas com estrutura linear foi capaz de produzir programas com maior diversidade de estruturas. O fato de a estrutura linear ser capaz de gerar qualquer estrutura de um programa Ladder re-duziu consideravelmente a quantidade de erros en-contrados na estrutura matricial do trabalho anterior.

Observou-se também que simulações com maio-res taxas de mutação demonstraram ser melhores que simulações com mais cross-over. Isso ocorre, pois o cross-over é uma busca extensiva e a mutação uma busca intensiva. Em praticamente todas as execuções do algoritmo houve evolução da população, porém foram contados apenas os casos que atingiram o nível de aptidão máximo. Taxas altas de cross-over pro-duzem uma evolução mais rápida mas o algorítmo atinge altos níveis de aptidão mas dificilmente con-vergem para 100%.

Novas pesquisas tenderão a restringir o número máximo de linhas usadas pelo programa Instruction List objetivando reduzir o comprimento das respos-tas. Outro aspecto a ser analisado é a implementação de parâmetros de simulação que variem ao longo do tempo com o objetivo de evitar convergência prema-tura e a implementação de um filtro de introns a ser aplicado na resposta final fornecida pelo programa.

Referências

Banzhaf, W., Nordin, P., Keller R. E., Francone F. D. (1998). Genetic Programming, On the automatic Evolution of Computer programs and its applications. Morgan Kaufmann Publishers Inc., San Francisco, Califórnia.

Boole, G. (1854). An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities, Macmillan. Reprinted with corrections, Dover Publications, New York, NY.

Carneiro, M. L. (2008). Programação Genética Aplicada à Linguagem Ladder. Induscon – VIII Conferência Internacional de Aplicações Industriais, Poços de Caldas, Minas Gerais, Brasil.

Chongstitvatana, P., Aporntewan, C. (1999). Improving Correctness of Finite-State Machine Synthesis from Multiple Partial Input/Output Sequences. Department of Computer Engineering, Faculty of Engineering, Chulalongkorn University, Bangkok, Thailand.

Darwin, C. (1859). On the Origin of Species by Means of Natural Selection, John Murray.

Higuchi, T., Niwa, T., Tanaka, T., Iba, H., de Garis, H., Furuya, T. (1992). Evolving hardware with genetic learning: A first step towards building a Darwin machine. In Proc. of Int. Conf. on Simulation of Adaptive Behavior (SAB’92).

Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. University of Michigan Press.

Hutchinson, G. E. (1957). Cold Spring Harbour Symposioum on Quantitative Biology, 22, pp. 415-427.

Koza J. R. (2000). Genetic Programming, On the programming of computers by means of natural selection. The MIT Press, Cambridge, Massachussetts, London, England.

Lewis, R. W. (1995). Programming Industrial Control System Using IEC 1131-3. IEEE Control.

Mange, D., Tomassini, M. (1998). Bio-inspired Computing Machines, towards novel computational architectures. Presses Polytechniques et Universitaires Romandes.

Manovit, C., Aporntewan, C., Chongstitvatana P. (1998). Synthesis of synchrounous sequential logic circuits from partial input/output sequence. In Proc. Of Int. Conf. On Evolvavle Systems (ICES’98), pages 98-105.

Romero, R., Mantovani, J.R.S. (2004). Introdução a Metaheurísticas. Anais do 3º Congresso Temático de Dinâmica e Controle da SBMAC, UNESP, Campus de Ilha Solteira, Brasil.

WEG Automação S.A. (2008). Manual de Instalação – TPW03 Controlador Programável. Av. Pref. Waldemar Grubba, 3000, Jaraguá do Sul, Santa Catarina (SC), Brasil.

METODOLOGIA DE CLASSIFICACAO POR IMAGENS DO ACABAMENTO DEGORDURA DE CARCACAS BOVINAS

Carmen Dalla Rosa Bittencourt∗, Marcelo Ladeira∗, Dıbio Leandro Borges∗, Anderson

Luis Schvindt Bittencourt∗, Saul Fontoura da Silva†

∗Departamento de Ciencia da ComputacaoUniversidade de Brasılia (UnB), Brasılia/DF

†Departamento de Medicina Veterinaria PreventivaUniversidade Federal de Santa Maria (UFSM), Santa Maria/RS

Emails: [email protected], [email protected], [email protected], [email protected],

[email protected]

Abstract— In Brazil, the classification of fat layer of bovine carcasses has to follow the regulation act number612, dated 12/05/1989 from the Ministry of Agriculture (MAPA). This process is performed by mean of visualand subjective observation of predefined areas of the carcass, done by a registered technician at the slaughterprocess inside the meat industries. This paper proposes a methodology for automatic classification of the fatlayer in bovine carcasses using artificial neural networks and a functional prototype for images acquisition duringthe slaughter process. The methodology encompass the use of neural networks to segment and the use of neuralnetworks to classify the fat layers in digital images of bovine carcasses. Results gathered with images acquired inloco in a meat industry from the southern region of the country indicate good performance of this methodology.

Keywords— bovine carcasses classification, fat layer analysis, image segmentation, neural networks

Resumo— No Brasil, a classificacao do acabamento de gordura de carcacas bovinas e regulamentada pelaPortaria no612 de 05/12/1989 do Ministerio da Agricultura (MAPA). Esse processo e realizado por meio daobservacao visual de regioes predefinidas da carcaca, feita por um profissional habilitado durante o processo deabate nas industrias frigorificas. Esse artigo propoe uma metodologia de classificacao automatica do acabamentode gordura em carcacas atraves do uso de redes neurais artificiais e um prototipo funcional de aquisicao deimagens de carcacas durante o abate. A metodologia compreende o uso de redes neurais para segmentar a regiaocorrespondente a gordura e uso de redes neurais para classificar o acabamento de gordura de carcacas bovinasem imagens digitais. Resultados com imagens coletadas in loco em uma industria frigorifica da regiao sul do paısindicam bom desempenho dessa metodologia.

Palavras-chave— classificacao de carcacas bovinas, analise de acabamento de gordura, segmentacao de ima-gens, redes neurais

1 Introducao

A tipificacao de carcacas e um instrumento auxi-liar na comercializacao de gado e carne que deveter surgido no fim do seculo 19 ou inıcio do se-culo 20, e que ainda hoje e comumente utilizadaem paıses como Brasil, Estados Unidos, Canada,Argentina e Uruguai. O processo de tipificacao ecomposto de duas fases. Na primeira ocorre a clas-sificacao por sexo, maturidade e faixa de peso dogado, de modo que as carcacas sao agrupadas porcategoria. A segunda fase e a tipificacao propria-mente dita, que consiste em alocar as carcacas dasprincipais categorias, como novilho ou novilha, emtipos ordenados de melhor a pior, segundo outrosindicadores tradicionalmente utilizados nos julga-mentos de gado de corte em exposicoes, como aconformacao e a area de gordura (acabamento).Em tese, as carcacas dos melhores tipos dariamcarne de melhor qualidade (FELICIO, 2005).

Os esforcos em definir uma metodologia paraclassificacao e tipificacao de carcacas bovinas noBrasil, resultaram na publicacao, pelo Ministe-rio da Agricultura, Pecuaria e Abastecimento(MAPA), da Portaria Ministerial no 612/89 queestabelece o Sistema Nacional de Tipificacao de

Carcacas Bovinas e determina a tipificacao de car-cacas obedecendo aos parametros de sexo, matu-ridade, conformacao, acabamento e peso.

O acabamento expressa a distribuicao e aquantidade de gordura de cobertura da carcaca,sendo descrito por meio das seguintes categorias(Figura 1) - Magra (1); Gordura escassa (2); Gor-dura mediana (3); Gordura uniforme (4); Gorduraexcessiva (5). A espessura da camada de gorduranao e levada em conta na metodologia do MAPA.

Figura 1: Classificacao de acabamentos de gor-dura - Portaria no 612/89 do MAPA

1.1 Descricao do problema

A avaliacao da carcaca e seu enquadramento den-tro de uma determinada categoria, e realizada aquente depois da pesagem e antes de ser armaze-nada na camara de resfriamento. Essa avaliacaoe classificacao do acabamento e realizada atravesde observacao visual da distribuicao da gordurasobre a superfıcie da carcaca, por um tecnico ha-bilitado pelo MAPA. Embora guiado por proce-dimentos predeterminados, por se tratar de umprocesso subjetivo (FELICIO, 2005), nao se podegarantir ausencia de erros e nem mesmo padroni-zacao na classificacao, isto e, que diferentes tecni-cos (tipificadores) atribuam a mesma classificacaopara a mesma carcaca bovina.

A literatura especializada mundial apresentadiversos sistemas de classificacao de acabamentode gordura, mas nenhum deles se baseia na analiseda carcaca como um todo. Em geral, a classifica-cao e feita por um tecnico habilitado, por meio daanalise visual da gordura intramuscular (denomi-nada marmorizacao), utilizando uma amostra dacarcaca resfriada, geralmente retirada entre a 6a ea 7a ou entre a 12a e 13a costelas. Essa aborda-gem e utilizada na Australia (SAINZ, 2001), Es-tados Unidos (SAINZ, 2001) e Uruguai (BRITOet al., 2006).

Com o intuito de desenvolver metodos objeti-vos de tipificacao, capazes de funcionar com altavelocidade, acuracia e precisao e a um custo aces-sıvel, varias tecnologias tem sido estudadas. Estasse resumem nas que simulam a observacao visualdo tipificador, como e o caso desta pesquisa, e na-quelas que medem alguma caracterıstica nao ob-servavel visualmente. As primeiras incluem a ul-tra sonografia e a analise de imagens de vıdeo oufoto digital, enquanto que a segunda abordageminclui a medicao da condutividade eletrica total ea impedancia bioeletrica (SAINZ, 2001).

No Brasil, o Ministerio da Agricultura deter-mina que o acabamento de gordura da carcacaseja atribuıdo mediante a observacao da distribui-cao e da area de gordura de cobertura da carcaca.Nao foi encontrado na literatura internacional ne-nhuma referencia a artigo que utiliza redes neuraispara classificacao do acabamento de gordura bo-vina ou, na literatura nacional, referencia a artigoque automatiza a metodologia proposta na Porta-ria 612/89 do MAPA.

2 Metodologia proposta

A metodologia proposta, por questoes legais, eaderente a Portaria Ministerial do MAPA mas,ao automatizar o processo, reduz a subjetividadeinerente ao uso de um tipificador humano. Essametodologia engloba as etapas de aquisicao, seg-mentacao e classificacao. A aquisicao compreendea coleta de imagens digitais de carcacas bovinas,

in loco, por meio de dispositivo especıfico, duranteo processo de abate em uma industria frigorifica.A segunda etapa, compreende o uso de tecnicasde processamento de imagens digitais e tecnicasde reconhecimento de padroes capazes de segmen-tar a area correspondente a gordura em carcacasbovinas. A terceira, corresponde ao emprego detecnicas de reconhecimento de padroes capazes derealizar a classificacao da imagem resultante dasegunda etapa, de acordo com os cinco padroesdo acabamento de gordura do MAPA. Ambas asetapas de segmentacao e classificacao sao realiza-das por meio de redes neurais, com treinamentosupervisionado. As imagens resultantes da etapade segmentacao foram redimensionadas para se-rem submetidas para a camada de entrada da redeneural de classificacao, por meio da aplicacao deuma mascara de bits.

2.1 Aquisicao de imagens

Nessa etapa foram realizados estudos visando de-terminar a resolucao, tamanho e formato de re-presentacao das imagens. Foram estudados di-versos tipos de cameras, sensores de disparo dacamera e de iluminacao para obtencao das ima-gens, visto que o ambiente do frigorıfico e hos-til em termos de saturacao de vapor de agua etemperatura. Tambem foram realizados estudosvisando determinar a posicao da camera e do sen-sor de disparo de forma a minimizar a interferen-cia na linha de abate. O dispositivo de aquisicao(Figura 2) de imagens construıdo e composto poruma camera de vıdeo blindada (VDI 2001, CCDColor, 420 linhas, lente de 3,6mm, com auto ıriseletronica) fixada em posicao de 90o em relacao aochao, utilizando luminosidade proveniente da pro-pria camera e de lampadas fluorescentes presen-tes no ambiente. A carcaca e posicionada a umadistancia de 5 metros a frente da camera. A cap-tura da imagem ocorre com o acionamento de umsensor eletro-mecanico, localizado imediatamenteantes do local na linha de abate em que a carcacae dividida verticalmente ao meio. Esse sensor estafixado no suporte das roldanas que transportama carcaca na linha de abate. Dessa forma, todavez que uma roldana passa pelo sensor, a cameracaptura a imagem da carcaca. O sensor esta li-gado a uma porta PS/2 do computador no qual asimagens capturadas sao armazenadas em formatoJPEG, padrao de cores RGB, com a dimensao de352 x 132 pixels.

2.2 Segmentacao

Essa etapa consiste em identificar os pixels de gor-dura e os de nao gordura da carcaca. Inicialmenteforam investigadas as distribuicoes dos respectivospixels, usando os sistemas de cores RGB e HSV.Foram retiradas amostras das imagens das carca-cas bovinas, correspondentes as areas de gordura

Figura 2: Mecanismo de aquisicao in loco das ima-gens digitais

e areas de nao gordura (musculo, nervo, carne,fundo da imagem, etc). Para facilitar a analise vi-sual, as distribuicoes dos pixels de gordura e naogordura foram apresentadas na forma de graficos.O grafico apresentado na Figura 3 e composto pelacoordenada x representando o componente R, acoordenada y representando o componente G ea coordenada z representando o componente B,sendo os pixels de gordura plotados na cor verdee os de nao gordura na cor vermelha. Com os re-sultados obtidos, constatou-se que a distribuicaodos pixels de gordura e de nao gordura apresen-taram sobreposicao, nao permitindo separar pi-xels de gordura e de nao gordura apenas com basenas faixas de valores que possuem para o sistemaRGB. Resultados similares foram obtidos com osistema HSV. Diante disso, optou-se pelo uso deredes neurais para realizacao da tarefa de segmen-tacao.

Figura 3: Grafico de sobreposicao dos pixels

O processo de segmentacao baseia-se na hi-potese de que os pixels correspondentes a gor-dura possuem um padrao de cor caracterıstico di-ferente do padrao dos pixels de nao gordura. Osestudos foram realizados com imagens nas coresrepresentadas no sistema RGB, utilizando redesneurais com arquitetura MLP (multi-layer percep-tron), sendo a camada de entrada composta por

tres neuronios (um para cada dimensao do sis-tema RGB) e a camada de saıda composta porum neuronio (indicando gordura ou nao gordura).O treinamento utilizado foi Levenberg-Marquardt(HAGAN, 1994). Para melhorar o desempenho darede neural, os valores das dimensoes R,G e B dospixels foram normalizados no intervalo [0,1].

Foi preparado inicialmente um conjunto detreinamento. Esse conjunto, e composto de 3.528amostras sendo 1.764 amostras de gordura e 1.764amostras de nao gordura, formando uma matriz3x3.528, onde cada uma das 3 linhas correspon-dem respectivamente ao padrao de cor RGB e as3.528 colunas correspondem ao numero de amos-tras disponıveis no conjunto de treinamento. Paraesse conjunto de entrada foi criado um conjuntode saıda, sendo valor 1 para pixels corresponden-tes a gordura e 0 para pixels classificados comonao gordura. Como funcao de ativacao, foi utili-zada a funcao logarıtmica sigmoide em todas asredes avaliadas. A etapa de segmentacao e resu-mida conforme Figura 4.

Figura 4: (a) Imagem digital (b) Rede neural (c)Segmentacao

O numero de neuronios da camada interme-diaria foi determinado por experimentacao. A Ta-bela 1 apresenta quatro das alternativas avaliadas.

Tabela 1: Exemplo de redes neurais treinadasRede Entrada Intermediaria Saıda

Rede 1S 3 2 1Rede 2S 3 7 1Rede 3S 3 8 1Rede 4S 3 9 1

Devido ao baixo ındice de ocorrencia, ne-nhuma imagem do tipo 5 foi coletada, naosendo considerada nessa pesquisa por ocorrer comfrequencia muito baixa (provavelmente por moti-vos economicos). Exemplos do resultado do pro-cesso de segmentacao das imagens podem ser ob-servados na Figura 5.

Nesta pesquisa nao foi encontrada uma me-trica que possa ser utilizada para avaliar se a seg-mentacao esta correta ou nao. Nessa etapa, asimagens segmentadas foram avaliadas visualmente

Figura 5: (a)Imagem Original (b)Rede 1S (c)Rede2S (d)Rede 3S (e)Rede 4S

por medicos veterinarios especialistas, sendo que aRede2S obteve um desempenho mais satisfatorioperante as demais topologias propostas. Posteri-ormente, na etapa de classificacao do acabamento,foi feita uma avaliacao global dos resultados obti-dos em termos do acerto do tipo do acabamentode gordura das carcacas atribuıdo pelo tipificadordurante o abate.

2.3 Classificacao do acabamento de gordura

Inicialmente foi estudado se a densidade de pixelsde gordura era suficiente para classificar o aca-bamento e determinar a qual categoria a carcacapertence. Para isso, foram realizados experimen-tos com o objetivo de delimitar somente a area dacarcaca bovina, com a aplicacao dos algoritmosde deteccao de contornos Filtro de Sobel e Splitand Merge, combinados com operacoes morfolo-gicas (erosao, dilatacao, abertura e fechamento).Com a aplicacao da mascara do filtro, foi realizadoo teste com um limiar pre-estabelecido: o pixel soera considerado uma descontinuidade se o valorresultante da operacao de filtragem fosse maiorque o limiar. Quanto maior fosse o valor deste li-miar, menor a quantidade de descontinuidades en-contradas na imagem. Esse metodo nao produziubons resultados, como pode ser visto na Figura 6.Como a imagem possuı muitos ruıdos, houve a de-teccao de toda e qualquer transicao claro-escura,nao sendo possıvel detectar apenas as bordas dacarcaca.

Figura 6: Imagem original e a resultante da apli-cacao do Filtro de Sobel

Em virtude da dificuldade em determinar ape-

nas os contornos das carcacas, os experimentospassaram a considerar a densidade dos pixels degordura existentes na imagem como um todo. Oobjetivo e, a partir dos valores obtidos para a den-sidade dos pixels de gordura, encontrar uma faixade valores que seja unica para cada categoria exis-tente. No grafico apresentado na Figura 7 a coor-denada x representa o percentual de gordura e acoordenada y representa as 4 categorias do acaba-mento de gordura. Na legenda, Min correspondeao menor e Max ao maior percentual de gorduraexistente na respectiva categoria.

Figura 7: Densidade de gordura por acabamento

Analisando o grafico verifica-se que ha umagrande interseccao dos intervalos dos percentuaisde gordura contidos em cada categoria, indicandoque nao e possıvel efetuar a classificacao do aca-bamento de gordura apenas pela definicao de umlimiar para cada categoria. Com a dificuldade emrealizar a classificacao do acabamento pelos expe-rimentos acima realizados, optou-se por usar re-des neurais tambem na etapa de classificacao. Oprocesso de classificacao esta apresentado esque-maticamente na Figura 8.

Figura 8: (a)Imagem segmentada (b)Pre-processada (c)Rede neural (d)Saıda

Foram utilizadas redes neurais com arquite-tura MLP e treinamento de retropropagacao doerro (backpropagation) (RUMELHART, 1986).

Como as imagens digitais originais possuemtamanho de 352x132, foi realizada uma reducaode tamanho das imagens segmentadas para redu-zir a dimensao da camada de entrada da rede

neural. Tal reducao e aqui denominada comopre-processamento. Esse pre-processamento cor-responde a aplicacao de uma matriz de tamanhofixo (MxM pixels), denominado mascara, a ima-gem segmentada, resultando em uma matriz dedimensao reduzida por M, que vem a ser a re-presentacao da imagem segmentada em tamanhoreduzido (32x12).

O valor de cada elemento desta nova matrize calculado com base na quantidade de pixels degordura existente na mascara definida e aplicada aimagem segmentada (Figura 9). Se a maioria dospixels da mascara for de gordura, o elemento cor-respondente na nova matriz recebe valor um, casocontrario recebe valor zero. Cada elemento destanova matriz (Figura 9) servira de entrada para asredes neurais utilizadas para realizar a classifica-cao do acabamento de gordura.

Figura 9: Carcaca segmentada e submetida a mas-cara

Para o treinamento das redes neurais utiliza-das na etapa de classificacao do acabamento fo-ram realizados experimentos com mascaras comdiversos valores de M, sendo a de dimensao 11x11apresentou resultados melhores na classificacao.

Todos os pixels das imagens disponıveis foramnormalizados no intervalo [0,1], tanto as imagenssegmentadas e reduzidas atraves da aplicacao demascara. Para minimizar a possibilidade de over-fitting (sobreajuste do modelo aos dados disponı-veis), as imagens disponıveis foram divididas emdois conjuntos disjuntos: treinamento e avaliacao(Tabela 2). Esses conjuntos foram selecionadosatraves de amostragem estratificada, sem repeti-cao, visando aproximar a distribuicao do acaba-mento de gordura das carcacas por conjunto, ob-servada no abate, ao longo de um ano. As proba-bilidades foram estimadas atraves dos percentuaisobtidos in loco, durante a coleta das imagens emuma industria frigorifica da regiao sul do paıs. Aselecao dos 2 conjuntos se baseou nesses dados,contudo a disponibilidade de imagens do tipo 4nao foi suficiente para garantir o mesmo percen-tual dessas imagens em todos os conjuntos.

Os acabamentos de gordura das carcacas fo-ram atribuıdos por tipificador qualificado peloMAPA, funcionario do frigorıfico onde as ima-gens foram coletadas. Posteriormente, todas as

classificacoes foram submetidas a tres medicos-veterinarios especialistas para confirmacao.

O conjunto de treinamento e utilizado paraaprendizagem do modelo (rede neural). Assim saogerados diversos modelos com variacao de parame-tros da rede neural, tal como numero de neuroniosdas camadas de entrada e intermediaria, taxas deaprendizagem e momentum. O conjunto de ava-liacao e utilizado para avaliar o melhor modelo,inferindo a sua capacidade de generalizacao, aoaplica-lo a imagens nao contidas no conjunto detreinamento.

Tabela 2: Imagens por conjuntoTreinamento Avaliacao Total

Tipo 1 157 79 236Tipo 2 2.250 1.126 3.376Tipo 3 728 365 1.093Tipo 4 03 02 05Total 3.138 1.572 4.710

Com a aplicacao da mascara de 11x11, as ima-gens segmentadas de 352x132 bits foram compac-tadas em imagens de 32x12 bits, ou seja 384 bits.Para avaliar a influencia da informacao espacialno aprendizado da rede neural, foram estudadasdiversas topologias (Tabela 3), variando a quan-tidade de neuronios na camada de entrada, fun-cao do numero de linhas e de colunas da ima-gem segmentada reduzida. A Rede 1C possui 384neuronios na camada de entrada, um para cadaelemento da imagem reduzida, cada qual com va-lor 0 ou 1. A Rede 2C possui apenas 32 neuroniosde entrada, cada um alimentado com o somatoriodas linhas da imagem reduzida, variando de 0 a 12.A Rede 3C possui 12 neuronios de entrada, cadaum alimentado com o somatorio das colunas daimagem reduzida, variando de 0 a 32. A Rede 4Cpossui 44 neuronios de entrada, correspondentesao somatorio das linhas e ao somatorio das colu-nas da imagem reduzida. Todas as redes testadaspossuıam arquitetura MLP, dados normalizadosno intervalo [0,1], funcao de ativacao sigmoide etreinamento por retropropagacao de erro.

Tabela 3: Configuracao das redes treinadasRede Entrada Intermediaria Saıda

Rede 1C 384 24 04Rede 2C 32 12 04Rede 3C 12 14 04Rede 4C 44 24 04

2.4 Resultados e Discussao

Para avaliacao dos resultados obtidos pelas redestreinadas anteriormente, foram realizadas classi-ficacoes com o conjunto de avaliacao correspon-dendo a um total de 1.572 imagens. Por se tratar

de classificadores, a discriminacao entre os mode-los gerados foi baseada na matriz de confusao. Aanalise dos resultados obtidos em cada uma dasredes com a aplicacao do conjunto de avaliacao,permitiu identificar que a Rede 2C obteve um ın-dice de 86% de acuracia.

Nessa analise foram utilizados os ındices apre-sentados na Tabela 4, sendo VP - Verdadeiros Po-sitivos, FP - Falsos Positivos, VN - VerdadeirosNegativos e FN - Falsos Negativos. Todos elesassumem valores no intervalo [0,1] e podem sercalculados a partir da matriz de confusao.

Tabela 4: Indices para discriminacao entre classi-ficadores dicotomicos

Sensibilidade (S) Especificidade (E)

S = V P

V P+FNE = V N

V N+FP

Acuracia (Ac) F-measure (F1)

Ac = V P+V N

V P+FP+V N+FNF1 = 2∗S∗E

(S+E)

A Tabela 5 apresenta os valores obtidos para:sensibilidade - Se (percentual de verdadeiros po-sitivos classificados corretamente), especificidade- Es (percentual de verdadeiros negativos classifi-cados corretamente), acuracia - Ac (percentual deacerto da rede) e f-measure - F1 (media harmonicaentre a sensibilidade e a especificidade), obtidos apartir da analise da matriz de confusao e de acordocom a distribuicao das carcacas.

Tabela 5: Performance obtida com a Rede 2CTipo Tipo Tipo Tipo Media

1 2 3 4 esperada

Se 0.759 0.897 0.742 0.000 0.853Es 0.993 0.746 0.911 1.000 0.797Ac 0.981 0.855 0.872 0.998 0.865F1 0.860 0.815 0.818 0.000 0.817

Dist. 0.05 0.72 0.23 00 1

3 Conclusao

Esse artigo propoe classificar o acabamento de gor-dura de carcacas bovinas por meio da analise deimagens digitais com o uso de redes neurais. Essaclassificacao e hoje realizada na industria frigori-fica com base em observacao visual feita por umprofissional habilitado. O levantamento bibliogra-fico realizado indicou poucos artigos publicadosnessa area, sendo a pesquisa para classificacao au-tomatica de carne mais explorada nas industriasfrigorificas internacionais. Nao ha, no Brasil, ne-nhuma industria frigorifica dotada de sistema declassificacao automatica de carne. Esses fatos di-ficultam a comparacao da proposta apresentadacom outras abordagens existentes. Os resultadosobtidos, acuracia de 86%, foram baseados em um

total de 4.710 imagens coletadas e devem ser en-carados como estimativas. A coleta desta quan-tidade de imagens esta associada a atual reces-sao que o mercado de carne internacional estapassando, motivando uma reducao do numero deabate. Como trabalho futuro espera-se aprofun-dar os estudos sendo realizados com maquina decomite para melhorar a discriminacao entre os ti-pos 3 e 4. Os resultados obtidos ate o momentocom essa tecnica de comite foram bastante simi-lares aos obtidos com uma simples rede neural.

Agradecimentos

A CAPES, pelo apoio financeiro com a manuten-cao da bolsa de mestrado e a FAP-DF pelo finan-ciamento do projeto.

Referencias

BRITO, G. et al. (2006). Metodos para predecirel rendimiento carnicero de una canal vacuna,Revista INIA (8): 10–12.

FELICIO, P. d. (2005). Classificacao e tipifica-cao de carcacas bovinas, Palestra proferidano Congresso CBNA, Porto Alegre - RS -Brazil, GPPD, Goiania - GO - Brazil, p. 12.

HAGAN, M.T.; MENHAJ, M. B. (1994). Trai-ning feedforward networks with the mar-quardt algorithm, IEEE Transactions onNeural Networks 5(6): 989–993.

RUMELHART, D. E.; HINTON, G. E. W. R. J.(1986). Learning Internal Representations byError Propagation. In : Parallel DistributedProcessing : exploration in the microstruc-ture of cognition., Vol. 1, Cambridge : MITPress, Cambridge, MA, USA.

SAINZ, R. D.; ARAUJO, R. C. (2001). Tipifi-cacao de carcacas de bovinos e suınos, In:Anais do I Congresso Brasileiro de Ciencia eTecnologia de Carne, Sao Pedro, Sao Paulo,pp. 22–25.

OSGI-FEMTOJAVA: PLATAFORMA RECONFIGURÁVEL PARA GERENCIAMENTO DE SERVIÇOS SEGUNDO O

PADRÃO OSGI

GUILHERME PETRY BREIER, CARLOS EDUARDO PEREIRA

Programa de Pós Graduação em Engenharia Elétrica, Universidade Federal do Rio Grande do Sul Av. Osvaldo Aranha, 103, Bom Fim, 90035-190, Porto Alegre, RS - Brasil

E-mails: [email protected], [email protected]

Abstract This paper presents the development of a reconfigurable embedded system for a residential gateway, based on OSGi (Open Services Gateway Initiative) and implemented using the technology femtoJava. The proposed systems implements a service oriented architecture and provides support for service discovery and for communication between objects running on heterogeneous platforms. The paper also describes the experimental validation of the proposed architecture using as a case study a temperature con-trol system. The system was implemented on a reconfigurable platform using a Xilinx SPARTAN FPGA. Keywords Home gateways, OSGi framework, home automation

Resumo Este trabalho apresenta o desenvolvimento de um sistema embarcado numa plataforma reconfigurável, baseado em OSGi (Open Services Gateway Initiative), para gateway residenciais utilizando-se da tecnologia FemtoJava, com o objetivo de automatizar a descoberta de serviços. Sistemas de automação residencial/predial normalmente incluem produtos de diferentes fabricantes e possuem protocolos de comunicação diferentes é necessário o uso de um agente que gerencie essa comunicação. Para isso ocorrer com sucesso a OSGi Aliança oferece um conjunto de especificações numa plataforma aberta, em Java, para a entrega de vários tipos de serviços aos usuários finais. Com base em nas classes e métodos básicos do framework OSGi, focados em ambientes inteligentes é proposto um novo sistema de controle e descoberta de serviços através desta arquitetura orientada a serviços. O trabalho também apresenta a validação da arquitetura proposta em um estudo de caso utilizando-se de dois módulos para interagir com o meio simulando um sis-tema de controle de temperatura. O sistema foi implementado em uma plataforma reconfigurável SPARTAN da Xilinx. Palavras-chave Gateway Residencial, OSGi framework, Ambientes Inteligentes

1 Introdução

A computação pervasiva tem sido tema de diversos trabalhos nos últimos anos. Essa emergente área de pesquisa propõe uma visão de futuro onde serviços computacionais são oferecidos para os usuários atra-vés de inúmeros dispositivos espalhados pelo ambi-ente. Os serviços são disponibilizados, tanto através da infra-estrutura existente dos computadores ligados fisicamente à rede quanto através de dispositivos móveis. Esse espalhamento da computação deve acontecer de maneira natural e imperceptível ao usu-ário. Acredita-se que essa realidade será atingida através da aliança entre áreas de pesquisa como a computação móvel e a computação ciente do contex-to. A computação ciente do contexto busca enrique-cer a comunicação entre os seres humanos e os dis-positivos computacionais, tornando sua atuação mais eficaz. As aplicações cientes do contexto conseguem perceber as modificações que ocorrem no ambiente e adaptar seu comportamento ao novo estado. Esse processo pode ser dividido em três etapas: monitora-mento, reconhecimento de contexto e adaptação. Na etapa de monitoramento são coletadas, através de sensores, informações sobre o ambiente. Essas in-formações, entretanto, são geralmente, de baixo nível de abstração e, portanto, dificilmente usadas direta-mente por aplicações. A etapa de reconhecimento de contexto relaciona os dados obtidos do ambiente e transforma-os para que possam ser úteis às aplicações no processo de escolha do comportamento mais ade-quado a cada circunstância, habilitando a etapa de

adaptação a efetivar a transformação do comporta-mento da aplicação de acordo com a nova situação do ambiente. As arquiteturas orientadas a serviços (SOA - Service-Oriented Architectures) propõem-se a solucionar e preencher essa lacuna através de um novo paradigma de desenvolvimento de sistemas em computação pervasiva, mais completo, e propiciando interoperabilidade entre diversas tecnologias. Neste contexto surge como proposta para a automação de serviços em aplicações de automação residencial o OSGi, baseado em Java, como uma proposta interes-sante para o desenvolvimento. O OSGi oferece servi-ços para descoberta de dispositivos e serviços em execução com uma ampla capacidade de gerencia-mento dos mesmos. Entretanto o uso completo de toda a plataforma OSGi exige um alto custo compu-tacional para o desenvolvimento de aplicações. Por outro lado, sistemas computacionais usando arquite-turas reconfiguráveis proporcionam uma melhor otimização em função da aplicação, reduzindo o custo computacional e melhorando o desempenho do sistema. A flexibilidade dessas arquiteturas facilita a otimização da lógica sintetizada, permitindo a síntese de microcontroladores dedicados e otimizados para uma determinada aplicação. Assim, apenas os recur-sos necessários para a aplicação são sintetizados, resultando em um processador menor, ocupando menos área na FPGA, com melhor desempenho e com menor potência dissipada. A metodologia do projeto SASHIMI difere da prática convencional de desenvolvimento de sistemas embarcados. A aborda-gem utilizada pelo SASHIMI permite a utilização da linguagem de alto nível JAVA não somente para

programação, mas para a especificação completa do sistema embarcado. Esta ferramenta permite fazer a síntese de uma máquina virtual Java (JVM) na forma de um processador que executa bytecodes Java nati-vamente chamado FemtoJava. Através do FemtoJava pode-se ser executadas aplicações para sistemas embarcados usando como base a linguagem de pro-gramação Java e com isso pretende-se desenvolver uma aplicação usando componentes OSGi em uma plataforma reconfigurável.

2 Arquitetura Orientada a Serviços

A arquitetura orientada a serviços (SOA – Service-Oriented Architecture) é uma arquitetura de sistema que integra diferentes sistemas distribuídos em cima de uma rede com um procedimento padronizado. Cada sistema exporta suas próprias características para a rede como uma unidade de serviço. A lógica interna e implementação do serviço são auto-contidas e encapsuladas no sistema. O sistema expõe somente interfaces de serviços em forma de métodos exporta-dos. A arquitetura transforma aplicações em compo-nentes de software reusáveis, gerando interoperabili-dade entre diversas tecnologias. SOA é definido como um paradigma para organizar e utilizar capaci-dades distribuídas que podem ser controladas por diferentes domínios (NAKAMURA; et al., 2004). Para o sucesso das aplicações em SOA, é essencial que haja a capacidade de identificar os serviços e suas características. O relacionamento entre os com-ponentes que estão inseridos em uma aplicação preci-sa estar descrito em um contrato, que pode ser uma interface Java ou um arquivo XML (eXtensible Mar-kup Language). Dessa forma, cria-se uma rotina que facilita e explicita a dependência, a manutenção e a adaptação. A flexibilidade permite aos componentes de estarem ligados de forma que possibilite uma combinação semântica, a utilização de bibliotecas comuns e a divisão até de estados de execução. A principal vantagem de SOA é a flexibilidade e adap-tação. Várias tecnologias são desenvolvidas incorpo-rando os conceitos de SOA, como web services, OSGi, entre outras (GONG, 2000).

2.1 OSGi – OPEN SERVICE GATEWAY initiative

O OSGi é uma arquitetura orientada a serviços para gateways residenciais, e no framework é proposto um componente de execução (bundle) que exporta os serviços oferecidos e pode, também, obter outros serviços por meio do OSGi Service Registry (OSGI, 2008). Um bundle nada mais é do que um arquivo Java (JAR) que representa os componentes mínimos que podem ser instalados, desinstalados e atualiza-dos. Na terminologia do OSGi um bundle representa um serviço. A camada de serviços sobre a qual o serviço executa o OSGi é específica. As especifica-ções de entrega são abertas, em uma arquitetura co-

mum que permite a implantação e gestão de serviços de forma coordenada. Esta arquitetura comum pode então mapear componentes fisicamente e logicamen-te. Um típico ambiente no qual o OSGi é destinado a ser implantado é mostrado na Figura 1.

Figura 1: Relacionamento dos serviços com o resto da rede

(MARPLES, 2001).

O ambiente OSGi consiste de um framework que fornece o núcleo de especificação da plataforma de serviços OSGi. Ele fornece, para fins gerais, um modo seguro, gerenciado pelo framework Java que suporta a implantação do serviço de aplicações ex-tensíveis e que permitem fazer downloads. O frame-work roda em cima de uma Java Runtime Environ-ment, como mostrado na Figura 2. Bundles podem acessar recursos no framework, na VM, e no sistema operacional, conforme necessário. Mecanismos são fornecidos para assegurar que os bundles utilizem o código adequado quando acessam capacidades nati-vas. Um bundle pode incluir variantes do código nativo para lhe permitir ser usado em diferentes pla-taformas nativas.

Figura 2: Relação dos componentes no OSGi (MARPLES, 2001).

Dispositivos OSGi compatíveis podem baixar e insta-lar bundles e removê-los quando eles já não são ne-cessários. Instalado, o bundle pode registrar um nú-mero de serviços que podem ser compartilhados com outros bundles sob rigoroso controle do framework. Um bundle também pode exportar ou importar paco-tes Java sob esse mesmo controle restrito. O frame-work gerencia a instalação e atualização dos bundles em um modo dinâmico e escalonado, e gerencia as dependências entre bundles e serviços. O framework fornece uma descrição concisa e um modelo consis-tente de programação para os desenvolvedores de bundles, simplificando o desenvolvimento e implan-tação de serviços, dissociando o serviço da especifi-cação de sua implementação. Este modelo permite aos desenvolvedores vincular ao bundle serviços exclusivamente de sua interface de especificação. A

seleção de uma aplicação específica, otimizado para uma determinada necessidade ou de um determinado fornecedor, pode ser, assim, executada. Um modelo de programação consistente ajuda os desenvolvedo-res de bundles a lidar com questões de escalabilidade críticas, porque o framework se destina a ser execu-tado em uma variedade de dispositivos com diferen-tes características de hardware, o que pode afetar, muitos aspectos de um serviço de implementação. Interfaces consistentes garantem que os componentes do software podem ser misturados e combinados, e ainda resultar em sistemas estáveis. O framework permite aos bundles disponíveis selecionar uma apli-cação em tempo de execução através do framework de registro serviço. Bundles registram novos servi-ços, recebem notificações sobre o estado dos servi-ços, ou procuram os serviços existentes para se adap-tar às atuais capacidades do dispositivo. Este aspecto do framework instalado num bundle torna extensível após a implantação, pois novos bundles podem ser instalados para adicionar recursos, ou bundles já existentes podem ser modificados e atualizados sem exigir que o sistema seja reiniciado. No ambiente OSGi, bundles encapsulam aplicações. Um bundle inclui classes Java e outros recursos que em conjunto podem fornecer funções para os usuários finais e, opcionalmente, fornecer elementos para outros bun-dles. Estas capacidades são chamados serviços expor-tados. Um bundle é implementado como um Java Archive file (JAR). Contém os recursos para imple-mentar nenhum ou mais serviços. Estes recursos podem ser da classe de arquivos da linguagem de programação Java, bem como outros dados, como arquivos HTML, arquivos de ajuda, ícones, e assim por diante. Os bundles contém um arquivo manifesto descrevendo o conteúdo do JAR e fornece informa-ções sobre o próprio bundle. Este arquivo utiliza cabeçalhos para especificar parâmetros para que o framework funcione corretamente na instalação e ativação de um bundle. Designa uma classe especial no bundle para agir como bundle ativador. O frame-work deve instanciar essa classe e invocar métodos para iniciar e parar o bundle respectivamente. A implementação do bundle e do bundle ativador permite que o bundle inicialize. Pode conter opcio-nalmente documentação dentro do JAR. Isto pode, por exemplo, ser usado para armazenar o código fonte de um pacote. Quando um bundle é iniciado, a sua funcionalidade é fornecida e os serviços estão expostos a outros bundles instalados no ambiente OSGi. Eles podem então usar o framework para aces-sar a esta funcionalidade, como mostrado na Figura 3.

2.2 Sashimi/FemtoJava

O SASHIMI (Systems As Software and Hardware In MIcrocontrollers) é uma ferramenta que se destina à síntese de sistemas microcontrolados descritos em linguagem Java.

Figura 3: Registro de Serviços (MARPLES, 2001).

O alvo dos sistemas sintetizados pelo SASHIMI é o microcontrolador FemtoJava (ITO; CARRO; JACOBI, 2001), gerado de forma particular para cada aplicação desenvolvida. A abordagem SASHIMI permite a utilização de uma linguagem de alto nível (Java) não somente para programação, mas para a especificação completa do sistema contendo o microcontrolador. As ferramentas do ambiente SASHIMI suportam a extração automática do sub-conjunto de instruções Java, necessário para imple-mentar o software da aplicação. Para cada sistema pode ser gerado um microcontrolador específico (com o conjunto de instruções adaptado) e automati-camente adaptar o seu software. Portanto, o resultado é o melhor aproveitamento dos recursos de hardware e a obtenção de um software otimizado para cada aplicação. A Figura 4 ilustra o fluxo de projeto defi-nido para o SASHIMI, partindo do código fonte da aplicação descrito em linguagem de programação Java até a síntese do processador FemtoJava e soft-ware dedicado descrito em VHDL.O microcontrola-dor FemtoJava é composto por uma unidade de pro-cessamento baseada em arquitetura de pilha, memó-rias RAM e ROM integradas, portas de entrada e saída mapeadas em memória e um mecanismo de tratamento de interrupções com dois níveis de priori-dade. Na memória ROM o programa Java descrito é carregado. A arquitetura da unidade de processamen-to implementa um subconjunto de instruções da Má-quina Virtual Java, e seu funcionamento é consistente com a especificação da Máquina Virtual Java. A utilização de registradores para armazenar elementos da pilha possibilita ainda, ganho de desempenho, redução na área ocupada em FPGA, pois o processa-mento é realizado simultaneamente aos acessos à memória. Em (WEHRMEISTER; PEREIRA; BECKER, 2006) foi desenvolvida uma API para incorporar ao ambi-ente SASHIMI o padrão RTSJ (Real Time Specifica-tion for Java), dando suporte a tarefas concorrentes e permitindo a especificação de restrições temporais. O Femtojava suporta até oito tarefas estáticas (não há criação de tarefas em tempo de execução), periódicas e independentes. Assim, possibilita-se o desenvolvi-mento de sistemas de tempo real embarcados otimi-zados.

Figura 4: Fluxo de projeto do SASHIMI. (WEHRMEISTER;

PEREIRA; BECKER, 2006).

3 FEMTO-OSGi

O processo geral de desenvolvimento de um bundle de serviço no OSGi de uma forma simplificada é desenvolvido em algumas etapas: 1 – Escrita da interface de serviço; 2 – Implementação do serviço proposto; 3 – Escrita do bundle ativador; 4 – Declaração dos pacotes a serem exportados; 5 – Compilação das classes dentro do arquivo JAR com o arquivo manifesto junto.

3.1 Adaptação ao Femtojava

O gerenciamento das escritas e leituras do sistema de entrada e saída do microcontrolador Java são de responsabilidade do arbritador do barramento. Ele considera o endereço contido no barramento para determinar a porta sobre qual o microcontrolador deve operar. A escrita dos dados em um periférico ou em uma porta devem ser primeiro armazenados na pilha juntamente com o endereço correspondente. A mesma estrutura é utilizada para a leitura, onde o dado obtido na porta é armazenado na pilha de ope-randos. A memória do FemtoJava está dividida em duas partes, a memória de dados e a memória de programa. Na memória de dados, os endereços inici-ais, da posição 00H até a posição 10H, contêm al-guns registradores mapeados em memória, que tem a finalidade de possibilitar a programação das interrup-ções e dos temporizadores assim como permitir as operações de I/O. A especificação da máquina virtual Java não define mecanismos para manipular interrupções, pois visava à portabilidade entre diferentes plataformas de hard-ware. Entretanto o sistema de tratamento de interrup-ção é um componente importante a ser incluído em um microcontrolador, para facilitar a comunicação entre o processador e os seus periféricos, liberando o processador de ficar esperando a requisição do peri-férico. Assim o microcontrolador FemtoJava imple-mentou cinco interrupções distintas com dois níveis

de prioridade para facilitar a requisição de periféricos ao processador. O microcontrolador FemtoJava possui quatro barra-mentos em sua arquitetura para comunicação com os periféricos, sendo barramentos distintos para o acesso e endereçamento das memórias de programa e dados. Esses barramentos são parametrizáveis, sendo que para a implementação do FemtoOSGi foram utiliza-dos os barramentos de endereços e dados. O Femto-OSGi utiliza esses barramentos para comunicar-se entre o microcontrolador e os dispositivos implemen-tados. Na figura 5 está representado as ligações entre o barramento do FemtoJava e seus componentes nessa proposta.

Figura 5: Arquitetura de Hardware do FemtoOSGi.

Como o FemtoOSGi realiza a comunicação com o microcontrolador através dos barramentos de endere-ços e dados, foi introduzido dois novos endereços como buffers para a realização das escritas e leituras realizadas pelos módulos que realizam a comunica-ção com o meio. Assim esses dois novos endereços receberam suas posições na pilha de memória de dados ocupando os endereços da posição 13H e 14H conforme representado na figura 6.

Figura 6: Organização da memória de dados do FemtoOSGi.

Os dispositivos implementados utilizam as interrup-ções do microcontrolador RTFemtoJava para realiza-rem a requisição de comunicações com o processa-dor.

3.2 Implementação

Para a implementação do sistema foi utilizado o framework do OSGi e desenvolvido bundles para a descoberta dos dispositivos presentes e bundles de driver para a comunicação além dos bundles para a

criação de um sistema de controle de temperatura como proposta para validação da arquitetura. Toda essa abordagem de criação de bundles iniciou-se pela análise inicial de todas as classes e métodos que compõem o Framework OSGi. Observadas quais classes e métodos eram suportados pelo SASHIM foram desenvolvidos os bundles para essa aplicação. Para comunicação com os dispositivos foi constituído de um serial service bundle e um driver bundle, con-forme a figura 7.

Figura 7: Serial Server Bundle

3.3 O Protótipo

A arquitetura do gateway é fundamental para o de-senvolvimento de uma aplicação eficiente e para que os serviços sejam concluídos com sucesso. Deseja-se ter um gateway de processamento dedicado e custo-mizado para as aplicações desenvolvidas. O gateway é constituído por um dispositivo contendo um micro-controlador FemtoJava, sintetizado a partir da ferra-menta SASHIMI, e a ele estão adicionados dois mó-dulos um para leitura dos dados (SENSOR) e outro para atuar no meio (ATUADOR). Sendo o FemtoJa-va customizável, o seu código é adaptado às necessi-dades da aplicação, sendo que somente o hardware necessário é sintetizado. A comunicação entre o gateway e os módulos, neste protótipo, é realizada através da porta serial com protocolo RS232. O protótipo do gateway foi mapeado para uma FPGA da família Xilinx com o auxilio da ferramenta de síntese ISE da própria Xilinx. A versão utilizada foi da Spartan 3-AN. A família Spartan-3AN possui um custo menor e apresenta um número reduzido de elementos lógicos em relação à família Virtex. Dois módulos foram propostos e desenvolvidos para inte-ragir com o meio utilizando de um microcontrolador UART conforme Estes módulos têm a função de enviar para o meio e receber os dados do ambiente. Isso permite ao gateway operar com esses módulos como objetos. Conforme os blocos na figura 8. Para acessar dispositivos físicos, aplicações escritas na linguagem de programação Java necessitam passar por algumas camadas. As aplicações podem se co-municar com o sistema operacional, com o qual pode se comunicar com o hardware através de drivers de dispositivos. Um exemplo típico deste tipo de biblio-teca é o padrão Java Communications API definido no pacote javax.comm que permite que os programas acessem as portas serial e paralela.

Figura 8: Blocos do protótipo

4 Estudo de Caso

Como estudo de caso para essa proposta foi desen-volvida uma aplicação para o controle de temperatura de uma residência.

Figura 9: Estudo de caso para validação.

O conjunto de classes dessa aplicação elaborada por um compilador Java padrão foi submetido a uma ferramenta de pós-compilação, chamada SASHIMI. Esta ferramenta leu todas as classes desenvolvidas para esta aplicação gerando o código final. Este có-digo pode ser usado tanto para simulação quanto para síntese lógica. Este código final é um conjunto de arquivos que inclui a descrição VHDL do processa-dor (cujo conjunto de instruções contém somente aquelas usadas pela aplicação) a as memórias ROM (métodos) e RAM (atributos). O SASHIMI ainda remove do código final os métodos e atributos não alcançados, ou seja, aqueles que não são utilizados pela aplicação em nenhum momento da execução. Assim, o SASHIMI é também uma ferramenta de otimização de JVM. No desenvolvimento de aplicações sobre a platafor-ma SASHIMI-FemtoJava os objetos da aplicação estão alocados estaticamente em tempo de projeto. Em outras palavras, todos os objetos no sistema são construídos a priori (pelo SASHIMI), permitindo que seja determinada a quantidade total de memória RAM para comportar a aplicação. Finalizando o processo de síntese da aplicação o código orientado a objetos da aplicação é gerado no arquivo ROM.MIF. Então os arquivos VHDL gera-dos pelo SASHIMI servem como entrada para um ferramenta de síntese de FPGAs a qual sintetiza o processador FemtoJava customizado para a aplicação específica. A tabela 1 foi construída para oferecer uma referen-cia de uso de memória quando as aplicações são

construídas sobre a plataforma SASHIMI-FemtoJava. Foram coletados os dados de memória de código (ROM) e de atributos (RAM).

Tabela 1: Resultado da implementação do estudo de caso

A arquitetura resultante do FemtoOSGi pode ser então visualizada na figura 10, onde pode-se verificar que aplicações para o framework OSGi podem ser desenvolvidas e que ambas podem serem executadas sobre o FemtoJava de forma customizadas.

Figura 10: Arquitetura do FEMTO-OSGi

Conclusão

A aplicação desenvolvida e sintetizada para o Femto-Java se mostra inovadora, pois todas as aplicações disponíveis no mercado são desenvolvidas e executa-das em cima de computadores pessoais o que torna muito mais fácil a implementação de serviços usando outros dispositivos e protocolos como por exemplo Ethernet, Bluetooth entre outros. Mas a possibilidade de uso de um protocolo serial wifi é um próximo passo para o desenvolvimento desse trabalho. O OSGi esta voltado para aplicações atualmente muito mais multimídias e de comunicações por isso a im-plementação de um gateway para atender essas ne-cessidades usando o FemtoJava não se mostra a mais apropriada. Para outras que estão sendo desenvolvi-das dentro do grupo de pesquisa do GCAR como as descobertas de dispositivos e nós em redes sem fio, todo o trabalho desenvolvido se mostra bastante útil para o grupo. A descrição da aplicação, para posterior síntese do microcontrolador em uma arquitetura reconfigurável, foi realizada utilizando uma linguagem de programa-ção orientada a objeto, no caso Java. Deste modo, pode-se entender a contribuição deste trabalho por dois pontos de vista: 1) É adicionado ao RT-FemtoJava a capacidade de descoberta de serviços e carga dinâmica de aplica-ções, conceitos suportados por OSGi. 2) É gerado um sistema embarcado que implementa funcionalidades de OSGi, mas que tem seu hardware otimizado em função da aplicação proposta.

Basicamente, o que se buscou foi aproveitar a capa-cidade de configuração do FemtoJava no sentido de gerar uma arquitetura customizada para o OSGi oti-mizada para o gerenciamento de serviços

Referências Bibliográficas

GÖTZ, M. Run-time Reconfigurable RTOS for Reconfigurable Systems-on-Chip. 2007. 135p. Tese (Doutorado em engenharia) — Programa de Pós-Graduação em Engenharia Elétrica, Universidade Federal do Rio Grande do Sul, Porto Alegre.

GARCIA, P.; COMPTON, K.; SCHULTE, M.; BLEM, E.; FU, W. An overview of reconfigurable hardware in embedded systems. EURASIP J. Embedded Syst., New York, NY, United States, v.2006, n.1, p.13–13, 2006.

GONG, L. A software architecture for Open Service Gateways. In Embedded Systems IEEE. Vol.2, Issue 1, January-February, 2001.

HALL, R.; CERVANTES, H. An OSGi implementation and experience report. Consumer Communications and Networking Conference, 2004. CCNC 2004. First IEEE, [S.l.], p.394–399, Jan. 2004.

ITO, S. A.; CARRO, L.; JACOBI, R. P. Making Java Work for Microcontroller Applications. IEEE Des. Test, Los Alamitos, CA, USA, v.18, n.5, p.100–110, 2001.

MARPLES, D.; KRIENS, P. The Open Services Gateway Initiative: an introductory overview. Communications Magazine, IEEE, [S.l.], v.39, n.12, p.110–114, Dec 2001.

NAKAMURA, M.; IGAKI, H.; TAMADA, H.; MATSUMOTO, K. ichi. Implementing integrated services of networked home appliances using service oriented architecture. In: ICSOC ’04: PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON SERVICE

ORIENTED COMPUTING, 2004, New York, NY, USA. Anais. . . ACM, 2004. p.269–278.

OSGI. http://www.osgi.org. <http://www.osgi.org> [Online; accessed 10-Mar-2008].

WEHRMEISTER, M. A.; PEREIRA, C. E.; BECKER, L. B. Optimizing the generation of object-oriented real-time embedded applications based on the real-time specification for Java. PROCEEDINGS OF THE CONFERENCE ON DESIGN,

AUTOMATIONAND TEST IN EUROPE, 2006, 3001 Leuven, Belgium, Belgium. Anais. . . European Design and Automation Association, 2006. p.806–811.

AJUSTE DE CONTROLADORES PI E PID PARA PLANTAS ESTAVEIS EINSTAVEIS

Joao C. Basilio, Victor N. Nogueira

Universidade Federal do Rio de JaneiroCOPPE - Programa de Engenharia Eletrica

Cidade Universitaria - Ilha do Fundao21.945-970 - Rio de Janeiro - R. J.

E-mails: [email protected], [email protected]

Resumo— Uma maneira sistematica de se obter a regiao de estabilidade para os controladores P, PI e PID parauma dada planta modelada por uma funcao de transferencia racional, isto e, um conjunto de pontos kp, (kp, ki)e (kp, ki, kd) que tornam o sistema realimentado estavel foi recentemente apresentada. Contudo, nos trabalhosque se seguiram nao foi feito uso dessa regiao para se projetar controladores PI e PID que atendam outrosobjetivos de projeto, tais como melhoria dos regimes transitorios da resposta a sinais de referencias e da rejeicaode perturbacao de sinais do tipo degrau. Neste artigo sera proposto um metodo de ajuste dos controladores PID,supondo conhecida a funcao de transferencia da planta. Sera utilizado um criterio de otimizacao quadratico emque fazem parte desta funcao a norma quadratica do sinal do erro e da componente do sinal de perturbacaono sinal de saıda. Para minimizar este custo, que e funcao dos parametros do controlador PID, sera utilizadoalgoritmo Genetico, onde o espaco da busca sera a regiao na qual o sistema em malha fechada e estavel. Umavez que a varredura sera feita sobre a regiao de estabilidade, os controladores PI e PID obtidos garantem aestabilidade do sistema realimentado para plantas estaveis ou instaveis.

Abstract— A systematic way to obtain the stability region for PI and PID controllers for a plant modeled bya rational transfer function, i.e., the set of points kp, (kp, ki) and (kp, ki, kd) that make the closed-loop systemstable has been recently presented. However, in the works that followed this result, use has not been made ofthis parametrization to design PI and PID controllers that address other design objectives, such as, transientperformance with respect to reference step signal and disturbance rejection to step signal, as well. In this paper,a new method for tuning PI and PID controllers is proposed, assuming that the plant transfer function is known.A quadratic optimization criterion formed by the l2-norms of the error signal and of the output component ofthe disturbance signal will be used. In order to search for the controller parameter which minimizes this costfunction, genetic algorithm is used, where the feasibility region is given by the PI and PID stability region. Sincethe search is carried out over the stability region, the PI and PID controllers obtained ensure closed-loop stabilityfor both stable and unstable plants.

Key Words— PID controller design, optimal control, genetic algorithm.

1 Introducao

Os controladores PID tem sido muito utilizadosem sistemas de controles industriais ha decadas,mais precisamente, desde que, Ziegler e Nicholspropuseram o primeiro metodo de ajuste de con-troladores PID (Ziegler e Nichols, 1942), tendo acapacidade de estabilizar e controlar cerca de 90%dos processos industriais existentes Oviedo et al.(2006). Com o objetivo de comparar as diversastecnicas de projeto, Cominos e Munro (2002) de-senvolveram um trabalho, resumindo alguns dosmetodos recentes de projetos de controladoresPID, tais como: o metodo de Ziegler-Nichols, dere-alocacao de polos, projetos baseados em especi-ficacoes em ganhos de fase e de margem, tecnicasde polinomios de intervalos, projetos baseados noteorema da estabilidade de Nyquist, AlgoritmoGeneticos para ajustes de PID, ajustes de PID uti-lizando a teoria da interacao adaptativa, metodosbaseados em cancelamento, metodos de integracaode magnitude multipla otima, entre outras, vi-sando apresentar vantagens e desvantagens destesmetodos.

Mais recentemente, outros metodos de ajuste

de parametros de controladores PID foram desen-volvidos visando melhorar o desempenho de sis-temas realimentados com este controlador. Geet al. (2001) propuseram um metodo de pro-jeto de controladores PID robustos em que uti-lizam tecnicas padroes como reguladores linearesquadraticos (LQR) e H∞ e solucionam o problemaproposto utilizando LMI. Em Ho et al. (2001)e apresentada uma generalizacao do teorema deHermite-Biehler, com o objetivo de se ter uma ca-racterizacao para todos os controladores PID queestabilizem uma dada planta. Astrom e Hagglund(2004) revisaram o metodo de resposta ao degraude Ziegler-Nichols, utilizando uma forma de malharobusta. Em Toscano (2004), tem-se um trabalhode projeto de controlador PID robusto, utilizandoa curva de Nyquist da funcao de transferencia demalha aberta. Oviedo et al. (2006) utiliza umaidentificacao do sistema e, posteriormente umaotimizacao de um criterio do erro, como a integraldo erro absoluto (IAE), a energia do erro e a inte-gral da multiplicacao do erro pelo tempo (ITAE).Um primeiro trabalho que considera o ajuste decontroladores PID para plantas instaveis foi apre-sentado por (Shafiei e Shenton, 1994), sem con-

tudo caracterizar as condicoes necessarias para aestabilizacao das plantas instaveis pelos controla-dores PID.

O problema da estabilizacao de plantasestaveis e instaveis utilizando controladores P, PIe PID foi considerado em Datta et al. (2000) eSilva et al. (2004); esse ultimo para sistemas comatraso. Nesses trabalhos, diferentemente da abor-dagem apresentada por (Shafiei e Shenton, 1994),foi apresentada uma caracterizacao dos controla-dores PI e PID estabilizantes, isto e, conjuntosde pontos kp, (kp, ki) e (kp, ki, kd) cujos contro-ladores PI e PID tornam o sistema realimentadoestavel. Contudo, uso nao foi feito dessa regiaopara considerar outros objetivos de projeto, taiscomo resposta transitoria e rejeicao de sinais ex-ternos de perturbacao.

Nesse artigo sera proposto um metodo deajuste dos controladores PID, supondo conhecidaa funcao de transferencia da planta. Sera utili-zado um criterio de otimizacao quadratico em quefazem parte desta funcao a norma quadratica dosinal do erro e da componente do sinal de per-turbacao no sinal de saıda. Para minimizar estecusto, que e funcao dos parametros do contro-lador PID, sera utilizado o Algoritmo Genetico,onde o espaco da busca sera a regiao na qual osistema de malha fechada e estavel, ou seja, ospontos (kp, ki, kd) que tornam o sistema compen-sado estavel. Uma vez que a varredura e feitasobre a regiao de estabilidade, os controladores PIe PID obtidos garantem a estabilidade do sistemarealimentado para plantas estaveis ou instaveis.

Esse artigo esta estruturado da seguinteforma. A Secao 2 apresenta uma breve revisao doproblema da estabilizacao de sistemas realimenta-dos utilizando controladores P, PI e PID resolvidoem Datta et al. (2000). Na Secao 3 e proposto umfuncional de custo quadratico para o ajuste dosparametros de controladores PI e PID que leveem conta os objetivos de rastreamento do sinalde referencia, a rejeicao de sinais externos de per-turbacao e a saturacao do sinal de controle. Autilizacao de algoritmos geneticos na solucao doproblema de otimizacao proposto e consideradana Secao 4. Na Secao 5 e apresentado um exem-plo ilustrativo e sao feitas algumas consideracoessobre a existencia de solucoes. Finalmente, as con-clusoes sao apresentadas na Secao 6.

2 Estabilizacao de sistemas realimentadosutilizando controladores P, PI e PID

Considere o diagrama de blocos da figura 1 em queG(s) e K(s) denotam, respectivamente, a plantaa ser controlada e o controlador a ser projetado,u(t) e o sinal de controle, e(t) e o sinal do erro,que e a diferenca entre o sinal de referencia r(t) eo sinal de saıda medido y(t), d(t) representa umsinal externo de perturbacao, N(s) e o ruido de

����-���� - - ---

6

?����

����

���� ���� ��� ���

��

� �?

���

Figura 1. Diagrama de blocos de um sistema realimentadocom controlador.

medicao e x(t) e o sinal de saıda. O controladora ser considerado neste trabalho e o do tipo PIDcuja forma geral e:

u(t) = kpe(t) + ki

∫ t

0

e(λ)dλ + kdd

dte(t) (1)

sendo kp, ki e kd, respectivamente, os ganhos pro-porcional, integral derivativo. Suponha que G(s)seja descrita por uma funcao de transferencia ra-cional, isto e,

G(s) =B(s)A(s)

(2)

sendo B(s) e A(s) coprimos e gr[B(s)] = m egr[A(s)] = n (m ≤ n), com gr(.) denotando ograu de um polinomio e considere as seguintes fa-toracoes de B(s) e A(s):

B(s) = Be(s2) + sBo(s

2) e A(s) = Ae(s2) + sAo(s

2).(3)

2.1 Caracterizacao de todos os controladoresproporcionais estabilizantes

Seja, inicialmente, K(s) = kp. E facil verificarque o polinomio caracterıstico de malha fechadaδ(s, k) e dado por:

δ(s, k) = A(s) + kB(s). (4)

Usando as Eqs. (3) e (4) e substituindo-se s = jω,pode-se escrever:

δ(jω, k)B∗(jω) = p(ω, k) + jq(ω) (5)

sendo B∗(s) = B(−s) e

p(ω, k) = p1(ω) + kp2(ω),

p1(ω) = [Ae(−ω2)Be(−ω2)

+ω2Ao(−ω2)Bo(−ω2)], (6)

p2(ω) = [Be(−ω2)Be(−ω2)

+ω2Bo(−ω2)Bo(−ω2)],

q(ω)=ω[Be(−ω2)Ao(−ω2)

−Ae(−ω2)Bo(−ω2).

Defina

pf (ω, k) =p(ω, k)

(1 + ω2)m+n

2

e qf (ω) =q(ω)

(1 + ω2)m+n

2

.

(7)

e suponha que 0 = ω0 < ω1 < ω2 < . . . < ωl−1

denote os zeros reais, nao-negativos, distintos

e finitos de qf (ω) com multiplicidade ımpara.Forme um conjunto A de todas as possıveissequencias de numeros i0, i1, i2, ..., il que podemser geradas satisfazendo as seguintes condicoes:(i) Se B∗(jωt) = 0 para algum t = 1, 2, . . . , l − 1,entao define-se it = 0; caso contrario it ∈ {−1, 1};(ii) Se B∗(jωt) tem um zero de multiplicidade p

na origem, entao define-se i0 = sgn[p(p)1f

(0)]; casocontrario i0 ∈ {−1, 1}, sendo

p1f(ω) :=

p1(ω)

(1 + ω2)(m+n)

2

e

sgn(x) ={

1, x ≥ 00, x < 0 .

(iii) il = 0 se m + n e ımpar; il ∈ {−1, 1}se m + n e par. Para cada um dos elementosI = {i0, i1, . . . , il} do conjunto A obtido acima,calcule a sua assinatura imaginaria γ(I) da se-guinte forma: suponha que 0 = ω0 < ω1 < ω2 <. . . < ωl−1 denotem os zeros reais, nao-negativos,distintos e finitos de qf (ω) com multiplicidadeımpar e defina ωl = ∞. Entao:

γ(I) :=

8>><>>:

{i0 − 2i1 + 2i2 + . . . + (−1)l−12il−1+

(−1)lil}(−1)l−1sgn[q(∞)], m + n par

{i0 − 2i1 + 2i2 + · · ·+ (−1)l−12il−1}(−1)l−1sgn[q(∞)], m + n ımpar

(8)

Forme agora o conjunto F ∗ com os elementosdo conjunto A cujas assinaturas sao iguais a n −{l[B(s)]− r[B(s)], isto e:

F ∗ = {I ∈ A : γ(I) = n− {l[B(s)]− r[B(s)]},sendo l(.) e r(.) os numeros de raızes de B(s) nossemi-planos esquerdo e direito do plano s, respec-tivamente. A estabilizacao de sistemas realimen-tados com controladores proporcionais e regidapelo seguinte teorema.Teorema 1 (Datta et al., 2000) O problema daestabilizacao de sistemas realimentados compensa-dos com controladores proporcionais realimentadotem solucao para uma dada planta com funcao detransferencia G(s) se e somente se as seguintescondicoes sao asseguradas:(i) F ∗ e nao vazio e(ii) Existe uma sequencia I = {i0, i1, . . . , il} ∈ F ∗

tal que

maxit∈I,it>0

[− 1

G(jωt)

]< min

it∈I,it<0

[− 1

G(jωt)

].

Alem disso, se a condicao acima e satisfeita pe-las sequencias viaveis I1, I2, . . . , Is ∈ F ∗, entaoo conjunto de todos os ganhos que estabilizam osistema e dado por K = ∪s

r=1Kr, sendo

Kr = ( maxit∈I,it>0

[− 1

G(jωt)], min

it∈I,it<0[− 1

G(jωt)]),

r = 1, 2, . . . , s. (9)

¤aNote que estes zeros sao independentes de kp.

2.2 Caracterizacao de todos os controladores PIestabilizantes

Sendo, agora, o controlador do tipo PI, K(s), teraa seguinte funcao de transferencia:

K(s) = kp +ki

s=

ki + kps

s.

Consequentemente o polinomio caracterıstico demalha fechada sera

δ(s, kp, ki) = sA(s) + (ki + kps)B(s). (10)

Fatorando B(s) e A(s) de acordo com a Eq. (3),calculando δ(s, kp, ki)B∗(s) e, substituindo s =jω, obtem-se: Substituindo s = jω, obtem-se:

δ(jω, kp, ki)B∗(jω) = p(ω, ki) + jq(ω, kp) (11)

sendo

p(ω, ki) = p1(ω) + kip2(ω)q(ω, kp) = q1(ω) + kpq2(ω)

p1(ω) = −ω2(Be(−ω2)Ao(−ω2)−Ae(−ω2)Bo(−ω2))

p2(ω) = Be(−ω2)Be(−ω2)+ω2Bo(−ω2)Bo(−ω2))

q1(ω) = ω(Ae(−ω2)Be(−ω2)+ω2Ao(−ω2)Bo(−ω2))

q2(ω) = ω(Be(−ω2)Be(−ω2)+ω2Bo(−ω2)Bo(−ω2))

(12)

De forma analoga a Secao 2.1, definindo

pf (ω, ki) =p(ω, ki)

(1 + ω2)m+n

2

, qf (ω, kp) =q(ω, kp)

(1 + ω2)m+n

2

,

(13)

tem-se que ki e kp aparecem somente em pf (ω, ki)e qf (ω, kp), respectivamente. Alem disso, paratodo kp fixo, os zeros de q(ω, kp) nao dependemde ki e, portanto, os resultados apresentados naSecao 2.1 podem ser aplicados para encontrar (seexistir) os intervalos de ki que tornam o sistemarealimentado estavel para um dado valor de kp.Assim variando-se o valor de kp e resolvendo-se oproblema de estabilizacao para o controlador pro-porcional, expresso agora para ki, encontra-se osintervalos desejados para ki. Deve ser ressaltadoque o intervalo da “varredura” de kp nao precisaser (−∞,∞). Em muitos casos pode-se reduzireste intervalo fazendo-se uso de conceitos utili-zados na construcao do lugar das raızes. Paratanto, escreva q(ω, kp) = ω[U(ω)+kpV (ω)], comoU(ω) = Ae(−ω2)Be(−ω2)+ω2Ao(−ω2)Bo(−ω2) eV (ω) = Be(−ω2)Be(−ω2) + ω2Bo(−ω2)Bo(−ω2).E facil verificar que q(ω, kp) tem pelo menos umaraız real, nao-negativa na origem e, assim, parase determinar os zeros reais 0 = ω0 < ω1 <ω2 < . . . < ωl−1 nao-negativos, distintos e fini-tos de qf (ω) com multiplicidade ımpar para dife-rentes intervalos de kp basta achar os valores dekp correspondentes aos pontos de partida/chegadano eixo real. Definindo-se kp0 = −∞ e kpz+1 =∞, entao ωi, i = 1, 2, . . . , z sao as raızes reais

multiplas de U(ω) + kpV (ω) = 0 que correspon-dem aos valores de kpi

,i = 1, 2, . . . , z + 1. Noteainda que para kp ∈ (kpi , kpi+1), as raızes reais deU(ω) + kpV (ω) = 0 sao simples e o numero deraızes reais de U(ω) + kpV (ω) = 0 e invariante.

2.3 Caracterizacao dos controladores PID esta-bilizantes

Nesse caso o controlador tera a seguinte funcao detransferencia:

K(s) = kp +ki

s+ ks =

ki + kps + kds2

s. (14)

Nessa Secao, sera mostrado como o resultado daSecao 2.2, pode ser estendido para resolver o pro-blema de se determinar os ganhos kp, ki, e kd,para que o sistema realimentado da figura 1 sejaestavel. Procedendo-se como nas secoes 2.1 e 2.2,obtem-se inicialmente as decomposicoes de B(s)e A(s) em suas partes par e ımpar. Em seguida,multiplicando-se o polinomio caracterıstico de ma-lha fechada δ(s, kp, ki, kd) por B∗(s) e, finalmente,fazendo a substituicao s = jω, obtem-se:

δ(jω, kp, ki, kd)B∗(jω) = p(ω, ki, kd) + jq(ω, kp),

sendo

p(ω, ki, kd) = p1(ω) + (ki − kdω2)p2(ω);

q(ω, kp) = q1(ω) + kpq2(ω);

p1(ω) = −ω2(Be(−ω2)Ao(−ω2)

−Ae(−ω2)Bo(−ω2));

p2(ω) = Be(−ω2)Be(−ω2) (15)

+ω2Bo(−ω2)Bo(−ω2));

q1(ω) = ω(Ae(−ω2)Be(−ω2)

+ω2Ao(−ω2)Bo(−ω2));

q2(ω) = ω(Be(−ω2)Be(−ω2)

+ω2Bo(−ω2)Bo(−ω2)).

Definindo

pf (ω, ki, kd) =p(ω, ki)

(1 + ω2)m+n

2

,

qf (ω, kp) =q(ω, kp)

(1 + ω2)m+n

2

,(16)

ve-se, mais uma vez, que ki e kd aparecem so-mente em p(ω, ki, kd) e que kp aparece somenteem q(ω, kp). Assim para todo kp fixo, os zeros deq(ω, kp) nao dependem de ki ou de kd e, entao,pode-se usar o resultado encontrado na Secao 2.1para determinar os valores de ki e kd que tornamo sistema realimentado estavel. Contudo, comopara cada valor de kp, duas variaveis devem serdeterminadas, utiliza-se programacao linear paraencontrar os intervalos de ki e kd associados a cadakp.

Seja gr[δ(s, kp, ki, kd)] = nδ e considere afuncao qf (w) definida pela Eq. (16). Suponhaque 0 = ω0 < ω1 < ω2 < . . . < ωl−1 denotem

os zeros reais, nao-negativos, distintos e finitos deqf (ω) com multiplicidade ımpar. Crie sequenciasde numeros i0, i1, i2, . . . , il da seguinte forma:(i) Se B∗(jωt) = 0 para algum t = 1, 2, . . . , l − 1,entao it = 0 e caso contrario it ∈ {−1, 1}(ii) Se B∗(jωt) tem uma zero de multiplicidade kn

na origem, faca i0 = sgn[pkn1f

(0)] e caso contrarioi0 ∈ {−1, 1},sendo

p1f(ω) :=

p1(ω)

(1 + ω2)(m+n)

2

;

(iii) Para todos os outros t = 0, 1, 2, . . . , l, seit ∈ {−1, 1}. Alem disso, e nδ + m e par,il ∈ {−1, 1} e se nδ + m e ımpar, il = 0. Formeo seguinte conjunto Akp = {I = {i0, i1, . . . , il} :Isatisfaca as condicoes (i) e (iii)}. Para cada I ∈Akp

, calcule a sua assinatura imaginaria:

γ(I) :=

8>><>>:

{i0 − 2i1 + 2i2 + . . . + (−1)l−12il−1 + (−1)lil}(−1)l−1sgn[q(∞, kp)] para m + nδ par

{i0 − 2i1 + 2i2 + . . . + (−1)l−12il−1}(−1)l−1sgn[q(∞, kp)] para m + nδ ımpar

,

e forme o conjunto

F ∗kp= {I ∈ Akp : γ(I) = n− [l(B(s))− r(B(s))].}

A estabilizacao de sistemas realimentados utilizandocontroladores PID e regida pelo seguinte teorema.

Teorema 2 (Datta et al., 2000) O problema da es-tabilizacao de controladores PID, com um kp fixo, eresolvido para uma dada planta com funcao de trans-ferencia G(s) se e somente se as seguintes condicoessao satisfeitas:(i) F ∗kp

nao e vazio e,(ii) Existe uma sequencia I = {i0, i1, . . . il} ∈ F ∗kp

evalores de ki e kd tais que ∀t = 0, 1, 2, . . . , l para osquais, B∗(jωt) 6= 0,

p(ωt, ki, kd)it > 0, (17)

sendo p(ωt, ki, kd)it definido de acordo com a Eq.(15). Alem disso, se existirem valores de ki e kd

que satisfacam a condicao acima para as sequenciasviaveis I1, I2, . . . , Is ∈ F ∗kp

, entao o conjunto devalores de (ki, kd) que levam a controladores PIDque estabilizam o sistema realimentado, correspon-dente a um kp fixo, e a uniao dos valores de (ki, kd)que satisfazem a desigualdade (17) para I1, I2, . . . , Is.

¤

3 Funcionais de custo quadraticos paraajuste dos parametros de controladores PI

e PID

Uma maneira de se considerar o objetivo de desempe-nho transitorio no projeto de controladores e atravesda formulacao de um problema de otimizacao definidoem termos de uma funcao de custo quadratica J , de-finida da seguinte forma:

J =

Z ∞

0

e2(t)dt + α

Z ∞

0

y2d(t)dt = ‖e‖22 + α‖yd‖22,

(18)

sendo e(t) o sinal do erro, yd(t) a componente do sinalde perturbacao no sinal de saıda y(t) e α ∈ R∗ e uti-lizado para estabelecer uma ponderacao entre os ob-jetivos de rastreamento e de rejeicao de perturbacao.Utilizando o teorema de Parseval (Lathi, 1968), tem-se que a Eq. (18) e equivalente a:

J = ‖E‖22 + α‖Yd‖22, (19)

send E(s) e Yd(s), respectivamente, as transformadasde Laplace dos sinais e(t) e yd(t). O funcional de custo(19) pode ser modificado com o objetivo de limitar osinal de controle (Basilio, 1989), da seguinte forma:

J = ‖Ew‖22 + α‖Yd‖22, (20)

sendoEw(s) = W (s)E(s), (21)

com W (s) descrito pela seguinte funcao racional

W (s) =s + γ

s + β, (22)

em que γ, β ∈ R+. Note que o termo W (s) funcionacomo uma funcao de ponderacao, que produz o efeitode bloquear sinais de alta ou de baixa frequencia, de-pendendo dos valores de γ e β; quando γ e maior queβ os sinais de baixa frequencia presentes em e(t) saoatenuados e quando o contrario ocorre (isto e γ < β),os sinais de alta frequencia presentes em e(t) sao ate-nuados. Dessa forma, os parametros γ e β represen-tam novos parametros de projeto a serem arbitradospelo projetista. Sendo G(s) descrita pela Eq. (2),R(s) = R/s, D(s) = D/s (R, D ∈ R e notando queK(s) pode ser escrito como

K(s) =C(s)

s,

em que C(s) = kps+ki para controladores PI e C(s) =kds2 + kps + ki para controladores PID, nao e difıcilverificar que Ew(s) e Yd(s) podem ser escritos como:

Ew(s) =(s + γ)A(s)R

(s + β)(sA(s) + B(s)C(s)),

Yd(s) =B(s)D

sA(s) + B(s)C(s).

Observacao 1 O uso de normas quadraticas, alemde permitir considerar os objetivos de projetos aquiperseguidos, possui ainda a vantagem adicional de queseu computo pode ser feito diretamente de uma repre-sentacao em espaco de estados associada a funcao ra-cional e do calculo do gramiano de controlabilidade.Isso representa uma vantagem significativa, uma vezque as variaveis a serem determinadas aparecem noscoeficientes dos polinomios das funcoes racionais cu-jas normas devem ser calculadas. Assim, o problemade otimizacao definido para o custo definido pela Eq.(20) nao possui solucao fechada, exigindo entao umabusca no espaco de parametros (kp, ki, kd). ¤

4 Uso de algoritmos geneticos no ajuste dosparametros de controladores PI e PID

otimos quadraticos

Os algoritmos geneticos (AG) sao uma famılia de mo-delos computacionais, que e inspirada na teoria daevolucao de Charles Darwin (sobrevivencia do mais

apto). Sao metodos de busca estocasticos baseadosno mecanismo de selecao natural e genetica natural(Dasgupta e Michalewicz, 2001) e tentam “imitar ” ateoria de a adaptacao do indivıduo que e mais forte nomeio onde ele se encontra, por isso tem mais chancede sobrevivencia. Assim o algoritmo gera populacoesde indivıduos que serao mais ou menos aptos a de-terminados meios (funcao que se quer otimizar). Apartir daı, os melhores indivıduos vao gerar novos (emelhores)indivıduos ate que se chegue a solucao doproblema. A popularidade dos AGs se deve, principal-mente, a dois fatos: sao robustos e aplicaveis a umagrande variedade de problemas e sao eficazes e efici-entes, ja que acham solucoes boas e, inclusive, otimaspara o problema, em um tempo razoavel. A estruturabasica do AG pode ser descrita pelo seguinte algo-ritmo.

Algoritmo 1Passo 1: Iniciar o numero da geracao, i=1.Passo 2: Gerar uma populacao aleatoria de cromos-somos Pi.Passo 3: Calcular a Funcao Objetivo de cada cromos-somo e a sua probabilidade de sobrevivencia.Passo 4: Se for alcancado o numero maximo degeracoes, terminar o processo.Passo 5: Baseado na probabilidade de sobrevivencia,realizar a selecao e reproducao dos melhores in-divıduos gerando a populacao Pi1.Passo 6: Aplicar o operador de Cruzamento a po-pulacao Pi1, gerando a populacao Pi2.Passo 7: Aplicar o operador de Mutacao a populacaoPi2 gerando a populacao Pi+1.Passo 8: Incrementar i e voltar ao passo 3. ¤

De acordo com o algoritmo 1, para a obtencaodo controlador PID otimo utilizando o algoritmogenetico, o primeiro passo e a geracao da populacaoinicial. Nesse artigo, foi utilizada uma populacao com50 indivıduos (N=50). A partir desta populacao, efeita a avaliacao da probabilidade de sobrevivenciada mesma. Nesta etapa deve-se calcular os valoresda funcao custo descrita pela Eq. (20) para cada in-divıduo da populacao inicial, sendo importante veri-ficar se o indivıduo (ponto) esta dentro da regiao deestabilidade, uma vez que se o sistema nao for estavel,nao e possıvel calcular o gramiano de controlabilidadeutilizando-se a equacao de Lyapunov. Uma maneirade se contornar esse problema e utilizar, para os in-divıduos fora da regiao de estabilidade, uma outrafuncao uma funcao constante com um valor relativa-mente alto, para que o valor mınimo esteja sempredentro da regiao de estabilidade. Calculada a pro-babilidade de sobrevivencia de cada indivıduo da po-pulacao inicial, faz-se entao a selecao dos indivıduosque tem as melhores probabilidades de adaptacao.Para esta etapa, foi utilizado o metodo de selecao“Stochastic Universal Sampling” (Baker, 1987). Apartir dos indivıduos selecionados, faz-se entao o cru-zamento destes. Neste artigo utilizou-se a probabili-dade de cruzamento Px = 0, 7. Apos esta etapa, tem-se que utilizar o operador mutacao nestes indivıduos.Neste caso a probabilidade de mutacao utilizada foiPm = 0, 01. Com os indivıduos criados depois deutilizados estes operadores, o proximo passo e a re-insercao destes na populacao inicial e, a partir daı,recomecar o processo com esta nova populacao, ate

−10 −5 0 50

0.5

1

1.5

2

2.5

3

3.5

4

kp

ki

(a)

0

5

10−8 −6 −4 −2 0 2 4 6 8

−10

−8

−6

−4

−2

0

2

4

kd

ki

kp

(b)

Figura 2. Conjunto de pontos (kp, ki) (a) e (kp, ki, kd) (b)que estabilizam a planta do exemplo 1.

que o numero maximo de geracoes seja alcancado. Onumero maximo de geracoes aqui adotado e 60. Aposalcancar este numero de geracoes, o melhor indivıduoda ultima geracao e o resultado final do processo deotimizacao.

5 Exemplos

Sera agora apresentado um exemplo numerico parailustrar a metodologia proposta nesse artigo. Para aobtencao dos controladores PI e PID otimos, foi utili-zada a biblioteca de funcoes Matlab desenvolvida porChipperfield et al. (1994). Em todos os exemplos foifeito α = 1, isto e, mesma enfase foi dada a rejeicao daperturbacao e ao rastreamento do sinal de referencia,R(s) = 1/s e D(s) = 1/s.

Considere uma planta com a seguinte funcao detransferencia (Datta et al., 2000):

G(s) =s3 − 4s2 + s + 2

s5 + 8s4 + 32s3 + 46s2 + 46s + 17. (23)

A dificuldade dessa planta reside no fato de serinstavel, fase nao-mınima e ter grau relativo igual a2. As regioes de estabilidade para controladores PIe PID estao mostradas nas Figs. 2(a) e (b). Deveser salientando que no tracado dessas regioes, o maisimportante e encontrar os pontos extremos, uma vezque esses definirao uma caixa onde serao geradas aspopulacoes.

Utilizando algoritmo genetico, tem que, apos al-gumas iteracoes, chega-se aos valores de γ = 0, 6 eβ = 2 e, conforme descrito na Secao 4, obtem-se osseguintes controladores:

KPI(s) = 1, 1721 +1, 6715

s,

KPID(s) = 1, 5642 +2, 4249

s+ 1, 8878s.

(24)

Os desempenhos dos sistemas compensados com oscontroladores acima estao mostrados nas Figs. 3(a) e(b) (azul/verde para a resposta do sistema realimen-tado ao controlador PI/PID); a Fig. 3(a) mostra asrespostas ao degrau e a Fig. 3(b) mostra os correspon-dentes sinais de controle. Note que a introducao daacao derivativa melhorou a resposta transitoria ao si-nal de referencia, porem houve uma leve degeneracaoda rejeicao do sinal de perturbacao. Os ındices dedesempenho dos sistemas compensados com os con-troladores PI e PID acima estao mostrados na Tab.1. Na Tab. 1, tr, ts, tp e tspert denotam, respec-tivamente, os tempos de subida, acomodacao, pico eo intervalo de tempo decorrido desde a aplicacao dosinal de perturbacao ate o instante a partir do quala resposta permanece em um intervalo de ±2% dovalor de regime permanente, yinf denota o valor deregime permanente da resposta, PO(%) e E(%) de-notam, respectivamente, os percentuais de ultrapassa-gem das respostas ao degrau e ao sinal de perturbacao,respectivamente.

Observacao 21. Deve ser destacado que a implementacao do contro-lador PID foi feita modificando-se o termo derivativode forma a atuar sobre o sinal de saıda e introduzindo-se um polo em N/kd. Assim, o sinal de saıda do con-trolador UK(s) sera, para efeitos de implementacao,escrito como:

UD(s) = (kp +ki

s)E(s)− kds

τds + 1Y (s),

sendo τd = kp/N no lugar da transformada de Laplaceda equacao (1).2. Embora tenham sido obtidos controladores PI ePID para a planta descrita pela funcao de trans-ferencia (23), nem sempre e possıvel estabilizar plan-tas instaveis com controladores PI ou PID. Por exem-plo, para a planta com funcao de transferencia

G(s) =s2 + 8, 5s + 17, 5

s4 − 15s2 + 10s + 24,

a regiao de estabilidade para controladores PI e PIDe vazia. Nesse caso, o metodo proposto neste artigonao podera ser usado. Isso nao representa uma de-ficiencia do metodo e, sim, da estrutura do controla-dor adotada; nem toda planta instavel pode ser esta-bilizada utilizando-se controladores PI ou PID (Dattaet al., 2000). ¤

6 Conclusao

Uma maneira sistematica de se utilizar a regiao de es-tabilidade para controladores PI e PID proposta porDatta et al. (2000) no projeto de controladores PI ePID otimo para plantas instaveis e tambem estaveisfoi proposta nesse artigo. O algoritmo e de facil im-plementacao, o que da a ele um grande potencial deuso na industria.

Tabela 1. Indices de desempenho relativos ao sistema rea-limentado do exemplo 1

Metodo/ Controlador Controladorındices PI PID

tr 7,7141 4,6856ts 16,9232 6,4027

yinf 1,0000 1,0000tp – 5,4400

PO(%) 0,0000 4,8159umax 9,6087 9,7471tspert 12,2182 5,9297E(%) 18,7717 19,6717

0 10 20 30 40 50 60 70 80 90 100−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

Tempo − t

Res

post

a −

y(t

)

(a)

0 10 20 30 40 50 60 70 80 90 1001

2

3

4

5

6

7

8

9

10

Tempo − t

Sin

al d

e co

ntro

le −

u(t

)

(b)

Figura 3. Resposta ao degrau e ao sinal de perturbacao(a) e sinal de controle (b) para o sistema compensado comos controladores PI (linha azul) e PID (linha verde) dadosna Eq. (24).

Agradecimentos

Os autores gostariam de agradecer ao CNPq peloapoio financeiro, a Profa. Vilma Alves de Oliveira,pelas discussoes extremamente construtivas e ao Prof.Bhattacharyya pelo encorajamento para submissaodesse artigo para publicacao.

Referencias

Astrom, K. J. e Hagglund, T. (2004). Revisiting theziegler-nichols step response method for PID con-trol, Journal of Process Control 14: 635–650.

Baker, J. E. (1987). Reducing bias and inefficiency inthe selection algorithm, Proceedings of the SecondInternational Conference on Genetic Algorithmsand their Application, Hillsdale, pp. 14–21.

Basilio, J. C. (1989). Controle otimo quadratico nodomınio da frequencia com objetivos de rastrea-mento de sinais limitados e margem de estabili-dade, Tese de Mestrado, Instituto Militar de En-genharia.

Chipperfield, A., Fleming, P., Pohleim, H. e Fonseca,C. (1994). Genetic Algorithm Toolbox, version1.2, Department of Automatic Control and Sys-tems Engineering, University of Sheffield.

Cominos, P. e Munro, N. (2002). PID controllers: re-cent tuning methods and design to specification,IEE Proceedings 149(1): 46–53.

Dasgupta, D. e Michalewicz, Z. (2001). EvolutionaryAlgorithms in Engineering Applications, Sprin-ger.

Datta, A., Ho, M. T. e Bhattacharyya, S. P. (2000).Structure and Synthesis od PID Controllers,Springer.

Ge, M., Chiu, M. S. e Wang, Q. G. (2001). RobustPID controller design via LMI approach, Journalof Process Control 12: 3–13.

Ho, M. T., Datta, A. e Bhattacharyya, S. (2001). Ro-bust and non-fragile PID controller design, Inter-national Journal of Robust and Nonlinear Con-trol 11(7): 681–708.

Lathi, B. (1968). Communication Systems, John Wi-ley & Sons Inc.

Oviedo, J. J. E., Oelen, T. e Overshee, P. V. (2006).Robust advanced PID control (RaPID)- PID tu-ning based o engineering specifications, IEEEControl Systems Magazine 26(1): 15–19.

Shafiei, Z. e Shenton, A. T. (1994). Tuning of PID-type controllers for stable and unstable systemswith time delay, Automatica 30: 1609–1615.

Silva, G. J., Datta, A. e Bhattacharyya, S. P.(2004). PID Controllers for Time Delay Systems,Birkhauser.

Toscano, R. (2004). A simple robust PI/PID controllerdesign via numerical optimation approach, Jour-nal og Process Control 15: 81–88.

Ziegler, J. G. e Nichols, N. B. (1942). Optimal set-tings for automatic controllers, Transactions ofthe ASME 64: 759–768.