modelagem de um controlador fuzzy para pêndulo invertido utilizando a fuzzy logic toolbox™

19
Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™ José Vergara Dietrich Yuri Garcia Silva I – Introdução teoria de conjuntos fuzzy, apresentada em (Zadeh, L.A, 1965), permitiu uma nova abordagem de pesquisa na área de controle, o que possibilitou o projeto de controladores independentemente da especificação de um modelo matemático para a planta. A lei de controle de tais dispositivos é baseada em regras condicionas que relacionam as entradas com uma determinada ação de saída. Quanto maior o número de regras, melhor será a resposta de saída e obviamente um controle de melhor qualidade. Estas regras são geradas de modo a manter a proximidade com a linguagem natural, facilitando uma possível alteração das leis de controle. Os controladores fuzzy são largamente utilizados e apresentam uma imensidão de aplicações possíveis, tais como lava-louças, câmeras fotográficas, elevadores, etc. Para o entendimento das técnicas apresentadas nesse artigo, recomenda-se a leitura de (Ibrahim, 2003). A ferramenta Fuzzy Logic Toolbox™ para MATLAB® fornece meios computacionais de desenvolvimento de controladores fuzzy através de uma interface gráfica. Tais controladores podem ter seu desempenho verificado através da ferramenta Simulink®, que fornece um ambiente de simulação para sistemas dinâmicos. Utilizando as ferramentas citadas anteriormente como suporte, este artigo mostra como é feito um controlador fuzzy para o problema clássico do pêndulo invertido sobre um carro. Adicionalmente é realizada uma comparação entre o desempenho do controlador fuzzy desenvolvido e um controlador PID, cujo processo de construção não é descrito neste artigo. Em resumo, a intenção deste artigo é especificar, através de um guia prático, como é feito o desenvolvimento de um controlador fuzzy utilizando as ferramentas presentes no MATLAB®. II – Fuzzy Logic Toolbox™ No Fuzzy Logic Toolbox™ há cinco interfaces gráficas para auxiliar no projeto do controlador, das quais três são editores de dados e duas são observadores de resultados. A ferramenta suporta a criação de controlador do tipo Mamdani e Sugeno. Para iniciar a modelagem de um controlador fuzzy, deve-se digitar fuzzy na janela de comando do MATLAB®. Esta ação resulta na abertura do editor do sistema de inferência fuzzy (FIS Editor – Fuzzy Inference System Editor).

Upload: almirosilveira

Post on 27-Jul-2015

1.433 views

Category:

Documents


8 download

DESCRIPTION

Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™ José Vergara Dietrich Yuri Garcia Silva

TRANSCRIPT

Page 1: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Modelagem de um controlador fuzzy para pênduloinvertido utilizando a Fuzzy Logic Toolbox™

José Vergara DietrichYuri Garcia Silva

I – Introduçãoteoria de conjuntos fuzzy, apresentada em (Zadeh, L.A, 1965), permitiu uma nova abordagem de pesquisa na área de controle, o que possibilitou o projeto de controladores independentemente da especificação de um modelo matemático para a planta. A lei de controle de tais dispositivos é baseada em regras condicionas que relacionam as entradas com uma determinada ação de saída. Quanto maior o número de regras, melhor será a resposta de saída e obviamente um controle de melhor qualidade. Estas regras são geradas de modo a manter a proximidade com a linguagem natural, facilitando uma possível alteração das leis de controle.

Os controladores fuzzy são largamente utilizados e apresentam uma imensidão de aplicações possíveis, tais como lava-louças, câmeras fotográficas, elevadores, etc. Para o entendimento das técnicas apresentadas nesse artigo, recomenda-se a leitura de (Ibrahim, 2003).

A ferramenta Fuzzy Logic Toolbox™ para MATLAB® fornece meios computacionais de desenvolvimento de controladores fuzzy através de uma interface gráfica. Tais controladores podem ter seu desempenho verificado através da ferramenta Simulink®, que fornece um ambiente de simulação para sistemas dinâmicos. Utilizando as ferramentas citadas anteriormente como suporte, este artigo mostra como é feito um controlador fuzzy para o problema clássico do pêndulo invertido sobre um carro.

Adicionalmente é realizada uma comparação entre o desempenho do controlador fuzzy desenvolvido e um controlador PID, cujo processo de construção não é descrito neste artigo. Em resumo, a intenção deste artigo é especificar, através de um guia prático, como é feito o desenvolvimento de um controlador fuzzy utilizando as ferramentas presentes no MATLAB®.II – Fuzzy Logic Toolbox™

