Fuzzy-pendulo-invertido1.pdf

12
CONTROL INTELIGENTE CONTROL FUZZY PARA UN PENDULO INVERTIDO Xavier Flores Manuel Montenegro Diana Noboa Luis Pérez DÉCIMO ELECTRONICA 2012-1-14 1. OBJETIVOS a. Objetivo general Diseñar un controlador fuzzy para el ejercicio planteado en clases (péndulo invertido). b. Objetivo especifico Utilizar las ecuaciones características del péndulo invertido para la simulación en simulink. Mediante las ganancias del controlador fuzzy sintonizarlo de la mejor manera. Escribir un algoritmo que permita realizar el proceso de fusificación. Observar el grado de certeza que se cumple una proposición en el algoritmo genético a desarrollarse. Obtener las funciones de pertenencias del proceso ` Implementar un controlador Fuzzy en Matlab para un sistema de péndulo invertido. Diseñar un controlador difuso a través de la herramienta FUZZY de matlab. 2. INTRODUCCION La lógica difusa ha cobrado una fama grande por la variedad de sus aplicaciones, las cuales van desde el control de complejos procesos industriales, hasta el diseño de dispositivos artificiales de deducción automática, pasando por la construcción de artefactos electrónicos de uso doméstico y de entretenimiento, así como también de sistemas de diagnóstico. Se dice que la lógica difusa es esencialmente lógica multivaluada que extienden a las lógicas clásicas. Estas últimas imponen a sus enunciados únicamente valores falso o verdadero, procurando crear aproximaciones matemáticas en la resolución de ciertos tipos de problemas Las principales razones para que la lógica fuzzy crezca rápidamente es quizás por la sencillez conceptual, la facilidad para adaptarse a casos particulares con pocas variaciones de parámetros, la habilidad para combinar en forma unificada expresiones lingüísticas con datos numéricos, y el no requerir de algoritmos muy sofisticados para su implementación En esencia un controlador lógico difuso, contiene un algoritmo que es capaz de convertir una estrategia de control lingüística en una estrategia de control automático. Con la lógica difusa se pueden diseñar aplicaciones para que las máquinas respondan con mayor inteligencia a la imprecisión y a las condiciones del mundo exterior, con lo que se busca imitar el comportamiento humano. La creación de una máquina con lógica difusa, es forjar un sistema experto, en donde el comportamiento de la máquina, va a estar basado totalmente en el conocimiento del experto o de la persona que aporta sus conocimientos empíricos para el

Transcript of Fuzzy-pendulo-invertido1.pdf

Page 1: Fuzzy-pendulo-invertido1.pdf

CONTROL INTELIGENTE

CONTROL FUZZY PARA UN PENDULO INVERTIDO

Xavier Flores

Manuel Montenegro

Diana Noboa

Luis Pérez

DÉCIMO ELECTRONICA

2012-1-14

1. OBJETIVOS

a. Objetivo general

Diseñar un controlador fuzzy para el ejercicio planteado en clases (péndulo invertido).

b. Objetivo especifico

Utilizar las ecuaciones características del péndulo invertido para la simulación en

simulink.

Mediante las ganancias del controlador fuzzy sintonizarlo de la mejor manera.

Escribir un algoritmo que permita realizar el proceso de fusificación.

Observar el grado de certeza que se cumple una proposición en el algoritmo genético a

desarrollarse.

Obtener las funciones de pertenencias del proceso `

Implementar un controlador Fuzzy en Matlab para un sistema de péndulo invertido.

Diseñar un controlador difuso a través de la herramienta FUZZY de matlab.

2. INTRODUCCION

La lógica difusa ha cobrado una fama grande por la variedad de sus aplicaciones, las cuales van

desde el control de complejos procesos industriales, hasta el diseño de dispositivos artificiales

de deducción automática, pasando por la construcción de artefactos electrónicos de uso

doméstico y de entretenimiento, así como también de sistemas de diagnóstico.

Se dice que la lógica difusa es esencialmente lógica multivaluada que extienden a las lógicas

clásicas. Estas últimas imponen a sus enunciados únicamente valores falso o verdadero,

procurando crear aproximaciones matemáticas en la resolución de ciertos tipos de problemas

Las principales razones para que la lógica fuzzy crezca rápidamente es quizás por la sencillez

conceptual, la facilidad para adaptarse a casos particulares con pocas variaciones de

parámetros, la habilidad para combinar en forma unificada expresiones lingüísticas con datos

numéricos, y el no requerir de algoritmos muy sofisticados para su implementación

En esencia un controlador lógico difuso, contiene un algoritmo que es capaz de convertir una

estrategia de control lingüística en una estrategia de control automático. Con la lógica difusa se

pueden diseñar aplicaciones para que las máquinas respondan con mayor inteligencia a la

