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.