No Fuzzy Logic Toolbox™ há cinco interfaces gráficas para auxiliar no projeto do controlador, das quais três são editores de dados e duas são observadores de resultados.

A ferramenta suporta a criação de controlador do tipo Mamdani e Sugeno.Para iniciar a modelagem de um controlador fuzzy, deve-se digitar fuzzy na janela

de comando do MATLAB®. Esta ação resulta na abertura do editor do sistema de inferência fuzzy(FIS Editor – Fuzzy Inference System Editor).

Page 2: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 1- Fuzzy Inference System Editor

Nesta janela verifica-se a partir de uma ilustração o conjunto de entradas e saídas que se relacionam com o controlador. É nesta interface onde se deve escolher os parâmetros a serem utilizados pelas funções de pertinência e de fuzzificação, além da determinação do número de entradas e saídas. Para escolher o tipo do controlador, basta acessar no FIS Editor a seqüência File → New FIS → {Mamdani ou Sugeno}. A inserção de novas entradas ou saídas segue a seqüência Edit→ Add Variable →{Input ou Output}. Caso se faça necessário a remoção de uma entrada ou saída a seqüência se torna selecionar a variável a ser removida → Edit → Remove Selected Variable.

Na configuração das funções de pertinência utiliza-se a ordem de comando Edit →Membership Function, o que acarreta na abertura da janela Membership Function Editor, a qual é exibida na figura 2

Page 3: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 2 – Membership Function Editor

Nesta tela escolhe-se a quantidade e o tipo de função de pertinência que se quer aplicar a cada entrada e saída do controlador. Também é determinado o domínio da grandeza para qual se quer estipular o valor de pertinência. Para alterar a configuração da função de pertinência deve-se primeiro remover as funções de pertinências inicialmente carregadas pelo Membership Function Editor, o que é feito por selecionar a entrada → Edit → Remove All MFs.

Posteriormente adicionam-se as novas funções de pertinências por Edit → Add MFs. Isto abre uma nova janela que permite selecionar o tipo de função e o número de funções.

Para adequar as funções à especificação desejada, deve-se digitar no campo Params de cada função o valor do intervalo para o qual a função de pertinência assume valores diferentes de zero.

Tal procedimento também pode ser realizado arrastado com o mouse os pontos de cada função no gráfico. O domínio da grandeza é alterado através do campo Range do Membership Funtion Editor.

A configuração das regras é feita acessando a janela Rule Editor, que pode ser acessada a partir do FIS Editor por Edit →Rules. A figura 3 ilustra o Rule Editor.

Uma regra é determinada selecionando diferentes entradas e associando-as a um conector (AND ou OR) e impondo uma conseqüência de saída. Cada regra possui um peso, representando o quanto se “acredita” na regra, que pode ser atribuído pelo campo weight.

Page 4: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 3 – Rule Editor

As interfaces gráficas descritas até agora estão ligadas são do tipo editores de dados.Para complementar o processo de desenvolvimento, o Fuzzy Logical Toolbox™ disponibiliza ainda as interfaces Rule Viewer e Surface Viewer.

Page 5: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 4 – Rule Viewer

Através do Rule Viewer é possível selecionar valores para as variáveis de entrada e verificar como o controlador fuzzy responde a cada regra previamente estipulada, além do valor numérico obtido na defuzzificação. Os valores de entrada devem ser inseridos no campo Input. Para abrir o Rule Viewer deve-se ir por View → Rule Viewer a partir do FIS Editor. A figura 4 demonstra claramente esta situação para um controlador de duas entradas e uma saída. É possível ainda visualizar uma superfície que relaciona duas variáveis de entrada com uma variável de saída. Isto pode ser feito pela seqüência View →Surface a partir do FIS Editor.

Para salvar um projeto deve-se clicar em File → Export → To Disk. O carregamento de um controlador fuzzy no Fuzzy Logical Toolbox™ é feito seguinte a ordem File → Import → From Disk.

III – Modelo do pêndulo invertidoO modelo do pendulo invertido (figura 5) utilizado neste artigo consiste basicamente num carro que possui uma haste articulada na parte superior. O objetivo é manter a haste na posição vertical através do acionamento do motor que traciona as rodas.

