Você está na página 1de 8

CONTROLE FUZZY PARA BRAO ROBTICO UTILIZANDO A ABORDAGEM ADAPTATIVA NEURO-FUZZY (ANFIS) DO MATLAB Joo Rodolfo Crtes Pires

(PG)
Diviso de Engenharia Mecnica-Aeronutica Instituto Tecnolgico de Aeronutica 12228-900-So Jos dos Campos-SP e-mail: jrcortes@mec.ita.br

Cairo Lcio Nascimento Jnior (PQ)


Diviso de Engenharia Eletrnica Instituto Tecnolgico de Aeronutica 12228-900-So Jos dos Campos-SP e-mail: cairo@ita.br

RESUMO Em muitos casos a lgica fuzzy tipo Mamdani possibilita o rpido desenvolvimento de um controlador para um sistema fsico mesmo se o projetista no dispor de um rigoroso modelo matemtico do sistema a ser controlado. Variveis lingsticas so ento usadas para modelar o conhecimento intuitivo dos operadores do sistema e assim desenvolver regras fuzzy tipo Mamdani que rapidamente produziro um controle grosseiro. Entretanto, se for desejado um controlador de alto desempenho, os controladores fuzzy tipo Mamdani so difceis de serem ajustados. Uma alternativa o desenvolvimento de controladores fuzzy tipo Sugeno. Porm controladores desse tipo so de difcil ajuste manual visto que a topologia usada por este estilo de lgica fuzzy favorece o modelamento matemtico em prejuzo da utilizao do conhecimento intuitivo. Este artigo prope a combinao do uso destes dois tipos de controladores fuzzy usando a estrutura de controle conhecida por feedbackerror-learning. Nesta estrutura um controlador fuzzy tipo Mamdani rapidamente ajustado para implementar um controlador feedback estvel mas de baixo desempenho. Ento os parmetros de um controlador fuzzy tipo Sugeno, funcionando como controlador feedforward, so ajustados por uma rotina de treinamento para sistemas neuro-fuzzy do software MATLAB (ANFIS Adaptive NeuroFuzzy Inference System). As simulaes computacionais desta abordagem mostraram que para um brao robtico foi possvel o rpido desenvolvimento de um sistema de controle com desempenho superior ao obtido quando apenas um dos dois tipos de controladores foi usado. ABSTRACT In many cases, by using the Mamdani-style fuzzy logic, a designer can rapidly develop a controller for a physical system even if a rigorous mathematical model of the system is not available. Linguistic variables and Mamdani-style fuzzy logic are then used to model the intuitive knowledge about the system, which was acquired by the operators through their everyday experience with the real-world system. In this way a rough controller can be rapidly obtained. However, if a high-performance controller is desired, experience has shown that it will be difficult to fine tune the Mamdani-style fuzzy controller manually or by using a training algoritthm. A possible alternative is to develop a Sugenostyle fuzzy controller which are hard to be adjusted manually since their topology favours mathematical modelling instead of the expression of intuitive knowledge. Sugeno-style fuzzy controller can be adjusted automatically by a training algorithm but it may be difficult to initialize the parameters of such a controller to obtain a stable learning process. This article proposes to combine the Mandani and Sugeno fuzzy controllers using the control structure known as Feedback-ErrorLearning. Initially, only the Mandani-style fuzzy controller is used as the feedback controller and is rapidly tuned which to produce a rough stable controller. Then a Sugeno-style controller is used as a feedforward controller and is tuned by a neuro-fuzzy training algorithm available in the software package MATLAB (ANFIS - Adaptive Neuro-Fuzzy Inference System). Computer simulations of a highly non-linear robotic arm demonstrate that by using the proposed approach, when the two types of fuzzy controllers are used simultaneously, one could more rapidly develop a better controller than using either one of these two types of fuzzy controllers. 1. INTRODUAO Um sistema de controle tem como funo fornecer respostas a uma determinada entrada de acordo com sua funo de transferncia. Para muitos sistemas esta funo apresenta grande complexidade o que dificulta o controle atravs dos procedimentos convencionais. Nestes caso os

