UD02 · Taller 1 — Control difuso con scikit-fuzzy¶
Objetivo: construir un sistema de control difuso tipo Mamdani que decida la velocidad de un ventilador según la temperatura y la humedad de una sala.
Fase 1 — Importa las librerías y define los universos¶
Define tres variables: temperatura (0-40), humedad (0-100) y velocidad (0-100).
In [1]:
Copied!
%pip install scikit-fuzzy
import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl
# TU CÓDIGO: define los tres Antecedent/Consequent (temperatura 0-40, humedad 0-100, velocidad 0-100)
temperatura = ...
humedad = ...
velocidad = ...
%pip install scikit-fuzzy import numpy as np import skfuzzy as fuzz from skfuzzy import control as ctrl # TU CÓDIGO: define los tres Antecedent/Consequent (temperatura 0-40, humedad 0-100, velocidad 0-100) temperatura = ... humedad = ... velocidad = ...
Fase 2 — Funciones de pertenencia¶
Define:
temperatura:fresca(triangular, 0-0-18),agradable(triangular, 15-22-28),caliente(trapezoidal, 24-30-40-40).humedad:seca(triangular, 0-0-45),media(triangular, 35-55-75),humeda(trapezoidal, 60-75-100-100).velocidad:baja(triangular, 0-0-40),media(triangular, 25-50-75),alta(triangular, 60-100-100).
In [1]:
Copied!
# TU CÓDIGO: funciones de pertenencia de las tres variables
...
# TU CÓDIGO: funciones de pertenencia de las tres variables ...
Fase 3 — Reglas IF-THEN¶
Escribe estas tres reglas:
- SI
temperaturaesfrescaYhumedadessecaENTONCESvelocidadesbaja. - SI
temperaturaesagradableYhumedadesmediaENTONCESvelocidadesmedia. - SI
temperaturaescalienteOhumedadeshumedaENTONCESvelocidadesalta.
In [1]:
Copied!
# TU CÓDIGO
r1 = ...
r2 = ...
r3 = ...
# TU CÓDIGO r1 = ... r2 = ... r3 = ...
Fase 4 — Sistema y simulación¶
Monta el ControlSystem con las tres reglas y simula con (temperatura=20, humedad=50) y con (temperatura=33, humedad=85). Imprime la velocidad resultante en cada caso.
In [1]:
Copied!
# TU CÓDIGO
sistema = ...
sim = ...
print(...)
# TU CÓDIGO sistema = ... sim = ... print(...)
Fase 5 — Visualiza las funciones de pertenencia¶
In [1]:
Copied!
# TU CÓDIGO
velocidad.view()
# TU CÓDIGO velocidad.view()
Fase 6 — Experimento¶
Calcula la velocidad para estas cuatro combinaciones y anota si te parece un resultado coherente:
| Temperatura | Humedad | Velocidad (%) | ¿Coherente? |
|---|---|---|---|
| 10 | 30 | ||
| 25 | 50 | ||
| 38 | 90 | ||
| 18 | 80 |
In [1]:
Copied!
# TU CÓDIGO: calcula la velocidad para las 4 combinaciones de la tabla anterior
...
# TU CÓDIGO: calcula la velocidad para las 4 combinaciones de la tabla anterior ...
✏️ Respuesta: copia la tabla de la Fase 6 aquí ya completada, y comenta si algún resultado te sorprende y por qué.
(escribe aquí)