imprecisión y a las condiciones del mundo exterior, con lo que se busca imitar el

comportamiento humano. La creación de una máquina con lógica difusa, es forjar un sistema

experto, en donde el comportamiento de la máquina, va a estar basado totalmente en el

conocimiento del experto o de la persona que aporta sus conocimientos empíricos para el

Page 2: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

2

funcionamiento de ésta. El conocimiento del experto es el conocimiento empírico de cómo

controlar el fenómeno, sin conocer ningún modelo del sistema a controlar.

3. MARCO TEORICO:

Péndulo Invertido

El modelo del péndulo invertido es un ejemplo clásico en la literatura de control y tiene

múltiples aplicaciones: desde el control de misiles hasta el análisis de la biomecánica de

la marcha, balance y postura humana.

El sistema a considerar consiste en un carro sobre el cual se encuentra un péndulo

invertido sujetado mediante un pivote sin fricción (véase Figura 1). El carro es movido

por un motor que en el instante t ejerce una fuerza u(t) en sentido horizontal, que es la

acción de control. Suponemos que todos los movimientos ocurren en un plano, es decir

que el carro se mueve a lo largo de una recta. Las ecuaciones que gobiernan el sistema

representado en la Figura 1 son:

Figura 1: Gráfico interpretativo del péndulo invertido.

Page 3: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

3

La primera ecuación representa la suma de las fuerzas en la dirección horizontal,

mientras que la segunda es la suma de los torques alrededor del punto pivote.

Considerando valores de Ѳ pequeños, el sistema lineal aproximado queda:

La lógica difusa se basa en lo relativo de lo observado como posición diferencial.

Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí. Así,

por ejemplo, una persona que mida 2 metros es claramente una persona alta, si previamente se

ha tomado el valor de persona baja y se ha establecido en 1 metro. Ambos valores están

contextualizados a personas y referidos a una medida métrica lineal.

a. FUNCIONAMIENTO:

La lógica difusa se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y

funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del

corazón está un poco acelerado", etc. La clave de esta adaptación al lenguaje, se basa en

comprender los cuantificadores de nuestro lenguaje (en los ejemplos de arriba "mucho", "muy"

y "un poco").

En la teoría de conjuntos difusos se definen las operaciones de:

Unión

Intersección

Diferencia

Negación

Complemento

y otras operaciones sobre conjuntos, en los que se basa esta lógica.

Page 4: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

4

Para cada conjunto difuso, existe asociada una función de pertenencia para sus elementos, que

indican en qué medida el elemento forma parte de ese conjunto difuso.

Se basa en reglas heurísticas de la forma SI (antecedente) ENTONCES (consecuente), donde el

antecedente y el consecuente son también conjuntos difusos, ya sea puros o resultado de operar

con ellos.

Sirvan como ejemplos de regla heurística para esta lógica

o SI hace muchísimo calor ENTONCES aumentó drásticamente la temperatura

o SI voy a llegar un poco tarde ENTONCES aumento levemente la velocidad.

Los métodos de inferencia para esta base de reglas deben ser simples, veloces y eficaces. Los

resultados de dichos métodos son un área final, fruto de un conjunto de áreas solapadas entre sí.

Para escoger una salida concreta a partir de tanta premisa difusa, el método más usado es el

del centroide, en el que la salida final será el centro de gravedad del área total resultante.

Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas

por expertos, o bien aprendidas por el propio sistema, haciendo uso en este caso de redes

neuronales para fortalecer las futuras tomas de decisiones.

Los datos de entrada suelen ser recogidos por sensores, que miden las variables de entrada de un

sistema. El motor de inferencias se basa en chips difusos, que están aumentando

exponencialmente su capacidad de procesamiento de reglas año a año.

Lógica fuzzy

A mediados de la década del 60 el Profesor Lotfi Zadeh, de la Universidad de California en

Berkeley, introdujo su teoría de los conjuntos fuzzy , donde la idea de pertenencia de un

elemento a un determinado conjunto no era ya pertenece o no pertenece, sino que pertenece en

un cierto grado. Las funciones que vinculan al elemento con su grado de pertenencia, se llaman

membership functions.

Basandose sobre esta idea, se construyó nuevamente toda la teoría de conjuntos, redefiniendo

inclusión, unión, operadores lógicos ( AND, OR ), otras operaciones y sus propiedades.

En lo referente a la lógica, aparecen nuevas alternativas respecto de la lógica tradicional, puesto

que, al evaluar una proposición, ya no es verdadera o falsa sino que la misma tiene un cierto

grado de veracidad, y que a su vez depende del grado de veracidad de sus premisas.

De aquí que al utilizar fuzzy logic en la evaluación de reglas, todas las reglas cuyas premisas

