You are on page 1of 89

UNIVERSIDADE FEDERAL DO PARAN

SETOR DE CINCIA E TECNOLOGIA


CURSO DE ENGENHARIA ELTRICA



EDUARDO DELINSKI DOS SANTOS
FELIPE ESCOBAR PIRES





CONTROLE NEURO-FUZZY PARA UM MANIPULADOR ROBTICO








CURITIBA 2011
2
EDUARDO DELINSKI DOS SANTOS
FELIPE ESCOBAR PIRES





CONTROLE NEURO-FUZZY PARA UM MANIPULADOR ROBTICO


Trabalho de Concluso de Curso de
Engenharia Eltrica, Departamento
de Engenharia Eltrica, Setor de
Cincia e Tecnologia, Universidade
Federal do Paran, sob a orientao
do Prof. Dr. Gideon Villar Leandro.














CURITIBA 2011
3
EDUARDO DELINSKI DOS SANTOS
FELIPE ESCOBAR PIRES



CONTROLE NEURO-FUZZY PARA UM MANIPULADOR ROBTICO



TRABALHO APRESENTADO AO CURSO DE ENGENHARIA ELTRICA, DA
UNIVERSIDADE FEDERAL DO PARAN, COMO REQUISITO PARA A
OBTENO DO TTUL OD GRADUAO.


BANCA AVALIADORA
PROF. DR. GIDEON VILLAR LEANDRO
PROF. DR. GUSTAVO OLIVEIRA
PROFA. DRA. GISELLE LOPES FERRARI



CURITIBA, JULHO DE 2011.

4
RESUMO

Manipuladores robticos so altamente utilizados na indstria automatizada devido ao
fato de possuirem maior versatilidade, produtividade e eficincia. No campo da
robtica, os servomotores so os mais utilizados, pois possuem torque elevado e alta
preciso. Neste trabalho foram desenvolvidos controladores para controlar a resposta do
servomotor, adaptando a velocidade de deslocamento angular em funo da tarefa que o
manipulador ir desempenhar. A tcnica de controle escolhida foi o Neuro-Fuzzy, que
combina a natureza no Booleana da Lgica Fuzzy e a capacidade de aprendizado das
Redes Neurais Artificiais. O objetivo desse estudo implementar de forma prtica essa
tcnica de controle em um prottipo de manipulador robtico.

Palavras chave: Neuro-Fuzzy, servomotor, manipulador robtico, Lgica Fuzzy, Redes
Neurais.











5
ABSTRACT

Robotic manipulators are highly used in automated industry due to the fact that they
have more versatility, productivity and efficiency. In the field of robotics, servomotors
are most used, because they have higher torque and high precision. In this work was
developed controllers to control the response of the servomotor, adapting its speed in
regard of the task the manipulator will perform. The chosen control technique was
Neuro-Fuzzy, which combines the non-Boolean nature of Fuzzy Logic and the learning
capabilities of the Artificial Neural Network. With this study we aim to implement this
technique in a robotic manipulator prototype.

Keywords: Neuro-Fuzzy, servomotor, robotic manipulator, Fuzzy Logic, Neural
Networks.












6

SUMRIO
LISTA DE FIGURAS ................................................................................................. 8
1 INTRODUO ................................................................................................. 10
1.1 Objetivos .................................................................................................... 10
1.2 Justificativa ................................................................................................ 11
2 O MANIPULADOR ROBTICO .................................................................... 12
2.1 Introduo ao Manipulador ...................................................................... 12
2.2 Partes do Manipulador .............................................................................. 12
2.3 Grau de Liberdade .................................................................................... 14
2.4 Configurao do Rob ............................................................................... 15
2.5 Sistemas de Acionamento .......................................................................... 15
2.6 Unidade de Controle .................................................................................. 17
2.7 Dinmica do Brao Robtico ..................................................................... 18
3 LGICA FUZZY E REDES NEURAIS .......................................................... 20
3.1 Introduo ................................................................................................. 20
3.2 Lgica Fuzzy .............................................................................................. 20
3.2.1 O Processo de Controle por Lgica Fuzzy ........................................ 22
3.2.2 Fuzzyficao ....................................................................................... 23
3.2.3 Inferncia Fuzzy................................................................................. 25
3.2.4 Defuzzyficao ................................................................................... 28
3.3 Redes Neurais ............................................................................................ 32
3.3.1 Introduo .......................................................................................... 32
3.3.2 Modelo Geral de Neurnio ................................................................ 33
3.3.3 Redes Neurais ..................................................................................... 36
3.3.4 Redes Neurais Multicamadas ............................................................ 36
3.3.5 Treinamento da RNA ........................................................................ 39
3.3.6 Algoritmo de Retropropagao ......................................................... 40
3.3.7 Projeto das RNAs ............................................................................... 44
4 CONTROLADORES ........................................................................................ 45
4.1 Controle ..................................................................................................... 45
4.1.1 Controlador Proporcional, Integral, e Derivativo (PID) .................. 45
4.1.2 Ajuste do Compensador PID ............................................................. 47
4.1.3 O Algoritmo de Ajuste Ziegler-Nichols ............................................. 48
4.1.4 Modelo PID Discreto .......................................................................... 49
4.2 O Controlador PI Fuzzy ............................................................................ 49
4.3 Controle Adaptativo de um PID usando RNAs Recursivas ..................... 50
4.4 Neuro-Fuzzy............................................................................................... 56
5 PARTE PRTICA ............................................................................................ 58
5.1 Servomotores ............................................................................................. 58
5.2 Obteno da Funo de Transferncia do Servomotor ............................ 61
5.3 Kits de Desenvolvimento ........................................................................... 64
5.4 Construo do Prottipo ........................................................................... 65
5.5 Implementao do Sistema de Controle ................................................... 71
6 RESULTADOS OBTIDOS ............................................................................... 73
6.1 Simulaes ................................................................................................. 73
6.1.1 PID ...................................................................................................... 73
6.1.2 PI Fuzzy .............................................................................................. 74
7
6.1.3 PID Neural ......................................................................................... 75
6.2 Resultados Prticos ................................................................................... 76
6.2.1 PID ...................................................................................................... 76
6.2.2 PI Fuzzy: ............................................................................................ 78
6.2.3 PID Neural ......................................................................................... 81
6.2.4 Neuro-Fuzzy ....................................................................................... 83
7 CONCLUSO ................................................................................................... 87
8 BIBLIOGRAFIA ............................................................................................... 88





















8

LISTA DE FIGURAS

Figura 1: Junta de rotao ........................................................................................... 14
Figura 2: Rob articulado ............................................................................................ 15
Figura 3: Controle em Malha Fechada ......................................................................... 18
Figura 4: Diagrama do funcionamento do controle por Lgica Fuzzy .......................... 22
Figura 5: Diferentes tipos de funes de pertinncia .................................................... 23
Figura 6: Funo de pertinncia triangular para a varivel lingustica VAR ................. 25
Figura 7: Mtodos de defuzzyficao .......................................................................... 30
Figura 8: Neurnio artificial esttico ........................................................................... 33
Figura 9: Diversas funes de ativao........................................................................ 34
Figura 10: Representao de uma rede MLP ............................................................... 37
Figura 11: Esquematizao do processo do algoritmo Backpropagation ...................... 41
Figura 12: Controlador PID ......................................................................................... 46
Figura 13: PID Neural ................................................................................................. 52
Figura 14: Diagrama de Blocos com PID Neural e Modelo de Referncia ................... 54
Figura 15: Um modelo de servomotor tpico ............................................................... 58
Figura 16: Relao da largura de pulso enviada ao servo com a rotao angular do
mesmo ........................................................................................................................ 59
Figura 17: Componentes internos de um servomotor ................................................... 60
Figura 18: A interface para obteno do modelo com as opes utilizadas e os
resultados .................................................................................................................... 62
Figura 19: Kit Arduino Mega ...................................................................................... 65
Figura 20: Esquema inicial do prottipo do brao robtico .......................................... 66
Figura 22: Esquema final de construo do brao robtico .......................................... 67
Figura 23: Vista lateral (esquerda) e frontal (direita) do manipulador .......................... 69
Figura 24: Vista lateral do manipulador com antebrao e garra ................................... 69
Figura 25: Especificaes e dimenses do servo HXT 900 .......................................... 70
Figura 26: Imagem real do servomotor HXT 900 ........................................................ 70
Figura 27: Diagrama de blocos do controlador PID ..................................................... 73
Figura 28: Resposta do PID a uma referncia de 90 ................................................... 74
Figura 29: Diagrama de blocos do controlador PI Fuzzy ............................................. 74
Figura 30: Resposta do PI Fuzzy a uma referncia de 90 ........................................... 75
Figura 31: Resposta do PID Neural a uma referncia de 90........................................ 75
Figura 32: Resposta do PID para referncia de 90 ...................................................... 77
Figura 33: Fluxograma para cdigo do PID ................................................................. 78
Figura 34: Funes de pertinncia das entradas (em cima) e sadas (em baixo) ............ 79
Figura 35: Resposta do controlador PI Fuzzy .............................................................. 79
Figura 36: Fluxograma para o cdigo do PI Fuzzy ...................................................... 80
Figura 37: Resposta do PID-Neural ............................................................................. 81
Figura 38: Fluxograma para o cdigo do PID Neural................................................... 82
Figura 39: Resposta dos Controladores Neuro-Fuzzy .................................................. 84
Figura 40: Fluxograma para o cdigo do Neuro-Fuzzy Concorrente ............................ 85
Figura 41: Fluxograma para o cdigo do Neuro-Fuzzy Cooperativo ............................ 86

9

LISTA DE TABELAS

Tabela 1: Tabela com os efeitos dos parmetros do PID .............................................. 47
Tabela 2: Regras Fuzzy ............................................................................................... 79





















10

1 INTRODUO

Este projeto consiste na construo de um manipulador articulado com 3 graus
de liberdade (movimentos para frente, para cima e um movimento angular da garra) e
no desenvolvimento de controladores do tipo PID Neuro-Fuzzy para controlar seus
movimentos, que possuir no seu rgo terminal um suporte para uma garra. Atravs de
um sistema de comunicao com o computador, os dados sero passados para o sistema
de controle, que guardar em sua memria o percurso que o brao seguir. Quando o
programa estiver sendo executado, ser transmitido pelo controlador o sinal de controle
para os servomotores, que iro mover o brao robtico e o atuador na extremidade dele.

1.1 Objetivos

Objetivo geral:

Desenvolver num sistema embarcado a lgica NEURO-FUZZY para
movimentar e controlar a posio um manipulador robtico articulado, que ter 3 graus
de liberdade, e com uma garra no seu rgo terminal, dessa forma o brao pegar
pequenos objetos num campo limitado.





11
Objetivos especficos:

Construir o brao robtico.
Programar um sistema microcontrolado utilizando a lgica Neuro-Fuzzy como
base para a tcnica de controle do posicionamento do manipulador.
Testar seus movimentos.

1.2 Justificativa

