Esempio di regolazione temperatura
Consideriamo a questo punto un semplice caso di regolazione di temperatura (T) in cui x1=T e x2=
dT/dt sono i due ingressi dell'algoritmo fuzzy; siano ad esempio, T=10% (del suo fondoscala) e
dT/dt=20% i valori crisp di tali ingressi. Siano poi, per semplicità, solo due le classi fuzzy per le
quali tali valori "intercettano" gradi di appartenenza non nulli; siano esse rappresentate dai seguenti
vettori (ossia dalle seguenti membership function discrete).
Membership di partenza per T
A1 = Low = [1, 0.8, 0.6, 0.4, 0.2, 0, 0, 0, 0, 0, 0]
A2 = High= [0, 0.2, 0.4, 0.6, 0.8, 1, 0.8, 0.6, 0.4, 0.2, 0]
Membership di partenza per dT/dt
B1 = Zero = [1, 0.8, 0.6, 0.4, 0.2, 0, 0, 0, 0, 0, 0]
B2 = PS = [0, 0.2, 0.4, 0.6, 0.8, 1, 0.8, 0.6, 0.4, 0.2, 0]
Essendo x1=10 ed x2=20, si ottiene
μA1(x1)=0.8
μA2(x1)=0.2
μB1(x2)=0.6
μB2(x2)=0.4
Ora si troncano le membership functions di appartenenza in base a questi valori.
Si ottengono quindi le seguenti quattro membership functions che rappresentano appunto gli
ingressi fuzzificati.
Fuzzificazione degli input
Applicazione delle regole
Il cuore del ragionamento fuzzy è costituito da una serie di proposizioni del tipo IF [situazione]
THEN [azione] che codificano il valore che deve avere l'uscita (y) dell'algoritmo a fronte di una
certa combinazione dei suoi ingressi. Tali enunciati vengono detti regole ed il loro insieme, che
costituisce la base delle regole, rappresenta la codifica di tutte le conoscenze che abbiamo sul
comportamento del sistema.
L'antecedente può essere composto da combinazioni logiche di diversi enunciati fuzzy. Ad esempio,
come è frequente nel caso del controllo, l'antecedente può essere espresso come AND di due verità
fuzzy, ovvero "x1 is A1 AND x2 is B1". Una regola può dunque presentarsi nella forma:
IF [x1 is A1 AND x2 is B1] THEN [y is C1]
La prima parte: x1 is A1 oppure x2 is B1 implica la fuzzificazione degli ingressi crisp già vista. Data
la presenza dell'operatore AND, si applica alle due membership function di ingresso l'omonimo
operatore.
Per comprendere ora come funziona l'applicazione dell'operatore di inferenza if-then, e per vedere
l'applicazione dell'operatore AND tra le membership di ingresso proseguiamo l'analisi del nostro
algoritmo di regolazione della temperatura.
Sia una semplice elettrovalvola (EV) l'attuatore attraverso il quale intendiamo effettuare l'azione di
controllo e siano definite per esso soltanto i due stati fuzzy di aperta (OPen) e chiusa (Closed).
Siano definite per semplicità, soltanto le due seguenti regole:
IF [T is LO AND dT/dt is ZO] THEN [EV is OP]
IF [T is HI AND dT/dt is PS] THEN [EV is CL]
Tali regole esprimono la necessità di tenere aperta la valvola quando la temperatura è bassa e la sua
tendenza è stazionaria mentre suggeriscono di chiuderla se la temperatura è elevata e la sua
tendenza è quella di crescere ancora.
Si nota come in entrambe le regole gli antecedenti siano costituiti dall'AND di due enunciati fuzzy.
Occorre pertanto elaborare il risultato di tale operazione logica (fuzzy). Come visto al capitolo sugli
operatori l'AND può essere definito attraverso l'operatore di "minimo". A questo punto è possibile
"intersecare" un insieme con l'altro per ottenere, tenendo il minore tra i due valori, il risultato
dell'operazione AND. L'esito è rappresentato dalle figure seguenti.
Membership di ingresso alle regole
Per determinare la forma della membership dell'uscita occorre ora applicare l'operatore di
implicazione.
Quest'operatore serve per ottenere in uscita una membership function per ciascuna delle variabili di
uscita come nel nostro caso la apertura della elettrovalvola. Si tratta cioè di considerare per ogni
regola il minimo (più in generale l'AND) tra la membership function risultata dagli antecedenti e la
specifica membership function della variabile di uscita. Ciascuna delle membership relativa alla
variabile di uscita, ottenuta da ogni regola, viene poi messa in OR (che solitamente significa trovare
il massimo) con le altre per ottenere l'unica membership della variabile d'uscita.
Nella letteratura fuzzy si possono distinguere due diversi approcci alle regole, in base alla natura del
conseguente.
Secondo il tradizionale approccio alla Mamdani (1976) (trattato fino ad ora) anche l'uscita
dell'algoritmo è fuzzy mentre secondo quello associato ai nomi di Sugeno e Takagi, (1985) esso è
un valore deterministico (ad esempio una fissata percentuale di apertura della valvola).
Consideriamo il tradizionale approccio alla Mandani e supponiamo che per la valvola le due
semplici membership fuzzy di aperta e chiusa siano definite come nella figura seguente.
Membership della ElettroValvola
L'intersezione del primo antecedente con il conseguente OP dà come risultato la membership
seguente.
Membership di uscita della prima regola
L'intersezione del secondo antecedente con il conseguente CL dà invece come risultato la
membership seguente:
Membership di uscita della seconda regola
Considerando il massimo tra i valori delle due ultime membership function si ottiene così il risultato
dell'applicazione delle regole:
Membership di uscita della ElettroValvola
EV = [0.6, 0.6, 0.6, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0]
E' da notare infine che tra tutte le regole scritte quelle che vengono effettivamente applicate sono
solo quelle che presentano la membership function degli ingressi fuzzificati non identicamente
nulla.
Ora dato che comunque all'elettrovalvola va applicata una tensione "crisp", questa Membership di
uscita andra' defuzzificata; esistono vari algoritmi di defuzzificazione, per cui si rimanda al relativo
paragrafo.
Scarica

Esempio di regolazione temperatura