utp ia sl8_sistemas difusos

28
M. Sc. Ing. José C. Benítez P. Sistemas Difusos Inteligencia Artificial (WOI9) Laboratorio: 8

Upload: c09271

Post on 24-Jun-2015

961 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Utp ia sl8_sistemas difusos

M. Sc. Ing. José C. Benítez P.

Sistemas Difusos

Inteligencia Artificial(WOI9)

Laboratorio: 8

Page 2: Utp ia sl8_sistemas difusos

� Objetivo

� Fundamento teórico: Los sistemas difusos.

� Laboratorio: Sistemas Difuso con MatLab.

� Informe de Laboratorio.

Sistemas Difusos

2

Page 3: Utp ia sl8_sistemas difusos

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

Page 4: Utp ia sl8_sistemas difusos

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

Page 5: Utp ia sl8_sistemas difusos

Sistema difuso con MatLab

5

Se define los Conjuntos Difusos para cada variable difusa:

Peso Suciedad

Cantidad de

detergente:

Page 6: Utp ia sl8_sistemas difusos

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

Page 7: Utp ia sl8_sistemas difusos

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

Page 8: Utp ia sl8_sistemas difusos

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.

Page 9: Utp ia sl8_sistemas difusos

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

Page 10: Utp ia sl8_sistemas difusos

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.

Page 11: Utp ia sl8_sistemas difusos

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.

Page 12: Utp ia sl8_sistemas difusos

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.

Page 13: Utp ia sl8_sistemas difusos

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.

Page 14: Utp ia sl8_sistemas difusos

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

Page 15: Utp ia sl8_sistemas difusos

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]

Page 16: Utp ia sl8_sistemas difusos

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.

Page 17: Utp ia sl8_sistemas difusos

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]

Page 18: Utp ia sl8_sistemas difusos

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]

Page 19: Utp ia sl8_sistemas difusos

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.

Page 20: Utp ia sl8_sistemas difusos

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.

Page 21: Utp ia sl8_sistemas difusos

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.

Page 22: Utp ia sl8_sistemas difusos

Sistema difuso con MatLab

22

Usando el Toolbox de MatLab:19. De esta manera todas las reglas difusas deben se ingresadas al sistema difuso.

Page 23: Utp ia sl8_sistemas difusos

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

Page 24: Utp ia sl8_sistemas difusos

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

Page 25: Utp ia sl8_sistemas difusos

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

Page 26: Utp ia sl8_sistemas difusos

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.

Page 27: Utp ia sl8_sistemas difusos

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

Page 28: Utp ia sl8_sistemas difusos

Laboratorio 9. Sistemas Difusos

Blog del curso:

utpsirn.blogspot.com28