Вы находитесь на странице: 1из 10

ESCUELA POLITNICA DEL EJRCITO

CONTROL FUZZY
Diseo Controlador

NOMBRES:

MIGUEL BENALCZAR XAVIER FALCON MAURICIO VINUEZA

Tema: Control Difuso Resultados de Aprendizaje Se puede comprobar que el uso del comando Fuzzy de manera directa nos facilita la implementacin del controlador difuso, ya que permite la edicin directa de entrada, salidas y reglas. Adems en cualquiera de los 2 casos de diseo presentado del controlador, la salida de la planta resulto obtener un resultado ptimo. Se pudo apreciar la sencillez en la implementacin del sistema, ya que al describir el comportamiento del controlador mediante reglas, no es necesario realizar una modelizacin exacta. Esta caracterstica lo hace particularmente apropiado para sistemas no lineales, cuya modelizacin por los mtodos tradicionales suele ser compleja y demorosa. Descripcin del Problema Desarrollar una funcin en MATLAB que permita realizar el control difuso PD, adems Realizar la Grfica de la superficie de control. Teniendo los siguientes conjuntos difusos, determinados para el sistema del pndulo invertido.

Funciones de pertenencia del pndulo invertido

Marco Terico Control Fuzzy La palabra "fuzzy" se utiliza para describir los trminos que o bien no se conocen bien o no lo suficientemente claras. Para poder realizar un buen anlisis de lo que es el control fuzzy se podr decir que el control fuzzy esta compuesta por fusificacin, mecanismos de inferencias y defusificacin. La Fusificacin: Es la que nos permite Calcular el grado de pertenencia de cada conjunto difuso (Valor lingstico). Dentro del caso del pndulo invertido tendremos por ejemplo: eGN, ePN. Inferencia Difusa: Es el Conjunto difuso implicado de cada regla ejemplo Error GN PN Z PP GP GN GP GP GP PP Z PN GP GP PP Z PN Z GP PP Z PN GN PP PP Z PN GN GN GP Z PN GN GN GN

If error es Z AND cambio de error es PP then u es PN Tendremos que: Error: Z Cambio Error: PP =0,5 =0,5 =0,5 Defusificacin: Es el cambio de cada elemento del conjunto difuso a un solo nmero o valor. La defusificacin viene dada por la siguiente frmula

Procedimiento A continuacin se podr verificar los cdigos de los programas que nos permitirn realizar el diseo del controlador PD para el pndulo invertido
PROGRAMA PARA OBTENER EL CONTROLADOR function ucrisp=fuzzyc(e,ce) %Declaracin de la funcin %Calculo de controlador difuso para el pndulo invertido %Ecuaciones que siguen la forma caractersticas del error y de la variacin %del error %error ez=0*(e<=-pi/4)+(4/pi*e+1)*(e>-pi/4&e<=0)+(4/pi*e+1)*(e>0&e<=pi/4)+0*(e>pi/4) egn=1*(e<=-pi/2)+(-4/pi*e-1)*(e>-pi/2&e<=-pi/4)+0*(e>-pi/4) epn=0*(e<=-pi/2)+(4/pi*e+2)*(e>-pi/2&e<=-pi/4)+(-4/pi*e)*(e>pi/4&e<=0)+0*(e>0) epp=0*(e<=0)+(4/pi*e)*(e>0&e<=pi/4)+(4/pi*e+2)*(e>pi/4&e<=pi/2)+0*(e>pi/2) egp=0*(e<=pi/4)+(4/pi*e-1)*(e>pi/4&e<=pi/2)+1*(e>pi/2) %variacion de error cez=0*(ce<=-pi/8)+(8/pi*ce+1)*(ce>-pi/8&ce<=0)+(8/pi*ce+1)*(ce>0&ce<=pi/8)+0*(ce>pi/8) cegn=1*(ce<=-pi/4)+(-8/pi*ce-1)*(ce>-pi/4&ce<=-pi/8)+0*(ce>-pi/8) cepn=0*(ce<=-pi/4)+(8/pi*ce+2)*(ce>-pi/4&ce<=-pi/8)+(-8/pi*ce)*(ce>pi/8&ce<=0)+0*(ce>0) cepp=0*(ce<=0)+(8/pi*ce)*(ce>0&ce<=pi/8)+(8/pi*ce+2)*(ce>pi/8&ce<=pi/4)+0*(ce>pi/4) cegp=0*(ce<=pi/8)+(8/pi*ce-1)*(ce>pi/8&ce<=pi/4)+1*(ce>pi/4) %Creacin de vectores de error y de la variacin del error ev=[egn epn ez epp egp] cev=[cegn cepn cez cepp cegp] %matriz de certeza de la base de reglas = h h=ev'*cev %reas de cada conjunto difuso es necesario obtener los centros ya que estos nos permiten realizar la defuzificacin areas= 20*(h-(h.*h)/2) centros=[20 20 20 10 0; 20 20 10 0 -10; 20 10 0 -10 -20; 10 0 -10 -20 -20; 0 -10 -20 -20 -20]; ucnum=sum(sum(areas.*centros)) ucden=sum(sum(areas)) uc=ucnum/ucden ucrisp=uc