tengan algún grado de veracidad, influirán también en cierto grado a la solución del problema.

Es decir toda regla que sepa algo opina

Controladores fuzzy.

Los controladores fuzzy, igual que otros controladores, toman el valor de las variables de

entrada, procesan, y actúan sobre sus salidas a fin de controlar la planta.

En fuzzy control se utilizan sistemas basados en reglas, que emplean fuzzy logic, como

elemento central.

Dado su estado, y los valores de las variables de entrada, estos sistemas evalúan la veracidad de

cada regla, y así, toman decisión sobre los cambios a realizar en las variables de salida. Una vez

actualizadas las mismas, estas producirán un cambio sobre la planta, luego se vuelven a obtener

los valores de las variables de entrada, comenzando un nuevo ciclo.

Page 5: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

5

Al utilizar este tipo de resolución de problemas, es importante observar que lo que se está

procesando no son ya ecuaciones, números o tablas crudas sino, reglas, es decir se procesan

cosas tales como:

“SI la temperatura es baja ENTONCES aumente el ciclo de actividad del calefactor”

Tal tipo de procesamiento está mucho mas cercano al razonamiento del experto humano, ya que

permite realizar operaciones entre palabras como mas bajo, subir un poquito etc.

b. Ventajas:

Es fácil de entender conceptualmente:

o Los conceptos matemáticos detrás de ésta son muy simples. Lo que la hace

atractiva es la naturalidad con la que uno puede expresar problemas de cierta

complejidad.

Es flexible:

o Una vez diseñado un algoritmo fuzzy es fácil cambiar las reglas de

comportamiento.

Los datos pueden ser imprecisos y sin embargo, el sistema funcionar igualmente.

Se pueden modelizar sistemas no-lineales de complejidad arbitraria.

El sistema fuzzy puede ser construido en base a la experiencia de expertos. Esto es una

gran ventaja si lo comparamos con las redes neuronales donde la red entrenada es como

una caja negra, en problemas complejos.

Puede combinarse con técnicas de control convencionales.

4. PRODEDIMIENTO

Implementar un controlador fuzzy en Matlab, el mismo que dé a conocer el procedimiento del

control difuso, es decir la fusificación, mecanismo de inferencia, base de reglas y defusificación,

para controlar un péndulo invertido.

Figura 5: péndulo invertido

Page 6: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

6

Para poder realizar el controlador fuzzy, se debe modelar el péndulo invertido, el mismo que se

representa de la siguiente manera:

a. DESARROLLO

Para poder dar una solución a este problema, se debe introducir cada uno de los componentes

del controlador difuso para poder equilibrar el péndulo invertido sobre el carro.

r: posición angular deseada

u: fuerza de entrada

y: angulo con la vertical

El objetivo es equilibrar el péndulo en la posición vertical hacia arriba (r=0) , cuando se inicia

por primera vez con un ángulo distinto de cero fuera de la vertical.

Figura 6: péndulo invertido

Es necesario conocer acerca de las “Descripciones Linguisticas” proporcionadas a este

problema para poder describir las reglas que deberá seguir el controlador a fin de obtener una

Page 7: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

7

solución adecuada al sistema. Existen "variables lingüísticas" que describen cada una de las

variables en el tiempo las entradas y salidas del controlador para el péndulo invertido como:

Por lo tanto se puede en el péndulo el error”, “charges in error”y “forcé” se asume que toman

los siguientes valores:

“neglarge”

“negsmall”

“zero”

“possmall”

“poslarge”

Donde en la lógica de las reglas estos valores vendrían a ser:

b. REGLAS:

a) Si el error es “neglare” y cambio de error es “neglare”, entonces la fuerza es

“poslarge”

b) Si el error es “zero” y el cambio de error es “negsmall”, entonces la fuerza es

“negsmall”

c) Si el error es “poslarge” y el cambio de error es “negsmal, entonces la fuerza es

“”negsmall”

Figura 7: Reglas

Como se explico anteriormente cada regla es una regla lingüística, tiene variables lingüísticas y

valores lingüísticos, entonces teniendo estas reglas y al transformar el lenguaje se tiene las

siguientes reglas que han sido interpretadas de forma numérica:

Page 8: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

8

Fuerza u cambio de error e

-2 -1 0 1 2

Error e -2 2 2 2 1 0

-1 2 2 1 0 -1

0 2 1 0 -1 -2

1 1 0 -1 -2 -2

2 0 -1 -2 -2 -2

Una vez obtenidas las reglas se procede a ingresar cada valor a Matlab, para poder empezar

hacer el controlador fuzzy.

En el workspace de Matlab se debe escribir fuzzy y darle enter, se abrirá una nueva ventana

llamada FIS Editor, como se indica en la siguiente figura:

Figura 8: ventana de FIS Editor

