Sei sulla pagina 1di 19

Azionamenti Elettrici I – 2000 M.

Zigliotto

La logica Fuzzy

3.1 - Introduzione

Queste brevi note vanno considerate come una presentazione, nelle sue linee essenziali, della teoria degli
insiemi sfumati (Fuzzy Set Theory) ed, in particolare, delle sue applicazioni nel campo degli azionamenti,
attraverso i controllori a logica sfumata (Fuzzy Logic Controllers , FLC).
La moderna teoria dei controlli automatici è sempre stata applicata con buoni risultati a problemi ben
definiti, a sistemi conosciuti in maniera esauriente sotto i loro diversi aspetti. Tuttavia, vi sono casi in cui può
risultare conveniente un approccio diverso al problema del controllo non lineare, ad esempio quando:

• il sistema non è noto con precisione


• vi sono notevoli variazioni parametriche
• la molteplicità degli obiettivi da raggiungere comporta una difficoltà di decisione.

La Fuzzy Logic si basa sulla Fuzzy Set Theory, che è stata introdotta nelle sue linee essenziali in una
pubblicazione del 1965 da Lofti A.Zadeh, che ne è l'ideatore, ed è stata poi formalizzata dallo stesso in
maniera definitiva nel 1973. Tra le molte definizioni che è possibile citare, la più efficace è forse la seguente:

La fuzzy logic è un mezzo a volte conveniente


per mappare uno spazio d'ingresso in uno d'uscita.

Questo è il punto di partenza per qualsiasi altra considerazione, e grande enfasi deve essere posta
sull'aggettivo "conveniente". Che cosa si intende per "mappare" uno spazio d'ingresso in uno spazio d'uscita
? Può essere descritto con un esempio: se l'ingresso è "quanto buono è stato il servizio al ristorante", l'uscita
potrebbe essere "qual'è la mancia più opportuna". Oppure: se l'ingresso è "quanto calda si desidera l'acqua",
l'uscita può essere "la posizione adatta della valvola miscelatrice"; e così via. Nella pratica di ogni giorno ci
sono centinaia di esempi di questo tipo, e questo è intrinseco nella prodigiosa capacità del cervello umano di
non essere "binario", "tutto o niente", bensì capace di agire e reagire anche in presenza di situazioni confuse,
con informazioni lacunose, spesso aiutato da quel "buon senso" che normalmente manca alle apparecchiature
elettroniche.

Ecco, schematicamente, una serie di vantaggi della logica fuzzy (FL):

• è concettualmente facile da comprendere


• è flessibile e riesce a manipolare dati imprecisi
• riesce a riprodurre funzioni di arbitraria complessità
• permette di utilizzare e manipolare l'esperienza di operatori umani
• può essere combinata con altre tecniche di controllo
• è basata su un linguaggio naturale.

L'ultimo vantaggio è notevole, se si tiene conto che un linguaggio naturale viene usato dalla gente
comune ogni giorno, ed è stato affinato da migliaia d'anni di storia dell'uomo per risultare conveniente ed
efficiente. Frasi scritte in linguaggio naturale rappresentano spesso un capolavoro di comunicazione, perché
sono "tagliate" ad hoc per la situazione. Quando chiediamo quanto manca per arrivare in vetta dopo una
camminata, non pretendiamo, ne ci aspettiamo una risposta precisa al microsecondo, che sarebbe di sicuro
inesatta perché influenzata da molti fattori, non ultimo la velocità alla quale procediamo e la nostra capacità
di mantenerla costante. Ma ci basta un "poco, dieci minuti" per rincuorarci, anche se l'informazione non può
essere precisa; la precisione dipende dalla circostanza, ed ecco che creare un modello matematico completo
che rispondesse con esattezza al medesimo quesito sarebbe oneroso e per certi versi inutilmente accurato.

1
Azionamenti Elettrici I – 2000 M.Zigliotto

Occorre evidenziare che la logica fuzzy non è il rimedio ad ogni complicazione, nè la soluzione ad ogni
problema. Essa non va sicuramente usata ad esempio quando:

• il controllore esistente funzioni già egregiamente;


• esista una soluzione convenzionale più semplice;
• il sistema sia lineare, o esista un suo preciso modello matematico ;
• il sistema sia ignoto, un "black box" non identificato

e in molti casi ancora. Dunque, è opportuno effettuare sempre un'analisi critica prima di passare al progetto,
come del resto si farebbe per qualunque altro tipo di controllore convenzionale.

Una delle prerogative più interessanti e di recente esplorate della logica fuzzy è relativa alla possibilità di
convertire, suo tramite, elementi di esperienza umana in algoritmi numerici; ne risultano procedure
automatiche o semiautomatiche dotate di esperienza artificiale. E' il primo passo verso l'intelligenza
artificiale, da cui però le tecniche fuzzy si discostano sia per i metodi che per gli obiettivi. D'altra parte, la
formalizzazione di conoscenze empiriche particolarmente preziose costituisce il nodo fondamentale dei
Sistemi Esperti. Un sistema esperto risulta costituito da un insieme di programmi in grado di risolvere
autonomamente problemi (anche complessi) appartenenti ad uno specifico campo senza che il
programmatore abbia esplicitamente considerato e previsto tutte le possibili varianti dei problemi stessi,
riconducendo situazioni anomale a situazioni note. Fondamentalmente, un sistema esperto è costituito da:

• una base di conoscenza relativa al dominio dei problemi da trattare;


• un meccanismo deduttivo, detto motore inferenziale, che consente di trarre conseguenze coerenti con le
premesse ed i dati del problema
• un modulo di spiegazione che espone il percorso seguito dal sistema per arrivare alle sue conclusioni.

I sistemi basati sulla logica fuzzy (FKBS, Fuzzy Knowledge Based System) sono assai simili a dei sistemi
esperti, rispecchiandone la disposizione strutturale e la sequenza logica di azione. Il loro comportamento
viene descritto tramite regole linguistiche, del tipo

If <situazione antecedente> then <azione conseguente>

Ad esempio, ritornando al "problema della mancia", una regola potrebbe essere

Se <il servizio è eccellente e il cibo è delizioso> allora <la mancia è generosa>.

Tramite regole di questo tipo si formalizza quanto è noto, in maniera più o meno precisa, sul sistema; si
ottiene la base della conoscenza (knowledge base) che, assieme al motore inferenziale rappresenta il cuore
del sistema esperto; se il motore inferenziale è progettato secondo la fuzzy theory si ottiene un FKBS.

Spesso, sistemi esperti e FKBS hanno in comune anche le caratteristiche di adattabilità e la capacità di
spiegazione, anche se in molte semplici applicazioni, soprattutto negli azionamenti elettrici, il modulo di
spiegazione non viene implementato per l'onere computazionale che ne deriva. Quando presente, esso si
rivela vantaggioso perché dà la possibilità di rintracciare il processo logico che ha portato al risultato,
diversamente da un meccanismo di tipo algoritmico.
Se un FKBS è volto al controllo di un azionamento si parla comunemente di controllore in logica fuzzy
(FLC, Fuzzy Logic Controller). Le caratteristiche di autoapprendimento dei sistemi esperti, definiti anche
Auto Learning Systems, sono rintracciabili in un certo approccio agli FLC, che prendono il nome di SOC,
Self Organizing Controllers.
Le prime applicazioni degli FLC hanno riguardato dei processi lenti, come tipicamente sono quelli
industriali: ad esempio, la depurazione delle acque, controlli di temperatura, fornaci per cemento, controllo di
reattore nucleare. In questi esperimenti gli FLC hanno dimostrato spesso delle prestazioni superiori a quelle
riportate dai controllori tradizionali e dagli operatori umani.

