Vous êtes sur la page 1sur 43

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

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.
3.

4.

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

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

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

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

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

Clasificacin sen la lgica difusa


1.5
Personas Bajas
Personas Altas

Pertenencia

0.5

-0.5
100

150

200

250

Talla

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:

( )

Sistemas de Control basados en Lgica Difusa

Funcin de Pertenencia Trapezoidal


1.5

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

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:

( )
{

Funcin de Pertenencia Triangular


1.5

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

Grfico 2.4. Funcin de pertenencia triangular.

Sistemas de Control basados en Lgica Difusa

Tipo singleton: Se suele usar para definir los conjuntos borrosos de las particiones de
las variables de salida.
Funcin de Pertenencia Singleton
1.5

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

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:

( )
{
Funcin de Pertenencia S
1.5

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

Grfico 2.6. Funcin de pertenencia singleton.

Sistemas de Control basados en Lgica Difusa

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


( )

Modelo Lgica Clsica


1.5

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

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.
Conjuntos borrosos
1.5
Positivo grande
Positivo Pequeo

u(x)

0.5

-0.5

10

20

30

40

50
x

60

70

80

90

100

Grfico 2.8. Conjuntos borrosos

Sistemas de Control basados en Lgica Difusa

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:
(

( )

Complemento
1.5
Conjunto A
Conjunto Complemento de A

0.5

-0.5

10

20

30

40

50

60

70

80

90

100

Figura 2.9. Complemento.

Sistemas de Control basados en Lgica Difusa

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


( )

( )

( )-

Conjuntos Base
1.5
Conjunto A
Conjunto B

1
0.5
0
-0.5

10

20

30

40

50

60

70

80

90

100

Union
1.5
Conjunto Union A y B
1
0.5
0
-0.5

10

20

30

40

50

60

70

80

90

100

Figura 2.10. Unin.

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


( )

( )

( )-

Conjuntos Base
1.5
Conjunto A
Conjunto B

1
0.5
0
-0.5

10

20

30

40

50

60

70

80

90

100

interseccin
1.5
Conjunto Interseccion A y B
1
0.5
0
-0.5

10

20

30

40

50

60

70

80

90

100

Grfico 2.11. Interseccin.

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


pertenencia:

Sistemas de Control basados en Lgica Difusa

10

( )(

( )
, -

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.
Conjunto Base

Conjunto Normalizado

1.5

1.5

0.5

0.5

-0.5

50

-0.5

100

50

100

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.
Concentracin
1.5
Conjunto A
Conjunto Concentrado A

0.5

-0.5

10

20

30

40

50

60

70

80

90

100

Grfico 2.13. Concentracin

Sistemas de Control basados en Lgica Difusa

11

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:
( )(

( )-

Dilatacin
1.5
Conjunto A
Conjunto Dilatado A

0.5

-0.5

10

20

30

40

50

60

70

80

90

100

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.
-

2.3.

Igualdad: Dos conjuntos difusos A y B sern iguales si y solo si ambos tienen la misma
funcin de pertenencia.

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:

Sistemas de Control basados en Lgica Difusa

12

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

13

ENTRADAS
MUESTREADAS

FUZZIFIER

UNIDAD DE
INFERENCIA
DIFUSA

DEFUZZIFIER

SALIDA DE
CONTROL

FAM

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.

Sistemas de Control basados en Lgica Difusa

14

Particin para la variable muestreada


1.5
Conjunto 1
Conjunto 2
Conjunto 3

u(x)

0.5

-0.5

10

20

30

40
50
60
x muestreada

70

80

90

100

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.
Particin para la variable muestreada
1.5
Conjunto 1
Conjunto 2
Conjunto 3

u(x)

0.5

-0.5

10

20

30

40
50
60
x muestreada

70

80

90

100

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

Sistemas de Control basados en Lgica Difusa

15

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 (t h), 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.

Th
muy_frio

normal

caliente

muy_caliente

calentar_mucho calentar_mucho

calentar

calentar

nada

frio

calentar_mucho

calentar

calentar

nada

enfriar

normal

calentar

calentar

nada

enfriar

enfriar

caliente

calentar

nada

enfirar

enfriar

enfriar_mucho

muy_caliente

nada

enfriar

enfriar

enfriar_mucho

enfriar_mucho

muy_frio

Ta

frio

Figura 3.4. FAM para el ejemplo.

Sistemas de Control basados en Lgica Difusa

16

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.
Friccin

Velocidad

1.5

1.5

0.5

0.5

-0.5

20

-0.5

40

20

40

Particin de salida
1.5
1
0.5
0
-0.5

10

20

30

40

50

60

70

Figura 3.5. Particiones para el sistema ejemplo.

Sistemas de Control basados en Lgica Difusa

17

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.

Friccin

Velocidad

Particin de salida

1.5

1.5

1.5

0.5

0.5

0.5

-0.5

10

20

30

40

50

-0.5

10

Friccin

20

30

40

50

-0.5

Velocidad
1.5

1.5

0.5

0.5

0.5

10

20

30

40

50

-0.5

10

Friccin

20

30

40

50

-0.5

1.5

0.5

0.5

0.5

10

20

30

40

50

-0.5

10

20

30

40

60

20

40

60

Particin de salida

1.5

Velocidad

1.5

-0.5

20

Particin de salida

1.5

-0.5

40

50

-0.5

20

40

60

Figura 3.6. Reglas.

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

Sistemas de Control basados en Lgica Difusa

18

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:
Primera Regla
1.5
1
0.5
0
-0.5

10

20

30

40

50

60

70

50

60

70

50

60

70

Segunda Regla
1.5
1
0.5
0
-0.5

10

20

30

40

Tercera Regla
1.5
1
0.5
0
-0.5

10

20

30

40

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.

Sistemas de Control basados en Lgica Difusa

19

Salida
1.5

u(y)

0.5

-0.5

10

20

30

40

50

60

70

y
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:

( )

Sistemas de Control basados en Lgica Difusa

20

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

21

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
2

J=0.000689 kgm /s

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

Sistemas de Control basados en Lgica Difusa

22

0.8091
0.0007779s2+0.04291s+0.8589
Step

Motor DC

Scope

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).

Sistemas de Control basados en Lgica Difusa

23

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

24

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

25

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

26

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

27

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
2
los casos posibles deberemos plantear 3 reglas. Para este diseo se elegir un estilo de
reglas MAMDANI.

derror

negativo

error
cero

positivo

negativo

muy_negativo

negativo

positivo

cero

negativo

cero

positivo

positivo

negativo

positivo

muy_positivo

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.

Sistemas de Control basados en Lgica Difusa

28

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

29

2
Gain1
0.2
ve

/dt

ative1

Gain

2.4
Gain2

Fuzzy Logic
Controller
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.

0.5

Gain3

2
Gain5

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

2.4

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.

0.2

4.3.
Simulacin
Gain4

Gain6

Fuzzy Logic
Controller1

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.

0.5

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

Gain7
Sistemas de Control basados en Lgica Difusa

30

FIEE-UNMSM

Salida FLC
2
P
Step1

du/dt
Derivative

0.2
D

2.4
Ganancia FLC

Fuzzy Logic
Controller

0.8091
0.0007779s2+0.04291s+0.8589

Planta con FLC

Motor DC

0.5
Tacogenerador
Comparativo

0.8091
0.0007779s2+0.04291s+0.8589
Motor DC1

Lazo abierto

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

Sistemas de Control basados en Lgica Difusa

31

FIEE-UNMSM
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.

Sistemas de Control basados en Lgica Difusa

32

FIEE-UNMSM
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).

Sistemas de Control basados en Lgica Difusa

33

FIEE-UNMSM

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)

Sistemas de Control basados en Lgica Difusa

34

FIEE-UNMSM
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.

Sistemas de Control basados en Lgica Difusa

35

FIEE-UNMSM

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

Sistemas de Control basados en Lgica Difusa

36

FIEE-UNMSM

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

Sistemas de Control basados en Lgica Difusa

37

FIEE-UNMSM

%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;

Sistemas de Control basados en Lgica Difusa

38

FIEE-UNMSM
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

Sistemas de Control basados en Lgica Difusa

39

FIEE-UNMSM
%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);

Sistemas de Control basados en Lgica Difusa

40

FIEE-UNMSM
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);

Sistemas de Control basados en Lgica Difusa

41

FIEE-UNMSM
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)

Sistemas de Control basados en Lgica Difusa

42

FIEE-UNMSM
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)

Sistemas de Control basados en Lgica Difusa

43

Vous aimerez peut-être aussi