Em muitas situaes necessrio substituir o ser humano em tarefas em que ele
no pode realizar, por causa de suas prprias limitaes fsicas, ou por envolverem
condies desagradveis ou extremas. Devido a essas necessidades este projeto prope a
construo de um brao robtico.
A utilizao do brao robtico contribui em vrios fatores como exemplificado a
seguir:
Fatores tcnicos: flexibilidade na gama de produtos fabricados, incremento
da preciso, fora, rapidez, uniformidade e suporte a ambientes hostis,
incremento dos ndices de qualidade e reduo do nmero de peas
rejeitadas.
Fatores econmicos: utilizao eficiente de unidades de produo, com
intensivo aumento de produtividade (inexistncia de interrupes, etc),
reduo do tempo de preparao da fabricao.
Fatores sociolgicos: reduo do nmero de acidentes, afastamento do ser
humano de locais perigosos para a sade. Reduo de horrios de trabalho,
aumento do poder de compra.
12
2 O MANIPULADOR ROBTICO

2.1 Introduo ao Manipulador

O tipo mais comum de rob o brao robtico, que na indstria, normalmente
formado por sete segmentos e unido por seis junes, utilizando-se de sensores de
movimento para ter certeza de seu trajeto.
Um rob industrial com seis junes lembra um brao humano. Ele tem o
equivalente a um ombro, cotovelo e pulso. A base montada presa em uma superfcie
esttica em vez de um corpo mvel. O rob industrial tem seis graus de liberdade, o que
significa que ele pode se mover em seis direes diferentes. J um brao humano tem
sete graus de liberdade.
A funo de um brao robtico mover um rgo terminal de um lugar para o
outro. Voc pode acoplar todo tipo de rgos terminais a um brao robtico. O rgo
terminal mais comum uma verso simplificada de mo, que pode apanhar e carregar
diferentes objetos.

2.2 Partes do Manipulador

Os manipuladores robticos possuem trs partes principais: uma base fixa, um
brao articulado, e uma unidade de controle. Os manipuladores robticos possuem um
determinado numero de graus de liberdade, que o nmero de variveis que podem
alterar sua posio.


13
Base Fixa

A base fixa consiste normalmente em um estrutural presa ao cho, mas que pode
estar presa s paredes ou ao teto, ou seja, normalmente ela se encontra num lugar fixo,
mas nada impede de que seja montada em cima de outra mquina ou mesmo sobre uma
plataforma mvel.

Brao Articulado

O brao articulado formado por vrias partes: elos, juntas, atuadores de juntas,
sensores de posio de juntas e rgo terminal. Elos so as partes rgidas de um brao
robtico, comparveis aos ossos do brao de uma pessoa. Juntas so as partes do brao
robtico que permitem uma conexo mvel entre dois elos. Os tipos mais comuns de
juntas so: deslizantes e rotativas. Atuadores produzem os movimentos no brao quando
recebem um sinal de entrada. O tipo de atuador vai depender do tipo de junta de que se
ter no brao. Os sensores de posio de juntas codificam informaes sobre as posies
das juntas sendo enviadas como sinais ao controlador do rob. Os rgos terminais
freqentemente so garras ou ferramentas especializadas.

Juntas
A junta rotacional: Gira em torno de uma linha imaginaria estacionaria chamada
de eixo de rotao. Ela abre e fecha como uma dobradia, com indicado pela Figura 1.
14

Figura 1: Junta de rotao

rgo Terminal

rgo terminal o termo usado para descrever a mo ou ferramenta que esta
conectada ao pulso do brao robtico. O rgo terminal o responsvel por realizar a
manipulao de objetos em diferentes tamanhos, formas e materiais, porm esta
manipulao depende da aplicao ao qual se destina.

2.3 Grau de Liberdade

Grau de liberdade o nmero de articulaes em um brao robtico. Quando o
movimento relativo da junta ocorre em um nico eixo, a articulao tem um grau de
liberdade. Quando o movimento por mais de um eixo, a articulao tem dois graus de
liberdade. Sendo assim, cada junta pode definir um ou dois graus de liberdade,
dependendo da junta, e o numero de graus de liberdade do brao robtico ser igual
soma de dos graus de liberdade de todas as suas juntas.




15
2.4 Configurao do Rob

Rob Articulado

Estes tipos de robs, possuem 3 juntas rotativas, conforme ilustrada a Figura 2.
Eles so os mais usados nas indstrias, por terem uma configurao semelhante ao do
brao humano. Este modelo de configurao e o mais verstil dos manipuladores, pois
assegura maiores movimentos dentro de um espao compacto.

Figura 2: Rob articulado

2.5 Sistemas de Acionamento

Os acionadores so dispositivos responsveis pelo movimento das articulaes e
do desempenho dinmico do rob.




16
Servomotor

Servomotores so compostos por motores DC e um redutor de velocidades, junto
com um sensor de posio e um sistema de controle realimentado. Em outras palavras,
os servos-motores podem ser considerados como sendo motores comandados em
posio, j que, do ponto de vista de quem os utiliza, o controle interno em malha
fechada irrelevante. Os servos-motores so pequenos, com ampla variao de torques.
O mecanismo de posicionamento ajusta a posio angular por meio de um sinal que lhe
enviado.
Enquanto esse sinal estiver na entrada, o servo ir manter a sua posio angular.
Em geral o sinal do tipo PWM, ou seja, a posio angular ir depender da largura do
pulso enviado.
As vantagens dos Servos-motores como acionadores eltricos para
manipuladores so:
Controle preciso.
Estrutura simples e fcil manuteno.
Baixo custo comparado aos outros acionadores.
As desvantagens:
No pode manter um momento constante nas mudanas de velocidade de
rotao.
Sujeitos a danos para cargas pesadas suficientes para parar o motor.
Baixa razo de potncia de sada do motor e seu peso, necessitando um
motor grande no brao.
Resumindo, os acionadores eltricos so melhores em aplicaes envolvendo:
17
Alta preciso de posio;
Transferncia de carga de tamanho pequeno e mdio;

2.6 Unidade de Controle

A unidade de controle recebe sinais de entrada dos sensores do rob e transmite
sinais de sada para os atuadores do rob. H dois tipos de sistemas de controle de
robs: malha aberta e malha fechada.
No esquema do tipo malha aberta, no h sensor medindo como o manipulador
realmente se moveu em resposta aos sinais enviados para os atuadores, e
conseqentemente no h sinais de realimentao do manipulador para o controlador.
Portanto no h maneira de se saber a posio atual do manipulador. Tudo o que se sabe
onde ele deveria estar e no se ele realmente alcanou a posio desejada.
No sistema de malha fechada, depois que o controlador envia sinais ao atuador
para mover o manipulador, um sensor no manipulador robtico, retorna um sinal ao
controlador.
O sistema de controle de qualquer rob realizado por meio de um sistema de
software e hardware. Este sistema processa os sinais de entrada e converte estes
sinais em uma ao ao qual foi programado.
O sistema de hardware constitui de servomotores e sensores. Um dos fatores
mais importantes a utilizao de sensores, pois consistem em verificar o estado atual
do dispositivo a ser controlado e comparar essa medida com um valor pr-definido. Esta
comparao resultara num erro, ao qual o sistema de controle far os ajustes necessrios
para reduzir o erro zero. Um esquema simples de malha fechada e apresentado em
diagrama de blocos na Figura 3.
18


Figura 3: Controle em Malha Fechada

2.7 Dinmica do Brao Robtico

O desempenho dinmico do brao robtico esta associado velocidade de
resposta, estabilidade e preciso. A velocidade de resposta refere-se destreza do brao
robtico ao mover-se de um lugar para outro num certo perodo de tempo. A
estabilidade pode ser estimada com base no tempo necessrio para amortecer as
oscilaes que ocorrem durante o movimento de uma posio para a outra. Porm ao
alterar a estabilidade do brao pode-se alterar a velocidade de resposta do mesmo.
A preciso esta relacionada com a velocidade de resposta e com a estabilidade,
pois uma medida de erro na posio. A preciso de movimento esta intrinsecamente
correlacionada com trs caractersticas, como segue:
Resoluo espacial
Preciso dos dispositivos
Repetibilidade
A resoluo espacial depende diretamente do controle de sistema e das
inexatides mecnicas do brao robtico. O sistema de controle o responsvel por
controlar todos os incrementos individuais das articulaes. J as inexatides
relacionam-se com a qualidade dos componentes que formam o rob.
19
A preciso relaciona-se com a resoluo espacial, pois a preciso depende dos
incrementos que as juntas podem realizar para se movimentar e atingir um ponto
determinado.
Por fim, a repetibilidade esta relacionada com a capacidade do brao robtico de
posicionar repetidamente seu pulso num ponto determinado. Estes movimentos podem
sofrer influencias das partes mecnicas, da flexibilidade e das limitaes do sistema de
controle.


















20
3 LGICA FUZZY E REDES NEURAIS

3.1 Introduo

3.2 Lgica Fuzzy

A Lgica Fuzzy, a qual tem base na Teoria dos Conjuntos, fundamenta-se no
conceito de que no mundo real, o controle realizado pelos seres humanos no se
constitui de valores Booleanos, verdadeiro ou falso (comumente com valores atribudos
de 1 e 0, respectivamente). Ao se deparar com situaes que exigem uma resposta, os
seres humanos no reagem com um sinal exato com valor definido.
Por exemplo, ao se dirigir um carro, digamos que o carro acabe desviando-se um
pouco para um dos lados. Nosso instinto o de avaliar superficialmente de quanto foi o
desvio e reagir com uma ao no sentido contrrio, proporcionalmente. Pode ser que o
carro vire um pouco para a direita, ou muito para a direita. Essas atribuies lingusticas
so chamados na Lgica Fuzzy de variveis lingusticas. No caso do carro, o condutor
sabe que o carro virou pra direita, mas no tem certeza de quantos graus exatamente,
mas ele tem noo aproximada da intensidade que pode ser atribuda ao desvio: um
pouco, muito, quase nada. Por meio dessa avalio ele pode reagir e virar o volante na
direo contrria, com uma intensidade aproximadamente equivalente ao desvio.
Digamos que o carro vire um pouco para a direita, o condutor ir virar o volante um
pouco para a esquerda. claro que o movimento correspondente a um pouco
realizado pelo condutor tem grandes chances de no ser o valor exato necessrio para
que o carro fique centralizado na pista novamente (apesar de ter grandes chances de
21
estar prximo ao valor necessrio), mas o processo se repete, at que se atinja um
resultado satisfatrio comparado ao desejado.
Com base nesse raciocnio percebeu-se que era possvel realizar aes de
controle por meio de variveis lingusticas que denotam certa qualidade, e por sua vez
atribuir um grau relativo a essa qualidade s variveis de entrada. Esse tratamento
muito mais acessvel, necessitando-se apenas do conhecimento dos limites que definem
cada varivel linguistica. Nesse momento entra o conhecimento do especialista, algum
que conhece o processo e tem noes sobre as aes a serem tomadas em cada caso, e
como classificar as entradas com as variveis lingusticas.
Por meio do conhecimento do especialista pode-se ento estabeler uma srie de
regras que constituem o controle por Lgica Fuzzy. Por meio dessas regras o sistema
Fuzzy avalia as entradas e obtm as sadas. As regras so da forma se ... ento, como
mostrado a seguir (utilizando o exemplo do carro):