2
Azionamenti Elettrici I – 2000 M.Zigliotto

Va detto, comunque, che negli ultimi anni la logica fuzzy ha acquisito una importanza crescente anche nel
settore "consumer", principalmente in alcuni prodotti giapponesi, quali videocamere e condizionatori, ad
esempio. La principale motivazione di questa diffusione risiede nella semplicità circuitale con cui si
ottengono buone prestazioni rispetto a soluzioni tradizionali, anche se in molti casi sotto si nasconde un'abile
operazione di immagine. In occidente la logica fuzzy ha avuto una diffusione molto più lenta e ha incontrato
gli atteggiamenti scettici di molti progettisti, complice forse la maggior razionalità della mentalità
occidentale rispetto a quella orientale. Come spesso accade, "in medio stat virtus", e dopo il lento avvio ora il
dibattito e la ricerca si sono spostate sull'individuazione delle applicazioni ove sia effettivamente più
conveniente l'applicazione degli FKBS rispetto ad altre tecniche di controllo.

3.2 - Fuzzy Sets

L'aggettivo "fuzzy" significa "indistinto, non nettamente definito, sfumato" (spesso è usato per definire un
paesaggio visto al di là di un vetro appannato); ben si adatta al nuovo tipo di insiemi definiti da Zadeh, che si
presentano come insiemi dalle frontiere sfumate e non brusche, cioè diverse da quelle degli insiemi ordinari;
la funzione di appartenenza, la funzione cioè che determina se un oggetto appartiene ad un insieme, non ha
perciò natura binaria, ma piuttosto continua: si parla appunto di grado di appartenenza (membership
function) di un elemento ad un certo insieme, e non di appartenenza o meno.
Nella lingua inglese si contrappone all'aggettivo "fuzzy" l'aggettivo "crisp", per indicare gli insiemi
ordinari: esso significa "trasparente, chiaro, definito" e dà una idea della differenza concettuale tra i due tipi
di insiemi. Questo tipo di insiemi viene sfruttato nella descrizione di sistemi complessi o mal definiti dal
punto di vista matematico, attraverso l'uso di variabili linguistiche che vengono attribuite alle grandezze più
significative relative all'oggetto del controllo.
La base di conoscenza di un FKBS, come già accennato, è costituita da regole linguistiche espresse sotto
forma condizionale "if-then". In esse le diverse variabili sono di natura linguistica e, come tali, esprimono in
modo qualitativo l'entità delle stesse: ad esempio, attraverso le locuzioni "molto buono", "eccellente" ....
La fuzzy set theory ne permette la traduzione in termini rigorosi, e quindi adatte per un calcolatore,
attraverso l'uso degli insiemi fuzzy. In maniera intuitiva,

Un fuzzy set è un insieme di elementi appartenenti ad un certo intervallo numerico, detto universo,
ciascuno caratterizzato dal valore del suo grado di appartenenza (membership degree) all'insieme stesso.

A differenza degli insiemi ordinari, tale grado può assumere qualunque valore tra zero ed uno, intendendo
che un elemento appartiene in maniera maggiore o minore all'insieme. Dunque, un fuzzy set non possiede
una netta distinzione tra elementi che gli appartengono ed elementi che non gli appartengono, ma, piuttosto,
un passaggio graduale fra queste due categorie.
Ad esempio, con un universo U=[-10, 10], all'aggettivo "abbastanza positivo" si può associare un fuzzy
set rappresentabile graficamente come segue:

-10 -9 -6 -3 0 3 6 9 10 u

Fig.3.2.1 - Esempio di fuzzy set triangolare

Questa forma è soltanto una delle possibili per un fuzzy set e dà conto del grado di appartenenza degli
elementi di U=[-10,10] all'insieme in questione: il punto u=3 ha grado di appartenenza 1, mentre u=10 o u=-
3 hanno grado 0.

3
Azionamenti Elettrici I – 2000 M.Zigliotto

In termini più rigorosi, un sottoinsieme fuzzy A di un insieme universo del discorso U (insieme ordinario)
è definito dalla sua funzione di appartenenza (Membership Function o MF) μA(·), che associa ad ogni
elemento u∈U un numero μA(u)∈[0,1]=M (detto Membership Space):

μA : U→[ 0,1] (3.2.1)

μA(u) è definito grado di appartenenza di u in A (ovvero Membership Grade o Membership Degree).

Il supporto SAdi un fuzzy set A è l'insieme ordinario costituito dagli elementi u ∈ U per i quali μA(u)
risulta maggiore di zero:

SA={u ε U: μA(u) >0} (3.2.2)

Un crossover point di A, sottoinsieme fuzzy di U, è un elemento di U con membership grade in A pari a


0.5.
Un fuzzy singleton è un fuzzy set A il cui supporto SA risulti costituito da un solo elemento di U. Per il
fuzzy singleton A con supporto l'elemento u ε U si può introdurre la seguente notazione:

A = μ (u ) / u (3.2.3)

Estendendo questa notazione ad un generico fuzzy set, esso può essere visto come l'unione dei suoi
costituenti singleton, e quindi è rappresentabile come:
A = ∫ μ A (u)/u (3.2.4)
U

dove il simbolo di integrale rappresenta l'unione dei fuzzy singleton μA(u)/u.


Nel caso SA risulti di dimensione finita, del tipo {u1 , u2 , ...un }, in luogo della (1.4.4) si può introdurre la
sommatoria:
N
A = ∑ μ i / ui (3.2.5)
i=1

ove μi = μA(u i ) .

Due fuzzy set A e B definiti sullo stesso insieme universo U si dicono uguali se sono dotati della stessa
membership function, cioè:

A=B ⇔ ∀ u ε U: μA(u) = μB(u) (3.2.6)

Il fuzzy set Φ è definito insieme vuoto, se:

∀ u ε U: μΦ(u) = 0 (3.2.7)

Pertanto, la caratteristica basilare di un fuzzy set A è la sua particolare funzione di appartenenza, che lo
definisce completamente assieme all'universo U.
La funzione di appartenenza può essere di varie forme, e la scelta è un momento importante nel progetto
dell'FKBS; sebbene, infatti, la forma triangolare sia quella più spesso utilizzata sono state sperimentate anche
forme trapezoidali, esponenziali o monotone.
Per identificare un fuzzy set viene solitamente usata una label (o etichetta), che indica "linguisticamente"
quello che il particolare insieme intende rappresentare.

Esempio

4
Azionamenti Elettrici I – 2000 M.Zigliotto

Con un insieme universo U=[-10,10] si può considerare il fuzzy set A con etichetta PM (Positivo Medio)
dotato di una membership function di tipo trapezoidale, così rappresentabile:

μ
PM
PM
1

-10 -9 -6 -3 0 1 2 3 4 5 6 7 8 9 10 u
Fig.3.2.2 - Esempio di fuzzy set trapezoidale associato a PM