controladores fuzzy podem ser aplicados com bons resultados. Os controladores fuzzy permitem que expresses lingusticas sejam usadas, e dessa maneira de maneira simples o conhecimento intuitivo dos operadores humanos pode ser codificado e usado, mesmo se os sistemas forem complexos e nolineares. 2. LGICA FUZZY A lgica fuzzy (tambm chamada de lgica nebulosa) permite o tratamento de expresses que envolvam grandezas de forma no exata. Esta forma de mensurar as grandezas muito parecida com o comportamento dos seres humanos, por isso sendo um bom modelo para emular o nosso comportamento. A lgica nebulosa baseia-se no estudo de operaes sobre conjuntos nebulosos (fuzzy sets) e pode ser entendida como uma generalizao da lgica clssica (crisp sets) [1], [2]. A lgica clssica pode ser representada pela funo indicadora I(.), que assume apenas dois valores, {0,1}, conforme respectivamente o elemento no pertena ou pertena ao conjunto em questo. Desta forma, dado um conjunto A contido num universo X, um elemento x deste universo pode assumir apenas dois estado em relao ao conjunto A, que representado pela funo IA(x): IA(x) = { 1 se x A, ou 0 se x A} Portanto podemos definir um conjunto clssico como: A={x X | IA(x) = 1} No caso da lgica nebulosa 3 casos so possveis pois o mesmo elemento x X: 1) pode pertencer integralmente ao conjunto A, 2) pode no pertencer a A, ou 3) pode pertencer parcialmente ao conjunto A. O fato de um elemento pertencer parcialmente a um conjunto faz com que tenhamos de trocar a funo indicadora I(.) = {0,1} por uma funo pertinncia (.) = [0,1], ou seja, o grau de pertinncia de um elemento a um conjunto um nmero real no intervalo fechado [0,1] ao invs de apenas os dois valores extremos do intervalo como no caso da lgica clssica. Deste modo passamos a definir um conjunto fuzzy como: A={x X | A(x) = , 0 1}. Assim como no caso de conjuntos clssicos podem ser definidas operaes como unio e interseco de conjuntos nebulosos. Entretanto para conjuntos nebulosos temos: A Ac X A Ac onde Ac indica o complemento do conjunto A, X indica o conjunto universo e indica o conjunto vazio. 3. CONTROLADOR NEBULOSO Um controlador nebuloso basicamente um processo de inferncia em conjunto nebulosos. Podemos dividi-lo em trs partes principais: a fuzzificao; a mquina de inferncia nebulosa; e a defuzzificao; O processo de fuzzificao consiste em obter a partir de uma varivel numrica x X, o seu grau de pertinncia aos conjuntos Ai contidos no universo X (figura 1).

Figura 1 - Graus de pertinncia de x aos conjuntos Ai.

