Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy...

14
Fuzzy-tool Renato Mainetti

Transcript of Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy...

Page 1: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Fuzzy-tool

Renato Mainetti

Page 2: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Fuzzy Toolbox

Grafi e Fuzzy Toolbox - Lezione 5 2

Fuzzy Logic Toolbox™ fornisce funzioni, applicazioni e un blocco Simulink per progettare, implementare e testare un sistema basato sulla logica fuzzy.

Questo toolbox ci permette di modellare sistemi complessi, usando delle semplici regole logiche che vanno poi inserite nel Sistema di inferenza fuzzy.

Questo toolbox può essere usato in modalità stand alone, è possibile costruire un’app ed infine è anche possibile realizzare un blocco Simulink per utilizzarlo in una simulazione di processo dinamico.

Page 3: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Quanta mancia dare al cameriere ?

Grafi e Fuzzy Toolbox - Lezione 5 3

Page 4: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Definiamo il problema:

Grafi e Fuzzy Toolbox - Lezione 5 4

Abbiamo cenato al ristorante, prima di andare via vogliamo lasciare una mancia al cameriere ma non sappiamo quanto lasciare. Proviamo a basarci su queste due considerazioni:

• La qualità del cibo• Da 0 = pessimo• A 10 = paradisiaco

• La qualità del servizio• Da 0 = film horror• A 10 = impeccabile

Page 5: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Componenti sistema Fuzzy:

Grafi e Fuzzy Toolbox - Lezione 5 5

• Cibo• servizio

• Mancia

FAM – regole di decisione

Page 6: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Avviamo il fuzzy-toolbox

Dopo aver aperto matlab digitiamo nella riga di comando: fuzzy

seguito dal tasto invio.

Se durante l’installazione di matlab abbiamo selezionato il fuzzy-toolbox come componente aggiuntivo da installare, si dovrebbe aprire questa finestra:

Grafi e Fuzzy Toolbox - Lezione 5 6

In questa finestra possiamo notare :

• La variabile di input chiamata «input1»• La FAM chiamata «untitled»• La variabile di output chiamata «output1»

Page 7: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Modifichiamo gli elementi del sistema fuzzy:

Eseguendo doppio click su un oggetto tra quelli citati si apre una nuova finestra che ne permette la modifica.

Per esempio:

doppio click su input1 aprirà una nuova finestra, dal titolo Membership functioneditor, che ci permetterà di modificare l’input input0.

Grafi e Fuzzy Toolbox - Lezione 5 7

Page 8: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Configurazione input:

Per il nostro progetto ci servono due variabili di input: cibo e servizio.

Iniziamo a utilizzare quella di default input0 come variabile associata alla qualità del cibo.

Grafi e Fuzzy Toolbox - Lezione 5 8

Modifica del nome:

Selezioniamo con un click la variabile di input (giallo) poi modifichiamo il suo nome nel parametri «Name» evidenziato con cerchio rosso.Chiamiamo questa variabile: «Cibo»

Page 9: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Configurazione input:

Con un doppio click sulla variabile che ora si chiama cibo andiamo a modificarne i parametri.

Grafi e Fuzzy Toolbox - Lezione 5 9

Partiamo dal valore Range generico per tutte le membership function.Impostiamo un range: [0 10] tra zero e 10 (il valore della votazione)

Modifica nome membership function:Selezioniamo la prima delle tre funzioni e modifichiamo il nome in: «pessimo»

E cambiamo Params in [-4 0 4]

Modifichiamo poi anche gli altri due nomi con: «normale» e «paradisiaco»E i valori: Normale: [2 5 8]Paradisiaco: [6 10 14]

Page 10: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Configurazione input:

Terminiamo la configurazione dell’input creando una nuova variabile di input. Per crearne una nuova cliccare su:

Grafi e Fuzzy Toolbox - Lezione 5 10

Edit -> Add Variable -> Input

Provate ora a compilarla voi…E compilare successivamente anche la variabile di output:La mancia può variare tra lo 0 e il 25 %

Page 11: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

FAM – Regole:• Dopo aver sistemato la parte di input-output

(fuzzyficazione - defuzzyficazione)

Da esperti del sistema scegliamo le regole che verranno poi valutate per calcolare la % di mancia da lasciare:

• Se il cibo è «pessimo» e il servizio è «Horror» allora mancia «bassa»

• Se il cibo è «pessimo» e il servizio è «impeccabile» allora mancia «bassa»

• Etc etc (provate a inserire voi le regole più appropriate)

Grafi e Fuzzy Toolbox - Lezione 5 11

Page 12: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Inseriamo le regole nella FAM:

Doppio click sul componente FAM centrale.

Per aggiungere una nuova regola selezionare la qualità del cibo e la qualità del servizio.

Scegliere il tipo di connessione tra «or» o «and»

Scegliere % mancia e quando pronti premere il tasto «add rule». La regola viene inserita nella FAM, verrà quindi valutata in fase di esecuzione della decisione.

Grafi e Fuzzy Toolbox - Lezione 5 12

Page 13: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Vediamo i risultati:

Grafi e Fuzzy Toolbox - Lezione 5 14

View -> Surface View -> Rules

Page 14: Introduzione a Matlab - unimi.itmainetti.di.unimi.it/teaching/ailab/lessons/L5/L5.pdfGrafi e Fuzzy Toolbox - Lezione 5 3 Definiamo il problema: Grafi e Fuzzy Toolbox - Lezione 5 4

Fuzzy e Simulink

• Creiamo un semplice controllore di un condizionatore

Grafi e Fuzzy Toolbox - Lezione 5 15

Files[ fuzzy: clima.fis, Simulink: clima.fsx]