Questa funzione di appartenenza può essere espressa analiticamente attraverso le seguenti equazioni:
⎧ 0.5u − 1 2 ≤ u ≤ 4
⎪ 4≤u ≤8
⎪ 1
μ (u ) = ⎨ (3.2.8)
⎪− 0.5u + 5 8 ≤ u ≤ 10
⎪⎩ 0 altrove

Il supporto SA è costituito dai punti di (2,10). Va evidenziato come la MF traduca in senso quantitativo
quello che è soltanto un vago termine linguistico, cioè la label associata :" Positivo Medio".

3.3 - Operazioni tra insiemi Fuzzy

Come per gli insiemi ordinari, le principali operazioni tra fuzzy set sono l'unione, l'intersezione ed il
complemento. Tali operazioni vengono definite attraverso le relative funzioni di appartenenza.

• Unione (OR)

Dati due insiemi fuzzy A e B di U, la loro unione è indicata da A+B o A∪B e risulta anch'essa
sottoinsieme fuzzy di U, con membership function:

μA+B(u) = max { μA(u) , μB(u)} , u∈U (3.3.1)

A+B è dunque rappresentabile come :


A ∪ B = ∫ max( μ A (u ),μ B (u )) / u. (3.3.2)
U

• Intersezione (AND)

Dati due sottoinsiemi fuzzy A e B di U, la loro intersezione è indicata da A*B o A∩B , e risulta essere
sottoinsieme di U, con MF pari a:

μA*B(u) = min { μA(u) , μB(u)} , u∈U (3.3.3)

A*B è dunque rappresentabile come :


A ∩ B = ∫ min(μ A (u ),μ B (u )) / u. (3.3.4)
U

• Complemento (NOT)

Il complemento di un sottoinsieme fuzzy A di U è un insieme fuzzy indicato con ¬A e con membership


function:
5
Azionamenti Elettrici I – 2000 M.Zigliotto

μ¬A(u) = 1- μA(u) , u∈U (3.3.5)

Questi tre operatori godono di varie proprietà, per le quali si rimanda alla letteratura specifica. In
particolare, si può facilmente notare che

¬A∩A ≠ Φ (3.3.6)

mentre con gli insiemi ordinari , dove possono essere definiti allo stesso modo i 3 operatori, vale il segno
di uguale.

Esempio

Un esempio rende più chiaro il motivo della scelta dell'operatore di minimo per la operazione di
intersezione e di quello di massimo per l'unione, nel caso di due fuzzy set definiti sullo stesso universo U=[0,
10]:

μ (u) μ (u) μ (u)

A B A B
1 1 1

0 10 u 0 10 u 0 10 u
Fig.3.3.1 - Fuzzy set A e B Fig.3.3.2 - Unione Fig.3.3.3 - Intersezione

Appare logico che il fuzzy set rappresentante l'intersezione debba assumere il valore minimo dei
corrispondenti membership grade di A e B, dal momento che sarebbe paradossale permettere all'intersezione
di due insiemi di avere un grado superiore a quello di uno dei suoi componenti. Allo stesso modo, è naturale
attribuire il valore massimo all'unione: diversamente, risulterebbe illogico che l'insieme contenente avesse un
grado inferiore rispetto ad uno degli insiemi contenuti.

Si tratta di giustificazioni intuitive; è comunque possibile provare in modo rigoroso che una volta stabiliti
una serie di vincoli logici sulle operazioni di unione ed intersezione, essi vengono soddisfatti dalle
operazioni di minimo e massimo. Si possono comunque utilizzare anche altri operatori. La classe degli
operatori binari che possono rappresentare un'operazione di intersezione viene definita norma triangolare.
Essa è indicata dal simbolo "∗" ed è una funzione a due variabili, che ha come dominio [0,1]×[0,1] e
codominio [0,1]. Appartengono a questa norma 4 operatori, così definiti per a,b∈[0,1]:

a ∧ b = min { a,b } (minimo) (3.3.7)


a ⋅ b = ab (prodotto algebrico) (3.3.8)
a⊗b = max { 0, a+b-1} (prodotto limitato) (3.3.9)
⎧b, a = 1

a~b = ⎨a, b = 1 (prodotto drastico) (3.3.10)
⎪ 0 a, b < 1

Analogamente, la classe degli operatori binari che possono rappresentare un'operazione di unione viene
definita conorma triangolare. Essa è indicata dal simbolo "+" ed è ancora una funzione a due variabili, che
ha come dominio [0,1]×[0,1] e codominio [0,1]. Appartengono a questa norma 4 operatori, così definiti per
a,b∈[0,1]:

a ∨ b = max { a,b } (massimo) (3.3.11)


a + b = a+b-a ⋅b (somma algebrica) (3.3.12)
a⊕b = min {1, a+b} (somma limitata) (3.3.13)
6
Azionamenti Elettrici I – 2000 M.Zigliotto

⎧b, a = 0

a}b = = ⎨a, b = 0 (somma drastica) (3.3.14)
⎪ 0 a, b > 0

3.4 - Struttura di un FKBS

Un sistema esperto basato sulla conoscenza espressa in logica fuzzy (FKBS) risulta composto da:

• una knowledge base (base di conoscenza), costituita da un data base, formato da un insieme di dati
numerici, e da una rule base, contenente l'insieme delle regole linguistiche che descrivono il
comportamento dell'FKBS.
• una fuzzification interface (o fuzzifier), che permette il passaggio dei valori (reali) di ingresso (già scalati)
ai relativi fuzzy set
• un inference engine (o motore inferenziale) che realizza il meccanismo inferente
• una interpretazione (defuzzification interface o defuzzifier) che opera il passaggio del fuzzy set inferito al
valore numerico effettivo.

Gli elementi essenziali di un FKBS sono riassunti graficamente nella figura seguente:

KNOWLEDGE BASE

DATA BASE RULE BASE

crisp fuzzy fuzzy crisp


FUZZIFIER INFERENCE ENGINE DEFUZZIFIER

Fig.3.4.1 - Schema funzionale di un FKBS

Di seguito verranno presi in esame con maggiore dettaglio i singoli blocchi costituenti il sistema.

3.5 - Rule base e data base

Come già anticipato, il comportamento di un FKBS viene sintetizzato da una serie di regole linguistiche,
espresse generalmente in forma condizionale, che hanno per oggetto le variabili linguistiche ed i loro valori
linguistici. Una variabile linguistica ha dei valori costituiti da parole o frasi appartenenti ad un linguaggio
naturale od artificiale; ad esempio , la variabile altezza può assumere i valori alto, basso, non basso etc..
Le regole di un FKBS sono solitamente raggruppate in una tabella (Rule Table); vi sono molti metodi per
ricavarla. Se si tratta di trasferire l'esperienza di un operatore, spesso si ricorre ad una "intervista",
interrogando l'operatore come si comporti ("then") al verificarsi di certe condizioni ("if"). Altri metodi sono
di tipo automatico, ovvero le regole sono generate da un algoritmo sulla base delle risposte del sistema a certi
ingressi. In questo campo sta prendendo sempre più piede l'utilizzo di reti neurali associate al FKBS, per la
loro peculiarità di identificare sistemi "black-box" dal punto di vista ingresso-uscita.
Le regole linguistiche non sono trattabili da un algoritmo numerico in modo immediato. Occorre dare
significato matematico ai termini del linguaggio naturale di cui sono composte. Questi termini indicano
tipicamente in modo qualitativo l'ampiezza delle variabili in quella determinata situazione; ad esempio, la
variabile linguistica "qualità del servizio" può assumere i valori "scarso", "mediocre", "buono", "eccellente"
e questi compongono l'universo del discorso per tale variabile. Il passo fondamentale viene fatto associando
ai valori linguistici appropriati fuzzy set, di cui i termini diventano etichette ed ottenendo un fuzzy language.
Si effettua così la trasformazione della regola linguistica in un fuzzy conditional statement (o fuzzy relation):
si tratta cioè di una clausola condizionale con parte antecedente (la parte if) e conseguente (la parte then)

