Overshoot, ritardo, oscillazioni, divergenza
Perché un anello di feedback negativo, che dovrebbe calmare un sistema, a volte lo fa oscillare o esplodere — e perché la colpa quasi sempre non è dello schema, ma di un ritardo nel giro dell’anello.
Perché questo capitolo
Sezione intitolata “Perché questo capitolo”C’è una scena che chiunque ha vissuto. Una doccia con un tubo lungo, l’acqua esce fredda, giri la manopola verso il caldo. Per qualche secondo non cambia niente. Pensi di non aver girato abbastanza e giri ancora. Poi l’acqua calda arriva tutta insieme e ti scotta. Giri verso il freddo, di nuovo troppo, e dopo qualche secondo l’acqua è gelata. Sei intrappolato in un’oscillazione tra bollente e gelato, e a volte sembra perfino peggiorare a ogni giro. Non sei stupido e la doccia non è rotta. Sei dentro un anello di feedback con un ritardo, e stai sperimentando di persona il fenomeno centrale di questo capitolo.
Il capitolo Anatomia di un anello: errore, setpoint, guadagno, ritardo ha smontato l’anello di feedback nei suoi sei pezzi e ha mostrato che un feedback negativo — un anello che misura uno scarto e agisce per ridurlo — è il modo elementare con cui un sistema insegue un obiettivo. Ha anche anticipato che un guadagno troppo alto fa oscillare l’anello e un ritardo troppo lungo lo fa divergere.
Questo capitolo prende quell’anello che gira e fa una sola domanda, ma fino in fondo: che destino ha? Tre esiti sono possibili. Il sistema converge e si posa sul bersaglio. Il sistema oscilla attorno al bersaglio per sempre, senza posarsi. Il sistema diverge, si allontana sempre di più.
La differenza tra questi tre destini non sta nello schema dell’anello — lo schema è identico — ma in due numeri, il guadagno e il ritardo, e in come si combinano. È una buona notizia: significa che la stabilità non richiede un anello diverso, richiede di tarare bene quello che già hai.
C’è una ragione concreta per cui chi costruisce sistemi AI dovrebbe dare un nome a questi tre destini. Il loop di un agente — osserva, pensa, agisci, ri-osserva — è un anello di feedback nel senso tecnico stretto. Il training di una rete neurale è un anello di feedback: la loss misura l’errore, il gradiente indica la correzione, l’optimizer la applica. E i modi in cui un anello di feedback si rompe sono esattamente i modi in cui un agente o un training si rompono. Una loss che oscilla invece di scendere, un agente che riscrive una funzione e poi la ri-riscrive nel senso opposto, due agenti che si rimpallano lo stesso task: non sono guasti casuali, sono oscillazioni di un anello con troppo guadagno o troppo ritardo. Dare loro il nome giusto è la differenza tra il debugging strutturato e il “riproviamo cambiando qualcosa a caso”.
Una precisazione utile prima di entrare nel merito. Il fenomeno di questo capitolo non è un caso patologico raro: è il comportamento generico di un anello di feedback non progettato con cura. Costruire un anello che insegue un obiettivo è facile — bastano un sensore, un confronto e un’azione.
Costruirne uno che insegue l’obiettivo e si ferma su di esso senza oscillare è la parte difficile, ed è tutta in questi due numeri. È il motivo per cui un secolo di teoria del controllo si è concentrato esattamente qui: non sul “come chiudere l’anello”, che è ovvio, ma sul “come chiuderlo senza che si metta a oscillare”, che non lo è affatto.
Contesto
Sezione intitolata “Contesto”Il fenomeno è antico, la sua teoria è di un secolo fa. Per quasi tutto l’Ottocento i regolatori centrifughi delle macchine a vapore — quelle due sfere metalliche che ruotano e, sollevandosi, chiudono la valvola del vapore per tenere costante la velocità del motore — funzionavano senza che nessuno avesse una teoria del perché.
E senza una teoria del perché certi regolatori, invece di calmare il motore, lo facevano oscillare con ampiezza crescente. Gli ingegneri dicevano che il motore “andava a caccia” della velocità voluta — hunting — senza riuscire a posarcisi sopra. Con i motori che diventavano più grandi e veloci a metà secolo, l’instabilità dei regolatori era un problema costoso e nessuno sapeva prevederla.
La prima teoria arriva con James Clerk Maxwell (fisico e matematico scozzese, 1831-1879, lo stesso delle equazioni dell’elettromagnetismo). Il suo articolo “On Governors” del 1868, pubblicato nei Proceedings of the Royal Society of London, è il primo trattamento matematico serio della stabilità di un sistema a retroazione: Maxwell riduce la domanda “il regolatore è stabile?” a una domanda algebrica sulle radici di un polinomio. Quel capitolo della storia è raccontato in Anatomia di un anello; qui ci interessa il salto successivo.
Il salto decisivo avviene negli anni ‘20 e ‘30 ai Bell Labs, il centro di ricerca della compagnia telefonica americana, attorno a un problema diverso ma con la stessa struttura: amplificare un segnale telefonico su migliaia di chilometri. Per farlo servono ripetitori in cascata, ognuno con un amplificatore a valvole. Ma le valvole sono componenti non lineari: introducono distorsione, e la distorsione si accumula lungo la catena finché la voce diventa irriconoscibile.
Harold Black (ingegnere di Bell Labs, 1898-1983) ha l’idea risolutiva il 2 agosto 1927 — la data è documentata perché la annotò su una pagina del New York Times mentre andava al lavoro in traghetto. L’idea è l’amplificatore a controreazione, o a feedback negativo: si prende un amplificatore con guadagno enorme e “sporco”, se ne riporta indietro una frazione dell’uscita con segno opposto all’ingresso, e si scambia il guadagno in eccesso con linearità e basso rumore.
Funziona — ma porta con sé un problema nuovo. Questi amplificatori a feedback, ogni tanto, si mettono a oscillare da soli, generando un fischio acuto, l’howling, che rovina la trasmissione.
Vale la pena fermarsi sul perché questo problema, ai Bell Labs, fosse molto più urgente che ai tempi dei regolatori a vapore. Un regolatore instabile è un singolo dispositivo che fa rumore e si può andare a guardare. Un amplificatore a feedback instabile dentro una catena di ripetitori telefonici è un guasto che si manifesta a chilometri di distanza, e che dipende dall’interazione tra tutti i componenti della catena: nessuno può “andare a vedere il pezzo rotto”, perché non c’è un pezzo rotto, c’è una catena chiusa che si auto-eccita.
Black aveva un’invenzione che funzionava in laboratorio ma che, per essere messa in produzione su scala continentale, doveva essere garantita stabile prima di costruirla. Serviva una teoria predittiva, non un rimedio a posteriori. È esattamente la posizione in cui si trova oggi chi mette in produzione un sistema agentico complesso: testarlo dopo non basta, serve un modello che dica in anticipo se oscillerà.
Qui entra Harry Nyquist (ingegnere svedese-americano dei Bell Labs, 1889-1976). Nel 1932 pubblica sul Bell System Technical Journal il paper “Regeneration Theory”, che dà un criterio rigoroso e misurabile per decidere, prima di costruire l’amplificatore, se sarà stabile o se oscillerà. Il contributo concettuale di Nyquist è riformulare il feedback come un fenomeno che dipende dalla frequenza: un disturbo qualsiasi si scompone in tante componenti oscillanti a frequenze diverse, e il sistema è instabile se a una certa frequenza il segnale che torna indietro arriva nel momento sbagliato e abbastanza forte.
Hendrik Bode (ingegnere e matematico americano dei Bell Labs, 1905-1982) negli anni ‘30 e ‘40 trasforma l’analisi di Nyquist in uno strumento ingegneristico pratico — i diagrammi che portano il suo nome, e i concetti di margine di guadagno e margine di fase che vedremo. Black, nel suo paper del 1934 “Stabilized Feed-Back Amplifiers”, cita esplicitamente la teoria di Nyquist: è grazie a quella teoria che riesce a costruire un amplificatore a feedback davvero stabile.
Vale la pena marcare la classe di questo legame, perché è netto. Da Maxwell a Nyquist a Bode a Black c’è una filiazione documentata, non un’analogia: ciascuno cita e prosegue il lavoro del precedente, e Black usa letteralmente la matematica di Nyquist nel suo progetto.
Da questo filone nasce la teoria del controllo classica, e da lì Norbert Wiener (matematico statunitense, 1894-1964) estrarrà nel 1948 la cibernetica come disciplina generale del feedback in macchine e organismi — il tema del capitolo Wiener: comunicazione e controllo in animali e macchine. Questo capitolo sta dentro quel filone: prende l’anello di feedback e ne studia il fallimento.
L’intuizione
Sezione intitolata “L’intuizione”Tre destini, due cause. Il modo più rapido per afferrare il fenomeno è guardarlo da angoli distinti. Il primo è la doccia: un’esperienza fisica che chiunque ha vissuto e che contiene già tutto. Il secondo è più meccanico e riguarda il segno del segnale che torna indietro — è il cuore del criterio di Nyquist senza il formalismo. Il terzo, l’altalena, chiarisce perché il momento della spinta conta quanto la sua forza.
Primo angolo: la doccia con il ritardo
Sezione intitolata “Primo angolo: la doccia con il ritardo”Torniamo alla scena dell’apertura e smontiamola. La doccia è un anello di feedback. Il processo è la temperatura dell’acqua che ti arriva addosso. Il sensore è la tua pelle. Il comparatore sei tu che confronti quella temperatura con quella che vorresti. Il controllore sei sempre tu, che dallo scarto decidi di quanto girare la manopola. L’attuatore è la manopola e il miscelatore.
Fin qui è l’anello descritto in Anatomia di un anello. La novità è il tubo: tra il punto in cui giri la manopola e il punto in cui l’acqua a quella nuova temperatura ti raggiunge passa del tempo. Quel tempo è il ritardo.
Guarda cosa fa il ritardo, passo per passo. L’acqua è fredda, giri verso il caldo di una certa quantità. Per qualche secondo la tua pelle continua a sentire freddo, perché l’acqua nel tubo è ancora quella di prima.
Il tuo cervello, che non vede alcun effetto, conclude che hai girato troppo poco e gira ancora. Adesso nel tubo ci sono due correzioni in viaggio: la prima e la seconda. Quando finalmente arrivano, arrivano sommate, e l’acqua scotta.
Tu reagisci girando verso il freddo, magari più di quanto serva, e di nuovo per qualche secondo non senti nulla, e di nuovo correggi ancora. Dopo il ritardo, acqua gelata. Sei in oscillazione, e l’oscillazione l’hai costruita tu, un passo ragionevole alla volta.
Tre cose vanno estratte da questa scena, perché sono la tesi dell’intero capitolo.
La prima: il ritardo è la causa. Se l’acqua cambiasse temperatura nell’istante esatto in cui giri la manopola, regoleresti una volta e basta — vedi subito l’effetto, ti fermi quando è giusto. È l’intervallo tra l’azione e l’osservazione del suo effetto a ingannarti, a farti correggere una situazione che hai già corretto ma di cui non vedi ancora l’esito. Senza quel ritardo, nessuna oscillazione: solo una correzione e via.
La seconda: il guadagno decide la gravità. Il guadagno qui è quanto giri la manopola per ogni grado di scarto che senti. Se a ogni tentativo giri di pochissimo (guadagno basso), oscilli comunque, ma di poco, e in qualche giro ti assesti. Se giri di molto (guadagno alto), ogni correzione è violenta, scavalca il bersaglio di parecchio, e l’oscillazione invece di smorzarsi cresce.
La terza, che è la cura: non si elimina il feedback, si rallenta la mano. Una persona esperta con una doccia capricciosa fa una cosa precisa: gira poco, aspetta, sente l’effetto, gira ancora poco.
Sta abbassando il guadagno per compensare un ritardo che non può eliminare. Non rinuncia al feedback — continua a guardare il risultato — ma reagisce con prudenza proporzionata alla lentezza con cui le arrivano le informazioni. La cura non è correggere meno: è correggere con prudenza calibrata sul ritardo.
Questa scena, da sola, anticipa quasi tutto il resto del capitolo. Il bullwhip effect nelle catene di fornitura, la loss che diverge durante il training, l’agente che si corregge in loop: sono tutti la doccia, su scale e materiali diversi.
Secondo angolo: il segnale che torna in controfase
Sezione intitolata “Secondo angolo: il segnale che torna in controfase”Il secondo angolo è più meccanico e spiega perché il ritardo trasforma un feedback negativo, che dovrebbe stabilizzare, in qualcosa che oscilla. È il contenuto del criterio di Nyquist, raccontato senza numeri complessi.
Ripartiamo dal significato di “negativo”. Un feedback negativo funziona perché il segnale che torna indietro ha segno opposto all’errore: quando il sistema è sopra il bersaglio, la correzione spinge in giù; quando è sotto, spinge in su. Il segnale di ritorno si sottrae alla deviazione, e per questo l’anello converge. “Negativo” non vuol dire “cattivo”: vuol dire “di segno contrario all’errore, quindi tendente ad annullarlo”. Questa è la versione stabilizzante del feedback.
Ora il punto. Il segnale che torna indietro impiega tempo a fare il giro dell’anello — è il ritardo. Per un disturbo costante, un ritardo non cambia il segno: il segnale arriva in ritardo, ma con il verso giusto.
Per un disturbo che oscilla, invece, le cose cambiano radicalmente. Su un’oscillazione, un ritardo nel tempo equivale a uno sfasamento: il segnale di ritorno arriva spostato lungo l’onda.
E se il ritardo è tale da spostare il segnale di ritorno di mezzo periodo esatto — 180 gradi, una mezza oscillazione — succede una cosa sorprendente. Il segnale che doveva sottrarsi all’errore arriva esattamente quando l’errore ha cambiato segno, e quindi si somma. A quella precisa frequenza, il feedback negativo si comporta da feedback positivo.
Questa è la chiave di volta del capitolo, e merita di essere fissata con cura. Un feedback negativo non è negativo “per natura”: è negativo finché il segnale di ritorno arriva con il verso giusto. Il ritardo è ciò che può capovolgere quel verso.
Da qui esce il criterio di stabilità intuitivo, che vale la pena enunciare con precisione. Un sistema oscilla se esiste una frequenza alla quale valgono insieme due condizioni:
- il segnale che torna indietro è in controfase — sfasato di 180 gradi rispetto a dove dovrebbe essere — e
- torna indietro abbastanza forte, cioè il guadagno totale lungo tutto il giro dell’anello a quella frequenza è almeno 1.
I tre destini dipendono da quanto vale quel guadagno d’anello alla frequenza critica.
Se il segnale torna in controfase ma debole, con guadagno d’anello sotto 1, ogni giro l’oscillazione perde un po’ di ampiezza: si smorza, il sistema converge. Se torna in controfase con guadagno d’anello esattamente 1, ogni giro l’oscillazione si riproduce identica: oscillazione sostenuta ad ampiezza costante. Se torna in controfase con guadagno d’anello sopra 1, ogni giro l’oscillazione cresce: divergenza.
Questo riconnette i primi due angoli. Nella doccia il guadagno alto e il ritardo lungo facevano crescere l’oscillazione: ora sappiamo perché. Il ritardo fornisce lo sfasamento di 180 gradi (la controfase), il guadagno alto fornisce il guadagno d’anello sopra 1 (la forza).
Servono entrambi. Un ritardo lungo ma con guadagno bassissimo non diverge. Un guadagno altissimo ma senza ritardo non trova mai la frequenza in controfase. È la combinazione a essere pericolosa.
Terzo angolo: l’altalena spinta nel momento giusto
Sezione intitolata “Terzo angolo: l’altalena spinta nel momento giusto”C’è un terzo modo di entrare nell’idea, ed è utile perché chiarisce un punto che i primi due lasciano implicito: non basta che la spinta sia forte, deve arrivare al momento giusto. Pensa a un bambino su un’altalena. Per farlo salire sempre più in alto non serve spingere forte a caso: serve spingere in fase con il movimento, dare il colpo ogni volta che l’altalena è nel punto giusto della sua corsa. Una spinta data nel momento sbagliato — quando l’altalena sta tornando verso di te — frena invece di accelerare.
L’altalena è un sistema che oscilla a una sua frequenza naturale, e il genitore che spinge è una sorgente di energia esterna. Quando le due cose sono sincronizzate — la spinta arriva ogni volta in fase con l’oscillazione — l’energia si accumula e l’ampiezza cresce a ogni ciclo.
È esattamente quello che fa un anello di feedback instabile: il segnale che torna indietro, sfasato di 180 gradi dal ritardo, arriva ogni volta nel momento in cui alimenta l’oscillazione invece di smorzarla. Il sistema diventa il proprio genitore che spinge l’altalena. Non c’è una sorgente esterna: l’anello, chiuso su sé stesso, si auto-eccita.
Questo angolo spiega anche perché l’instabilità è selettiva in frequenza. L’altalena assorbe energia solo se la spingi alla sua frequenza; spingere a un ritmo qualunque non la fa salire. Allo stesso modo, un anello con ritardo non oscilla a qualunque frequenza: oscilla a quella precisa frequenza per cui il ritardo vale mezzo periodo.
È il motivo per cui il criterio di stabilità parla di “una frequenza” specifica e non di tutte: l’anello si auto-eccita solo dove ritardo e periodo sono nella proporzione giusta. Tenere a mente l’altalena chiarisce perché un sistema può essere perfettamente quieto sotto un disturbo lento e diventare instabile sotto un disturbo che capita di battere proprio sulla sua frequenza critica.
I due margini: quanto buffer prima del disastro
Sezione intitolata “I due margini: quanto buffer prima del disastro”Da questo criterio nascono due quantità che la teoria del controllo usa di continuo, e che hanno un significato intuitivo immediato.
Immagina di stare progettando un anello e di chiederti “quanto sono lontano dal bordo dell’instabilità?”. Ci sono due modi di avvicinarsi a quel bordo: aggiungere ritardo (più sfasamento) o aggiungere guadagno. I due margini misurano la distanza dal bordo lungo queste due direzioni.
Il margine di fase è quanto sfasamento extra — cioè quanto ritardo in più — il sistema tollera prima di oscillare. Tecnicamente: alla frequenza dove il guadagno d’anello vale esattamente 1, di quanti gradi è ancora lontana la fase dai 180 gradi fatali.
Se la risposta è “70 gradi”, puoi aggiungere ritardo fino a quando quel ritardo non vale 70 gradi di sfasamento a quella frequenza, e solo allora oscilli. Margine di fase grande significa “ho parecchio ritardo extra in cassa”: sistema robusto.
Il margine di guadagno è quanto guadagno extra il sistema tollera. Tecnicamente: alla frequenza dove la fase è già 180 gradi (la controfase), di quanto è ancora sotto 1 il guadagno d’anello.
Se è sotto 1 di un fattore 4, puoi quadruplicare il guadagno prima di oscillare. Margine di guadagno grande significa “ho parecchio guadagno extra in cassa”.
I valori che la pratica ingegneristica considera ragionevoli sono noti: un margine di fase tra 30 e 60 gradi e un margine di guadagno di un fattore 3 o più sono un buon compromesso tra velocità e robustezza. Un margine di fase intorno a 45 gradi corrisponde grosso modo a un overshoot del 20-25% nella risposta del sistema — un target di progetto comune. Margini troppo piccoli vogliono dire un sistema che oscilla al minimo imprevisto; margini enormi vogliono dire un sistema lentissimo, troppo timido per essere utile.
C’è un’asimmetria istruttiva tra i due margini. Il margine di guadagno protegge da un errore che è facile commettere — alzare il guadagno per andare più veloci — ma anche facile da diagnosticare. Il margine di fase protegge da una minaccia più subdola: il ritardo tende ad aumentare di nascosto.
Un sensore che invecchia e risponde più lento, una rete più carica che impiega di più a consegnare un messaggio, un agente a cui si aggiunge un passo di ragionamento: ognuna di queste cose erode il margine di fase senza che nessuno abbia toccato il guadagno. Molti sistemi che “hanno sempre funzionato e poi un giorno hanno iniziato a oscillare” non sono stati modificati: hanno solo accumulato ritardo finché il margine di fase si è esaurito. Tenere d’occhio il margine di fase significa tenere d’occhio quanto ritardo nascosto si sta accumulando.
La meccanica
Sezione intitolata “La meccanica”Adesso un po’ di meccanica, restando deliberatamente sul caso più semplice e facendo i conti a mente. La matematica che segue è poca: una sottrazione, una moltiplicazione, qualche passo di una successione. Non serve sapere di analisi né di numeri complessi. Serve solo seguire un numero che gira nell’anello e cambia a ogni passo.
Tre modi di accumulare ritardo
Sezione intitolata “Tre modi di accumulare ritardo”Vale la pena distinguere, perché nei sistemi reali il “ritardo” non è una cosa sola e le tre forme si sommano. Tutte e tre hanno lo stesso effetto — sfasare il segnale di ritorno — ma nascono da meccanismi diversi.
Il primo è il ritardo di trasporto (in inglese dead time): un intervallo di tempo netto durante il quale non succede nulla, poi l’effetto arriva intatto. È l’acqua che percorre il tubo della doccia, il pacco che viaggia tra due magazzini, la richiesta di rete che attende la risposta.
Si misura in secondi (o passi) ed è il tipo di ritardo più insidioso, perché non ha alcun effetto utile: è puro sfasamento, tempo perso.
Il secondo è il ritardo dinamico, dovuto all’inerzia del processo. Qui l’effetto non è assente e poi presente: comincia subito ma sale lentamente. Una stanza non passa da fredda a calda di colpo quando accendi il riscaldamento: la temperatura sale gradualmente.
Quella gradualità, vista dall’anello, si comporta come un ritardo — il sistema “tarda” a manifestare l’effetto pieno dell’azione. È un ritardo meno netto del primo, ma altrettanto capace di accumulare sfasamento.
Il terzo è il ritardo di misura ed elaborazione: il tempo che il sensore impiega a misurare, e il controllore a calcolare. Un sensore che media su una finestra temporale per ridurre il rumore introduce, con quella media, un ritardo. Un agente che deve ragionare per qualche secondo prima di agire sta aggiungendo ritardo di elaborazione all’anello.
Il punto pratico: questi tre ritardi si sommano lungo il giro dell’anello, e ciò che conta per la stabilità è il loro totale. Ridurre l’instabilità significa spesso andare a caccia di ritardo dove non serve — un sensore più veloce, una finestra di media più corta, un passo di elaborazione tagliato — più che toccare il guadagno.
Lo smorzamento e i tre regimi
Sezione intitolata “Lo smorzamento e i tre regimi”Quasi ogni sistema che oscilla — una molla, un pendolo, un circuito elettrico, un anello di controllo — al primo ordine di approssimazione si comporta come un sistema del secondo ordine. Questo termine tecnico significa solo che lo stato del sistema, oltre alla posizione, ha una “velocità” che porta inerzia: il sistema non si ferma istantaneamente quando raggiunge il bersaglio, lo scavalca per inerzia.
Un sistema del secondo ordine è descritto da due numeri: una frequenza naturale, quanto in fretta il sistema vorrebbe oscillare se nessuno lo smorzasse, e un coefficiente di smorzamento, che si indica tradizionalmente con la lettera greca (zeta) e misura quanta energia il sistema dissipa a ogni oscillazione.
Il valore di determina tre regimi qualitativamente diversi, e vale la pena tenerli a mente perché sono il vocabolario standard per descrivere come un sistema risponde.
Il regime sottosmorzato ( minore di 1): il sistema oscilla attorno al bersaglio prima di fermarcisi. La risposta è veloce, ma con overshoot — scavalca il target — e con ringing, le oscillazioni decrescenti che seguono.
Più è piccolo, più oscillazioni si vedono prima dell’assestamento, e nel caso limite le oscillazioni non si smorzano affatto. Una doccia regolata con mano nervosa è sottosmorzata.
Il regime criticamente smorzato ( uguale a 1): il sistema raggiunge il bersaglio il più velocemente possibile senza mai oltrepassarlo. È il confine esatto tra chi oscilla e chi non oscilla. È spesso il regime che si vorrebbe, perché unisce velocità e assenza di overshoot.
Il regime sovrasmorzato ( maggiore di 1): nessun overshoot, ma il sistema arriva al bersaglio lentamente, “strisciando” verso di esso senza mai scavalcarlo. Una doccia regolata da una persona molto cauta è sovrasmorzata: niente sbalzi, ma ci mette tanto.
Qui appare il trade-off che è il vero nucleo del capitolo, e che non si elimina mai: si sceglie soltanto dove stare. Alzare il guadagno spinge il sistema verso il sottosmorzato — risposta veloce, ma instabile e oscillante. Abbassarlo lo spinge verso il sovrasmorzato — stabile, ma lento e con errore residuo che impiega a sparire.
Non esiste un guadagno che dia insieme velocità massima e zero oscillazione: il punto criticamente smorzato è il miglior compromesso possibile, non un pasto gratis. Il guadagno critico è il valore preciso oltre il quale diventa negativo e l’oscillazione, invece di smorzarsi, cresce.
Un esempio numerico: l’anello passo per passo
Sezione intitolata “Un esempio numerico: l’anello passo per passo”Adesso un anello concreto, a tempo discreto, con i numeri. Il setpoint è : vogliamo portare lo stato da 0 a 100. A ogni passo il controllore guarda l’errore e calcola un’azione , dove è il guadagno. Il processo è un semplice accumulatore: lo stato del prossimo passo è quello attuale più l’azione ricevuta. E mettiamo un ritardo di un passo: l’azione calcolata al passo raggiunge il processo solo al passo . È la versione minima della doccia: tra il girare la manopola e il sentire l’effetto passa un passo.
Caso guadagno moderato, . Passo 1: , errore , azione calcolata — ma in viaggio, arriva al passo dopo. Passo 2: arriva l’azione 50, ora ; errore , nuova azione . Passo 3: arriva 25, ; errore 25, azione . Lo stato fa : sale verso 100 dimezzando la distanza a ogni passo. Converge in modo pulito, nessuna oscillazione. Comportamento sovrasmorzato.
Caso guadagno unitario, . Passo 1: , azione . Passo 2: arriva 100, , errore — bersaglio centrato. Sembra perfetto, ma con un ritardo più realistico, in cui l’effetto si distribuisce su più passi e l’inerzia conta, un guadagno alto come questo porta lo stato a scavalcare il 100, generare un errore negativo, contro-correggere, scavalcare dall’altra parte: l’anello entra in oscillazione attorno a 100.
Caso guadagno alto, . Ogni correzione vale il doppio dello scarto. Quando lo scarto è 100, l’azione è 200; lo stato scavalca abbondantemente; l’errore diventa fortemente negativo; la contro-correzione è ancora più violenta.
Con il ritardo che fa arrivare ogni azione quando lo scarto è già cambiato di segno, l’ampiezza dell’oscillazione cresce a ogni passo: divergenza. Il sistema non si avvicina mai al bersaglio — se ne allontana, spinto dalle proprie stesse correzioni.
Il punto numerico di questo esercizio è semplice e va inciso: con ritardo zero anche un guadagno alto converge; è la combinazione di ritardo e guadagno alto a generare l’instabilità. Lo stesso valore di è sicuro o catastrofico a seconda di quanto ritardo c’è nell’anello. Il guadagno non è “alto” o “basso” in assoluto: lo è relativamente al ritardo che deve tollerare.
C’è una regola di proporzione che vale la pena rendere esplicita, perché è il cuore quantitativo del capitolo. Più lungo è il ritardo, più basso deve essere il guadagno per restare stabili: il prodotto tra guadagno e ritardo, grosso modo, deve restare sotto una soglia.
Raddoppia il ritardo dell’anello e, per conservare lo stesso margine di stabilità, devi più o meno dimezzare il guadagno — e quindi accettare un sistema due volte più lento. È un cambio sfavorevole: il ritardo non costa solo lo sfasamento, costa anche tutta la velocità che sei costretto a sacrificare per compensarlo. Ecco perché, tra le quattro leve di stabilizzazione che vedremo, ridurre il ritardo è quella che ripaga di più: non sposta il sistema lungo il trade-off, lo migliora.
L’altra faccia: l’errore residuo a guadagno basso
Sezione intitolata “L’altra faccia: l’errore residuo a guadagno basso”L’esercizio numerico mostra il pericolo del guadagno alto. Ma il guadagno basso non è la soluzione gratuita: ha un suo costo, ed è bene vederlo, perché completa il quadro del trade-off. Chi conclude “allora tengo il guadagno basso e sto tranquillo” si porta a casa un problema diverso, meno appariscente ma altrettanto reale.
Riprendi il caso . Lo stato saliva , dimezzando la distanza dal bersaglio a ogni passo. Converge — ma converge a 100 solo al limite, dopo infiniti passi. A ogni passo finito resta uno scarto.
Se ora aggiungi un disturbo costante — qualcosa che a ogni passo sottrae, diciamo, 10 allo stato — il controllore proporzionale si assesta a un valore sotto il setpoint. Il motivo è strutturale: il controllore proporzionale produce azione solo se c’è errore (); se l’errore fosse zero, l’azione sarebbe zero, e senza azione il disturbo riporterebbe lo stato giù.
L’anello trova allora un equilibrio dove resta esattamente l’errore necessario a generare l’azione che bilancia il disturbo. Quell’errore permanente si chiama errore a regime (in inglese steady-state error).
Più alto è il guadagno, più piccolo è l’errore a regime — la stessa azione si ottiene con uno scarto minore. Ecco il trade-off in forma nitida: guadagno alto significa errore a regime piccolo ma rischio di oscillazione; guadagno basso significa stabilità tranquilla ma un errore permanente che non sparisce.
Il termine integrale del controllore PID — che accumula l’errore nel tempo e quindi continua a produrre azione anche quando l’errore istantaneo è piccolo — esiste proprio per spezzare questo trade-off e azzerare l’errore a regime senza alzare il guadagno proporzionale. È materia di pid-control-intuizione (in preparazione); qui basta sapere che il guadagno basso non è “il lato sicuro e basta”: è un lato con un suo prezzo.
Overshoot, ringing, hunting, ciclo limite
Sezione intitolata “Overshoot, ringing, hunting, ciclo limite”Vale la pena fissare quattro termini che descrivono cosa si vede quando un anello si comporta male, perché ricorrono in ogni dominio.
L’overshoot è lo scavalcamento: il sistema oltrepassa il bersaglio prima di assestarsi. Si misura in percentuale del gradino — un overshoot del 20% su un target di 100 significa che il sistema arriva fino a 120 prima di tornare indietro. Un po’ di overshoot è spesso accettabile, anzi inevitabile in un sistema veloce; è quando cresce a ogni oscillazione che diventa un problema.
Il ringing è la sequenza di oscillazioni decrescenti che segue l’overshoot, prima che il sistema si posi. È la firma del regime sottosmorzato: il sistema “rimbalza” attorno al bersaglio con ampiezza che cala a ogni rimbalzo.
L’hunting è l’oscillazione sostenuta: il sistema continua a oscillare attorno al setpoint senza mai posarcisi, “andando a caccia” del bersaglio. È il termine storico degli ingegneri delle macchine a vapore per i regolatori che non si stabilizzavano. Quando un agente entra in un loop di azioni che si annullano a vicenda, sta facendo hunting nel senso letterale del termine.
Il ciclo limite (in inglese limit cycle) è un’oscillazione di ampiezza fissa verso cui il sistema converge da solo. Attenzione a non confonderlo con l’oscillazione sostenuta di un sistema lineare a guadagno critico: quella ha ampiezza indeterminata e fragile — basta una minima perturbazione per smorzarla o farla divergere.
Il ciclo limite è un fenomeno non lineare e robusto: è un attrattore, l’ampiezza è determinata dal sistema stesso, e se lo perturbi ci torna. Il fischio dell’amplificatore di Black che si auto-oscillava era un ciclo limite. Il legame con il concetto di attrattore è quello del capitolo Equilibrio, stabilità, attrattori: un punto di equilibrio è un attrattore puntuale, un ciclo limite è un attrattore che è un’orbita chiusa.
I criteri classici, a livello concettuale
Sezione intitolata “I criteri classici, a livello concettuale”La domanda “questo anello sarà stabile?” ha ricevuto, nel Novecento, tre risposte formali. Qui basta sapere cosa fa ciascuna e che dicono tutte la stessa cosa con strumenti diversi; il trattamento rigoroso appartiene ai capitoli di control theory della Parte XI.
Il criterio di Routh-Hurwitz è puramente algebrico. Ogni sistema lineare ha un “polinomio caratteristico” le cui radici determinano la stabilità — se tutte le radici corrispondono a modi che decadono, il sistema è stabile.
Routh e Hurwitz hanno trovato una procedura meccanica sui coefficienti di quel polinomio che dice se tutte le radici sono “buone” senza doverle calcolare. Non usa il concetto di frequenza: lavora sui numeri del polinomio. È la strada più diretta quando il modello del sistema è noto in forma di equazione.
Il criterio di Nyquist (1932) è quello che abbiamo già incontrato in forma intuitiva. Si traccia come il guadagno d’anello varia al variare della frequenza — un percorso in un piano — e si contano gli “avvolgimenti” di quel percorso attorno a un punto critico. Il numero di avvolgimenti dice quante radici instabili ha il sistema chiuso.
La forza del criterio di Nyquist è che gestisce anche i casi controintuitivi: la stabilità condizionata, sistemi che sono instabili a guadagno basso e diventano stabili aumentando il guadagno — un fenomeno che lasciava perplessi gli ingegneri e che Nyquist spiegò.
Il criterio di Bode ha lo stesso contenuto di quello di Nyquist, ma presentato su due grafici separati e leggibili a colpo d’occhio: il guadagno d’anello in funzione della frequenza e la fase in funzione della frequenza. È da questi due grafici che si leggono direttamente il margine di fase e il margine di guadagno. È lo strumento ingegneristico pratico, quello che si usa al tavolo da progetto.
Tutti e tre, sotto formalismi diversi, rispondono alla stessa domanda: i modi propri del sistema chiuso decadono nel tempo, oppure crescono?
Tre esempi eterogenei, tutti varianti dello stesso fenomeno — un anello di feedback con ritardo che oscilla — ma in domini lontani: una rete neurale, una catena di fornitura, una popolazione biologica. (La doccia, il quarto esempio, l’abbiamo già usata come intuizione.)
Esempio 1: la loss che oscilla durante il training
Sezione intitolata “Esempio 1: la loss che oscilla durante il training”Il training di una rete neurale è un anello di feedback. Il processo è la rete con i suoi pesi. Il sensore e comparatore sono la funzione di loss, che misura quanto la rete sbaglia. Il controllore è l’optimizer, che dal gradiente della loss decide come cambiare i pesi. Il guadagno dell’anello è il learning rate: quanto si muovono i pesi per unità di gradiente.
L’anello è esplicito nel ciclo di training. Eccolo, riga per riga, nella sua forma minima:
for passo in range(num_passi): predizione = rete(batch) # processo: lo stato attuale errore = loss(predizione, target) # sensore + comparatore gradiente = grad(errore) # direzione della correzione pesi = pesi - learning_rate * gradiente # controllore + attuatoreL’ultima riga è il cuore: learning_rate * gradiente è l’azione di controllo, e learning_rate è il guadagno . La struttura è identica a — l’azione è il guadagno moltiplicato per una misura dello scarto.
Cosa succede con un learning rate troppo alto è esattamente la doccia. Gli aggiornamenti dei pesi sono così grandi che scavalcano il minimo della loss: la loss invece di scendere oscilla, e nei casi peggiori diverge fino a diventare NaN — il segnale che il numero è esploso. La diagnosi standard, riportata in ogni guida pratica di deep learning, è proprio questa: se la loss oscilla o diverge, il learning rate è probabilmente troppo alto, e la prima mossa è ridurlo di un fattore 10. È letteralmente “abbassa il guadagno”.
Le altre due contromisure standard sono altrettanto leggibili in chiave cibernetica. Il warmup del learning rate — partire con un learning rate piccolissimo e farlo crescere gradualmente nei primi passi, tipicamente dell’ordine del migliaio — è gestione attiva della stabilità: si tiene il guadagno basso finché il sistema è nella regione più fragile, all’inizio, e lo si alza solo quando ci si può permettere.
Il gradient clipping — tagliare il gradiente quando supera una certa ampiezza — è un limite imposto all’attuatore, l’equivalente di una valvola che non si apre oltre il 100%. Il paper “Small-scale proxies for large-scale Transformer training instabilities” (Google DeepMind, 2023) studia proprio queste instabilità riproducendole su modelli piccoli.
Una nota sulla classe di questo legame, perché è importante non scivolare. La corrispondenza learning rate-guadagno è un’analogia strutturale forte: entrambi sono anelli di correzione iterativa governati da un parametro che decide quanto aggressiva è la correzione, e in entrambi un parametro troppo alto produce oscillazione e divergenza.
Ma non è un’equivalenza, e va detto perché. La loss landscape di una rete neurale non è un sistema lineare del secondo ordine: è una superficie ad altissima dimensione, non convessa, e il gradiente è stimato in modo rumoroso da un minibatch di dati. I meccanismi precisi dell’instabilità — la curvatura locale della loss, la stocasticità del campione — sono diversi da quelli di un anello di controllo lineare.
La forma del fenomeno è la stessa, la matematica sottostante no. Tienila come analogia che insegna, non come identità che dimostra.
Esempio 2: il bullwhip effect nelle catene di fornitura
Sezione intitolata “Esempio 2: il bullwhip effect nelle catene di fornitura”Lee, Padmanabhan e Whang, nel paper “Information Distortion in a Supply Chain: The Bullwhip Effect” (Management Science, 1997), hanno dato un nome a un fenomeno noto da tempo a chi gestisce magazzini. In una catena di fornitura — rivenditore, distributore, fabbrica — la domanda finale del consumatore è relativamente stabile.
Eppure gli ordini che ciascun anello passa a quello a monte oscillano con ampiezza che cresce man mano che si risale la catena: il rivenditore ordina con qualche oscillazione, il distributore con oscillazioni maggiori, la fabbrica con oscillazioni violente. Da qui il nome: un piccolo movimento del polso che diventa un’enorme frustata all’estremità.
La causa profonda è il ritardo. Ogni anello della catena osserva la domanda con un ritardo — i tempi di consegna, gli ordini fatti a lotti invece che in continuo, il tempo per elaborare il segnale di domanda. E ogni anello, vedendo le scorte calare, reagisce ordinando di più, di solito un po’ troppo per ricostituire un margine. È la doccia, esattamente: si corregge guardando un’informazione vecchia, si corregge troppo, l’oscillazione si amplifica.
Lee e colleghi identificano quattro cause distinte del bullwhip effect, ma quella più strutturale — l’elaborazione del segnale di domanda fatta da ogni nodo con il proprio ritardo — è un anello di feedback con ritardo nel senso tecnico stretto di questo capitolo. La cura che gli autori propongono è la stessa cura cibernetica: ridurre il ritardo condividendo l’informazione sulla domanda reale lungo tutta la catena, così che ogni nodo veda il dato fresco invece di inseguire il proprio ordine ritardato.
Esempio 3: oscillazioni nelle popolazioni biologiche
Sezione intitolata “Esempio 3: oscillazioni nelle popolazioni biologiche”Nel 1948 l’ecologo George Evelyn Hutchinson osserva che il modello logistico di crescita di una popolazione — il modello standard in cui la popolazione cresce e poi si stabilizza alla capacità dell’ambiente — è inadeguato quando il meccanismo di auto-regolazione agisce con un ritardo.
Esempio concreto: la disponibilità di cibo di una stagione influenza il tasso di riproduzione della stagione successiva, non quella corrente. C’è un ritardo strutturale tra la causa (densità della popolazione) e l’effetto regolatore (natalità).
Hutchinson modifica il modello aggiungendo questo ritardo, ottenendo quella che oggi si chiama equazione logistica ritardata. Il risultato è netto e conferma la tesi del capitolo: all’aumentare del ritardo, la popolazione smette di stabilizzarsi alla capacità dell’ambiente e comincia a oscillare attorno ad essa con oscillazioni sostenute — un fenomeno che i matematici chiamano biforcazione di Hopf, cioè il punto in cui un equilibrio stabile lascia il posto a un’oscillazione.
È la versione biologica esatta del fenomeno: si prende un anello di feedback negativo perfettamente stabile, gli si aggiunge ritardo, e diventa oscillante. Anche le classiche oscillazioni preda-predatore — i cicli in cui il numero di prede e di predatori sale e scende sfasato — sono guidate da ritardi: il predatore risponde alla densità di prede con il ritardo necessario a riprodursi.
Vale la pena notare l’osservazione che Hutchinson stesso fece: in natura si osservano meno oscillazioni di quante il suo modello ne preveda. La sua spiegazione era selettiva — una popolazione che oscilla passa periodicamente per minimi molto bassi, e in un minimo basso un evento catastrofico qualunque la può estinguere; le popolazioni sopravvissute sono quelle che oscillano poco.
È un’osservazione interessante anche fuori dalla biologia: i sistemi che oscillano violentemente tendono a non durare, perché ogni oscillazione li porta vicino a un bordo pericoloso. Vale per le specie come per i sistemi tecnici e i mercati.
Come si stabilizza un anello
Sezione intitolata “Come si stabilizza un anello”I tre esempi mostrano la stessa malattia in tre corpi diversi: una rete neurale, una catena di magazzini, una popolazione di animali. Conviene allora raccogliere, esplicitamente, le leve che un progettista ha per curarla.
Le leve sono sempre le stesse quattro, e si leggono tutte dal criterio di stabilità: se il problema è “segnale in controfase e abbastanza forte”, agisci sulla forza, sul ritardo che produce la controfase, sullo smorzamento, oppure aggira l’anello.
La prima leva è abbassare il guadagno. Riduce la forza della correzione, sposta il sistema verso il sovrasmorzato. È la leva più immediata e quasi sempre disponibile: ridurre il learning rate, fare ordini più piccoli, girare la manopola di poco.
Il costo, come si è visto, è la lentezza e l’errore a regime. È una leva che funziona ma che non è gratis: sposta il sistema lungo il trade-off, non lo libera dal trade-off.
La seconda leva è ridurre il ritardo. È la leva più potente, perché agisce sulla causa profonda, ma spesso la più difficile: il tubo della doccia ha la lunghezza che ha.
Dove si può, però, ripaga molto, e ripaga doppio — riduce lo sfasamento e libera guadagno, quindi velocità. Un sensore più veloce, una finestra di media più corta, condividere l’informazione lungo la catena di fornitura così che ogni nodo veda il dato fresco, far ri-osservare a un agente lo stato reale invece della copia vecchia in contesto: sono tutte la stessa mossa.
La terza leva è aggiungere smorzamento. Invece di reagire solo a quanto grande è l’errore, si reagisce anche a quanto velocemente sta cambiando: se l’errore si sta già riducendo in fretta, si frena la correzione per non scavalcare.
È il termine derivativo del controllore PID, ed è esattamente ciò che fa una persona esperta alla doccia quando sente l’acqua scaldarsi e smette di girare prima di aver raggiunto la temperatura giusta, anticipando l’inerzia. Lo smorzamento non rende il sistema più lento come fa il guadagno basso: lo rende più giudizioso.
La quarta leva è anticipare invece di inseguire: il feedforward. Se conosci il disturbo in arrivo — sai che sta per entrare un carico, che la richiesta crescerà a Natale — agisci in anticipo, senza aspettare che lo scarto si manifesti.
Il feedforward non subisce il ritardo dell’anello perché non chiude l’anello: agisce sul disturbo previsto. È la strategia complementare, trattata in Feedback vs feedforward. Le quattro leve non si escludono: un buon sistema le combina.
Applicazioni pratiche
Sezione intitolata “Applicazioni pratiche”Per chi costruisce sistemi AI, questo capitolo non è teoria di contorno: dà i nomi a una famiglia di guasti molto concreti.
L’instabilità del training. È l’esempio 1, e nel lavoro quotidiano è il caso più frequente. Quando una loss oscilla, sale, o esplode in NaN, la diagnosi cibernetica è immediata: guadagno troppo alto rispetto a quanto l’anello tollera.
Il learning rate è il guadagno; warmup e scheduling (cosine decay e simili) sono la gestione del guadagno nel tempo; il gradient clipping è il limite all’attuatore. Avere questo modello in testa rende il debugging del training una procedura e non un tentativo.
Gli agenti che “correggono troppo”. Un agente che riscrive una funzione, poi la ri-riscrive nel senso opposto, poi di nuovo nel primo, sta oscillando. Il modello cibernetico dice dove guardare.
Se l’agente reagisce in modo eccessivo all’ultima osservazione — un test che fallisce, un commento di un revisore — è un problema di guadagno: la correzione è sproporzionata allo scarto. La cura è abbassare il guadagno, cioè progettare l’agente perché faccia correzioni più piccole e conservative, un passo alla volta.
Il ritardo tra azione e osservazione. Un agente che ragiona su un output di tool ormai superato — il file su disco è cambiato, ma l’agente decide sulla versione vecchia che ha ancora in contesto — ha un problema di ritardo: agisce su uno stato del mondo che appartiene al passato, esattamente come la mano nella doccia.
I loop di azioni contraddittorie — A, poi non-A, poi di nuovo A — sono l’oscillazione di questo anello. La cura, di nuovo, è la cura della doccia: ridurre il ritardo, cioè ri-osservare lo stato reale prima di decidere invece di fidarsi della copia in contesto, e abbassare il guadagno facendo passi più piccoli.
Il ritardo nei loop di feedback umano. In RLHF — il fine-tuning con feedback umano — e nei cicli di valutazione di un sistema, c’è un ritardo lungo tra l’azione (rilasciare un modello, cambiare un prompt) e l’osservazione del suo effetto (raccogliere feedback, far girare le metriche).
Un ritardo lungo combinato con correzioni aggressive — cambi grossi tra un’iterazione e l’altra — produce lo stesso pattern della doccia: si oltre-corregge, si oscilla tra due regimi senza convergere su quello buono. Iterazioni piccole e frequenti — ritardo corto, guadagno basso — sono più stabili di iterazioni grandi e rare, e questo capitolo dice perché.
L’instabilità nei sistemi multi-agente. Più agenti che si osservano e reagiscono l’uno all’altro formano una rete di anelli di feedback accoppiati, ciascuno con il proprio ritardo.
È un terreno fertile per oscillazioni: due agenti che si rimpallano un task, o che “correggono” a vicenda il lavoro l’uno dell’altro, sono un anello di feedback con ritardo. Il bullwhip effect è il precedente storico esatto di questa classe di problemi — più nodi in catena, ognuno con ritardo, che amplificano invece di smorzare.
Uno scenario concreto rende tangibile la diagnosi. Un agente deve far passare una suite di test. Modifica il file A, lancia i test, ne falliscono tre. Allora modifica il file B per accomodare i tre falliti, rilancia, ora ne falliscono altri due ma diversi. Modifica di nuovo A nel senso opposto a prima, e i test originali tornano a fallire. L’agente sta oscillando.
La lettura cibernetica indica le due leve. C’è troppo guadagno: a ogni passo l’agente fa una modifica grande, reattiva all’ultimo fallimento, invece di una piccola e mirata. E c’è ritardo: l’agente decide la modifica seguente prima di aver capito perché l’ultima ha rotto altro — agisce su una comprensione incompleta dello stato, come la mano che gira la manopola prima di sentire l’acqua.
La cura non è un prompt più aggressivo: è abbassare il guadagno (una modifica minima per volta) e ridurre il ritardo (leggere e capire l’output completo dei test prima di decidere). Sono le stesse due leve della doccia.
Dove si rompe
Sezione intitolata “Dove si rompe”Il modello di questo capitolo è potente, e proprio per questo va usato con la consapevolezza dei suoi limiti e dei fraintendimenti che porta con sé.
“Feedback negativo vuol dire feedback cattivo.” Il fraintendimento di base, già segnalato in Anatomia di un anello: “negativo” è il segno, opposto all’errore, ed è la versione stabilizzante del feedback.
Questo capitolo aggiunge però un avvertimento che complica la cosa. Un feedback negativo con ritardo può comportarsi come positivo a certe frequenze. Il segno nominale dell’anello — come è progettato — non garantisce il comportamento. Un anello disegnato come negativo, con dentro un ritardo abbastanza lungo, oscilla e diverge come se fosse positivo. La progettazione dice l’intenzione; il ritardo decide l’esito.
“Oscillazione uguale guadagno alto.” Solo metà della verità. Il guadagno alto è una condizione necessaria perché l’oscillazione cresca, ma non è la causa profonda. Senza ritardo, o più in generale senza accumulo di sfasamento nell’anello, anche un guadagno altissimo non produce oscillazione: non esiste una frequenza in controfase a cui possa applicarsi.
La causa profonda dell’oscillazione è il ritardo; il guadagno decide solo se l’oscillazione, una volta innescata, cresce, resta costante o si smorza. Attribuire tutto al guadagno porta a tarare il sistema nel posto sbagliato — si abbassa il guadagno, l’oscillazione si smorza un po’, ma resta, perché la causa è altrove.
“Per stabilizzare basta abbassare il guadagno.” Spesso funziona, ma con due eccezioni che contano. La prima: esistono i sistemi a stabilità condizionata, che Nyquist dimostrò esistere — instabili a guadagno basso, stabili a guadagno alto. Per questi, abbassare il guadagno causa l’instabilità. Sono casi minoritari, ma sono il motivo per cui il criterio di Nyquist è più generale della regola pratica.
La seconda eccezione, più quotidiana: abbassare il guadagno non è gratis. Un anello con guadagno basso è lento e lascia un errore residuo che impiega a sparire. Stabilità comprata con la lentezza non è un pasto gratis: è uno spostamento lungo il trade-off, e va deciso sapendo cosa si sta cedendo.
Confondere il ciclo limite con l’oscillazione lineare. Un sistema lineare a guadagno esattamente critico oscilla con ampiezza indeterminata e fragile: una minima perturbazione la smorza o la fa divergere. Un ciclo limite è un fenomeno non lineare, un attrattore robusto con ampiezza fissa e determinata dal sistema.
Sembrano uguali su un grafico — entrambi un’onda — ma rispondono in modo opposto a una perturbazione. Diagnosticare un ciclo limite come “guadagno un filo troppo alto” porta a interventi che non funzionano: si abbassa il guadagno e l’oscillazione resta, perché il ciclo limite non vive sul confine, ci sta dentro stabile.
Pensare per catene invece che per cicli. Il fraintendimento più profondo, perché è cognitivo. Davanti a un sistema che oscilla, l’istinto è cercare il “pezzo guasto” risalendo una catena di cause. In un anello non c’è un pezzo guasto: l’oscillazione emerge dalla chiusura dell’anello, dalla combinazione di guadagno e ritardo lungo l’intero giro.
Ogni variabile dell’anello è causa ed effetto di sé stessa, con un ritardo. La domanda giusta non è “qual è il componente colpevole?” ma “qual è il guadagno e il ritardo totali del giro?”. Un agente che oscilla raramente ha un componente rotto: ha un anello mal tarato. Cercare il colpevole sbagliato fa perdere tempo su un problema che non è dove lo si cerca.
“Una correzione lenta è sempre più sicura di una veloce.” L’intuizione della doccia spinge a pensare che la prudenza paghi sempre. Non è così quando il disturbo cambia in fretta. Un anello molto lento — guadagno bassissimo — è stabile nel senso che non oscilla, ma se il disturbo si muove più velocemente di quanto l’anello sappia correggere, l’anello non tiene il passo: lo scarto resta grande non perché il sistema oscilla, ma perché la correzione arriva sempre troppo tardi e troppo fiacca.
Stabilità e prestazione non sono la stessa cosa. Un sistema può essere stabilissimo e completamente inutile, perché insegue un bersaglio che si muove più in fretta di lui. La taratura giusta non è “il più lento possibile”: è il punto in cui l’anello è abbastanza veloce da seguire il disturbo e abbastanza smorzato da non oscillare. Quel punto esiste solo se il disturbo è abbastanza lento; se non lo è, nessun guadagno proporzionale basta, e serve il feedforward.
“Se non oscilla ora, è stabile.” Un sistema può sembrare perfettamente tranquillo per mesi e poi oscillare di colpo. Due ragioni. La prima, già vista: il ritardo si accumula di nascosto, e il margine di fase si esaurisce senza che nessuno abbia cambiato nulla. La seconda: l’instabilità è selettiva in frequenza. Un anello stabile sotto i disturbi lenti che ha incontrato finora può essere instabile a una frequenza che semplicemente non si era ancora presentata.
La quiete osservata non è una prova di stabilità: è l’assenza, finora, del disturbo giusto a stuzzicare la frequenza critica. Provare la stabilità richiede di ragionare su tutte le frequenze — è esattamente ciò che fanno i criteri di Nyquist e Bode — non di constatare che al momento va tutto bene.
I limiti del modello lineare stesso. Tutto il capitolo, tranne il ciclo limite, ragiona come se il sistema fosse lineare — guadagno costante, risposta proporzionale. I sistemi reali non lo sono. Un attuatore va in saturazione (la valvola non si apre oltre il 100%, il learning rate effettivo è limitato da altri fattori). Un sistema può avere più di un equilibrio. Le non linearità producono comportamenti che il modello lineare non prevede affatto: cicli limite, biforcazioni come quella di Hopf che abbiamo visto nelle popolazioni, transizioni improvvise. Il modello lineare di questo capitolo è la prima approssimazione, quella che spiega gran parte dei casi e dà il vocabolario giusto. Per il resto serve la teoria del controllo non lineare, e prima ancora la consapevolezza che la linearità era un’assunzione, non un dato.
Collegamenti
Sezione intitolata “Collegamenti”- Anatomia di un anello: errore, setpoint, guadagno, ritardo — il capitolo precedente, prerequisito diretto: fornisce i sei componenti dell’anello e i concetti di errore, setpoint, guadagno e ritardo su cui questo capitolo si appoggia interamente.
- Wiener: comunicazione e controllo in animali e macchine — lo scheletro dell’anello orientato a uno scopo; questo capitolo ne studia il fallimento, quando l’anello smette di raggiungere lo scopo.
- Equilibrio, stabilità, attrattori — equilibrio stabile e instabile, attrattori. Il ciclo limite è un attrattore non puntuale; questo capitolo è la versione dinamica e quantitativa di quel tema.
- Feedback vs feedforward — il feedback insegue lo scarto già accaduto, e il ritardo è il prezzo strutturale di questa scelta; il feedforward è la strategia che paga quel prezzo in modo diverso.
- omeostasi-ashby (in preparazione) — il capitolo successivo della Parte X: l’omeostato di Ashby e l’adattamento, un sistema che resta stabile entro limiti nonostante i disturbi.
- pid-control-intuizione (in preparazione) — il controllore PID della Parte XI, dove i termini integrale e derivativo servono anche a gestire il ritardo e a regolare lo smorzamento.
- stabilita-lyapunov-intuizione (in preparazione) — la stabilità vista come energia che scende verso un minimo, un modo alternativo e complementare di provare che un sistema converge.
- Discesa del gradiente: SGD, momentum, Adam — il learning rate come guadagno dell’anello di training; questo capitolo spiega perché un learning rate troppo alto fa oscillare e divergere la loss.
- system-dynamics-forrester (in preparazione) — stock, flow, delay e causal loop; il bullwhip effect è uno dei casi di studio classici della system dynamics.
- multi-agent-failure-modes (in preparazione) — le oscillazioni nei sistemi multi-agente lette come anelli di feedback accoppiati, ciascuno con il proprio ritardo.
Per andare oltre
Sezione intitolata “Per andare oltre”- H. Nyquist, “Regeneration Theory”, Bell System Technical Journal, vol. 11, 1932. Il paper fondativo del criterio di stabilità in frequenza. Tecnico, ma il ragionamento iniziale sul perché un amplificatore a feedback può oscillare è leggibile e illuminante.
- H. S. Black, “Stabilized Feed-Back Amplifiers”, Electrical Engineering, vol. 53, 1934. L’invenzione del feedback negativo raccontata da chi l’ha avuta; cita Nyquist come lo strumento che ha reso possibile costruire un amplificatore stabile.
- H. L. Lee, V. Padmanabhan, S. Whang, “Information Distortion in a Supply Chain: The Bullwhip Effect”, Management Science, vol. 43, n. 4, 1997. Il bullwhip effect, l’esempio più chiaro di un anello di feedback con ritardo che amplifica invece di smorzare.
- “Small-scale proxies for large-scale Transformer training instabilities”, Google DeepMind, 2023 (arXiv:2309.14322). Le instabilità del training di transformer studiate riproducendole su modelli piccoli; il ponte diretto tra questo capitolo e la pratica del training.
- K. J. Åström, R. M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, Princeton University Press, 2008. Manuale introduttivo di teoria del controllo, disponibile gratuitamente online; i capitoli su stabilità e margini sono il passo successivo naturale per chi vuole il formalismo.