Page 6: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 5 – Modelo do pêndulo invertidoO controle em malha fechada (figura 6) consiste em realimentar informações de

saída do pendulo na entrada do controlador para estabilizar o sistema.Para testar o desempenho do controlador, foi utilizada uma perturbação do tipo

impulso aplicada como uma força na horizontal no carro.

Figura 6 – Controle em malha fechada do pêndulo invertido

IV – Modelagem do controlador fuzzy

Page 7: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Para dar inicio ao projeto do controlador, faz-se necessário definir as variáveis de entrada e saída, assim como o domínio de cada uma delas, como pode ser visto na tabela abaixo:

TABELA 1 - Entradas e saídas do controlador fuzzy

Os domínios das variáveis foram definidos de forma empírica utilizando conhecimentos do fenômeno físico. Por exemplo, os limites máximos para os valores de theta (ângulo) foram definidos como ±45º que equivale a 0.8 rad. Para a velocidade foram feitas algumas simulações e chegamos a valores de ±2 rad/s como limites aceitáveis. A saída, tensão de controle, foi limitada em ± 20V, supondo um motor acionado sob esta tensão.

As funções de pertinência foram definidas da maneira como é mostrado nas figuras 7,8 e9.

Figura 7 – Funções de pertinência da entrada posição

Page 8: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 8 – Funções de pertinência da entrada velocidade

Page 9: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 9 – Funções de pertinência da saída motorA tabela de inferêcia fuzzy (TABELA 2) utilizada para o controlador foi montada com basena tabela de inferência mostrada por Luger (2004, p.10).

TABELA 2 - Tabela de inferência fuzzy mostrada

A tabela de inferência fuzzy representa a ação do controlador para as situações possíveis nas quais o modelo pode se encontrar. Os dados de entrada, posição e velocidade, são interpretados como medidas nebulosas. Os valores de entrada são divididos em três regiões: Negativo (N), Zero (Z) e Positivo (P), onde a primeira coluna da tabela representa os valores para posição e a primeira linha os valores de velocidade.

A solução da tabela se dá interpolando os valores de entrada posição e velocidade. O intervalo de saída foi dividido em 5 regiões: Negativo Rápido (NEG_R), Negativo Lento (NEG_L), Zero, Positivo Lento (POS_L) e Positivo Rápido (POS_R).Variável RangePosição θ [rad] [-0.8 0.8]EntradasVelocidade Angular ω [rad/s] [-2 2]Saída Tensão aplicada ao Motor U [V] [-20 20]

Esta configuração foi testada no modelo do pêndulo invertido e o gráfico da ângulo é mostrado na figura 7.

Page 10: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 7 - Gráfico mostrando o resultado da implementação da TABELA 2. Perturbação e a posição do pêndulo

Como a variação, tanto da posição θ quanto do sinal de controle, apresentaram valores altos e tempo de acomodação elevado, foram feitas alterações nos parâmetros do controladorfuzzy.

Na figura 7 pode ser visto que o sobre sinal do erro de theta é de 18% e o tempo de acomodação em torno de 5 segundos, para uma perturbação de 0,1 radianos.

Para melhorar a resposta do sistema foram feitas mudanças na tabela de inferência, obtendo uma segunda solução, mostrada na tabela 3.

TABELA 3 - Tabela de inferência fuzzy alterada nas posições ZN,PN, NP e PZ.

Page 11: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Estas alterações foram feitas seguindo o raciocínio de que se a posição é negativa, ou seja, o pêndulo está à esquerda e a velocidade angular é positiva, o que representa o deslocamento do pêndulo para a direita tendendo ao equilíbrio, o sinal de controle do motor deve ser baixo em direção do deslocamento. Isto é feito para evitar que o pêndulo ultrapassasse o ponto zero, gerando sobre sinal. Seguindo a mesma lógica, porém de modo invertido, fez-se a alteração para a situação em que a posição é positiva e a aceleração negativa.

Foi alterado o parâmetro aggregation de MAX para SUM que é a forma como se dá a combinação das ações de cada regra do sistema de inferência Mamdani, preparando os dados para a defuzzificação. O resultado destas mudanças pode ser observado na figura 8.

Figura 8 - Gráfico mostrando o resultado da implementação da Tabela 3. Sinal de controle, perturbação e a posição do pêndulo.

Na figura 8 pode ser visto que o sobre sinal do erro de theta é de 2,5% e o tempo de acomodação em torno de 0,3 segundos para uma perturbação de 0,1 radianos.