7
Azionamenti Elettrici I – 2000 M.Zigliotto

costituita da fuzzy set. La traduzione in termini quantitativi della base di conoscenza conduce ad un
algoritmo nel vero senso del termine, detto fuzzy control algorithm.

Ciascuna delle grandezze che costituiscono la parte antecedente e conseguente nelle regole viene detta
variabile fuzzy di ingresso e d'uscita rispettivamente (input/output fuzzy variable) e i vari attributi che le
descrivono (molto positiva, leggermente negativa,... oppure eccellente, buono, scadente...) diventano label di
fuzzy set le cui membership function cercano di riprodurre il concetto che ciascun attributo esprime nel
linguaggio naturale.
Un criterio di validità generale nella definizione delle membership function alle variabili di ingresso è
quello secondo cui esse devono ricoprire l'intero universo del discorso, con delle sovrapposizioni tra fuzzy
set adiacenti al fine di garantire una certa continuità dell'azione di controllo. Questa affermazione, di
carattere intuitivo, assumerà un significato più preciso quando si analizzerà come viene realizzata l'inferenza
e quindi come viene generata l'azione di controllo da parte di un FKBS.
Tutti i parametri numerici relativi alle funzioni di appartenenza delle variabili di ingresso e di uscita sono
memorizzati in un data base, assieme ad altre informazioni riguardanti la scelta degli operatori per le varie
funzioni di fuzzification, defuzzification e inferenza.

3.6 - Scaling in ingresso e fuzzification interface

Lo scaling risulta necessario per riportare il range dei valori che può assumere la variabile d'ingresso
all'insieme universo in cui è definita la variabile stessa, tramite la moltiplicazione per un opportuno scaling
factor ki.
Per aumentare la sensibilità attorno ad un certo punto (tipicamente un set point se la variabile rappresenta
un errore), si può usare la costante ki in modo da dilatare l'ampiezza, facendola però seguire da una
saturazione tra il minimo ed il massimo dell'insieme universo. Graficamente, può essere così rappresentato:

Xi Ki Xis Xiss

Fig.3.6.1 - Scaling d'ingresso (pre-elaborazione delle variabili)

A questo punto, l'operazione di fuzzification associa al valore sopra ottenuto un fuzzy set, che nella
pratica risulta essere spesso un fuzzy singleton. La sua funzione di appartenenza risulta unitaria in
corrispondenza di xiss e nulla altrove, cioè:

⎧1, u = xiss
μ(u) = ⎨ (3.6.1)
⎩0, altrove

Questa scelta risulta notevolmente semplificativa per le successive operazioni di composizione ed


interpretazione, come si vedrà in seguito.

3.7 - Il meccanismo inferenziale

Le regole contenute nella Rule Base riflettono, in modo schematico, la base di conoscenza e costituiscono
l'essenza del ragionamento approssimato (approximate reasoning) che forma il protocollo "naturale" di
controllo nel quale sono già insite, come si è accennato, qualità come la robustezza e la flessibilità. La
peculiarità degli FKBS rispetto alla classe più generale dei sistemi esperti è essenzialmente legata alla
modalità con cui le regole linguistiche diventano algoritmi numerici, ovvero la definizione del meccanismo
inferenziale.
Il metodo più utilizzato negli azionamenti elettrici è la regola di composizione (compositional rule of
inference, 1973). Essa consta di due operazioni successive, di seguito analizzate. Il primo passo consiste nel

8
Azionamenti Elettrici I – 2000 M.Zigliotto

dare significato matematico all'implicazione contenuta in ciascuna regola del tipo "if-then". E' un problema
affrontato per la prima volta dal matematico Lukasiewicz e al quale sono state date diverse soluzioni. Tutte
hanno come risultato il calcolo, nello spazio prodotto degli universi di definizione della parte antecedente e
conseguente, di una funzione μR indicante la membership function relativa all'implicazione in esame. La
soluzione più utilizzata è quella indicata da Mamdani, che propone di ottenere μR intersecando i fuzzy set
che esprimono gli antecedenti ed il conseguente, utilizzando il min come operatore di intersezione. Si
formalizza così la conoscenza legata alla particolare regola, prescindendo da quale siano gli effettivi
antecedenti.
Il secondo passo, fondamentale nel meccanismo inferenziale, consiste nel comporre la conoscenza che si
acquisisce sugli antecedenti con quella predefinita e legata alla regola. La composizione viene effettuata
intersecando gli ingressi effettivi (solitamente rappresentati con dei fuzzy singleton) con il fuzzy set
multidimensionale caratterizzato da μR. Ne risulta in generale un solido la cui proiezione sull'asse dell'uscita
risulta essere il fuzzy set inferito.

Qualche esempio servirà a chiarire questi concetti. Si consideri la regola R seguente, frammento di una
rule base relativa ad un FLC per un motore in corrente continua, con controllo della corrente di armatura:

if eω is PM then Δi* is PG (3.7.1)

dove eω = errore di velocità


Δi*= variazione del riferimento di corrente
PM= Positivo medio
PG= Positivo grande

Essa ha un antecedente ed un conseguente ed è dunque la più semplice che si possa pensare. Se si


utilizzano fuzzy set triangolari, il risultato del primo passo è una funzione μR di forma piramidale, come
mostra la Fig.3.7.1 a):

μR

μ (e ω ο )
μ PM

eω eω
μ eωο
PG ingresso

Δ i* Δ i*
estensione
fuzzy set cilindrica
inferito
a) b)

Fig.3.7.1 - Il meccanismo inferenziale per FLC Single Input Single Output (SISO)

Il passo successivo consiste nel valutare il valore effettivo dell'errore di velocità eωo in un dato istante
rappresentandolo linguisticamente come un fuzzy singleton. Infine si opera la composizione, intersecando μR
con il singleton associato all'ingresso; questo passo è rappresentato graficamente nella figura sopra, a destra.
Vanno a proposito svolte alcune considerazioni:

• per rendere consistenti le operazioni di intersezione, sia i fuzzy set d'ingresso e d'uscita, che il fuzzy
singleton vengono "stirati" nel piano tramite un'operazione di estensione cilindrica, il cui carattere si
intuisce facilmente dalla figura e di cui si omettono in questa sede i dettagli matematici;

• come già accennato, sia l'implicazione che l'intersezione è ottenuta con una operazione di minimo. Queste
scelte non sono le uniche praticabili. E' molto utile che il progettista di un controllore fuzzy disponga

9
Azionamenti Elettrici I – 2000 M.Zigliotto

anche di questo grado di libertà, nonostante il legame tra questa scelta e gli effetti pratici che ne seguono
sia alquanto involuto;

