Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
Il controllore e la retroazione, fuzzificazione, inferenza e defuzzificazione, baricentro, bisettore e media dei massimi, il controllore di Takagi–Sugeno, le superfici di controllo e un controllore fuzzy che tiene in equilibrio l’asta sul carrello.
Serie Basi di IA Parte 35 di 52
- Mappa dell’intelligenza artificiale: che cos’è ciascuna cosa e come si incastra tutto
- Breve storia dell’intelligenza artificiale: da Turing ai modelli linguistici
- Dati, modello, addestramento, inferenza: i concetti di base su un unico esempio
- Come leggere la notazione matematica: simboli, indici, sommatorie e quantificatori
- Insiemi e relazioni: i mattoncini con cui si costruiscono le definizioni nell’IA
- Funzioni e applicazioni: perché ogni modello di IA è una funzione
- Logica e dimostrazioni: le regole con cui si ragiona nell’IA
- Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
- Algebra lineare per l’apprendimento automatico: vettori, matrici e perché l’IA soprattutto moltiplica
- Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare
- Discesa del gradiente: come impara un modello
- Che cos’è la probabilità: dal lancio di un dado agli assiomi di Kolmogorov
- Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo
- Variabile aleatoria e funzione di ripartizione: una sola funzione che dice tutto sulla distribuzione
- Funzione di densità e funzione di massa: perché una variabile continua ha probabilità zero in un punto
- Valore atteso, varianza e covarianza: dove si trova una distribuzione, quanto è larga e che cosa è legato a che cosa
- Panoramica delle distribuzioni di probabilità: Bernoulli, binomiale, Poisson, uniforme, normale ed esponenziale
- Legge dei grandi numeri e teorema del limite centrale: perché le medie si comportano in modo così prevedibile
- Statistica e stima dei parametri: massima verosimiglianza, MAP e intervalli di confidenza
- Teoria dell’informazione: entropia, entropia incrociata e divergenza KL — da dove vengono le funzioni di perdita
- Ricerca nello spazio degli stati: BFS, DFS, UCS e A* con animazioni
- Giochi e avversari: minimax, potatura alfa-beta e Monte Carlo tree search
- Soddisfacimento di vincoli: backtracking, propagazione dei vincoli e AC-3 su un sudoku e una mappa delle regioni ceche
- Logica e sistemi basati sulla conoscenza: concatenazione in avanti e all’indietro, risoluzione e sistemi esperti
- Pianificazione: STRIPS, il mondo dei blocchi, euristiche dal rilassamento e pianificazione negli agenti IA
- Ricerca locale e ricottura simulata: un commesso viaggiatore tra i capoluoghi di regione cechi
- Algoritmi genetici: popolazione, incrocio, mutazione e selezione su uno zaino per l’escursione
- Strategie evolutive e programmazione genetica: dalla regola di un quinto alla legge di Keplero
- Ottimizzazione con colonie di formiche: come una traccia di feromone trova un percorso breve
- Ottimizzazione a sciame di particelle: inerzia, esperienza propria ed esperienza dello sciame
- Neuroevoluzione: evoluzione dei pesi e della forma delle reti neurali e l’algoritmo NEAT
- Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo»
- Logica fuzzy e probabilità: perché «un po’ caldo» non significa «probabilmente caldo»
- Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
- Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
- Clustering fuzzy: l’algoritmo fuzzy c-means e i punti tra i cluster
- Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
- Catene di Markov: matrice di transizione, distribuzione stazionaria e PageRank
- Modelli di Markov nascosti: l’algoritmo di Viterbi e il casinò disonesto
- Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
- Filtro di Kalman: come stimare da misure imprecise dove si trova un’auto e a che velocità va
- Tipi di apprendimento automatico: supervisionato, non supervisionato, semi-supervisionato e altri
- Prompt, contesto e RAG: come dare a un modello le informazioni giuste
- Autoencoder variazionali (VAE): immagini nuove da uno spazio latente continuo
- Reti generative avversarie (GAN): il falsario contro il detective
- Modelli di diffusione: come il rumore puro diventa un’immagine
- Processi decisionali di Markov: stati, azioni, ricompense ed equazioni di Bellman
- Q-learning e DQN: imparare il valore delle azioni, dalla tabella alla rete neurale
- Policy gradient e PPO: imparare direttamente la politica
- Come funziona un agente IA: un modello linguistico in un ciclo con strumenti
- Programmare con agenti IA: incarico, test e controllo
- Valutazione e sicurezza dei sistemi di IA: come misurare e come sorvegliare
Programma completo della serie 52 di 83 argomenti pubblicati
- Come un controllore fuzzy trasforma una misura in un’azione: fuzzificazione, inferenza e defuzzificazione.
- In che cosa differiscono i controllori di Mamdani e di Sugeno e perché il baricentro non raggiunge gli estremi dell’intervallo.
- Come nove regole tengono in piedi l’asta sul carrello — e perché per tenere anche il carrello serve ancora un termine lineare.
Utile sapere prima: Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
Nel 1974 Ebrahim Mamdani sedeva in un laboratorio londinese davanti a una piccola macchina a vapore che con i metodi classici non si riusciva a controllare. Un operatore esperto, invece, la governava senza problemi — seguendo regole come «se la pressione è un po’ alta e sta salendo, togli un po’ di vapore». Mamdani e il suo studente Sedrak Assilian scrissero quelle regole in logica fuzzy e lasciarono che fossero loro a controllare la macchina. Funzionò. Dieci anni dopo i controllori fuzzy guidavano i forni da cemento, qualche anno più tardi la metropolitana e le lavatrici. Nella parte precedente abbiamo imparato a valutare le regole; ora ne costruiremo un controllore che restituisce un solo numero — e gli faremo tenere in equilibrio un’asta.
Riprende le parti Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA e Neuroevoluzione, da cui prenderemo in prestito il pendolo inverso su un carrello.
1. Il controllore e la retroazione
Definizione — controllore
Un controllore è una funzione u = R(x) dallo stato misurato del sistema x all’azione di controllo u. In un anello chiuso l’azione si ripercuote sul sistema, questo cambia, viene misurato di nuovo e il controllore interviene di nuovo — tipicamente da decine a migliaia di volte al secondo.
Il termostato misura la temperatura e accende il riscaldamento; la temperatura cambia, il termostato la misura di nuovo. Il controllore è la regola «che cosa fare quando vedo questo». La teoria del controllo classica lo progetta a partire dalle equazioni del sistema. Un controllore fuzzy lo compone di regole, così come le direbbe una persona esperta.
Definizione — anello chiuso a tempo discreto
Il computer misura e interviene a passi di durata Δt. Lo stato xk al passo k evolve secondo le equazioni del moto del sistema F e l’azione del controllore:
uk = R(xk), xk+1 = F(xk, uk), k = 0, 1, 2, …
Il controllore quindi non vede né il futuro né le equazioni F — solo la misura attuale. Per il pendolo alla fine della parte Δt = 0,02 s, quindi un minuto di controllo corrisponde a 3 000 passi dell’anello.
2. I tre passi di un controllore fuzzy
- La fuzzificazione trasforma le misure nette in gradi di appartenenza: 27 °C è «gradevole» a 0,2 e «caldo» a 0,83, l’umidità del 60 % è «umido» a 0,67.
- L’inferenza valuta le regole come mostrato nella parte precedente: ogni regola ha una forza e taglia la propria conclusione; le conclusioni si uniscono con il massimo.
- La defuzzificazione trasforma l’insieme fuzzy risultante in un solo numero, che va al motore.
Esempio — fuzzificazione di 27 °C e 60 %
I termini della parte precedente: gradevole è il trapezio (10, 17, 23, 28), caldo il triangolo (22, 28, 34), torrido il trapezio (30, 36, 40, 40); secco è il trapezio (0, 0, 30, 50), umido (40, 70, 100, 100). Sul lato discendente del trapezio (a, b, c, d) vale μ(x) = (d − x) / (d − c), su quello ascendente (x − a) / (b − a).
- gradevole(27) = (28 − 27) / (28 − 23) = 1/5 = 0,2,
- caldo(27) = (27 − 22) / (28 − 22) = 5/6 ≈ 0,83 (27 sta sul lato ascendente),
- freddo(27) = torrido(27) = 0 — 27 è fuori dai loro supporti,
- umido(60) = (60 − 40) / (70 − 40) = 2/3 ≈ 0,67, secco(60) = 0 (il supporto finisce a 50).
L’inferenza secondo Mamdani è un’unica formula che compone l’insieme fuzzy di uscita dalle conclusioni tagliate:
μout(y) = maxi min( αi, μBi(y) ), αi = T(μAi1(x1), …, μAin(xn))
- μout(y)
- insieme fuzzy di uscita — per ogni possibile valore dell’uscita y dice quanto lo sostengono le regole; è un’intera funzione, non un numero, per questo deve seguirla ancora la defuzzificazione (nella figura qui sotto è l’area verde)
- αi
- forza della i-esima regola — la t-norma T (qui il minimo) unisce le condizioni «e»; una regola non può valere più della sua condizione più debole
- μBi(y)
- conclusione della regola, per esempio «veloce» — la forma che l’uscita avrebbe se la regola valesse in pieno
- min
- taglio — la conclusione può essere sostenuta solo quanto vale la premessa; una regola debole dà così un «altopiano» basso
- maxi
- unione delle regole — le regole si intendono come alternative («o»), quindi il valore y è sostenuto quanto lo sostiene la regola più forte
Esempio — l’insieme di uscita del ventilatore
Forze delle regole: R1 (freddo o gradevole → lento) ha α1 = max(0; 0,2) = 0,2; R2 (caldo e secco → medio) min(0,83; 0) = 0; R3 (caldo e umido → veloce) min(5/6; 2/3) = 2/3; R4 (torrido → veloce) 0.
Lento è il trapezio (0, 0, 20, 45), tagliato all’altezza 0,2: altopiano 0,2 fino a y = 40 (lì il lato discendente (45 − y)/25 scende a 0,2) e poi discesa fino a zero in 45. Veloce è il trapezio (55, 80, 100, 100), tagliato a 2/3: il lato (y − 55)/25 raggiunge 2/3 in y = 55 + 25 · 2/3 ≈ 71,67. Il risultato:
μout(y) = 0,2 su [0; 40], (45 − y)/25 su [40; 45], 0 su [45; 55], (y − 55)/25 su [55; 71,67] e 2/3 su [71,67; 100].
L’intero controllore in pseudocodice, con l’asse di uscita suddiviso in una griglia:
def mamdani(vstup, pravidla, mrizka): # mrizka = 0; 0,1; …; 100
sily = []
for r in pravidla: # 1. fuzzificazione + forza della regola:
sily.append(min( # «e» = minimo, «o» = massimo
max(mu(t, vstup[prom]) for t in terminy)
for prom, terminy in r.kdyz))
vystup = [max(min(a, r.pak(y)) for a, r in zip(sily, pravidla))
for y in mrizka] # 2. taglio e unione con il massimo
citatel = sum(y * m for y, m in zip(mrizka, vystup))
jmenovatel = sum(vystup) # 3. defuzzificazione con il baricentro
return citatel / jmenovatel if jmenovatel > 0 else 50
3. Defuzzificazione
Definizione — metodi di defuzzificazione
Per un insieme fuzzy di uscita con funzione di appartenenza μ sull’intervallo delle uscite:
- Baricentro (centroide): y* = ∫ y μ(y) dy / ∫ μ(y) dy.
- Bisettore: il y* per cui l’area sotto μ a sinistra è uguale a quella a destra.
- Media dei massimi: la media dei punti in cui μ raggiunge il massimo.
L’insieme risultante è come un mucchietto di sabbia versato sopra l’asse della velocità. Il baricentro è il punto in cui il mucchietto starebbe in equilibrio su un’asse; il bisettore lo divide in due metà uguali; la media dei massimi guarda solo la parte più alta e ignora il resto.
y* = ∫ y · μ(y) dy / ∫ μ(y) dy
- y*
- uscita netta — un solo numero, che va al motore, perché il motore non capisce un insieme fuzzy
- y
- posizione sull’asse della velocità — il «braccio della leva»; ogni valore vota per sé
- μ(y)
- peso del voto — i valori che le regole sostengono di più tirano il risultato più forte (l’area verde nella figura)
- ∫ μ(y) dy
- area totale — dividendo, dalla somma pesata otteniamo una media pesata; senza di essa il risultato crescerebbe con il numero di regole che scattano, non secondo dove puntano
Per il nostro ingresso il baricentro dà 65,9 %, il bisettore 75,3 % e la media dei massimi 85,9 %. La differenza sta in quanto voto riceve la regola più debole R1 («lento» con forza 0,2): il baricentro ne tiene conto per intero, la media dei massimi per niente. Il baricentro è il più usato, perché l’uscita cambia in modo continuo. Ha però un difetto: non raggiunge mai gli estremi dell’intervallo. Anche quando scatta solo la regola «veloce», il baricentro del suo trapezio sta all’83 %, non al 100 %.
Esempio — baricentro, bisettore e media dei massimi a mano
L’insieme di uscita della sezione sui passi è composto da rettangoli e triangoli, quindi gli integrali si calcolano da aree e baricentri noti (il baricentro di un triangolo rettangolo sta a un terzo dal suo lato verticale):
| Tratto | Forma | Area | Baricentro | Area · baricentro |
|---|---|---|---|---|
| [0; 40] | rettangolo di altezza 0,2 | 8 | 20 | 160 |
| [40; 45] | triangolo, discendente | 0,5 | 41,67 | 20,83 |
| [55; 71,67] | triangolo, ascendente | 5,56 | 66,11 | 367,28 |
| [71,67; 100] | rettangolo di altezza 2/3 | 18,89 | 85,83 | 1 621,30 |
| totale | 32,94 | 2 169,41 |
- Baricentro: y* = 2 169,41 / 32,94 ≈ 65,85 %. Il computer in
src/fuzzyrizeni.jssostituisce l’integrale con una somma a passi di 0,1 % e ottiene 65,87 — entrambi si arrotondano a 65,9 %. - Bisettore: metà dell’area è 16,47. Fino al punto 71,67 se ne accumulano 8 + 0,5 + 5,56 = 14,06, mancano 2,41; sull’altopiano di altezza 2/3 sono 2,41 / (2/3) ≈ 3,62 più in là, quindi y* ≈ 75,3 %.
- Media dei massimi: il massimo 2/3 vale su tutto [71,67; 100], la media degli estremi è (71,67 + 100)/2 ≈ 85,8 %. Il computer fa la media dei punti della griglia da 71,7 in su, per questo 85,9 %.
4. Takagi–Sugeno
Defuzzificare con il baricentro significa calcolare un integrale — nel 1985, sul piccolo processore di una lavatrice o di una videocamera, una cosa costosa. Tomohiro Takagi e Michio Sugeno proposero quindi regole che restituiscono direttamente un numero.
Definizione — controllore di Takagi–Sugeno
La regola ha la forma SE x1 è A1 e … e xn è An, ALLORA y = f(x1, …, xn). Nel Sugeno di ordine zero f è una costante, in quello del primo ordine una funzione lineare c0 + c1x1 + … + cnxn.
L’uscita è la media pesata delle conclusioni, i pesi sono le forze delle regole: y* = ∑i αi fi / ∑i αi.
Ogni regola non dice «la velocità è veloce» (un insieme fuzzy), ma «la velocità è al 90 %» (un numero). Il risultato è la media delle proposte di tutte le regole, pesata da quanto vale ciascuna regola. Nessun integrale, solo qualche moltiplicazione e una divisione.
Diamo al ventilatore le stesse regole, solo con conclusioni costanti: lento = 15 %, medio = 50 %, veloce = 90 %. A 27 °C e 60 % di umidità l’uscita è (0,2 · 15 + 2/3 · 90) / (0,2 + 2/3) = 63 / 0,867 ≈ 72,7 %.
y* = ∑i αi · fi / ∑i αi
- y*
- uscita netta — direttamente, senza insieme fuzzy di uscita e senza defuzzificazione
- αi
- forza della regola, la stessa di Mamdani — stabilisce quanto voto riceve la regola
- fi
- proposta della regola — un numero (ordine 0) o una funzione lineare degli ingressi (ordine 1); sostituisce l’intera forma «veloce» con un unico rappresentante
- ∑i
- somma dei voti di tutte le regole — le regole che non valgono (αi = 0) contribuiscono con zero
- ∑i αi
- normalizzazione — i pesi αi / ∑ αk sommano a 1, quindi il risultato è la media delle proposte e non dipende da quanto valgono tutte le regole insieme
Teorema — il Sugeno di ordine zero raggiunge gli estremi
Se vale almeno una regola (∑ αi > 0), l’uscita del Sugeno di ordine zero sta tra la costante minima e quella massima delle regole che valgono: min fi ≤ y* ≤ max fi. Se valgono solo regole con la stessa costante c, allora y* = c esattamente.
Dimostrazione: poniamo λi = αi / ∑k αk. Allora λi ≥ 0, ∑ λi = 1 e y* = ∑ λi fi è una combinazione convessa, che non può uscire da [min fi, max fi]. Se tutti gli fi con λi > 0 sono uguali a c, allora y* = c ∑ λi = c. ∎
Il baricentro di Mamdani non dà questa garanzia: anche la sola conclusione «veloce» ad altezza piena ha il baricentro all’83 %, perché nella media entra anche il suo lato ascendente da 55 %.
5. La superficie di controllo
Il controllore è una funzione di due variabili, quindi si può disegnare per intero. Ogni casella è una combinazione di temperatura e umidità, la luminosità dice quanto velocemente gira il ventilatore:
Le due superfici si somigliano — sotto i 20 °C lento, con caldo e umido veloce — e passano in modo continuo, senza salti. Differiscono agli estremi. A 35 °C e 90 % di umidità il Sugeno dà esattamente 90 %, il Mamdani solo 82,2 %; al fresco di 15 °C il Sugeno dà 15 %, il Mamdani 18,4 %. È proprio il difetto del baricentro: il controllore di Mamdani non arriva mai agli estremi. Al centro, dove le regole si sovrappongono, i due si comportano invece in modo diverso, perché fanno la media di proposte di forma diversa.
Definizione — superficie di controllo
La superficie di controllo di un controllore a due ingressi è il grafico della funzione R: [0; 40] °C × [0; 100] % → [0; 100] %, cioè l’insieme {(T, h, R(T, h))}. La figura la calcola su una griglia di 41 temperature (a passi di 1 °C) × 26 umidità (a passi del 4 %).
Esempio — l’angolo della superficie: 35 °C e 90 %
torrido(35) = (35 − 30) / (36 − 30) = 5/6 ≈ 0,83, caldo(35) = 0 (il triangolo finisce a 34), gradevole e freddo sono 0. Vale una sola regola, R4 (torrido → veloce), con forza 0,83.
- Sugeno: y* = 0,83 · 90 / 0,83 = 90 % — esattamente, secondo il teorema qui sopra.
- Mamdani: «veloce» tagliato a 5/6 è un triangolo su [55; 75,83] (area ½ · 20,83 · 5/6 ≈ 8,68, baricentro 55 + ⅔ · 20,83 ≈ 68,89) e un rettangolo su [75,83; 100] (area 24,17 · 5/6 ≈ 20,14, baricentro 87,92). y* = (8,68 · 68,89 + 20,14 · 87,92) / (8,68 + 20,14) ≈ 82,2 %.
Nell’altro angolo, 15 °C e 30 %, gradevole(15) = (15 − 10) / (17 − 10) ≈ 0,71 e vale solo R1; il Sugeno dà esattamente 15 %, il baricentro di «lento» tagliato 18,4 %.
6. Il pendolo fuzzy
Nella parte sulla neuroevoluzione l’asta sul carrello la teneva in equilibrio una rete i cui pesi li aveva trovati l’evoluzione. Ora proviamo con regole che scriverebbe una persona. Gli ingressi sono l’angolo dell’asta e la sua velocità, entrambi con tre termini — negativo, zero e positivo; l’uscita è una forza da −10 a +10 N, Sugeno di ordine zero:
| angolo \ velocità angolare | cade a sinistra | ferma | cade a destra |
|---|---|---|---|
| inclinata a sinistra | −10 N | −5 N | 0 N |
| verticale | −5 N | 0 N | +5 N |
| inclinata a destra | 0 N | +5 N | +10 N |
Nove regole come «SE l’asta è inclinata a destra E cade a destra, ALLORA spingi il carrello con forza a destra». La logica è la stessa di una scopa in equilibrio sul palmo: la mano va sotto l’asta, dalla parte verso cui l’asta cade.
Definizione — controllore fuzzy del pendolo
Lo stato è (x, ẋ, θ, θ̇) come nella parte sulla neuroevoluzione, passo 0,02 s. Termini dell’angolo θ (in gradi): zero è il triangolo (−6, 0, 6), positivo il trapezio (0, 6, 90, 90) — cresce da 0° a 6° e oltre vale 1 —, negativo specularmente. I termini della velocità angolare θ̇ (°/s) hanno la stessa forma con 40 al posto di 6 (e 900 al posto di 90).
La forza della regola con i termini a (angolo) e b (velocità) è wab = min(μa(θ), μb(θ̇)), la conclusione cab è il numero della tabella e la forza sul carrello è F = ∑ wab cab / ∑ wab, limitata a [−10; 10] N.
Esempio — asta inclinata di 2° che cade a 10 °/s verso destra
Angolo: zero(2) = (6 − 2)/6 = 2/3, positivo(2) = 2/6 = 1/3. Velocità: zero(10) = (40 − 10)/40 = 0,75, positiva(10) = 10/40 = 0,25. I termini negativi sono 0, quindi valgono quattro regole:
- verticale e ferma: w = min(2/3; 0,75) = 2/3, conclusione 0 N,
- verticale e cade a destra: w = min(2/3; 0,25) = 0,25, conclusione +5 N,
- a destra e ferma: w = min(1/3; 0,75) = 1/3, conclusione +5 N,
- a destra e cade a destra: w = min(1/3; 0,25) = 0,25, conclusione +10 N.
F = (2/3 · 0 + 0,25 · 5 + 1/3 · 5 + 0,25 · 10) / (2/3 + 0,25 + 1/3 + 0,25) = 5,417 / 1,5 ≈ 3,61 N verso destra — il carrello va sotto l’asta.
L’asta sta in piedi — dopo pochi secondi l’angolo è praticamente nullo. Però il carrello scivola lentamente via, perché le regole sul carrello non dicono nulla, e dopo 22 secondi esce dal binario. Dalle tre partenze della parte sulla neuroevoluzione il controllore ha resistito 22, 12,9 e 15,7 s.
Lo correggiamo con un Sugeno del primo ordine: a ogni costante della tabella aggiungiamo 1 · x + 2 · ẋ, dove x è la posizione del carrello e ẋ la sua velocità. Ora il controllore tiene l’asta da tutte e tre le partenze per un minuto intero e il carrello si allontana dal centro al massimo di 0,58 m. Interessante è il segno: quando il carrello scivola verso destra, il controllore lo spinge ancora più a destra. L’asta così si inclina a sinistra — e poi le regole sull’asta riportano indietro il carrello. I segni opposti «intuitivi», che spingerebbero il carrello direttamente verso il centro, fanno cadere l’asta entro cinque secondi. Le regole di un operatore esperto sono quindi preziose proprio perché codificano un’esperienza che un profano non inventerebbe.
F = ∑ wab cab / ∑ wab + kx x + kv ẋ
- F
- forza sul carrello (prima della limitazione a ±10 N)
- ∑ wab cab / ∑ wab
- il Sugeno di ordine zero originale — nove regole sull’asta; tiene l’asta verticale, del carrello non sa nulla
- kx x
- reazione alla posizione del carrello, kx = 1 N/m — senza di essa il carrello uscirebbe impunemente dal binario; il segno positivo sembra mandare il carrello verso l’esterno, ma così inclina l’asta verso l’interno e poi le regole sull’asta riportano indietro il carrello
- kv ẋ
- reazione alla velocità del carrello, kv = 2 N·s/m — smorzamento; con la sola posizione (kv = 0) il carrello oscilla attorno al centro sempre di più e da tutte e tre le partenze esce dal binario dopo 32–53 s
Nell’esempio qui sopra, con il carrello 0,3 m a destra che va a 0,1 m/s verso destra, risulta quindi F = 3,61 + 1 · 0,3 + 2 · 0,1 ≈ 4,11 N.
7. Mamdani o Sugeno?
| Mamdani | Sugeno | |
|---|---|---|
| Conclusione della regola | insieme fuzzy («veloce») | numero o funzione lineare |
| Uscita | defuzzificazione, di solito il baricentro | media pesata |
| Calcolo | integrale sull’uscita | qualche moltiplicazione |
| Leggibilità | regole come frasi | numeri nelle conclusioni |
| Estremi dell’intervallo | il baricentro non li raggiunge | li raggiunge |
| Apprendimento dai dati | difficile | i parametri delle conclusioni si possono regolare — vedi ANFIS |
Mamdani è adatto dove le regole le scrivono e le leggono le persone. Sugeno dove conta la velocità di calcolo e dove vogliamo regolare il controllore dai dati misurati — a questo è dedicata l’ultima parte del modulo.
8. I controllori fuzzy nella pratica
- Il forno da cemento dell’azienda danese F. L. Smidth fu intorno al 1980 una delle prime applicazioni industriali — il forno è difficile da modellare, ma gli operatori lo guidavano in base all’esperienza.
- La metropolitana di Sendai (1987) accelera e frena secondo regole fuzzy; la corsa è più fluida e il produttore indicava anche un risparmio di energia.
- Elettrodomestici. Intorno al 1990 le aziende giapponesi offrivano lavatrici che sceglievano il programma in base alla torbidità dell’acqua e alla quantità di bucato, e videocamere con messa a fuoco e stabilizzazione dell’immagine fuzzy.
- Oggi la maggior parte del controllo industriale la svolgono i regolatori PID e il controllo predittivo. Le regole fuzzy si usano piuttosto «sopra di loro» — cambiano le impostazioni a seconda del regime di funzionamento — e ovunque sia più prezioso scrivere velocemente un’esperienza che costruire un modello preciso.
9. Riepilogo
- Un controllore fuzzy ha tre passi: fuzzificazione, inferenza secondo le regole e defuzzificazione.
- La defuzzificazione trasforma l’insieme fuzzy di uscita in un numero; per il ventilatore il baricentro dà 65,9 %, il bisettore 75,3 % e la media dei massimi 85,9 %.
- Il Sugeno ha nelle conclusioni numeri o funzioni lineari e l’uscita è una media pesata — 72,7 % per lo stesso ingresso, senza integrale.
- La superficie di controllo mostra tutto il controllore in una volta; il baricentro non raggiunge mai gli estremi dell’intervallo.
- Nove regole sull’asta la tengono in piedi, ma il carrello scivola via; un Sugeno del primo ordine con posizione e velocità del carrello tiene entrambi per un minuto intero.
Vuoi provarlo con mano? Fai scrivere a un agente IA un termostato fuzzy per una stanza simulata con il riscaldamento in ritardo e prova quante regole bastano perché la temperatura non oscilli.
La vedi diversamente? Scrivi a support@coden-app.com.