FGHJ
FGHJ
FGHJ
Unidad III:
Nombre de Alumnos:
8”u”
Fecha de entrega: 10/Mayo/2020
1
Contenido
Introducción ............................................................................................................. 1
Marco teórico........................................................................................................... 1
Antecedentes ................................................................................................... 1
Defusificacion. ................................................................................................ 11
Matlab. ............................................................................................................... 12
Simulink.......................................................................................................... 13
Resultados. ........................................................................................................... 23
Conclusión............................................................................................................. 30
Bibliografía ............................................................................................................ 31
i
Introducción
Marco teórico
Controlador difuso.
Antecedentes
Las bases de lógica difusa fueron presentadas alrededor de 1965 por el personaje
Lofti Zadeh, profesor de la universidad de California en Berkley. Contraviniendo los
conceptos de la lógica clásica, donde se marca únicamente un elemento como
perteneciente o no aun conjunto, propone el concepto de pertenencias parciales a
conjuntos que denomino difusos. Pero fue en el año 1974 cuando esta lógica se
emplea en el campo del control por el personaje Ebrahim Mandami, el cual hizo la
regulación de un motor de vapor.
1
El profesor Zadeh habla de que la gente no maneja modelos matemáticos o
información cuantitativa cuando ejecuta tareas del medio que lo rodea, realizando
control altamente.
Control Difuso.
Es la principal aplicación de la lógica difusa son los sistemas de control difuso, que
utilizan las expresiones difusas para formular las reglas que controlaran dichos
sistemas. Como la lógica difusa sugiere un cierto grado de pertenencia para un dato
que presente dentro de los conjuntos difusos, permite que un controlador difuso
tomar diferentes grados de acción en un sistema, como se sabe un sistema de
control debe tomarse en cuenta el conocimiento experto de una o varias personas
para la realización de la base de conocimientos sobre la cual se basara la toma de
decisiones. Un control difuso se puede aplicarse en innumerables sistemas tales
como son brazos articulados y vehículos autónomos, empleando técnicas de
razonamiento aproximado es posible controlar sistemas superiores cuando el
entorno no se conoce de forma precisa. Esta característica permite mayor
flexibilidad que el control clásico en el que para la realización de un controlador se
requiere de un alto grado de cálculo matemático. Así, con un controlador difuso es
posible prescindir de la rigidez matemática y transmitir el raciocinio humano hasta
un sistema.
2
Donde se puede observar un primer bloque el cual tiene como nombre fuzificador
en el que los datos de entrada son procesados para calcular el grado de membresía
que tendrán dentro del controlador, enseguida se tiene el dispositivo de inferencia
que junto con la base de conocimientos realizan la toma de decisiones que dictaran
la forma en que actuara el sistema. El método de inferencia se basa en el grado de
pertenencia de los datos de entrada en los conjuntos difusos de los espacios
correspondientes, siempre que estas se den para tomar una decisión en el espacio
de salida. El conjunto de reglas las también se puede conocer como base de
conocimiento, es del tipo de antecedente – consecuente; es decir si…. entonces …,
y existen distintos métodos de inferencia tales como son: mínimo-máximo, máximo-
producto, etc. La última parte que se puede ubicar es la que tiene como nombre
defuzificador, esta parte es quien realiza el procesador final con el fin de adecuar
los valores difusos de la inferencia en valores no difusos útiles para el proceso que
se ha de controlar. Para realizar un controlador de este tipo se necesita seguir el
siguiente proceso. (Morcillo, 2010)
3
Figura 2 Representación de un conjunto difuso
(v,T,X,g,m)
V es el conjunto de la variable.
T es el conjunto de términos lingüísticos de v.
X es el universo del discurso de la variable V
g es una regla sintáctica para generar términos lingüísticos, y
m es una regla semántica que asigna a cada termino lingüístico t su
significado m(t), que es un conjunto difuso en X (J.Garcia, 2009)
4
teniendo en cuenta lo pasado ahora regresemos a nuestro ejemplo como primer
paso para realizar un controlador difuso se deben determinar las variables tanto de
entrada como de salida, teniendo en cuenta que primero deben ser las variables de
salida puesto que basándonos de ellas se plantearan las variables de entrada, en
este ejemplo las variables de salidas son dos la fuerza de golpeo y la altura. Las de
entrada son dos también las cuales son la distancia puesto que con ella entendemos
la distancia que debe viajar la bola que se golpea con el taco para lograr obtener la
carambola, la segunda es reacción, por ella entendemos a lo que hará la bola que
fue golpeada, al tener su primer choque con otra bola. (Hernandez, 2015)
5
En el caso de la distancia se divide en: muy cerca, medio, cerca, medio, lejos y muy
lejos. En cual se puede observar en la siguiente figura 4 Clusterizacion de la
distancia.
Para la variable de altura se divide de la siguiente manera: muy abajo, poco abajo,
centro, poco arriba y muy arriba. En la figura 6 se muestra de una manera gráfica
esta partición.
6
Figura 6 variable de altura
Para saber cómo funciona la parte de fuzificacion se puede observar de una manera
gráfica en la figura 8 la cual se muestra a continuación.
7
Figura 8 Funcionamiento del fuzificador.
Base de conocimiento.
También conocido como reglas de control las cuales es la parte central del
controlador difuso, el cual es el punto de partida para la generación del conjunto de
reglas sobre las que se rige la inferencia. Se describen laos términos usados y se
muestra la base en forma de matriz de asociación difusa.
Para esto es necesario hacer una investigación de campo. Lo cual nos lograr tener
un respaldo adecuado y que el controlador se basara en la mejor información
posible. En este ejemplo se desarrollaron dos bases de conocimientos distintas
puesto que es necesario un controlador para una
En las siguientes figuras se muestran las matrices de cada una de las bases de
conocimiento las cuales están a dirigidas a las variables de altura y fuerza las cuales
son las de salida. En la Tabla 1. base de conocimiento de la altura. En la tabla 2 se
muestra la base de conocimiento de la fuerza.
8
Tabla 1 Base de conocimiento de la altura.
Con estas matrices se puede observar de una manera más sencilla las reglas con
que se cuenta en este ejemplo.
Procesos de inferencia
El proceso de inferencia utilizado tanto en este ejemplo como en el trabajo de esta
práctica es que tiene como nombre mínimo-máximo, también conocido como
Mandami; ya que por sus características es de los métodos más apropiado para
realizar un controlador compilador. El método se basa en lo siguiente:
9
Aplicación de reglas: las pertenecías que existen se aplican sobre la base de las
reglas para saber en qué clúster del espacio de salida se produce el consecuente
de cierta combinación de antecedentes descritos en dichas reglas. Ejemplo:
R1: Si A1 y B2 entonces C3
En general
Regla # Si Xn y Ym entonces Cz
Formación del polígono: Después de aplicar todas las reglas que se cumplen,
podemos tener varios valores de membresía para un mismo clúster del espacio de
salida, si varias reglas heredaron en él. Adicionalmente es necesario formar el
polígono de salida, que refleja el valor de las membresías a lo largo de los clusters
del espacio de salida. Para obtener el producto final del proceso de inferencia se
debe entonces hacer un barrido para cada clúster tomando siempre el máximo valor
de membresía que presente en cualquier regla en la figura 9 se muestra
gráficamente lo estipulado lo pasado.
Donde podemos observar la formación del polígono de salida, así como también
nos da una idea de los puntos anteriores. Donde cada reglón se toma la menor
membresía de los espacios de entrada para heredar al de salida (mínimo). La última
10
columna muestra la integración del polígono de salida, con los máximos de los
mínimos. De esta manera queda conformado el método de inferencia del máximo-
mínimo.
Defusificacion.
Como última parte de los procesos del controlador difuso, se lleva a cabo la
defuzifiacion. En este ejemplo, el método utilizado es el del centroide su elección se
debe a la misma razón que el método de inferencia elegido es decir practicidad para
ser implementado. Es importante mencionar que no por ello se compromete de
ninguna menara su eficiencia ya que estos métodos son también muy confiables. El
proceso de defuzifiacion por centro de área es simple, dado el polígono de salida
por la el proceso de inferencia, simplemente se calcula el centro de gravedad de
figura mediante la siguiente ecuación (1)
11
estas son la partes que conforman a un controlador difuso
Matlab.
MATLAB es un lenguaje de alto desempeño diseñado para realizar cálculos
técnicos. MATLAB integra el cálculo, la visualización y la programación en un
ambiente fácil de utilizar donde los problemas y las soluciones se expresan en una
notación matemática. MATLAB es un sistema interactivo cuyo elemento básico de
datos es el arreglo que no requiere de dimensionamiento previo. Esto permite
resolver muchos problemas computacionales, específicamente aquellos que
involucren vectores y matrices, en un tiempo mucho menor al requerido para escribir
un programa en un lenguaje escalar no interactivo tal como C o Fortran. MATLAB
se utiliza ampliamente en: • Cálculos numéricos • Desarrollo de algoritmos •
Modelado, simulación y prueba de prototipos • Análisis de datos, exploración y
visualización • Graficación de datos con fines científicos o de ingeniería • Desarrollo
de aplicaciones que requieran de una interfaz gráfica de usuario (GUI, Graphical
User Interface). En el ámbito académico y de investigación, es la herramienta
estándar para los cursos introductorios y avanzados de matemáticas, ingeniería e
investigación. En la industria MATLAB es la herramienta usada para el análisis,
investigación y desarrollo de nuevos productos tecnológicos. La ventaja principal de
MATLAB es el uso de familias de comandos de áreas específicas llamadas
toolboxes. Lo más importante para los usuarios de MATLAB es que los toolboxes le
permiten aprender y aplicar la teoría. Los toolboxes son grupos de comandos de
MATLAB (archivos M) que extienden el ambiente de MATLAB para resolver
problemas de áreas específicas de la ciencia e ingeniería. Por ejemplo, existen
toolboxes para las áreas de Procesamiento Digital de Señales, Sistemas de Control,
Redes Neuronales, Lógica Difusa, Wavelets, etc.La ventana de comando. La
ventana de comando es la ventana principal, con la cual el usuario interactúa con
MATLAB. Es la primer ventana que se abre al ejecutar MATLAB. Se utiliza para
correr los comandos, correr el editor de archivos M (MEDIT, presente en la barra de
herramientas), ejecutar los toolboxes, etc. En la figura I.1 se muestra la ventana de
comando de Matlab y algunas otras. Figura I.1 La ventana principal de Matlab; a la
derecha se muestra la ventana. La barra de herramientas proporciona un acceso
12
fácil y rápido a las operaciones más comunes. Al colocar el puntero del ratón sobre
algún botón durante un par de segundos, MATLAB despliega un tooltip, el cual da
el nombre del botón ha seleccionado. (Bautista, 2005)
Simulink
13
SimMechanics o Virtual Reality Toolbox >>mech_conveyor_vr, >>mech_airbag_vr
…). Además algunas toolboxes de MATLAB incorporan también bloques de
SIMULINK. Es el caso, por ejemplo, de la Control Systems Toolbox, Neural Network
Toolbox, Fuzzy Logic Toolbox, System Identification Toolbox… Finalmente, también
existen librerías de bloques que permiten interactuar con tarjetas de adquisición de
dados y DSPs: RealTime Workshop, Embedded Targets for Motorola and TI, xPC
Target. Teclear >>ver en la ventana de comandos de MATLAB para ver qué versión
de SIMULINK y qué blocksets están instaladas (Bautista, 2005)
Procedimiento (descripción)
Equipo necesario
• Equipo de Cómputo
Material de apoyo
• Software Matlab® versión 5 en adelante
Desarrollo de la práctica
Analice el mecanismo de la Figura 12.
14
Figura 12 Mecanismo de posicionamiento de un cartucho de impresora
15
5. Error positivo grande (EPG).
Por otro lado las variables lingüísticas que se tienen para la salida son las
siguientes:
El universo de discurso que se tiene para este caso iría de -20 a 20 que seria el
recorrido del cartucho
c). - Defina los conjuntos difusos (Membresías) que van a estar asociados a cada
variable lingüística de cada variable del controlador. Utilice funciones de membresía
básicas: trapezoidales o triangulares: Abiertas en la izquierda o la derecha, o bien,
cerradas.
16
III.- Elabore una gráfica (En físico o digital) para cada variable en donde incluya los
datos de los pasos a), b) y c) anteriores. Utilice códigos de colores para las funciones
de membresía.
17
IV.- Enuncie las reglas de control.
a). - Si tiene la misma cantidad de términos lingüísticos (TL) para cada variable,
relacione cada término lingüístico de la variable de entrada con un término
lingüístico de la variable de salida mediante una regla de control. Ej. 5 TL de entrada
y 5 TL de salida, 5 reglas de control.
Error Voltaje
ENG VNG
ENP VNP
EC VC
EPP VPP
EPG VPG
18
Figura 16 Ventana principal
Aquí vaciaremos los datos de las variables lingüísticas, los conjuntos difusos
(Membresías) y el universo discurso de cada variable. El universo discurso se
agrega en el apartado Range, la forma de cada membresía se selecciona en Type
, El TL de cada Membresia se inserta en Name.
19
Para el tipo de membresia triangular se elige trimf, la membresia trapesoidal
trapmf, etc. Para agregar y/o borrar membresias, seleccione la pestaña Edit/Add
MFs (Agregar) o Edit/Remove All MFs (Eliminar).
c). - Repita el paso anterior para la sección de su variable de salida, puede cambiar
de secciones seleccionando el recuadro:
20
Figura 19 variables de voltaje
De clic en cerrar cuando haya terminado y regrese a la ventana de FIS Editor figura
16
21
En la figura 21 se muestran las reglas ya editadas.
Al terminar, de clic en cerrar y vuelva a la ventana FIS Editor. Una vez ahí, use la
pestaña View para ver el comportamiento de las reglas y del Sistema de control.
Guarde su control difuso en la pestaña File/Export/To file y File/Export/To
Workspace.
22
En la figura 23 se muestra en comportamiento de las reglas.
Resultados.
1.- En la ventana FIS Editor de su control difuso, abra la ventana de reglas
(View/Rules). Aquí se pueden apreciar Las Reglas y el Método de inferencia.
Describa brevemente los pasos del método de inferencia: Fusificación y
Defusificación (Centroide).
23
Para poder realizar el método de Inferencia en este caso de Mamdani se es
necesario realizar algunos pasos lo cuales son los siguientes:
4. Defuzificación.
1. Fuzificación. El primer paso consiste en tomar los valores crisp de las entradas
(financiacion-del-proyecto y plantilla-del-proyecto) y determinar el grado de
pertenencia de estas entradas a los conjuntos difusos asociados. El valor crisp
naturalmente estará limitado en el universo del discurso de la variable. En nuestro
caso, x e y estarán limitadas al universo del discurso de X e Y respectivamente. En
nuestro caso vamos a suponer que un experto asigna a x un valor del 35 %
(financiacion-proyecto) y a y un valor de 60 % (plantilla-proyecto). Como se puede
ver estos valores Crisp se corresponden con los valores de pertenecia de A1 y A2
(en el caso de x) con 0.5 y 0.2, y con los valores de B1 y B2 (en el caso de y) con
0.1 y 0.7 respectivamente. De este modo cada entrada se fuzzifica sobre todas las
funciones de pertenencia utilizadas en la reglas difusas.
24
preciso, preservando la forma original del conjunto difuso. Se obtiene multiplicando
todos los valores por el valor de verdad del antecedente.
25
2.- Existen más formas de Defusificación, al menos 5. Nómbrelas y describa
brevemente cómo funcionan.
Para poder dar una respuesta a esta indicación se basó en los contenidos de Matlab
por lo que los tipos de defuzzificacion hallados son aquellos que nos servirían para
poder configurar nuestro controlador difuso.
• Centroide.
• Bisectriz.
• Máximo central (MOM).
• Máximo más pequeño (SOM).
• Máximo más grande (LOM).
Centroide.
26
Figura 27 Método centroide.
Bisectriz.
El método bisectriz encuentra la línea vertical que divide el conjunto difuso en dos
subregiones de igual área. A veces, pero no siempre, coincide con la línea centroide.
27
Máximo Central (MOM), Máximo más pequeño (SOM) y Máximo más grande
(LOM).
MOM, SOM y LOM significan central, más pequeño y más grande de máximo,
respectivamente. En este ejemplo, dado que el conjunto difuso agregado tiene una
meseta en su valor máximo, los resultados de defuzzificación MOM, SOM y LOM
tienen valores distintos. Si el conjunto difuso agregado tiene un máximo único,
MOM, SOM y LOM producen el mismo valor.
28
Recuerde agregar un bloque para visualizar la salida del sistema. Concluya
sus observaciones.
Para poder realizar este inciso es necesario realizar el diagrama de bloques por lo
que se construyo de la siguiente manera como se puede observar en la figura 30.
29
En la figura 31 podemos observar que el comportamiento de la oscilación es de un
modo subamortiguada, sin embargo no es de una manera muy oscilante ya que
vasto en 3 movimientos la corrección total del error el cual es el escalón que se
indica al comienzo del diagrama de bloques como se puede observar en la figura
30.
https://youtu.be/ST7xzvk7A04
Conclusión.
La práctica que se realizó de manera simulada, abre una gran puerta hacia lo que
es un tipo de controlador muy importante en nuestros tiempos puesto que no todos
los controladores pueden tener efectos en todos los procesos, es por esto que al
momento de aprender métodos nuevos y distintos uno de cada uno, se tiene mayor
capacidad para poder dar un resultado concreto y mejor justificado ya que se tendrá
que observar desde diferentes perspectivas para de este modo encontrar la más
sencilla pero a la vez será la más eficiente, cumpliendo así con los requerimientos
de necesarios para poder darle una respuesta que solucione el respectivo problema.
Matlab es un software algo avanzado sin embargo en este tema de lógica difusa se
presta a ser sencillo y amigable con principiantes puesto que los comandos
utilizados no son de un grado muy elevado en cuanto a programación y los
requisitos para poder formular tal controlador no son especiales o de alta
comprensión por lo que el ambiente de interfaz hacia el usuario tiende a ser
amigable y es una gran ayuda, para de este modo poder generar lo que se pide en
la práctica ya realizada.
30
forma muy sencilla y bastante productiva puesto que los resultados que s se suelen
obtener son muy importantes.
Bibliografía
Bautista, R. (2005). Matlab y el diseño de flitros digitales. Ciudad de Mexico:
investigacion y educacion.
31