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
Control Fuzzy para un péndulo invertido Control Inteligente 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.
2
Control Fuzzy para un péndulo invertido Control Inteligente
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.
3
Control Fuzzy para un péndulo invertido Control Inteligente 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. 4
Control Fuzzy para un péndulo invertido Control Inteligente
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
5
Control Fuzzy para un péndulo invertido Control Inteligente
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
6
Control Fuzzy para un péndulo invertido Control Inteligente 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:
7
Control Fuzzy para un péndulo invertido Control Inteligente Fuerza u Error e
-2 -1 0 1 2
cambio de error e -2 -1 0 1 2 2 2 2 1 0 2 2 1 0 -1 2 1 0 -1 -2 1 0 -1 -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:
8
Control Fuzzy para un péndulo invertido Control Inteligente
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: 9
Control Fuzzy para un péndulo invertido Control Inteligente
Figura 11: bloque de péndulo invertido
Controlador difuso para el péndulo invertido
Scope dy /dt
MATLAB Function
1
u y
MATLAB Fcn
Gain
Pendulo Invertido
-1 Gain1 -.1 Gain2
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: 10
Control Fuzzy para un péndulo invertido Control Inteligente .
Figura 13: Graficas del equilibrio del controlador difuso del péndulo invertido Las graficas obtenidas por el controlador implementado son la siguientes: 0.12
0.1
0.08
0.06
0.04
0.02
0
0
0.5
1
1.5
2
2.5
3
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
11
Control Fuzzy para un péndulo invertido Control Inteligente 20
15
10
5
0
-5
0
0.5
1
1.5
2
2.5
3
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.
12