Se desvio foi MUITO PARA DIREITA ento volante deve ser MUITO PARA ESQUERDA

Essas regras podem ter qualquer nmero de entradas e sadas, constituindo-se de
todas as combinaes possveis de entradas. Utilizando esse racocnio simples com
natureza humana, a Lgica Fuzzy se mostrou uma alternativa de controle muito
interessante, pois seu projeto e sua implementao so relativamente simplificados.





22
3.2.1 O Processo de Controle por Lgica Fuzzy

Ao se utilizar o controle fuzzy, deve-se ter em mente que o controle realizado
em 3 principais etapas: Fuzzyficao, Inferncia e Defuzzyficao. Trata-se ento, de
maneira simplificada, de passar os valores do mundo real (chamados no mbito da
Lgica Fuzzy de valores crisp) para os valores fuzzy (constitudos de uma varivel
lingustica e um grau de pertinncia), avaliar todas as combinaes dessas entradas
atrves das regras fuzzy (onde algumas regras sero ativadas enquanto outras no), e,
por fim, agregar os resultados fuzzy de sada das regras em um valor crisp, o qual ser
retornado ao sistema como um novo sinal de controle. Esse processo se repete durante
todo o funcionamento do sistema. O diagrama da Figura 4 ilustra a interao da Lgica
Fuzzy com o sistema a ser controlado. A seguir sero discutidas todas as etapas do
controle por Lgica Fuzzy.


Figura 4: Diagrama do funcionamento do controle por Lgica Fuzzy

23
3.2.2 Fuzzyficao

Esse processo inicial consiste em atribuir uma varivel lingustica e um grau de
pertinncia a uma entrada crisp utilizando as chamadas funes de pertinncia, obtendo
ento um valor fuzzy. Essas funes podem adquirir diversas formas, como ilustrado
pela figura 5. Geralmente utiliza-se a funo triangular pela facilidade de
implementao computacional e clculos.


Figura 5: Diferentes tipos de funes de pertinncia

Quando um valor crisp de entrada pertence a uma faixa de valores de uma
funo de pertinncia, ou seja, est contido entre os valores mximo e mnimo da
funo de pertinncia (eixo x), a ele atribuda a varivel lingustica que representa essa
funo de pertinncia. Seu grau de pertinncia o resultado da equao da funo de
pertinncia a qual ele pertence (eixo y). Isto , tendo-se uma certa funo de pertinncia
f(x), com f(x) = 0 para os valores MIN e MAX dessa funo, pode-se obter o grau de
pertincia de uma certa entrada crisp X calculando-se f(X), estando o X contido no
24
intervalo entre os valores MIN e MAX, ou seja, pertencendo a essa funo de
pertinncia. Pelo fato de as funes de pertinncia serem comumente representadas por
funes normalizadas, o grau de pertinncia sempre excursa entre 0 e 1. Digamos que
f(x) represente a varivel lingustica VAR (que pode ser, por exemplo, GRANDE,
FRACO, DIREITA, etc). Tem-se ento uma entrada associada a um grau de pertinencia
na forma:

(VAR/f(X))

Onde VAR a varivel lingustica atribuda a entrada crisp X e f(X) o grau de
pertinncia calculado atravs da funo de pertinncia da varivel VAR. Esse o valor
fuzzy da entrada crisp X. O exemplo a seguir ilustra esse procedimento.

Exemplo:
Sendo a varivel lingustica VAR representada pela seguinte funo triangular
de pertinncia (ilustrada na figura 6):

>