end

Una vez creado el controlador, vamos a observar el diagrama de bloques.

1. Implementacin control fuzzy

En el bloque de MATLAB Function se encuentra el controlador y en el bloque de Mod_Pendulo podemos observar que a partir de la siguiente ecuacin 1 es necesaria armar el diagrama de bloques e ingresarla dentro de un Subsystem

Por lo tanto tendremos que el diagrama de bloques nos queda de la siguiente manera

2. Implementacin en MATLAB de la ecuacin

Una vez realizado lo antes dicho, mandamos a correr el diagrama de bloque completo y podremos observar la respuesta del controlador. Una de las herramientas potentes que posee el MATLAB es que podemos resolver cualquier problema de Control Fuzzy ingresando en la pantalla inicial el comando Fuzzy y tendremos enseguida la siguiente ventana que se nos va abrir

3. Uso del comando Fuzzy de MATLAB

Para poder ingresar los valores de error y la variacin de error es necesario 2 entradas por lo tanto procedemos a agregar

4. Ingreso de varias entradas

En consecuencia procedemos a editar las entradas, los valores de las salidas y asi mismo las reglas

5. Ingreso de parmetros de entrada, salida y reglas dentro del bloque fuzzy

Una vez de que ya se hayan ingresado todas las reglas procedemos a exportar el archivo, lo guardamos con cualquier nombre, y para poderlo usar es necesario ingresar lo siguiente en consola

6. Carga de archivo .fis al bloque de fuzzy control

Una vez que observamos que se cargo el archivo .fis realizamos el siguiente diagrama de bloques

7. Diagrama bloques usando directamente el fuzzy control

Dentro de lo planteado tambin nos pide a lo que se refiere la curva de control a continuacin podremos visualizar el cdigo del programa que permitir obtener dicha grfica POGRAMA PARA OBTENER SUPERFICIE DE CONTROL clear all puntos=32 %Puntos de la malla [e,ce]=meshgrid(-pi/2:pi/puntos:pi/2,-pi/4:pi/2/puntos:pi/4) [a,b]=size(e) for i=1:1:a for j=1:1:b f(i,j)=Cont_pendulo(e(i,j),ce(i,j)); end end mesh(e,ce,f) Anlisis de Resultados Para los valores del error y de la variacin del error que se observa se obtendrn las grficas de las salidas del sistema

Tendremos las siguientes grficas al ejecutar el primer diagrama de bloques Figura 1

8. Primera grfica variacin e la posicin y la segunda grfica representa la posicin del pndulo

Si ejecutamos el controlador con el comando fuzzy de MATLAB y se corre el diagrama de bloques del grafico 7 tendremos que :

9. Primera grfica variacin e la posicin y la segunda grfica representa la posicin del pndulo

Se puede observar que en ambos casos llega a la posicin deseada, demostrando que el controlador difuso cumple con su funcin de manera exitosa para el pndulo invertido. Para poder visualizar la superficie de control mandamos a correr el programa anterior definido y podremos observar

10. Superficie de Control

Bibliografa http://noticias.espe.edu.ec/controlinteligente/control-difuso/

Вам также может понравиться