Control-difuso SIMULINK BUENO

Embed Size (px)

Citation preview

  • 7/23/2019 Control-difuso SIMULINK BUENO

    1/12

    ESCUELA POLITCNICA DEL EJRCITO

    CONTROL INTELIGENTE

    TEMA: Desarrollo de una funcin de un controladordifuso en MATLAB y la aplicacin del bloque FUZZY

    para el control de movimiento del pndulo invertido

    INTEGRANTES:

    ANDRS CHANGO

    DANIEL GONZLEZJOS GUARNIZO

    2012-07-10

  • 7/23/2019 Control-difuso SIMULINK BUENO

    2/12

    1. TITULO: Desarrollo de una funcin de un controlador difuso en MATLAB y la aplicacindel bloque FUZZY para el control de movimiento del pndulo invertido

    2. OBJETIVOS2.1. GENERAL

    - Disear el control difuso a travs del desarrollo de una funcin en MATLABy el uso del bloque FUZZY.

    2.2. ESPECFICOS- Implementar el algoritmo y probar con la herramienta SIMULINK el

    desempeo del mismo.

    3. RESULTADOS DE APRENDIZAJEA travs del siguiente laboratorio de control difuso se aprendi que puede ser unabuena herramienta para el diseo de controladores cuando:

    - La identificacin de la planta no sea posible, sin tomar en cuenta mtodos decontrol adaptativo.

    - El diseo de controladores por mtodos clsicos es difcil o imposible.4. DESCRIPCIN DEL PROBLEMA.

    Se quiere controlar lo posicin del pndulo invertido a travs de control difuso. Elcontrolador se realizar a travs de un algoritmo y el uso del bloque FUZZY.

    5. MARCO TERICO.Se plantean 4 bloques para el desarrollo del control difuso.

    FUSIFICACINMECANISMOS DE

    INFERENCIADESFUSIFICACIN

    BASE DE REGLAS

    Entradas Salidas

    Descripcioneslingusticas

    Figura 1: Esquema bsico para el desarrollo del control difuso.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    3/12

    Fusificacin: Calcular el grado de pertenencia de cada conjunto difuso (dar un valorlingstico).Inferencia difusa: Conjunto difuso implicado en cada una de las reglas, es decir hacerel clculo del then. En base a cada grado de certeza de cada premisa, se calcula el

    grado de certeza de la consecuencia.

    Ejemplo:Iferror es cero and cambio de error es PP then u esPN.

    GN PN Z PP GP

    GN PN Z PP GP

    GN PN Z PP GP

    e

    de/dt

    u

    /4 /2-/4-/2

    /8 /4-/8-/4

    10 20-10-20-30 30

    Figura 2: Conjuntos difusos para e, de/dt y la seal de control u.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    4/12

    de/dtGN PN Z PP GP

    e

    GN GP GP GP PP Z

    PN GP GP PP Z PN

    Z GP PP Z PN GN

    PP PP Z PN GN GNGP Z PN GN GN GN

    Tabla 1: Matriz de certeza: e vs de/dt 25 premisas para la seal de control

    PN

    u10 20-10-20 30

    0.5

    Figura 3: Conjunto difuso implicado.

    Con esto hallamos el conjunto difuso implicado dentro del grfico del control difuso para laseal u (rea bajo el valor de Uregla).

    Desfusificacin: Hallar el rea que est enmarcada por el conjunto implicado. En estecaso las reas formadas son trapecios issceles, lo cuales poseen los datos de base yaltura. Para hallar el rea aplicamos la siguiente frmula.

    Donde:bi son los centros de los trapecios.

    u(i) es el rea de los trapecios.

    Donde:w es la base mayor del trapecio.h es la altura del trapecio.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    5/12

    6. PROCEDIMIENTO.6.1.Desarrollo del algoritmo

    Se escribirn las ecuaciones que siguen la forma caracterstica de las grficas de error y

    variacin de error

    %errorez=0*(e-pi/4&e0&epi/4)egn=1*(e-pi/2&e-pi/4)epn=0*(e-pi/2&e-pi/4&e0)epp=0*(e0&epi/4&epi/2)egp=0*(epi/4&epi/2)

    %variacion de errorcez=0*(ce-pi/8&ce0&cepi/8)cegn=1*(ce-pi/4&ce-pi/8)cepn=0*(ce-pi/4&ce-pi/8&ce0)cepp=0*(ce0&cepi/8&cepi/4)cegp=0*(cepi/8&cepi/4)

    Se crearn los vectores de error y variacin de error

    ev=[egn epn ez epp egp]cev=[cegn cepn cez cepp cegp]

    Con los vectores creados, se formar la matriz de certeza

    %matriz de certeza de la base de reglas = hh=ev'*cev

    Finalmente se realizar el paso de desfusificacin, a travs del clculo de las reas.

    %reas de cada conjunto difusoareas= 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

  • 7/23/2019 Control-difuso SIMULINK BUENO

    6/12

    En el diagrama realizado en SIMULINK se observa:

    - El bloque de la funcin creada previamente.- El bloque que representa el pndulo simple.

    Figura 4: Diagrama total de SIMULINK

    Figura 5: Diagrama del pndulo simple

    6.2.FUZZY blockIngresaremos en comando fuzzy en el comand windows de MATLAB

  • 7/23/2019 Control-difuso SIMULINK BUENO

    7/12

    Figura 6: Bloque FUZZY de MATLAB.

    En esta pantalla se editar el nmero de inputs e ingresaremos la matriz de certeza.

    Figura 7: Bloque FUZZY para pndulo invertido con inputs editados.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    8/12

    Figura 8: Edicin de entradas y salidas del bloque FUZZY.

    Figura 9: Ingreso de las reglas en el bloque FUZZY.

    Se exportar el contenido del bloque fuzzy a un archivo *.fis para poder cargarlo en SIMULINKa travs del comando readfis.

    En la herramienta SIMULINK cambiaremos el bloque de MATLAB function, por el bloque FuzzyLogic controller. Editaremos el bloque y pondremos el nombre asignado en la funcin readfis.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    9/12

    Figura 10: Diagrama de SIMULINK para el bloque FUZZY

    7. ANALIS DE RESULTADOSAl ejecutar el archivo de SIMULINK obtendremos los siguientes grficos.

    Para el algoritmo

    Figura 11: Salida de SIMULINK para algoritmo de MATLAB.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    10/12

    Donde la primera grfica es la variacin de la posicin y la segunda grfica es la posicin delpndulo.

    Para el bloque FUZZY

    Figura 12: Salida de SIMULINK para el bloque FUZZY.

    Donde la primera grfica es la variacin de la posicin y la segunda grfica es la posicin delpndulo.

    En ambos casos se observa que se llega a la posicin deseada, demostrando que elcontrolador difuso cumple con su funcin de manera exitosa para el pndulo invertido.

    8. CONCLUSIONES- Se pudo comprobar que el algoritmo y el bloque FUZZY de MATLAB para el controlador

    difuso result ser ptimo para esta planta y su uso es justificable, ya que sta presenta un

    modelo complicado para desarrollar un controlador de manera clsica.

    - La herramienta FUZZY de MATLAB ahorra en un gran porcentaje el tiempo utilizado para elalgoritmo escrito. Esta herramienta permite la simplificacin en el ingreso de las reglasque rigen la tabla de certeza del control difuso.

  • 7/23/2019 Control-difuso SIMULINK BUENO

    11/12

    9. BIBLIOGRFA.

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

    http://noticias.espe.edu.ec/controlinteligente/control-difuso/http://noticias.espe.edu.ec/controlinteligente/control-difuso/http://noticias.espe.edu.ec/controlinteligente/control-difuso/
  • 7/23/2019 Control-difuso SIMULINK BUENO

    12/12

    10. AnexosAlgoritmo fuzzy

    function ucrisp=fuzzyc(e,ce)

    %calculo de controlador difuso para el pendulo invertido%errorez=0*(e-pi/4&e0&epi/4)egn=1*(e-pi/2&e-pi/4)epn=0*(e-pi/2&e-pi/4&e0)epp=0*(e0&epi/4&epi/2)egp=0*(epi/4&epi/2)

    %variacion de errorcez=0*(ce-pi/8&ce0&cepi/8)cegn=1*(ce-pi/4&ce-pi/8)cepn=0*(ce-pi/4&ce-pi/8&ce0)cepp=0*(ce0&cepi/8&cepi/4)cegp=0*(cepi/8&cepi/4)

    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

    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/ucdenucrisp=ucend

    function u_crisp=fuzz_control3(ece)e=ece(1)ce=ece(2)u_crisp=fuzzyc(e,ce)