• il risultato dell'intersezione, come appare dalla figura, è una funzione definita dello stesso piano in cui
sono definite μR e l'estensione cilindrica di eωo. Come si è detto, per ricavare il fuzzy set d'uscita occorre
operare una proiezione, che corrisponde ad una operazione di massimo, lungo l'asse della variabile
d'ingresso. La scelta del massimo come "estrattore", proposta da Zadeh nel 1975, è pressoché
universalmente adottata nel campo degli FLC.

Si noti come già con due soli ingressi μR non sia più rappresentabile in forma grafica. Siano {x1, x2 ...xm}
le variabili fuzzy d'ingresso1 (antecedenti) e z la variabile fuzzy d'uscita (conseguente), tutte definite nei
rispettivi universi. La generica regola R è così esprimibile:

if ( x1 is A1 and x2 is A2 and...xm is Am ) then z is C (3.7.2)

e ad essa è possibile associare la fuzzy relation:

R = ( A1 and A2 and...Am ) → C (3.7.3)

La compositional rule of inference prevede innanzitutto il calcolo della membership function di R, nello
spazio di dimensione m+1 (realizzando l'intersezione con l'operatore di minimo):

R = A1 ∩ A2 ∩ .. ∩ Am ∩ C (3.7.4)
x1 ,x2, ...xm ,z
{
μ R (x1 , x 2, ...x m , z ) = min μ A1 ( x1 ),μ A2 ( x 2 ), ..., μ Am ( x m ), μ C (z ) } (3.7.5)

Sia poi nota all'istante to una m-upla effettiva di valori di ingresso x1o, x2o,..., xmo (parte antecedente), a
cui si associano altrettanti fuzzy singleton A1o, A2o,.., Amo centrati in x1o, x2o,..., xmo e di membership
function unitaria.
L'operazione di composizione si effettua intersecando (ancora con l'operatore di minimo) tali fuzzy set
con μR ed estraendo il fuzzy set inferito per l'uscita tramite la proiezione sull'asse ad essa relativo2

μ Co (z ) = max
z
min
x1 ,x2, ...xm , z
{μ A 10
(x1 ),μ A20 (x2 ), ..., μ Am 0 (xm ), μ R } (3.7.6)

Se ora si esplicita μR si ottiene:

μ Co ( z ) = min
x1 ,x2, ...xm , z
{μ A 10
(x1 ),μ A20 (x2 ), ..., μ Am0 (xm ), μ A1 (x1 ),μ A2 (x2 ), ..., μ Am (xm ), μ C (z )}=
= min
x1 ,x2, ...xm , z
{μ A (x1o ),μ A (x2o ), ..., μ A
1 2 m
(xmo ), μ C (z )} = min
x1 ,x2, ...xm , z
{α , μ C (z )} (3.7.7)

dove si è definito α (degree of fulfillment, DOF) come:

α= min
x1 ,x2, ...xm
{μ A (x1o ),μ A (x2o ), ..., μ A
1 2 m
(xmo )} (3.7.8)

Si noti che quando si associano fuzzy singleton agli ingressi attuali, risulta equivalente farne
l'intersezione con la membership function globale μR, e fare l'intersezione di ciascun ingresso con il proprio
fuzzy set antecedente, ed intersecare i risultati direttamente con il fuzzy set d'uscita.

1 Per sempicità di notazione, con x1,x2... si indicheranno anche le variabili correnti d'asse relative agli universi di
definizione delle singole variabili fuzzy.
2 Si noti come in questo caso l'operatore di massimo (max su z) sia superfluo, ovvero abbia solo valenza formale, dato
che la funzione a secondo membro è definita su uno spazio a m+1 dimensioni.
10
Azionamenti Elettrici I – 2000 M.Zigliotto

E' significativa la rappresentazione grafica delle operazioni appena viste. Ritornando all'esempio
precedente. si supponga di misurare non solo la velocità ma anche la corrente effettiva, a scopo di
limitazione. Una possibile regola può essere la seguente:

Regola R: if eω is PM and ia is PS then Δi* is PM (3.7.9)

con eωo e iao valori in ingresso all'FLC e con fuzzy set d'ingresso e d'uscita di tipo triangolare, il fuzzy set
inferito viene mostrato sulla destra tratteggiato:

μ μ μ

1 PM 1 PS 1 PM

e ωο eω i ao ia Δ i*
Fig.3.7.2 - Esempio di inferenza con due antecedenti

In questo paragrafo si è descritto il meccanismo operativo che consente di tradurre una regola linguistica in un
algoritmo numerico. Al di là del metodo, è però importante cercare di intuire quale sia la motivazione logica delle scelte
effettuate. Una regola del tipo "if..then" è infatti un concetto assolutamente chiaro, essendo espresso in linguaggio
naturale; può essere invece meno evidente perché le operazioni di intersezione sopra descritte rappresentino un modo
corretto di tradurre il concetto di implicazione. Una chiave di lettura è stata fornita dallo stesso Zadeh, che chiarisce che
nella regola "if x is A then y is B", il "then" non debba essere considerato come una implicazione logica, bensì come la
costrizione che il fatto "x is A" comporta sul fatto "y is B". Una particolare realizzazione della premessa, ad esempio "x
is A'" comporta che, parzialmente, sia vero il fatto "x is A", nella misura in cui c'è intersezione tra le membership
function dei fuzzy set A e A'. Questa nuova, effettiva restrizione (rispetto a quella teorizzata nella regola) è quella che
determina l'effettiva conseguenza B'. Più precisamente, l'intersezione individua la membership function relativa alla
nuova, effettiva regola "if x is A' then y is B' "; l'operatore di massimo esegue una proiezione (operazione inversa della
estensione cilindrica) per "estrarre" il fatto B' dalla membership function della nuova relazione fuzzy. Si può cioè
pensare che "y is B" sia un fatto (ovvero, già una restrizione nell'universo operata dalla mf di B, stante la dualità tra
fuzzy set e fuzzy relation) ma non un fatto a se stante, bensì un fatto che nasce ed esiste solo se esiste il fatto "x is A",
che dunque ne rappresenta una ulteriore restrizione. Una regola "if x is A then y is B" è dunque una rappresentabile
come una doppia restrizione, che forma, nel caso di fuzzy set A e B triangolari, una piramide; la sua base, definita nel
piano x,y, evidenzia le uniche coppie "premessa-conseguenza" che sono compatibili con la regola enunciata. In
particolare, il verificarsi esatto della premessa "x is A" non pone nessuna ulteriore restrizione all'esistenza di B, che
rimane un fuzzy set intonso.

3.8 - Unione di più regole

Normalmente un algoritmo fuzzy è composto da più regole e vi sono essenzialmente due metodi per
tenerne conto.

• Il primo è basato sulla composizione delle regole. Per la i-esima regola, anche con più ingressi, si
determina la funzione μRi; quindi si combinano tutte le funzioni tramite un'operazione di unione, che
viene solitamente realizzata con il massimo, anche se in campo azionamentistico può venir usata
proficuamente la somma. In questo secondo caso si possono trovare fuzzy set d'uscita con μR>1. Si può
rimediare operando una successiva normalizzazione che tuttavia non viene usualmente eseguita, in quanto
non si ha comunque alcun effetto sul risultato dell'interpretazione. Si dispone così di una μR relativa
all'intero algoritmo, che va composta con le particolari realizzazioni degli ingressi per inferire un fuzzy set
d'uscita.

11
Azionamenti Elettrici I – 2000 M.Zigliotto

