Professional Documents
Culture Documents
>
<
=
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
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.