Desta forma, analisando os gráficos, foi feita mais uma mudança na tabela de inferência, a qual foi a que apresentou melhores respostas. Ver tabela 4.

Page 12: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

TABELA 4 - Tabela de inferência fuzzy que apresentou melhor desempenho, com mudanças nas posições ZN e ZP.

Esta mudança diminui o esforço de controle, mantendo os mesmos resultados em relação ao sobre sinal e ao tempo de acomodação. Nesta solução, quando o ângulo estiver na região chamada de ZERO, se houver aceleração angular, tanto positiva quanto negativa, o controlador responde com a curva de inferência rápida, sendo NEG_R para aceleração negativa e POS_R para positiva.

O gráfico gerado pela TABELA 4 é mostrado na figura 9.

Figura 9 - Sinal do ângulo theta

Page 13: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Na figura 9 pode ser visto que o sobre sinal do erro de theta é de 2,5% e o tempo de acomodação em torno de 0,3 segundos, para uma perturbação de 0,1 radianos.

Na tentativa de melhorar o sobre sinal, foi alterado o peso das regras 4 e 6. As regras do controlador podem ser observadas na figura 10 e o resultado final da implementação do controlador fuzzy na figura 11.

Figura 12 – Desempenho do controlador PID mostrando a perturbação e o ângulo do pêndulo.

Page 14: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

Figura 13 – Resultado final do controlador fuzzy mostrando a perturbação e o ângulo do pêndulo

A comparação entre os controladores pode ser feita em função da resposta transitória, como pode ser visto na Tabela 5.

TABELA 5 – Comparação dos resultados do controlador PID e fuzzy.

VI – Conclusão

A utilização da ferramenta de programação Matlab® em conjunto com o Simulink™ possibilita ao usuário projetar de forma interativa e relativamente simples um controlador fuzzy. Uma das grandes vantagens de utilizar o ambiente é a facilidade de utilizar a interface gráfica para parametrizar o controlador.

Além da facilidade de interação com a linguagem de programação, o ambiente Simulink permite que, através da descrição de modelos matemáticos, o fenômeno físico possa ser simulado e o controlador validado. Através dessas experimentações o controlador pode ser mais bem ajustado possibilitando um refinamento de parâmetros que eventualmente sejam utilizados num processo real.

Page 15: Modelagem de um controlador fuzzy para pêndulo invertido utilizando a Fuzzy Logic Toolbox™

A implementação de controladores fuzzy não requer a descrição matemática do modelo do fenômeno físico, já que o controlador, chamado de heurístico, trabalha com informações do modelo do operador do sistema e não do sistema em si. Desta forma, apenas com regras do tipo Se-Então pode ser configurado um controlador fuzzy. A desvantagem é que ele não apresenta as garantias matemáticas que um controlador clássico PID oferece. REFERÊNCIAS BIBLIOGRÁFICAS ANDERSON, N. A. Instrumentation for process measurement and control. 3 ed., Florida: CRC, 1998. D’AZZO J. J.; HOUPIS, C. H. Linear control system analysis and design. 2 ed., New York: McGraw-Hill, 1981. DORF, R.C.; BISHOP, R. H. Sistemas de controle modernos. Rio de Janeiro: LTC, 2001. FRANKLIN, G. F.; POWELL, J. D.; WORKMAN, M. Digital control of dynamic systems. 3 ed., Menlo Park: Addison Wesley Longman, Inc., 1998. IBRAHIM, A. M. Fuzzy Logic for Embedded Systems Applications. USA: Elsevier, 2003. LUGER, G.F. Inteligência artificial: Estruturas e estratégias para a solução de problemas comple-xos. 4 ed., Porto Alegre: Bookmann, 2004. MUTAMBARA, A. G. O, Design and analysis of control systems. Florida: CRC, 1999.

NISE, N. S. Engenharia de sistemas de controle. 3 ed., Rio de Janeiro: LTC, 2002. OGATA, K. Engenharia de controle moderno. Rio de Janeiro: LTC, 2000. SHAW, I.S.; SIMÕES, M.G. Controle e modela-gem fuzzy. São Paulo: Edgard Blücher LTDA, 2001. TEWARI, A. Modern control design with Matlab and Simulink. England: John Wiley & Sons Ltd. ZADEH, L. A. "Fuzzy Sets". Information and Control, V. 8: 338-353.1965.