O processo de inferncia nebulosa realiza as operaes com conjuntos nebulosos. Neste artigo foram usadas as seguintes definies para os operadores A B, A B, A: A B = max( A, B) A B = min( A, B) A = 1 A Para a operao implica ( ) adotou-se a definio onde o valor da funo pertinncia obtida do conjunto resultante do primeiro termo transferida para o conjunto do segundo termo. O processo de defuzzificao consiste em obter a partir do valor da funo pertinncia resultante das diversas regras de inferncia um valor numrico de sada. Neste ponto que temos a diferena entre o controlador do tipo Mamdani e do tipo Sugeno [3], [4], [5]. Nos controladores do tipo Mamdani ao transferirmos o valor da funo de pertinncia para o conjunto de sada obtemos como resultado uma rea para os valores inferiores ao da funo pertinncia. A unio dessas reas para todas as regras nos d o conjunto fuzzy de sada, que para passar para o valor numrico usa-se por exemplo a abcissa do centro de gravidade da rea obtida. Para o controlador do tipo Sugeno temos como sada uma funo polinmio de grau n em funo das variveis de entrada. Usualmente adota-se n = 0 ou n = 1, visto que a melhora dos resultados no justifica o aumento da complexidade obtida. O fato da sada do tipo Sugeno ser uma funo linear nos parmetros que devem ser ajustados permite que o mtodo do backpropagation ou um mtodo hbrido de backpropagation e mnimos quadrados seja aplicado para ajustar o controlador tipo Sugeno [5]. Um controlador fuzzy tpico normalmente projetado para se comportar de forma dedutiva, ou seja, inferir concluses baseado no conhecimento que ele contenha. Outra forma de aplicao destes controladores seria projet-lo para possuir comportamento indutivo, onde possvel a aprendizagem e generalizao atravs de exemplos particulares provenientes da observao do seu comportamento numa situao dinmica. 4. EXPERIMENTO A abordagem que utilizamos foi de usar um controlador do tipo Mamdani atuando de forma dedutiva e um controlador do tipo Sugeno de forma indutiva. Para isso foi simulado um sistema de controle do brao robtico com um controlador Mamdani atuando como controlador tipo feedback e um controlador Sugeno atuando como controlador tipo feedforward, de acordo com a estrutura de controle neural conhecida como Feedback-Error-Learning [6]. Tal estrutura mostrada na figura 2.

Figura 2 - Estrutura de controle Feedback-Error-Learning.


A idia central fazer com que, atravs da abordagem adaptativa neuro-fuzzy, o controlador Sugeno (que iniciado de forma tal a ter atuao nula) aprenda a cada sesso de treinamento a reproduzir o torque total aplicado no brao robtico sem o torque bias. Desta maneira, o controlador

Sugeno paulatinamente assumir o controle do brao robtico e a sada do controlador Mamdani ir convergir para valores muito pequenos [6]. As figuras 3 e 4 ilustram o brao robtico e o diagrama de simulao no software MATLAB/SIMULINK. Conforme mostrado no diagrama de simulao (figura 4) a entrada do modelo Sugeno (cujos parmetros foram armazenados no arquivo bracosug.fis) a posio de referncia e a sua derivada no instante t e a sada o torque total aplicado ao brao robtico antes da aplicao da adio do valor bias (figuras 2 e 4). O valor bias foi ajustado de forma a ser o valor do torque necessrio para manter o brao robtico parado na posio horizontal.

Figura 3 - Brao robtico.

Figura 4 - Diagrama de simulao em MATLAB/SIMULINK.

O sinal de referncia da posio que o brao deve estar em funo do tempo, um uma onda senoidal de amplitude +90 a -90 com freqncia de 2 rad/s . este sinal pode ser visto na figura 5.
bracoanfis 100

50

-50

-100 32 34 36 Tim e (Seconds) 38 40

Figura 5 - Trajetria de referncia para o brao robtico. O treinamento do controlador Sugeno foi realizado ao final de cada sesso de simulao, ou seja, durante cada sesso de simulao os parmetros do controlador Sugeno foram mantidos constantes e os dados de treinamento foram colhidos. Ao final de cada sesso de simulao, o controlador Sugeno foi ento treinado com os dados colhidos na sesso de treinamento imediatamente anterior. Na primeira sesso de simulao da estrutura Feedback-Error-Learning (iterao zero) apenas o controlador Mamdani foi usado. Este controlador foi ajustado manualmente de forma tal a produzir para o brao robtico uma trajetria estvel. Tal trajetria mostrada na figura 6. Os parmetros do controlador Mamdani e os parmetros iniciais do controlador Sugeno so mostrados no apndice deste artigo.
bracoanfis 150 100 50 0 -50 -100

32

34 36 Tim e (Seconds)

38

40