• Il secondo si basa sull'inferenza operata sulle singole regole (individual-rule based inference) e consiste
nell'applicare il meccanismo di inferenza ad ogni singola regola e combinare i fuzzy set d'uscita di
ciascuna regola, usando gli stessi operatori visti al punto precedente.

Quando i due metodi portano allo stesso risultato si dice che non vi è interazione (interaction) tra le
regole dell'algoritmo. Questa proprietà, che consente una semplificazione notevole dei calcoli per l'inferenza,
non è valida in generale. Se si utilizzano l'implicazione di Mamdani, l'operatore di minimo per l'intersezione
degli ingressi e di massimo per l'unione delle regole, essa è verificata anche se gli ingressi effettivi vengono
proposti come fuzzy set di tipo non singleton. Tale inferenza, detta 'max-min', è di estremo interesse nel
campo azionamentistico.

3.9 - L'interpretazione dell'uscita

Il meccanismo inferenziale porta alla definizione di un fuzzy set d'uscita; nell'analogia con il
comportamento umano, esso rappresenta l'idea dell'azione di controllo che l'operatore si è formato
ragionando sugli ingressi alla luce della sua consolidata esperienza operativa. Così come l'operatore tradurrà
tale idea in un'azione ben definita, anche nel controllore fuzzy si manifesta la necessità di interpretare il fuzzy
set d'uscita, per ricavarne un preciso valore di comando (defuzzification).
Tra i metodi di interpretazione più usati si possono ricordare i due seguenti, di cui si dà la definizione
formale evidenziando le peculiarità in termini computazionali e di prestazioni:

• centro di gravità (Center of Gravity method, COG): esso prevede alcune operazioni sul fuzzy set globale
d'uscita, ed ha validità più generale. Si può pensare che esso individui l'ascissa del baricentro del fuzzy set
d'uscita e questo lo porta raramente a dedurre una azione di controllo estrema; la conseguenza è una
dinamica del controllore molto morbida, senza scatti e con tempi di risposta non minimi.
∫ μ Co (z )z dz
zo = Z
(3.9.1)
∫ μ Co (z )dz
Z

• media dei massimi (Mean of Maxima method, MOM o MMC). Consiste nell'attribuire all'uscita l'ascissa
corrispondente al massimo della membership function del fuzzy set d'uscita. In presenza di più massimi di
uguale altezza è sufficiente fare la media dei punti zi appartenenti al supporto dove cadono questi
massimi, cioè:
N
∑ Ni
z
z0 = (3.9.2)
i =1

Questo metodo, di semplice implementazione produce uscite che possono cambiare in modo rapido; in
alcuni casi può però accadere che vi siano variazioni notevoli d'uscita per lievi variazioni delle condizioni
d'ingresso. Il controllo può risultare molto "nervoso" e si perde quella capacità di "mediazione" del
significato del fuzzy set d'uscita che rappresenta pregio e al tempo stesso difetto del metodo COG. Il
metodo MMC considera soltanto le regole che danno un fuzzy set di uscita con membership
degree massimo e questo spesso non è ritenuto in linea con i principi della fuzzy logic.

Esempio

Si supponga di avere, in corrispondenza ad una certa combinazione degli ingressi, solo 4 regole con
degree of fulfillment diverso da zero; tre di esse abbiano lo stesso fuzzy set nel conseguente PB, singleton
con supporto +6, e la quarta abbia come conseguente PM singleton e supporto +3, come in Fig.3.9.1:

12
Azionamenti Elettrici I – 2000 M.Zigliotto

μ μ PM PB
PM PB
0.66
0.33

0 3 6 z 0 3 6 z
Fig.3.9.1 - Definizione dei fuzzy singleton conseguenti Fig.3.9.2 - Fuzzy set d'uscita

Con valori dei DOF pari a:

α1 = 0.66 su z1 = 3
α2 = 0.33 su z2 = 6 (3.9.3)
α3 = 0.33 su z3 = 6
α4 = 0.33 su z4 = 6

il fuzzy set di uscita è l'unione di due singleton con membership grade 0.66 e 0.33:

Utilizzando il metodo del centro di gravità, ove all'integrale si sostituisca una sommatoria estesa a tutti i
punti del dominio della variabile d'uscita si ottiene:

0. 66 * 3 + 0. 33 * 6
zo = =4 (3.9.4)
0. 66 + 0. 33

mentre con il metodo MOM si sarebbe ottenuto zo=3, non pesando in alcun modo che ben tre regole,
anche se con forza minore, indicassero 6 come uscita. Si noti poi come l'operatore di massimo con il quale si
determina il fuzzy set d'uscita complessivo non tenga conto che ben tre regole insistono sullo stesso
singleton. Per tenerne conto, si sarebbe dovuto usare ad esempio l'operatore di somma per l'unione delle
regole.

3.10 - Inferenza diretta ed indiretta

Nella realizzazione di controllori fuzzy con microprocessori convenzionali si deve stabilire se calcolare
l'inferenza ad ogni periodo di campionamento degli ingressi, (On-line inference) o, piuttosto, se precalcolarla
su un adeguato numero di valori degli ingressi, quindi interpretare il fuzzy set d'uscita con uno dei metodi
sopra citati e formare infine una tabella numerica (look-up table, LUT) che verrà poi letta ad ogni periodo di
campionamento usando come coordinate gli ingressi effettivi (Off-line inference).
Entrambi i metodi hanno pregi e difetti, con pesi che variano naturalmente a seconda della applicazione;
nella Tab.3.10.1 si è realizzata una sintesi, riportando per completezza anche il confronto con i processori
fuzzy dedicati.
Ad integrazione della Tab.3.10.1 possono essere svolte alcune considerazioni; le lettere fanno riferimento
ai richiami di tabella.

a. la drastica limitazione è legata all'aumento esponenziale della memoria necessaria per memorizzare la
look-up table al crescere del numero di ingressi. Esistono alcune soluzioni che, utilizzando una struttura
gerarchica per il controllore, consente in qualche caso di ovviare al problema.

b. il tempo di sviluppo del progetto si riduce sensibilmente se si utilizzano microprocessori per i quali la
Casa costruttrice ha predisposto del software di ausilio alla progettazione. Recentemente molti
componenti della fascia alta del mercato beneficiano di simili strumenti che, comunque, risentono
invariabilmente delle limitazioni circa la scelta degli operatori e dei metodi di implicazione e
composizione tipiche della realizzazione on-line.

c. per flessibilità si intende la possibilità di variare la struttura del controllore on-line; in altre parole, poter
variare la forma dei fuzzy set o le regole, allo scopo di "affinare" la base di conoscenza su cui opera il
13
Azionamenti Elettrici I – 2000 M.Zigliotto

controllore, in analogia a quanto accade ad un operatore umano che impara dai propri errori. E' chiaro che
questo tipo di funzionamento è precluso (o comunque notevolmente complicato) se si sceglie una
implementazione off-line del meccanismo inferenziale.

Tab.3.10.1 - Principali caratteristiche dei diversi metodi per realizzare un controllore fuzzy
Tipo di inferenza On-line Off-line

µP convenzionali µP Fuzzy µP convenzionali

ingressi limitato grande 2 o 3 (a)

tempo di ciclo grande e fortemente piccolo, con un numero piccolo ed


dipendente dal numero limitato di regole indipendente dal
di regole numero di regole

