Universidade Federal de Ouro Preto
Escola de Minas
Departamento de Engenharia de Controle e Automação
e Técnicas Fundamentais - DECAT
Desenvolvimento de modelo computacional aplicado ao problema de
sintonia de controladores PID usando Algoritmos Genéticos
MONOGRAFIA DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E
AUTOMAÇÃO
Eduardo Montenegro Castro Junior
Ouro Preto, 2005
Eduardo Montenegro Castro Junior
DESENVOLVIMENTO DE MODELO COMPUTACIONAL APLICADO AO PROBLEMA
DE SINTONIA DE CONTROLADORES USANDO ALGORITMOS GENÉTICOS
Monografia apresentada ao Curso de Engenharia
de Controle e Automação da Universidade
Federal de Ouro Preto como parte dos requisitos
para obtenção de grau como Engenheiro de
Controle e Automação.
Orientador: Marcone Jamilson Freitas Souza
Ouro Preto
Escola de Minas - UFOP
Julho, 2005
Aos meus pais, genuínos responsáveis por tudo que sou,
À Marina, meu amor, pelo incentivo e apoio,
À República Canaan, minha terra prometida.
AGRADECIMENTOS
Agradeço aos meus pais, meus verdadeiros exemplos de vida. Ao meu tio Ary,
meu tutor desde tenra idade. À Marina, meu amor, pelo carinho e incentivo em todos os
momentos. À GTI pelo aprendizado e pela sobrevivência em Ouro Preto. À majestosa
república CANAAN pelas amizades eternas e pelos bons momentos.
SUMÁRIO
I
INTRODUÇÃO ...............................................................................................................11
1.1.
ORIGEM DO TRABALHO ........................................................................................................................ 12
1.2.
OBJETIVO ............................................................................................................................................. 12
1.2.1. Objetivo Geral ................................................................................................................................ 13
1.2.2. Objetivo específico ......................................................................................................................... 13
1.2.3. Organização do texto...................................................................................................................... 13
II
REVISÃO BIBLIOGRÁFICA .......................................................................................14
2.1.
O PROBLEMA DA SINTONIA DE CONTROLADORES ................................................................................. 14
2.2.
MÉTODOS DE SINTONIA ........................................................................................................................ 16
2.2.1. Método da sensibilidade Limite...................................................................................................... 16
2.2.2. Método da Curva de Reação .......................................................................................................... 18
2.2.3. Método de Ziegler e Nichols........................................................................................................... 21
2.2.4. Método de Otimização Multidimensional....................................................................................... 22
2.2.5. Métodos baseados em desempenho ótimo com malha fechada ...................................................... 24
2.3.
OS ALGORITMOS GENÉTICOS ............................................................................................................... 27
2.3.1. Algoritmo Genético Canônico ........................................................................................................ 28
2.3.2. Operadores Genéticos .................................................................................................................... 30
2.3.3. Cruzamento..................................................................................................................................... 30
2.3.4. Mutação e Inversão ........................................................................................................................ 32
2.3.5. Avaliação e Seleção de Cromossomas............................................................................................ 33
2.3.6. Parâmetros de um Algoritmo Genético .......................................................................................... 33
2.3.7. Melhorias de Desempenho do Algoritmo Genético ........................................................................ 34
2.3.8. Usando codificação real................................................................................................................. 35
2.3.9. Parâmetros e Inicializações ........................................................................................................... 36
2.3.10.
Operadores Genéticos ............................................................................................................... 37
2.3.11.
Reparações e Seleção ................................................................................................................ 38
2.3.12.
Domínios de Aplicação.............................................................................................................. 39
III METODOLOGIA............................................................................................................40
3.1.
DEFINIÇÃO DO PROBLEMA ................................................................................................................... 40
3.1.1. Processo térmico ............................................................................................................................ 41
3.1.2. Processo sem representação física real.......................................................................................... 42
3.2.
A FASE DE MODELAGEM DO PROBLEMA ............................................................................................... 42
3.2.1. A representação da solução: .......................................................................................................... 43
3.2.2. A função de Fitness......................................................................................................................... 44
3.2.3. Definição da função de seleção...................................................................................................... 45
3.2.4. Definição dos Operadores.............................................................................................................. 45
3.3.
CODIFICAÇÃO E VALIDAÇÃO DO MODELO COMPUTACIONAL ................................................................ 46
3.3.1. A linguagem de programação proposta ......................................................................................... 47
3.3.2. Estrutura de classes........................................................................................................................ 47
3.3.3. Considerações sobre a simulação do controle ............................................................................... 48
3.3.4. Parâmetros e funcionalidades do AG proposto.............................................................................. 49
3.3.5. Validação do modelo computacional ............................................................................................. 50
IV RESULTADOS OBTIDOS.............................................................................................53
4.1.1.
4.1.2.
V
Apresentação dos Resultados ......................................................................................................... 53
Discussão dos Resultados............................................................................................................... 54
CONCLUSÕES E TRABALHOS FUTUROS..............................................................55
REFERÊNCIAS BIBLIOGRÁFICAS...................................................................................56
LISTA DE TABELAS
TABELA 2.1 – FÓRMULAS DO MÉTODO SENSIBILIDADE LIMITE ..................................................17
TABELA 2.2 - MÉTODO DA SENSIBILIDADE LIMITE MODIFICADO ...............................................18
TABELA 2.3 – MÉTODO DE CURVA DE REAÇÃO ...........................................................................19
TABELA 2.4 – AJUSTE DE PARÂMETROS ......................................................................................20
TABELA 2.5– MÉTODO DE .ZIEGLER E NICHOLS .........................................................................21
TABELA 3.1 - PARÂMETROS DO AG PROPOSTO ...........................................................................50
TABELA 8.1 – RESULTADOS DAS SIMULAÇÕES DE AVALIAÇÃO DO MODELO ...............................53
LISTA DE FIGURAS
FIGURA 2.1 – MÉTODO DA CURVA DE REAÇÃO ..........................................................................19
FIGURA 2.2: REPRESENTAÇÃO DA IDÉIA DO MÉTODO DOS POLIEDROS FLEXÍVEIS......................23
FIGURA 2.3 – PSEUDOCÓDIGO DO MÉTODO DOS POLIEDROS FLEXÍVEIS.......................................24
FIGURA 2.4 – GRÁFICO DE DESEMPENHO DE UM CONTROLADOR PID .........................................25
FIGURA 2.5 – REPRESENTAÇÃO DO CROSSOVER UNIPONTO ........................................................31
FIGURA 2.6 – REPRESENTAÇÃO DO CROSSOVER MULTIPONTO ...................................................31
FIGURA 2.7 – REPRESENTAÇÃO DO CROSSOVER UNIFORME .......................................................32
FIGURA 2.8 – REPRESENTAÇÃO DA MUTAÇÃO ............................................................................33
FIGURA 3.1 – SISTEMA DE AQUECIMENTO DE TANQUE ................................................................41
FIGURA 3.2 – GRÁFICO ISE DE UM CONTROLADOR PI ................................................................44
FIGURA 3.3 – DIGRAMA DE UM CONTROLE SINTONIZADO POR UM AG........................................49
FIGURA 3.4 – FUNÇÃO COM VÁRIOS MÍNIMOS LOCAIS ................................................................51
FIGURA 3.5 – EQUAÇÃO QUE REPRESENTA A FUNÇÃO A SER MINIMIZADA ..................................52
LISTA DE SIGLAS
PID
Proporcional - Integral - Derivativo
PSC
Problema de Sintonia de Controladores
Kp
Ganho Proporcional
Ki
Ganho Integral
Kd
Ganho Derivativo
AG
Algoritmos Genéticos
ISE
Integral of the Square of the Error
MSE
Mean of the Square of the Error
ITAE
Integral of Time multiplied by Absolute Error
IAE
Integral of Absolute Magnitude of the Error
RESUMO
O presente trabalho trata da otimização dos parâmetros de um controlador clássico
PID. Este é um problema clássico da Teoria de Controle, que afeta diretamente o desempenho
de processos automaticamente controlados, sendo de interesse, portanto, sua resolução. Este é
um problema de alto nível de complexidade, devido à elevada quantidade de soluções factíveis
existentes, o que justifica sua abordagem por metodologias heurísticas. Neste trabalho o
problema é abordado por um método heurístico, o algoritmo genético. O método trabalha com
operadores de crossover e mutação usando uma codificação em ponto flutuante, o que
minimiza o esforço computacional com os tradicionais processos de codificação e
descodificação caso se trabalhasse com codificação binária. A aplicação foi desenvolvida em
JAVA devido à portabilidade da linguagem e a possibilidade de integrar o modelo
computacional proposto em um controlador industrial, seguindo uma tendência de mercado. A
aplicação foi testada usando-se uma função de transferência que simula sistemas não-lineares,
nos quais os métodos clássicos de sintonia têm aplicação limitada. Os resultados obtidos
mostram a eficiência do algoritmo genético na otimização dos parâmetros de um controlador
para esses tipos de sistema.
I
INTRODUÇÃO
O controle automático tem desempenhado um papel vital no avanço da engenharia e da
ciência. Além de sua extrema importância para a área aeroespacial e para a robótica, o
controle automático tornou-se uma parte importante e integrante dos processos industriais e de
manufatura moderno. É ainda essencial nas operações industriais tais como: controle de
pressão, temperatura, umidade, viscosidade e vazão nas indústrias modernas.
Considerando que os avanços na teoria de controle propiciaram meios para se atingir
desempenho ótimo de sistemas dinâmicos, melhoria da produtividade, alívio no trabalho
enfadonho de muitas operações manuais repetitivas de rotina e muito mais, os engenheiros e
cientistas, em sua maioria, devem possuir um bom conhecimento neste campo.
Um dos problemas que em muito tem chamado atenção dos especialistas é o de
otimização de desempenho de controladores. O desempenho de sistemas de controle em geral
já é estudado há muitos anos. Existem muitos critérios e índices devidamente estabelecidos
dentro da teoria de controle convencional. Devido ao fato do algoritmo PID ser utilizado na
maioria dos controladores existentes no mercado, cerca de 85% das aplicações, iremos abordálo neste trabalho. O controle PID é o mais utilizado pela facilidade de implementação e
flexibilidade para atendimento às necessidades da indústria.A teoria de controle já estuda
controladores com algoritmo PID desde o início do século passado, sendo que diversos
trabalhos já comprovaram a eficiência do PID para controle clássico e avançado (feedforward, controle de razão, multimalha, cascata, etc.). Existem diversos critérios e índices de
desempenho (IAE, ITAE, ISE, ITSE, decaimento de um quarto, variabilidade, tempo de
acomodação, overshoot, etc.), que permitem definir a eficiência de uma malha de controle.
A necessidade de projetistas e engenheiros de lidarem com sistemas cada vez mais
complexos,tem viabilizado a identificação e controle de sistemas difíceis de serem modelados
matematicamente (não lineares e com atraso de transporte variante no tempo) pela utilização
da inteligência computacional (IC). A utilização de IC combinada a teoria convencional de
controle é motivada pela adequação ao tratamento de restrições e satisfação de requisitos de
robusteza e desempenho em projetos na área de automação industrial. Neste contexto, a
utilização da IC em problemas de otimização de sintonia de controladores tem crescido
bastante entre os pesquisadores.
Dentre desses métodos se destacam as Metaheurística como excelentes ferramentas de
busca de soluções para problemas de grande complexidade, como o problema de sintonia de
controladores.
1.1.
Origem do trabalho
A inspiração para este trabalho surgiu após a conclusão da disciplina de Inteligência
Computacional, ministrada pelo Prof. Dr. Marcone Jamilson Freitas Souza em 2003.
Esta disciplina foi o primeiro contato com os métodos Metaheurísticos que
representam, atualmente, uma poderosa ferramenta para busca de soluções de problemas com
alto nível de complexidade.
A sintonia de controladores se enquadra nesta classe de problemas, no qual as técnicas
clássicas mais usuais de resolução são empíricas e, em muitos casos práticos, limitadas.
A idéia desta monografia surge, portanto, da tentativa de aplicar uma técnica
heurística, o algoritmo genético, na busca de melhores soluções para ampla variedade de
problemas de sintonia de controladores, no qual os métodos tradicionais são considerados de
baixo desempenho.
1.2.
Objetivo
O objetivo dessa monografia será classificado em objetivo geral, definindo seu escopo,
e objetivos específicos, detalhando as tecnologias para se realizar a proposta do escopo.
1.2.1.
Objetivo Geral
Aplicar um método heurístico ao problema de otimização de parâmetros de
controladores, gerar dados para análise e discutir resultados.
1.2.2.
Objetivo específico
Desenvolver um modelo computacional que implemente o Algoritmo Genético
aplicado ao problema de otimização de um controlador PID, capaz de gerar dados para efetuar
análise qualitativa e quantitativa.
1.2.3.
Organização do texto
No capítulo I são feitas considerações sobre o escopo do trabalho e uma breve
introdução ao problema de sintonia de controladores.
No capítulo II é realizada a revisão da bibliografia, apontando os principais métodos de
abordagem para o tema proposto.
O capítulo III discute a metodologia emprega para se desenvolver o trabalho,
detalhando cada etapa e apresentando o modelo computacional.
O capítulo IV apresenta e analisa os resultados conseguidos com os testes do modelo
computacional.
O capítulo V conclui o trabalho e sugere os próximos passos para trabalhos futuros.
II
REVISÃO BIBLIOGRÁFICA
2.1.
O problema da sintonia de controladores
Controle de processos é um campo do conhecimento de Engenharia. Ele é fortemente
relacionado à operação e à instrumentação. A operação, de uma forma abrangente, sempre
envolve algum modelo do processo: é a prática da engenharia de modelos de processo. A
instrumentação, por sua vez, é uma importante área da engenharia do equipamento, voltada
para os dispositivos que permitem realizar a tarefa de regulação do processo.
Antigamente, mecanismos físicos permitiam a implementação de controle com ação
sobre uma válvula para regular alguma propriedade medida do processo. Estes tipos de
controladores normalmente contribuíam apenas com uma ação proporcional ao erro verificado entre o
valor desejado e o medido para a propriedade regulada.
Algumas décadas mais tarde, três parcelas seriam adicionadas a um controlador
industrial: uma de proporcionalidade direta a cada novo erro, outra de proporcionalidade à
soma acumulada do erro e uma terceira de proporcionalidade à taxa de variação do erro,
compondo uma lei de controle denominada proporcional + integral + derivativa (PID) que
descreve o comportamento de boa parte dos dispositivos de controle mais simples.
Atualmente, com a informatização da instrumentação, outras leis de controle podem
ser codificadas em computadores de diversos portes. Em comparação com a tão simples lei
PID, única possível antigamente, algumas das atuais merecem o nome de leis avançadas de
controle, algoritmos de controle avançado. Muitas dessas leis são de fato complexas e são
programadas em computadores de maior porte. As leis mais complexas normalmente regem
tarefas de uma natureza mais ligada à otimização e supervisão.
Para tarefas regulatórias mais simples, ainda continua sendo programada nos
computadores a antiga e útil lei PID. Esse é o caso dos controladores que regulam vazões,
temperaturas e pressões.
O controle avançado inclui diversos parâmetros numéricos que devem ser ajustados. O
controlador regulatório inclui as três constantes de proporcionalidade (PID) que devem
também ser ajustadas. O valor numérico das constantes determina o comportamento dos
controladores, alterando-lhes o desempenho. A escolha dos valores deve sempre atender às
duas grandes questões de controle: o processo sob controle deve sempre ficar estável e o
desempenho do controlador deve ser satisfatório. Estes são os dois aspectos que justificam
todo o conhecimento da denominada teoria de controle clássico. Sintonizar o controlador
significa encontrar valores numéricos para as constantes de proporcionalidade de um
controlador PID de forma a regular o processo com estabilidade e no valor desejado para a
propriedade medida (desempenho satisfatório).
Com o controle avançado, a questão de sintonia do controlador regulatório fica ainda
mais importante, uma vez que o desempenho do controlador PID acaba sendo parte importante
do desempenho final do controle avançado.
Os parâmetros do PID podem ser escolhidos com o auxílio de simulações com valores
escolhidos aleatoriamente, e podem ser encontrados através das regras de Ziegler & Nichols,
que podem não gerar boas respostas e/ou não serem aplicáveis em determinadas plantas.
Existem métodos clássicos para o projeto de controladores, tanto no domínio do tempo,
como no domínio da freqüência (SILVA, 1998) ou por identificação por relé,
(ASTRÖM,1989). Porém, tais métodos não dão nenhuma garantia quanto ao comportamento
em malha fechada da planta em termos de sobre-sinal máximo e tempo de estabilização, a não
ser que o sistema resultante em malha fechada seja de segunda ordem. Portanto, quase sempre
se faz necessário um ajuste fino para encontrar um valor ótimo de parâmetros para
proporcionar uma resposta conjunta próxima a do modelo de referência desejado. Tais ajustes
podem ser feitos de várias formas, dentre elas pode-se destacar a otimização que consiste,
basicamente, em considerar os três parâmetros como variáveis de uma função
quadridimensional desconhecida, que pode possuir vários mínimos locais representando
valores ótimos, ou sub-ótimos de parâmetros que proporcionam uma resposta próxima ao
modelo de referência (HEMERLY,1996)
2.2.
Métodos de sintonia
Os métodos de sintonia de controladores subdividem-se em métodos empíricos,
analíticos e de otimização. A seguir são descritos os principais métodos empíricos e de
otimização usados atualmente.
2.2.1.
Método da sensibilidade Limite
Este método, baseado no ajuste de uma malha fechada até se obterem oscilações com
amplitude constante, utiliza um conjunto de fórmulas para determinar os parâmetros do
controlador, as quais requerem duas medidas do sistema: o Ganho critico (Gu :o ganho mínimo
que torna o processo criticamente estável), e o período de oscilação correspondente, Pu .
Procedimento para a Calibração dos Parâmetros do Controlador
•
Reduzir as ações integral e derivativa ao seu efeito mínimo;
•
Iniciar o processo com ganho reduzido;
•
Aumentar o ganho até que a variável controlada (saída do sistema) entre em oscilações
com amplitude constante, enquanto se provocam pequenas perturbações no sistema.
•
Anotar o ganho, Gu, e o período de oscilação Pu.
Com a obtenção destes valores, podemos calcular os parâmetros do controlador com base nas
seguintes fórmulas dado pela Tabela 2.1:
Tabela 2.1 – Fórmulas do método Sensibilidade Limite
Após uma análise da Tabela 2.1 verifica-se que:
• O ganho proporcional é reduzido 10% quando o modo integral é introduzido, uma vez que
este torna o sistema menos estável.
• Quando o modo derivativo é adicionado, verifica-se um aumento de P e uma redução de Ti
devido ao efeito estabilizador do derivador.
• Os valores de 0.6 Gu e 0.125 Pu são muito conservadores quando não existe ação integral,
uma vez que a ausência desta ultima torna o sistema mais estável, permitindo um aumento do
ganho.
No entanto, este método de calibração apresenta as seguintes desvantagens:
1. As fórmulas acima descritas não garantem uma resposta ótima;
2. Nem todos os sistemas podem entrar em oscilação, ou não é desejável.
Foi assim desenvolvido um outro método, para fazer face ao primeiro problema
referido, designado por Método da Sensibilidade Limite Modificado. Neste método o ganho é
ajustado através de um procedimento de tentativa e erro até que uma determinada “resposta
desejada” seja atingida. A “resposta desejada” mais comum é o “Amortecimento do Quarto de
Amplitude”, em que o ganho é ajustado para que a amplitude de cada pico seja um quarto da
do pico anterior.
O método modificado apenas necessita da medida do período último, Pu, que é
utilizado para o cálculo de Ti e Td. Uma vez estes parâmetros ajustados, o processo é
perturbado com uma pequena alteração na entrada de referência (salto), sendo a saída
observada e o ganho ajustado, seqüência que será repetida até que a resposta verifique o
critério do Amortecimento do Quarto de Amplitude. Este método é bastante fiável e pode ser
aplicado em vários tipos de processos.
Partindo do período último, os ajustes dos parâmetros são feitos de acordo com a seguinte
Tabela 2.2:
Tabela 2.2 - Método da Sensibilidade Limite Modificado
Na prática, a existência de overshoot pode não ser tolerada, uma vez que a alteração da
dinâmica do sistema pode conduzir o sistema à instabilidade.
2.2.2.
Método da Curva de Reação
O procedimento normal no ajustamento dos parâmetros por este método, consiste na
abertura da malha para que não haja realimentação e na obtenção da sua resposta a uma
variação salto(amplitude M) na entrada de referência(SP). A resposta deverá ter uma forma em
S (em situação contrária o método não é aplicável) como ilustrado na Figura 2.1.
A curva em S4 pode ser caracterizada por duas constantes, o atraso L e a constante de
tempo T, sendo estas determinadas se fizermos passar uma tangente pelo ponto de inflexão da
curva. Nos pontos onde a tangente intercepta o eixo das abscissas e a linha horizontal com
ordenada k, obtemos L e T, respectivamente.
Figura 2.1 – Método da Curva de Reação
Uma vez obtidos experimentalmente L, T e N5 (declive máximo = K/T), podemos
recorrer à tabela seguinte para determinar os valores dos parâmetros dos controladores.
Tabela 2.3 – Método de curva de reação
Cohen e Coon recorreram a esta relação para determinar os valores teóricos dos
parâmetros dos controladores. Estes dependem das constantes da função de transferência Kc, L
e T , que podem ser medidas na curva de resposta. L é o tempo de atraso, Kc é o ganho
estacionário, isto é, Kc=K/M, e T, que é a constante de tempo do sistema, é diretamente
proporcional ao valor final da resposta e inversamente proporcional a N, isto é, T = Kc/N.
Para verificar se a aproximação a um sistema de primeira ordem com atraso é válida,
deve ser determinado o intervalo de tempo que medeia entre L e 0.632*K, o qual deve ser
aproximadamente igual a T, com um erro máximo de 15%. Se a aproximação não se verificar,
porque a tangente ao ponto de inflexão não foi desenhada corretamente ou porque existem
não-linearidades no sistema. Nesta ultima situação a aproximação não será válida. O
ajustamento dos parâmetros é feito com base na seguinte tabela em que R, razão de atraso, é
definida como:
R = L/T=NL/K
(2)
Tabela 2.4 – Ajuste de parâmetros
A principal vantagem deste método (Curva de Reação), relativamente ao anterior devese ao fato de, uma vez determinada a curva de reação do método, os parâmetros poderem ser
ajustados imediatamente. Esta vantagem é particularmente útil em processos muito lentos, em
que pode passar muito tempo até que o sistema atinja a estabilidade critica.
A sua principal desvantagem decorre de grande parte dos sistemas serem mais
complexos do que um simples sistema de primeira ordem com atraso, o que significa que é
ainda necessário um último ajuste no ganho antes de se poder considerar que a resposta do
sistema é “aceitável”.
Existem diversas variações aos métodos acima expostos. Note-se como exemplo o fato
de grande parte dos fabricantes fornecerem instruções relativas à sintonização dos seus
controladores.
É importante realçar que não existem conclusões gerais relativas à exatidão ou aptidão
destes métodos empíricos. A única inferência possível é que estes métodos conduzem a
primeiras aproximações dos parâmetros dos controladores, que se podem considerar
“razoáveis”, e que os valores obtidos podem necessitar de posteriores ajustamentos para fazer
face à especificidade de cada sistema, até que “performances” ótimas sejam atingidas.
2.2.3.
Método de Ziegler e Nichols
O princípio dos métodos baseados em malha fechada é o de se trabalhar com margem
de segurança, escolhendo para o ganho proporcional um valor suficientemente afastado do
ganho limite. Uma margem dê segurança típica pode ser de 50%, ou seja, reduzir o ganho
último pela metade, promovendo uma dessintonia do controlador para afastá-lo do limiar da
instabilidade,Ziegler e Nichols propuseram margens de segurança conforme Tabela 2.5.
Tabela 2.5– Método de .Ziegler e Nichols
Há três classes propostas:
• cálculo de kc (controlador só proporcional);
• cálculo de kc e τi (controlador proporcional e integral);
• cálculo de kc , τi e τ d (controlador proporcional, integral e derivativo).
2.2.4.
Método de Otimização Multidimensional
As curvas geradas pelas plantas, em resposta ao degrau unitário, podem ser
representadas por funções a serem otimizadas. Porém, essas funções são desconhecidas. Há
inúmeros métodos de otimização multidimensionais, porém a maioria apenas se aplica a
funções que sejam conhecidas, visto que necessitam extrair o gradiente das mesmas. Foi
escolhido, para implementação no programa computacional, o método dos poliedros flexíveis,
que é um método multidimensional e que não utiliza o gradiente da função,
(NASCIMENTO,1997),(MATEUS 1986).
O Método dos Poliedros Flexíveis, para uma função bi-dimensional, funciona da
seguinte forma: são necessários três pontos, 01 (um) além da dimensão da função; esses
pontos devem formar um poliedro, que no caso é triangular. Com o valor da função em cada
ponto, descobre-se o pior ponto, em seguida é calculado o centróide da face oposta a esse pior
ponto e há um rebatimento desse ponto, fazendo uma reflexão baseada nesse centróide.
Fazendo isso, é gerado um novo triângulo, onde é descoberto um novo pior ponto e repete-se a
operação do rebatimento. Esse processo poderá se repetir até um critério de parada que pode
ser realizado tirando-se a norma da soma dos vetores de ponto com exceção do pior ponto. O
ponto de mínimo é retirado através da média aritmética dos pontos. Em suma, “a idéia básica
no método dos poliedros flexíveis é deformar, a cada iteração, um poliedro, de modo que este
caminhe em uma direção descendente”, (NASCIMENTO,1997).
Outras operações realizadas pelo método, além da reflexão, são: a expansão, a
redução e a contração, as quais servem para deformar o poliedro em cada iteração. A
expansão proporciona um aumento do poliedro para tentar circular o mínimo. A contração e a
redução proporcionam uma diminuição do poliedro, sendo que na redução são modificados
todos os pontos, menos o melhor; e na contração é modificado apenas o pior ponto. Todas
essas quatro operações realizadas pelo método possuem coeficientes - α, γ ,δ e β respectivamente para a reflexão, expansão, redução e contração. Esses coeficientes servem
para incremento dos pontos para a iteração seguinte.A figura 2.2 mostra um gráfico com as
curvas de nível de uma função desconhecida e a aplicação do método, nos moldes da descrição
realizada no parágrafo anterior, para uma função bi-dimensional. É uma representação gráfica
da idéia do método dos Poliedros Flexíveis, (NASCIMENTO,1997).
Figura 2.2: Representação da idéia do Método dos Poliedros Flexíveis.
Fonte: (SILVA,1998)
Na figura acima podemos destacar que o ponto w01 é o pior da série de três pontos
iniciais designados para entradas. No segundo passo, aparece um novo ponto w11 e
permanecem os dois pontos “bons” – w02 e w03 – quando que no terceiro passo, podemos
facilmente ver que o pior ponto será o w12, e assim por diante. Essa é a idéia do método o qual
será descrito a seguir pelo seu algoritmo, na figura 2.3 (YONEYAMA, 1997)
Figura 2.3 – Pseudocódigo do método dos poliedros flexíveis
Fonte: (SPANDRI, 2003)
2.2.5.
Métodos baseados em desempenho ótimo com malha fechada
Outra forma de sintonizar controlador PID consiste em pesquisar valores das
constantes kc,
τi e τ
d
que minimizem um erro de desempenho. Um erro de desempenho
decorre do fato de que qualquer ajuste promovido por um sistema de controle levar um tempo
para se concluir e, ao longo desse tempo, acumulam-se erros de controle (valor desejado – setpoint – menos valor medido).
Na Figura 2.4 mostra-se o desempenho de um controle para uma entrada de degrau
unitário.
Figura 2.4 – Gráfico de desempenho de um controlador PID
Fonte: (SPANDRI,2003)
Para o transiente de ajuste como um todo, pode-se integralizar também o valor
absoluto ou quadrático dos erros instantâneos, do que resulta um erro acumulado, global,
integrado, que depende dos valores das constantes de rapidez de ação do controlador PID (kc ,
τi e τ d ). Esse erro global é denominado integral (soma acumulada) do valor absoluto dos erros
instantâneos (IAE – integral of absolute errors) ou integral (soma acumulada) do valor
quadrático dos erros instantâneos (ISE – integral of squared errors). Há um conjunto de
valores para kc ,
τi e τ d que minimiza esse erro integrado de simulação. Esses três valores
ótimos podem ser encontrados simulando o processo várias vezes (diversos kc ,
τi e τ d ),
conforme algum método de busca numérica do mínimo da função erro.
À primeira vista, esta classe de métodos é muito atraente e, de fato, eles são métodos
criteriosos, cuja investigação vale a pena. Entretanto, cabe refletir sobre duas observações
importantes.(SPANDRI,2003).
1. O erro acumulado ao longo do tempo inclui parcelas de erros, por assim dizer, mais
inevitáveis que outros, bem como parcelas de erros mais críticos que outros. Por
exemplo, os erros iniciais da figura 2.4 (mais próximos do instante inicial - tempo
zero) são uma fatalidade decorrente da inércia inicial do sistema, que precisa ser
reconduzido para uma nova condição (alteração de set-point). Para tempos maiores, os
erros são mais evitáveis e devem mesmo ser eliminados, pois sua persistência pode ser
crítica (ou, no mínimo, indesejável). Constatações desse tipo podem ser levadas em
conta através de uma função ponderal que estabeleça pesos para uma soma ponderada
dos erros acumulados ao longo do tempo: erros iniciais podem ser menos ponderados
(maior irrelevância de erros mais inevitáveis) e erros posteriores podem ser mais
ponderados (maior criticidade de erros mais corrigíveis). A escolha da função ponderal
é bastante particular para o processo e subjetiva do engenheiro que está aplicando este
método. Uma proposta comum é escolher o próprio tempo como função ponderal
(tempos menores, pesos menores e vice-versa), o que é conhecido como método de
integral (soma acumulada) do valor quadrático dos erros instantâneos ponderados pelo
tempo (ITSE – integral of time-weighted squared errors). Outras propostas são
possíveis e essa é uma questão aberta.
2. O erro que é acumulado refere-se ao valor de variável de processo em relação a um
valor desejado. O caso analisado é o de alteração deliberada do valor desejado, ou seja,
o caso em que se deseja promover uma migração do ponto operacional do processo
(caso servo-mecanismo, alteração de set-point).Entretanto, o caso mais comum é o de
controladores atuando para manter o sistema em um ponto operacional definido,
rejeitando perturbações aleatórias a que o processo está sujeito (caso regulatório, set-
points constantes). Esse tipo de atuação é aquela a que o controlador está mais sujeito o
tempo todo. Neste caso, o critério de erro da otimização fica dependendo da forma
escolhida para a perturbação, perturbação que, na prática diária, é extremamente
aleatória em forma e intensidade. A escolha de uma perturbação típica é também
bastante particular para o processo e subjetiva do engenheiro. As numerosas propostas
possíveis fazem dela uma questão aberta. Essas observações mostram a importância
tanto da experiência prática para classificação dos erros de controle quanto do
conhecimento profundo do processo a ser controlado e das condições a que está
tipicamente sujeito. Essa experiência prática e esse conhecimento do processo formam
uma base heurística fundamental para a tarefa de sintonia de controladores.
2.3.
Os Algoritmos Genéticos
À medida que os computadores vão se tornando mais velozes e com grande capacidade
de armazenamento de informações, a área de Inteligência Artificial Aplicada (IA) vem
despertando interesse crescente dos meios científicos e industriais. As redes neurais e
conjuntos nebulosos têm sido os principais focos de pesquisas aplicadas à área de automação
industrial e controle de processos. Outro paradigma que tem chamado a atenção dos
pesquisadores da área de IA são os algoritmos genéticos (AG), em especial dos engenheiros de
controle que procuram a otimização de funções. Os AG apresentam uma alternativa baseada
no princípio da reprodução genética que garante a identificação de um mínimo (ou máximo)
global de uma função.
Os Algoritmos genéticos são sistemas adaptativos que imitam alguns mecanismos
observados na evolução natural das espécies. Os primeiros passos neste campo foram dados
por John Holland no início dos anos 70, que acreditou ser possível resolver alguns problemas
através de processos de evolução semelhantes.Da Genética sabe-se que os seres vivos têm, no
núcleo das suas células, moléculas de DNA onde estão gravadas as suas características. Estas
moléculas são por sua vez constituídas por cromossomas. Em cada cromossoma encontram-se
os genes organizados em cadeias.Durante a reprodução sexual existe troca de material
genético entre os dois progenitores, originando novos cromossomas que combinam as
características dos cromossomas pais.
Menos frequentemente ocorrem mutações ao nível dos genes. São pequenas alterações
acidentais ou induzidas, que poderão ter repercussões nas características do novo ser. O
fenômeno da mutação tem uma probabilidade muito reduzida. Quando acontece, o gene de um
filho fica diferente do gene correspondente de ambos os pais. Uma reprodução sem mutações
implica que cada gene do cromossoma do filho seja igual ao correspondente gene de um dos
pais.
Da evolução natural das espécies, sabe-se que os indivíduos mais adaptados ao meio
ambiente têm maior probabilidades de sobreviverem e de se reproduzirem. Assim, a sua
informação genética será herdada por mais descendentes e terá menor probabilidade de se
perder. Estas características retiradas da própria evolução das espécies serviram de inspiração
para a criação dos algoritmos genéticos. Usando sequências binárias que se designam por
cromossomas, e que representam possíveis soluções para um problema, simula-se a evolução
natural criando novas sequências através da reprodução das já existentes.
2.3.1.
Algoritmo Genético Canônico
É habitual designar como canônico o algoritmo genético definido por Holland que tem
as seguintes características:
•
Representação binária – os cromossomas são sequências de 0´s e 1´s.
•
Operadores genéticos (fazem a recombinação dos cromossomas) – cruzamento,
mutação e inversão.
•
Existência de uma função de avaliação que mede a qualidade de um cromossoma em
relação ao problema a resolver. Esta função é a única ligação entre o AG e o problema.
A descrição seguinte é um AG suficientemente genérico para abranger a maioria de
implementações deste tipo de algoritmos.
1. Inicializa uma população de cromossomas.
2. Avalia cada cromossoma da população.
3. Cria novos cromossomas cruzando os cromossomas atuais; aplica mutação e
recombinação quando os cromossomas pais se cruzam.
4. Apaga cromossomas da população para arranjar espaços para os novos.
5. Avalia a qualidade dos novos cromossomas e insere-os na população.
6.
Se o critério de paragem for alcançado pára a execução e retorna o melhor
cromossoma; caso contrário volta ao passo 3.
A população é composta pelos cromossomas existentes no início do passo 3 da
descrição. Em cada ciclo uma nova população é criada através da substituição de alguns, ou
mesmo de todos os cromossomas da antiga população por novos cromossomas criados através
da recombinação genética.
O critério de paragem do passo 6 pode ser definido de várias formas:
•
A solução para o problema foi encontrada.
•
No caso de existirem várias soluções a melhor foi encontrada.
•
No caso de existirem várias soluções foi encontrada uma dentro de uma vizinhança em
relação à melhor.
•
O número predefinido de gerações foi esgotado.
Um cromossoma representa uma solução para o problema proposto, logo deve conter
informação suficiente de modo que a sua qualidade possa ser avaliada depois de decodificado.
O cromossomo é constituído por genes e ao valor que a decodificação de cada gene retorna dáse o nome de alelo.
A codificação no AG canônico é binária e a sua dimensão é dada pelo número de bits
que o constituem. A própria complexidade da decodificação está associada ao problema que
se pretende resolver.
2.3.2.
Operadores Genéticos
Os operadores genéticos são os responsáveis pela evolução da qualidade das soluções,
durante a execução do algoritmo. O cruzamento é o responsável pela convergência dos AGs.
A mutação tem como objetivo introduzir e manter variedade genética. O operador inversão usa
apenas um cromossoma para gerar um novo, invertendo a ordem de alguns bits. Os
cromossomos para a reprodução são escolhidos em função da sua qualidade. Melhores
cromossomas têm maior probabilidade de serem escolhidos, propagando boas sequências
genéticas pela população e contribuindo para a evolução da qualidade geral da mesma.
2.3.3.
Cruzamento
O cruzamento é o responsável pela criação de novos cromossomas através da
recombinação do material genético de dois cromossomas já existentes na população. Dos
vários tipos de cruzamento existentes salientam-se três que se podem considerar os mais
genéricos – cruzamento uniponto, cruzamento multiponto e cruzamento uniforme. Na Figura
2.5 pode observar-se a representação uniponto. O ponto de cruzamento é escolhido
aleatoriamente. Os filhos herdam os bits de um dos pais até ao ponto de cruzamento e a partir
deste, os bits de outro pai.
Figura 2.5 – Representação do Crossover uniponto
Semelhante ao cruzamento anterior existem os cruzamentos multiponto mas com
vários pontos de cruzamento conforme se pode observar na Figura 2.6.
Figura 2.6 – Representação do Crossover multiponto
No cruzamento uniforme, é gerada uma máscara aleatória que indica quais os genes
dos dois cromossomas que vão ser trocados
Figura 2.7 – Representação do Crossover Uniforme
O cruzamento é considerado como o verdadeiro responsável pela evolução da
qualidade das populações do cromossomas. O fato de recombinar os bits dos melhores
cromossomas implica que as melhores sequências genéticas da população se propaguem
criando novos cromossomas que exploram o espaço de procura em direção às melhores
soluções. Estes processo corre, no entanto, o risco de ficar preso em máximos locais e outras
operações são necessárias para garantir diversidade na população.
2.3.4.
Mutação e Inversão
A mutação tem como objetivo assegurar a diversidade genética de uma população de
cromossomas. Usando apenas cruzamentos pode chegar-se a um ponto em que 1 dos bits do
cromossoma tem o mesmo valor em toda a população. Se a determinada altura todos os
cromossomas tiverem o primeiro bit a 1 e a melhor solução tiver necessariamente esse bit a 0
o AG, usando cruzamentos, nunca atingirá essa solução. Esse problema pode ser resolvido
com mutação que, normalmente com uma probabilidade muito baixa, altera o valor de um bit.
Por outro lado um valor muito alto da mutação pode danificar boas sequências
genéticas e tornar o AG numa procura quase aleatória.
Figura 2.8 – Representação da mutação
2.3.5.
Avaliação e Seleção de Cromossomas
A avaliação da qualidade de um cromossoma e da solução representada por ele é feita
por uma função de avaliação (Fitness Function). A função de avaliação é a única ligação que o
AG canônico tem com o problema que se pretende resolver. Os valores retornados pela função
de avaliação são de seguida, argumento da função de escalonamento (fitness scaling function).
Esta função tem como objetivo escalonar a qualidade dos cromossomas dentro de um intervalo
definido. O valor que a função de escalonamento retorna – é usual denominar esse valor por
mérito – é usado na seleção de cromossomas que se cruzam para gerar descendência. Quanto
maior for esse valor, maior probabilidade o cromossoma tem de ser escolhido. Existem vários
métodos para selecionar o cromossoma segundo a sua qualidade. Um dos mais usados é o
método da roleta. Com esta técnica, a probabilidade de um cromossoma ser escolhido é
diretamente proporcional ao valor do seu mérito.
2.3.6.
Parâmetros de um Algoritmo Genético
A determinação dos valores mais adequados para os parâmetros, de modo a maximizar
o desempenho do algoritmo, é uma questão que deve ser ponderada antes da implementação
final do AG. Estes parâmetros são:
•
Codificação do cromossoma: Normalmente binária ou real.
•
Tamanho da população: O número de cromossomas da população afeta o desempenho
do AG. Populações pequenas podem levar à convergência para máximos locais devido
à reduzida diversidade genética. Por outro lado se o tamanho da população for muito
grande pode levar a que o AG perca tempo desnecessário a explorar o espaço de
procura.
•
Probabilidade dos cruzamentos: Cada operador tem uma certa probabilidade de ser
usado em determinada altura para produzir novos cromossomas. Dependendo do
problema certos cromossomas são mais ou menos eficazes na evolução da qualidade da
população.
•
Probabilidade de mutação: Uma probabilidade de mutação muita elevada pode levar a
uma procura quase aleatória e uma probabilidade muito baixa pode reduzir a
diversidade genética da população.
•
Função de escalonamento: A função de escalonamento define a probabilidade de os
cromossomas serem escolhidos para se cruzarem. O desempenho do algoritmo é
afetado pelo nível de seletividade da função de escalonamento. Uma seletividade muito
elevada, significando que existe maior diferença de probabilidades entre os melhores e
os piores algoritmos, pode acelerar a convergência do algoritmo mas levá-lo a
convergir para máximos locais ao não explorar corretamente o espaço de procura.
2.3.7.
Melhorias de Desempenho do Algoritmo Genético
Até agora foi analisado com algum detalhe o AG canônico. Esta abordagem inicial do
algoritmo genético pode sofrer alterações de modo a melhorar o seu desempenho. Nesta seção
discutem-se possíveis alterações ao AG canônico bem como as razões que poderão levar à sua
implementação
.
2.3.8.
Usando codificação real
Em algumas situações, as codificações baseadas em strings binários não possuem
um desempenho aceitável, motivo que levou vários pesquisadores a buscar novas formas de
representar o alfabeto de cromossomos. Embora existam argumentos favoráveis à utilização da
codificação binária, como a maximização do paralelismo implícito – a capacidade dos AG
processarem schematas ao invés de cromossomos individuais -, eles não apresentam
desempenho satisfatório em espaços de busca contínuos. Também, devido à redundância, a
decodificação pode não pertencer ao domínio do parâmetro original. Uma alternativa para
espaços de busca contínuos é a codificação real, que abre a possibilidade de se trabalhar com
grandes domínios para as variáveis (genes). Esta alternativa apresenta soluções muito
próximas da formulação natural dos problemas e evita processos de codificação/decodificação,
o que conduz ao aumento da velocidade dos AG (Herrera, 1996).
Em um alfabeto real, um cromossomo é um vetor, onde seus elementos são números de
ponto flutuante, sendo o próprio cromossomo uma solução do problema. Além do mais, os
valores dos genes dos cromossomos são mantidos dentro de um intervalo estabelecido pelas
variáveis que eles representam. Tal requerimento deve ser observado pelos operadores
genéticos. A literatura apresenta vários modelos que satisfazem às restrições anteriores.
Como argumentos em favor da codificação real, Herrera (1996) cita:
1. A possibilidade de trabalhar com grandes domínios para as variáveis, o que é difícil
atingir em implementações binárias, onde o aumento do domínio pode significar
sacrifício da precisão;
2. A capacidade de explorar a “gradualidade” das funções com variáveis contínuas. O
conceito de gradualidade refere-se ao fato de que pequenas alterações nas variáveis
correspondem a pequenas mudanças nas funções;
3. A capacidade de ajuste local das soluções, como conseqüência do item anterior;
4. A representação das soluções é muito próxima da formulação natural de muitos
problemas, ou seja, não há diferenças entre o genótipo (codificação) e o fenótipo
(espaço de busca);
5. Os processos de codificação/decodificação, necessários nos alfabetos binários, são
evitados, aumentando a velocidade dos AG.
2.3.9.
Parâmetros e Inicializações
Normalmente a comparação entre os AGs é feita através do número de cromossomas
que foram avaliados até se atingir a solução ótima ou até se atingirem soluções com
equivalente qualidade. A medida ideal seria o tempo de execução, mas isso implicaria que os
AGs a comparar teriam de ser executados na mesma máquina depois de implementados com o
mesmo software.
A eficácia do AG canônico, devido à sua concepção e representação binária, pode ser vista
como a relação entre número de avaliações e espaço de procura. Num AG com codificação
binária o espaço de procura é dado por:
Dimensão_espaço_procura = 2 dimensão do cromossoma
Quanto menor for a relação avaliações/espaço_procura, mais eficaz é o AG, porque
necessitou de uma menor exploração do espaço de procura para encontrar a solução.Outra das
medidas a ter em conta é a possibilidade da representação de um cromossoma não ser
obrigatoriamente binária, existindo casos em que uma representação de inteiros ou de reais
pode ser vantajosa.
No AG canônico os cromossomas da população inicial são gerados de forma aleatória.
No entanto, em alguns problemas pode ser vantajoso fazer a inicialização segundo uma
determinada heurística de modo a minimizar violações de algumas restrições. Por outras
palavras, trata-se de uma iniciação não aleatória. Esta técnica afasta-se do AG canônico na
medida que usa informação relativa ao problema noutro módulo para além do de avaliação.
2.3.10.
Operadores Genéticos
Como as operações de cruzamento se baseiam em troca de genes dos cromossomas
(independentemente destes serem binários, inteiros ou fracionários), os três tipos de
cruzamento definidos anteriormente, para a representação binária, podem também ser
utilizados na representação numérica – cruzamento por média. Este tipo de cruzamento, parte
de dois cromossomas para produzir um único. Os genes do cromossoma filho são o resultado
da média dos genes dos cromossomas pais.
Em relação às operações de mutação, as diferenças já são muito notórias. A mutação
de um gene em binário corresponde à sua inversão. A mutação de um valor numérico já
implica a substituição por outro valor.
A escolha dos operadores, juntamente com a determinação da função fitness e da
apropriada representação dos cromossomos, são determinantes para o sucesso de um AG. Os
operadores genéticos fornecem o mecanismo básico de busca dos AG. Eles são usados para
criar novas soluções baseadas nas soluções existentes na população. A literatura apresenta
uma boa variedade de operadores genéticos de crossover e mutação. No caso da codificação
real, é possível encontrar vários operadores em Houck(1996) e Herrera1996). Michalewicz
(1994, apud Houck, 1996) fez vários testes comparando algoritmos de codificação binária e
real, mostrando que este último grupo é uma ordem de magnitude mais eficiente em termos de
CPU.
2.3.11.
Reparações e Seleção
Por vezes os cromossomas gerados não representam soluções válidas para o problema.
Existem duas abordagens que se podem utilizar nestas situações de modo a minimizar a
propagação de más sequências genéticas.A primeira consiste na penalização dos cromossomas
que representam soluções inválidas. Pretende-se deste modo atribuir uma probabilidade muito
pequena a estes cromossomas de serem escolhidos para as operações genéticas.
A segunda consiste no uso de algoritmos de reparação para validar o cromossoma.
AGs deste tipo são considerados híbridos porque incluem processos para encontrar soluções
que não se baseiam exclusivamente na evolução natural.
O método da seleção da roleta implica que o melhor cromossoma tenha maiores
probabilidades de ser escolhido, mas não garante que seja efetivamente escolhido. Mesmo que
tal aconteça não é seguro que o melhor indivíduo transite para a geração seguinte já que a
técnica de reprodução pode levar à sua eliminação. Para garantir que os melhores elementos
de uma população não são eliminados existe um operador designado por elitismo que coloca
automaticamente os melhores elementos de uma geração na geração seguinte.
2.3.12.
Domínios de Aplicação
Se o problema para o qual se pretende encontrar uma solução for representado por uma
função com apenas um máximo, os métodos determinísticos encontram a solução qualquer
que seja o ponto de partida. No entanto se a função que representa o problema apresentar além
do máximo absoluto um máximo local, o sucesso de procura já não é garantido uma vez que o
êxito vai depender do ponto de partida da procura. Se estiver na vizinhança do máximo local,
então a procura tende a caminhar para esse ponto. Uma vez atingido esse ponto, não existe
processo pelo qual o método encontre o máximo absoluto. Um AG pode contornar este
problema porque além de iniciar a procura em vários pontos, tantos quantos os cromossomas
da população inicial, possuem mecanismos de procura que não são determinísticos. Apesar
dos processos de seleção orientarem no sentido de soluções melhores, existe sempre uma
componente aleatória que pode levar o AG a explorar novos caminhos e ultrapassar máximos
locais.
No caso de funções com apenas um máximo os métodos determinísticos mostram-se a
escolha mais apropriada, uma vez que os AGs podem explorar desnecessariamente o espaço
de procura.
III
Metodologia
Neste capítulo são apresentadas todas as fases do desenvolvimento do modelo
computacional proposto. O desenvolvimento deste trabalho pode ser divido em 4 fases
distintas, a saber:
•
Definição do problema
•
A fase de modelagem do problema.
•
A fase de codificação e validação do modelo computacional
•
A fase de testes e coleta de resultados
A Metaheurística escolhida para implementar o modelo foi o Algoritmo Genético. Esta
escolha foi baseada levando em consideração a complexidade do problema de sintonia de
controladores e o desempenho do AG na busca de soluções para problemas de tal dificuldade.
As subseções a seguir referem-se ao detalhamento da implementação de cada fase do
desenvolvimento deste trabalho.
3.1.
Definição do Problema
Para avaliação do desempenho do Algoritmo Genético, serão considerados dois
processos controlados por PID, sendo que um deles corresponde a um processo físico real, e o
outro simula um processo qualquer, sem necessariamente representar nenhum sistema físico
em particular, mas que apresenta comportamento típico de sistemas complexos e não-lineares.
Segue a seguir as características de cada processo:
3.1.1.
Processo térmico
Este sistema é classificado segundo a teoria clássica de controle como SISO,
invariante no tempo e de segunda ordem. Simula um processo térmico, apresentado em
Romão (1996). O processo é constituído por dois tanques contendo água, com sistemas de
agitação e conectados através de um cano longo, o qual introduz um atraso de transporte ao
sistema. A temperatura da água, T2(t), no segundo tanque é controlada ajustando o fluxo de
calor, U(t),em um sistema elétrico de aquecimento no primeiro tanque. O volume de água em
cada tanque é mantido constante através de uma linha de fluxo, W, saindo do Tanque 2 e outra
linha de fluxo com a mesma vazão W entrando no Tanque 1.As dimensões e propriedades
físicas para o processo de aquecimento nos tanques são:
Volume dos tanques: V1 = 6514 cm3 V2 = 3767 cm3
Temperatura da água na entrada: T1 = 18,5 oC
Temperatura da água na saída: T2 = 25,2 oC
Temperatura ambiente: Ta = 22,2 oC
Entrada de controle: u(t) = 0,502 KW
Taxa de fluxo da água: W = 3,0 kg/minuto
Na figura 3.1 temos o desenho esquemático do processo em questão.
Figura 3.1 – Sistema de aquecimento de tanque
Fonte: (ROMÃO,1996)
A planta ou processo a ser controlado pode ser representado por uma equação discreta dada
por:
∆T2(t) = 1,034∆T2 (t-1) - 0,259∆T2 (t - 2) + 0,5725∆U(t - 2) + 0,365∆U(t - 3) + N(t) (1)
Onde N(t) representa as incertezas do modelo, imprecisões nas medidas e perturbações.
3.1.2.
Processo sem representação física real
Conforme já mencionado, embora sem representação física real, este sistema apresenta
um comportamento bastante semelhante a sistemas físicos não lineares. A partir de sua função
de transferência no domínio da freqüência, é possível classificar o sistema em SISO,
invariante no tempo e de sexta ordem. Pelo falo deste sistema possuir uma ordem tão elevada,
espera-se que os métodos clássicos de sintonia de controladores não encontrem soluções
satisfatórias.
A representação matemática da função de transferência deste sistema em malha aberta é
expressa por:
FT = 1 + 0,31√( exp(-0.31 t) + 0.25 ) + 0,25 exp(-0,31 t) seno(t) - 0,9 exp(-0,31t) co-seno(t) (2)
3.2.
A fase de Modelagem do problema
Esta fase compreende todas as representações do problema proposto para que se possa
empregar efetivamente do Algoritmo Genético. São constituídas das seguintes sub-seções:
•
Representação da solução
•
Definição da função de Avaliação
•
Definição da Função de Seleção
•
Definição dos Operadores
3.2.1.
A representação da solução:
A representação escolhida para a solução, ou cromossomo no jargão do Algoritmo
Genético, foi a codificação real (ponto flutuante). Embora o algoritmo genético clássico
proponha uma codificação binária para representação da solução, em algumas situações as
codificações baseadas em Strings binários não possuem um desempenho aceitável, motivo que
levou vários pesquisadores a buscar novas formas de representar o alfabeto de cromossomos.
A codificação binária não apresenta desempenho satisfatório em espaços de busca contínuos.
Segundo Romão (1996), uma alternativa para os espaços de busca contínuos é a
codificação real, que abre a possibilidade de se trabalhar com grandes domínios para as
variáveis (genes). Esta alternativa apresenta soluções muito próximas da formulação natural
dos problemas e evita processos de codificação/decodificação, o que conduz ao aumento da
velocidade dos AG (Herrera, 1996).
A solução do problema de sintonia de controladores se encontra no domínio do espaço
contínuo, ficando justificada assim a escolha da codificação como representação da solução.
3.2.2.
A função de Fitness
A função de avaliação utilizada neste trabalho baseia-se na média da variância do erro
gerado entre o sinal de referência e a saída processo. De acordo com Spandri (2003), a sintonia
de controladores baseada na média quadrática dos erros consiste em pesquisar os valores das
constantes (Kp, Ki e Kd) que minimizem um erro de desempenho. Como exemplo, a figura
3.2 ilustra a superfície gerada entre os quadrados dos erros e os parâmetros de um controlador
PI (Kp e Ki), demonstrando que este tipo de função possui um ponto de mínimo.
Figura 3.2 – Gráfico ISE de um controlador PI
Fonte: (SPANDRI,2003)
De acordo com Romão (1996), este tipo de abordagem tem resultados muitos
satisfatório quando a variável de desempenho do sistema mais considerável é a sobre-elevação
nula.
Para gerar o resultado desta função, o processo é simulado considerando a sua
equações de malha aberta e o sinal de controle é gerado segundo a equação convencional do
controlador PID (Coelho & Romão, 1996) utilizando os parâmetros Kp, Ki e Kd obtidos com
o AG. O cálculo da média da variância do erro é dado por:
Média da Variância =1/N ∑ E² (2)
Onde N é o número de amostra dos erros.
3.2.3.
Definição da função de seleção
A função de seleção implementada foi método clássico de seleção da roleta russa sem
nenhuma variação. Para cada indivíduo é atribuindo um ângulo que corresponde à
percentagem do valor da aptidão deste indivíduo em relação aptidão total da população.
3.2.4.
Definição dos Operadores
Como a representação da solução deste modelo é codificada como ponto flutuante, é
necessário definir Operadores Genéticos apropriados para manipular tal representação. Os
Operadores Genéticos considerados nesta implementação são apenas o Operador de Crossover
e o Operador de Mutação.
O Operador de Crossover aplicado neste trabalho é conhecido na literatura como
Crossover Aritmético (Michalewicz, 1994). As equações (3) e (4) ilustram o processo de
crossover usando este Operador.
Onde:
C1 = ß P1 + (1 -ß) P2
(3)
C2 = (1 -ß) P1 + ß P2
(4)
P1 e P2 são cromossomos dos indivíduos pais, ß é um número aleatório entre 0 e 1 e C1 e C2
são descendentes permutados dos pais P1 e P2, sendo que este operador é aplicado a cada
operação em apenas parte dos cromossomos dos pais, ou seja, Kp, Ki ou Kd.
O Operador de Mutação é do tipo Creep, isto é, escolhe um gene a aleatório do
cromossomo do indivíduo e incrementa de uma unidade decimal do gene escolhido. A
equação (5) ilustra o procedimento de mutação adotada.
C = P + 10ª
(5)
Onde a é definido por (6):
a=G–3
(6)
Onde G é um número inteiro aleatório gerado entre 1 a 5.
3.3.
Codificação e validação do modelo computacional
Esta fase do projeto visa transcrever todas as representações feitas durante a fase de
modelagem para código de programação, tendo como principal resultado o modelo
computacional que gerará os dados de análise. Considerações importantes sobre este modelo
são organizadas nas seguintes subseções:
•
A linguagem proposta
•
A estrutura de classes
•
Considerações sobre a simulação do Controle
•
Parâmetros e funcionalidades do AG
•
Validação do Modelo
3.3.1.
A linguagem de programação proposta
A linguagem escolhida para implementar o modelo computacional foi o Java. Os
motivos principais se devem, em primeiro lugar, à portabilidade da Linguagem. Escrever o
código apenas uma vez, e este funcionar perfeito independente da plataforma, é uma idéia
bastante atraente. Em segundo, Java é uma linguagem gerenciada e orientada a objetos,
permitindo uma rápida velocidade de desenvolvimento e uma boa prática de engenharia de
software.
Outro bom motivo, é que já existem muitos dispositivos microeletrônicos que usam
Java embarcado e há potencial muito grande desta tecnologia ser usada até em controladores
industriais no futuro.
3.3.2.
Estrutura de classes
Toda a implementação do Algoritmo genético está estruturada em três classes, a saber:
a classe Individuo, a classe População e classe Operadores.
A classe indivíduo é constituída por todos atributos e métodos que definem o Indivíduo
do AG, ou seja, uma representação da solução, que no caso deste problema, os valores das
constantes Ki, Kd e Kp.
A classe População é constituída por atributos e métodos que definem a população
do AG, ou seja, um agrupamento de indivíduos. Na implementação desta classe ocorre uma
composição de objetos da classe de indivíduos. É nesta classe que estão implementados os
métodos de Seleção, Avaliação e Inicialização da população.
A classe Operadores implementa os operadores genéticos usados pelo AG, sendo eles
os operador de Crossover e Mutação.
O programa também faz uso de mais três classes: Controlador, Planta e Simulação que
implementam as características do processo a controlar.
3.3.3.
Considerações sobre a simulação do controle
A simulação do sistema de controle é feita pelo modelo toda vez que for necessário
avaliar um indivíduo pela função de Fitness. No modelo computacional proposto, a simulação
do sistema de controle é composta pelas classes Controlador, que gera a simulação do sinal
característico de um controlador PID, pela classe Planta, que simula o sinal de saída do
processo a ser controlado, e a classe Simulação que agrega informações específicas da
simulação e a características de desempenho desejáveis do sistema, tais como setpoint,
overshot máximo e taxa de amostragem da simulação.
A figura (3.3) ilustra o diagrama de controle empregado pelo modelo e o papel do AG
nesta simulação.
Figura 3.3 – Digrama de um controle sintonizado por um AG
Fonte:(ROMÃO,1996)
Apesar da figura (3.3) sugerir que é feita uma sintonia on-line do Controlador, ou seja,
em tempo de simulação, o AG gera apenas uma vez as constantes de Kp, Ti e Td para toda a
simulação. O erro acumulado da simulação é armazenado em memória para posterior cálculo
do índice de desempenho da função de Fitness de um indivíduo da população.
Nesta simulação considerou-se como instabilidade do sistema os sinais geradas pela
planta superiores a mil por cento do valor do Setpoint desejável. O modela trata esta situação
como uma exceção e atribui um valor de avaliação nula para o indivíduo que a gerou.
3.3.4.
Parâmetros e funcionalidades do AG proposto
Os parâmetros de um algoritmo genético são a percentagem de Crossover e Mutação, o
número de gerações e o tamanho da população. Para AG proposto neste trabalho, resultados
satisfatórios foram conseguidos usando os parâmetros mostrados na tabela 7:
Tabela 3.1 - Parâmetros do AG proposto
Parâmetro
Valor
Tamanho da População
10
Taxa de Crossover
0,75
Taxa de Mutação
0,05
Número de Gerações
100
Os valores dos parâmetros propostos do AG foram definidos segundo testes realizados
pelo autor e levando em consideração as orientações da literatura.
Outro atributo funcional que caracterizam o AG proposto é a sua inicialização
randômica. A inicialização compreende a etapa de geração de uma solução inicial. Em muitos
casos, concordando com Ramos (2001), os AG's inicializados com soluções iniciais
integralmente aleatórias podem conduzir a resultados insatisfatórios. Uma alternativa a este
tipo de abordagem é inicialização de soluções geradas a partir de uma heurística mais limitada
como descida de encosta. Neste trabalho usa-se a inicialização de soluções aleatórias, porém
definidas dentro de um intervalo de busca considerado pelo autor como razoável para a
exploração inicial do AG, sendo os intervalos de geração inicial entre [0,2],[0,500] e [0,10]
para os valores de Kp,Ki e Kd respectivamente.
3.3.5.
Validação do modelo computacional
Para validar o modelo computacional e certificar que não havia equívocos na
implementação do AG e nem da simulação do sistema de controle, foi usada a seguinte
estratégia:
•
Testar a implementação do AG, com as devidas adaptações na função de Fitness e sem
a implementação da simulação do sistema de controle, num problema de minimização
de uma função repleta de mínimos locais, conforme pode ser visto na figura 3.4.
•
Simular o sistema de controle, sem a implementação do AG, com soluções (Kp, Ki e
Kd) conhecidas e verificar se a resposta gerada pelo simulação é compatível com a
resposta esperada.
Figura 3.4 – Função com vários mínimos locais
A equação da função a ser minimizada pelo AG é dada pela equação mostrada na
figura 3.5:
Figura 3.5 – Equação que representa a função a ser minimizada
Para o teste do AG, foi considerado y = 0, tornando-a bidimensional. Para esta função
só existe um mínimo local no ponto x=0 com valor para F6(0,0) = 0.
Após os testes, que pode ser verificado capítulo seguinte, verificou-se que o AG foi
capaz de chegar a soluções bem próximas da ótima global, com a média de erros igual a 0,002
e desvio padrão 0,001, o que leva a concluir que o AG proposto está bem implementado.
Para a verificação da simulação do controle, o sistema foi excitado com uma sinal de
entrada degrau e com valores de Kp, Ki e Kd conhecidos. O sistema se comportou como se
esperava , estabilizando no setpoint desejado. Comprovando assim que a simulação do sistema
de controle PID está bem implementado.
IV
Resultados Obtidos
Os resultados foram obtidos usando a JVM 1.5, sendo o programa executado num
computador INTEL CELERON 2.4 GHZ, 256 MB de RAM, Sistema Operacional Windows
XP pro.
4.1.1.
Apresentação dos Resultados
Foram realizadas 8 simulações para avaliar o modelo, sendo o índice de desempenho
utilizado o próprio valor da função que se propunha minimizar. Quanto menor o índice MSE,
melhor é a solução para o problema da sintonia de controladores. Os resultados são mostrados
na tabela 8.1
Tabela 8.1 – Resultados das simulações de avaliação do modelo
Kp
0,78
0,51
0,29
0,01
0,28
0,64
-0,05
0,05
Média do erro
Ki
90,32
104,78
95,43
45,19
95,69
107,34
72,06
66,43
0,1375
Kd
0,95
0,73
0,28
0,46
-1,72
5,1
1,32
-1,88
MSE
0,12
0,12
0,12
0,19
0,13
0,11
0,16
0,15
Geração da
melhor solução Teste
1
1
6
2
2
3
1
4
3
5
1
6
4
7
8
8
4.1.2.
Discussão dos Resultados
Os índices MSE conseguidos na simulação são baixos, significando que boas soluções
foram geradas pelo AG proposto.
Foi constatado também que para valores iniciais muito fora dos intervalos definidos
pelo autor, ou seja, ampliando bastante o espaço de busca do AG, há uma forte dependência de
boas soluções iniciais para encontrar uma solução considerada razoável. A partir disso, já é
possível sugerir que uma aplicação interessante do AG proposto seria melhorando soluções
encontradas por outros métodos de sintonia.
Os resultados conseguidos foram simulados em um software gráfico e constatou-se que
o sistema estabiliza no set-point desejado para todos os testes com o mínimo de erro inicial ,
devido praticamente à inércia inicial do sistema.
V
Conclusões e trabalhos futuros
Este trabalho possibilitou a investigação do problema de sintonia de controladores
usando uma Metaheurística, como o AG, como método de solução. Os resultados
comprovaram a eficiência do AG na busca de boas soluções para o PSC, independentemente
da planta que se deseja controlar, desde que se mantenha o modelo de controlador aqui
proposto.
Verificou-se também neste trabalho que a representação da solução codificada em
ponto flutuante facilitou bastante a implementação do modelo computacional e demonstrou ser
adequada à busca de soluções para o PSC.
Para trabalhos futuros, fica a sugestão de melhorar a inicialização do algoritmo
genético aplicando algum outro método heurístico para buscar boas soluções iniciais. Outro
ponto que pode melhorar o desempenho deste AG é a implementação de mais de um tipo de
operador de Crossover no modelo.
Melhoramentos de interface gráfica com o usuário podem ampliar o potencial de uso
do modelo, o tornado mais intuitivo e didático.
REFERÊNCIAS BIBLIOGRÁFICAS
SILVA, G. A., MAITELLI, A. L., ARAÚJO, A. D. Um ambiente para o projeto de
controladores clássicos empregando técnicas de otimização. Anais do XII Congresso
Brasileiro de Automática, vol. VI, pp. 1911-1916, Uberlândia-MG,1998.
ASTRÖM, K. J.; T. HÄGGLUND. PID Controllers: Theory, Design, and Tuning, Instrument
Society of America, 1995.
HEMERLY, E. M. Controle por Computador de Sistemas Dinâmicos. Editora Edgard Blücher
LTDA, São Paulo, 1996.
NASCIMENTO Jr, C. L. e YONEYAMA, T. Inteligência Artificial em Automação e
Controle. São Paulo, 1997.
MATEUS, G. R. & LUNA, H. P L. Programação Não-Linear. Editora Gráfico
Formato LTDA, Belo Horizonte, 1986.
SPANDRI,R. Bol. téc. Petrobras, Rio de Janeiro, 46 (3/4): 383 – 410, jul./dez., 2003.
HOUCK, C.R., JOINES, J. & KAY, M. A genetic algorithm for function optimization: a
Matlab implementation. ACM Transactions on Mathematical Software, Submitted 1996.
MICHAELEWICZ, Z. Genetic Algorithms + Data Structres = Evolution Programs. Springer
Verlag,1992.
ROMÃO, W. & COELHO, A. A. R. Controladores PID adaptativos: algoritmos e simulações.
Cadernos de METEP, Universidade Estadual de Maringá, 1996.
HERREROS, J. M.; BLASCO, M.; MARTÍNEZ, M.; SALCEDO, J. V. Optimal PID Tuning
With Genetic Algorithms For Non Linear Process Models, 15th Trienal World Congress,
2002.
Download

Eduardo Montenegro Castro Junior - Escola de Minas