Esta herramienta permitirá realizar el controlador fuzzy de una forma mucho mas rápida y clara,

aquí se debe escoger cada uno de los puntos a analizar posteriormente, definir las entradas, las

salidas y también definir y generar el logaritmo adecuado para las reglas del problema.

Este controlador debe tener dos entradas, una salida y el bloque de reglas.

La ventana de FIS edition muetsra las variables de entrada y salida

Como segundo paso, es necesario definir los conjuntos difusos de la svariables de entrada y

salida, para esto se debe tomar en cuenta que:

Page 9: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

9

Figura 9: variables de entradas y salida

En esta ventana se puede definir la forma de los conjuntos difusos los cuales pueden ser

triangulares, gaussiana, trapezoidal, entre otros.

Una vez generadas las señales de entrada, la de salida, se procede a ingresar la sreglas en el

bloque de “mamdani”

Figura 10: ingreso de reglas

Una vez generadas las señales de entrada, salida y reglas, se debe guardar el archivo con

extensión .fis, este luego se lo utilizará al momento de generar el controlador con el bloque

fuzzy del simulink. Para guardar el archivo se debe exportar el archivo tipo file.fis

Por otro lado, es necesario implementar el modelo matematico en el simulink, y también el

controlador difuso que se desea implementar se indica en la siguiente figura:

En el bloque de Pendulo Invertido se debe realizar el siguiente diagrama en Simulink:

Page 10: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

10

Figura 11: bloque de péndulo invertido

Controlador difuso para el péndulo invertido

Figura 12: controlador difuso

En el workspace debemos escribir el siguiente comando para que el controlador empiece a

funcionar:

Control=readfis(‘difuso’)

De esta manera el controlador se ejecutara dando los diferentes resultados.

c. ANÁLISIS DE RESULTADOS

Al momento de ejecutar el controlador, se debe ir al simunlink para verificar y observar las

graficas que se han obtenido

Básicamente el valor deseado al que se debe llegar es tomando como referencia las siguiente

graficas:

Scope

udy /dt

y

Pendulo Invertido

MATLAB

Function

MATLAB Fcn

-.1

Gain2

-1

Gain1

1

Gain

Page 11: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

11

.

Figura 13: Graficas del equilibrio del controlador difuso del péndulo invertido

Las graficas obtenidas por el controlador implementado son la siguientes:

Figura 14: Salida del péndulo invertido

Posición (y) = 0.1 radianes

Condición inicial para el estado del actuador (dy/dt) = 0

Tiempo se simulación = 3 seg.

Fuerza aplicada al péndulo invertido

0 0.5 1 1.5 2 2.5 30

0.02

0.04

0.06

0.08

0.1

0.12

Page 12: Fuzzy-pendulo-invertido1.pdf

Control Fuzzy para un péndulo invertido

Control Inteligente

12

Figura 15: fuerza aplicada al péndulo invertido

La figura indica que la fuerza aplicada y la posición angular, tienen cierta convergencia muy

aceptable con respecto a la grafica de muestra que se ha indicado anteriormente.

La estabilidad de la señal se acerca al valor de cero, , esto quiere decir que le péndulo esta en

equilibrio, tanto la fuerza como el ángulo están en equilibrio manteniendo al péndulo de forma

vertical con respecto a la normal del carro.

5. CONCLUSIONES

El controlador difuso con las entradas de error y cambio de error, en el sistema mejora

los tiempos de respuesta, al comprara este controlador con un controlador PD, se puede

concluir que este controlador Fuzzy es mucho más recomendable utilizar que un

controlador PD

Difusifisidad esta relacionada al grado con el cual los eventos ocurren sin importar la

probabilidad de su ocurrencia

En cada uno de los casos, se ha generado una matriz de reglas bien definidas y

analizadas, como es el caso del péndulo invertido se ha generado el conjunto de reglas

tomando en cuenta la forma de movimiento del péndulo invertido y según la fuerza

aplicada.

Se concluyo viendo cada uno de los resultados lo que expresa la lógica fuzzy, es decir

que un conjunto difuso puede o no tener parte del conjunto, pero tiene un grado de

certeza que indica que puede o no puede pertenecer al conjunto.

Analizar el grado de pertenencia, esta ligado a la premisa de las variables que se van a

analizar, debido a las premisas de las reglas, están compuestas de varios términos, el

mecanismo de fusificación evalúa el resultado de la combinación de términos

La lógica difusa no esta completamente definida, ya que la curva difusa se caracteriza

por ser no precisa pero permite un enlace entre el lenguaje numérico y lingüístico. Es

decir se permite dar valores lingüísticos asociados a las variables físicas, en este caso

velocidad, distancia.

0 0.5 1 1.5 2 2.5 3-5

0

5

10

15

20