<
=
c x ,
c x b b), x)/(c (c
b x a a), a)/(b (x
a x ,
f(x)
0
0


Onde a = 1, b = 2, c = 3.
25

Figura 6: Funo de pertinncia triangular para a varivel lingustica VAR

Para uma entrada crisp de valor 2,5 (que encontra-se dentro dos valores com
grau de pertinnica no zerados de VAR) tem-se ento o seu grau de pertinncia
calculado por:

f(2,5) = (3 2,5)/(3 2) = 0.5

O valor fuzzyficado para 2.5 VAR com grau de pertinncia 0.5, ou (VAR/0,5).
Esse processo constitu a chamada Fuzzificao. Trata-se ento da passagem dos valores
crisp para os valores fuzzy, que sero ento avaliados na prxima etapa.

3.2.3 Inferncia Fuzzy

Aps a obteno de todos os valores fuzzy a partir das entradas crisp, deve-se,
ento, relacion-los com uma sada fuzzy, utilizando as regras fuzzy. Combina-se todas
as entradas, e para cada combinao atribu-se uma saida fuzzy (ou quantas sadas
forem necessrias). Esse processo constitu a Inferncia Fuzzy, etapa na qual realiza-se
o controle do sistema propriamente dito. As regras fuzzy so da forma:
26

Se (entrada 1) = VAR1 e (entrada 2) = VAR2 ento (sada) = VAR3

Existem dois tipos de principais de inferncia Fuzzy, o tipo Mandani e o tipo
Sugeno. A principal diferena entre eles est no resultado das regras fuzzy. Na regra
mostrada acima, a sada um valor fuzzy, o que caracteriza um controle do tipo
Mandani. O tipo Sugeno utiliza uma funo de sada que resulta diretamente em uma
valor crisp, sem haver desfuzzyficao, da seguinte forma:

Se (entrada 1) = VAR1 e (entrada 2) = VAR2 ento (sada) = f(entrada1, entrada2)

Note que a aplicao das regras fuzzy sobre o conjunto fuzzy de entrada resulta
em um valor fuzzy de sada. O seu grau de pertinncia calculado por meio do uso dos
operadores lgicos E, OU e NO, os quais devem manter suas caractersticas como na
lgica Booleana. Nos exemplos de regras mostrados at agora, utilizou-se o operador E
(Se ... E .. ento ...). Comumento, esses operadores so substitudos pelas seguintes
funes:

E(x , y) = min(x, y)
OU(x, y) = max(x, y)
NO(x) = 1 x

Onde x e y so os graus de pertinncia das entradas que esto sendo operadas
pela regras fuzzy. Isto ocorre porque essas funes representam corretamente a sada
dos operadores.
27
O nmero de regras fuzzy definido pelo nmero de entradas e pelo nmero de
variveis lingusticas para cada entrada. Por exemplo, se tivermos duas entradas, ENT1
e ENT2, e cada uma tiver 5 funes de pertinncia (representadas pelas variveis
lingusticas A, B, C, D e E), ento o nmero de combinaes das entradas :

5 = 25 regras

Isso vem do fato de que como se tem 5 variveis lingusticas diferentes para
cada entrada, ento pode-se combin-las de 25 diferentes maneiras, como mostrado a
seguir:

Se ENT1 = A e ENT2 = A ento ...
Se ENT1 = A e ENT2 = B ento ...
Se ENT1 = A e ENT2 = C ento ...
Se ENT1 = A e ENT2 = D ento ...
Se ENT1 = A e ENT2 = E ento ...
Se ENT1 = B e ENT2 = A ento ...

E assim por diante, at todas as combinaes serem realizadas. Note que com o
aumento linear do nmero de entradas, o nmero de regras cresce exponencialmente. Se
forem 3 entradas ao invs de 2 , tem-se:

5x5x5 = 5 = 125 regras

Da tira-se a seguinte expresso:


28
Nmero de regras = (nmero de variveis lingusticas para cada entrada)
(nmero de entradas)

Essa expresso s vlida no caso de todas as entradas terem o mesmo nmero
de variveis lingusticas. Alm disso, nada impede o projetista das regras de
negligenciar algumas combinaes (talvez combinaes que ele saiba que no tm
muita influncia no sistema ou que nunca ocorrero na prtica) ou de reduzir o nmero
de variveis lingusticas das entradas (o que resultaria em um controle menos preciso,
mas no necessaramente menos eficiente), ambos reduziriam o nmero de regras.
Mais de uma regra pode ser ativada de uma vez, resultando em mais de um valor
de sada fuzzy. Esses valores so ento agregados utilizando uma funo para realizar
essa etapa, normalmente se faz max(x, y, ...) de todas as sadas ativadas. Obtendo-se
apenas um conjunto fuzzy de sada.

3.2.4 Defuzzyficao

Aps a passagem das entradas pelas regras obtm-se um conjunto fuzzy de
sada. Para se obter uma sada crisp, que pode ser aplicada no sistema a ser controlado,
deve-se agrupar os resultados da inferncia em apenas um valor. Esse processo
chamado de defuzzyficao, pois ocorre o inverso do que ocorreu na entrada da Lgica
Fuzzy.
Existem diversas tcnicas de defuzzyficao, sendo que cada uma tem suas
vantagens e desvantagens, como facilidade de implemento, menor custo
computacional, valores de sada melhor ponderados, etc. A seguir so demonstradas
algumas dessas tcnicas:

29
Meio dos mximos:

Consiste em calcular a mdia de todos os pontos de mximo do conjunto fuzzy
de sada, ou seja, faz-se o somatrio dos valores crisp correspondentes aos valores fuzzy
com maior grau de pertinncia e divide-se esse somatrio pelo nmero de mximos (no
caso de funes contnuas utiliza-se a integral ao invs do somatrio). O resultado o
valor crisp de sada.

Primeira dos mximos:

Esse mtodo mais simples, pois utiliza apenas o menor valor crisp do conjunto
de mximos, isto , o limite inferior do maior mximo. Este valor a sada crisp.

ltima dos mximos:

Semelhante ao mtodo Primeira dos Mximos, com a diferena de que utiliza o
maior valor crisp do conjunto dos mximos, ou seja , o limite superior.


Centro de rea ou Centride:

Trata-se de um mtodo muito utilizado que obtm o valor crisp de sada com
base no centro da rea do conjunto fuzzy. O resultado o somatrio de todos valores
crisp do conjunto multiplicados por seus respectivos graus de pertinncia, que ento
30
dividido pelo somatrio de todos os graus de pertinncia do conjunto, como indicado
pela equao a seguir:

|
|

\
|
=

) (
) (
x f
x f x
A


Onde A o valor crisp de sada e f(x) o grau de pertinncia para cada valor do
conjunto. Os resultados grficos dos valores crisp obtidos por cada mtodo so
mostrados na figura 7.

Figura 7: Mtodos de defuzzyficao

31
Tendo ento sido utilizado um desses mtodos para se obter a sada da Lgica
Fuzzy, pode-se aplic-la ao sistema a ser controlado, para que aps isso o procedimento
se repita com a nova realimentao.






















32
3.3 Redes Neurais

3.3.1 Introduo

Uma rede neural artificial caracterizada por dois fatores:
1 O conhecimento adquirido atravs de um processo de aprendizagem.
2 Foras de conexo entre neurnios, conhecidas como pesos, so utilizados
para armazenar o conhecimento adquirido.
Desta maneira podemos citar algumas caractersticas especiais das Redes
Neurais Artificiais ou RNA:
Generalizao: capacidade de aprender atravs de padres de entrada/sada e
apresentar respostas, estipulando valores de sada, para padres de entrada no vistos
durante o treinamento.
Adaptabilidade: atravs da alterao em seus pesos podem adaptar-se a novos
padres.
Tolerncia a falhas: se tornam robustas quando da existncia de condies
adversas, que propiciam uma degradao suave em seu desempenho, ao invs de
degradao catastrfica.
No-linearidade: capaz de representar sistemas com caractersticas no-
lineares.





33
3.3.2 Modelo Geral de Neurnio

O neurnio formal um sistema dinmico por ter memria materializada pelo
retardo. Um neurnio esttico quando os valores de entrada (xj) e de sada (y) se
referem ao mesmo instante, ou seja, o retardo interno do neurnio nulo. A partir do
momento quando se fizer referencia ao neurnio artificial se estar fazendo referencia
ao neurnio esttico.


Figura 8: Neurnio artificial esttico

O neurnio artificial (Fig. 8) composto por trs elementos bsicos:
1. Um conjunto de conexes de entrada: cada entrada i ponderada por um peso
sinptico wi. Logo um sinal de entrada xj na entrada i do neurnio k multiplicado pelo
peso wi. O uso do bias, x0, tem o papel de polarizao, aumentar ou diminuir a
influncia dos valores das entradas na resposta de sada do neurnio.

2. Um operador de agregao: responsvel pela combinao dos sinais de
entrada ponderados pelos respectivos pesos das conexes do neurnio, comumente
34
utiliza-se um operador de soma. As entradas so combinadas para que seja produzido
um estado de ativao pela funo que esta sendo utilizada para tal propsito, como
descrito na prxima estrutura.
3. Uma funo de ativao: uma funo geralmente no linear, com a
finalidade de introduzir a caracterstica de no linearidade a rede a neural. O intervalo
de ativao dos neurnios confinado ao intervalo, normalmente unitrio [0 1] ou [-1
1], assim restringindo a amplitude de sada do neurnio a um valor finito.
A Figura 9 mostra algumas funes comumente usadas.


Figura 9: Diversas funes de ativao






35
Principais finalidades de algumas funes de ativao:

Linear: uma funo que armazena a entrada e no limita a sada;
Rampa: e uma funo de aproximao no-linear;
Degrau: uma funo que limita a sada a valores do tipo binrio;
Tangente hiperblica: uma que assume valores no intervalo de -1 e +1;
Sigmide: uma funo limitada que assume valores entre um intervalo
superior e inferior (0 e 1), porm sem jamais alcan-los.

O neurnio da Figura 8 pode descrito pela seguinte equao matemtica:

|

\
|
+ =

=
n
i
i i
x w x w f y
1
0 0


Se colocarmos o Bias como sendo uma entrada sempre com o mesmo valor:

|

\
|
=

=
n
i
i i
x w f y
0


Escrevendo no formato de matrizes:

( )
0 0
x w x w f y
T
+ =

( ) x w f y
T
=


36
Onde x o vetor das entradas e v o vetor dos pesos:

[ ] [ ]
n
T
x x x x k x L
2 1
1 1 ) ( = =

[ ] [ ]
T
n
T
w w w w k w L
2 1
1 1 ) ( = =



3.3.3 Redes Neurais

Uma RNA um sistema composto por vrios neurnios. Alguns neurnios
recebem excitaes do exterior e so chamados neurnios de entrada. Outros tm suas
respostas usadas fora da rede e so chamados neurnios de sada. Os neurnios que no
so nem entrada nem sada so conhecidos como neurnios internos. Estes neurnios
internos rede tem grande importncia e so conhecidos como neurnios escondidos.
A configurao em multicamadas (MLP - Multi Layer Perceptron) a
configurao mais utilizada, pois foi visto que esta configurao pode aproximar
qualquer funo, dependendo do numero de neurnios presentes na estrutura da rede.


3.3.4 Redes Neurais Multicamadas

Diferentemente das redes de camada nica que tem a limitao de apenas
resolver problemas com caractersticas lineares, as redes MLP incorporam as
caractersticas no-lineares para resoluo de problemas. As entradas das unidades
neurais de uma determinada camada so provenientes das camadas anteriores e sua
37
sada conectada s unidades das camadas posteriores. No ocorrem conexes entre
unidades da mesma camada.
Uma MLP tipicamente formada por:

Camada de entrada: aonde a informao apresentada rede;
Camada intermediria: aonde ocorre a maior parte do processamento
Camada de sada: aonde o resultado concludo e apresentado.

Figura 10: Representao de uma rede MLP

O fluxo da informao se propaga de camada em camada, percorrendo as
camadas da esquerda direita, como mostra o esquema da Figura 10.
Escolha dos parmetros das MLP

Basicamente precisam-se escolher trs elementos para se configurar uma rede
MLP:
1- O numero de camadas intermediarias e o numero de neurnios em cada
camada.
38
2- A funo de ativao para cada camada.
3- Os tipos de conexes ou pesos.

A determinao da quantidade de camadas a serem empregadas depende de
alguns fatores como, a complexidade da funo a ser aprendida, pois medida que se
segue da primeira camada intermediria em direo a camada de sada, as funes
implementadas dentro da rede vo se tornando mais complexas.
O nmero de neurnios determina a capacidade da rede em resolver problemas
de determinada complexidade. Logo quanto maior o nmero de neurnios, maior a
complexidade da rede e maior ser o alcance em termos possveis solues.
As formulas se baseiam para apenas uma sada de uma rede igual a da Figura 10,
ou seja, para uma RNA do tipo MLP.

m i b v b v x v f v f y
i
L
l
n
j
l j lj il i
, , 2 , 1 ;
0
1 1
0 1 2
K =
|
|

\
|
+
|
|

\
|
+ =

= =

( ) ( ) b W b V x V f W f y
T T
0 0 1 2
+ + =


Considerando entrada de polarizao na rede MLP e funes de ativao do tipo
linear na camada de entrada, tem-se a sada z do neurnio da camada intermediaria
como:

|

\
|
=

=
n
i
i ji j
x w f z
0
1

39
Onde f(1) a funo de ativao da camada intermediaria, j o numero do
neurnio da camada escondida e i o numero do neurnio de entrada. A sada da rede y
calculada como:

|
|

\
|
=

=
M
j
j kj k
z w f y
0
2


Onde f(2) seria a funo de ativao do neurnio de sada e k o numero do
neurnio de sada.
Na forma de matrizes:

( ) x W f z
T
1 1
=

( ) z W f y
T
2 2
=


Onde:

[ ]
T T
z z 1


3.3.5 Treinamento da RNA

O processo de treinamento da RNA consiste em ajustar os pesos das conexes e
nveis dos bias, melhorando o seu desempenho. Atravs das modificaes nos
parmetros, a rede responder de maneira nova, se adaptando ao ambiente. Como pode
ser percebido, o conhecimento passado a rede armazenado nas suas conexes.
40
Basicamente existem trs tipos de treinamento:
1-Treinamento supervisionado
2-Treinamento no supervisionado
3-Treinamento por reforo

O treinamento supervisionado caracteriza-se pela disponibilidade de
conhecimento ou informao sobre o sistema na forma de padres entrada / sada. Os
parmetros da rede so ajustados tendo como base o sinal de erro e os padres de
treinamento. O sinal de erro definido como a diferena para uma mesma entrada entre
a sada da rede e a sada desejada. A desvantagem desse mtodo que rede pode no
aprender novas estratgias para situaes particulares que no foram consideradas no
conjunto de treinamento.
O treinamento no adaptativo, ou offline, aquele onde a rede inicialmente
treinada utilizando um conjunto de padres de entrada sada. O treinamento adaptativo,
ou online, destina-se para o processo de treinamento onde a rede treinada de forma
permanente enquanto est sendo utilizada.

3.3.6 Algoritmo de Retropropagao

Existe uma grande variedade de algoritmos para o treinamento de uma rede
neural, mas o mais popular o algoritmo Backpropagation.
O algoritmo se constitui basicamente em duas etapas, a etapa forward onde as
entradas da rede so propagadas atravs dela, camada por camada, mantendo os pesos
fixos. A sada gerada ento comparada com a sada desejada, assim se calculando
um sinal de erro. Na segunda etapa, esse erro retropropagado (backward), o sinal do
41
erro gerado propagado da camada de sada para a camada de entrada, podendo assim
cada elemento da rede receber a poro do erro relativa sua contribuio ao erro total,
de maneira que ao final do processo a rede se equivale o mais prximo o possvel da
resposta.
Neste momento os pesos sinpticos baseado no sinal de erro recebido sero
ajustados para cada elemento de modo a fazer a rede convergir para um estado no qual a
resposta desejada se equivale o mais prximo possvel resposta obtida.


Figura 11: Esquematizao do processo do algoritmo Backpropagation

Passos para o treinamento
1. Inicializao: recomenda-se colocar valores aleatrios aos pesos e nveis de
bias, em uma distribuio uniforme, cuja mdia dever ser zero.
42
2. Apresentao dos exemplos de treinamento (offline ou no adaptativo): para
os exemplos apresentados em uma poca (conjunto de treinamento) rede realiza-se a
propagao do sinal e depois a retropagao do erro com a correo nos pesos.
3. Propagao dos sinais: um vetor de sinais x(n) aplicado entrada da rede e
calcula-se o sinal de sada para todos os neurnios, comeando da camada de entrada
at a camada de sada. Em seguida, calcula-se o erro para cada neurnio da camada de
sada, pela comparao entre y(n) com o vetor de sinais de sada desejados d(n). desta
forma calcula-se com este erro, o erro mdio global. O erro dado por:

) ( ) ( n y n d erro =


Em que:
y (n) a resposta calculada;
d (n) a resposta desejada.
4. Retropropagao dos sinais de erro: calculam - se os gradientes locais para
todos os neurnios da camada de sada.
A taxa de aprendizagem responsvel pela velocidade com que se d a busca
no espao de peso, em direo aos valores que resultam um erro global mnimo.
Em seguida, calculam-se os ajustes para os pesos daquela camada, bem como os
de bias, os quais devem ser somados aos valores atuais. Esta correo dada pela
aplicao da regra delta, com o objetivo de minimizar o erro.




43
Formulao Matemtica do algoritmo Backpropagation

A atualizao dos pesos nas ligaes da rede utilizando a funo de ativao
sigmide seria:

m i y Y e
i i i
, , 2 , 1 K = =

( ) m i e y y
i i i i
, , 2 , 1 1
2
K = =

( ) L i w z z
m
i
i il l l i
, , 2 , 1 1
1
2 1
K = =

=


n j L l x w w
l j lj lj
, , 1 , 0 , , 2 , 1
1
1 1
K K = = + =

L l m i z w w
i l il il
, , 1 , 0 , , 2 , 1
2
2 2
K K = = + =


Na forma matricial:

y Y e =


( )e y diag y diag } { 1 } {
2
=


( )
2 1
} { 1 } { W z diag z diag =


T
x W W ) (
1
1 1
+ =
T
z W W ) (
2
2 2
+ =

44

3.3.7 Projeto das RNAs

Em linhas gerais, o projeto de criao de uma RNA pode ser descrito nas 5
etapas a seguir:
1. Coleta e Seleo de Dados do sistema: A coleta e seleo dos dados tm
propsito de minimizar o erro, cobrindo todo campo de extenso do problema. Esses
dados podem ser divididos em dados para treinamento e dados para validao. Os dados
de treinamento so usados para treinar inicialmente a rede, enquanto os dados de
validao para verificar posteriormente o desempenho da rede, isto , se as dados
apresentados rede so adequados;
2. Configurao da Rede: destina-se a escolha do tipo de rede ser usada, a
quantidade de camadas, nmeros de neurnios e determinao do algoritmo de
treinamento e etc.
3. Treinamento: O treinamento deve ser interrompido quando a rede apresentar
uma boa capacidade de generalizao e quando a taxa de erro for suficientemente
pequena, ou seja, igual ou menor que o erro admissvel ou necessrio. Logo, deve-se
encontrar um ponto timo de parada com um erro mnimo e alta capacidade de
generalizao.
4. Teste: neste momento o conjunto de teste utilizado para determinar o
desempenho da rede com dados que no foram previamente utilizados no treinamento.
5. Integrao: a etapa final do projeto no qual a rede j treinada e validada
poder ser aplicada ao objeto de estudo.


45
4 CONTROLADORES

4.1 Controle

O objetivo do controlador sobre a planta fazer com que ela siga um sinal de
referencia desejado e alem de manter a sada da planta constante para uma faixa de
cargas aplicadas sobre ela.
Os controladores do tipo PID so os controladores mais utilizados na indstria,
por esta razo tambm so base para controladores mais complexos.

4.1.1 Controlador Proporcional, Integral, e Derivativo (PID)

Normalmente o controlador PID dada pela equao:

(

+ + =

t
t e
Td d t e
Ti
t e Kp t u
t
) (
) (
1
) ( ) (
0




Onde u(t) o sinal que ser aplicado na planta, chamado de sinal de controle,
e(t) definido como sendo o erro entre o sinal da sada da planta com relao ao sinal
da referencia, e(t) = r(t) y(t). Ti o tempo de integrao, e Td o tempo de derivao,
Kp chamado de ganho do regulador. A figura 12 mostra os principais sinais no
sistema de malha fechada.
46

Figura 12: Controlador PID

O controlador proporcional mais o derivativo (PD) acrescentam um zero no
sistema, e esse zero pode aumentar o amortecimento do sistema, melhorando a
estabilidade e reduzindo o tempo de acomodao. O zero apresentado tambm pode
melhorar o tempo de subida pode acrescentar um sobre nvel na resposta.
O controlador com proporcional e integral (PI), alem de poder eliminar o erro
em regime permanente, em malha fechada ele da uma resposta mais rpida para a
planta.
Para se ajustar o compensador PID normalmente se escolhe Kp para se obter a
velocidade desejada de resposta, depois se escolhe a razo de Ti para encontrar o
desempenho em regime permanente desejado, o que pode fazer com que seja necessrio
reajustar o parmetro Kp. Ao final processo de ajuste se necessrio adiciona-se a ao
da parte derivativa para poder reduzir o sobre nvel e o tempo de acomodao.
Resumidamente os efeitos dos parmetros so:
- Aumentando-se a razo de reajuste (Ti) e o ganho, aumenta se a velocidade de
resposta e reduz-se o erro em regime permanente.
- Aumentando-se a razo de reajuste reduz a estabilidade do sistema.
- Aumentando se o tempo de derivao aumenta a estabilidade do sistema.

47

Tabela 1: Tabela com os efeitos dos parmetros do PID
Resposta Tempo de
Subida
Sobre
elevao
Tempo de
estabilizao
Erro em regime
permanente
Kp Diminui Aumenta No altera Diminui
Ki Diminui Aumenta Aumenta Elimina
Kd No Altera Diminui Diminui No altera



As caractersticas de desempenho de um sistema de controle em muitos casos
so especificadas em termos de sua resposta transitria no domnio do tempo. Os quatro
termos de maior importncia num sistema de malha fechada so:
- Tempo de subida: o tempo que se leva para a sada da planta ir de 10% a
90% do valor desejado.
- Sobre elevao: o valor mximo que a resposta pode achegar em regime
permanente, o valor dado normalmente em %.
- Tempo de estabilizao: o tempo em que a resposta leva para ficar dentro de
uma faixa especificada.
- Erro final ou em regime permanente: a diferena entre a sada estacionria ou
regime permanente e a sada desejada.

4.1.2 Ajuste do compensador PID

Para que a planta apresente o comportamento desejado em malha fechada,
necessrio ajustar os parmetros do compensador PID, para que isso seja possvel
existem diversos mtodos de ajuste. Um mtodo a calibragem direta dos parmetros
atravs da resposta apresentada no sistema, outra tcnica para sintonia ou calibrao do
regulador PID usando Ziegler-Nichols.

48
4.1.3 O Algoritmo de Ajuste Ziegler-Nichols

O algoritmo baseado em observaes empricas de estratgias de ajuste do PID
para diversos tipos de processos, existem dois mtodos para a escolha do primeiro
conjunto de parmetros para o controlador PID.

Mtodo da Resposta ao Degrau

O mtodo consiste em aplicar um degrau unitrio na entrada da planta em malha
aberta e retirar dois parmetros dela, a inclinao da tangente ascendente da curva da
resposta e o tempo de atraso aparente. O mtodo tende a produzir um sistema cuja
resposta transitria oscilatria e que necessitando realizar a sintonizao mais uma vez.
Outro problema que a planta precisa estar em malha aberta para que os parmetros
sejam medidos, desta forma que a resposta em malha aberta seja estvel.

Mtodo da Mxima Sensibilidade

O mtodo de sintonia se baseia em encontrar o ganho em que a resposta de
Nyquist do sistema cruza o ponto crtico, experimentalmente pode se aumentar o ganho
do proporcional at que a resposta da planta apresenta oscilaes sustentadas, feito isso
se mede o tempo entre as oscilaes.
Uma complicao deste mtodo do fato de funcionar somente para plantas de
ordem maior que 2, e que no sejam criticamente amortecido ou superamortecidos, pois
no apresentam oscilaes na resposta transitria.

49
4.1.4 Modelo PID Discreto

Para o modelo discreto, apresentado o PID de Posio e o PID de Velocidade.
O algoritmo do PID de Posio chamado assim porque ele possui um sinal de controle
inicial,
0
u , como base.

( )
0
0
) 1 ( ) (
) ( ) ( ) ( u
T
n e n e KTd
n e
T
KT
n e K n u
s
n
i
i
s
+

+ + =

=


O algoritmo do PID de Velocidade usa, ao contrrio da referencia fixa utilizada
no algoritmo posicional, o valor controle anterior como referncia. Em essncia, o
controle calculado como uma mudana.

( ) ( )
0
) 2 ( ) 1 ( 2 ) ( ) ( ) 1 ( ) ( ) 1 ( ) ( u n e n e n e
T
KTd
n e
T
KT
n e n e K n u n u
s i
s
+ + + + + =


O modelo discreto ir trabalhar com um perodo de amostragem Ts, que deve ser
o menor tempo possvel, assim o controlador funcionar melhor e ter menos
distores. Porem tempos muito curtos resulta em amostras repetidas e com isso
clculos desnecessrios.

4.2 O Controlador PI Fuzzy

Um dos tipos de controlador Fuzzy implementados nesse projeto o PI Fuzzy,
que utiliza como entradas o erro da referncia em relao ao sinal de sada, e a derivada
50
desse erro (variao do erro com relao ao erro anterior). Na verdade, somente isso,
caracteriza um controle do tipo PD Fuzzy, ento para se configurar o controlador PI
FUZZY se integra a sada do controlador PD Fuzzy, ou em termos discretos, realizado
um somatrio da sada do controlador, tornando-se um controle PI Fuzzy.

4.3 Controle Adaptativo de um PID usando RNAs Recursivas

O controlador uma rede neural baseada nas equaes discretas do controlador
PID, onde os ganhos Kp, Ki e Kd , no permanecem fixos , mas so atualizados a cada
interao. Os ganhos so calibrados on-line usando um sistema Jacobiano e utilizando
um algoritmo de gradiente descendente no algoritmo de treinamento.
Para poder modelar a rede neural como um PID primeiramente precisamos
passar a equao do PID contnuo para o discreto.
A equao do controlador PID no domnio S pode ser dada como:

)
1
(
) (
) (
s
s
Kd
s
Ki
Kp
s E
s U
+
+ + =


Neste modelo, o termo derivativo utilizado com uma aproximao da derivada,
para se reduzir o efeito do rudo nas medidas. E a representao desta equao no tempo
discreto se dar atravs da passagem do domnio S para o domnio Z, utilizando a
transformao bilinear, ou conhecida tambm como mtodo de Tustin.
(

1
1
1
1 2
z
z
T
S


51
O sinal de controle ser constitudo desta forma:

) ( ) ( ) ( ) ( n w Kd n v Ki n e Kp n u + + =


Onde v(n) o termo integral e w(n) o termo derivativo.

[ ] ) 1 ( ) (
2
) 1 ( ) ( + + = n e n e
T
n v n v

[ ] ) 1 ( ) ( ) 1 ( ) (
0
1
+ = n e n e n p n p


) (
2
) (
0
n w n p

=

) (
2
) (
0
n p
Kd
n Kdw
|
|

\
|
=


T + = 2
0

T = 2
1

A partir dessas equaes discretas modelou-se uma rede com apenas 3 neurnios
na camada escondida, com funes de ativao do tipo linear e com uma realimentao
interna na camada escondida com tempo de atraso de uma amostragem. A entrada para
a rede seria o sinal de erro, enquanto a sada seria o sinal de controle. Dessa forma a
rede pode ser representada atravs de trs matrizes.
52
(
(
(

=
1
2
1
1
T
W

(
(
(
(
(
(

=
2
0 1
0 1
2
0 0 0
T
T
R

(

=
0
2
2

Kd
Ki Kp W


Os valores de W1 seriam os ganhos dos pesos entre a camada de entrada e a
camada escondida, W2 seriam os ganhos entre a camada escondida e a camada de sada.
T seria o tempo de amostragem. E a matriz R seria os ganhos dos parmetros recursivos
da rede.

Figura 13: PID Neural

Pela figura se observa que a rede possui quatro parmetros que podem ser
alterados: Kp, Ki,
0
2

Kd
e
0
1

. Enquanto os outros parmetros ou so dependente


destes quatro ou so fixos.
A sada do controlador, u(n), :
53

) ( ) ( ) ( ) (
3
*
2 1
n O Kd n O Ki n O Kp n u + + =

) ( ) (
1
n O n e =

[ ] ) 1 ( ) (
2
) 1 ( ) ( ) (
2 2
+ + = = n e n e
T
n O n O n v

[ ] ) 1 ( ) ( ) 1 ( ) ( ) (
3 3
+ = = n e n e n O n O n p

0
2
*

Kd
Kd =
e
0
1

=


A adaptao da rede se realiza atravs do algoritmo de treinamento baseado no
mtodo do gradiente que atualiza os parmetros variveis da rede, tendo como base o
erro entre o valor da sada do controlador, u(n), e o valor desejado, d(n).
Pode-se realizar um treinamento offline, com um conjunto de dados para as
sadas desejadas conforme o sinal de erro na entrada do controlador, gerados a partir da
simulao de um controlador PID. Pode-se optar por no realizar o treinamento offline e
utilizar os parmetros contidos num PID j ajustado ao sistema.
Para a realizao do treinamento offline utiliza-se as seguintes equaes na
atualizao dos parmetros:

( )
1
) ( ) ( ) 1 ( O n e n Kp n Kp = +

( )
2
) ( ) ( ) 1 ( O n e n Ki n Ki = +

( )
3
* *
) ( ) ( ) 1 ( O n e n Kd n Kd = +

54
|

\
|

= +


3
*
) ( ) ( ) ( ) 1 (
O
n Kd n e n n


Para o treinamento online da rede neural, projeta-se um sistema que servir de
referencia para o ajuste do controlador. Na medida do tempo, devido a minimizao do
erro pelo controlador, a resposta da planta vai se aproximando da resposta do modelo.

Figura 14: Diagrama de Blocos com PID Neural e Modelo de Referencia


A sada de referencia gerada on-line, a partir do modelo construdo com base
no modelo geral para equaes de segunda ordem:

2 2
2
2
) (
n n
n
rm
w S w S
w
S G
+ +
=



Utilizando-se de novo da aproximao bilinear, se obtm:

55
[ ] ) 2 ( ) 1 ( 2 ) (
1
) 2 ( ) 1 ( ) (
0 0
2
0
1
+ + + = n r n r n r
c
n y
c
c
n y
c
c
n y
rm rm rm rm rm rm

1
4 4
2 2
2
0
+ + =
T T
c


2
8
2
2
1
+

=
T
c


1
4 4
2 2
2
2
+ =
T T
c



Para um sistema que possui apenas uma entrada e uma sada, SISO, e o tempo de
amostragem for suficientemente pequeno, o sistema jacobiano pode ser aproximado
para:

) 1 ( ) (
) 1 ( ) (
) (
) (
) (

=
n u n u
n y n y
n u
n y
n Jp


O mtodo utilizado na atualizao dos parmetros um pouco diferente do
utilizado no treinamento offline, pois agora no se este interessado na minimizao
imediata dos erros.
A maior diferena a utilizao do erro2 e do jacobiano, que so utilizados para
melhorar o desempenho e minimizar o efeito do erro na atualizao dos ganhos do PID
Neural

( )( ) ) ( ) ( 2 ) ( ) ( ) 1 (
1
n Jp n e O n e n Kp n Kp = +

( )( ) ) ( ) ( 2 ) ( ) ( ) 1 (
2
n Jp n e O n e n Ki n Ki = +

( )( ) ) ( ) ( 2 ) ( ) ( ) 1 (
3
* *
n Jp n e O n e n Kd n Kd = +

56
( ) ) ( ) ( 2 ) ( ) ( ) ( ) 1 (
3
*
n Jp n e
O
n Kd n e n n
|

\
|

= +





4.4 Neuro-Fuzzy

A integrao das redes neurais e dos sistemas de inferncia fuzzy podem ser
divididos em 3 categorias principais: cooperativo, concorrente e modelos neuro-fuzzy
integrados.
O grande interesse nessa unio devido ao fato de que essas duas tcnicas juntas
podem prover uma maneira melhor de resolver problemas do que outros mtodos. Ao
fato que juntas elas tem a capacidade de armazenar informao nos pesos das conexes
da rede neural, dessa forma havendo aprendizado, e a capacidade de se estruturar regras,
que so de fcil compreenso, sendo essa caracterstica dos sistemas de inferncia
fuzzy. Dessa maneira pode-se ater dizer que essas duas tcnicas so complementares.
Os sistemas cooperativos so aqueles sistemas onde uma das duas tcnicas altera
algum parmetro da outra, podendo-se dizer que uma vai aperfeioar a tarefa realizada
pela outra tcnica, mas elas esto claramente separadas.
No modo concorrente uma tcnica apenas da assistncia a outra, por exemplo,
como conseguir algum parmetro que no pode ser feito de forma direta, mas mesmo
assim, as duas tcnicas esto separadas e os sistemas permaneam mesmos durante o
processo.
O terceiro tipo onde de fato de funde as duas tcnicas. Dessa unio se pode ter
redes neurais que possuem neurnios fuzzy, neurnios que no lugar da funo de
57
ativao se tem o processo de inferncia fuzzy, ou sistemas baseados como se fossem
redes neurais, mas que implementam a capacidade de inferncia de um sistema fuzzy.
No nosso trabalho optamos pelo modo cooperativo, dessa maneira poderias se
utilizar s capacidades de ambas as tcnicas, pois para haver essa cooperao no seria
necessrio mtodo de desenvolvimento diferente dos que so normalmente utilizados
para cada uma das tcnicas individualmente.
No mtodo utilizado o algoritmo do PID Neural ser utilizado em conjunto com
um sistema Fuzzy de inferncia do tipo Mandani, alterando a taxa de aprendizado dos
parmetros da Rede. O sistema FUZZY ir controlar a quantidade que o erro ir
influenciar no ajuste dos parmetros, uma melhoria da funo implementada pelo
sistema jacobiano.














58
5 PARTE PRTICA

5.1 Servomotores


Servomotores so uma categoria de motores que tm como principais
caractersticas o controle de sua posio angular por meio de PWM (Pulse Width
Modulation) e a sua alta capacidade de torque. Tais caractersticas fizeram com que os
servomotores fossem altamente utilizados nas reas de aeromodelismo e robtica. A
Figura 15 apresenta um tpico servomotor.


Figura 15: Um modelo de servomotor tpico

Os servomotores tm a capacidade de obter torque muito superior ao
normalmente obtido por motores DC. Isso decorre do fato de eles realizarem
movimentos curtos (0 a 180 usualmente) e relativamente lentos, quando comparados a
outros tipos de motores. Na prtica eles sacrificam a sua velocidade por mais torque, o
que possvel devido a existncia de um sistema redutor de velocidade conectado ao
eixo de giro do servomotor. Esse sistema constitudo por uma srie de engrenagens
que reduzem o arco de giro do servo, que ao invs de girar diversas voltas, realiza
apenas uma parte de uma volta.
59
Deve se deixar claro que o motor que movimenta o servomotor nada mais do
que um pequeno motor DC. O sistema redutor e um sistema de realimentao que
diferenciam os servomotores dos outros motores. Como mencionado anteriormente, os
servomotores tm sua posio angular controlada por PWM, isto , sua posio depende
de uma sequncia de pulsos de entrada com diferentes larguras, mas que mantm uma
mesma frequncia (50 Hz, um pulso a cada 20 ms). Em geral, um pulso de largura 1 ms
resulta no movimento do servo para a posio de 0, enquanto que um pulso de 2 ms
resulta no movimento do servo para a posio de 180, sendo que quaisquer larguras
intermedirias a esses valores resultaro em ngulos intermedirios, proporcionalmente.
A largura de pulso de 1,5 ms normalmente resulta em uma posio central. A figura 16
ilustra essas situaes. Note que tais valores so apenas generalizaes, cada modelo de
servo motor possui caractersticas diferentes, podendo ter valores de largura de pulso
que excursionam alm dos citados. Internamente, o que acontece que o motor DC
recebe diferentes nveis de tenso concordantes com a largura de pulso de entrada, o que
resulta nas diversas posies angulares de sada.


Figura 16: Relao da largura de pulso enviada ao servo com a rotao angular do mesmo

60
Alm desse mecanismo de largura de pulso, os servomotores possuem um
sistema de realimentao negativa que os permite saber se esto realmente na posio
desejada. Trata-se de um potnciometro acoplado ao eixo do motor DC (conectado
atravs do sistema de engrenagens), o qual realimeta uma tenso que ento comparada
tenso que deveria haver devido ao pulso de entrada. Esse procedimento
normalmente realizado por um circuito lgico que faz as devidas converses de tenso
para largura de pulso e vice-versa. O servomotor ento movimenta-se em direo a
posio desejada e compara a sada com a entrada, corrigindo quaisquer diferenas.
Trata-se ento de um sistema interno de controle de posio. A figura 17 mostra os
componentes internos de um servomotor.


Figura 17: Componentes internos de um servomotor


61
5.2 Obteno da Funo de Transferncia do Servomotor

O processo de obteno da funo de transferncia dos servomotores utilizados
para a construo do manipulador robtico foi feita utilizando dados coletados por meio
de testes realizados sobre o prprio servomotor.
Foram coletados dois tipos de dados: posio do servomotor em relao ao valor
lido pelo conversor A/D ligado ao servomotor, e posio do servomotor em funo do
tempo. O segundo tipo de dado foi utilizado para a obteno da funo de transferncia,
enquanto que o primeiro foi utilizado para obter uma funo entre o ngulo e o valor
AD correspondente, de forma a poder ter conhecimento da posio onde o servomotor
est. Dessa forma pode-se fazer a converso dos dados A/D obtidos no tempo para
ngulos. O hardware utilizado na coleta de dados no ser discutido nesse momento.
Por enquanto, basta saber que os valores A/D foram obtidos por meio de uma
realimentao dos servomotores utilizando potencimetros.
Tendo esse conjunto de dados no tempo pode-se ento obter a funo de
trasferncia do servomotor. Para tal foi utilizado um toolbox do software matemtico
Matlab, o System Identification Tool, o qual possibilita ao usurio obter a funo de
transferncia de um sistema apenas usando vetores com dados de entrada e sada. Esse
toolbox permite escolher as caractersticas da funo de transferncia a ser obtida,
como, por exemplo, nmero de plos, nmero de zeros, entre outras.
Aps vrias combinaes de opes, chegou-se a concluso de que a melhor
resposta vinha de uma funo de transferncia com 2 plos. Note que nesse momento
foi necessrio fazer um ajuste no ganho da funo de transferncia, definindo-o com o
valor de 180, referente ao valor final no qual o servo deve estar (devido as limitaes
fsicas do servomotor, ele nunca passa de 180). Os plos foram calculados com base
62
nesse valor de ganho. A Figura 18 ilustra a interface do System Ientification Tool, com
as opes que foram selecionadas para obter o modelo a esquerda, e os resultados
calculados a direita.


Figura 18: A interface para obteno do modelo com as opes utilizadas e os resultados

importante mencionar que para se obter uma funo de transferncia cuja
resposta no tempo fosse compatvel com os dados coletados foi necessrio aumentar o
nmero de iteraes do toolbox, caso contrrio, a curva obtida no chegava ao valor de
180 dentro do tempo medido na prtica. A funo de transferncia obtida foi a
seguinte:

3 , 103 32 , 20
10 859 , 1
2
4
+ +
=
s s
x
X
Y


63
A partir dessa funo de transferncia (contnua), foi obtida a funo de
transferncia discreta, pelo mtodo de Tustin (usando tempo de amostragem de 20 ms, o
perodo do PWM enviado ao servomotor), mostrada a seguir:

665 , 0 631 , 1
532 , 1 064 , 3 532 , 1
2
2
+
+ +
=
z z
z z
X
Y


Aps a obteno da funo de transferncia, pode-se visualizar o grau de acerto
da curva obtida pelo processo. No caso dos dados do servo, foi obtido um acerto de
87,28 %, o que resulta em uma funo de transferncia bastante realista.

Tendo a funo de transferncia do servo, foi possvel ento passar para a etapa
de simulao das tcnicas de controle usando o prprio Matlab.













64
5.3 Kits de Desenvolvimento


Plataforma Arduino:


Arduino uma plataforma de hardware e software open-source baseado numa
placa para o microcontrolador ATMega, bastante flexivel e de grande facilidade de
implementao. Algumas vantagens da plataforma Arduino:

um sistema bastante barato: pode-se montar a placa ou adquiri-la.
Multiplataforma: Seu ambiente de programao simples e desenvolvido em Java,
o que o programa possvel de rodar em diversos sistemas operacionais.
codigo aberto de software: O Arduino possui uma linguagem de programao
muito similar ao C++, podendo dessa forma utilizar as diversas bibliotecas desta
linguagem. Ele tambm pode utilizar a biblioteca do gcc para a arquitetura AVR, o
AVR-GCC. Alm do fato de ser um software de cdigo aberto possuindo dessa
maneira muitas bibliotecas para diversas finalidades.
Cdigo aberto de Hardware: A plataforma Arduino baseada no uso do
microcontrolador ATMEGA, e devido ao fato de ser aberto, o hardware atualizado
constantemente o que resulta em melhorias, atualizaes e novas verses de placas.

Outra caracterstica do Arduino sua facilidade para aprender e programar na
sua plataforma, com um site que possui muitos cdigos exemplos para aprender como
funciona. Sua programao tambm simples devido a que ele no necessita de um
gravador externo, apenas de um cabo USB e de seu programa. Um kit de
desenvolvimento mostrado na figura 19.
65

Figura 19: Kit Arduino Mega

Kit PIC 18fUSB:
No inicio do projeto foi optado por usar o Kit 18fUSB, o qual utiliza o
microcontrolador PIC18F4550. A vantagem deste microcontrolador em razo de
possuir bibliotecas disponibilizadas pela Microchip, o que no inicio do projeto
colaborou com a obteno dos dados para a funo de transferncia. Mas depois desse
momento o kit foi trocado pela plataforma Arduino.

5.4 Construo do Prottipo

Na construo do prottipo do manipulador robtico, a primeira deciso a ser
tomada foi o tipo de material pelo qual a estrutura seria constituda. Decidiu-se utilizar
madeira do tipo MDF, a qual bastante leve e fcil de trabalhada, alm de ter um baixo
custo. Inicialmente as partes de madeira foram juntadas utilizando cola para madeira,
mas esse mtodo logo se mostrou ineficaz pelo fato de que grandes partes das junes
do brao tinham uma rea muito pequena de contato. A estratgia de construo foi
ento alterada para a utilizao de parafusos para unir as partes de madeira, resultando
em uma maior facilidade de alterao e desmonte das peas, caso fosse necessrio. Essa
66
deciso foi fundamental no decorrer do desenvolvimento da parte prtica, quando foram
necessrias mudanas na estrutura do manipulador robtico devido ao peso da garra e a
instabilidades no movimento. Alguma partes do manipulador ainda fizeram o uso da
cola, como a base (onde havia uma maior rea de contato entre as partes coladas),
enquanto que outras junes utilizaram tanto cola como um parafuso, no caso de reas
onde ocorria movimento em torno do eixo do parafuso e a incluso de mais de um
parafuso na regio danificaria a madeira, pois a rea era reduzida.
O modelo inicial para o manipulador robtico consistia de uma base plana
prxima ao solo, uma haste vertical e um antebrao formado por uma haste horizontal
com um desvio angular a uma certa distncia da haste vertical, como mostrado pela
figura 20. Note que exitia uma pequena haste entre a ponta do antebrao e a garra. Essa
haste seria livre (sem controle ou fixao) fazendo que, com a fora da gravidade, a
garra sempre apontasse para o solo com um ngulo de 90, independentemente da altura
ou orientao angular do antebrao. Perceba ainda, pela figura 20, as indicaes dos 3
graus de liberdade controlados: base, antebrao e garra.


Figura 20: Esquema inicial do prottipo do brao robtico
67

Na media que a construo do prottipo foi se desenvolvendo, percebeu-se uma
srie de falhas nesse esquema inicial, sendo a principal delas em relao a capacidade
dos servomotores de levantarem a garra. Por meio de testes, verificou-se que os
servomotores no eram capazes nem de levantar o antebrao e a garra dessa maneira,
quanto mais um objeto. Atravs de pesquisas e observaes, a soluo encontrada foi a
incluso de uma haste maior para o antebrao que se estendia de um comprimento
semelhante para ambas as direes (direita e esquerda), a partir do topo da haste
vertical. O lado do antebrao oposto ao da garra possuiria um contrapeso de peso
equivalente ao da garra (em torno de 100 g), de forma que quando o servomotor tivesse
que mover a garra, esse contrapeso o auxiliaria. Essa soluo mostrou-se extremamente
eficaz, permitindo ao servomotor levantar a garra e um objeto que no fosse muito
pesado. A figura 21 ilustra esse novo esquema de montagem, bem como uma mudana
na estrutura da base do manipulador robtico, onde foi construda uma caixa vasada em
duas laterias, permitindo a insero do circuto que realizar a alimentao e o controle
dos sermotores.

Figura 21: Esquema final de construo do brao robtico

68
Outra mudana realizada foi a no incluso da pequena haste livre que ligaria a
garra ao antebrao. Optou-se por parafusar a garra na extremidade do antebrao (com a
mesma orientao que essa extremidade). Desse modo, com a variao do ngulo do
antebrao, e consequentemente de sua altura, a garra tem uma orientao diferente. A
inclinao da ponta do antebrao foi definida de modo que a altura mnima do antebrao
faa com que a garra fique prxima ao solo, orientada com um ngulo prximo de 90
em relao a ele, como na Figura 21.
Alm dessas mudanas, um ponto importante a se mencionar o acoplamento
dos potencimetros nos servos da base e do antebrao. Devido a necessidade de
realimentao das tcnicas de controle, esse potnciometros precisavam estar no mesmo
eixo que os servomotores que realimentariam. Para tal, foram constridas estruturas em
L nas quais esse potencimetros foram fixados com cola de secagem rpida. No caso
da base, a estrutura em L envolveu completamente o comprimento vertical do eixo,
enquanto que no antebrao, essa estrutura estava posicionada de forma perpendicular a
ele. No fim, esse esquema de estrutura de realimentao acabou sendo fundamental para
remediar o problema de estabilidade nesses dois eixos de movimento. Quando o
servomotor atingia certas posies (normalmente perto do ngulo de 90), todo o eixo
de movimento (a haste vertical, no caso da base, e a haste do horizontal, no caso do
antebrao) entrava em um estado oscilatrio em seus respectivos graus de movimento.
Com uma boa fixao das estruturas em L, esse problema foi resolvido.
Quanto a ligaes eltricas, ambos os potnciometros tiveram seus terminais
extremos conectados por um mesmo fio, respectivamente, ao VCC e GND do kit
Arduino. Os pinos centrais dos potencimetros foram conectados a duas entradas A/D
diferentes do kit. Os servomotes foram conectados em 3 entradas especficas para
servomotores no kit, cada uma com 3 pinos, VCC, GND e sinal. A figura 22 e a Figura
69
23 ilustram o esquema final de construo do brao robtico. Nela esto indicadas as
dimenses e os locais onde esto os servomotores e potencimetros.


Figura 22: Vista lateral (esquerda) e frontal (direita) do manipulador


Figura 23: Vista lateral do manipulador com antebrao e garra

70
Os servomotores utilizados na parte prtica so do modelo HXT 900, fabricados
pela Hextronik. Suas especificaes e dimenses esto indicadas na Figura 24. A figura
25 contm a imagem real do servomortor em questo. Devido ao fato desse modelo de
servomotor no atingir completamente o movimento de 0 a 180, optou-se por limit-lo
a excurso angular de 10 a 170, levando em conta, tambm, as carcterstica vibratrias
do servomotor quando levado aos seus extremos.


Figura 24: Especificaes e dimenses do servo HXT 900


Figura 25: Imagem real do servomotor HXT 900

71
5.5 Implementao do Sistema de Controle

Toda implementao prtica das tcnicas de controle desse projeto foram feitas
em software no kit Arduino, o qual utiliza uma linguagem de programao semelhante
ao C e C++. O ambiente de desenvolvimento utilizado foi o ambiente do prprio
Arduino.
A realimentao utilizada partiu dos potencimetros acoplados ao eixo dos
servomotores da base e do antebrao. A tenso resultante do movimento dos
servomotores foi ento realimentada em duas entradas analgicas do kit que possuem
um conversor A/D.
Primeiramente, foi realizada uma coleta de dados para se definir uma funo que
relacionasse o ngulo do servomotor com a largura de pulso do PWM enviada a ele. Por
meio de observao, obtiveram-se valores de largura de pulso que resultavam em um
conjunto de ngulos que foram marcados na base do manipulador robtico, ao redor do
eixo de movimento do servomotor. Usando esses dados em conjunto com o Matlab, foi
possvel obter uma aproximao de uma funo que os relacionasse. A funo obtida foi
a seguinte:

3006 , 506 7522 , 9 0098 , 0 arg
2
+ + = ngulo ngulo pulso de ura L

Com essa equao em mos, foi implementado um programa que recebesse um
ngulo do usurio e retornasse o valor lido pelo conversor A/D, proveniente da
realimentao do potencimetro. Para que fosse possvel obter o erro por meio dos
valores A/D lidos, foi necessrio encontrar uma relao entre os valores A/D e o ngulo
ao qual eles correspondiam, e para tal, foi utilizado esse programa. Tendo posse desse
72
novo conjunto de dados, o Matlab foi utilizado novamente para se obter uma
aproximao da curva que relaciona valor A/D e ngulo. Os resultados obtidos foram os
seguintes:
Base: 1171 , 48 3086 , 0 000057 , 0
2
+ = AD AD ngulo
Antebrao: 2343 , 217 1982 , 0 000081694 , 0
2
+ = AD AD ngulo

A diferena nas equaes resulta do fato de o potencimetro foi acoplado a cada
servomotor em uma posio angular diferente, mesmo que os dois servomotores sejam
iguais e estivesse na mesma posio angular. Com essas equaes, foi possvel
implementar os cdigos para cada tcnica de controle.















73
6 RESULTADOS OBTIDOS

6.1 Simulaes

As figuras a seguir ilustram os diagramas de blocos e resultados dos mtodos de
controle simulados. Em todos os casos, os grficos se referem a sinais de entrada com
referncia em 90. Todas as simulaes foram feitas no Simulink, com exceo do PID
Neural, o qual teve sua simulao feita em cdigo, no prprio Matlab.





6.1.1 PID

Diagrama de blocos:


Figura 26: Diagrama de blocos do controlador PID


74
Resultado grfico:

0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90
Tempo (s)
A
n
g
u
l
o

(
g
r
a
u
s
)

Figura 27: Resposta do PID a uma referncia de 90



6.1.2 PI Fuzzy

Diagrama de blocos:


Figura 28: Diagrama de blocos do controlador PI Fuzzy


75
Resultado grfico:

0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90
Tempo (s)
A
n
g
u
l
o

(
g
r
a
u
s
)

Figura 29: Resposta do PI Fuzzy a uma referncia de 90

6.1.3 PID Neural
Resultado grfico:
0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90
Tempo (s)
A
n
g
u
l
o

(
g
r
a
u
s
)

Figura 30: Resposta do PID Neural a uma referncia de 90


76
6.2 Resultados Prticos

A seguir so mostrados os resultados prticos obtidos com as implementaes
dos mtodos de controle. Tambm mostrado o fluxograma ilustrando o funcionamento
do cdigo de cada mtodo.

6.2.1 PID

Para no haver uma resposta muito abrupta, foi optado por uma resposta com um tempo
de subida de aproximadamente 3 segundos, sem sobre elevao, com o tempo de
acomodao mais rpido possvel, e um erro em regime permanente de
aproximadamente 1% ou menos de 1 grau. Para a implementao do controlador foi
escolhido o algoritmo de PID de velocidade. Os parmetros utilizados no controlador
foram:

9157218376 0.00003414 = =
P
K K

57218376 0.00341491 = =
I
i
K
T
K

0 = =
D
K KTd


77
0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90
Tempo (s)
A
n
g
u
l
o

(
g
r
a
u
s
)

Figura 31: Resposta do PID para referncia de 90

Como pode ser observado pela Figura 31, o tempo de subida foi de
aproximadamente 3,4 s, valor prximo ao simulado. No entanto, o tempo de
acomodao foi muito grande (em torno de 6,1 s).
78

Figura 32: Fluxograma para cdigo do PID

6.2.2 PI Fuzzy:

Para o controlador PI Fuzzy, foi decidido apenas o tempo de subida de 3
segundos, devido caracterstica do controlador que apresentou um comportamento
bastante estvel e linear. As funes de pertinncia utilizadas esto ilustradas na Figura
33. A tabela 2 contm as regras fuzzy utilizadas.
79

Figura 33: Funes de pertinncia das entradas (em cima) e sadas (em baixo)

Tabela 2: Regras fuzzy
Erro\ Variao do erro Negativo Zero Positivo
Negativo Negativo Negativo Negativo
Zero Negativo Zero Positivo
Positivo Positivo Positivo Positivo
0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90
Tempo (s)
A
n
g
u
l
o

(
g
r
a
u
s
)

Figura 34: Resposta do controlador PI Fuzzy
80
Como observado pela figura 34, o tempo de subida utilizando o PI Fuzzy foi de
aproximadamente 3 s, enquanto que na simulao o tempo obtido foi de 3,2 s. Note
tambm que no h sobre-elevao o tempo de acomodao de 4s.

Figura 35: Fluxograma para o cdigo do PI Fuzzy
81
6.2.3 PID Neural

Para os testes com o PID Neural, no foi realizado um treinamento prvio da
rede offline, pois se preferiu ao invs disso utilizar os parmetros, (Kp, Ki e Kd) j
contidos no controlador PID.
Para o modelo de referencia foram escolhidos os parmetros
1 . 1
1
=
e
1 =
,
que resultam num modelo com tempo de subida prximo de 3 segundos e sem sobre
elevao. Com relao ao algoritmo de aprendizado, a taxa de aprendizado teve de ser
escolhida para que no fosse demasiadamente grande a ponto de fazer o sistema oscilar
devido a grande variaes dos parmetros ou excessivamente pequena, fazendo com que
a atualizao dos pesos acontecesse de forma muito lenta. Assim foi utilizado
-13
10 1 =
, onde valores um pouco acima ja comeam a apresentar respostas no
confiveis.
0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90


Tempo (sec)
A
n
g
u
l
o

(
g
r
a
u
s
)
Referencia
Movimento 1
Movimento 3
Movimento 5

Figura 36: Resposta do PID-Neural

82
Na Figura 36 foram mostrados os grficos do ngulo de sada da base, fazendo a
transio entre 0 at 90 graus. No grfico podemos ver que com o passar do tempo a
resposta de sada vai tendendo a ficar cada vez mais prxima com a resposta do modelo
de referencia.


Figura 37: Fluxograma para o cdigo do PID Neural

83
6.2.4 Neuro-Fuzzy

Para o controlador Neuro-Fuzzy concorrente foi construdo utilizando o
controlador Fuzzy e o PID-Neural, demonstrados anteriormente, em paralelo.
A idia era fazer com que a resposta do controlador fosse uma combinao da
resposta dos dois controladores, uma resposta mais linear como o do PI Fuzzy e a
capacidade de se adaptar as respostas desejadas como PID-Neural. Adotou-se uma taxa
para a sada de cada controlador, a fim de fazer com que se possa definir a proporo de
que cada um ter na formao do sinal de controle. Os pesos utilizados na prtica foram
de 30% PID Neural e 70% PI Fuzzy.
Para o Neuro-Fuzzy cooperativo utilizou se o sistema Fuzzy como um dos
parmetros para o treinamento da rede neural. Para a entrada do Fuzzy foi utilizado o
erro em relao da referencia e o erro com relao a sada do modelo de referencia.

( )( )( ) Fuzzy crisp saida n Jp n e O n e n Kp n Kp ) ( ) ( 2 ) ( ) ( ) 1 (
1
= +

( )( )( ) Fuzzy crisp saida n Jp n e O n e n Ki n Ki ) ( ) ( 2 ) ( ) ( ) 1 (
2
= +

( )( )( ) Fuzzy crisp saida n Jp n e O n e n Kd n Kd ) ( ) ( 2 ) ( ) ( ) 1 (
3
* *
= +

( )( ) Fuzzy crisp saida n Jp n e
O
n Kd n e n n ) ( ) ( 2 ) ( ) ( ) ( ) 1 (
3 *

\
|

= +




84
0 1 2 3 4 5 6 7 8
0
10
20
30
40
50
60
70
80
90


Tempo (sec)
A
n
g
u
l
o

(
g
r
a
u
s
)
Ref erncia
Concorrente
Coperativo 1
Coperativo 2

Figura 38: Resposta dos Controladores Neuro-Fuzzy

A figura 38 mostra a resposta do modo Concorrente e do modo Cooperativo, no
primeiro e do segundo movimento realizado pelo controlador, demonstrando a sua
capacidade de adaptao.











85
Neuro-Fuzzy Concorrente:

Figura 39: Fluxograma para o cdigo do Neuro-Fuzzy Concorrente

86
Neuro-Fuzzy Cooperativo:

Figura 40: Fluxograma para o cdigo do Neuro-Fuzzy Cooperativo

87
7 CONCLUSO

O objetivo desse trabalho foi estudar, compreender, simular, e implementar o
controle Neuro-Fuzzy em um manipulador robtico de 3 graus de liberdade. Foi
construdo um prottipo, usando servomotores, no qual foram implementados todos os
tipos de controle aqui apresentados. Todos tiveram resultados satisfatrios, no entanto
pode-se perceber, comparando os resultados grficos, que o PI Fuzzy se sobresai em
relao ao outros mtodos de controle, com sua estabilidade de movimento e melhor
tempo de subida. possvel perceber, tambm, que controle Neuro-Fuzzy Concorrente
foi o que teve uma resposta mais prxima do PI Fuzzy, mas ainda mantm as
caractersticas do controle PID Neural. O controle Neuro-Fuzzy Cooperativo teve um
bom resultado, melhorando seu desempenho com a realizao de novos movimentos,
como possvel perceber pelos grficos. Conclui-se ento que o controle Neuro-Fuzzy
em geral tem um grande potencial, combinando as caractersticas de ambos de acordo
com os parmetros configurados.
Esse trabalho deve, ento, ser visto como um ponto de partida para futuros
desenvolvimentos e aprimoramentos das tcnicas aqui apresentadas. Existe muito a se
melhorar, e esperamos que esse estudo seja til nesse processo.







88
8 BIBLIOGRAFIA
[1] Controle de um Brao Robtico Utilizando uma Abordagem de Agente Inteligente,
Tarig Ali Abdurrahman El Shheibia, Campina Grande PB, Julho de 2001.
[2] Controle Fuzzy para Brao Robtico Utilizando a Abordagem Adaptativa Neuro-
Fuzzy (ANFIS) do Matlab, Joo Rodolfo Crtes Pires e Cairo Lcio Nascimento Jnior.
[3] Desenvolvimento de um Sistema para o Controle de um Brao Robtico, Felipe Lus
Aquino Pereira da Rocha, Uberlndia, Novembro/2003.
[4] Sistema de Controle de Brao Mecnico Automatizado, Joo Paulo de Lima, Saraiva
Julyana da Rocha Maranho & Thiago Luiz Alves Listo, Belm PA, 2008.
[5] Adaptive PID Control of a Nonlinear Servomechanism Using Recurrent Neural
Networks, Reza Jafari1 and Rached Dhaouadi.
[6] Neural Network Control of Nonlinear Discrete-Time Systems, Jagannathan
Sarangapani, The University of Missouri, Rolla, Missouri.
[7] Optimised Training Techniques for Feedforward Neural Networks, Leandro Nunes
& de Castro Fernando Jos Von Zuben.
[8] Redes Neurais Aplicadas em Estratgias de Controle No Linear, Larcio Ender.
[9] Contribuies anlise de Robustez de Sistemas de Controle Usando Redes
Neurais, Oscar Gabriel Filho.
[10] Indroduo s Redes Neurais Articiais, Jorge M. Barreto.
www.inf.ufsc.br/~barreto/tutoriais/Survey.pdf
89
[11] Controle Neural Inverso para um Servomotor, Elton Rafael Alves, Belm Par,
Dezembro 2008.
[12] Adaptation of Fuzzy Inference System Using Neural Learning, A. Abraham.
[13] Discrete-Time Control System, Katsuhiko Ogata. Prentice Hall, Englewood Cliffs,
1994
[14] Leonid Reznik, Fuzzy Controllers, Ed Newnes, Melbourne, 1997.