sistemas de control basados en lógica difusa

43
Universidad Nacional Mayor de San Marcos FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELÉCTRICA SISTEMAS DE CONTROL BASADOS EN LÓGICA DIFUSA Curso : Ingeniería de Control II Alumno : Bastidas Cerazo, Luis Angel Código : 10190258 Profesor : Ing. Rafael Cabezas Soldevilla Horario : Lunes, Martes y Jueves 8 – 10 p.m. 2014

Upload: luisb1393

Post on 03-Sep-2015

243 views

Category:

Documents


7 download

DESCRIPTION

Informe sobre sistemas de Control basados en Logica Difusa.

TRANSCRIPT

  • Universidad Nacional Mayor de San Marcos

    FACULTAD DE INGENIERA

    ELECTRNICA Y ELCTRICA

    SISTEMAS DE CONTROL BASADOS

    EN LGICA DIFUSA

    Curso : Ingeniera de Control II

    Alumno : Bastidas Cerazo, Luis Angel

    Cdigo : 10190258

    Profesor : Ing. Rafael Cabezas Soldevilla

    Horario : Lunes, Martes y Jueves 8 10 p.m.

    2014

  • Sistemas de Control basados en Lgica Difusa 2

    Contenido

    1. Introduccin ....................................................................................................................... 3

    2. Lgica Difusa ..................................................................................................................... 4

    2.1. Introduccin a la lgica difusa ............................................................................. 4

    2.2. Principios de lgica difusa .................................................................................... 5

    2.2.1. Descripcin de un sistema borroso ............................................................ 5

    2.2.2. Operaciones entre conjuntos difusos ........................................................ 9

    2.3. Inferencia borrosa .................................................................................................. 12

    3. Controladores difusos o FLC (Fuzzy Logic Controllers) ..................................... 13

    3.1. Fuzzificacin ............................................................................................................ 14

    3.2. Fuzzy Associative Memory .................................................................................. 16

    3.3. Unidad de inferencia borrosa .............................................................................. 17

    3.4. Defuzzificacin ........................................................................................................ 20

    3.4.1. Defuzzificador por mximo .......................................................................... 20

    3.4.2. Defuzzificador por media de centros ........................................................ 21

    4. Ejemplo de aplicacin: Control de un motor de DC.............................................. 21

    4.1. Modelamiento del motor solo para simulacin .......................................... 21

    4.2. Procedimiento de Diseo del FLC con Fuzzy Logic Toolbox .................... 23

    4.2.1. Configuracin de las entradas y salidas .................................................. 23

    4.2.2. Definicin del tipo de inferencia borrosa y del defuzzificador. ......... 26

    4.2.3. Determinacin de las reglas y formacin de la FAM ............................ 28

    4.2.4. Creacin del FLC ............................................................................................ 29

    4.3. Simulacin ............................................................................................................... 30

    4.3.1. Prueba escaln ............................................................................................... 32

    4.3.2. Prueba tren de pulsos ................................................................................... 33

    4.3.3. Prueba con seal especial ........................................................................... 34

    5. Conclusiones ................................................................................................................... 35

    6. Referencias ...................................................................................................................... 36

    7. Anexos .............................................................................................................................. 37

  • Sistemas de Control basados en Lgica Difusa 3

    SISTEMAS DE CONTROL BASADOS EN LGICA DIFUSA

    1. Introduccin

    En el campo, siempre surge la necesidad de controlar el comportamiento de un sistema. Por

    ejemplo, mantener la velocidad de giro de un motor constante a pesar de la carga, lograr que la

    temperatura de un horno se incremente uniformemente sin importar los cambios de

    temperatura externos, etc. Estos sistemas se denominan, en general, plantas, y al

    procedimiento descrito, control.

    De este modo, se plantearon tcnicas para llevar a cabo este control de la mejor posible

    manera.

    En general, los sistemas de control ms difundidos necesitan tres cosas: una seal de

    referencia, que indique qu salida se desea en la planta; una seal de salida realimentada, que

    se comparar con la seal de referencia para as obtener una desviacin o error; y un algoritmo

    de control, que se encargar de generar la seal de control de salida a partir de dicha

    desviacin. De estos algoritmos de control, el ms famoso es el PID, del cual se han planteado

    muchas variantes.

    Sin embargo, el PID, junto a otros algoritmos, depende de tener un modelo matemtico preciso

    de la planta para actuar eficientemente. Esto no es problema si la planta no es muy compleja.

    Pero en la mayora de los casos, las plantas son sistemas no lineales, cuyo comportamiento

    es, en cierta medida, poco entendido y, por ende, imposibles de modelarse matemticamente;

    pero cuyas salidas s pueden almacenarse en un registro.

    En estos casos, se requieren algoritmos que trabajen con estos registros histricos de la

    planta, y no con el modelo del sistema. Entre los sistemas de control que trabajan de esa

    manera, se encuentran los sistemas de control neuronal y fuzzy (difuso), y su combinacin o

    neuro-fuzzy. Este trabajo de investigacin se centrar en el estudio de los controladores

    difusos o FLC, presentando un ejemplo aplicativo sencillo utilizando la Fuzzy Logic Toolbox de

    Matlab en Simulink.

    Figura 1.1. Introduccin al control con lgica difusa.

  • Sistemas de Control basados en Lgica Difusa 4

    2. Lgica Difusa

    2.1. Introduccin a la lgica difusa

    La teora de los conjuntos difusos fue introducida por el matemtico ingeniero Lofti A. Zadeh en

    1965. Aunque inicialmente no tuvo la apreciacin que una teora de tal alcance requera, la

    lgica difusa adquiri relevancia tiempo despus, cuando un grupo de ingenieros mostraron la

    gran variedad de aplicaciones y el potencial que dicha teora siempre tuvo.

    La lgica difusa define un cambio en el modo de analizar un problema. Tomando como

    referencia la lgica clsica, si deseamos clasificar a las personas por su talla, definiramos una

    talla de referencia para a partir de la cual decidir si una persona es alta o baja. Digamos que

    dicha referencia es de 1.75m. Entonces, aplicando lgica clsica, una persona de 1.76m sera

    alta, y una persona de 1.74m sera baja. Sin embargo, dicha afirmacin, aunque lgicamente

    vlida, carece de sentido para quien la propone, pues el margen es de tan solo 2 cm., y por

    ello, uno dira ms bien que ambos no son ni altos, ni bajos, sino, digamos, de talla normal.

    Ejemplos de este tipo hay en gran cantidad en la vida real, y el hecho de que la lgica clsica,

    aunque vlida, presente afirmaciones que no van de acuerdo al sentido comn, plantea

    grandes complicaciones al momento de querer modelar un sistema del cual no se tenga

    referencias fijas, sino ms bien apreciaciones poco claras ms acordes al pensar humano.

    Grfico 2.1. Distribucin de tallas segn la lgica clsica.

    La lgica difusa rompe con el esquema de la lgica clsica al introducir el concepto de funcin

    de pertenencia, que mide el nivel de pertenencia de un elemento hacia un conjunto dado

    (denominado conjunto difuso). En el caso anterior, por ejemplo, una persona con talla 1.76m

    tiene un nivel de 0.6 de pertenencia al conjunto de las personas altas, y un nivel 0.4 de

    pertenencia al conjunto de las personas bajas. Del mismo modo, una persona de 1.74m

    presentara un nivel de pertenencia de 0.6 al conjunto de las personas bajas, y un nivel de 0.4

    al conjunto de las personas altas. De esto modo, la lgica difusa expresa mejor el modo de

    razonar humano, al prescindir de referencias fijas y, por lo tanto, permite modelar sistemas

    inexactos de una mejor manera.

  • Sistemas de Control basados en Lgica Difusa 5

    Grfico 2.2. Distribucin de tallas segn la lgica difusa.

    2.2. Principios de lgica difusa

    Del mismo modo que la lgica clsica tiene sus postulados y principios, la lgica difusa

    presenta un desarrollo formal. Inicialmente se ver la descripcin de un sistema borroso, y

    luego las operaciones lgicas en dicho sistema.

    2.2.1. Descripcin de un sistema borroso

    Universo de discurso (U): Es el conjunto referencial, tpico de cualquier conjunto, que

    contiene los elementos que forman (y que no forman) parte del sistema. Por ejemplo, en el

    ejemplo de las tallas, podramos decir que nuestro Universo de discurso es el conjunto continuo

    de edades que va desde 0.5m hasta los 3.0m. Otro universo, por ejemplo, para la temperatura,

    el universo sera el conjunto de los nmeros reales.

    Funcin de pertenencia F(x)/x U: Determina en qu grado, un elemento x que pertenece al

    universo U, pertenece a un conjunto borroso F. Su valor va desde el 0, indicando ninguna

    pertenencia, hasta el 1, indicando una absoluta pertenencia al conjunto.

    Atendiendo al comportamiento de dicha funcin, se pueden distinguir tipos de funciones de

    pertenencia:

    - Tipo trapezoidal: Es el modelo ms usado en microprocesadores. Se define planteando

    4 puntos [a, b, c, d] a lo largo del Universo, y aplicando el siguiente modelo:

    ( )

    {

    100 150 200 250-0.5

    0

    0.5

    1

    1.5Clasificacin sen la lgica difusa

    Talla

    Pert

    enencia

    Personas Bajas

    Personas Altas

  • Sistemas de Control basados en Lgica Difusa 6

    Grfico 2.3. Funcin de pertenencia trapezoidal.

    - Tipo triangular: Usado para modelar sistemas con valores pico solo dentro de un

    intervalo estrecho, y nulos fuera de este intervalo. Se define planteando tres puntos

    [a,b,c] a lo largo de U y aplicando el siguiente modelo:

    ( )

    {

    Grfico 2.4. Funcin de pertenencia triangular.

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Funcin de Pertenencia Trapezoidal

    x

    u(x

    )

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Funcin de Pertenencia Triangular

    x

    u(x

    )

  • Sistemas de Control basados en Lgica Difusa 7

    - Tipo singleton: Se suele usar para definir los conjuntos borrosos de las particiones de

    las variables de salida.

    Grfico 2.5. Funcin de pertenencia singleton.

    - Tipo S: Para modelar sistemas con propiedades grandes, mucho, positivo. Para

    obtener esta funcin se modela del modo siguiente:

    ( )

    {

    .

    /

    (

    )

    Grfico 2.6. Funcin de pertenencia singleton.

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Funcin de Pertenencia Singleton

    x

    u(x

    )

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Funcin de Pertenencia S

    x

    u(x

    )

  • Sistemas de Control basados en Lgica Difusa 8

    Planteado adecuadamente la funcin de pertenencia, se puede llegar al modelo siguiente.

    ( ) {

    Grfico 2.7. Funcin de pertenencia similar al de la lgica clsica.

    De este modo, se podra decir que la lgica clsica est incluida dentro de la lgica difusa, para

    el caso particular de funcin de pertenencia planteado.

    Conjunto borroso: Conjunto de todos x/x U y que satisfacen la funcin de pertenencia para

    ese conjunto. Por ejemplo, un conjunto borroso puede definirse como positivo_pequeo con

    una funcin de pertenencia trapezoidal, para una particin error. Se tendra tambin otro

    conjunto borroso positivo_grande con otra funcin de pertenencia, digamos en este caso, tipo S

    o sigmoidea.

    Grfico 2.8. Conjuntos borrosos

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Modelo Lgica Clsica

    x

    u(x

    )

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Conjuntos borrosos

    x

    u(x

    )

    Positivo grande

    Positivo Pequeo

  • Sistemas de Control basados en Lgica Difusa 9

    Se aprecia en la imagen que existe un solapamiento entre los conjuntos difusos. Esto es

    normal, y en algunos casos, aconsejable, basados en la naturaleza inexacta que se busca

    modelar, en el que un elemento puede pertenecer a dos conjuntos distintos, pero con distinta

    intensidad, segn la funcin de pertenencia de duchos conjuntos.

    Particiones borrosas: Son subconjuntos U que contienen a su vez diversos conjuntos

    borrosos. Por ejemplo, del grfico anterior, los conjuntos difusos descritos podran pertenecer a

    la particin borrosa error. Esto puede representarse de manera formal del modo siguiente:

    * +

    En un universo U se pueden definir cuantas particiones se deseen, sin embargo, a mayor

    cantidad de particiones, el anlisis se hace muy complejo, por lo que para la mayora de los

    casos solo se aconseja usar desde dos hasta tres particiones. Adems, si una particin cubre a

    todos los elementos del universo, se denominar particin completa.

    Variables Lingsticas y etiquetas: Son las representaciones lingsticas de los elementos de

    un sistema difuso. Generalmente se suele hacer una asociacin entre las variables lingsticas

    y las particiones borrosas, y las etiquetas con sus correspondientes conjuntos difusos. Por

    ejemplo, una variable lingstica puede ser Temperatura, cuyos valores, dados por etiquetas

    representando conjuntos difusos podran ser: muy_fro, fro, tibio, caliente, muy_caliente.

    2.2.2. Operaciones entre conjuntos difusos

    Del mismo modo en que se tienen operaciones entre sistemas de lgica convencional, como la

    operacin AND, OR, etc., en la lgica difusa se tienen tambin operaciones, que se pasarn a

    explicar en forma breve a continuacin.

    Dados dos conjuntos difusos A y B, definidos ambos dentro de un universo U, con la variable

    lingstica x:

    - Complemento: El complemento de un conjunto difuso A, es otro conjunto difuso tal

    que su funcin de pertenencia:

    ( ) ( )

    Figura 2.9. Complemento.

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Complemento

    Conjunto A

    Conjunto Complemento de A

  • Sistemas de Control basados en Lgica Difusa 10

    - Unin: La unin es otro conjunto difuso tal que su funcin de pertenencia:

    ( ) , ( ) ( )-

    Figura 2.10. Unin.

    - Interseccin: La unin es otro conjunto difuso tal que su funcin de pertenencia:

    ( ) , ( ) ( )-

    Grfico 2.11. Interseccin.

    - Norma: La norma de un conjunto A, es otro conjunto difuso tal que su funcin de

    pertenencia:

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Conjuntos Base

    Conjunto A

    Conjunto B

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Union

    Conjunto Union A y B

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Conjuntos Base

    Conjunto A

    Conjunto B

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5interseccin

    Conjunto Interseccion A y B

  • Sistemas de Control basados en Lgica Difusa 11

    ( )( ) ( )

    , -

    Se usa cuando la funcin de pertenencia no alcanza la unidad para ningn valor de x. En tal

    caso, esta operacin hace que el mayor nivel de pertenencia se iguale en 1.

    Grfico 2.12. Normalizacin.

    - Concentracin: La concentracin de un conjunto A es otro conjunto tal que su funcin

    de pertenencia:

    ( )( ) , ( )-

    Analizando esta expresin, notamos que al elevar al cuadrado los valores de la funcin de

    pertenencia, estamos haciendo al intervalo mucho ms estrecho. De all que a esta operacin

    se denomine concentracin.

    Grfico 2.13. Concentracin

    0 50 100-0.5

    0

    0.5

    1

    1.5Conjunto Base

    0 50 100-0.5

    0

    0.5

    1

    1.5Conjunto Normalizado

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Concentracin

    Conjunto A

    Conjunto Concentrado A

  • Sistemas de Control basados en Lgica Difusa 12

    Esta operacin puede ser muy til si se quiere definir un conjunto ms estricto a partir de otro

    ya definido. Por ejemplo, si se tiene el conjunto difuso A clido, para definir muy_clido se

    empleara el concentrado de A.

    - Dilatacin: La concentracin de un conjunto A es otro conjunto tal que su funcin de

    pertenencia:

    ( )( ) , ( )-

    Grfico 2.14. Dilatacin.

    Analizando esta expresin, notamos que el efecto de esta operacin es ampliar el intervalo

    efectivo de un conjunto difuso. De all el trmino dilatacin.

    Esta operacin permite obtener conjuntos de definicin ms extensa. Por ejemplo, si se tiene

    un conjunto difuso hmedo, el conjunto muy_humedo podra obtenerse mediante dilatacin del

    conjunto anterior o base.

    - Igualdad: Dos conjuntos difusos A y B sern iguales si y solo si ambos tienen la misma

    funcin de pertenencia.

    2.3. Inferencia borrosa

    Hasta el momento, se ha definido lo qu es un conjunto difuso y qu operaciones se pueden

    definir con ellos. Pero para que el trmino lgica borrosa tenga sentido completo, es necesario

    que sus expresiones puedan permitir el planteo de sentencias cuya validez se sustente en

    dicha lgica.

    Estas sentencias adquieren el formato de colecciones de reglas del tipo IF-THEN, del siguiente

    modo:

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Dilatacin

    Conjunto A

    Conjunto Dilatado A

  • Sistemas de Control basados en Lgica Difusa 13

    Donde:

    x1, x2, x3xn son variables lingsticas de entrada.

    F1, F2, F3 Fn son los conjuntos difusos asociados a cada variable lingstica de entrada

    (etiquetas)

    y es la variable lingstica de salida.

    G es el conjunto difuso de salida para la variable de salida, de acuerdo a las condiciones IF

    planteadas.

    El formato presentado corresponde al modelo Mamdani. Existe otro formato, denominado

    Sugeno. Este formato plantea lo siguiente:

    ( )

    El superndice j indica el nmero de regla. Ello, debido que para disear un controlador difuso,

    es necesario contar con una coleccin de reglas que permitan generar una salida para todos

    los casos que se puedan presentar.

    3. Controladores difusos o FLC (Fuzzy Logic Controllers)

    Una vez estudiadas las bases que rigen la lgica difusa, es necesario conocer la manera en

    qu es usada para resolver problemas de control.

    El primer elemento de todo controlador difuso es el fuzzificador (fuzzifier). Su funcin ser

    traducir las seales de entrada en valores difusos caracterizados por un peso determinado.

    El siguiente bloque es la FAM o Fuzzy Associate Memory, que es una matriz que contiene

    todas las reglas de inferencia planteadas para el problema.

    El siguiente bloque es la unidad de inferencia lgica. En esta unidad se encargar de obtener

    una salida asociada a un conjunto borroso de salida, en funcin de la seal de entrada

    fuzzificada y la FAM.

    El ltimo bloque es el defuzzificador, cuya funcin ser convertir la salida del FLC en una seal

    aplicable al sistema a controlar. En los siguientes apartados se vern todos estos puntos con

    mayor detalle.

  • Sistemas de Control basados en Lgica Difusa 14

    Figura 3.1. Conformacin bsica de un FLC.

    3.1. Fuzzificacin

    La realimentacin es un elemento clave en todos los sistemas de control. Obtener muestras de

    la salida del sistema nos permite tener la informacin necesaria para decidir qu accin de

    control tomar.

    Sin embargo, las salidas muestreadas no pueden aplicarse directamente al FLC, puesta esta

    manejar solo sentencias difusas. El fuzzificador es una unidad que se encarga de procesar las

    medidas muestreadas, y asignarle un peso de acuerdo a la funcin de pertenencia de los

    subconjuntos difusos definidos para esa particin.

    El proceso matemtico es sencillo. La seal muestreada deber encontrarse dentro del

    universo de discurso, y se le asignar pesos de pertenencia de acuerdo a los subconjuntos

    difusos y sus funciones de pertenencia.

    Por ejemplo, supongamos que una particin tengamos 3 subconjuntos difusos, todos con

    funciones de pertenencia triangular, como se aprecia en la figura 3.2. A primera vista se puede

    concluir que el universo de discurso es el conjunto de los enteros entre 0 y 100. Adems, se

    puede concluir tambin que la particin es completa, pues las funcionas de pertenencia

    abarcan todo el universo.

    FUZZIFIERUNIDAD DE INFERENCIA

    DIFUSA

    FAM

    DEFUZZIFIERENTRADAS MUESTREADAS

    SALIDA DE CONTROL

  • Sistemas de Control basados en Lgica Difusa 15

    Figura 3.2. Particin ejemplo

    Supongamos ahora que hemos medido la salida del sistema a controlar, y obtenemos el valor

    de x=75. Para fuzzificar esta medida, debemos encontrar el peso que las funciones de

    pertenencia de cada subconjunto le asocian a dicho valor.

    Figura 3.3. Obteniendo los pesos asocidados a cada subconjunto borroso para la entrada x=75.

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Particin para la variable muestreada

    x muestreada

    u(x

    )

    Conjunto 1

    Conjunto 2

    Conjunto 3

    0 10 20 30 40 50 60 70 80 90 100-0.5

    0

    0.5

    1

    1.5Particin para la variable muestreada

    x muestreada

    u(x

    )

    Conjunto 1

    Conjunto 2

    Conjunto 3

  • Sistemas de Control basados en Lgica Difusa 16

    Los pesos asociados a cada subconjunto son los siguientes:

    ( )

    ( )

    ( )

    Estos resultados se traducen del siguiente modo: la muestra x=75 tiene un grado de

    pertenencia de 0 al conjunto difuso 1, un grado de 0.2759 al conjunto difuso 2 y un grado de

    0.75 al conjunto difuso 3. Entonces, podra escribirse que la representacin fuzzificada de la

    muestra de entrada es:

    * +

    3.2. Fuzzy Associative Memory

    El conjunto de reglas que determinarn la accin de control a tomar se deben almacenar en

    una matriz denominada Fuzzy Associative Memory.

    Por ejemplo, suponiendo que se desea controlar la temperatura de un horno en un valor

    normal. Podramos tener dos particiones, una asociada a la temperatura del horno en s (th), y

    otro, digamos, a la temperatura ambiente (ta). Dentro de cada particin, definimos los

    subconjuntos borrosos: muy_fro, fro, normal, caliente, muy_caliente. Para la particin de

    salida (y), podemos tener: enfriar_mucho, enfriar, nada, calentar, calentar_mucho.

    Un sistema de este tipo podra contener las siguientes reglas:

    Se aprecia que las reglas se obtienen de acuerdo al criterio del diseador del controlador. En la

    figura siguiente se puede apreciar la FAM completa para el ejemplo planteado.

    Figura 3.4. FAM para el ejemplo.

    Th

    muy_frio frio normal caliente muy_caliente

    muy_frio calentar_mucho calentar_mucho calentar calentar nada

    frio calentar_mucho calentar calentar nada enfriar

    Tanormal calentar calentar nada enfriar enfriar

    caliente calentar nada enfirar enfriar enfriar_mucho

    muy_caliente nada enfriar enfriar enfriar_mucho enfriar_mucho

  • Sistemas de Control basados en Lgica Difusa 17

    Si se tuviesen ms entradas, se ve que la FAM se complicara mucho ms, pues se tratara de

    una matriz de tres dimensiones. Ello supondra un problema al momento de programar el FLC

    en, digamos, un microcontrolador. Adems, esta FAM corresponde a un sistema MISO

    (Multiple Input Single Output), pues solo se tiene una salida. Esto no implica que la teora hasta

    ahora expuesta no sea aplicable para sistemas MIMO (Multiple Input Multiple Output), sino que

    en esos casos, el mtodo de anlisis se orientara a obtener FAMs para cada salida, y luego

    asociarlas todas para obtener las salidas reales para defuzzificar. El anlisis de esos casos

    sale fuera del alcance de este trabajo de investigacin.

    3.3. Unidad de inferencia borrosa

    Esto bloque se encargar de procesar las entradas conforme a las reglas de su FAM, y

    generar una salida para cada regla. El conjunto de salida luego se combina en una sola, tras

    un proceso denominado agregacin.

    Para explicar mejor cmo funciona la unidad de inferencia borrosa, plantearemos un caso

    sencillo.

    Supongamos se tiene un sistema con dos entradas: friccion y velocidad, que seran, por

    ejemplo, las entradas necesarias para controlar la fuerza de empuje de una caja sobre una

    superficie, de manera que la velocidad se mantenga en valor fijo denominado normal. La

    particin de salida es fuerza. Todo esto se puede apreciar en la siguiente grfica.

    Figura 3.5. Particiones para el sistema ejemplo.

    0 20 40-0.5

    0

    0.5

    1

    1.5Friccin

    0 20 40-0.5

    0

    0.5

    1

    1.5Velocidad

    0 10 20 30 40 50 60 70-0.5

    0

    0.5

    1

    1.5Particin de salida

  • Sistemas de Control basados en Lgica Difusa 18

    Para las particiones de entrada, en azul, el conjunto borroso bajo y en verde el conjunto

    borroso alto. Para la particin de salida, azul es normal_fuerte, verde es mas_fuerte, y rojo es

    muy_fuerte.

    Adems, se tienen solo tres reglas en la FAM:

    Observacin: Mientras ms reglas se tengan para decidir las acciones de control, el efecto

    total ser mucho ms preciso y efectivo a que si se tengan menos reglas. Sin embargo, a

    mayor cantidad de problemas se producen problemas en la aplicacin, pues el almacenar y

    procesar estas reglas implicara el uso de grandes cantidades de memoria, as como mayor

    tiempo de procesamiento.

    Suponiendo que la entrada friccion es 20 y la entrada velocidad es 15, se presentar lo

    mostrado en la figura 3.6.

    Figura 3.6. Reglas.

    El valor fraccin=20 da una pertenencia de 0 al conjunto alto y de 0.5 al conjunto bajo.

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Friccin

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Velocidad

    0 20 40 60-0.5

    0

    0.5

    1

    1.5Particin de salida

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Friccin

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Velocidad

    0 20 40 60-0.5

    0

    0.5

    1

    1.5Particin de salida

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Friccin

    0 10 20 30 40 50-0.5

    0

    0.5

    1

    1.5Velocidad

    0 20 40 60-0.5

    0

    0.5

    1

    1.5Particin de salida

  • Sistemas de Control basados en Lgica Difusa 19

    El valor velocidad=15 da una pertenencia de 1 al conjunto bajo y de 0 al conjunto alto.

    Para la primera regla, se da una operacin AND entre el subconjunto alto de friccion y el

    subconjunto bajo de velocidad. Eso da como resultado:

    ( )

    Luego, como la operacin arroja 0 como resultado, se trunca a muy_fuerte en 0.

    Para la segunda regla, se da una operacin AND entre el subconjunto bajo de friccion y el

    subconjunto bajo de velocidad. Eso da como resultado:

    ( )

    Luego, como la operacin arroja 0.5 como resultado, se trunca a mas_fuerte en 0.5.

    Finalmente, para la tercera regla se da una operacin AND entre el subconjunto bajo de friccion

    y el subconjunto alto de velocidad. Eso da como resultado:

    ( )

    Luego, como la operacin arroja 0 como resultado, se trunca a normal_fuerte en 0.

    Tras ello, obtenemos las siguientes salidas para cada regla:

    Figura 3.7. Salidas para cada regla.

    Finalmente, todas estas salidas formarn una sola a travs del procedimiento de agregacin.

    Con ello, se obtendra finalmente la salida de la unidad de inferencia borrosa para las entradas

    dadas. En este caso, la agregacin dara por resultado un subconjunto como el de la figura

    siguiente.

    0 10 20 30 40 50 60 70-0.5

    0

    0.5

    1

    1.5Primera Regla

    0 10 20 30 40 50 60 70-0.5

    0

    0.5

    1

    1.5Segunda Regla

    0 10 20 30 40 50 60 70-0.5

    0

    0.5

    1

    1.5Tercera Regla

  • Sistemas de Control basados en Lgica Difusa 20

    Figura 3.8. Salida de la unidad de inferencia para las entradas dadas.

    3.4. Defuzzificacin

    Ya se ha obtenido la salida de la unidad de inferencia borrosa. Pero esta salida no es

    compatible con el sistema a controlar. El defuzzificador es el encargado de generar una salida

    y* dentro del universo de variables de salida, que sea compatible con el sistema.

    Existen dos tipos de defuzzificadores principales:

    3.4.1. Defuzzificador por mximo

    Este defuzzificador genera la y*, tal que esta y* se corresponde con el punto en el que la salida

    tiene el peso mximo. En el ejemplo anterior, aplicando este criterio, y sera cualquier entero en

    el intervalo que hace que u(y)=0.5, pues esta es el mximo.

    ( ( ))

    Donde:

    ( )

    0 10 20 30 40 50 60 70-0.5

    0

    0.5

    1

    1.5Salida

    y

    u(y

    )

  • Sistemas de Control basados en Lgica Difusa 21

    3.4.2. Defuzzificador por media de centros

    Este defuzzificador obtiene y* a travs de un promedio ponderado de los valores centrales de

    cada conjunto difuso, con ponderacin equivalente al valor de pertenencia para esos valores

    centrales.

    ( ( ))

    ( )

    Donde:

    ( )

    En el ejemplo anterior, y* calculada con un defuzzificador por media de centros sera:

    La salida proporcionada por el defuzzificador pueda ya aplicarse al sistema a controlar.

    Dependiendo de los requerimientos del problema, y de los recursos de procesamiento

    disponibles, se debern elegir entre uno y otro. Cabe recalcar que el procedimiento de control

    de un FLC no requiere un conocimiento preciso de la planta, ni mucho menos de un modelo

    matemtico. Dicho modelo, sin embargo, se plantear en muchos casos para fines de

    simulacin, si es que no se emplean mtodos alternativos como la identificacin de sistemas

    con la propia lgica difusa, o empleando redes neuronales artificiales (ANN).

    En el siguiente apartado, se analizar el diseo de un FLC para controlar un motor de DC,

    empleando la Fuzzy Logic Toolbox de Matlab.

    4. Ejemplo de aplicacin: Control de un motor de DC

    En este apartado se ver como disear un FLC para una planta simple, en este caso, un motor

    de DC controlado por armadura. Solo para fines de simulacin se deber obtener un modelo

    del sistema. Una vez obtenido dicho modelo, se emplear la Fuzzy Logic Toolbox para disear

    el FLC. Finalmente, se implementarn todos los bloques en Simulink para analizar su

    desempeo y ver si se alcanz el control deseado.

    4.1. Modelamiento del motor solo para simulacin

    En la figura se muestra el esquema de un motor de DC. Para el modelamiento de este motor

    se mantendr al circuito de campo con un voltaje fijo.

  • Sistemas de Control basados en Lgica Difusa 22

    Figura 4.1. Motor DC.

    Siguiendo el comportamiento de todo motor DC se tiene:

    Donde Kt es la constante de armadura y Ke es la constante del motor. Sin embargo, para

    agilizar el anlisis plantearemos que Kt=Ke.

    Luego:

    Donde L es la inductancia de armadura y R es la resistencia de armadura.

    Llevando a Laplace, finalmente tenemos:

    ( ) ( ) ( )

    ( ) ( ) ( ) ( )

    Despejando obtenemos:

    ( )

    ( )

    ( )( )

    Asumamos los siguientes valores para las constantes:

    Kt=Ke=0.8995;

    R=60.938 ohmios

    L=1.129 H

    B=0.000817 Nm/A

    J=0.000689 kgm2/s

    2

    En SIMULINK, se obtiene la siguiente respuesta al escaln para el modelo obtenido:

  • Sistemas de Control basados en Lgica Difusa 23

    Figura 4.2. Modelo del motor DC.

    Figura 4.2. Respuesta al escaln. El motor no llega a 1.

    4.2. Procedimiento de Diseo del FLC con Fuzzy Logic Toolbox

    MATLAB posee una poderosa herramienta para el diseo de FLC. La Fuzzy Logic Toolbox

    ofrece una gama de interfaces tanto para el planteo de las reglas borrosas, como para

    simularlas e implementarlas. El FIS Editor es la herramienta de diseo, y los FIS son los

    archivos que estructuran al FLC. A continuacin, veremos algunos aspectos de esta

    herramienta conforme se procede con el diseo del FLC para el motor planteado.

    4.2.1. Configuracin de las entradas y salidas

    El primer bloque de todo FLC, como se explic anteriormente es el fuzzificador. Pero antes,

    para definir los conjuntos difusos de entrada, es necesario primero determinar los universos de

    discurso para las entradas y para la salida (en este ejemplo solo se tiene un salida, sistema

    MISO).

    Step Scope

    0.8091

    0.0007779s +0.04291s+0.85892

    Motor DC

  • Sistemas de Control basados en Lgica Difusa 24

    La entrada al FLC sern dos: la seal error e, y la derivada de la seal de error de/dt. Como se

    plantear una referencia de -1 a 1, el mximo y mnimo error ser 2 y 2 respectivamente.

    Entonces, planteamos ese universo de discurso para la seal de error y su derivada. Ahora se

    procede a determinar los conjuntos difusos para las particiones creadas. En este caso se

    elegirn tres conjuntos difusos: negativo, cero, positivo, todos con funciones de pertenencia del

    tipo gaussiano, con desviacin 0.75.

    Para la salida plantearemos un universo de discurso de -2 a 2. En este universo plantearemos

    5 conjuntos difusos: muy_negativo, negativo, cero, positivo, muy_positivo. Todas ellas tendrn

    funciones de pertenencia del tipo gaussiano tambin, con desviacin 0.333.

    Para ingresar estos parmetros en Matlab, primero deber ingresarse el comando fuzzy. Tras

    ello, se abrir FIS Editor, que ser la herramienta con la que se disear el FLC.

    Figura 4.3. FIS Editor.

    En la interfaz grfica se aprecian las particiones de entrada y salida. En este caso, para la entrada definiremos dos particiones: error y derror. Para lograrlo, primero debemos aadir un input haciendo click Edit->Add Variable->Input.

  • Sistemas de Control basados en Lgica Difusa 25

    Hecho esto ya tendramos las particiones necesarias. Las renombramos y procedemos a definir

    sus subconjuntos borrosos mediante la declaracin de sus funciones de pertenencia. Para ello

    hacemos doble click sobre cada variable lingstica, y se abrir el Membership Function Editor.

    En ella, definimos el universo de discurso, y el tipo gaussiano para las funciones de

    pertenencia.

    Figura 4.4. Membership Function Editor.

    En la figura se pueden apreciar los parmetros definidos. En Range se define el universo de

    discurso. Name ser la etiqueta asociada a dicho conjunto difuso. Type permite elegir el tipo de

    funcin de pertenencia. Respecto a esto, Matlab ofrece una muy amplia gama de tipos, los

    cuales son:

    trimf (triangular)

    trapmf (trapezoidal)

    gbellmf (campana)

    gaussmf (gaussiana)

    gauss2mf (combinacin gaussiana)

    sigmf (sigmoidea)

    dsigmf (diferencia entre dos sigmoideas)

    psigmf (producto de dos sigmoideas)

    pimf (tipo PI)

    smf (S-shaped)

    zmf (z-shaped)

  • Sistemas de Control basados en Lgica Difusa 26

    El uso de estas depender de la aplicacin y de los recursos. Por ejemplo, para diseo en

    microcontroladores, la mejor opcin es emplear una triangular, debido a que permite

    sensibilizar un intervalo y no consume mucha potencia de clculo. Sin embargo, como la

    simulacin ser hecha en un computador, se elegir la de tipo gauss, tipo que consume mucha

    ms potencia de clculo pero ofrece resultados ms precisos,

    Luego, se procede con la particin de salida. La IDE solo te ofrece tres funciones de

    pertenencia iniciales. Pero en este ejemplo se necesitarn 5. Entonces, necesitaremos agregar

    dos ms. Para ello hacemos click en Edit -> Add MFs

    Tras ello, se aadirn tres funciones de pertenencia ms. Eliminamos la sobrante y

    procedemos a definir sus tipos. En este ejemplo nuevamente se elegirn funciones de tipo

    gaussiano, con desviacin 0.3333.

    Figura 4.5. Configuracin de la particin de salida.

    4.2.2. Definicin del tipo de inferencia borrosa y del defuzzificador.

    En la figura 4.6 se ha resalta a un conjunto de opciones que determinarn el tipo de inferencia

    borrosa y al fuzzificador que se usarn para el diseo del FLC.

    And method: Determina el procedimiento para el anlisis de sentencias AND en las

    reglas. El valor por defecto es de mnimos, lo que implica que para una sentencia AND,

    el resultado ser el mnimo de los pesos asociados a cada sentencia. Otro mtodo es

    el del producto, sin embargo, este consume mucha capacidad, aunque es mucho ms

    preciso.

  • Sistemas de Control basados en Lgica Difusa 27

    Or method: Similar a And method. El valor por defecto es de mximos, lo que implica

    que para el OR se elegir al mayor de los pesos de los conjuntos asociados a cada

    sentencia.

    Implication: Determina el tipo de implicacin borrosa. Su funcin es determinar el

    procedimiento de adjudicacin de la salida cuando se llega a la sentencia THEN en la

    regla. El valor por defecto es el de mnimos, aunque tambin est disponible el de

    productos.

    Agreggation: Determina el tipo de agregacin. El valor por defecto es max, el cual

    aplica una operacin OR entre todos los conjuntos difusos de la salida asociadas a

    cada regla.

    Defuzzification: Determina el tipo de defuzzificador. El valor por defecto es centroid, el

    cual aplica el defuzzificador por media de centros.

    Figura 4.6. Parmetros del dispositivo de inferencia lgica y defuzzificador.

    Para el diseo del FLC se emplearn los valores por defecto para la mquina de inferencia

    borrosa. El siguiente paso es implementar la FAM.

  • Sistemas de Control basados en Lgica Difusa 28

    4.2.3. Determinacin de las reglas y formacin de la FAM

    Como tenemos dos particiones, cada una con 3 conjuntos difusos o etiquetas, para cubrir todos

    los casos posibles deberemos plantear 32 reglas. Para este diseo se elegir un estilo de

    reglas MAMDANI.

    Figura 4.7. FAM para el FLC a disear.

    Estas reglas se han planteado siguiendo un criterio simple. Si hubiese ms entradas, el

    procedimiento de plantear estas reglas de complica.

    Por ejemplo, la regla 1 se puede leer del siguiente modo: SI error es negativo Y derror es

    negativo, ENTONCES salida es muy_negativo. El fundamento para esa regla es el siguiente:

    un error negativo implica que la salida del sistema es ms grande que la referencia, por lo que

    la accin a tomar deber ser negativa para reducir la salida. Del mismo modo, si la derivada del

    error es negativa, ello implica que el error tiende a seguir creciendo negativamente, por lo que

    la accin tambin debe ser negativa. Como ambos sugieren una accin negativa, entonces la

    verdadera accin deber ser muy_negativo, para as manejar los dos casos planteados.

    Otra regla que se puede extraer de la FAM es la siguiente: SI error es cero Y derror es cero,

    ENTONCES salida es cero. Ello pues ambas condiciones implican que el sistema est en

    equilibrio y no hace falta accin alguna sobre el mismo.

    Para introducir esta FAM en el modelo de Simulink, es necesario hacer doble click en el

    recuadro en blanco que tiene una cadena que dice Mamdani. Ello debido a que defecto, el FIS

    Editor elige el formato Mamdani. Si se desea emplear el formato Sugeno, es necesario crear

    oro FIS mediante File -> New FIS -> Sugeno.

    Tras hacer doble click se abrir el Rule Editor.

    Figura 4.8. Rule Editor.

    error

    negativo cero positivo

    negativo muy_negativo negativo positivo

    derror cero negativo cero positivo

    positivo negativo positivo muy_positivo

  • Sistemas de Control basados en Lgica Difusa 29

    En la interfaz, se aprecian los conjuntos difusos para las entradas y para la salida. Se puede

    elegir el tipo de conexin entre sentencias, si sern AND u OR. Para el diseo de esta FLC se

    emplear solo AND.

    Cada que se quiera agregar una regla, debern seleccionarse las etiquetas propias de cada

    sentencia, y una etiqueta de salida. Luego, con Add rule se procede a la creacin de la misma.

    Un aspecto interesante es que adems se puede dar una prioridad o peso a cada regla

    mediante la variable Weight. Con ello se puede establecer jerarquas de reglas, asocindoles

    diferentes pesos. Para este diseo, todas las reglas tendrn peso 1.

    Figura 4.9. Rule Editor con todas las reglas declaradas.

    4.2.4. Creacin del FLC

    El diseo realizado deber guardarse como un archivo FIS que posteriormente se utilizar en

    Simulink para la simulacin.

    Para ello, damos click en File -> Export -> To file...

    En este diseo, se le asign el nombre de FLC_motor al archivo FIS generado. Este archivo

    ser el cerebro del controlador borroso. Para cargarlo en Simulink, se deber crear primero una

    instancia Fuzzy Logic Controller.

  • Sistemas de Control basados en Lgica Difusa 30

    Figura 4.10. Fuzzy Logic Controller

    En este bloque de Simulink, se cargar el FIS con el diseo del FLC previamente realizado.

    Para ello, se hace doble click en el bloque, y en el espacio FIS file or structure se escribe el

    nombre del FIS creado entre apstrofos: FLC_motor.fis.

    Figura 4.11. Cargado del fichero .fis en el FLC.

    Con esto ya se tendra el FLC completamente diseado. El resto es calibrar las entradas y

    salidas de manera que sean compatibles con las seales que arroja el sistema.

    4.3. Simulacin

    En Simulink se implement el esquema de la figura 4.12. En l se aprecia las constantes de

    ganancia agregadas para calibrar al FLC con la planta dada.

    Para la simulacin se vern tres casos de prueba: para una entrada escaln, para un tren de

    pulsos cuadrados de periodo 1 segundo y una seal de forma especial.

    Se compararn los resultados en lazo abierto (sin FLC) y en lazo cerrado (con FLC).

    Step Scope5Scope4

    Scope3

    Scope2Scope1

    Scope

    Pulse

    Generator

    0.8091

    0.0007779s +0.04291s+0.85892

    Motor DC1

    0.8091

    0.0007779s +0.04291s+0.85892

    Motor DC

    0.5

    Gain7

    2.4

    Gain6

    2

    Gain5

    0.2

    Gain4

    0.5

    Gain3

    2.4

    Gain2

    2

    Gain1

    0.2

    Gain

    Fuzzy Logic

    Controller1

    Fuzzy Logic

    Controller

    du/dt

    Derivative1

    du/dt

    Derivative

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 31

    Figura 4.12. Esquema en Simulink para el testeo del FLC diseado.

    0.5

    Tacogenerador

    Step1

    Salida FLC

    Planta con FLC

    2

    P

    0.8091

    0.0007779s +0.04291s+0.85892

    Motor DC1

    0.8091

    0.0007779s +0.04291s+0.85892

    Motor DC

    Lazo abierto

    2.4

    Ganancia FLCFuzzy Logic

    Controller

    du/dt

    Derivative

    0.2

    D

    Comparativo

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 32

    4.3.1. Prueba escaln

    Se aplic la seal escaln, y se obtuvieron los siguientes resultados.

    Figura 4.13. Respuesta de la planta controlada con FLC (rosado) a la entrada escaln (rojo).

    Se puede apreciar que no hay error de posicin, ni oscilaciones ni sobreimpulso, que son los

    efectos tpicos de otros controladores, como el PID. En la grfica siguiente se muestra la salida

    del FLC.

    Figura 4.14. Salida de control del FLC.

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 33

    En el siguiente grfico se muestra la respuesta comparativa del sistema en lazo abierto y el

    sistema controlado con el FLC diseado.

    Figura 4.15. Salida comparativa. En rojo la entrada escaln, en azul la salida en lazo abierto y en

    rosa la salida controlado con un FLC.

    En el comparativo se muestra las mejoras que el FLC ha introducido: menor tiempo de

    respuesta, no hay error de posicin, no hay sobreimpulso.

    4.3.2. Prueba tren de pulsos

    En este test se emplear un generador de impulsos. Estos sern cuadrados, positivos, con

    periodo de 1 segundo y ciclo de trabajo de 50%.

    Figura 4.16. Salida del FLC (rosa) y la seal de entrada (rojo).

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 34

    Figura 4.17. Comparativo. En rojo la seal de prueba, en azul la salida en lazo abierto, y en rosa la

    salida controlada por el FLC.

    Se aprecia nuevamente el buen desempeo del FLC.

    4.3.3. Prueba con seal especial

    En vista de que el FLC se dise pensando soportar referencias negativas, se cre una seal

    de prueba que permita evaluar el desempeo del FLC para seal nula, seal a 1 voltios y seal

    a -1 voltio. El resultado comparativo se presenta a continuacin.

    Figura 4.18. Seal de entrada (rojo), salida en lazo abierto (azul) y salida controlada con el FLC

    (rosa)

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 35

    4.4. Algunas observaciones sobre la simulacin

    El FLC diseado solo tom como entradas al error y su derivada. Sin embargo, para lograr

    mejores prestaciones tambin se pudo tomar a la integral del error. Sin embargo, dicha adicin

    sale fuera del objetivo de este trabajo de investigacin.

    Existen mtodos ms avanzados para el diseo de FLC, a las que inclusive se le aade

    tcnicas de aprendizaje. Con esto, se busca incrementar el carcter heurstico de los

    controladores.

    Tambin estn las aplicaciones hbridas, que mezclan controladores clsicos como el PID, con

    un controlador difuso. Dichas aplicaciones presentan un rendimiento mucho mejor que si se

    tratase de un controlador clsico o un FLC solamente. Otro modelo hbrido, de mucho mayor

    poder que el mencionado anteriormente, son los controladores neurodifusos. Estos combinan

    las capacidades de aprendizaje de las redes neuronales artificiales con la sencillez y eficacia

    de toma de decisiones de la lgica difusa.

    5. Conclusiones

    La lgica difusa rompe el esquema de la lgica clsica al introducir el concepto de

    funcin de pertenencia.

    Las funciones de pertenencia determinan el grado de pertenencia de un elemento

    definido dentro de un universo de discurso hacia un determinado conjunto difuso.

    Las variables lingsticas se relacionan con las particiones borrosas. Dentro de cada

    particin pueden haber varios conjuntos difusos, los cuales se relacionan

    lingsticamente hablando con las etiquetas de la variable.

    Los FLC o controladores lgicos difusos no requieren de un modelo de la planta a

    controlar para disearse. En su lugar, requiere el planteamiento de reglas basadas en

    criterios propios del diseador. Es por eso que los FLC permiten aplicar de mejor

    manera los conocimientos poco exactos que el diseador tiene de una planta sobre el

    controlador.

    Todo FLC est conformado por, al menos 4 bloques: el fuzzificador, encargado de

    adaptar las entradas al FLC; la memoria de asociacin difusa o FAM, encargada de

    contener todas las reglas; la unidad de inferencia borrosa, encarga de generar las

    salidas en funcin de las variables de entrada y las reglas; y por ltimo, el

    defuzzificador, encargado de adaptar las salidas para que sean aplicables a la planta a

    controlar.

    La herramienta FIS Editor de la Fuzzy Logic Toolbox de Matlab permite disear un FLC

    de manera sencilla. Tambin existen otras IDEs especializadas para el diseo de FLC,

    como lo son FuzzyTECH, FIDE, TILLShell, Cubicalc, etc.

    En s, le tcnica de control difuso no es mejor que otras tcnicas. Simplemente supone

    un mtodo alternativo para solucionar el paradigma del control automtico, como lo son

    el PID, el control neuronal, el control ptimo, etc.

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 36

    6. Referencias

    Libros, manuales y papers:

    REDES NEURONALES Y SISTEMAS DIFUSOS, 2da Edicin Ampliada y Revisada.

    Bonifacio Martn del Bro, Alfredo Sanz Molina, Editorial Alfaomega-Rama. Espaa,

    octubre del 2001.

    Fuzzy Logic Toolbox Users Manual, Matlab.

    Sistemas de Lgica Difusa, Marco Antonio Prez Cisneros, James Vern.

    Control mediante Lgica Difusa, Samir Kuoro, Rodrigo Musalem.

    Fuzzy Logic Speed Control of an Induction Motor, Jaime Fonseca, Joao L. Afonso,

    Julio S. Martins, Carlos Couto.

    Links Web:

    http://es.wikipedia.org/wiki/L%C3%B3gica_difusa

    http://www.tdx.cat/bitstream/handle/10803/6887/04Rpp04de11.pdf;jsessionid=3ADB4A198F97

    D861DCCB5299A63D01BB.tdx2?sequence=4

    http://profesores.elo.utfsm.cl/~tarredondo/info/softcomp/Introduccion%20a%20la%20Logica%20

    Difusa.pdf

    http://arxiv.org/ftp/arxiv/papers/1402/1402.3654.pdf

    https://www.calvin.edu/~pribeiro/othrlnks/Fuzzy/tutorial1.htm

    http://www.mathworks.com/help/fuzzy/fuzzylogiccontrollerwithruleviewer.html

    http://www.mathworks.com/help/fuzzy/examples/membership-function-gallery.html

    http://www.mathworks.com/help/fuzzy/fuzzylogiccontroller.html

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 37

    7. Anexos

    Cdigo para generacin de funciones de pertenencia trapezoidal

    function u_x=trapezoidal(a,b,c,d,x) u_x=zeros(1,length(x)); at=a; bt=b; ct=c; dt=d; for i=1:length(x) if (i>=dt+1) u_x(i)=0; elseif (i>=ct+1) u_x(i)=(dt-i)/(dt-ct); elseif (i>=bt+1) u_x(i)=1; elseif (i>=(at+1)) u_x(i)=(i-at)/(bt-at); else u_x(i)=0; end end end

    Cdigo para graficar los tipos de funciones de pertenencia

    clc

    %Grfico 1: Logica clasica tallas=50:300; utallas_bajos=ones(1,length(tallas)); utallas_altos=zeros(1,length(tallas)); for i=50:300 if (i>175) utallas_bajos(i-49)=0; utallas_altos(i-49)=1; end end

    figure(1) subplot(1,2,1) plot(tallas,utallas_bajos,'r') axis([50 300 -0.5 1.5]) title('Personas bajas') xlabel('Talla') ylabel('Pertenencia') grid subplot(1,2,2) plot(tallas,utallas_altos,'b') axis([50 300 -0.5 1.5]) title('Personas altas') xlabel('Talla') ylabel('Pertenencia') grid

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 38

    %Grfico 2: Logica difusa tallas=50:300; utallas_bajos=ones(1,length(tallas)); utallas_altos=zeros(1,length(tallas)); for i=50:300 if (i>190) utallas_altos(i-49)=1; utallas_bajos(i-49)=0; elseif (i>160) utallas_altos(i-49)=1-(190-i)/30; utallas_bajos(i-49)=1-(i-160)/30; end end

    figure(2) plot(tallas,utallas_bajos,'r',tallas,utallas_altos,'b') axis([100 250 -0.5 1.5]) title('Clasificacin sen la lgica difusa') xlabel('Talla') ylabel('Pertenencia') grid legend('Personas Bajas','Personas Altas')

    %Grfico 3: Trapezoidal x=0:99; u_x=zeros(1,100); a=25; b=40; c=60; d=75; for i=1:100 if (i>d) u_x(i)=0; elseif (i>c) u_x(i)=(d-i)/(d-c); elseif (i>b) u_x(i)=1; elseif (i>a) u_x(i)=(i-a)/(b-a); end end

    figure(3) plot(x,u_x) axis([0 100 -0.5 1.5]) title('Funcin de Pertenencia Trapezoidal') xlabel('x') ylabel('u(x)') grid

    %Grfico 4: Triangular x=0:99; u_x=zeros(1,100); a=25; b=50; c=50;

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 39

    d=75; for i=1:100 if (i>d) u_x(i)=0; elseif (i>c) u_x(i)=(d-i)/(d-c); elseif (i>b) u_x(i)=1; elseif (i>a) u_x(i)=(i-a)/(b-a); end end

    figure(4) plot(x,u_x) axis([0 100 -0.5 1.5]) title('Funcin de Pertenencia Triangular') xlabel('x') ylabel('u(x)') grid

    %Grfico 5: Singleton x=0:99; u_x=zeros(1,100); a=50; u_x(a+1)=1; figure(5) plot(x,u_x,'r') axis([0 100 -0.5 1.5]) title('Funcin de Pertenencia Singleton') xlabel('x') ylabel('u(x)') grid

    %Grfico 6: S x=0:99; u_x=zeros(1,100); a=30; b=70; for i=1:100 if (i>b) u_x(i)=1; elseif (i>(a+b)/2) u_x(i)=1-2*((i-b)/(b-a))^2; elseif (i>a) u_x(i)=2*((i-a)/(b-a))^2; end end

    figure(6) plot(x,u_x) axis([0 100 -0.5 1.5]) title('Funcin de Pertenencia S') xlabel('x') ylabel('u(x)') grid

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 40

    %Grfico 7: Modelo digital clsico x=0:99; u_x=zeros(1,100); a=50; for i=1:100 if (i>a) u_x(i)=1; end end

    figure(7) plot(x,u_x) axis([0 100 -0.5 1.5]) title('Modelo Lgica Clsica') xlabel('x') ylabel('u(x)') grid

    Cdigo para graficar las operaciones entre conjuntos difusos

    clc

    x=0:99; A=zeros(1,100); B=zeros(1,100);

    %A aA=25; bA=40; cA=60; dA=75; for i=1:100 if (i>dA) A(i)=0; elseif (i>cA) A(i)=(dA-i)/(dA-cA); elseif (i>bA) A(i)=1; elseif (i>aA) A(i)=(i-aA)/(bA-aA); end end

    %B aB=1; bB=10; cB=30; dB=40; for i=1:100 if (i>dB) B(i)=0; elseif (i>cB) B(i)=(dB-i)/(dB-cB);

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 41

    elseif (i>bB) B(i)=1; elseif (i>aB) B(i)=(i-aB)/(bB-aB); end end

    %Complemento u_xcom=1-A; figure(1) plot(x,A,'b',x,u_xcom,'r') axis([0 100 -0.5 1.5]) grid legend('Conjunto A','Conjunto Complemento de A') title('Complemento')

    %Union u_union=zeros(1,100); for i=1:100 u_union(i)=max(A(i),B(i)); end figure(2) subplot(2,1,1) plot(x,A,'g',x,B,'b') axis([0 100 -0.5 1.5]) grid legend('Conjunto A','Conjunto B') title('Conjuntos Base') subplot(2,1,2) plot(x,u_union,'r') axis([0 100 -0.5 1.5]) grid legend('Conjunto Union A y B') title('Union')

    %Interseccion u_inter=zeros(1,100); for i=1:100 u_inter(i)=min(A(i),B(i)); end figure(3) subplot(2,1,1) plot(x,A,'g',x,B,'b') axis([0 100 -0.5 1.5]) grid legend('Conjunto A','Conjunto B') title('Conjuntos Base') subplot(2,1,2) plot(x,u_inter,'r') axis([0 100 -0.5 1.5]) grid legend('Conjunto Interseccion A y B') title('interseccin')

    %Norma uBase=A/1.5; uNorma=A/max(A);

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 42

    figure(4) subplot(1,2,1) plot(x,uBase,'b') axis([0 100 -0.5 1.5]) grid title('Conjunto Base') subplot(1,2,2) plot(x,uNorma,'r') axis([0 100 -0.5 1.5]) grid title('Conjunto Normalizado')

    %Concentracion u_xconc=A.^2; figure(5) plot(x,A,'b',x,u_xconc,'r') axis([0 100 -0.5 1.5]) grid legend('Conjunto A','Conjunto Concentrado A') title('Concentracin')

    %Dilatacin u_xdila=A.^0.5; figure(6) plot(x,A,'b',x,u_xdila,'r') axis([0 100 -0.5 1.5]) grid legend('Conjunto A','Conjunto Dilatado A') title('Dilatacin')

    Fuzzificador

    function u_xprima=fuzzifier(xprima,u_x) u_xprima=u_x(xprima); end

    Cdigo para obtencin de pesos en Matlab

    %Universo de discurso

    x=0:99;

    %Generando 1 particion con 3 subconjuntos borrosos u_x1=trapezoidal(1,30,30,59,x); u_x2=trapezoidal(25,54,54,83,x); u_x3=trapezoidal(60,80,80,100,x);

    figure(1) plot(x,u_x1,x,u_x2,x,u_x3)

  • FIEE-UNMSM

    Sistemas de Control basados en Lgica Difusa 43

    grid axis([0 100 -0.5 1.5]) title('Particin para la variable muestreada') xlabel('x muestreada') ylabel('u(x)') legend('Conjunto 1','Conjunto 2','Conjunto 3')

    %Obteniendo los pesos xp=75; peso1=fuzzifier(xp,u_x1) peso2=fuzzifier(xp,u_x2) peso3=fuzzifier(xp,u_x3)