65ª Reunião Anual da SBPC
B. Engenharias - 1. Engenharia - 8. Engenharia Elétrica
Avaliação de um Algoritmo Genético para a sintonização de parâmetros de controladores clássicos.
Juan Ferreira Vidal - Faculdade de Engenharia Elétrica / ITEC / UFPA
Wendson Campos da Silva - Faculdade de Engenharia Elétrica / ITEC / UFPA
Maria Nadjala Barbosa Ferreira - Faculdade de Engenharia Elétrica / ITEC / UFPA
Thaisse Dias Paes - Faculdade de Engenharia Elétrica / ITEC / UFPA
Thiago Costa Dias - Faculdade de Engenharia Elétrica / ITEC / UFPA
Orlando Fonseca Silva - Prof. Dr. Faculdade de Engenharia Elétrica / ITEC / UFPA
INTRODUÇÃO:
O projeto de compensadores clássicos para o controle de sistemas de primeira ordem pode ser feito através de algoritmos que executam cálculos bem definidos, que levam em consideração as especificações desejadas no projeto, tais como: resposta ao degrau com o erro de regime nulo, resposta sem overshoot e com um determinado tempo de subida. Estes algoritmos tem como entrada o ganho e a constante de tempo da planta que se deseja fazer o controle. Neste trabalho propõe-se a avaliação do desempenho de um Algoritmo Genético (AG) na sintonização dos parâmetros de controladores clássicos. O AG é uma classe dos algoritmos evolucionários. É uma técnica heurísticas de otimização local e /ou global que se baseia em conceitos da evolução das espécies tais como seleção natural, mutação e reprodução que, segundo a idéia proposta por Darwin, dependem de como bem adaptado ao ambiente está o individuo. O algoritmo foi implementado na linguagem de programação Java utilizando a IDE Netbeans. Nesse trabalho a avaliação é feita levando em consideração se o AG consegue convergir para parâmetros que atendam as especificações de projeto.
OBJETIVO DO TRABALHO:
Esse trabalho teve como objetivo a construção de um Algoritmo Genético utilizando programação orientada a objeto na linguagem de programação Java, no ambiente de programação Netbeans, bem como fazer sua avaliação na busca de soluções ótimas para o problema de projeto de controladores.
MÉTODOS:
As possíveis soluções numéricas do problema foram representadas em números binários, onde as cadeias de bits são chamadas de cromossomos e os bits que a formam são conhecidos como genes e a sua posição na cadeia é o lócus gênico. Utilizando conceitos de Programação Orientada a Objeto, foram criadas duas classes para modelar o Algoritmo Genético, a primeira classe é responsável por criar de forma aleatória o cromossomo (possível solução do problema), e nela são definidos os métodos dos operadores genéticos como mutação e crossover, que são aplicados a cada indivíduo solução. A segunda classe é responsável por gerar a população corrente de cada geração contendo 100 cromossomos, e fazer a avaliação e seleção dos melhores indivíduos para que estes se tornem pais e passem as características que os tornaram mais aptos à solução para seus descendentes da próxima geração. O algoritmo recebe como entrada os parâmetros da planta a ser controlada pelo compensador e os parâmetros desejados de resposta do projeto. A cada geração da população os indivíduos se reproduzem e as características vão sendo repassadas para a geração futura, que também é avaliada pela função custo do algoritmo, até que a solução convirga e o melhor valor encontrado da resposta é retornado como saída do algoritmo.
RESULTADOS E DISCUSSÃO:
Como a primeira população de indivíduos criada pelo Algoritmo Genético é feita de forma pseudo-aleatória, o melhor indivíduo da primeira geração teve um desempenho muito longe do ideal, mas suas características foram passadas para a futura população junto com as características dos demais indivíduos que foram escolhidos para se reproduzir. Os indivíduos que foram gerados para formar a próxima geração obtiveram resultados superiores aos seus antecessores e a cada nova população os valores da avaliação foram aumentando. O algoritmo continuou até que um individuo obteve um valor de avaliação aceitável para solucionar o problema. Os parâmetros como tamanho da população, número da geração, tamanho da cadeia binária que representa a solução, a probabilidade de mutação e crossover ao qual está submetido o Algoritmo Genético têm relação direta com o seu desempenho, sendo assim tiveram que ser escolhidas de forma cuidadosa para que ele tivesse um bom desempenho.
CONCLUSÕES:
O Algoritmo Genético mostrou-se eficiente na resolução do problema apresentado. Demonstrando ser uma boa ferramenta na busca de soluções para problemas que possam ser representados utilizando os parâmetros da computação evolucionaria.
Palavras-chave: Algoritmo Genético, Programação Orientada a Objetos,, Controladores clássicos.