View
949
Download
1
Category
Preview:
Citation preview
M. Sc. Ing. José C. Benítez P.
Sistemas Difusos
Inteligencia Artificial(WOI9)
Laboratorio: 8
� Objetivo
� Fundamento teórico: Los sistemas difusos.
� Laboratorio: Sistemas Difuso con MatLab.
� Informe de Laboratorio.
Sistemas Difusos
2
Objetivos
� Revisar los conceptos de los sistemas basados en lógica
difusa comúnmente llamados sistemas difusos.
� Desarrollar de un control difuso mediante el Toolbox de
MatLab.
� Fortalecer su competencia redactora del alumno mediante la
redacción del informe de laboratorio con el desarrollo y
preguntas del laboratorio.
3
Sistema difuso con MatLab
4
EJEMPLO: Modelar un SdCbLB con MatLab:
Se desea implementar una lavadora con un sistema difuso. En tal
sentido se ha propuesto un sistema de control difuso con las
siguientes características:
- Entradas: Peso y Nivel de suciedad.
- Salida: Cantidad de Detergente.
--------------------------------------------------------------------------
Se define las Reglas Difusas para el nivel de detergente:
Cantidad de Detergente
Sistema difuso con MatLab
5
Se define los Conjuntos Difusos para cada variable difusa:
Peso Suciedad
Cantidad de
detergente:
Sistema difuso con MatLab
6
Usando el Toolbox de MatLab:
1. Ingrese al MatLab
2. Escriba Fuzzy en el Command Window
Figura 1:
Interfaz Grafica
de Lógica Difusa
para MatLab
Ingresando al Toolbox de Sistemas Difusos de MatLab
Sistema difuso con MatLab
7
Usando el Toolbox de MatLab:
3. Si desea Adicionar una entrada o
salida en el sistema, seleccionamos
Edit > Add variable > Input/Output.
Figura 2:
Adicionar una
entrada al sistema
difuso
Agregando una entrada/salida difusa al Sistema Difuso
Sistema difuso con MatLab
8
Usando el Toolbox de MatLab:
4. Para nuestro sistema debemos
adicionar una entrada mas
(input2).
Figura 3:
Sistema Difuso
con 2 entradas.
Sistema difuso con MatLab
9
Usando el Toolbox de MatLab:
Cambio de nombre de las variables difusas
5. Procedemos a cambiar los nombres de
las variables de entrada. En la figura 3
seleccionamos input1 y lo cambiamos
por Peso; seleccionamos input2 y lo
cambiamos por nivel de suciedad.
Finalmente seleccionamos output1 por
cantidad de detergente.
Guardar el sistema difuso
6. Para guardar como “Lavadora ”el
sistema difuso (archivo) seleccionamos
File > Export > To fileFigura 4:
Guardar
archivo de
trabajo
Sistema difuso con Matlab
10
Usando el Toolbox de MatLab:
7. A continuación debemos especificar
las funciones de pertenecía de los
conjuntos .
8. Seleccionamos Edit > Membership
Functions (Ctrl+2)
Figura 5:
Modificar los
parámetros de
las funciones de
pertenencia.
Sistema difuso con Matlab
11
Usando el Toolbox de MatLab:
9. En la figura se muestra las
funciones de pertenencia para
cada uno de los conjuntos
difusos.
10. Hacer click sobre una variable
difusa para seleccionar y editar
sus valores (queda bordeado de
rojo y con línea roja).
11. De manera demostrativa se
realizara la implementación de la
primera variable Peso.
Figura 6:
Funciones
membership
de la variable
Peso.
Sistema difuso con Matlab
12
Usando el Toolbox de MatLab:
Modificando los valores de una
variable difusa
10. Según datos del problema la
variable peso posee un rango de
[0-10], para obtener este rango
modificamos en el campo Range
el intervalo de [0-1] a [0-10].
Agregando funciones de pertenencia
de la variable difusa
11. Seleccionamos Edit > Add Custom
MF. Se debe agregar tantas
funciones de pertenencia como
hagan falta para definir la variable
difusa.
Figura 7:
Adicionar las
funciones de
pertenencia.
Sistema difuso con Matlab
13
Usando el Toolbox de MatLab:
11. En el campo MF name reemplazamos
mf1 por Liviano, para evitar
confusiones. En el siguiente paso
cambiaremos todos los nombres de
acuerdo a nuestro problema.
Figura 8: Cambio de
nombre la función
de pertenencia de
una variable difusa.
Sistema difuso con MatLab
14
Usando el Toolbox de MatLab:
Condiciones del problema
12.La variable peso está definida por cuatro funciones de
pertenencia como se describen a continuación:
• Liviano: Función trapecio truncado. Constante de [1-2] y
decreciente en forma lineal de [2-3].
• Regular: Función triangular de [2-6] con un cenit en 4.
• Pesado: Función triangular de [4-8] con un cenit en 6.
• Muy pesado: Función trapecio truncado. Constante de
[8-10] y creciente en forma lineal de [7-8].
Sistema difuso con MatLab
15
Usando el Toolbox de MatLab:
13. Para completar las cuatro funciones de pertenencia para la variable peso,
ingresamos al sistema los valores que se presentan en la siguiente tabla 1.
Tabla 1: Valores para las funciones de pertenencia de la variable Peso.
Peso:
• Liviano: FdP: trapecio truncado (trapmf). Constante de [0-2] y
decreciente en forma lineal de [2-3]. P: [-3 0 2 3]
• Regular: FdP: triangular (trimf) de [2-6] con un cenit en 4. P: [2 4 6]
• Pesado: FdP: triangular (trimf) de [4-8] con un cenit en 6. P: [4 6 8]
• Muy pesado: FdP: trapecio truncado (trapmf). Constante de [8-10] y
creciente en forma lineal de [7-8]. P: [7 8 10 12]
Sistema difuso con MatLab
16
Usando el Toolbox de MatLab:
14. Luego de completar las cuatro funciones de pertenencia se podrá visualizar la
siguiente pantalla tal como describe la figura.
Figura 9:
Definición de la
variable difusa
peso mediante
cuatro
funciones de
pertenencia.
Sistema difuso con Matlab
17
Usando el Toolbox de MatLab:
15. De la misma manera la variable de entrada Nivel de suciedad y la variable de salida
Cantidad de Detergente debe ser llenado.
Figura 10: Sistema Difuso con 2 entradas.
Nivel de suciedad:
• Poco sucio: FdP: triangular (trimf) de
[-2 2] con un cenit en 0. P: [-2 0 2]
• Sucio: FdP: trapecio truncado
(trapmf). Constante de [3 5],
creciente lineal en [1 3]. y decreciente
lineal en [5 7]. P: [1 3 5 7]
• Muy Sucio: FdP: triangular (trimf) de
[6 14] con un cenit en 10. P: [6 10 14]
Sistema difuso con Matlab
18
Usando el Toolbox de MatLab:
15. De la misma manera la variable de entrada Nivel de suciedad y la variable de salida
Cantidad de Detergente debe ser llenado.
Figura 10: Sistema Difuso con 2 entradas.
Cantidad de Detergente:
• Bajo: FdP: triangular
(trimf) de [-3 3] con un
cenit en 0. P: [-3 0 3]
• Medio: FdP: triangular
(trimf) de [2 8] con un
cenit en 5. P: [2 5 8]
• Alto: FdP: triangular
(trimf) de [7 13] con un
cenit en 10. P: [7 10 13]
Sistema difuso con Matlab
19
Usando el Toolbox de MatLab:
16. Para adicionar las reglas difusas seleccionamos Edit > Rules (Ctrl+3).
Figura 10:
Agregando
reglas difusas.
Sistema difuso con Matlab
20
Usando el Toolbox de MatLab:
17. Aparecerá la siguiente
pantalla que se muestra
en la figura.
Figura 11:
Editor de
reglas
difusas.
Sistema difuso con Matlab
21
Usando el Toolbox de MatLab:
18. En la ventana del editor de reglas, se pueden editar reglas basándose en reglas if then
combinando las entradas con not, and y or. Para adicionar una regla se debe seleccionar
las opciones que presentan las entradas y la salida e ingresar la regla deseada para
finalmente presionar Add rule.
Ejemplo. Si el Peso es Liviano y el Nivel de Suciedad es PocoSucio entonces la
cantidad de detergente será bajo.
Sistema difuso con MatLab
22
Usando el Toolbox de MatLab:19. De esta manera todas las reglas difusas deben se ingresadas al sistema difuso.
Sistema difuso con Matlab
23
Usando el Toolbox de MatLab:
20. Para analizar nuestro sistema difuso para diferentes valores de entrada seleccionamos
View > Rules automáticamente se mostrará la salida del sistema para diferentes
entradas.
Resultado:
Para unas entradas de:
Peso = 5
Nivel de Suciedad = 5
La salida será:
Cantidad de detergente = 5
Sistema difuso con MatLab
24
Usando el Toolbox de MatLab:
Modificando los entradas (input): [2 2 ] para obtener una nueva salida.
Resultado:
Para unas entradas de:
Peso = 2
Nivel de Suciedad = 2
La salida será:
Cantidad de detergente = 5
Sistema difuso con MatLab
25
Usando el Toolbox de MatLab:
Se puede mover las líneas rojas verticales para obtener resultados “online” analógicos.
Resultado:
Para unas entradas de:
Peso = 7.75
Nivel de Suciedad = 3.14
La salida será:
Cantidad de detergente = 7.69
Laboratorio
26
Implementar un sistema difuso (SdCbLD – Sistema de Control basado en
Lógica Difusa) para el control automático de:
1. Frenado de un automóvil. Considerar las variables de entrada presión y
radio.
2. Un ventilador en una sala de conferencias. Considerar las variables de
entrada temperatura, área y número de personas.
3. Un ascensor de un edificio. Considerar las variables de entradas que
estime pertinentes.
4. Encendido de un motor del discovery. Considerar las variables de
entradas que estime pertinentes.
En cada una de los sistemas:
a. Diseñar sus reglas difusas.
b. Diseñar las funciones de pertenencia (tipos y rango).
c. Comprobar su sistema con el toolbox de MatLab.
Informe de Laboratorio
27
Es un documento gráfico en lo posible y es redactado en Word con el
desarrollo de éste laboratorio.
Niveles de Informe:
� Primer nivel: Observaciones y comentarios. Imágenes con
observaciones y comentarios cortos. Redactar al ir desarrollando el
laboratorio. (Requiere desarrollar el laboratorio).
� Segundo nivel: Conclusiones. Redactar al terminar el
laboratorio.(Requiere haber desarrollado el laboratorio).
� Tercer Nivel: Recomendaciones. (Requiere lectura de otras fuentes).
Presentación:
� Adjuntar en esta carpeta:
� Los archivos “*.fig” y “*.m” utilizados.� El Informe de Laboratorio 8.
� Las fuentes deben conservar el nombre original de archivo y se debe
agregar _L8 al final.
� Dentro de su Carpeta Personal del Dropbox crear una carpeta para el
Laboratorio 8 con el siguiente nombre: IA_PaternoM_Lab8
Laboratorio 9. Sistemas Difusos
Blog del curso:
utpsirn.blogspot.com28
Recommended