tempo di sviluppo grande (b) piccolo piccolo

flessibilità ampia (c) attualmente limitata molto limitata

dimensioni SW medio piccolo piccolo

complessità SW alta media bassa

CPU quella dell'FLC altra quella dell'FLC

3.11 - FLC assoluti ed incrementali

Molto spesso l'azione di controllo può essere descritta in modo linguistico più immediato se invece di
stabilire direttamente il valore dell'uscita (FLC assoluti) si indica l'incremento che essa deve avere in base al
verificarsi di una certa situazione d'ingresso. Gli FLC che propongono in uscita incrementi della variabile di
controllo sono detti appunto FLC incrementali. Per essi è necessario porre in uscita un'azione integratrice, a
meno che non sia già insita nel processo; una rappresentazione grafica è la seguente:

Zo Z os Z osi
Kiz . dt Processo

valore scalato valore integrato


Fig.3.11.1 - Post-elaborazione in un FLC incrementale

3.12 - I controllori FPI

I primi esempi di controllori fuzzy applicati agli azionamenti sono stati realizzati basandosi sui
tradizionali regolatori proporzionali-integrali (PI). La struttura di tali FLC, di tipo incrementale, può essere
derivata da considerazioni sulle equazioni alle differenze che regolano i classici regolatori PI; il metodo
seguente è stato proposto da Peng (1988).

Siano ek e yk rispettivamente ingresso (errore) ed uscita di un controllore PI all'istante tk. Le azioni


proporzionale ed integrale si possono esprimere come:

int k = int k −1 + Ki e k (3.12.1)


y k = y k −1 + Δy k = K p e k + int k (3.12.2)

14
Azionamenti Elettrici I – 2000 M.Zigliotto

dove intk e intk-1 rappresentano il valore della parte integrale rispettivamente al passo k e k-1, e Kp e Ki sono
i parametri di regolazione proporzionale ed integrale. Si può anche scrivere:

y k −1 = K p e k −1 + int k −1 (3.12.3)

e dunque

Δy k = y k − y k −1 = K p ek + int k − K p ek −1 − int k −1 = K p (ek − ek −1 ) + K i ek = K p Δek + K i ek (3.12.4)

che rappresenta l'uscita di un "PI incrementale" convenzionale. L'FPI proposto definisce 7 fuzzy set
triangolari d'ingresso e d'uscita, numerandoli da 1 a 7 come in Fig.3.12.1:

μ (.)
NB NM NS ZE PS PM PB

1 2 3 4 5 6 7

e, Δe, y
Fig.3.12.1 - Definizione dei fuzzy set per FPI

L'insieme di regole dell'FPI è formulato come segue:

if Δek is Li and ek is Lj then Δyk is Lf(i,j) i,j = {1..7} (3.12.5)

dove

f(i,j) = max{1, min {7, int(Kp (i-4) + Ki (j-4) +4) }} (3.12.6)

Si noti come l'indice "i" del fuzzy set Li dia una misura di Δek, che è moltiplicato per Kp nella
formulazione dell'algoritmo convenzionale. L'azione "crisp" KpΔek viene a corrispondere all'azione "fuzzy"
Kp(i-4), che sposta il valore di f(i,j) e dunque il fuzzy set scelto come conseguente verso destra; Kp risulta
essere una sorta di "peso" desiderato per l'azione proporzionale del regolatore. Un discorso del tutto analogo
vale per Ki. L'offset "4" è naturalmente dovuto al fatto che ek=0, Δek=0 (e dunque, i=4, j=4) devono
condurre al fuzzy set ZE, che è indicato con il numero 4.
Gli operatori (in senso classico) int (intero), max (massimo) e min (minimo) servono a mantenere f(i,j) un
numero intero compreso tra 1 e 7, dato che essa fa poi da indice al fuzzy set d'uscita della regola.
Con 7 possibili valori sia per "i" che per "j" si hanno 49 possibili combinazioni, da cui scaturiscono in
modo automatico 49 regole corrispondenti, che vanno a costituire la "rule base" dell'FPI. I valori numerici di
definizione dei fuzzy set d'ingresso e d'uscita vanno invece a costuituire il data base, completando così la
knowledge base, così come definita nei paragrafi precedenti.
E' da sottolineare che il comportamento dell'FPI richiama quello del PI convenzionale nei termini
descritti, ma da questo differisce per la caratteristica non lineare, di cui ci si può rendere conto sia con
qualche calcolo che effettuando una simulazione al calcolatore.

3.13 - Il controllo fuzzy di velocità e corrente di un motore c.c.

Un esempio di applicazione della logica fuzzy agli azionamenti è costituito dal controllo di velocità e
corrente per un motore c.c. ad eccitazione indipendente e costante. Lo schema a blocchi dell'azionamento è
riportato nella Fig.3.13.1:

15
Azionamenti Elettrici I – 2000 M.Zigliotto

ω∗ + eω ua
DCM
- FLC
ω ia

Fig.3.13.1 - Controllo Fuzzy di un motore c.c.

Si suppone di realizzare un controllo discreto, ovvero campionando le grandezze d'ingresso ad ogni


periodo di campionamento Tc, elaborando l'uscita che pure viene aggiornata ogni Tc. Per semplicità, si
considererà un periodo di campionamento molto piccolo rispetto alla dinamica meccanica, in modo che
risultino verificate le approssimazioni seguenti:

de ω Δeω
≈ (3.13.1)
dt Tc
du a Δua
≈ (3.13.2)
dt Tc

Queste relazioni consentiranno di studiare il sistema come se fosse continuo, tralasciando dunque gli
aspetti legati al controllo digitale e allo studio del sistema tramite la trasformata zeta.
Il segnale di velocità ω viene confrontato con il riferimento ω*; l'errore eω e la corrente d'armatura ia
costituiscono gli ingressi al controllore fuzzy di tipo incrementale, il quale si ricava internamente la
differenza Δeω tra l'errore attuale e quello al passo precedente. In dettaglio, la struttura dell'FLC è riportata
nella Fig.3.13.2:

eω e ωo
Ke L
U Δu ω
Δe ω Δe ωo T
sTc K ce 1

L
U Δu ao Δu a l ua
K cu
ia i ao T sTc
Kl 2

Fig.3.13.2 - Struttura del controllore fuzzy

Si suppone che sia realizzato con un microprocessore convenzionale, e quindi sia di tipo off-line,
costituito da due FLC realizzati con LUT a due ingressi ed una uscita. Il primo FLC, sintetizzato nella LUT1,
è di tipo FPI ed elabora eω e Δeω per dare in uscita una "proposta" di variazione della tensione di armatura,
indicata con Δuω.
La rule table, ottenuta pesando in modo uguale la parte proporzionale ed integrale (Kp=Ki=1) è la
Tab.13.3.1. Si può notare la simmetria della tabella. Si consideri poi ad esempio il caso di un errore (ω*-ωk)
molto negativo (NB), ovvero una velocità attuale di molto superiore al riferimento, e una variazione rispetto
all'errore calcolato al passo precedente (ω*-ωk)-(ω*-ωk-1)=(ωk-1-ωk) molto positiva (PB). In tal caso, il
controllore prevede un'uscita ZE, ovvero non intende modificare l'attuale tensione di armatura. Questo è
corretto se si osserva che il motore sta già evolvendo nel senso di una rapida riduzione dell'errore di velocità.

