193390055 sintonia de controladores pid atraves de algoritmos geneticos
TRANSCRIPT
Uni- ANHANGÜERA - CENTRO UNIVERSITÁRIO DE GOIÁS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
SINTONIA DE CONTROLADORES PID
ATRAVÉS DE ALGORITMOS GENÉTICOS
JESSÉ LIMA SÁ
JHONATHAN DE GODOI BRANDÃO
Goiânia
Dezembro/2011
JESSÉ LIMA SÁ
JHONATAN DE GODOI BRANDÃO
SINTONIA DE CONTROLADORES PID
ATRAVÉS DE ALGORITMOS GENÉTICOS
Trabalho de conclusão de curso apresentado aoCurso de Engenharia da Computação do CentroUniversitário de Goiás, Uni-ANHANGÜERA, soborientação do Me. Murilo Parreira Leal, comorequisito parcial para obtenção do título Bacharelem Engenharia da Computação.
Goiânia
Dezembro/2011
Às nossas famílias
e aos amigos que pulsam por nós.
AGRADECIMENTOS
A minha esposa, Januse Sá, pelo amor despendido e por me tolerar nos momentos mais
difíceis. Aos meus filhos por não me deixarem esquecer de sorrir, com distinção à minha
princesinha, Ingrid, por me mostrar cotidianamente que o verdadeiro amor vai além das palavras
que conseguimos falar. A minha mãe, Cidalina Sá, pela dedicação e carinho. A meu pai, Wilson
Sá, pelos valores, por ter me ensinado a ler antes do início de minha vida escolar, por todos os
livros que me permitiu conhecer, pelo meu senso crítico, meu pensamento analítico e minha
perspectiva de liberdade. Aos meus irmãos consanguíneos pela confiança.
A Stéfano Forte pela amizade gratuita e pela voz divergente que já ampliou minha visão
diversas vezes, inclusive ao sugerir o tema deste trabalho. Ao parceiro Jhonathan Brandão pelos
desafios, pelo respeito e pela paciência. Sei que não sou de fácil convencimento. Ao caro amigo
Carlúcio Pereira pela companhia assídua nesta árdua jornada acadêmica.
A Vinícius Minelli pelo apoio que me oferece sem que eu precise pedir, por ser consorte
nas ideias e pelo phileo. Aos irmãos Marcelo e Leizer Fernandes, pela fé depositada em mim
como ser humano, pelo amor dado às minhas crianças e pelo apoio à minha esposa quando
precisei me ausentar física ou mentalmente.
Aos amigos que nunca sonegaram conhecimento e aos que sempre viram em mim além
do que eu podia ver. Há amigo mais chegado que um irmão (Provérvios 18:24).
Aos comandantes Venício e Walden Prata pelo incentivo há mais de uma década. A este
por discenir tão bem o ser humano em cada um de seus colaboradores. Ao Me. Murilo Leal por
ter aceitado nos orientar e por acreditar neste trabalho. Aos professores que se empenharam em
nos proporciar o melhor.
Ao Projetista Maior pela capacidade de pensar, discernir e criticar, inclusive a Ele pró-
prio.
Jessé Lima Sá
AGRADECIMENTOS
A Deus, por ter sido a maior fonte de energia neste período de grande tensão.
À minha família, por ser o alicerce da minha vida. Em especial ao meu pai, um grande
homem que apesar de todas as dificuldades enfrentadas na vida soube vencer com o mérito de
seu suor. Com ele aprendi que a dedicação e o trabalho são os fatores primordiais para alcançar
os nossos objetivos. À minha mãe pela devoção apresentada para educar com qualidade a mim e
a minha irmã. À minha irmã, pelas grandes parcerias que fizemos em prol dos nossos objetivos,
mesmo nos objetivos mais simples, como “virar” o jogo do Mário.
À minha namorada, Laís F. dos Santos Ferreira, pela paciência e pelo apoio dados a mim
sem que, em nenhum momento, eu precisasse solicitar. Seu amor e carinho foi fundamental
nessa reta final.
Ao meu amigo, parceiro e mentor, Jessé Lima Sá, pelas horas dedicadas em ensinar-me
coisas que nunca aprenderia em curso algum.
Ao Carlúcio Pereira da Silva, grande amigo, pelo incentivo e conhecimento comparti-
lhados.
A todos os outros meus amigos que de alguma forma contribuíram nessa empreitada da
minha vida.
À Instituição e aos professores do Uni-ANHANGÜERA pela fundamentação teórica e
prática oferecida.
E em especial ao professor e meu orientador Murilo Parreira Leal pela orientação fun-
damental na realização deste trabalho.
Jhonathan de Godoi Brandão
"Há sempre a sua versão,
a do outro e a de quem tem razão."
Autor desconhecido.
RESUMO
Este estudo aborda o ponto crítico dos controladores PID: sua sintonia. Com a evolução damicroeletrônica os controladores PID ampliaram sua abrangência e importância nos processosindustriais. No decorrer dos últimos anos, inúmeros debates e pesquisas resultaram em novastécnicas de implementação. Não obstante, apenas uma pequena parte dos controladores estásendo utilizada em sua plenitude, seja por má implementação ou por ajuste inadequado (FAC-CIN, 2004). No transcorrer deste, são fornecidos os conceitos básicos da teoria de sistemasde controle, com ênfase na descrição das ações de controle on-off, proporcional, integral e de-rivativa e nas suas vantagens e desvantagens, culminando na descrição do controlador PID ede sua sintonia pelos métodos da curva de reação do processo e da estabilidade marginal deZiegler e Nichols, também conhecidos como primeira e segunda regras. As principais técnicasde implementação dos algoritmos genéticos e os seus componentes são apresentados: os cro-mossomos, a população, o objetivo e a função de avaliação, a seleção e os operadores genéticosde cruzamento (crossover) e mutação. Subsequentemente, é dado o detalhamento da simulaçãodas plantas e do processo de sintonia, tanto por Ziegler-Nichols como pelo AG, ambos com oauxílio do MATLAB. Finalmente, os resultados obtidos são analisados.
Palavras chave: Planta, Função de Transferência, Ziegler-Nichols, AG, MATLAB.
LISTA DE CÓDIGOS
Código 3.1 Representação matemática da planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Código 3.2 Calculo do ganho crítico e do período da frequência de ressonância . . . . . . . 49
Código 3.3 Simulação do processo de sintonia pelo método da estabilidade marginal de
Ziegler e Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Código 3.4 Função de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Código 1 Algoritmo genético para sintonia de um controlador PID . . . . . . . . . . . . . . . . . 69
Código 2 Plotagem do gráfico 3D da resposta ao sinal em degrau dos indíviduos da
população remanescente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
LISTA DE FIGURAS
Figura 1.1 Controlador centrífugo de velocidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 1.2 (a) Diagrama de blocos de um controlador liga-desliga; (b) diagrama de blocos
de controlador liga-desliga com intervalo diferencial. . . . . . . . . . . . . . . . . . . . . 25
Figura 1.3 (a) Sistema de nível de controle; (b) válvula eletromagnética. . . . . . . . . . . . . . 25
Figura 1.4 Curva do nível h(t) versus t relativa ao sistema mostrado na figura 1.3. . . . . . 26
Figura 1.5 Ação de controle em função do sinal de erro gerada pelo controlador propor-
cional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figura 1.6 Diagrama de blocos de um controlador proporcional. . . . . . . . . . . . . . . . . . . . . . 27
Figura 1.7 Diagrama de blocos de um controlador PID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figura 1.8 Representação esquemática da forma série do controlador PID. . . . . . . . . . . . . 29
Figura 1.9 Representação esquemática da forma paralela do controlador PID. . . . . . . . . . 29
Figura 1.10 Resposta ao degrau unitário com valor máximo de ultrapassagem de 25%. . . 31
Figura 1.11 Curva de resposta em forma de S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figura 1.12 Oscilação sustentada com período Pcr (medido em segundos). . . . . . . . . . . . . . 34
Figura 2.1 Operador de crossover de 1 ponto para codificação binária. . . . . . . . . . . . . . . . 41
Figura 2.2 Operador de crossover de 2 pontos para codificação binária. . . . . . . . . . . . . . . 42
Figura 2.3 Operador de mutação para codificação binária . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 2.4 Algoritmo Genético Simplificado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 3.1 Sistema com controle PID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 3.2 Curva de resposta em degrau unitário mostrando tr, tp, ts, td e Mp. . . . . . . . . . 47
Figura 3.3 Resposta ao degrau unitário da planta 3.1 sintonizada por Ziegler-Nichols. . 51
Figura 3.4 Resposta ao degrau unitário da planta 3.2 sintonizada por Ziegler-Nichols. . 52
Figura 3.5 Resposta ao degrau unitário da planta 3.1 sintonizada pelo AG (com Mp como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 3.6 Resposta ao degrau unitário da planta 3.2 sintonizada pelo AG (com Mp como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 3.7 Resposta ao degrau unitário da planta 3.3 sintonizada pelo AG (com Mp como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figura 3.8 Custo do indivíduo mais aptos através das gerações na planta 3.1 (com Mp
como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figura 3.9 Custo do indivíduo mais aptos através das gerações na planta 3.2 (com Mp
como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Figura 3.10 Custo do indivíduo mais aptos através das gerações na planta 3.3 (com Mp
como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Figura 3.11 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.1 (com Mp como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figura 3.12 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.2 (com Mp como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figura 3.13 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.3 (com Mp como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figura 1 Resposta ao degrau unitário da planta 3.1 sintonizada pelo AG (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Figura 2 Resposta ao degrau unitário da planta 3.2 sintonizada pelo AG (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Figura 3 Resposta ao degrau unitário da planta 3.3 sintonizada pelo AG (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Figura 4 Custo do indivíduo mais aptos através das gerações na planta 3.1 (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figura 5 Custo do indivíduo mais aptos através das gerações na planta 3.2 (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figura 6 Custo do indivíduo mais aptos através das gerações na planta 3.3 (com ts como
custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figura 7 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.1 (com ts como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figura 8 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.2 (com ts como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Figura 9 Resposta ao sinal em degrau dos indivíduos da população remanescente na
planta 3.3 (com ts como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
LISTA DE SIGLAS
ERB Estação Rádio Base
PID Proporcional, Integral e Derivativa
MATLAB MATrix LABoratory
AG Algoritmo Genético
AGC Automatic Gain Control
DNA Deoxyribonucleic Acid
AGTC Adenina, Guanina, Timina e Citosina
KISS Keep It Short and Simple
NFL No-Free-Lunch Theorem
LISTA DE TABELAS
Tabela 1.1 Regra de sintonia de Ziegler e Nichols baseada na resposta em degrau da
planta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Tabela 1.2 Regra de sintonia de Ziegler e Nichols baseada no ganho crítico Kcr e no
período crítico Pcr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Tabela 3.1 Características da resposta transitória na sintonia realizada por Ziegler-
Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Tabela 3.2 Características da resposta transitória na sintonia realizada pelo AG (com Mp
como custo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Tabela 1 Características da resposta transitória na sintonia realizada pelo AG (com tscomo custo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
SUMÁRIO
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1 Sistemas de Controle Automáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1 Definições fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.1.1 Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.1.2 Sistemas lineares invariantes no tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1.3 Função de transferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1.4 Variável controlada e variável manipulada . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1.5 Distúrbios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1.6 Realimentação ou retroação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2 Sistemas de controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.1 Sistemas de controle a malha aberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.2 Sistemas de controle a malha fechada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.3 Sistemas de controle a malha fechada versus sistemas de controle a ma-
lha aberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3 Ações de controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.1 Ação de controle de duas posições (on-off ou liga-desliga) . . . . . . . . . . . . 24
1.3.2 Ação de controle proporcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.3 Ação de controle integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3.4 Ação de controle derivativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4 O controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4.1 Forma série ou interativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4.2 Forma paralela ou não-interativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4.3 Critérios de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.4.4 Métodos de sintonia de Ziegler e Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.4.4.1 Método da curva de reação do processo . . . . . . . . . . . . . . . . . . . . 31
1.4.4.2 Método da estabilidade marginal . . . . . . . . . . . . . . . . . . . . . . . . . 33
2 Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1 Representação cromossômica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2 População . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3 Objetivo e função de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.1 Elitismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.2 Steady-state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5 Operadores genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.1 Crossover ou cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.2 Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.6 Uma versão simplificada do algoritmo genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Desenvolvimento e Análise de Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1 Resposta transitória e as características de desempenho . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Aplicação do método da estabilidade marginal de Ziegler e Nichols . . . . . . . . . . . 48
3.2.1 A representação matemática da planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 O ganho crítico e a frequência de ressonância . . . . . . . . . . . . . . . . . . . . . . . 49
3.2.3 A sintonia do controlador PID através de Ziegler-Nichols . . . . . . . . . . . . . 49
3.3 Implementação do algoritmo genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.1 A função de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.2 A sintonia do controlador PID através do algoritmo genético . . . . . . . . . . 55
3.3.2.1 O sobressinal Mp como parâmetro de custo . . . . . . . . . . . . . . . . 55
3.4 Algoritmos genéticos versus Ziegler-Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Referências Bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Apêndice A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Apêndice B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
17
INTRODUÇÃO
Desde os primórdios o homem percebeu a necessidade de controlar seus processos pro-
dutivos visando minimizar o tempo destinado às suas atividades, maximizando o resultado ob-
tido e aplicando de forma eficiente e cômoda a mão de obra disponível. Assim, a busca por
automatismo dos controles empregados surgiu naturalmente.
A vida contemporânea está repleta de dispositivos e mecanismos que usufruem de siste-
mas automatizados, desde um aparelho telefônico móvel que de forma ubíqua efetua sincroniza-
damente suas mudanças de célula (Estação Rádio Base – ERB) a grandes jatos comerciais com
pilotos automáticos e seus computadores de bordo, os quais são sabidamente imprescindíveis
para a engenharia aeronáutica.
A penetração e transparência de muitos desses sistemas de controles automáticos pode
nos levar a crer equivocadamente que esta é uma área da ciência e engenharia completamente
desenvolvida, em que todos os avanços possíveis já foram alcançados. Na realidade, especial-
mente no meio industrial, há muitos sistemas de controle que não estão otimizados ou carecem
de melhores técnicas de ajustes que não dependam intrinsecamente da experiência de profissio-
nais especializados.
Objetivo geral
Analisar se o uso de algoritmos genéticos em controladores PID é uma alternativa viável
de sintonia. Como parâmetro comparativo serão adotadas as regras de Ziegler e Nichols.
Objetivo específico
Apresentar um referencial teórico com as principais características da função matemá-
tica de três termos, Proporcional, Integral e Derivativa (PID), utilizada como solução em con-
troladores com realimentação em uma enorme gama de problemas de automação e controle; e
fundamentar os conceitos de algoritmos genéticos, um método de otimização global, e a apli-
cação desta técnica na sintonia do controlador PID com o auxílio das ferramentas matemáticas
do software MATrix LABoratory (MATLAB).
18
Justificativa e motivação
A despeito dos recorrentes estudos sobre o algoritmo dos controladores PID, de sua evo-
lução desde a sua concepção em 1935 por Ralph Clarridge e de ser o controlador dominante no
mercado, estudos mostram que apenas uma pequena parte está efetivamente em funcionamento
pleno e otimizado (FACCIN, 2004). Esta percepção se confirma no estado de Goiás, onde o
mercado de automação é crescente e carente de especialistas.
Do ponto de vista acadêmico, o estudo de controladores PID agregado ao de algorit-
mos genéticos é uma excelente forma de consolidar e empregar o conhecimento adquirido nos
anos de faculdade. O uso do MATLAB para geração e análise de resultados se deu por ser um
ambiente matemático-computacional extremamente flexível e de ampla utilização nos meios
acadêmicos, de pesquisa e projetos, pois possibilita abstrair de plataformas tecnológicas, tendo
em vista que são abundantes e diversificadas, oferecendo desprendimento suficiente para apli-
cação do método científico. Por razões similares as que levaram a adoção do MATLAB, deu-se
a escolha do editor LATEX para a produção deste trabalho.
Visão geral
A seção 1 fornece os conceitos básicos da teoria de sistemas de controle, com ênfase na
descrição das ações de controle on-off, proporcional, integral e derivativa e nas suas vantagens
e desvantagens, culminando na descrição do controlador PID e de sua sintonia pelos métodos
da curva de reação do processo e da estabilidade marginal de Ziegler e Nichols, também conhe-
cidos como primeira e segunda regras.
Na seção 2 estão as principais técnicas de implementação dos algoritmos genéticos e os
seus componentes: os cromossomos, a população, o objetivo e a função de avaliação, a seleção
e os operadores genéticos de cruzamento (crossover) e mutação.
A seção 3 traz o detalhamento da simulação das plantas e do processo de sintonia, tanto
por Ziegler-Nichols como pelo Algoritmo Genético (AG) – ambos com o auxílio do MATLAB
– e os resultados da minimização do sobressinal máximo (Mp).
No apêndice A são apresentados os resultados obtidos com o tempo de acomodação (ts)
como parâmetro de custo dos indivíduos do AG.
E, finalmente, no apêndice B está a codificação do AG em linguagem MATLAB.
19
1 Sistemas de Controle Automáticos
James Watt desenvolveu no séc. XVIII um controlador centrífugo de velocidade para
uma máquina a vapor que é considerado um dos trabalhos mais significativos da automação
em virtude de ter sido o primeiro a empregar um controle automático com retroalimentação
(OGATA, 2010; DORF; BISHOP, 2009; FACCIN, 2004).
Através de duas esferas de metal que giravam ao redor de um eixo, o mecanismo asse-
gurava que a variação de velocidade fosse muito pequena. Quando uma carga era aplicada ao
motor e sua velocidade diminuía, reduzindo a força centrífuga, as esferas passavam a girar mais
próximas do eixo fazendo com que a válvula principal fosse aberta. Desta forma mais vapor
era admitido e a velocidade do motor aumentada, devolvendo o sistema ao ponto de operação
desejado (figura 1.1).
Figura 1.1: Controlador centrífugo de velocidade.
Fonte: Dorf e Bishop (2009).
Minorsky, Hazen e Nyquist, dentre outros, são nomes de grande importância nos pri-
meiros estágios de desenvolvimento da teoria de controle. Através de equações diferenciais, em
1922, Minorsky mostrou como determinar a estabilidade de um sistema de controle automático
para pilotar navios. Nyquist, em 1932, apresentou um modo relativamente simples de estabili-
zar sistemas de malha fechada baseados na resposta estacionária de sistemas de malha aberta a
20
excitações senoidais. O termo servomecanismo foi cunhado em 1934 por Hazen para classificar
sistemas de controle de posição a relés capazes de seguir muito próximo uma excitação variável
no tempo (OGATA, 2010).
Ralph Clarridge da Taylor Instrument Companies elaborou em 1935 o controlador de
três termos PID (Proporcional, Integral e Derivativo) que antecipava a variação no sinal de erro,
o qual foi proposto como solução para um problema de oscilação de temperatura na malha de
controle de uma indústria de celulose. Inicialmente denominada de pre-act, a ação derivativa foi
usada somente em casos especiais até 1939, quando o controlador PID Fullscope foi apresen-
tado com uma abordagem totalmente reformulada, sendo adotado como padrão nos sistemas
de controles comerciais da empresa. Neste mesmo ano foi lançada pela Foxboro Instrument
Company no controlador pneumático Stabilog a tecnologia fundamentada na derivada do sinal
de erro, hyper-reset (FACCIN, 2004).
Por operar em uma vasta gama de condições com resultados largamente satisfatórios e
por sua simplicidade funcional, os controladores PID dominam o cenário industrial moderno e
continuam ampliando o seu nicho, pois os constantes avanços da microeletrônica e dos sistemas
microprocessados trazem incessantes e significativos ganhos de desempenho e de qualidade,
além de uma sensível redução de custos e de tamanho físico.
1.1 Definições fundamentais
Há conceitos que amparam qualquer discussão concernente à engenharia de controle
moderno e sobre os quais é imprescindível dar definição. Com esta perspectiva, esta seção traz
as terminologias e definições fundamentais e consagradas, necessárias à abordagem dada neste
trabalho.
1.1.1 Sistemas lineares
O princípio da superposição afirma que a resposta produzida pela aplicação simultânea
de duas funções de determinações diversas é a soma das respostas individuais destas funções. Se
este princípio for aplicável a um sistema e o fator de escala de magnitude (homogeneidade) for
preservado, este é dito linear. Portanto, a resposta às suas diversas entradas pode ser calculada
como o somatório dos resultados individuais de cada entrada (OGATA, 2010; DORF; BISHOP,
2009).
21
1.1.2 Sistemas lineares invariantes no tempo
São ditos sistemas lineares invariantes no tempo aqueles em que os seus coeficientes são
constantes ou somente funções da variável independente (OGATA, 2010).
1.1.3 Função de transferência
A função de transferência de uma sistema liner é definida como a relação entrea transformada de Laplace da variável de saída e a transformada de Laplaceda variável de entrada, com todas as condições iniciais supostas iguais a zero.A função de transferência de um sistema (ou elemento) representa a relaçãodescrevendo a dinâmica do sistema sob consideração. (DORF; BISHOP, 2009,p. 42)
A função de transferência é um método operacional que expressa a equação diferencial
da relação entre as variáveis de saída e de entrada de um sistema. É uma propriedade inerente
ao sistema em estudo, não dependendo da magnitude e da natureza da função de entrada ou de
excitação. No entanto, não fornece qualquer informação relativa à estrutura física do sistema.
Se a função for conhecida, a saída ou a resposta poderá ser analisada para diversas en-
tradas distintas, possibilitando conhecer a natureza do sistema. Mas, se não o for, poderá ser
encontrada experimentalmente através de entradas conhecidas e do exame das respostas corres-
pondentes. Uma vez determinada, a função de transferência fornece uma descrição completa
das características dinâmicas do sistema, qualquer que seja a sua descrição física (OGATA,
2010).
1.1.4 Variável controlada e variável manipulada
Variável controlada é a grandeza ou condição que é medida e controlada. Normalmente
é a saída do sistema. Variável manipulada ou sinal de controle é a grandeza ou condição modi-
ficada pelo controlador, de modo que afete a variável controlada (OGATA, 2010).
1.1.5 Distúrbios
Distúrbio é um sinal que, em geral, afeta de forma adversa o valor da variável de saída
de um sistema (OGATA, 2010).
22
1.1.6 Realimentação ou retroação
Realimentação ou retroação consiste na operação de atuar sobre a variável manipulada
a fim de minimizar a diferença entre a saída real do sistema e a resposta de saída desejada;
para tal é utilizada a comparação entre as funções da variável controlada e o sinal de referência
pré-estabelecido (OGATA, 2010; DORF; BISHOP, 2009).
1.2 Sistemas de controle
Um sistema é uma combinação de componentes que agem em conjunto paraatingir determinado objetivo. A ideia de sistema não fica restrita apenas a algofísico. O conceito de sistema pode ser aplicado a fenômenos abstratos dinâ-micos, como os encontrados na economia. Dessa maneira, a palavra “sistema”pode ser empregada para sistemas físicos, biológicos, econômicos entre outros.(OGATA, 2010, p. 3)
Nos mais diversos ramos de atividades o termo controle é rotineiramente citado. Indis-
tintamente de qual âmbito esta palavra é aplicada, há sempre a concepção de um sistema no qual
sua saída deve ser propositalmente influenciada, ou seja, há sempre uma condição idealizada
como alvo.
Do ponto de vista da engenharia existe a necessidade da construção de sistemas que
controlem processos de produção, qualidade de resultados e variáveis de processo, como pres-
são, temperatura, nível e vazão. Mais ainda, é requerida a mínima intervenção humana, ou seja,
tanto quanto possível, o máximo de automatismo.
Em um mundo no qual os recursos energéticos estão cada vez mais escassos, a busca
por projetos sustentáveis é primordial. Neste aspecto e frente ao atual estágio da tecnologia,
comumente é almejada a construção de sistemas de controle automáticos que minimizem a
demanda de energia, os custos, o tempo de desenvolvimento e a mão de obra empregada. Deste
modo, é indubitável que estes sistemas continuarão permeando de forma irreversível o cenário
industrial moderno.
Há duas categorias de sistemas de controle: sistemas a malha aberta e sistemas a malha
fechada ou com retroação.
1.2.1 Sistemas de controle a malha aberta
Sistemas de controle a malha aberta são aqueles em que o sinal de saída não tem in-
fluência sobre a ação de controle (OGATA, 2010; DORF; BISHOP, 2009). Portanto, não há
23
retroação. A variável manipulada não sofre influência da variável controlada, ou seja, o sinal de
saída não é medido nem tampouco comparado ao de entrada.
Como cada sinal de referência na entrada implica em uma única condição de operação,
a precisão do sistema depende de um bom ajuste inicial. Assim, um novo setup será necessário
tão logo ocorram distúrbios internos ou externos, pois nesta situação, o resultado obtido com o
ajuste efetuado inicialmente, será diferente do esperado.
O controlador semafórico tradicional é um exemplo de sistema de malha aberta. Nele a
variável manipulada é o tempo de cada fase luminosa do semáforo e a variável controlada é o
fluxo de veículos na via. Evidentemente, a maior ou menor quantidade de veículos em trânsito
não causará qualquer variação no tempo da fase semafórica.
1.2.2 Sistemas de controle a malha fechada
Sistemas de controle a malha fechada são aqueles em que, para reduzir o erro e trazer o
valor do sinal de saída ao estágio pretendido, o controlador é excitado pelo sinal atenuante de
erro, o qual é a diferença entre o sinal de retroação e o sinal de entrada. Vale ressaltar que o
sinal de retroação tanto pode ser o próprio sinal de saída como uma função do sinal de saída e
de suas derivadas ou integrais. A expressão controle a malha fechada implica sempre que há
retroação afim de reduzir o erro do sistema (OGATA, 2010; DORF; BISHOP, 2009).
O Automatic Gain Control (AGC) ou Controle Automático de Ganho de uma câmera de
vídeo cinematográfica pode ser tomado como exemplo de sistema a malha fechada. Neste, o
brilho médio da cena em exposição é usado como sinal de retroação para que a imagem captada
seja mantida dentro de um patamar de luminância aceitável ao olho humano.
1.2.3 Sistemas de controle a malha fechada versus sistemas de controle a malha aberta
Via de regra, os sistemas de controle a malha aberta oferecem maior simplicidade e fa-
cilidade de construção e manutenção (OGATA, 2010). São viáveis em situações nas quais é
demasiadamente dispendioso usar o sinal de saída como parâmetro comparativo, sendo requi-
rido o prévio conhecimento do sinal de entrada e a inexistência de distúrbios.
Em contrapartida, pelo uso de retroação, os sistemas de controle a malha fechada tem
uma resposta menos sensível a distúrbios externos e a oscilações dos parâmetros internos
(OGATA, 2010). Contudo, oferecem maior dificuldade para obtenção de uma relativa estabili-
dade, pois são propensos a excessivas correções de erro, o que pode acarretar maiores variações
24
de amplitude com o tempo.
Outra perspectiva dos sistemas de controle a malha fechada é a possibilidade de ser
mantida a exatidão no controle de um determinado processo com o uso de componentes de
menor precisão. Todavia, comparativamente a um sistema similar a malha aberta, os sistemas de
controle a malha fechada possuem um número sensivelmente maior de componentes aplicados,
exigindo maior potência, maiores custos, peso e dimensão.
1.3 Ações de controle
De acordo com (OGATA, 2010), a maioria dos controladores industriais pode ser clas-
sificada de acordo com suas ações de controle, em:
• controladores de duas posições ou on-off ;
• controladores proporcionais;
• controladores integrais;
• controladores proporcionais e integrais;
• controladores proporcionais e derivativos;
• e controladores proporcionais, integrais e derivativos (PID).
1.3.1 Ação de controle de duas posições (on-off ou liga-desliga)
Esta é a ação de controle mais elementar e de relativa simplicidade de implementação.
Sendo muito utilizada tanto em sistemas de controle domésticos quanto em sistemas de controle
industriais. O seu princípio de funcionamento consiste simplesmente no elemento atuante ser
mantido ligado ou desligado (OGATA, 2010).
Na figura 1.2, sendo u(t) o sinal de saída do controlador e e(t) o sinal de erro atuante,
teremos que
u(t) = U1, para e(t)> 0 (1.1)
= U2, para e(t)< 0. (1.2)
onde U1 e U2 são constantes, ou seja, u(t) sempre permanecerá em seus valores máximo ou
mínimo. Usualmente o valor mínimo U2 é zero ou −U1.
25
Figura 1.2: (a) Diagrama de blocos de um controlador liga-desliga; (b) diagrama de blocos de controlador liga-desliga com intervalo diferencial.
Fonte: Ogata (2010).
Para que não ocorram excessivas comutações e consequentemente desgastes desneces-
sários dos componentes do sistema de controle, o sinal de erro atuante deve se deslocar no
intervalo diferencial antes de efetuar a comutação de valores (histerese).
A figura 1.3 mostra o controlador de nível de líquido, um sistema on-off, no qual a vál-
vula eletromagnética é mantida aberta ou fechada, isto é, a vazão de entrada ou é uma constante
positiva ou é nula.
Figura 1.3: (a) Sistema de nível de controle; (b) válvula eletromagnética.
Fonte: Ogata (2010).
Assim, para causar o movimento do elemento atuante, o sinal de saída transita continua-
mente entre os dois limites requeridos, conforme ilustrado na figura 1.4. A chave para um bom
resultado neste tipo de ação é encontrar uma amplitude de oscilação de saída cômoda para os
elementos do sistema.
26
Figura 1.4: Curva do nível h(t) versus t relativa ao sistema mostrado na figura 1.3.
Fonte: Ogata (2010).
1.3.2 Ação de controle proporcional
A ação de controle proporcional nada mais é do que um amplificador com ganho ajus-
tável, ou seja, dependendo do sinal de erro atuante e(t) ocorrerá um ajuste que compense as
oscilações do sistema. Mas, vale dizer que, uma vez ajustado, o ganho tende a ser constante
numa faixa de erros chamada de banda proporcional, ilustrada na figura 1.5 (FACCIN, 2004;
CEIDE, 2006).
e(t)
u(%)
0
100
banda proporcional
Figura 1.5: Ação de controle em função do sinal de erro gerada pelo controlador proporcional.
Em outros termos, esta ação é uma relação direta entre o sinal de saída do controlador
u(t) e o sinal de erro atuante e(t):
u(t) = Kpe(t) (1.3)
ou, no domínio da transformada de Laplace,
U(s)E(s)
= Kp (1.4)
onde Kp, ilustrado na figura 1.6, é denominado ganho proporcional (OGATA, 2010).
27
Figura 1.6: Diagrama de blocos de um controlador proporcional.
Fonte: Ogata (2010).
A principal característica da ação proporcional é um tempo de resposta às oscilações
relativamente pequeno quando a constante proporcional é elevada, isto é desejável em dadas
circunstâncias, no entanto, pode causar instabilidades ao trazer reações precipitadas, afetando
significativamente a controlabilidade do sistema (BORDON, 1993).
1.3.3 Ação de controle integral
A ação de controle integral é proporcional à integral do sinal de erro no tempo. Isto é,
u(t) = Ki
∫e(t)dt (1.5)
onde Ki é uma constante ajustável. A função de transferência do controlador integral é
U(s)E(s)
=Ki
s(1.6)
Por depender do histórico do sinal de erro atuante, impulsos são amortizados, elimi-
nando a ocorrência de oscilações súbitas na saída do controlador, por isto esta ação é também
conhecida como ação de restabelecimento (reset action). Assim, sua principal característica é
a eliminação do erro em regime permanente (erro residual) (OGATA, 2010; FACCIN, 2004;
DORF; BISHOP, 2009).
Muito embora remova o erro em regime estacionário, esta ação pode reduzir a estabi-
lidade da malha de controle ao oferecer uma resposta oscilatória com amplitude lentamente
decrescente ou até mesmo crescente, o que não é desejável na maioria das situações (OGATA,
2010; DORF; BISHOP, 2009).
28
1.3.4 Ação de controle derivativa
No modo derivativo a ação de controle resultante é proporcional a derivada do sinal de
erro no tempo. Isto é,
u(t) = Kdde(t)
dt(1.7)
onde Kd é a constante de ganho derivativa. A função de transferência do controlador derivativo
éU(s)E(s)
= Kds (1.8)
A ação de controle derivativa tem uma resposta extremamente rápida, atuando de forma
antecipatória frente a menor taxa de variação do erro, antes mesmo que este fique demasiada-
mente grande. Todavia, se o erro for constante não haverá ação corretiva mesmo que este seja
expressivo, pois a ação derivativa é proporcional à taxa de variação do sinal de erro no tempo e
não ao erro propriamente dito.
Apesar de possuir a vantagem de estimar tendências de variações futuras do erro, cres-
centes ou decrescentes, a ação de controle derivativa tem a desvantagem de amplificar ruídos
e causar saturação no atuador. Por esta característica nunca é usada sozinha (OGATA, 2010;
DORF; BISHOP, 2009).
1.4 O controlador PID
As ações de controle proporcional, integral e derivativa quando aplicadas separadamente
apresentam desvantagens que limitam o uso ou as tornam inviáveis. No entanto, quando com-
binadas no controlador PID resultam em um modo de controle simples, estável e extremamente
poderoso, tornando-se uma solução eficiente para a maioria das necessidades dos processos
industriais automatizados.
A forma acadêmica ou didática do controlador PID é dada por
u(t) = Kpe(t)+Kp
Ti
∫e(t)dt +KpTd
de(t)dt
(1.9)
ou pela função de transferência
U(s)E(s)
= Kp +Kp
Tis+KpTds, (1.10)
onde Kp representa o ganho proporcional, Td o tempo derivativo e Ti o tempo integral, ilustrados
na figura 1.7 (OGATA, 2010).
29
Figura 1.7: Diagrama de blocos de um controlador PID.
Fonte: Ogata (2010).
Contudo, existem outras formas de implementação do algoritmo do controlador PID,
algumas divergindo significativamente entre si. Entre as quais, há duas que merecem destaque:
a forma série ou interativa e a forma paralela ou não-interativa (FACCIN, 2004).
1.4.1 Forma série ou interativa
Na forma série a ação integral é somada à ação derivativa. Sua representação matemática
no domínio de Laplace é dada por
G(s) = Kp
(1+
1Tis
)(1+Tds) . (1.11)
A equação 1.11 mostra que a mudança do parâmetro de uma ação afetará diretamente as
demais. Por esta característica esta forma é também denominada de interativa (vide representa-
ção na figura 1.8).
Td · s 1/(Ti · s)e Σ Σ Kp u
Figura 1.8: Representação esquemática da forma série do controlador PID.
1.4.2 Forma paralela ou não-interativa
Na forma paralela as ações integral e derivativa são calculadas distintamente e sobrepos-
tas no controlador PID, ou seja, os modos integral e derivativo são combinados paralelamente,
conforme representado na figura 1.9.
Td · se Σ Kp u
1/(Ti · s)
Figura 1.9: Representação esquemática da forma paralela do controlador PID.
30
No domínio de Laplace sua representação é dada por
G(s) = Kp
(1+
1Tis
+Tds). (1.12)
A partir da equação 1.12 fica evidenciado que não há interação entre as ações integral e
derivativa, ou seja, mudanças no parâmetro de um modo não implicam em alterações no outro
e assim reciprocamente.
1.4.3 Critérios de desempenho
Sistemas de controle são construídos para atender a requisitos específicos e, sendo res-
peitadas as condições de funcionamento impostas no curso do projeto, haverá a expectativa
de atendimento às especificações de desempenho, tais como precisão, estabilidade relativa e
velocidade de resposta.
As especificações de desempenho podem ser em âmbito de requisitos de resposta transi-
tória (como sobressinal e tempo de acomodação na resposta à entrada em degrau) e de requisitos
em regime estacionário (como erro estacionário para uma entrada em rampa) ou resposta em
frequência (OGATA, 2010).
1.4.4 Métodos de sintonia de Ziegler e Nichols
Sintonia é o processo de escolha dos parâmetros do controlador PID de modo a atender
determinado critério de desempenho. Existem diversas técnicas analíticas de projeto que podem
ser aplicadas na sintonia do controlador quando o modelo matemático da planta é conhecido.
Do contrário, se este modelo matemático não pode ser definido precisamente, é indispensável a
adotação de métodos empíricos de sintonia (OGATA, 2010).
Em 1942, a partir das características da resposta transitória de uma função em degrau,
Ziegler e Nichols propuseram dois métodos experimentais que são amplamente utilizados de-
vido a sua facilidade de implementação e utilidade em sistemas de controle em que as dinâmicas
da planta são desconhecidas ou imprecisas. O propósito dos dois métodos é encontrar um valor
máximo de ultrapassagem entre 10% e 60% ou uma relação de aproximadamente 1/4 entre dois
picos de amplitude subsequentes e de mesma direção, de modo que a estabilidade seja aceitável
após uma perturbação ou uma mudança do ponto de ajuste na malha de controle. Na maioria
dos processos é possível alcançar um sobressinal de 25%, conforme exemplificado na figura
1.10 (OGATA, 1998; BEZERRA, 2010; HAUGEN, 2010b; ZIEGLER; NICHOLS, 1942).
31
Figura 1.10: Resposta ao degrau unitário com valor máximo de ultrapassagem de 25%.
Fonte: Ogata (1998).
1.4.4.1 Método da curva de reação do processo
Nesta abordagem, a curva da resposta em degrau a ser obtida deve ter um aspecto de
S, podendo ser gerada tanto experimentalmente como a partir de uma simulação dinâmica do
sistema (OGATA, 2010; HAUGEN, 2010b; ZIEGLER; NICHOLS, 1942). A figura 1.11 mostra
as duas constantes que caracterizam esta curva, o atraso L e a constante de tempo T.
Figura 1.11: Curva de resposta em forma de S.
Fonte: Ogata (2010).
Quando este processo é aplicável, a função de transferência pode ser aproximada para
um sistema de primeira ordem com atraso de transporte, conforme a equação 1.13:
C(s)U(s)
=KeLs
T s+1. (1.13)
O ajuste do controlador neste método consiste nos seguintes passos (HAUGEN, 2010b; ZIE-
GLER; NICHOLS, 1942):
32
1. abrir a malha, o que pode ser feito pondo o controlador no modo manual;
2. ajustar manualmente a variável de controle de modo que o processo fique no seu ponto
de operação;
3. inserir um sinal em degrau na variável de controle com amplitude tal que o efeito possa
ser observado e medido na saída do sistema, no entanto, pequeno o bastante para que o
processo não passe muito do seu ponto de operação;
4. efetuar a leitura dos parâmetros característicos da resposta em degrau (exemplificados na
figura 1.11):
• atraso L ou tempo morto efetivo;
• constante de tempo T (com base na declividade no ponto de inflexão da curva);
5. calcular e ajustar os parâmetros do controlador (Kp, Ti e Td) de acordo com a tabela 1.1;
Tabela 1.1: Regra de sintonia de Ziegler e Nichols baseada na resposta em degrau da planta.
Tipo de controlador Kp Ti Td
P T/L ∞ 0PI 0,9 · (T/L) L/0,3 0
PID 1,2 · (T/L) 2 ·L 0,5 ·L
Fonte: Ogata (2010).
6. fechar a malha.
Com a aplicação da tabela 1.1 na equação de transferência,
Gc(s) = Kp
(1+
1Tis
+Tds)
(1.14)
= 1,2TL
(1+
12Ls
+0,5Ls)
(1.15)
= 0,6T
(s+
1L
)2
s, (1.16)
é possível concluir que o controlador PID tem um polo na origem e zeros duplos em s =−1/L.
A partir dos procedimento anteriormente descritos, é possível observar que o ajuste dos
parâmetros é imediato, o que é bastante útil em processos muito lentos. No entanto, como a
maioria dos sistemas tem maior complexidade do que sistemas de primeira ordem com atraso,
33
um ajuste fino deve ser feito antes que a resposta do sistema possa ser considerada totalmente
“aceitável” (BEZERRA, 2010).
1.4.4.2 Método da estabilidade marginal
Também conhecido como regra da malha fechada, este segundo método de Ziegler e
Nichols propõe o ajuste do controlador com base na estabilidade marginal do sistema. Para sua
aplicação, este deve apresentar atraso de transporte ou ter dinâmica de ordem superior a três
(OGATA, 2010; HAUGEN, 2010b; ZIEGLER; NICHOLS, 1942). Assim como no primeiro
método, o ajuste pode ser feito experimentalmente em um sistema real ou em uma simulação.
A sintonia do controlador é dada pelos seguintes procedimentos (ROSÁRIO, 2005; HAUGEN,
2010a; ZIEGLER; NICHOLS, 1942):
1. conduzir o processo ao ponto específico de operação, de maneira que o controlador
“sinta” que está submetido a um processo dinâmico e seja reduzida a possibilidade das
variáveis atingirem seu limite durante a sintonia, para isto a variável de controle pode ser
ajustada com o controlador em modo manual;
2. desativar as ações I e D do controlador, tornando os parâmetros Ti = ∞1 e Td = 0. Inici-
almente o ganho Kp deve ser igualado a zero. Em seguida a malha deve ser fechada para
que o controlador seja ajustado em modo automático;
3. elevar Kp até que os sinais de controle apresentem uma frequência de oscilações susten-
tadas (ωcr), onde o período é Pcr = 2π/ωcr, conforme exemplifica a figura 1.12. Neste
estágio o ganho é crítico (Kcr) e corresponde ao limite de estabilidade do sistema. O sinal
de excitação aplicado pode ser em degrau, mas deve ser pequeno o bastante2 para não
deixar o sistema muito longe do seu ponto de operação, onde as dinâmicas do processo
podem ser diferentes. Quando não existe um valor de Kp que resulte em uma oscilação
sustentada, este método não é aplicável;
1Em alguns controladores PID comerciais, fazer Ti = 0 é um código para desativar o termo I, sendo equivalentea tornar Ti = ∞ (HAUGEN, 2010a).
2É aconselhável que o sinal de excitação seja em torno de 5% da faixa nominal máxima (HAUGEN, 2010a).
34
Figura 1.12: Oscilação sustentada com período Pcr (medido em segundos).
Fonte: Ogata (2010).
4. medir o período da frequência de oscilações sustentadas, período crítico Pcr;
5. calcular os valores dos parâmetros (Kp, Ti e Td) de acordo com a tabela 1.2 e aplicá-los
no controlador. Reduzir Kp se a estabilidade da malha for baixa;
Tabela 1.2: Regra de sintonia de Ziegler e Nichols baseada no ganho crítico Kcr e no período crítico Pcr.
Tipo de controlador Kp Ti Td
P 0,5 ·Kcr ∞ 0PI 0,45 ·Kcr (1/1,2) ·Pcr 0
PID 0,6 ·Kcr 0,5 ·Pcr 0,125 ·Pcr
Fonte: Ogata (2010).
Com os valores da tabela 1.2 aplicados a equação de transferência,
Gc(s) = Kp
(1+
1Tis
+Tds)
(1.17)
= 0,6Kcr
(1+
10,5Pcrs
+0,125Pcrs)
(1.18)
= 0,075KcrPcr
(s+
4Pcr
)2
s, (1.19)
vê-se que o controlador PID tem um polo na origem e zeros duplos em s =−4/Pcr.
35
2 Algoritmos Genéticos
Em 1859 Charles Darwin desenvolveu a teoria da evolução, a qual propõe que determi-
nadas mutações ocorridas na reprodução de uma espécie serão preservadas em gerações futuras,
se tornarem os indivíduos mais competitivos e melhores adaptados ao meio. Charles Darwin
desconhecia os elementos que eram usados pelos organismos nos processos de mutação e he-
rança de suas características (RUSSEL; NORVIG, 2004; GONÇALVES, 2000).
Foi somente em 1866 que Gregor Mendel identificou as leis probabilísticas que regem
estes processos. Muito depois, em 1953, Watson e Crick identificaram a molécula de Deoxy-
ribonucleic Acid (DNA) e descreveram sua composição: Adenina, Guanina, Timina e Citosina
(AGTC). Atualmente sabe-se que o DNA de um descendente é gerado pela combinação de
seções de DNA dos pais (RUSSEL; NORVIG, 2004).
Nos anos 1950 e 1960, diversos cientistas da computação conduziram estudos sobre sis-
temas evolucionários no intuito de empregá-los como ferramentas de busca e otimização em
problemas de engenharia. Segundo Mitchell (1999), o princípio fundamental destes algoritmos
foi desenvolver operadores inspirados em mutação genética e seleção natural que, aplicados so-
bre uma população inicial de soluções candidatas, dariam a melhor saída para um dado sistema.
Quatro elementos fundamentais podem ser destacados em todos os algoritmos evoluci-
onários (GONÇALVES, 2000; MITCHELL, 1999):
• uma população de indivíduos, onde cada um representa uma possível solução do pro-
blema;
• um modo de gerar novos indivíduos, mutando ou combinando indivíduos existentes;
• uma maneira de avaliar a qualidade da solução que cada indivíduo representa;
• um mecanismo para selecionar os melhores indivíduos (princípio da seleção natural).
Dentre os algoritmos evolucionários, os Algoritmos Genéticos merecem destaque. Estes
conjugam propriedades de técnicas heurísticas de otimização global e de buscas probabilísticas.
AGs são extremamente aplicáveis a problemas em que os dados são discretos ou não possuem
36
derivadas. Por serem heurísticas de busca no espaço de soluções, trabalham com uma grande
população de pontos, no entanto, não são classificados como métodos enumerativos por não
examinarem todos os pontos possíveis, mas um subconjunto destes. Apesar de possuírem carac-
terísticas de buscas probabilísticas, inclusive apresentando soluções distintas sobre uma mesma
população inicial e um mesmo conjunto de parâmetros a cada vez que o algoritmo é executado,
também diferenciam-se de esquemas aleatórios por não usarem de caminhadas aleatórias no
espaço de soluções (random walks), pois trabalham com informações pertinentes ao problema
e exploram informações históricas, direcionando a busca por meio de seleção, similarmente ao
processo natural (LINDEN, 2008).
Para o uso adequado dos AGs, alguns conceitos devem ser definidos segundo a perspec-
tiva da ciência da computação, são eles: representação cromossômica, população, objetivo e
função de avaliação, seleção (elitismo e steady-state), crossover (cruzamento) e mutação.
2.1 Representação cromossômica
O cromossomo é o container que carrega as informações concernentes ao problema a
ser tratado. Dentre as diversas formas de representação cromossomial, a mais popular e mais
disseminada é a forma binária, na qual uma solução candidata está codificada de tal modo que
cada bit (ou um pequeno bloco de bits adjacentes) represente um gene, formando um estrutura
de dados em que o alelo assume valor 0 ou 1. O conceito implícito em cada bit (ou conjunto de
bits) é inerente ao problema (MITCHELL, 1999; LINDEN, 2008; LACERDA; CARVALHO,
1999). Segundo Linden (2008), por ser o alfabeto de menor ordem, a codificação binária é a
mais eficiente para manipulação de esquemas .
A despeito de sua eficiência e simplicidade, a representação binária pode oferecer obstá-
culos significativos quando há exigência de grande precisão numérica e múltiplas dimensões de
variáveis contínuas, pois as cadeias de bits se tornam muito longas, o que pode causar uma lenta
convergência do algoritmo. Uma solução alternativa nestas condições é a representação numé-
rica que, por ter um alfabeto com maior cardinalidade, possui um tamanho menor de cromos-
somo. Outros benefícios advêm desta representação, são eles (LINDEN, 2008; GONÇALVES,
2000):
• unificação das representações dos dados interna (genótipo) e externamente (fenótipo), o
que torna o próprio algoritmo mais simples e compreensível à análise humana;
• redução da probabilidade de ocorrência de problemas enganadores (deceptives), pois há
uma diminuição de esquemas de baixa ordem que podem direcionar o AG para uma
37
solução que não é ótima;
• uso da máxima precisão que o sistema computacional pode oferecer, pois o cromossomo
é representado por um vetor de números reais, no qual cada posição do vetor simboliza
um gene que contém explicitamente o valor de uma variável do problema;
• análise e processamento em grandes domínios, pois a precisão pode ser mantida sem que
haja a necessidade de acréscimo no tamanho do cromossomo.
Em contrapartida, por sua maior cardinalidade, a representação numérica pode degradar
a qualidade da solução (LINDEN, 2008). Diante disto, uma análise criteriosa dos requisitos
deve ser feita para a escolha da melhor representação dos cromossomos, binária ou numérica,
tendo em vista que o algoritmo deve se acomodar ao problema, e não o contrário. Este princí-
pio faz parte da estratégia “keep it short and simple” (KISS), a qual recomenda que qualquer
complexidade desnecessária deve ser descartada, ou seja, a representação deve ser, tanto quanto
possível, a mais simplificada. Quanto a representação dos dados, dois outros cuidados devem
ser adotados e são sensivelmente importantes para o sucesso do AG:
• soluções não factíveis para o problema não devem ser representadas;
• restrições de condições devem estar presentes na representação.
No contexto dos AGs, um indivíduo é representado por um cromossomo, portanto, os
dois termos são usados indistintamente.
2.2 População
Um AG inicia com um grupo de cromossomos conhecido como população inicial. Isto é
necessário porque a evolução das soluções acontece a partir das soluções candidatas anteriores.
Esta população de partida é construída geralmente de forma aleatória, pois os problemas tra-
tados com AGs são considerados complexos, portanto, o esforço para geração de um conjunto
de soluções iniciais de qualidade é muito grande (MACHADO, 2005; HAUPT; HAUPT, 2004).
Um modo de proporcionar uma população inicial (de tamanho n) com melhores características é
a divisão do espaço de busca em k intervalos com n/k indivíduos em cada subespaço (LINDEN,
2008). Quando há conhecimento prévio da região de busca, uma estratégia eficiente é o uso de
semeadura, que consiste em inserir na população inicial algumas soluções com alta qualidade,
encontradas através de técnicas de busca local, entre outros métodos rápidos (MACHADO,
2005).
38
Muitos esforços têm sido empregados para determinar o tamanho apropriado de uma po-
pulação em um algoritmo evolutivo, mas a maioria das análises teóricas não tem sido conclusi-
vas (MICHALEWICZ; FOGEL, 2000), no entanto, são conhecidos dois resultados indesejados
de uma população mal dimensionada (SANTOS et al., 2010; LINDEN, 2008):
• se a população for muito pequena o AG convergirá abruptamente para máximos ou míni-
mos locais;
• enquanto uma população muito grande deteriorará a performance do algoritmo.
O ideal é que o tamanho máximo da população seja estabelecido no limiar onde não
há mais melhora da performance com o crescimento da população. Obviamente os recursos
computacionais não são ilimitados, portanto devem ser considerados nesta avaliação. Como
alternativa às populações com tamanho estático, Arabas et al. (apud VIEIRA; LINDEN, 2003,
2008) propuseram uma estratégia adaptativa, marcando os indivíduos com dois parâmetros: um
para o tempo de vida e outro para a idade.
O tempo de vida foi definido em termos do número máximo de gerações queum indivíduo em particular poderia sobreviver, sendo este automaticamenteremovido da população logo que seu tempo de vida expirasse, independente-mente da sua qualidade. No entanto, o tempo de vida atribuído a um novoindivíduo seria determinado em função de sua qualidade, ou seja, indivíduosde maior qualidade teriam vida mais longa. O tamanho da população pode-ria, assim, aumentar ou diminuir com base no desempenho dos indivíduos emcada geração (ARABAS et al., 1994 apud MICHALEWICZ; FOGEL, 2000,p. 296). (Tradução nossa.)
A esta estratégia, Iorio e Li (2002) adicionaram uma nova característica: distribuir os in-
divíduos em subpopulações adaptativas e avaliá-los tanto individualmente como conjuntamente
com os melhores indivíduos de outras subpopulações, analogamente ao mutualismo existente
entre algumas espécies na natureza, assim, como o algoritmo avalia o quanto um indivíduo coo-
pera com indivíduos de outras sub-populações, o resultado final é a maximização da cooperação
e da aptidão da população total. Ainda neste contexto adaptativo, se está ocorrendo uma rápida
convergência e o desempenho objetivo está distante, é plausível que a população possa crescer
(LINDEN, 2008).
2.3 Objetivo e função de avaliação
O sucesso de um AG na busca da solução de um problema passa pela definição clara e
precisa do objetivo a ser atingido. Este nada mais é do que uma assertiva matemática da tarefa a
39
ser cumprida. O objetivo não é uma função, mas uma expressão matemática (MICHALEWICZ;
FOGEL, 2000). Em um problema de minimização de rotas, por exemplo, esta expressão seria
min∑dist(x,y). (2.1)
Por sua vez, a função de avaliação é o meio pelo qual o espaço de soluções é mapeado
matematicamente sob a representação cromossômica escolhida (MICHALEWICZ; FOGEL,
2000). Neste conjunto, cada solução encontrada recebe um valor numérico que indica a sua
aptidão, de modo que seja possível avaliar o quanto um indivíduo está ajustado ao objetivo do
problema, logo, a função de avaliação é o critério utilizado pelo AG para o direcionamento da
busca. Geralmente esta é a única ligação verdadeira do algoritmo com a realidade (LINDEN,
2008), portanto ela deve carregar o máximo de conhecimento disponível sobre o domínio do
problema, evidenciando tanto as restrições como os critérios de qualidade do objetivo a ser
atingido.
Quando funções de penalidade são incorporadas na função de avaliação, também o po-
tencial de adaptação é incluído (MICHALEWICZ; FOGEL, 2000). Para resolver problemas de
satisfação de restrições, Eiben e Ruttkay aplicaram um método que é um misto de sintonia e
controle adaptativo da função de avaliação, no qual esta sofre mudanças baseadas no desempe-
nho de um indivíduo em um ciclo, da seguinte forma: quando um indivíduo mais qualificado
viola uma restrição, ele recebe sanções (pesos) que são usadas no próximo ciclo. Desta forma,
a busca evolutiva é forçada a dar mais ênfase na satisfação de restrições que ainda não foram
atendidas (EIBEN; RUTTKAY, 1996; RUSSEL; NORVIG, 2004).
2.4 Seleção
Assim como nos sistemas biológicos, nos AGs existe um processo de seleção que ob-
jetiva privilegiar os indivíduos mais qualificados a se tornarem pais da próxima geração. Este
mecanismo faz uso da função de avaliação e tem como expectativa gerar uma prole mais apta do
que a geração ascendente (MITCHELL, 1999). Os indivíduos melhores avaliados deverão ter
seus genes em predominância na geração seguinte, no entanto, é preciso resguardar condições
para que mesmo um indivíduo com baixíssima função de avaliação procrie, pois suas caracte-
rísticas podem ser únicas e favoráveis à criação de um cromossomo que represente a melhor
solução. Desta forma, promover uma seleção equilibrada é vital para se manter adequadamente
a diversidade da população.
Uma forma simples de minimizar a convergência genética é a implementação do que
40
é conhecido como método da roleta viciada, no qual os indivíduos são selecionados a partir
de um fator aleatório (rodada na roleta virtual), mas somente na proporção do seu índice de
avaliação. Vale ressaltar que a soma das partes proporcionais não deve exceder 100% (LINDEN,
2008). Outras técnicas de seleção de destaque são: método do torneio, método de amostragem
estocástica uniforme, seleção local, seleção por ranking e seleção truncada. Todos os métodos
de seleção produzem uma força (pressão seletiva) que impele na prole os esquemas contidos
nos indivíduos mais aptos. A intensidade desta pressão de seleção é dada pela diferença entre
a avaliação média atual dos indivíduos da população e a anterior (MITCHELL, 1999; HAUPT;
HAUPT, 2004).
O termo seleção pode ser usado distintamente em dois contextos, podendo, portanto,
referir-se tanto ao processo de seleção de pais como ao processo de seleção de indivíduos para
substituição. Neste âmbito duas técnicas merecem destaque: elitismo e steady-state.
2.4.1 Elitismo
Em 1975 Kenneth De Jong introduziu uma mudança nos métodos de seleção que força
o AG a reter em cada geração alguns dos indivíduos mais aptos, os quais poderiam se perder
por não serem selecionados para reprodução ou por serem destruídos no cruzamento ou na mu-
tação. Estudos mostraram que esta técnica, conhecida por elitismo, melhora significativamente
o desempenho do AG (LINDEN, 2008; MITCHELL, 1999).
2.4.2 Steady-state
Distintamente do que ocorre na natureza, geralmente nos AGs os indivíduos de uma
geração nascem e morrem simultaneamente. A seleção steady-state simula o processo natu-
ral substituindo apenas alguns indivíduos menos aptos em cada geração, porém, para evitar
convergência genética esta substituição parcial pode ser feita aleatoriamente (LINDEN, 2008).
AGs steady-state são frequentemente utilizados em sistemas evolucionários baseados em re-
gras, como sistemas classificadores, onde a aprendizagem incremental é importante e nos quais
os membros da população resolvem coletivamente o problema (MITCHELL, 1999).
2.5 Operadores genéticos
À geração de uma nova prole estão associados os operadores crossover e mutação. As-
sim como nos sistemas biológicos, existe um grau de incerteza sobre estes processos, podendo
41
este índice ser fixo ou variável. Neste caso, a probabilidade adaptativa é o resultado da aplicação
de funções do tipo linear, quadrática ou descontínua (LINDEN, 2008).
É importante ressaltar que os operadores genéticos são intrinsecamente ligados ao tipo
de codificação cromossomial adotada no AG (LOPES, 2006 apud GONÇALVES, 2000, p. 10).
2.5.1 Crossover ou cruzamento
A atribuição do operador crossover consiste em promover o cruzamento dos pais para
a criação de novos indivíduos de uma população. Há diversas formas de se efetuar esta com-
binação, a mais elementar, é conhecida como crossover de um ponto. A figura 2.1 representa
graficamente esta operação de recombinação; nela um ponto de corte foi definido e o cruza-
mento dos genes realizado de forma que ambos os filhos terão parte dos genomas de cada pai.
Figura 2.1: Operador de crossover de 1 ponto para codificação binária.
Fonte: GONÇALVES (2000).
Um outro operador de cruzamento muito utilizado na representação binária, é o crosso-
ver de dois pontos. Neste, a geração dos filhos se dá pela recombinação dos genes extremos de
um cromossomo pai com os genes centrais do outro, e vice-versa (LINDEN, 2008), conforme
representado na figura 2.2.
42
Figura 2.2: Operador de crossover de 2 pontos para codificação binária.
Fonte: GONÇALVES (2000).
Na representação numérica, existem diversos tipos de operadores de cruzamento. Os se-
guintes merecem destaque (LINDEN, 2008; GONÇALVES, 2000; MICHALEWICZ; FOGEL,
2000):
• crossover simples, que é equivalente ao crossover binário de um ponto;
• crossover flat, que baseia-se em usar os genes dos cromossomos pais para criar intervalos
fechados crescentes e nestes promover sorteios de valores que serão usados no cromos-
somo filho gene a gene, respectivamente;
• crossover aritmético, que para geração de sua prole segue a combinação linear dada por
F1 = α ·P1 +(1−α) ·P2 (2.2)
F2 = α ·P2 +(1−α) ·P1 (2.3)
onde, P1 e P2 são os indivíduos pais selecionados, F1 e F2 os filhos resultantes do cruza-
mento e α um número aleatório no intervalo [0,1] .
• crossover heurístico, que a partir dos cromossomos pais (P1 e P2) geram um ou nenhum
filho, sendo o cruzamento restrito a condição de P2 ser melhor avaliado que P1 e conforme
a equação
F1 = r · (P2−P1)+P2, (2.4)
43
onde r é um valor aleatoriamente escolhido no intervalo [0,1].
2.5.2 Mutação
É através da mutação dos indivíduos que o AG é conduzido a uma exploração global
do espaço de busca; ao inserir uma diversidade extra na população, a convergência prematura
do algoritmo é evitada (OLIVEIRA, 1998; GONÇALVES, 2000). No entanto, para que boas
soluções encontradas previamente não sejam destruídas, a mutação é aplicada em cada alelo do
cromossomo com baixíssima probabilidade. Segundo Mitchell (1999), assim como nas opera-
ções de cruzamento, a perspectiva mais promissora do uso de mutação é quando sua taxa de
aplicação é adaptativa.
A figura 2.3 mostra o operador de mutação binária mais difundido e de maior simplici-
dade de execução. Neste processo um gene do cromossomo é escolhido aleatoriamente e o seu
alelo é invertido.
Figura 2.3: Operador de mutação para codificação binária
Fonte: GONÇALVES (2000).
Na representação numérica há vários tipos de operadores de mutação, são eles:
• mutação aleatória ou uniforme, que efetua uma simples substituição do valor de um gene
por um número aleatório no intervalo [νmin,νmax], onde νmin e νmax, que devem ser co-
nhecidos a priori, são os limites inferior e superior de valores permitidos para o gene des-
cendente (MICHALEWICZ; FOGEL, 2000; GONÇALVES, 2000). Por atuar de forma
muito similar ao crossover flat, estes dois operadores não devem ser conjugados (LIN-
DEN, 2008);
• mutação normal ou Gaussiana, que é uma variação da mutação uniforme, onde o gene
é substituído por um valor aleatório de uma distribuição de probabilidades normal de
média zero e desvio padrão σ (distribuição normal padrão), representado por N(0,σ) e
cuja fórmula é
N(0,σ,x) =e−
12 ·(
xσ)
2
σ√
2π(2.5)
44
Este tipo de mutação concentra suas alterações em torno do valor corrente, sendo portanto
menos agressiva do que a mutação uniforme (LINDEN, 2008; GONÇALVES, 2000);
• mutação não uniforme, que tem um comportamento exploratório no início da busca e um
comportamento de ajuste fino ao seu final (LINDEN, 2008). Nela um valor τ, que pode
ser zero ou um, é sorteado e o valor da mutação é calculo conforme
ci =
{ci +∆(t,supi− ci),τ = 0
ci−∆(t,ci− in fi),τ = 1
}, onde (2.6)
– t representa a geração atual,
– ci o valor da coordenada em mutação,
– supi e in fi, respectivamente o máximo e o mínimo aceitos para a coordenada.
– e ∆ dado por
∆(t,y) = y∗
(1− r
(1
gmax
)b), onde (2.7)
* t representa a geração atual,
* y o valor máximo de mutação,
* gmax o máximo de gerações que o algoritmo processará,
* r um parâmetro determinado no intervalo (0,1),
* e b um parâmetro que controla o grau da dependência do valor da mutação com
o número de gerações. Quanto maior for b, mais rapidamente ∆ chegará a zero
e a mutação terá um caráter de ajuste fino (LINDEN, 2008).
• mutação limite, que seleciona e substitui um gene aleatório por um dos limites do inter-
valo [νmin,νmax], com igual probabilidade de escolha (GONÇALVES, 2000). Segundo
Lacerda e Carvalho (1999) o uso deste operador de mutação evita perda de diversidade
dos filhos causado pelo crossover aritmético, que tem uma tendência em trazer os genes
para o centro dos intervalos permitidos.
45
2.6 Uma versão simplificada do algoritmo genético
Postos os fundamentos gerais, a seguir é dada uma versão simplificada do algoritmo
genético de Machado (2005):
início1
numPop = tamanho da populacao;2
numGera = numero de geracoes;3
numFilhos = numero de filhos;4
probMutacao = probabilidade de mutacao;5
populacao← populacaoInicial(numPop);6
para j de 1 a numPop faça7
fAvalia(populacao[j]);8
para i de 1 a numGera faça9
para j de 1 a numFilhos faça10
(x,y)← sorteiaDois(populacao);11
descendente← efetuaCruzamento(x,y);12
prole[j]← muta(descendente, probMutacao);13
fAvalia(prole[j]);14
populacao← seleciona(populacao, prole);15
Resultado: Retorna o melhor cromossomo;fim16
Figura 2.4: Algoritmo Genético Simplificado.
46
3 Desenvolvimento e Análise de Resultados
A forma de codificação das soluções em parâmetros do algoritmo genético trouxe a con-
vicção necessária para adotá-lo neste estudo, tendo em vista que esta característica possibilita
aplicá-lo na sintonia do controlador PID sem o conhecimento explícito da dinâmica interna da
planta.
Especificamente para o desenvolvimento da função de avaliação e o estabelecimento
das medições de custo do AG, foi tomada para investigação a planta proposta em Ogata (2010,
p. 525) (vide figura 3.1). No entanto, para ratificar a viabilidade da versão final do algoritmo,
foram utilizados o modelo simplificado de um veículo de exploração apresentado em Dorf e
Bishop (2009, p. 169) e a planta de Ogata (2010, p. 534), na qual os métodos de Ziegler e
Nichols não se aplicam diretamente.
Figura 3.1: Sistema com controle PID.
Fonte: Ogata (2010).
O software MATLAB e a extensão Control System Toolbox foram utilizados tanto na
simulação das plantas como no desenvolvimento do AG, pois trazem diversas ferramentas des-
tinadas aos projetos de sistemas de controle, possibilitando maior abstração e ênfase na lógica
de negócio a ser aplicada na solução do problema.
3.1 Resposta transitória e as características de desempenho
É frequente as características de desempenho de um sistema de controle serem espe-
cificadas com base na resposta transitória a uma entrada em degrau unitário, pois se esta for
corretamente determinada, torna-se possível prever o comportamento da planta em resposta a
47
qualquer outro tipo de sinal; por conveniência os sistemas são testados a partir de uma condição
de repouso (OGATA, 2010).
A resposta transitória de um sistema de controle geralmente apresenta oscilações amor-
tecidas antes que este atinja o regime permanente. Segundo Ogata (2010), apesar de nem todas
se aplicarem necessariamente a todos os casos e muitas vezes serem conflitantes entre si, comu-
mente as seguintes especificações devem ser determinadas:
• tempo de subida (rise time), tr −→ tempo requerido para que a resposta passe de 10 a
90%, ou de 5 a 95%, ou de 0 a 100% do valor final;
• tempo de pico (peak time), tp −→ tempo para que a resposta atinja o primeiro pico de
sobressinal;
• máximo sobressinal (overshoot), Mp −→ valor máximo de pico da curva de resposta, em
porcentagem, medido a partir da unidade (quando necessário o valor deve ser normali-
zado);
• tempo de acomodação (settling time), ts −→ tempo necessário para que a curva de res-
posta se estabilize, geralmente de 2% a 5% em torno do valor final;
• tempo de atraso, td −→ tempo necessário para que a resposta alcance metade de seu valor
final pela primeira vez.
A figura 3.2 exemplifica estes parâmetros:
Figura 3.2: Curva de resposta em degrau unitário mostrando tr, tp, ts, td e Mp.
Fonte: Ogata (2010).
48
3.2 Aplicação do método da estabilidade marginal de Ziegler e Nichols
A implementação do método da estabilidade marginal, também conhecido como se-
gunda regra de Ziegler e Nichols (seção 1.4.4), e os resultados obtidos neste processo são
apresentados nesta seção. Os cálculos para sintonia da planta usada como parâmetro no de-
senvolvimento do AG estão em Ogata (2010, p. 526-527).
3.2.1 A representação matemática da planta
A função do código 3.1 foi elaborada para representar matematicamente as plantas aqui
em estudo, dadas pelas equações 3.1, 3.2 e 3.3; a alternância entre estas é dada pela mudança
dos vetores de coeficientes nas linhas 7, 10 e 14. A função tf recebe estes e retorna a função
de transferência desejada.
G1(s) =1
s3 +6s2 +5s, (3.1)
de Ogata (2010, p. 525);
G2(s) =1
s3 +4s2 +3s, (3.2)
de Dorf e Bishop (2009, p. 169);
G3(s) =5s2 +21s+4
s3 +5s2 +22s+4, (3.3)
de Ogata (2010, p. 534).
Código 3.1: Representação matemática da planta
1 %____________________________________________________________________
2 % FUNCAO PARA REPRESENTAR MATEMATICAMENTE UMA PLANTA DE CONTROLE
3 %____________________________________________________________________
4 function [sys] = fSimulaPlanta()
5
6 % Planta de OGATA,2010, p. 525
7 % num = 1; den = [1 6 5 0];
8
9 % Planta de (DORF;BISHOP, 2009, p. 169)
10 % num = [1]; den = [1 4 3 0];
11
12 % Esta planta nao pode ser sintonizado por Ziegle-Nichols
13 % (OGATA, 2010, p. 534)
49
14 num = [5 21 4]; den = [1 5 22 4];
15
16 % Funcao de transferencia da planta
17 sys = tf(num,den);
18 end
3.2.2 O ganho crítico e a frequência de ressonância
A determinação do ganho crítico e da frequência de ressonância é condição sine qua non
para aplicação do método da estabilidade marginal de Ziegler e Nichols; o código 3.2 mostra
na linha 5 que ambos podem ser obtidos pela função margin aplicada exclusivamente sobre
a função de transferência da planta, estando implícito que o ganho derivativo é zero e o ganho
integral infinito.
Código 3.2: Calculo do ganho crítico e do período da frequência de ressonância
1 % FUNCAO PARA CALCULAR O GANHO E O PERIODO CRITICOS
2 function [Kcr,Pcr]=fKcrPcr(sys)
3 % Calcula o ganho critico Kcr e a frequencia de ressonancia
4 [Kcr,pm,freqSus,wcg]=margin(sys)
5
6 % Calcula o periodo critico
7 Pcr=(2*pi)/freqSus
8 end
3.2.3 A sintonia do controlador PID através de Ziegler-Nichols
O cálculo dos parâmetros do controlador PID foi implementado no código 3.3 conforme
a tabela 1.2 e cada etapa da simulação da sintonia pelo método da estabilidade marginal foi
devidamente comentada.
Código 3.3: Simulação do processo de sintonia pelo método da estabilidade marginal de Ziegler e Nichols
1 %____________________________________________________________________
2 % SIMULACAO DO METODO DA ESTABILIDADE MARGINAL DE ZIEGLER E NICHOLS
3 %____________________________________________________________________
4 close all; clear all; clc;
5
50
6 %____________________________________________________________________
7 % Simulacao da planta com ganho critico (estabilidade marginal)
8 %____________________________________________________________________
9
10 % Funcao de tranferencia da planta
11 [sysPlanta] = fSimulaPlanta();
12
13 % Obtencao do ganho critico (ponto em que a frequencia e sustentada)
14 [Kcr,Pcr] = fKcrPcr(sysPlanta)
15
16 %____________________________________________________________________
17 % Calcula os parametros do controlador PID por Ziegler-Nichols
18 %____________________________________________________________________
19 Kp = 0.6*Kcr; Ti = 0.5*Pcr; Td = 0.125*Pcr;
20
21 %____________________________________________________________________
22 % Controlador PID sintonizado por Ziegler-Nichols
23 %____________________________________________________________________
24 Kd = Kp*Td; Ki = Kp/Ti;
25 numPID = [Kd Kp Ki]; denPID = [1 0]; sysPID = tf(numPID,denPID);
26
27 % Serializa o controlador PID com a planta
28 sysSerial = series(sysPID,sysPlanta);
29
30 % Realiamenta o sistema
31 sysSintonizado = feedback(sysSerial,[1])
32
33 %____________________________________________________________________
34 % Plota o sinal de saida do sistema
35 %____________________________________________________________________
36 tempo = [0:0.001:20];
37 [y tempo] = step(sysSintonizado,tempo);
38 plot(tempo,y,'k');
39 grid on;
40
41 %____________________________________________________________________
42 % Retorna os parametros do sinal de saida do sistema
43 %____________________________________________________________________
44 S = stepinfo(sysSintonizado)
A tabela 3.1 traz os resultados obtidos com a aplicação deste método nos três sistemas
estudados; as figuras 3.3 e 3.4 mostram a plotagem do sinal de saída das plantas 3.1 e 3.2,
51
respectivamente. Os resultados NaN1 e Inf 2 do código 3.3 retornados pelo MATLAB mostram
que a planta 3.3 não pode ser sintonizada diretamente pelo método da estabilidade marginal de
Ziegler e Nichols.
Tabela 3.1: Características da resposta transitória na sintonia realizada por Ziegler-Nichols
Planta Kcr Pcr tr tp ts Mp
3.1 30 2,8099 0,57813 1,6796 10,034 61,812
3.2 12 3,6276 0,76106 2,1991 12,465 60,377
3.3 NaN NaN NaN In f NaN In f
Figura 3.3: Resposta ao degrau unitário da planta 3.1 sintonizada por Ziegler-Nichols.
1NaN (Not-a-Number) é a representação aritmética IEEE para operações que têm resultados numéricos indefi-nidos.
2Inf (Infinity) é a representação aritmética IEEE para o infinito positivo, resultado de operações como divisãopor zero e estouro de pilha, as quais levam a resultados muito elevados e que não podem ser representados porvalores de ponto flutuante convencional.
52
Figura 3.4: Resposta ao degrau unitário da planta 3.2 sintonizada por Ziegler-Nichols.
3.3 Implementação do algoritmo genético
Segundo o teorema NFL (No-Free-Lunch Theorem ou Teorema da Inexistência do Al-
moço Grátis), proposto por Wolpert e Macready (apud LINDEN, 2008), se um algoritmo A é
melhor de que um algoritmo B para solucionar um determinado grupo de problemas, a reciproca
será verdadeira de B para A, implicando consequentemente que nenhum algoritmo genérico
pode ser melhor do que aquele desenhado precisa e especificamente para o problema. A priori,
isto pode ser um argumento contrário ao uso de algoritmos genéricos de busca (como os AGs),
no entanto, existem domínios de problemas em que o conhecimento intrínseco é inviável de
ser estabelecido e calculado computacionalmente, é neste universo que estas técnicas são muito
úteis e justificáveis. Outro contra-argumento ao NFL é dado por Linden (2008) quando sugere
que na representação, nos operadores genéticos e na função de avaliação do AG seja embutido
o máximo de conhecimento disponível.
Com esta perspectiva e no intuito de usufruir das melhores características desta técnica
computacional, a função de avaliação foi construída exclusiva e totalmente fundamentada no
conhecido levantado sobre os sistemas de controle com realimentação. Apesar de ser baseado
no Continuous Genetic Algorithm de Haupt e Haupt (2004), a seção genérica do algoritmo, dis-
ponível no Apêndice B (código 1), foi corrigida e otimizada para as especificações da sintonia
de um controlador PID.
53
3.3.1 A função de avaliação
O cálculo da aptidão dos cromossomos é um ponto sensível do AG, portanto, a função
de avaliação foi construída para dar flexibilidade na escolha de qualquer das características
da resposta transitória do sinal em degrau como referência de custo. O código 3.4 tem como
cerne a função nativa do MATLAB stepinfo (linha 37). Esta retorna uma struct com
os campos RiseTime, SettlingTime, SettlingMin, SettlingMax, Overshoot,
Undershoot, Peak e PeakTime, os quais são necessários e suficientes para implementação
do cálculo de custo dos indivíduos (vide seção 3.2).
Código 3.4: Função de avaliação
1 %____________________________________________________________________
2 % FUNCAO DE AVALIACAO PARA SINTONIA DE UM CONTROLADOR PID
3 %____________________________________________________________________
4 function [ffx_pop]=fAvaliaPID(x_pop)
5
6 % Funcao de transferencia da planta
7 sysPlanta = fSimulaPlanta();
8
9 % Matriz que recebe a populacao com custo agregado
10 ffx_pop = [];
11
12 % Obtem tamanho da populacao
13 tamPopulacao = length(x_pop);
14
15 % Define o denominador da funcao de transferencia do controlador PID
16 denPID = [1 0];
17
18 ic = 1;
19 while ic ≤ tamPopulacao
20 % Define Numerador da funcao de transferencia do PID
21 % ([Kd Ki Kp]) tomado a partir da populacao recebida do AG
22 numPID = [x_pop(ic,1) x_pop(ic,2) x_pop(ic,3)];
23
24 % Funcao de transferencia do controlador PID
25 ctrlPID = tf(numPID,denPID);
26
27 % Serializa o controlador PID com a planta (sysReal)
28 sysSerial = series(ctrlPID,sysPlanta);
29
54
30 % Realiamenta o sistema
31 sysSintonizado = feedback(sysSerial,1);
32
33 %_________________________________________________________________
34 % Retorna os parametros do sinal de saida do sistema
35 %_________________________________________________________________
36 S = stepinfo(sysSintonizado);
37
38 % Tempo necessario para a resposta subir de 0 a 90% do valor final
39 tempoSubida = S.RiseTime;
40
41 % Tempo necessario para a resposta se estabilizar na faixa
42 % de tolerancia especificada, de 2% a 5% do seu valor final
43 tempoAcomodacao = S.SettlingTime;
44
45 % Valor minimo da saida aceitavel em regime permanente
46 vMinRegPermanente = S.SettlingMin;
47
48 % Valor maximo da saida aceitavel em regime permanente
49 vMaxRegPermanente = S.SettlingMax;
50
51 % Diferenca normalizada entre o valor de pico de resposta e o
52 % valor final de saida do sistema em regime permanente
53 sobreSinalNormalizado = S.Overshoot;
54
55 % Valor de pico absoluto do sinal de saida
56 picoSinal = S.Peak;
57
58 % Tempo da ocorrencia do valor de pico
59 tempoPicoSinal = S.PeakTime;
60
61 % Calcula o custo e o agrega a populacao
62 % custo = tempoSubida;
63 % custo = tempoAcomodacao;
64 % custo = vMinRegPermanente;
65 % custo = vMaxRegPermanente;
66 custo = sobreSinalNormalizado;
67 % custo = picoSinal;
68 % custo = tempoPicoSinal;
69
70 % Agrega o custo encontrado ao cromossomo (ymax)
71 ffxTemp = [custo [x_pop(ic,1) x_pop(ic,2) x_pop(ic,3)]];
72
55
73 % Concatena nova linha na matriz de cromossomos
74 ffx_pop = [ffx_pop;ffxTemp];
75
76 % Incrementa contador do laco
77 ic=ic+1;
78 end
3.3.2 A sintonia do controlador PID através do algoritmo genético
Apesar de todas as características da resposta do sinal em degrau terem sido implemen-
tadas no código 3.4, por serem geralmente conflitantes entre si, em última instância somente
o máximo sobressinal Mp (overshoot) e o tempo de acomodacao ts (settling time) foram efeti-
vamente adotados para avaliação dos indivíduos neste estudo. Os resultados da sintonia para
atender as especificações deste último parâmetro podem ser vistos no apêndice A.
Por sua natureza estocástica, é válido ressaltar que o AG pode fornecer resultados dis-
tintos, inclusive quando a população inicial é a mesma em todas as execuções; deste modo,
não há garantia da solução ótima, porém uma solução próxima a esta é tida não apenas como
admissível, mas a que de fato é esperada em grande parte dos processos reais de sistemas de
controle.
3.3.2.1 O sobressinal Mp como parâmetro de custo
A tabela 3.2 e as figuras 3.5, 3.8, 3.11, 3.6, 3.9, 3.12, 3.7, 3.10 e 3.13 apresentam
alguns resultados obtidos com o AG, os quais estão em consonância com a maioria dos dados
analisados. O custo mínimo definido foi de 2% de sobressinal máximo (overshoot), Mp.
Tabela 3.2: Características da resposta transitória na sintonia realizada pelo AG (com Mp como custo).
Planta Kp Ki Kd tr tp ts Mp
3.1 6,6493 0,065069 5,8956 1,2622 3,0407 1,9382 1,9609
3.2 4,7442 0,1506 8,5589 0,67607 1,2799 3,2991 1,8557
3.3 5,3285 7,5339 0,10509 0,15084 3,7559 2,1706 0
56
Figura 3.5: Resposta ao degrau unitário da planta 3.1 sintonizada pelo AG (com Mp como custo).
Figura 3.6: Resposta ao degrau unitário da planta 3.2 sintonizada pelo AG (com Mp como custo).
57
Figura 3.7: Resposta ao degrau unitário da planta 3.3 sintonizada pelo AG (com Mp como custo).
Figura 3.8: Custo do indivíduo mais aptos através das gerações na planta 3.1 (com Mp como custo).
58
Figura 3.9: Custo do indivíduo mais aptos através das gerações na planta 3.2 (com Mp como custo).
Figura 3.10: Custo do indivíduo mais aptos através das gerações na planta 3.3 (com Mp como custo).
59
Figura 3.11: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.1 (com Mp comocusto).
Figura 3.12: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.2 (com Mp comocusto).
60
Figura 3.13: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.3 (com Mp comocusto).
3.4 Algoritmos genéticos versus Ziegler-Nichols
Das tabelas 3.1 e 3.2 e das figuras 3.5, 3.8, 3.11, 3.6, 3.9, 3.12 é possível inferir que a
sintonia efetuada pelo AG minimizou o sobressinal máximo nas plantas 3.1 e 3.2, do patamar
dos 60% resultantes pelo método da estabilidade marginal de Ziegler-Nichols para menos de
2%.
Concernente a planta 3.3, diferentemente do que ocorreu por Ziegler-Nichols, no qual
foi inviável sintonizá-la, o AG apresentou resultados otimizados, onde o sobressinal foi nulo.
Das figuras 3.11, 3.12 e 3.13, vale salientar a similaridade do sinal de saída em grande
parte dos cromossomos da população remanescente, demonstrando que os indivíduos com alta
qualidade são predominantes na execução final do algoritmo.
61
CONSIDERAÇÕES FINAIS
A sintonia robusta dos controladores PID é incessantemente estudada e debatida por
acadêmicos e engenheiros de sistemas de controle, denotando que este processo não é trivial;
sua complexidade é sensivelmente aumentada quando o conhecimento da planta é mínimo ou
inexistente.
Neste contexto, os resultados obtidos permitem afirmar que o AG oferece uma aborda-
gem metodológica viável, seja como ferramenta de auxílio ou de substituição ao especialista;
sob esta condição, é indicado que a implementação do algoritmo permita que o seu funciona-
mento na planta seja dinâmico, ou seja, que os parâmetros do controlador sejam recalculados
em tempo real (real time), especialmente quando o sistema permanecer por um longo período
sem intervenções.
Vale ressaltar que em sistemas de múltiplas exigências de desempenho, como minimi-
zação concomitante do sobressinal máximo e do tempo de subida, é indispensável a agregação
de técnicas de otimização multi-objetivos, tais como conjuntos ótimos de Pareto, entre outros
refinamentos.
Evidentemente este estudo não tem a presunção de apontar uma solução definitiva, sendo
recomendado avaliar se o custo para o desenvolvimento do método de calibração será inferior
ao custo associado à análise do sistema e do projeto de um controlador específico.
Finalmente, fica a expectativa de que o referencial teórico aqui levantado e os códigos
propostos contribuam, mesmo que de forma embrionária, para outros estudos e aperfeiçoamen-
tos, tanto entre os discentes como entre os docentes dos cursos de engenharia e controle.
62
REFERÊNCIAS BIBLIOGRÁFICAS
ARABAS, J.; MICHALEWICS, Z.; MULAWKA, J. GAVaPS - A Genetic Algorithm withVarying Population Size. Proceedings of the International Conference on Evolutionary Com-putation, 1994.
BEZERRA, M. S. Projeto, Implementação e Ensaios de um Controlador PID Utilizando FPGA.Monografia de Graduação em Engenharia Elétrica – Centro de Tecnologia, Universidade Fede-ral do Ceará, Fortaleza, 2010.
BORDON, M. E. Controlador PID Microprocessado. Dissertação (Mestrado) — Faculdade deEngenharia Elétrica, Universidade Estadual de Campinas, Campinas, São Paulo, 1993.
CEIDE, R. P. Controlador PID Digital para Posicionamento de Servomotor CC. Monografia deEspecialização – Faculdade de Engenharia, Universidade Estadual Paulista, Bauru, São Paulo,2006.
DORF, R. C.; BISHOP, R. H. Sistemas de Controle Modernos. Rio de Janeiro: LTC, 2009.
EIBEN, A.; RUTTKAY, Z. Self-Adaptivity for Constraint Satisfaction: Learn ing Penalty Func-tions. Leiden University and Free University Amsterdam, 1996.
FACCIN, F. Abordagem Inovadora no Projeto de Controladores PID. Dissertação (Mestrado)— Departamento de Engenharia Química, Universidade Federal do Rio Grande do Sul, PortoAlegre, 2004.
GONÇALVES, A. R. Algoritmos Genéticos. 2000. Disponível em: http://www.dca.fee.unicamp.br/~andreric/arquivos/pdfs/geneticos.pdf. Acessado em24/09/2011.
HAUGEN, F. Ziegler-Nichols Closed-Loop Method. 2010. Disponível em: http://tinyurl.com/6jnuxw9. Acessado em: 01/10/2011.
HAUGEN, F. Ziegler-Nichols Open-Loop Method. 2010. Disponível em: http://tinyurl.com/3gzdx9s. Acessado em: 01/10/2011.
HAUPT, R. L.; HAUPT, S. E. Pratical Genetic Algorithms. Hoboken, New Jersey: John Wileyand Sons, Inc., 2004.
IORIO, A.; LI, X. Parameter Control within a Co-operative Co-evolutionary Genetic Algo-rithm. School of Computer Science and Information Technology, RMIT University, MelbourneVIC 3001, Australia, 2002.
LACERDA, E. G. M.; CARVALHO, A. C. Sistemas Inteligentes: Aplicações a Recursos Hídri-cos e Ciências Ambientais. [S.l.]: UFRGS, 1999. Disponível em: http://www.dca.ufrn.br-/~estefane/metaheuristicas/ag.pdf. Acessado em 24/09/2011.
LINDEN, R. Algoritmos Genéticos. Rio de Janeiro: Brasport, 2008.
63
LOPES, H. S. Fundamentos da Computação Evolucionária e Aplicações. Bandeirantes, Paraná:Escola Regional de Informática da SBC, 2006.
MACHADO, P. F. G. O. Otimização de Controladores PID via Algoritmos Genéticos. Trabalhode Conclusão de Curso – Divisão de Ciência da Computação, Centro Técnico Aeroespacial,Instituto Tecnológico da Aeronáutica, São José dos Campos, 2005.
MICHALEWICZ, Z.; FOGEL, D. B. How to Solve it: Modern Heuristics. Berlin, Germany:Springer-Verlag Berlin Heidelberg, 2000.
MITCHELL, M. An Introduction to Genectic Algorithms. Cambridge, Massachusetts: The MITPress, 1999.
OGATA, K. Engenharia de Controle Moderno. São Paulo: LTC, 1998.
OGATA, K. Engenharia de Controle Moderno. São Paulo: Pearson Prentice Hall, 2010.
OLIVEIRA, J. R. d. F. O Uso de Algoritmos Genéticos na Decomposição Morfológica de Ope-radores Invariantes em Translação Aplicados a Imagens Digitais. Tese (Doutorado) — INPE,São José dos Campos, 1998.
ROSÁRIO, J. M. Princípios de Mecatrônica. São Paulo: Prentice Hall, 2005.
RUSSEL, S.; NORVIG, P. Inteligência Artificial. Rio de Janeiro: Campus, 2004.
SANTOS, G. J. et al. Uso de Algoritmos Genéticos no Projeto de Controlador PID para Plantade uma Termelétrica a Ciclo Combinado. Simpósio Brasileiro de Sistemas Elétricos, 2010.
VIEIRA, R. V. Um Algoritmo Genético Baseado em Tipos Abstratos de Dados e sua Especifi-cação Z. Tese (Doutorado) — Centro de Informática da Universidade Federal de Pernambuco,Recife, 2003.
WOLPERT, D. H.; MACREADY, W. G. No Free Lunch Theorems for Search. Relatório TécnicoSFI-TR-95-02-010, Santa Fé Institute, Santa Fé, U.S.A, 1995.
ZIEGLER, J.; NICHOLS, N. B. Optimum Settings for Automatic Controllers. American Societyof Mechanical Engineers, 1942.
64
APÊNDICE A
Os resultados da sintonia do controlador PID com o custo mínimo definido pelo tempo
de acomodação (settling time) ts = 2s, encontram-se na tabela 1 e as figuras 1, 4, 7, 2, 5, 8, 3, 6
e 9.
Tabela 1: Características da resposta transitória na sintonia realizada pelo AG (com ts como custo)
Planta Kp Ki Kd tr tp ts Mp
3.1 8,2645 0,033941 7,7352 0,97836 2,2306 1,5029 1,6072
3.2 5,158 0,02714 6,4357 0,79294 1,5724 1,9441 3,9263
3.3 2,9862 7,9094 0,19681 0,92028 4,0506 1,7162 0,057992
Figura 1: Resposta ao degrau unitário da planta 3.1 sintonizada pelo AG (com ts como custo).
65
Figura 2: Resposta ao degrau unitário da planta 3.2 sintonizada pelo AG (com ts como custo).
Figura 3: Resposta ao degrau unitário da planta 3.3 sintonizada pelo AG (com ts como custo).
66
Figura 4: Custo do indivíduo mais aptos através das gerações na planta 3.1 (com ts como custo).
Figura 5: Custo do indivíduo mais aptos através das gerações na planta 3.2 (com ts como custo).
67
Figura 6: Custo do indivíduo mais aptos através das gerações na planta 3.3 (com ts como custo).
Figura 7: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.1 (com ts comocusto).
68
Figura 8: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.2 (com ts comocusto).
Figura 9: Resposta ao sinal em degrau dos indivíduos da população remanescente na planta 3.3 (com ts comocusto).
69
APÊNDICE B
Código 1: Algoritmo genético para sintonia de um controlador PID
1 % ALGORITMO GENETICO PARA SINTONIA DE UM CONTROLADOR PID
2 % Baseado no "Continuous Genetic Algorithm" de Haupt & Haupt (2003)
3 % ___________________________________________________________________
4 close all; clear all; clc;
5
6 % Variavel para chamada da funcao de avaliacao
7 fAvaliacao = 'fAvaliaPID';
8
9 % Quantidade de variaveis a serem otimizadas = quantidade de genes
10 numGene = 3;
11
12 % Limites inferior e superior das variaveis
13 varLimAlto = 10; varLimBaixo = 0; % limites das variaveis
14
15 % Parametros para o criterio de parada
16 maxIteracao = 100;
17 minCusto = 2;
18
19 % ___________________________________________________________________
20 % Parametros do AG
21 % ___________________________________________________________________
22 tamPopulacao = 60; % Onde (tamPopulacao/2) seja par
23 txMutacao = .15;
24 selecao = 0.65; % fracao da populucao a ser mantida
25
26 % Calcula quantos individuos serao mantidos
27 qtMantidos = floor(selecao*tamPopulacao);
28
29 % Calcula quantas mutacoes devem ocorrer
30 qtMutacao = ceil((tamPopulacao-1)*numGene*txMutacao);
31
32 % Calcula quantos acasalamentos devem ocorrer
33 % qtAcasalamento = ceil((tamPopulacao-qtMantidos)/2);
34
70
35 % ___________________________________________________________________
36 % Populacao inicial
37 % ___________________________________________________________________
38 iGA = 0; % Contador de geracao inicializado
39
40 % Cria a populacao inicial
41 populacao = (varLimAlto-varLimBaixo)*rand(tamPopulacao,numGene)+...
42 varLimBaixo;
43
44 % Calcula o custo para cada individuo da populacao inicial
45 custo = feval(fAvaliacao,populacao);
46
47 % Classifica a populacao retornada pela funcao de avaliacao com base ...
no
48 % custo agregado a cada individuo
49 [custo,ind] = sortrows(custo);
50 populacao = populacao(ind,:);
51
52 % Salva o menor custo da populacao
53 menorCusto = custo(1);
54
55 % Calcula a media de custo da populacao
56 mediaCusto = mean(custo(:,1));
57
58 % ___________________________________________________________________
59 % Itera atraves das geracoes
60 % ___________________________________________________________________
61 while iGA<maxIteracao
62 iGA = iGA+1; % incrementa contador de geracoes
63
64 % Calcula quantos acasalamentos devem ser efetuados
65 qtAcasalamento = ceil((tamPopulacao-qtMantidos)/2);
66
67 % _______________________________________________________________
68 % Selecao
69 % _______________________________________________________________
70 % Calcula os pesos dos cromossomos para uso na funcao de
71 % distribuicao de probabilidade
72 pesos = flipud((1:tamPopulacao)'/sum((1:tamPopulacao)));
73
74 % Calcula a distribuicao de probabilidade
75 disProbabilidade = [0 cumsum(pesos(1:tamPopulacao))'];
76
71
77 pesosMae = flipud((1:qtMantidos)'/sum((1:qtMantidos)));
78 selecionaMaes = [0 cumsum(pesosMae(1:qtMantidos))'];
79
80 %Sorteia valores aleatorios para selecao dos individuos
81 pesosPai = flipud((1:tamPopulacao)'/sum((1:tamPopulacao)));
82 selecionaPais = [0 cumsum(pesosPai(1:tamPopulacao))'];
83
84 % Iteracao para busca de individuos que devem acasalar
85 ic = 1;
86 while ic ≤ qtAcasalamento
87 for id = 2:tamPopulacao+1
88 if selecionaMaes(ic+1) ≤ disProbabilidade(id) && ...
89 selecionaMaes(ic+1) > disProbabilidade(id-1)
90 indMae(ic) = id-1; % indice do individuo-mae
91 end
92 if selecionaPais(ic+1) ≤ disProbabilidade(id) && ...
93 selecionaPais(ic+1) > disProbabilidade(id-1)
94 indPai(ic) = id-1; % indice do individuo-pai
95 end
96 end
97 ic = ic+1;
98 end
99
100 % _______________________________________________________________
101 % Realiza o acasalamento com crossover heuristico de um ponto
102 % (usa o metodo da extrapolacao)
103 % _______________________________________________________________
104 % Gera vetor com indices pares para acasalamento
105 ix = 2:2:qtMantidos;
106
107 % Define o vetor usado para selecionar o ponto de corte
108 xPonto = ceil(rand(1,qtAcasalamento)*numGene);
109
110 % Gera valores aleatorios para uso no crossover heuristico
111 r = rand(1,qtAcasalamento);
112
113 % Inicia iteracao de cruzamento
114 for ic = 1:qtAcasalamento
115
116 % Inicia a combinacao dos genes dos pais
117 xy = populacao(indMae(ic),xPonto(ic))-populacao(indPai(ic),...
118 xPonto(ic));
119
72
120 % Insere os genes dos pais nos individuos da nova geracao
121 % 1a prole
122 populacao(qtMantidos+ix(ic)-1,:) = populacao(indMae(ic),:);
123
124 % 2a prole
125 populacao(qtMantidos+ix(ic),:) = populacao(indPai(ic),:);
126
127 % Completa a combinacao dos genes dos pais e salva na prole
128 populacao(qtMantidos+ix(ic)-1,xPonto(ic)) = ...
129 populacao(indMae(ic),xPonto(ic))-r(ic).*xy; % 1a prole
130 populacao(qtMantidos+ix(ic),xPonto(ic)) = ...
131 populacao(indPai(ic),xPonto(ic))+r(ic).*xy; % 2a prole
132
133 % Substitui os genes a direita pelos do individuo de indice
134 % subsequente quando o gene de maior indice nao for
135 % selecionado para ponto de corte
136 if xPonto(ic)<numGene
137 populacao(qtMantidos+ix(ic)-1,:) = ...
138 [populacao(qtMantidos+ix(ic)-1,1:xPonto(ic)) ...
139 populacao(qtMantidos+ix(ic),xPonto(ic)+1:numGene)];
140 populacao(qtMantidos+ix(ic),:) = ...
141 [populacao(qtMantidos+ix(ic),1:xPonto(ic)) ...
142 populacao(qtMantidos+ix(ic)-1,xPonto(ic)+1:numGene)];
143 end
144 end
145
146 %________________________________________________________________
147 % Mutacao da populacao
148 %________________________________________________________________
149
150 % Sorteia linha para mutacao
151 mutaLinha=sort(ceil(rand(1,qtMutacao)*(tamPopulacao-1))+1);
152
153 % Sorteia coluna mutacao
154 mutaColuna=ceil(rand(1,qtMutacao)*numGene);
155
156 % Efetua mutacao
157 for ii=1:qtMutacao
158 populacao(mutaLinha(ii),mutaColuna(ii)) = ...
159 (varLimAlto-varLimBaixo)*rand+varLimBaixo;
160 end
161
162 %________________________________________________________________
73
163 % Avalia o custo da nova geracao
164 %________________________________________________________________
165 custo=feval(fAvaliacao,populacao);
166
167 % Classifica a populacao retornada pela funcao de avaliacao com ...
base no
168 % custo agregado a cada individuo
169 [custo,ind] = sortrows(custo);
170 populacao = populacao(ind,:);
171
172 %________________________________________________________________
173 % Gera estatistica para uma simples analise
174 %________________________________________________________________
175 menorCusto(iGA+1) = custo(1);
176 mediaCusto(iGA+1) = mean(custo(:,1));
177
178 %________________________________________________________________
179 % Criterio de parada
180 %________________________________________________________________
181 if (iGA > maxIteracao) || ((custo(1) ≤ minCusto))
182 break
183 end
184
185 % Imprime na tela a geracao e o custo
186 [iGA custo(1)]
187
188 end % Fim das iteracoes atraves das geracoes (iGA)
189
190 %____________________________________________________________________
191 % Imprime melhores parametros
192 %____________________________________________________________________
193 day = clock;
194 disp(datestr(datenum(day(1),day(2),day(3),day(4),day(5),day(6)),0))
195 disp('- Algoritmo genetico com representacao numerica -')
196 disp(['- A funcao otimizada e ' fAvaliacao])
197 format short g
198 disp(['- Tamanho da populacao = ' num2str(tamPopulacao)])
199 disp(['- Taxa de mutacao = ' num2str(txMutacao)])
200 disp(['- Variaveis = ' num2str(numGene)])
201 disp(['- Quantida de geracoes = ' num2str(iGA)])
202 disp(['- Melhor custo = ' num2str(custo(1))])
203 disp(['- Melhor solucao: ' num2str(populacao(1,:))])
204
74
205 %____________________________________________________________________
206 % Plota graficos do historico do custo medio e melhores individuos
207 % atraves das geracoes
208 %____________________________________________________________________
209 figure(1)
210 iters=0:length(menorCusto)-1;
211 plot(iters,menorCusto,'b');
212 xlabel('Geracao');ylabel('Custo');
213 text(0,menorCusto(1),'Melhor');
214 grid on
215
216 %____________________________________________________________________
217 % Simulacao da planta com controlador PID sintonizado pelo AG
218 %____________________________________________________________________
219 % Funcao de tranferencia da planta
220 sysPlanta=fSimulaPlanta();
221
222 % Parametros do controlador PID encontrados pelo AG
223 Kd = populacao(1,1);
224 Kp = populacao(1,2);
225 Ki = populacao(1,3);
226 denPID = [1 0];
227 numPID = [Kd Kp Ki]
228
229 % Funcao de transferencia do controlador PID
230 ctrlPID=tf(numPID,denPID)
231
232 % Serializa o controlador PID com a planta
233 sysSerial=series(ctrlPID,sysPlanta)
234
235 % Realiamenta o sistema
236 sysSintonizado=feedback(sysSerial,1)
237
238 %____________________________________________________________________
239 % Plota o sinal de saida do sistema
240 %____________________________________________________________________
241 figure(2)
242 tempo = [0:0.01:20];
243 [y tempo] = step(sysSintonizado,tempo);
244 plot(tempo,y,'k');
245 grid on;
246
247
75
248 %____________________________________________________________________
249 % Retorna os parametros do sinal de saida do sistema
250 %____________________________________________________________________
251 S = stepinfo(sysSintonizado)
252
253 %____________________________________________________________________
254 % Plota grafico 3D com o sinal de saida para cada individuo
255 % da populacao
256 %____________________________________________________________________
257 fPlota3D(populacao);
Código 2: Plotagem do gráfico 3D da resposta ao sinal em degrau dos indíviduos da população remanescente
1 % GERA GRAFICO 3D DO SINAL DE SAIDA PARA CADA INDIVIDUO DA POPULACAO
2 % Esta funcao percorre a populacao para gerar grafico 3D
3 %____________________________________________________________________
4 function [] = fPlota3D(x_pop)
5
6 % Funcao de tranferencia da planta
7 [sysPlanta] = fSimulaPlanta();
8
9 % Define o denominador da funcao de transferencia do controlador PID
10 denPID = [1 0];
11
12 % Vetor que recebe os dados para plotagem
13 y = [];
14
15 tamPopulacao = length(x_pop);
16 tempo = [0:0.01:20];
17 tamPlote = 0:1:tamPopulacao-1;
18
19 % Incrementa o ganho em passos de 1 (um) ate o limite estabelecido (...
limKp)
20 for ic = 1:1:tamPopulacao
21
22 % Define Numerador da funcao de transferencia do PID ([Kd Ki Kp])
23 % tomado a partir da populacao recebida do AG
24 numPID = [x_pop(ic,1) x_pop(ic,2) x_pop(ic,3)];
25
26 % numPID = [tamPopulacao(ic)];
27 ctrlPID = tf(numPID,denPID);
28
76
29 % Funcao de transferencia do controlador PID
30 % ctrlPID = tf(numPID,denPID);
31
32 % Serializa o controlador PID com a planta (sysReal)
33 sysSerial = series(ctrlPID,sysPlanta);
34
35 % Realiamenta o sistema
36 sysSintonizado = feedback(sysSerial,1);
37
38 %_________________________________________________________________
39 % Retorna os parametros do sinal de saida do sistema para plotagem
40 % do grafico 3D
41 %_________________________________________________________________
42
43 yTemp = step(sysSintonizado,tempo);
44 y = [y;yTemp'];
45
46 end
47
48 %_________________________________________________________________
49 % Plota grafico 3D
50 %_________________________________________________________________
51 figure(3)
52 meshgrid(tempo,tamPlote);
53 mesh(tempo,tamPlote,y);
54
55 end
77