Figura 6 - Trajetria do brao robtico ao final da primeira sesso de simulao. Ao final da primeira sesso de simulao o valor de referncia da posio ( ), a derivada do valor de referncia ( ) e o torque total sem o bias foi armazenado em uma matriz teta, considerando os 40 segundos de operao do brao amostrados com intervalo 0,1 s. Desta matriz, foram extrados os dados referentes aos 2 ltimos ciclos do sinal de referncia. Os dados referentes ao penltimo ciclo foram armazenados na varivel bracosugTrn enquanto que os dados referentes ao ltimo ciclo foram armazenados na varivel bracosugChk. A funo ANFISEDIT do software MATLAB 6.0 [5] foi ento usada par treinar um sistema neuro-fuzzy tipo Sugeno usando os dados da varivel bracosugTrn como dados de treinamento (training data) e os dados da varivel bracosugChk como dados de

verificao do treinamento (checking data) para evitar o chamado overtraining. Foi utilizada a facilidade da funo ANFISEDIT onde o treinamento realizado at que o mnimo erro sobre o conjunto checking data seja atingido. Este procedimento composto de sesso de simulao e sesso de treinamento foi repetido 12 vezes. Ao final da 12a sesso de treinamento, foi ento implementado um aumento de 2% no torque de bias e a estrutura Feedback-Error-Learning foi novamente simulada. A figura 7 mostra a trajetria real do brao aps o treinamento do controlador Sugeno por 12 sesses e o ajuste fino no torque de bias. Pode-se observar nesta figura que a trajetria real do brao robtico muito prxima da trajetria de referncia desejada.
bracoanfis 100

50

-50

-100 32 34 36 Tim e (Seconds) 38 40

Figura 7 - Trajetria real do brao robtico ao final do treinamento e do ajuste fino no torque de bias. A figura 8 mostra a integral do valor absoluto dos torques gerados pelos controladores Mamdani e Sugeno ao final de cada uma das 13 sesses de simulao da estrutura Feedback-ErrorLearning. Note, como reportado em [1] e [6], o efeito do chaveamento entre os controladores feedback (Mamdani) e feedforward (Sugeno) e a consequente reduo do erro de trajetria do brao robtico conforme mostrado pela figura 7.
20

Integral de abs(Torque)

M amdani Sugeno
15

10

0 1

9 10 11 12 13 14

Figura 8 - Integral do valor absoluto dos torques gerados pelos controladores Mamdani e Sugeno ao final de cada sesso de simulao. 6. CONCLUSO Podemos perceber que a arquitetura de dois controladores fuzzy , um do tipo Mamdani trabalhando em feedback e o outro do tipo Sugeno trabalhando em feedforward se adequou satisfatoriamente ao ajuste do brao mecnico com um grau de liberdade. Na realidade obtivemos a vantagens dos dois tipos de controladores fuzzy, o primeiro tem a vantagem de ser ajustado rapidamente manualmente, e o segundo tem a vantagem de permitir o ajuste fino atravs de uma

No da sesso

abordagem adaptativa neuro-fuzzy. Uma possvel melhoria nessa arquitetura poderia ser testada fazendo com que o controlador Sugeno aprendesse tambm o torque de bias, no necessitando ento de um ajuste final como necessrio neste caso. BIBLIOGRAFIA [1] Nascimento Jr., C. L.; Yoneyama, T.; Inteligncia Artificial em Controle e Automao, Edgard Blcher, So Paulo, 2000. [2] Shaw,I. S.; Simes,M.G.; Controle e Modelagem Fuzzy, Edgard Blcher, So Paulo, 1999. [3] Jang, J.-S. R.; ANFIS: Adaptive-Network-Based Fuzzy Inference System, IEEE Trans. Systems, Man, and Cybernectics, vol. 23, no. 3, pgs. 665-685, May/June 1993. [4] Jang, J.-S. R.; Sun, C.-T.; Neuro-Fuzzy Modeling and Control, Proceedings of the IEEE, vol. 83, no. 3, pgs. 378-406, March 1995. [5] The Mathworks Inc.; Fuzzy Logic Toolbox Users Guide, http://www.mathworks.com/. [6] Rios Neto, Wilson; Nascimento Jr., Cairo L.; Ges, Luiz Carlos S.; Controle Adaptativo Inverso usando Feedback-Error-Learning, Anais do XII Congresso Brasileiro de Automtica, Vol. I, pgs. 351-356, Uberlndia, 14-18 Set. 1998. Apndice - Dados dos Controladores A.1. Controlador Mamdani: A.1.1. Regras usada no controlador Mamdani: If (erro is neg) and (rate is neg) then (torque is neg) (1) If (erro is pos) and (rate is pos) then (torque is pos) (1) If (erro is pos) and (rate is neg) then (torque is BPC) (1) If (erro is neg) and (rate is pos) then (torque is BPC) (1) If (erro is zero) and (rate is zero) then (torque is BPM) (1) A.1.2. Funes de Pertinncia para as entrada e a sada do controlador Mamdani:
input 1 "erro" input 2 "derivada do erro" pos