16
Azionamenti Elettrici I – 2000 M.Zigliotto

eωo
NB NM NS ZE PS PM PB
NB NB NB NB NB NM NS ZE
NM NB NB NB NM NS ZE PS
NS NB NB NM NS ZE PS PM
Δeωo ZE NB NM NS ZE PS PM PB
PS NM NS ZE PS PM PB PB
PM NS ZE PS PM PB PB PB
PB ZE PS PM PB PB PB PB

Tab.3.13.1 - Rule table per FLC1

Come secondo passo, si sono definiti i fuzzy set per gli ingressi eωo e Δeωo e per l'uscita Δuω. In accordo
con quanto illustrato al paragrafo precedente, essi sono stati definiti nello stesso universo, normalizzato per
convenienza tra -1 e +1:

μ (.)
NB NM NS ZE PS PM PB

Δu ω
-1 -0.66 -0.33 0 0.33 0.66 1 e ωο Δe ωο

Fig.3.13.3 - Fuzzy set per la sintesi della LUT1

Utilizzando la compositional rule of inference, scegliendo come operatori il minimo sia per l'intersezione
degli ingressi che per l'implicazione, ed il massimo per l'unione delle regole si è poi calcolata off-line
l'inferenza per un numero limitato di valori (normalizzati) di ingresso. In dettaglio, si è suddiviso l'universo
(-1,1) di entrambe le variabili di ingresso in 31 punti, calcolando così una look-up table quadrata di
dimensione 31 x 31. La tabella seguente riporta la porzione centrale della LUT, ovvero quella relativa a
piccoli errori e a piccole variazioni di errore:

Tab.3.13.2 - LUT1, particolare


eωo -0.133 -0.066 0 0.066 0.133
Δeωo
-0.133 -0.2930 -0.2310 -0.1400 -0.0560 0
-0.066 -0.2310 -0.1860 -0.0800 0 0.0560
0 -0.1400 -0.0800 0 0.0800 0.1400
0.066 -0.0560 0 0.0800 0.1860 0.2310
0.133 0 0.0560 0.1400 0.2310 0.2930

In questa zona, vicina al funzionamento a regime, vale l'approssimazione

Δuω ≈ eωo + Δeωo (3.13.3)

come si può provare direttamente calcolando la tabella relativa a tale somma nella stessa zona presa in
esame poco sopra:

17
Azionamenti Elettrici I – 2000 M.Zigliotto

Tab.3.13.3 - eωo + Δeωo


eωo -0.133 -0.066 0 0.066 0.133
Δeωo
-0.133 -0.2667 -0.2000 -0.1333 -0.0667 0
-0.066 -0.2000 -0.1333 -0.0667 0 0.0667
0 -0.1333 -0.0667 0 0.0667 0.1333
0.066 -0.0667 0 0.0667 0.1333 0.2000
0.133 0 0.0667 0.1333 0.2000 0.2667

Questa approssimazione consente di calcolare i valori iniziali di Ke e Kce utilizzando l'analogia con il
metodo convenzionale già visto nell'azionamento per il controllo di velocità di un motore c.c. con regolatore
PI. Essi andranno poi affinati tramite taratura sul campo o con opportune simulazioni. Con riferimento a
Fig.3.13.2, ed omettendo per il momento qualunque effetto di LUT2, lo schema di controllo è assimilabile a
quello riportato in Fig.3.13.4:

LUT 1
e ωο
Ke
ω∗ + + Δu ao Δu a 1 ua
eω K cu DCM
- + s Tc
sKceTc
ω Δe ωο

Fig.3.13.4 - Schema di controllo semplificato, senza LUT2

Il fattore Kcu va fissato in modo da assicurare che la tensione di armatura cresca con pendenza non
inferiore alla f.e.m. quando al motore è impressa la massima accelerazione. Quest'ultima si può pensare sia
ottenuta a vuoto (ovvero con sola coppia inerziale) con la corrente nominale. Se si pensa che i valori
contenuti nelle LUT siano pure normalizzati a ±1, e dunque che sia (Δuao)max = 1 si ottiene subito3

Tc (K e Φ )2 I aN
K cu = (3.13.4)
J

Sostituendo al motore (DCM) la sua funzione di trasferimento e con semplici operazioni sui blocchi si
ottiene infine lo schema di Fig.3.13.5:

ω∗ + K pω (1+s τ rω ) 1/K eΦ
- s τ rω (1+sτ a) (1+s τ m1)
ω

Fig.3.13.5 - Schema a blocchi semplificato, senza LUT2

Dal confronto tra Fig.3.13.4 e Fig.3.13.5 si ottiene direttamente:

K p ω = Kce Kcu
(3.13.5)
τ r ω = Tc Kce Ke

I parametri del regolatore PI (Kpω e τrω) possono essere calcolati con il metodo proposto nel par.2.3; dati
per noti, assieme alla (3.13.5) consentono di scrivere le seguenti espressione approssimate per Ke e Kce:

3 Nella pratica, nella LUT2 sarà conglobato anche il fattore Kcu.


18
Azionamenti Elettrici I – 2000 M.Zigliotto

Kp ω
Kce = (3.13.6)
Kcu
Tc K p ω
Ke = (3.13.7)
Kcu τ r ω

Il secondo FLC ha per ingressi la variazione Δuω proposta dal primo e la corrente di armatura, ia. Si tratta
essenzialmente di realizzare una limitazione della corrente di armatura. Le regole linguistiche, questa volta
empiriche, sono state scritte seguendo il semplice principio di lasciar passare inalterato il segnale
Δuω se la corrente di armatura è lontana dal valore nominale, e ridurre invece in maniera sempre più drastica
la tensione di armatura man mano che ci si avvicina ai limiti di corrente. La rule table è di seguito riportata,
assieme alla definizione dei fuzzy set per la corrente d'armatura.

Δuω
NB NM NS ZE PS PM PB
NO PS PS PS PS PM PB PB
NR ZE ZE ZE ZE PS PM PB
NU NM NM NS ZE PS PM PB
ia FU NB NM NS ZE PS PM PB
PU NB NM NS ZE PS PM PM
PR NB NM NS ZE ZE ZE ZE
PO NB NB NM NS NS NS NS

Tab.3.13.4 - Rule table per FLC2

μ (.)
FU PU PR PO
NO NR NU

ia
-1 -0.8 0.8 1
0

Fig.3.13.5 - Fuzzy set per la sintesi della LUT2

Naturalmente, il controllo tramite LUT soffre di mancanza di risoluzione, specialmente quando si vuole
mantenere limitata la dimensioni delle tabelle per contenere il fabbisogno di memoria del microprocessore.
Per ovviare parzialmente aquesto inconveniente si può ricorrere alla interpolazione lineare tra i valori
d'uscita.
All'atto pratico, l'FLC ha comunque bisogno di una serie di tarature, come ogni controllore
convenzionale. La struttura fortemente non lineare e l'esperienza che incorporano nelle rule table rende
l'azionamento con logica fuzzy meno sensibile alle variazioni parametriche e con prestazioni dinamiche
superiori all'azionamento controllato tramite regolatore PI convenzionale.

Nella pratica industriale, comunque, anche i controllori PI vengono realizzati con molti accorgimenti che ne
migliorano nettamente le prestazioni, che diventano del tutto comparabili con quelle di un FLC.

19

Potrebbero piacerti anche