Controllo Fuzzy · Esempio Pratico

Esempio Pratico: Controllo Fuzzy della Temperatura

Dal problema reale al modello fuzzy, pronto da tradurre in Python.

Torna all'indice generale

Lo scenario

Vogliamo controllare la temperatura di una stanza regolando la potenza di un riscaldatore. Invece di usare una logica rigida, utilizziamo un sistema fuzzy per avere un comportamento più morbido e realistico.

Definizione delle variabili linguistiche

Ingresso: temperatura

Valori in °C con etichette fuzzy:

  • Fredda
  • Confortevole
  • Calda

Uscita: potenza_riscaldatore

Valori percentuali con etichette fuzzy:

  • Bassa
  • Media
  • Alta

Definizione delle regole fuzzy

Possiamo definire alcune regole linguistiche intuitive:

  • SE temperatura è fredda ALLORA potenza_riscaldatore è alta.
  • SE temperatura è confortevole ALLORA potenza_riscaldatore è media.
  • SE temperatura è calda ALLORA potenza_riscaldatore è bassa.

Queste regole possono essere raffinate aggiungendo condizioni su umidità, presenza persone, orario del giorno, ecc., mostrando la flessibilità dei sistemi fuzzy.

Inferenza e defuzzificazione

Per una temperatura misurata, calcoliamo il grado di appartenenza alle etichette (fredda, confortevole, calda) e applichiamo le regole per ottenere un'uscita fuzzy per potenza_riscaldatore.

Con la defuzzificazione (ad esempio metodo del baricentro) otteniamo un valore numerico unico di potenza da applicare al riscaldatore.

Implementazione in Python

In Python possiamo:

  • Definire le funzioni di appartenenza come funzioni Python o usando librerie dedicate.
  • Scrivere una funzione di inferenza che applica le regole fuzzy.
  • Implementare un metodo di defuzzificazione e visualizzare i risultati.

Questa pagina può essere collegata a un notebook o a un repository con il codice completo, pubblicato su fuzzypython.org.