neg

zero

de rivad a-t eta -po s derivada-teta-negativa it iva

zero

derivada-teta-positiva

D egree of membership

0.8 0.6 0.4 0.2 0 -3 -2 -1 0 erro 1 2 3

D egree of membership

0.8 0.6 0.4 0.2 0 -10 -5 0 rate 5 10

Input 1
output " torque " controlador tipo M amdani

Input 2
1
neg BPC BPM pos

D egree of membership

0.8 0.6 0.4 0.2 0 -15 -10 -5 0 torque 5 10 15

Output

A.2.Controlador Sugeno: A.2.1. Regras usadas no controlador Sugeno: If (erro is teta-neg) and (rate is derivada-teta-positiva) then (torque is TGP) (1) If (erro is teta-pos) and (rate is derivada-teta-positiva) then (torque is TPP) (1) If (erro is teta-pequeno) and (rate is derivada-teta-positiva) then (torque is TMP) (1) If (erro is teta-pequeno) and (rate is derivada-teta-negativa) then (torque is TMN) (1) If (erro is teta-neg) and (rate is derivada-teta-negativa) then (torque is TPN) (1) If (erro is teta-pos) and (rate is derivada-teta-negativa) then (torque is TGN) (1) A.2.2. Funes de Pertinncia para as entradas do controlador Sugeno antes do processo de aprendizagem:
input 1 "referencia" input 2 "derivada da referencia" teta-pos

teta-neg

teta-pequeno

derivada-teta-negativa

derivada-teta-positiva

0.8 0.6 0.4 0.2 0 -3 -2 -1 0 referncia 1 2 3

D egree of membership

D egree of membership

0.8 0.6 0.4 0.2 0 -1 0 -5 0 deriva da-refer nc ia 5 10

Input 1

Input 2

A.2.3. Funes de Pertinncia para as entradas do controlador Sugeno depois do processo de aprendizagem:
Input 1 " referencia" Input 2 "derivada da referncia" teta-pos

1 Degree of m embership 0.8 0.6 0.4 0.2 0 -3

teta-neg

teta-pequeno

derivada-teta-negativa

derivada-teta-positiva

Degree of membership

0.8 0.6 0.4 0.2 0

-2

-1

0 referncia

-10

-5

Input 1

0 derivada-referncia

10

Input 2

A.2.4. Funes de Pertinncia para a sada do controlador Sugeno: Todos os parmetros das funes de pertinncia de sada do controlador Sugeno foram inicializados em zero e ao final das 12 sesses de treinamento apresentaram os seguintes valores: TGP = [ TPP = [ TMP = [ TMN = [ TPN = [ TGN = [ 26,8937 -2,4470 3,9341 -4,0166 -86,6385 -4,1739 -20,8633 1,6767 -3,8351 -7,5853 -32,8735 -0,1532 88,3323] -5,0372] 14,9434] -26,0597] -187,6150] 0,5572]