Académique Documents
Professionnel Documents
Culture Documents
San Marcos
FACULTAD DE INGENIERA
ELECTRNICA Y ELCTRICA
Ingeniera de Control II
Alumno :
Cdigo
10190258
Profesor :
Horario :
2014
Contenido
1.
Introduccin....................................................................................................................... 3
2.
Lgica Difusa..................................................................................................................... 4
2.1.
2.2.
2.2.1.
2.2.2.
2.3.
3.
4.
Fuzzificacin ............................................................................................................ 14
3.2.
3.3.
3.4.
Defuzzificacin ........................................................................................................ 20
3.4.1.
3.4.2.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.3.
Simulacin ............................................................................................................... 30
4.3.1.
4.3.2.
4.3.3.
5.
Conclusiones................................................................................................................... 35
6.
Referencias ...................................................................................................................... 36
7.
Anexos .............................................................................................................................. 37
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.
2. Lgica Difusa
2.1.
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.
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.
Pertenencia
0.5
-0.5
100
150
200
250
Talla
2.2.
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.
( )
u(x)
0.5
-0.5
10
20
30
40
50
x
60
70
80
90
100
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:
( )
{
u(x)
0.5
-0.5
10
20
30
40
50
x
60
70
80
90
100
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
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
u(x)
0.5
-0.5
10
20
30
40
50
x
60
70
80
90
100
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
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:
*
2.2.2.
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
1.5
Conjunto A
Conjunto Complemento de A
0.5
-0.5
10
20
30
40
50
60
70
80
90
100
( )
( )-
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
( )
( )-
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
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
( )-
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
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
1.5
Conjunto A
Conjunto Dilatado A
0.5
-0.5
10
20
30
40
50
60
70
80
90
100
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
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.
13
ENTRADAS
MUESTREADAS
FUZZIFIER
UNIDAD DE
INFERENCIA
DIFUSA
DEFUZZIFIER
SALIDA DE
CONTROL
FAM
3.1.
Fuzzificacin
14
u(x)
0.5
-0.5
10
20
30
40
50
60
x muestreada
70
80
90
100
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.
15
3.2.
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
16
3.3.
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
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.
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
18
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:
(
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
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.
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
3.4.1.
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:
( )
20
3.4.2.
( ))
()
Donde:
()
En el ejemplo anterior, y* calculada con un defuzzificador por media de centros sera:
4.1.
21
) ( )
) ( )
( )
( )
( )
Despejando obtenemos:
( )
( )
)(
J=0.000689 kgm /s
22
0.8091
0.0007779s2+0.04291s+0.8589
Step
Motor DC
Scope
4.2.
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.
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).
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.
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.
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.
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)
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.
4.2.2.
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.
Para el diseo del FLC se emplearn los valores por defecto para la mquina de inferencia
borrosa. El siguiente paso es implementar la FAM.
27
4.2.3.
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
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.
4.2.4.
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.
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
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
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
Motor DC
0.5
Tacogenerador
Comparativo
0.8091
0.0007779s2+0.04291s+0.8589
Motor DC1
Lazo abierto
31
FIEE-UNMSM
4.3.1.
Prueba escaln
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.
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.
4.3.2.
En este test se emplear un generador de impulsos. Estos sern cuadrados, positivos, con
periodo de 1 segundo y ciclo de trabajo de 50%.
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.
4.3.3.
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)
34
FIEE-UNMSM
4.4.
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
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.
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.
35
FIEE-UNMSM
6. Referencias
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
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
37
FIEE-UNMSM
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
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
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);
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
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)
43