Salta ai contenuti

Anatomia di un anello: errore, setpoint, guadagno, ritardo

Smontare un feedback loop nei suoi sei pezzi, capire perché un guadagno troppo alto lo fa oscillare e un ritardo troppo lungo lo fa esplodere, e scoprire che lo stesso anello — con gli stessi modi di rompersi — gira dentro un termostato, un cruise control e un agente che ripara un test.

Il capitolo Wiener: comunicazione e controllo in animali e macchine ha posato uno scheletro: un anello che misura l’errore rispetto a un obiettivo e agisce per ridurlo, indifferente al materiale di cui è fatto. È un’idea potente, e proprio per questo è facile fermarsi lì — accontentarsi di sapere che “c’è un anello” e considerare chiusa la questione. Non lo è. Sapere che un sistema contiene un feedback loop dice solo che c’è un cerchio causale; non dice se quel cerchio porterà il sistema a fermarsi sul bersaglio, a oscillargli attorno per sempre, o a divergere. La differenza tra questi tre destini non sta nello schema: sta in due numeri, il guadagno e il ritardo, e in come sono fatti i pezzi dell’anello.

Questo capitolo è il dettaglio meccanico che lo scheletro non dava. Smonta l’anello chiuso nei suoi sei componenti — sensore, comparatore, controllore, attuatore, processo, ritorno della misura — e poi guarda cosa lo fa funzionare e cosa lo guasta. Cosa significa che il segnale di errore “fa girare” l’anello. Cosa misura il guadagno di anello e perché alzarlo non è gratis. Perché un ritardo nel giro dell’anello trasforma un feedback negativo, che dovrebbe stabilizzare, in qualcosa che oscilla e a volte esplode. Come si legge la risposta nel tempo di un sistema controllato: il transitorio, il regime, l’overshoot, il tempo di assestamento. E come la stessa coppia di anelli — uno che regola, uno che amplifica — riappare nel linguaggio della system dynamics sotto le sigle B e R.

C’è una ragione concreta per cui chi costruisce sistemi AI dovrebbe leggere questo prima e non dopo. Il loop di un agente — osserva, pensa, agisci, ri-osserva — è un anello di feedback nel senso tecnico stretto, e i modi in cui un anello di feedback si rompe sono i modi in cui un agente si rompe. Un agente che “corregge troppo” a ogni passo ha un problema di guadagno. Un agente che ragiona su un output di tool ormai superato ha un problema di ritardo. Un loop di reasoning che si allontana da una risposta corretta che aveva già trovato ha un problema di segno dell’anello. Dare a questi guasti il nome giusto non è erudizione: è la differenza tra il debugging strutturato e il “riproviamo con un altro prompt”.

Una nota sul confine con un capitolo vicino. La Parte IX contiene già Feedback vs feedforward, che introduce il feedback come concetto di teoria dei sistemi, lo contrappone al feedforward — anticipare il disturbo invece di inseguirne l’effetto — e ne racconta la storia. Quel capitolo è la panoramica; questo è l’approfondimento. Qui non si riapre la distinzione tra le due strategie: la si dà per nota e, dove serve, vi si rimanda. Qui si scava dentro una sola delle due, il feedback, e la si guarda con la lente della cibernetica e della teoria del controllo.

Il feedback come dispositivo è molto più antico della sua teoria. Il regolatore a galleggiante che mantiene costante il livello dell’acqua è di epoca ellenistica, ed è lo stesso principio dello sciacquone moderno: un galleggiante sale con l’acqua e, raggiunto un certo livello, chiude la valvola di carico. Per millenni dispositivi di questo tipo sono esistiti come trucchi pratici, costruiti da artigiani che ne capivano il funzionamento ma non avevano un linguaggio per descriverli come istanze di un unico schema astratto.

Il caso che ha fatto storia è il regolatore centrifugo applicato da James Watt (ingegnere scozzese, 1736-1819) alla macchina a vapore intorno al 1788. Il meccanismo non era una sua invenzione — regolatori a sfere erano già usati per i mulini, e l’idea risale a Christiaan Huygens nel Seicento — ma fu Watt a portarlo sulla macchina a vapore, dove serviva a tenere costante la velocità dell’albero motore qualunque fosse il carico. Due sfere metalliche ruotano trascinate dall’albero; se il motore accelera, la forza centrifuga le solleva; il loro sollevamento, tramite leve, chiude parzialmente la valvola del vapore; meno vapore significa meno spinta, e il motore rallenta. L’uscita del sistema — la velocità — regola il proprio ingresso — il vapore. È un anello chiuso, costruito in ottone e funzionante.

Per quasi un secolo questo congegno operò senza che nessuno avesse una teoria di perché funzionasse, e soprattutto di perché a volte non funzionasse: certi regolatori, invece di calmare il motore, lo facevano oscillare con ampiezza crescente. Nel gergo dell’epoca si diceva che il motore “andava a caccia” — hunting — della velocità voluta senza riuscire a posarcisi sopra.

Vale la pena insistere che non era una curiosità da laboratorio. A metà Ottocento, con i motori a vapore che diventavano più grandi e più veloci, l’instabilità dei regolatori era un problema ingegneristico sentito e costoso: alcune installazioni oscillavano in modo violento, e nessuno sapeva prevedere quali regolatori sarebbero stati stabili e quali no, né perché. Il vuoto era doppio. Mancava un modo per prevedere la stabilità di un regolatore prima di costruirlo; e mancava perfino un modo per parlarne in termini generali, separando ciò che era essenziale al fenomeno da ciò che era dettaglio meccanico del singolo congegno. Era il tipico stato di un campo prima che arrivi la sua teoria: pratica abbondante, linguaggio assente.

La teoria arrivò nel 1868 con James Clerk Maxwell (fisico e matematico scozzese, 1831-1879, lo stesso delle equazioni dell’elettromagnetismo). Il suo articolo “On Governors”, pubblicato nei Proceedings of the Royal Society of London, è il primo trattamento matematico serio di un sistema a retroazione. Maxwell scrisse le equazioni del moto del regolatore, le approssimò con equazioni lineari valide per piccole deviazioni, e ridusse la domanda “il regolatore è stabile?” a una domanda algebrica sulle radici di un polinomio. Era nata l’analisi di stabilità. Nello stesso lavoro Maxwell distingue due classi di dispositivo: i “moderatori”, in cui la coppia correttiva è proporzionale all’errore di velocità, e i “governori” veri, che aggiungono un termine proporzionale all’integrale dell’errore, cioè all’errore accumulato nel tempo. È, con mezzo secolo di anticipo, la distinzione tra azione proporzionale e azione integrale che diventeranno la P e la I del controllore PID. Il paper rimase a lungo poco letto perché considerato ostico; fu Norbert Wiener (matematico statunitense, 1894-1964) a riportarlo alla luce nel 1948, ed è per quel lavoro che Maxwell viene oggi chiamato il padre della teoria del controllo.

Questa è la genealogia che conta per collocare il capitolo nel grafo della wiki. Esiste un lineage storico documentato — Maxwell, poi Wiener, poi la teoria del controllo del Novecento — e si tratta di una filiazione vera, non di una somiglianza: ciascuno cita e prosegue il precedente. La cibernetica del 1948 non inventa il feedback; gli dà un nome generale e lo estende dalle macchine agli organismi. Questo capitolo sta a valle di tutto ciò: prende lo schema generale e ne estrae i dettagli quantitativi che permettono di prevedere il comportamento di un anello specifico.

C’è un’osservazione che vale la pena trarre da questa storia, perché orienta la lettura del resto del capitolo. Per quasi un secolo il governor di Watt ha funzionato benissimo senza che nessuno capisse perché, e quando smetteva di funzionare nessuno capiva perché no. La differenza tra i due casi non stava in un pezzo rotto: stava in due numeri — quanto forte correggeva il regolatore, quanto in fretta — e nessuno aveva ancora il linguaggio per parlarne. Maxwell quel linguaggio lo ha costruito. Tutto questo capitolo è, in fondo, quel linguaggio: gli strumenti concettuali per dire perché un anello converge, oscilla o esplode, prima ancora di costruirlo.

Il feedback loop di base — l’anello che corregge l’errore — si lascia afferrare da tre angoli distinti. Il primo guarda l’anello come una catena chiusa di blocchi che si passano un segnale. Il secondo lo guarda come una gara tra due forze. Il terzo lo guarda come un tipo particolare di causalità.

Pensa a un sistema qualsiasi che agisce senza guardare il risultato. Un forno a tempo: imposti venti minuti, il forno scalda per venti minuti, si spegne. Le frecce causali vanno tutte in una direzione: dal comando, al riscaldamento, al cibo. È una catena aperta. Il forno non sa se il cibo è cotto; esegue un piano e spera che il mondo collabori. Funziona finché l’ambiente è quello previsto e fallisce in silenzio appena qualcosa devia, perché non ha modo di accorgersi della deviazione.

Ora aggiungi una cosa sola: un sensore che misura il risultato e lo riporta indietro, all’inizio, dove viene confrontato con ciò che volevi. La catena si chiude in un anello. Il forno diventa un forno con sonda: misura la temperatura interna del cibo, la confronta con quella voluta, e regola il calore di conseguenza. Da questo momento il sistema non agisce più alla cieca: agisce guardando. La differenza tra catena aperta e anello chiuso è la differenza tra eseguire un piano e correggere un errore.

L’anello chiuso, percorso una volta, attraversa sempre gli stessi sei blocchi, e vale la pena nominarli subito perché il resto del capitolo li userà di continuo. C’è il processo, il sistema che vogliamo governare — la stanza, l’auto, il cibo nel forno. C’è il sensore, che misura lo stato del processo. C’è il comparatore, che confronta la misura con il valore voluto e produce lo scarto. C’è il controllore, che dallo scarto decide un’azione. C’è l’attuatore, che esegue l’azione sul processo. E c’è il ramo di ritorno, che riporta la misura dal sensore al comparatore — il tratto che chiude fisicamente l’anello. Tolto quel tratto, restano un sistema che agisce e un sistema che misura, scollegati: la catena non si morde più la coda.

Il punto di forza di questo schema è la sua indifferenza all’ignoranza. Un sistema a catena aperta deve sapere in anticipo tutto ciò che gli capiterà, perché non può correggere ciò che non aveva previsto. Un sistema a feedback no: non ha bisogno di conoscere la causa di una deviazione, gli basta misurarne l’effetto — lo scarto — e ridurlo. Per questo il feedback funziona anche in ambienti che non conosce. Ed è anche il suo limite, perché un sistema che reagisce solo a scarti già accaduti è sempre un passo indietro rispetto al disturbo: agisce dopo. Il rimedio a quel passo indietro è il feedforward, ed è il motivo per cui le due strategie vengono trattate insieme in Feedback vs feedforward.

Secondo angolo: una gara tra correzione e disturbo

Sezione intitolata “Secondo angolo: una gara tra correzione e disturbo”

Il secondo angolo è dinamico. Guarda un feedback loop non come una catena di blocchi, ma come una gara che si svolge nel tempo tra due spinte opposte.

Da un lato c’è il disturbo: tutto ciò che spinge il processo lontano dal valore voluto. Il freddo che entra dalla finestra, la salita che rallenta l’auto, il carico che frena il motore. Il disturbo lavora di continuo, e se nessuno gli si oppone porta il sistema dove vuole.

Dall’altro lato c’è la correzione che l’anello genera. Ogni volta che il disturbo crea uno scarto, l’anello lo misura e risponde con un’azione che spinge in direzione opposta. La domanda chiave non è “chi vince”, perché in un feedback negativo ben fatto vince sempre la correzione. La domanda è come vince: con quanta foga, con quanta prontezza, lasciando dietro di sé quanto scarto residuo.

Da questo angolo si vedono già le due grandezze che governano tutto. La prima è quanto forte risponde la correzione a un dato scarto: è il guadagno. Una correzione fiacca lascia che il disturbo guadagni terreno; una correzione vigorosa lo ricaccia indietro in fretta — ma, se è troppo vigorosa, supera il bersaglio e crea uno scarto dall’altra parte, costringendo a una contro-correzione. La seconda è quanto in fretta la correzione arriva dopo che lo scarto si è manifestato: è il problema del ritardo. Una correzione che arriva tardi combatte un disturbo che nel frattempo è cambiato.

C’è un’asimmetria, in questa gara, che vale la pena fissare subito. Il disturbo non ha bisogno di sapere nulla del sistema: agisce, e basta. La correzione, invece, deve misurare prima di agire — deve sapere quanto grande è lo scarto. Questo dà al disturbo un vantaggio strutturale di tempo: lo scarto esiste già nel momento in cui la correzione comincia appena a calcolarsi. Il feedback non elimina questo vantaggio, lo contiene: insegue il disturbo abbastanza da vicino da tenere lo scarto piccolo, ma non lo annulla mai del tutto, perché annullarlo richiederebbe di agire prima di misurare — e agire prima di misurare è un’altra strategia, il feedforward, non il feedback. Tenere a mente questo vantaggio del disturbo spiega in anticipo molti dei limiti che il capitolo incontrerà più avanti.

Questa immagine — una gara tra disturbo e correzione, arbitrata da guadagno e ritardo — è la chiave di lettura di tutto il resto. La meccanica che segue non fa che mettere numeri su questa gara.

Terzo angolo: la causalità che si chiude in cerchio

Sezione intitolata “Terzo angolo: la causalità che si chiude in cerchio”

C’è un terzo modo di entrare nell’idea, più astratto dei primi due, e riguarda il tipo di causalità in gioco. Vale la pena soffermarcisi, perché è il punto in cui il pensiero quotidiano fa più resistenza.

Il modello di causa-effetto a cui siamo abituati è lineare. Una causa produce un effetto, l’effetto produce un altro effetto, lungo una catena che va in una direzione: la pallina urta la seconda, che urta la terza. È una causalità a freccia, da A verso B, senza ritorno. Quando un sistema lineare si comporta male, la diagnosi naturale è cercare il pezzo guasto risalendo la catena.

Un anello di feedback rompe questo schema. L’effetto retroagisce sulla causa: lo stato del processo determina l’azione del controllore, l’azione determina il nuovo stato, il nuovo stato determina la nuova azione. La freccia causale non è una linea che va da qualche parte: è un cerchio che si richiude su sé stesso. Le prime conferenze fondative della cibernetica si intitolavano “Circular Causal and Feedback Mechanisms” proprio per questo — meccanismi a causalità circolare.

La conseguenza pratica è netta. In un anello, chiedersi “qual è la causa del problema?” è la domanda sbagliata, perché ogni variabile dell’anello è causa ed effetto di sé stessa, con un ritardo. Non c’è un pezzo guasto da trovare risalendo la catena: c’è un giro da capire. Un anello dominato dal feedback negativo, perturbato, sembra “volere” tornare al setpoint; un anello dominato dal feedback positivo, perturbato, fugge sempre più lontano. In entrambi i casi il comportamento globale non si legge guardando i componenti uno per uno: emerge dalla chiusura dell’anello. Imparare a pensare per cicli, e non per catene, è il prerequisito mentale per tutto ciò che segue — e la sezione “Dove si rompe” ci tornerà sopra come su uno degli errori più frequenti.

Ora il formalismo, un pezzo alla volta, restando sul caso più semplice: il controllore proporzionale — l’azione è proporzionale allo scarto, niente di più — e un processo a tempo discreto, che evolve a passi. Non è il caso più realistico, ma è quello in cui ogni effetto si calcola a mano. Le complicazioni del caso reale — azione integrale e derivativa, dinamica continua, non linearità — sono materia dei capitoli di control theory della Parte XI; aggiungerle qui nasconderebbe le intuizioni invece di chiarirle.

Un avvertimento di lettura. La matematica che segue è poca e si fa a mente: una sottrazione, una moltiplicazione, qualche passo di una successione. Non serve sapere di analisi o di algebra lineare. Serve solo seguire un numero che gira nell’anello e cambia a ogni passo. Se in qualche punto la formula sembra opaca, il rimedio è tornare all’esempio numerico più avanti, dove ogni simbolo diventa una cifra concreta su un foglio.

Riprendiamo i sei blocchi dell’anello, ora con il loro simbolo e il loro ruolo preciso.

  • Il processo (in inglese plant): il sistema da governare. Riceve l’azione e i disturbi, produce uno stato osservabile.
  • Il sensore: misura lo stato del processo. La misura la chiamiamo yy. Il sensore non è gratis né istantaneo: introduce ritardo e rumore, e ci torneremo.
  • Il comparatore: il nodo che calcola lo scarto. Riceve il valore voluto e la misura, e produce la loro differenza.
  • Il controllore: la funzione che trasforma lo scarto in un comando.
  • L’attuatore: l’organo che esegue il comando sul processo. Ha limiti fisici — una valvola si apre al massimo del 100%, un motore ha una coppia massima.
  • Il ramo di ritorno: il collegamento dal sensore al comparatore, che chiude l’anello.

E i tre segnali che scorrono nell’anello:

  • Il riferimento o setpoint, rr: il valore desiderato dello stato. La temperatura impostata, la velocità voluta.
  • L’errore, e=rye = r - y: la differenza tra ciò che vogliamo e ciò che misuriamo. È il segnale che fa girare l’anello. Se è zero, il sistema è dove deve essere; se non è zero, qualcosa va corretto.
  • L’azione di controllo, uu: ciò che l’attuatore applica al processo.

A questi si aggiunge il disturbo dd, che non scorre nell’anello ma entra dal di fuori e agisce sul processo.

Conviene soffermarsi un istante sul sensore, perché è il componente che si tende a dare per scontato e che invece determina la qualità dell’intero anello. Un anello di feedback non agisce sul mondo: agisce su ciò che crede del mondo, e ciò che crede gli arriva dal sensore. Se il sensore è rumoroso, l’anello insegue fluttuazioni che non corrispondono a niente di reale e agita il sistema senza motivo. Se il sensore è in ritardo, l’anello corregge uno stato che appartiene al passato. Se il sensore è distorto — misura sistematicamente alto o basso — l’anello converge fedelmente, ma a un valore diverso da quello voluto. In tutti e tre i casi il controllore può essere perfetto: l’anello sbaglia lo stesso, perché lavora su un’immagine del processo che il sensore gli ha consegnato corrotta. È un punto a cui la sezione “Dove si rompe” tornerà, ed è il legame diretto con l’idea di osservabilità della Parte IX.

Una cosa va detta sull’errore, perché è il punto in cui la cibernetica si distingue dalla pura meccanica. L’errore è un segnale di informazione, non di energia. Wiener ci insisteva con una frase diventata citazione: “Information is information, not matter or energy” — l’informazione è informazione, non materia né energia. Il comparatore non sposta nulla di fisico: confronta due numeri e ne produce un terzo. Tutta la potenza dell’anello sta nel fatto che quel numero — lo scarto — viene poi usato per decidere un’azione. Seguire un sistema di controllo significa seguire un flusso di informazione: dove viene misurata, come viene confrontata, dove guida una decisione.

Il setpoint rr merita una frase, perché è facile darlo per scontato. Non è una proprietà del sistema: è una scelta. Qualcuno lo ha posto. In un termostato è un numero su una manopola; il diagramma dell’anello lo disegna come una freccia che entra nel comparatore dal di fuori, e quel “di fuori” è precisamente il punto in cui un essere umano ha deciso cosa il sistema deve cercare di ottenere. Questa osservazione tornerà più avanti nella Parte X con la cibernetica di secondo ordine, second-order-cybernetics (in preparazione): chi sceglie il setpoint fa parte del sistema socio-tecnico, anche se lo schema lo colloca all’esterno. Per ora basta tenere a mente che l’anello insegue un bersaglio, ma il bersaglio gli è stato dato.

L’errore e=rye = r - y ha un segno, e il segno è dove nasce il termine “feedback negativo”. Perché il sistema converga verso il setpoint, l’azione deve spingere lo stato nella direzione che riduce lo scarto. Il segnale di ritorno deve avere segno opposto alla deviazione. È questo il significato tecnico di “negativo”: non “cattivo”, ma “di segno contrario all’errore, quindi tendente ad annullarlo”. È uno dei fraintendimenti più comuni, e la sezione “Dove si rompe” ci tornerà sopra.

La regola più semplice che lega errore e azione è la proporzionale:

u=Keu = K \cdot e

In parole povere, questo dice che l’azione di controllo è proporzionale allo scarto: più sei lontano dal bersaglio, più correggi. La costante KK si chiama guadagno del controllore: misura quanto aggressiva è la correzione. Con KK grande, anche un piccolo scarto produce un’azione vigorosa; con KK piccolo, serve uno scarto grande perché succeda qualcosa.

Questa forma proporzionale è il punto di partenza, non l’arrivo. Un controllore reale somma di solito tre termini: uno proporzionale all’errore presente, uno proporzionale all’errore accumulato nel passato — l’azione integrale, già intuita da Maxwell nei “governori” — e uno proporzionale a quanto velocemente l’errore cambia. È lo schema del controllore PID, materia di pid-control-intuizione (in preparazione) nella Parte XI. Qui basta il termine proporzionale per vedere lo scheletro: l’azione nasce dallo scarto.

Lo scheletro dell’anello, in pseudocodice, è di una brevità che colpisce:

setpoint r # il valore desiderato
loop:
y = misura_stato() # il sensore
e = r - y # il comparatore
u = K * e # il controllore proporzionale
applica_azione(u) # l'attuatore agisce sul processo
# il ramo di ritorno: la prossima misura riflettera' u

Cinque righe nel ciclo. Misura, confronta, decidi, agisci. È poco, e proprio per questo è notevole: questo scheletro minimo basta a produrre un comportamento che, visto da fuori, sembra orientato a uno scopo.

Prima di guardare guadagno e ritardo, conviene rendere quantitativa la distinzione tra catena aperta e anello chiuso introdotta nell’intuizione, perché è la distinzione da cui dipende tutto. Un sistema in catena aperta non ha il ramo di ritorno della misura: il controllore calcola un’azione una volta, sulla base del setpoint e di un modello, e la applica. Se sopraggiunge un disturbo dd, l’uscita devia di tutto dd, e il sistema non se ne accorge — non misura yy, quindi non ha modo di sapere che sta sbagliando. L’errore prodotto da un disturbo, in catena aperta, è semplicemente l’intero disturbo.

In catena chiusa, il ramo di ritorno cambia la situazione in modo misurabile. Il sistema misura yy, vede che il disturbo ha creato uno scarto, e reagisce. Lo si è già visto con la formula e=d/Ke = d / K: in un anello chiuso proporzionale, un disturbo dd produce un errore residuo non di dd, ma di dd diviso il guadagno. Se KK vale 10, il feedback ha ridotto l’effetto del disturbo a un decimo. Se KK vale 100, a un centesimo. È questa la cifra del feedback: non elimina il disturbo — un po’ di scarto resta sempre — ma lo attenua di un fattore pari al guadagno. Chiudere l’anello significa, in numeri, dividere l’effetto di ogni disturbo per il guadagno.

È anche il motivo per cui si è tentati di alzare il guadagno senza limiti: più KK è alto, più il disturbo è schiacciato. Il resto della meccanica esiste per dire perché non si può.

C’è una grandezza che riassume il comportamento dell’intero anello, e non va confusa con il guadagno KK del solo controllore. Percorri l’anello una volta e moltiplica il guadagno di ogni blocco che incontri: controllore, processo, sensore. Il prodotto si chiama guadagno di anello, e lo indichiamo con LL. (In un sistema dinamico reale LL non è un numero ma una funzione della frequenza del segnale; la versione “numero” che usiamo qui è una semplificazione utile per l’intuizione.)

Il guadagno di anello governa il carattere dell’anello, e lo fa attraverso un compromesso netto.

Se LL è grande in modulo, con il giusto segno negativo, la correzione è forte. L’errore a regime — lo scarto che rimane quando il sistema si è assestato — è piccolo. Ma cresce il rischio che il sistema, correggendo con troppa foga, superi il bersaglio e debba poi tornare indietro: cioè che oscilli.

Se LL è piccolo, la correzione è blanda. Il comportamento è docile e tranquillo, niente oscillazioni, ma rimane un errore a regime grande: il sistema si assesta lontano dal setpoint.

E se per qualche motivo — lo vedremo, i ritardi lo fanno — il guadagno effettivo diventa positivo, l’anello amplifica invece di correggere, e il sistema diventa instabile.

La lezione, in una frase: non esiste “il guadagno giusto” in assoluto. C’è un compromesso tra prontezza della correzione e rischio di instabilità, e va calibrato sul sistema specifico.

Vale la pena capire perché un guadagno basso lascia un errore residuo, perché è un punto controintuitivo. Con un controllore proporzionale puro, l’azione è u=Keu = K \cdot e: per produrre un’azione diversa da zero serve uno scarto diverso da zero. Se c’è un disturbo costante che spinge sempre nella stessa direzione, il sistema non può assestarsi a errore zero — perché a errore zero l’azione sarebbe zero, e il disturbo, non più contrastato, vincerebbe. Si assesta invece a un errore piccolo ma non nullo: quel tanto che basta a generare l’azione che bilancia il disturbo. Più alto è KK, più piccolo quell’errore residuo. Ma non si può alzare KK all’infinito, ed è per superare questo limite che i controllori reali aggiungono l’azione integrale.

Un conto rapido rende la cosa concreta. Supponi che il processo sia tenuto fermo dall’equilibrio tra l’azione uu e un disturbo costante dd: a regime serve u=du = d per bilanciare il disturbo. Ma u=Keu = K \cdot e, quindi a regime Ke=dK \cdot e = d, da cui l’errore a regime vale e=d/Ke = d / K. La formula dice tre cose in una riga. Primo: l’errore a regime è proporzionale al disturbo — disturbo più grande, scarto residuo più grande. Secondo: è inversamente proporzionale al guadagno — raddoppia KK e dimezzi l’errore residuo. Terzo, e decisivo: l’errore residuo non è mai zero per nessun KK finito, perché d/Kd / K si annulla solo se KK è infinito. Questo è il limite strutturale del controllo proporzionale puro, e la ragione matematica per cui esiste l’azione integrale: solo accumulando lo scarto nel tempo si può generare un’azione non nulla anche quando lo scarto istantaneo è zero, e così azzerare l’errore a regime.

Il ritardo, e perché un feedback negativo può oscillare

Sezione intitolata “Il ritardo, e perché un feedback negativo può oscillare”

Questo è il punto più sottile e più utile del capitolo. Un anello di feedback negativo dovrebbe stabilizzare: per costruzione, la sua azione si oppone allo scarto. Eppure i regolatori di Watt a volte oscillavano sempre più forte, e il predittore contraereo su cui lavorava Wiener faceva lo stesso. Perché?

La risposta è il ritardo (in inglese lag, o delay). Ogni anello reale impiega tempo a fare il suo giro: il sensore impiega tempo a misurare, il controllore a calcolare, l’attuatore ad agire, il processo a rispondere. La correzione che applichi adesso è stata calcolata sullo scarto di prima.

Se il ritardo è piccolo rispetto a quanto velocemente cambia il sistema, non è un problema: la correzione arriva ancora “in tempo”, lo scarto su cui è stata calcolata non è cambiato molto. Ma se il ritardo è grande, succede una cosa precisa e dannosa. La correzione, calcolata per opporsi a uno scarto positivo, arriva quando lo scarto ha già cambiato segno ed è diventato negativo. A quel punto la correzione, che doveva opporsi allo scarto, lo rinforza. Il feedback negativo, a causa del ritardo, si è di fatto comportato come feedback positivo. Il sistema oscilla. E se il guadagno è alto, le oscillazioni crescono di ampiezza a ogni giro: è l’instabilità, l’hunting del gergo ingegneristico.

Un modo di vedere il fenomeno lo rende inevitabile. Immagina di spingere un’altalena. Se spingi quando l’altalena si sta allontanando da te, le dai energia e l’oscillazione cresce. Se spingi quando ti si avvicina, le togli energia e l’oscillazione si smorza. La differenza tra smorzare e amplificare è solo il tempismo della spinta, il suo sfasamento rispetto al moto. Un anello di feedback con troppo ritardo è un bambino che spinge l’altalena sempre al momento sbagliato: ogni “correzione” aggiunge energia all’oscillazione invece di toglierla. Il segno dell’anello dice che la spinta vorrebbe essere correttiva; il ritardo decide se lo è davvero.

L’esempio domestico perfetto è la doccia con il boiler lontano. Apri il rubinetto del caldo. Per qualche secondo non cambia nulla — è il ritardo, l’acqua calda deve ancora percorrere il tubo. Tu, impaziente, apri ancora di più. Poi arriva tutta insieme l’acqua bollente che hai chiamato in due tempi: ti scotti. Chiudi di colpo. Dopo qualche secondo arriva il freddo che hai appena ordinato. E così oscilli tra scottato e gelato. Non c’è nessun guasto nei rubinetti: è il solo ritardo nell’anello a generare l’oscillazione. La doccia con il miscelatore termostatico moderno non oscilla perché il ritardo è quasi azzerato.

C’è un punto da fissare con precisione, perché è la chiave di tutto. Guadagno e ritardo non sono due difetti indipendenti: agiscono insieme. Un ritardo lungo, da solo, non basta a far divergere un anello — se il guadagno è basso, la correzione sfasata che arriva tardi è anche debole, e l’oscillazione che genera si smorza. Un guadagno alto, da solo, su un anello senza ritardo, non diverge — corregge con foga ma “in tempo”. È la combinazione — guadagno alto e ritardo lungo — che porta all’instabilità: una correzione forte, sbagliata di tempismo, che a ogni giro pompa energia nell’oscillazione. Per questo non si può ragionare su uno dei due numeri ignorando l’altro: contano in coppia. È anche il motivo per cui un anello al limite della stabilità si può salvare in due modi opposti — abbassando il guadagno o accorciando il ritardo — e perché in pratica si sceglie quello dei due che costa meno cambiare.

Le cure, allora, sono tre, e si capiscono tutte da qui. Ridurre il guadagno: correzioni più caute danno meno overshoot, e l’oscillazione, se nasce, nasce più piccola e si smorza. Ridurre il ritardo: sensori e attuatori più veloci accorciano il giro dell’anello, e la correzione arriva ancora in tempo. Oppure aggiungere un termine anticipatorio, che provi a indovinare dove sta andando il sistema invece di reagire a dove è già: nel controllore PID è il termine derivativo, fuori dall’anello è il feedforward — e qui il rimando obbligato è di nuovo a Feedback vs feedforward, che sviluppa per esteso la strategia anticipatoria.

Quando un anello di feedback riceve un cambio improvviso del setpoint — uno scalino, per esempio il termostato che passa da 18 a 20 gradi — la sua uscita non salta istantaneamente al nuovo valore: ci arriva attraverso una traiettoria. Quella traiettoria si descrive con un vocabolario standard, preso dalla teoria del controllo, che vale la pena imparare perché è lo stesso vocabolario con cui si parlerà del comportamento di un agente o di una loss di training.

La traiettoria ha due fasi. La prima è il transitorio: la fase iniziale, in cui il sistema si sta ancora muovendo verso il nuovo valore. La seconda è il regime (in inglese steady state): la fase in cui l’uscita non cambia più, o oscilla in modo stazionario attorno a un valore.

Dentro questo quadro si misurano quattro grandezze.

L’overshoot (sovraelongazione) è di quanto l’uscita supera il valore finale prima di assestarsi. Si esprime spesso in percentuale: un overshoot del 10% significa che il sistema, diretto a 20 gradi, è arrivato fino a 22 prima di tornare indietro. L’overshoot è la firma di un guadagno generoso: il sistema ha corretto con foga ed è andato oltre.

Il tempo di assestamento (settling time) è il tempo che la risposta impiega a entrare e restare entro una banda stretta — tipicamente il 2% o il 5% — attorno al valore finale. Misura quanto in fretta il transitorio si esaurisce.

L’errore a regime (steady-state error) è lo scarto residuo tra setpoint e uscita una volta finito il transitorio. Come visto, con un controllore proporzionale puro e un disturbo costante non è zero.

E c’è il numero di oscillazioni: quante volte la curva attraversa il valore finale prima di posarcisi.

Mettendo insieme guadagno e ritardo, la risposta a scalino assume quattro forme tipiche. Sovrasmorzata: il sistema sale lentamente e raggiunge il setpoint senza mai superarlo — nessun overshoot, ma assestamento lento. Ben smorzata: il sistema sale rapido, supera di poco il setpoint, e si assesta in fretta con una o due oscillazioni minime — è il caso desiderabile, il compromesso giusto. Marginalmente stabile: il sistema oscilla attorno al setpoint con un’ampiezza che non si spegne. Instabile: il sistema oscilla con ampiezza che cresce a ogni giro, divergendo. Calibrare un anello significa, in pratica, portarlo nella seconda forma.

Vale la pena notare che queste quattro grandezze sono in tensione tra loro: non si possono ottimizzare tutte insieme. Volere un assestamento più rapido di solito significa alzare il guadagno, ma alzare il guadagno aumenta l’overshoot. Volere overshoot zero significa abbassare il guadagno, ma abbassarlo allunga il tempo di assestamento e ingrossa l’errore a regime. Non esiste una taratura che vinca su ogni fronte: esiste una taratura che bilancia, e il bilanciamento dipende da cosa costa di più nel caso specifico. Per un forno industriale un piccolo overshoot di temperatura può rovinare il prodotto, e si preferisce una risposta lenta; per un sistema che deve reagire in fretta a un guasto, un overshoot contenuto è un prezzo accettabile in cambio di prontezza. Leggere la risposta nel tempo significa, alla fine, scegliere quale compromesso si è disposti a pagare.

Finora il capitolo ha parlato di feedback negativo: l’azione si oppone allo scarto. È il feedback dei sistemi che funzionano. Cerca un equilibrio e ci si aggrappa: spingi via il sistema dal setpoint e lui ci ritorna. Da questo comportamento nasce l’illusione dello scopo — il sistema sembra volere stare sul bersaglio.

Il suo opposto è il feedback positivo: l’azione rinforza la deviazione invece di opporvisi. Una piccola spinta in una direzione genera una spinta ancora più grande nella stessa direzione, che ne genera una ancora più grande. Il feedback positivo non cerca un equilibrio: ne fugge. I suoi esiti sono crescita esponenziale, valanga, esplosione, oppure il blocco del sistema in uno stato estremo da cui non torna.

Il feedback positivo ha una firma temporale riconoscibile: nei suoi stadi iniziali sembra “non succedere niente”, poi tutto accade in fretta. La crescita è lenta finché i numeri sono piccoli e improvvisa quando diventano grandi. È la forma di ogni esplosione e di ogni contagio. Il microfono troppo vicino al suo altoparlante è l’esempio classico: il suono captato viene amplificato, riemesso, captato di nuovo più forte, fino al fischio acuto — l’effetto Larsen. La corsa agli armamenti tra due nazioni è lo stesso schema su scala storica.

Il feedback positivo non è sempre patologico. In biologia ha funzioni precise: durante il parto l’ormone ossitocina aumenta le contrazioni dell’utero, e le contrazioni stimolano il rilascio di altra ossitocina — un anello positivo che si ferma solo quando il bambino è nato. La coagulazione del sangue funziona allo stesso modo. Sono casi in cui serve un’escalation rapida e tutto-o-niente. Ma fuori da questi casi, un feedback positivo non presidiato finisce sempre male: o satura contro un limite fisico, o cresce finché qualcosa si rompe. Non si spegne da solo.

C’è un modo compatto di tenere a mente la differenza tra i due tipi: il feedback negativo cerca un equilibrio e ci si aggrappa, il feedback positivo fugge da un equilibrio. È anche il motivo per cui i due producono comportamenti temporali opposti. Un sistema dominato dal feedback negativo, lasciato a sé, tende a un valore e ci resta — la sua traiettoria è una curva che si appiattisce. Un sistema dominato dal feedback positivo, lasciato a sé, non ha un valore di arrivo: la sua traiettoria o esplode o collassa. Quando si osserva un sistema che si stabilizza, si sta guardando un feedback negativo all’opera; quando si osserva un sistema che diverge, c’è un feedback positivo da qualche parte. Imparare a leggere la forma della traiettoria come la firma del segno dell’anello dominante è una delle abitudini più utili che questo capitolo prova a costruire.

Per riconoscere il segno di un anello quando non è ovvio, c’è un trucco qualitativo che non richiede numeri. Immagina una piccola perturbazione in una direzione. Percorri l’anello passo per passo, tenendo conto di ogni inversione di segno lungo il giro. Guarda con che segno la perturbazione torna al punto di partenza. Se torna con segno opposto a quello di partenza, l’anello si oppone alle deviazioni: è negativo. Se torna con lo stesso segno, le rinforza: è positivo. È un conto che funziona anche su anelli intricati, purché non si perda il conto delle inversioni.

Vale la pena fermarsi su un nodo concettuale, perché collega questo capitolo a due idee della Parte IX e chiarisce cosa “stabilità” significhi davvero. Un anello di feedback è, alla lettera, una dinamica: a ogni passo il sistema transita da uno stato al successivo secondo una regola fissa. È esattamente l’oggetto descritto in Stato, transizione, traiettoria. La successione di valori di yy — 0, 50, 75, 87.5 dell’Esempio 1 — è una traiettoria nello spazio di stato; convergenza, oscillazione e divergenza sono semplicemente tre forme di traiettoria.

Il capitolo Equilibrio, stabilità, attrattori definisce un equilibrio stabile come un punto verso cui il sistema ritorna se viene perturbato. Il feedback loop dice da dove viene quella stabilità. Un equilibrio è stabile esattamente quando, attorno a esso, gli anelli di feedback dominanti sono negativi: una perturbazione genera una correzione che la riporta indietro. Un equilibrio è instabile quando attorno a esso domina un feedback positivo: una perturbazione si autoamplifica e allontana il sistema. La stabilità non è una proprietà misteriosa del punto: è il segno degli anelli che lo circondano. E — questo è il contributo specifico del presente capitolo — non basta il segno: anche con anelli negativi, un guadagno troppo alto o un ritardo troppo lungo trasformano un equilibrio che “dovrebbe” essere stabile in un centro di oscillazioni. Il segno decide la vocazione dell’equilibrio; guadagno e ritardo decidono se quella vocazione si realizza.

Questo è il punto in cui il capitolo passa il testimone. Quanto alti possano essere guadagno e ritardo prima che la stabilità si perda, con quali margini di sicurezza, con quali criteri formali per prevederlo: è la materia del prossimo capitolo della Parte X, stabilita-ritardi-oscillazioni (in preparazione), e della control theory della Parte XI. Qui basta aver fissato il legame: feedback negativo è il meccanismo che crea un equilibrio stabile, feedback positivo è il meccanismo che lo distrugge, e i due numeri dell’anello decidono se il meccanismo riesce.

Loop di rinforzo e loop di bilanciamento: il dialetto della system dynamics

Sezione intitolata “Loop di rinforzo e loop di bilanciamento: il dialetto della system dynamics”

C’è un campo che parla degli stessi due anelli con un vocabolario diverso, e conviene conoscerlo perché lo si incontra spesso fuori dall’ingegneria: la system dynamics, la disciplina nata al MIT negli anni ‘50-‘60 con Jay Forrester (ingegnere statunitense, 1918-2016, pioniere della modellazione dei sistemi complessi) e divulgata poi da Donella Meadows e da altri attraverso i causal loop diagram.

La system dynamics nomina i due tipi di anello con due lettere. Il loop di bilanciamento, siglato B (dall’inglese balancing), è l’anello di feedback negativo: porta una variabile verso uno stato voluto e ce la tiene. Il suo comportamento tipico è l’avvicinamento a un plateau. Ogni loop B contiene un setpoint implicito — anche solo “lo stato desiderato” — e il termostato ne è l’esempio da manuale. Il loop di rinforzo, siglato R (da reinforcing), è l’anello di feedback positivo: una variazione in una direzione si autoalimenta. Il suo comportamento tipico è la crescita o il collasso esponenziale. L’interesse composto su un conto di risparmio è un loop R: più soldi generano più interessi, che generano più soldi.

Un causal loop diagram disegna le variabili di un sistema collegate da frecce, ciascuna marcata con un segno: ”+” se le due variabili si muovono nello stesso verso, ”-” se si muovono in verso opposto. Una scorciatoia pratica per classificare un anello: conta le frecce ”-” che contiene. Un numero dispari di segni ”-” indica un loop di bilanciamento; un numero pari, o nessun ”-”, indica un loop di rinforzo. È la stessa regola del trucco delle inversioni di segno, formalizzata.

L’utilità di questo dialetto sta nel fatto che i sistemi reali raramente hanno un solo anello pulito: ne hanno molti, intrecciati. Una popolazione di conigli cresce per un loop R — più conigli fanno più conigli — finché il cibo è abbondante; quando il cibo scarseggia, subentra un loop B — più conigli, meno cibo a testa, meno conigli — che frena la crescita e la porta verso un equilibrio. Lo stesso sistema, due anelli, e il comportamento osservabile dipende da quale dei due “vince” in un dato regime. È il motivo per cui la curva di crescita di una popolazione ha una forma a S: prima domina il loop R e la crescita è esponenziale, poi domina il loop B e la curva piega verso il plateau. La forma a S non è una proprietà di un anello solo: è la firma di una staffetta tra un R e un B.

Le combinazioni ricorrenti di anelli R e B prendono il nome di archetipi sistemici — “limiti alla crescita”, “spostare il peso” e altri — e sono il tema di system-dynamics-forrester (in preparazione), più avanti in questa Parte. L’idea che vale la pena portarsi via fin da qui è che, davanti a un sistema complicato, la mossa giusta non è descriverne tutti i pezzi ma mapparne gli anelli: quali sono, di che segno, quale domina in quale regime. È una griglia di lettura che si applica a un ecosistema, a un mercato, a un’organizzazione e — come si vedrà — a un sistema socio-tecnico costruito attorno a un modello di AI.

Va detto chiaramente che si tratta dello stesso oggetto sotto due nomi. Il loop B è il feedback negativo; il loop R è il feedback positivo. Non c’è una differenza di sostanza, c’è una differenza di accento. La teoria del controllo guarda un anello singolo e ne calibra con precisione il guadagno e il ritardo; la system dynamics guarda reti di molti anelli e studia quale regime emerge dal loro intreccio. Sono due lenti sullo stesso fenomeno, utili in situazioni diverse.

Riconoscere che i due dialetti parlano della stessa cosa ha un risvolto pratico per chi costruisce sistemi AI. Un articolo di ingegneria del controllo, un saggio di pensiero sistemico alla Donella Meadows e un post tecnico sul debugging di agenti possono sembrare scollegati: parlano di PID, di archetipi sistemici, di loop agentici. Ma sotto descrivono lo stesso oggetto — un anello che misura, confronta, corregge — e chi ha imparato il vocabolario una volta lo riconosce sotto tutti i suoi nomi. È uno dei pochi concetti che ripaga di essere capito a fondo, perché poi si ritrova ovunque.

Quattro esempi deliberatamente eterogenei: uno numerico che si calcola a mano, un meccanismo domestico, uno scenario reale di ingegneria, e un programma. Sono lo stesso anello riempito con materiali diversi, e mostrano che lo schema — e i suoi modi di rompersi — sopravvive al cambio di substrato.

Esempio 1 — Numerico: lo stesso anello che converge, oscilla, diverge

Sezione intitolata “Esempio 1 — Numerico: lo stesso anello che converge, oscilla, diverge”

Prendiamo il processo più semplice che si possa scrivere, a tempo discreto. Lo stato è un numero yy, e a ogni passo dell’anello evolve così:

y[t+1]=y[t]+u[t]y[t+1] = y[t] + u[t]

In parole povere: il nuovo valore è quello vecchio più l’azione applicata. Vogliamo portare yy al setpoint r=100r = 100, partendo da y[0]=0y[0] = 0. Usiamo un controllore proporzionale, u[t]=Ke[t]u[t] = K \cdot e[t] con e[t]=ry[t]e[t] = r - y[t]. Cambieremo solo il guadagno KK e guarderemo cosa succede.

Con K=0.5K = 0.5. Al passo 0, lo scarto è e=100e = 100, l’azione è u=50u = 50, quindi y[1]=0+50=50y[1] = 0 + 50 = 50. Al passo 1, e=50e = 50, u=25u = 25, y[2]=75y[2] = 75. Poi 87.5, 93.75, 96.875. La successione sale dolcemente verso 100 e ci si assesta: lo scarto si dimezza a ogni passo. È feedback negativo sano, la risposta sovrasmorzata.

Con K=1K = 1. Al passo 0, e=100e = 100, u=100u = 100, y[1]=100y[1] = 100. Bersaglio centrato in un colpo solo, e ci resta. È il guadagno esattamente giusto per questo processo — gli ingegneri lo chiamano controllo deadbeat.

Con K=2K = 2. Al passo 0, e=100e = 100, u=200u = 200, y[1]=200y[1] = 200: abbiamo superato il bersaglio del doppio. Al passo 1, e=100200=100e = 100 - 200 = -100, u=200u = -200, y[2]=200200=0y[2] = 200 - 200 = 0. Al passo 2 siamo tornati al punto di partenza, e l’errore è di nuovo 100. La successione è 0, 200, 0, 200, e oscilla per sempre con ampiezza costante: è la risposta marginalmente stabile. Con K=2.5K = 2.5 l’oscillazione cresce a ogni passo e diverge: instabilità.

La morale è netta. È lo stesso anello, con lo stesso feedback negativo — l’azione si oppone sempre allo scarto, uu ha sempre il segno di ee. Cambia solo un numero, il guadagno, e il comportamento passa da convergenza dolce a oscillazione perpetua a esplosione. Il segno del feedback non basta a garantire la stabilità: conta il guadagno. E la soglia oltre cui questo anello oscilla — K=2K = 2 — non è universale: dipende dal processo. Per un processo diverso sarebbe altrove. Universale è il fatto che una soglia esiste, e che va trovata.

C’è un’ultima cosa da vedere su questo anello, ed è l’errore a regime. Finora non c’erano disturbi. Aggiungiamone uno costante: a ogni passo entra un disturbo d=10d = -10, qualcosa che da solo abbasserebbe yy di 10. L’equazione diventa y[t+1]=y[t]+u[t]+dy[t+1] = y[t] + u[t] + d. Con K=0.5K = 0.5, il sistema non si assesta più a 100: si assesta dove l’azione uu riesce appena a compensare il disturbo. A regime, yy è fermo, quindi u+d=0u + d = 0, cioè u=10u = 10; ma u=Ke=0.5eu = K \cdot e = 0.5 \cdot e, da cui e=20e = 20. Il sistema si assesta a y=10020=80y = 100 - 20 = 80: venti unità sotto il setpoint. È l’errore a regime, e corrisponde esattamente alla formula e=d/Ke = d / K, con d=10d = 10 in modulo e K=0.5K = 0.5. Raddoppiando il guadagno a K=1K = 1, l’errore residuo si dimezza a 10; ma non si annulla mai per nessun KK finito. È, in numeri su un foglio, il limite strutturale del controllo proporzionale puro.

Il termostato di casa è il feedback negativo da manuale, ma ha un dettaglio che lo rende più interessante di quanto sembri. Misura la temperatura della stanza, yy, la confronta con quella impostata, r=20r = 20 gradi, e accende il riscaldamento se la stanza è troppo fredda.

Se il termostato accendesse esattamente a y<20y < 20 e spegnesse esattamente a y>20y > 20, farebbe una cosa fastidiosa: attorno alla soglia commuterebbe centinaia di volte, perché piccole fluttuazioni della temperatura attraversano di continuo il valore 20. Il fenomeno si chiama chattering, e logora l’attuatore. La cura è l’isteresi: il termostato accende quando yy scende sotto r0.5r - 0.5, cioè 19.5 gradi, e spegne solo quando yy supera r+0.5r + 0.5, cioè 20.5. C’è una banda morta di un grado in cui il termostato non fa nulla, qualunque sia il suo stato corrente.

Questo ha una conseguenza che vale la pena notare. Il termostato con isteresi non è un controllore proporzionale: è un controllore on-off, a due stati. E la sua uscita a regime non è un punto fisso, è un ciclo: la temperatura sale fino a 20.5, il riscaldamento si spegne, la stanza si raffredda lentamente fino a 19.5, il riscaldamento si riaccende, e così via. È feedback negativo — il sistema resta confinato attorno al setpoint, non scappa — ma produce un’oscillazione stabile e voluta, non una convergenza a un valore unico. L’isteresi baratta un po’ di precisione (la temperatura oscilla in una banda invece di stare ferma) contro molta meno usura.

C’è un secondo dettaglio che merita attenzione, e riguarda il ritardo. Un termostato reale non misura la temperatura del cibo o dell’aria a contatto con il radiatore: misura la temperatura dell’aria della stanza, che cambia con un certo ritardo rispetto a quando il riscaldamento si accende. Più quel ritardo è grande — radiatore lento, stanza ampia, sensore lontano dalla sorgente di calore — più ampia diventa l’oscillazione attorno alla banda di isteresi: il riscaldamento continua a scaldare per un po’ anche dopo che la stanza ha già raggiunto la temperatura, perché il sensore se ne accorge in ritardo. È lo stesso effetto della doccia con il boiler lontano, in versione domestica e mite. La banda di isteresi e il ritardo del sensore, insieme, determinano di quanto la temperatura reale oscilla: due manopole, un solo comportamento da calibrare.

Il termostato evita il problema del guadagno usando un controllore on-off invece di un proporzionale, ma se lo si volesse proporzionale ricadrebbe esattamente nella dinamica dell’Esempio 1: un guadagno basso lo farebbe convergere lento e lascerebbe un piccolo errore a regime, un guadagno alto lo farebbe oscillare. Lo schema non cambia con il substrato; cambia solo quale dei suoi modi di rompersi si manifesta.

Il cruise control di un’automobile è un anello di feedback che ognuno ha sperimentato da passeggero. Il setpoint rr è la velocità impostata, diciamo 110 km/h. La misura yy è la velocità attuale, letta dal sensore di rotazione delle ruote. L’errore e=rye = r - y è la differenza. Il controllore calcola quanta accelerazione serve — in pratica, di quanto aprire la farfalla del motore. L’attuatore è il sistema motore-farfalla. Il processo è l’auto, soggetta al disturbo dd: la pendenza della strada, il vento contrario, un eventuale rimorchio.

In pianura, a velocità costante, l’errore è quasi zero e il controllore tiene una farfalla pressoché costante. Poi arriva una salita — un disturbo. L’auto rallenta, yy scende, l’errore diventa positivo, il controllore apre la farfalla, e l’auto recupera velocità. Fin qui, feedback negativo che fa il suo mestiere.

Ma c’è un dettaglio che illustra l’errore a regime, e questa volta con un numero. Con un controllore puramente proporzionale, in salita l’auto non torna esattamente a 110: si assesta poco sotto. Applichiamo la formula vista nella meccanica, e=d/Ke = d / K. Supponiamo che la salita sia un disturbo che, lasciato fare, sottrarrebbe l’equivalente di 12 km/h di velocità, e che il controllore abbia un guadagno tale per cui d/Kd / K valga 3. Allora l’auto si assesta a 1103=107110 - 3 = 107 km/h: la farfalla è abbastanza aperta da vincere quasi tutta la salita, ma quel “quasi” è lo scarto residuo che genera l’azione. Se raddoppiassimo il guadagno, l’auto si assesterebbe a 108.5 — errore residuo dimezzato — ma con un guadagno doppio il transitorio diventa più nervoso. È il compromesso del guadagno, visto su strada. È esattamente per azzerare quello scarto residuo che i cruise control reali non sono puramente proporzionali ma includono l’azione integrale: sono controllori PI, o PID. L’integrale accumula lo scarto residuo nel tempo finché l’azione non è abbastanza grande da riportare la velocità esatta a 110, senza bisogno di alzare il guadagno proporzionale.

E l’overshoot? Lo si vede in discesa. Se la strada scende e il controllore reagisce con troppa foga a una velocità che sta salendo, l’auto può superare i 110 impostati prima di assestarsi, esattamente come la curva ben smorzata della risposta a scalino. Un cruise control ben calibrato tiene quell’overshoot piccolo: un paio di km/h, riassorbiti in pochi secondi.

Un agente di coding riceve un compito: far passare una suite di test che attualmente fallisce. Il suo ciclo di lavoro è un anello di feedback, e la mappatura sui sei componenti è esatta, non metaforica.

Il processo è la codebase e il suo comportamento osservabile. Il sensore è il test runner: l’output che produce è la misura yy. Il comparatore è il passo in cui l’agente confronta quell’output con l’obiettivo. L’errore ee è l’insieme dei test che falliscono, letto attraverso i messaggi che producono. Il controllore è il modello, che dallo scarto decide quale modifica fare. L’attuatore è l’applicazione dell’edit al file. Il setpoint rr è “tutti i test verdi”. Il ciclo gira: lancia i test, leggi l’output, individua cosa fallisce, modifica il codice, rilancia. Quando l’errore è zero, l’anello si ferma.

Vale la pena essere precisi su cosa significa “non metaforico”. La struttura dell’anello — la forma in cui i blocchi sono collegati da frecce causali — è identica a quella del termostato: c’è un setpoint, una misura, un comparatore, un controllore, un attuatore, un ramo di ritorno. È un’identità di schema. Non è però un’identità piena: il controllore del termostato è una regola fissa e semplice, mentre il controllore di un agente è un modello di linguaggio, un oggetto enormemente più complesso, non lineare, di cui non conosciamo la dinamica interna. I teoremi della teoria del controllo, che valgono per controllori lineari, non si applicano a un agente. Ciò che si trasferisce non sono i teoremi, ma le categorie di guasto — ritardo, guadagno, segno dell’anello — e queste si trasferiscono perché dipendono solo dalla forma dell’anello, non dalla natura del controllore.

E proprio per questo, l’anello agentico può rompersi nei modi che il capitolo ha già descritto. Se l’agente fa edit troppo aggressivi a ogni passo, ognuno dei quali tocca codice che non doveva toccare, l’edit successivo deve in parte disfare il precedente: è overshoot, un problema di guadagno. Se l’agente ragiona su un output di tool ormai vecchio — lo stato del repository è cambiato da quando l’ha osservato — è un problema di ritardo. Se l’agente reagisce a un test che fallisce in modo intermittente, per ragioni non legate al suo codice, sta inseguendo rumore nel sensore. Tre guasti, tre cure diverse, e il vocabolario del controllo è ciò che li distingue.

C’è una differenza importante tra questo anello e quello di un termostato, e merita di essere nominata. Un termostato, garantito dalla fisica, prima o poi converge: la stanza si scalda. Un anello agentico no: può non assestarsi mai, perché il suo controllore — il modello — non è vincolato a ridurre lo scarto a ogni passo. Per questo un loop agentico ben costruito ha quasi sempre un budget di passi: un limite massimo di iterazioni oltre il quale il loop si ferma comunque, riuscito o no. In termini di controllo, il budget è una garanzia di terminazione esterna all’anello: una rete di sicurezza che impedisce a un loop patologico — uno che oscilla o non converge — di girare all’infinito consumando risorse. È un componente che il termostato non ha bisogno di avere e che l’agente, invece, deve avere per costruzione.

Il vocabolario di questo capitolo — sei componenti, errore, guadagno, ritardo, segno dell’anello — si applica direttamente a chi costruisce sistemi AI. Il filo comune di tutte le applicazioni che seguono è uno: davanti a un sistema che si comporta male, ci sono due famiglie di spiegazioni. Una guarda i componenti — “il modello ha sbagliato”, “il tool ha restituito un errore”. L’altra guarda la struttura del loop — “la correzione arriva troppo tardi”, “il guadagno è troppo alto”, “questo anello si auto-rinforza”. Le due famiglie portano a interventi diversi: la prima fa sostituire un pezzo, la seconda fa ridisegnare il modo in cui i pezzi sono collegati. Molti malfunzionamenti che sembrano colpa di un componente sono in realtà colpa del disegno del loop, e si riconoscono solo se si ha il vocabolario di feedback, guadagno e ritardo. Prima di chiedersi “quale componente ha sbagliato” conviene quasi sempre chiedersi “che forma ha l’anello, e come è tarato”.

Diagnosticare un agente che diverge. Quando un agente entra in un comportamento patologico, la causa è quasi sempre uno dei tre guasti dell’anello, e ciascuno ha una cura diversa. Se il guasto è il ritardo — l’agente lavora su osservazioni stantie — la cura è ri-osservare più spesso, restringere il passo tra azione e verifica. Se il guasto è il guadagno troppo alto — l’agente sovra-corregge, fa modifiche enormi che l’edit dopo deve disfare — la cura è abbassare il guadagno: edit incrementali, una modifica chirurgica alla volta. Se il guasto è un feedback positivo — l’agente rinforza il proprio errore, si convince sempre di più di una strada sbagliata — la cura è strutturale: serve un ancoraggio esterno che spezzi l’anello, un test oggettivo o un controllo umano. Saper nominare il guasto come “guadagno” e non come “ritardo” porta direttamente alla cura giusta. È questo che il vocabolario aggiunge: non risolve il problema da solo, ma fa puntare allo strumento corretto, invece di trattare ogni malfunzionamento come “il modello ha sbagliato”.

Un caso concreto rende la distinzione tangibile. Un agente che lavora su una codebase fa un edit per far passare un test, lancia la suite, ne vede un secondo rotto, lo aggiusta, e quel fix rompe di nuovo il primo: ciclo infinito. Cosa è? Non è ritardo — l’agente vede risultati freschi a ogni passo. Non è feedback positivo in senso stretto — l’agente vuole davvero ridurre lo scarto. È guadagno troppo alto: ogni edit è troppo ampio e tocca codice che non doveva toccare. La cura non è “ri-osserva di più” né “metti un umano nel loop”: è abbassare il guadagno, costringere l’agente a edit minimi, una modifica chirurgica alla volta. Tre guasti diversi avrebbero avuto tre cure diverse, e applicare la cura del guasto sbagliato non risolve nulla — spesso peggiora. Il vocabolario del controllo serve esattamente a questo: a non confondere quale dei tre si ha davanti.

Calibrare il loop di training. Nel training di una rete neurale, il learning rate gioca il ruolo del guadagno di anello. Se durante il training la loss oscilla o esplode invece di scendere, la prima mossa è abbassare il learning rate — esattamente come si abbassa KK in un anello proporzionale che comincia a oscillare. Il warmup — partire con un learning rate piccolo e alzarlo gradualmente — e il learning rate scheduling sono modi di gestire il guadagno nel tempo: piccolo all’inizio, quando il sistema è lontano dall’equilibrio e gli errori sono enormi, poi modulato. Gli ingegneri del controllo chiamano questa pratica gain scheduling. E il gradient clipping — limitare la norma del gradiente per evitare aggiornamenti troppo grandi — è un limite deliberato sull’azione, l’equivalente della saturazione di un attuatore. Tre pratiche di training apparentemente scollegate, lo stesso problema unico sotto: tenere il guadagno di un anello dentro la zona stabile.

Vale la pena rendere esplicito perché questa lettura non è solo un modo elegante di parlarne. Chi conosce il vocabolario del controllo, davanti a una loss che oscilla, non si chiede “il dataset è sporco?” o “l’architettura è sbagliata?” come prima mossa: riconosce la firma di un guadagno troppo alto e abbassa il learning rate. Davanti a una loss che esplode all’inizio del training e poi, se sopravvive, va bene, riconosce il problema dell’anello dell’Esempio 1 con KK grande e uno scarto enorme, e applica il warmup. La lettura cibernetica non sostituisce la competenza di ML: la affianca con una griglia diagnostica che indica dove guardare per primo. È esattamente lo stesso valore che il vocabolario aggiunge al debugging di un agente.

Progettare i guardrail come anelli di controllo. Un guardrail in un sistema LLM — un classificatore di sicurezza, un filtro sull’output, un validatore di formato — è un anello di controllo aggiunto attorno al modello. Misura una proprietà dell’output (presenza di contenuto tossico, conformità a uno schema, presenza di dati personali), la confronta con un criterio — il setpoint è “output accettabile” — e agisce: blocca, rigenera, corregge. È feedback negativo deliberato. Pensarlo come un anello rende espliciti i parametri da tarare: dove si misura, qual è il setpoint, quanto aggressivo è il guadagno. Un guardrail con guadagno troppo alto rifiuta troppo, soffoca il sistema di falsi positivi; uno con guadagno troppo basso lascia passare ciò che doveva fermare. È lo stesso compromesso del guadagno di anello, applicato alla sicurezza.

Disegnare loop annidati. I sistemi AI reali raramente hanno un solo anello: hanno anelli dentro anelli. Un caso canonico ha tre livelli. Il più interno è l’agente stesso: osserva, decide, agisce, ri-osserva, con un giro che dura secondi. Attorno a esso c’è un loop di valutazione: un secondo sistema — un giudice automatico, una suite di eval, un altro modello che verifica — che misura la qualità del lavoro dell’agente e lo accetta o lo respinge, con un giro che dura minuti. Attorno a quest’ultimo c’è il loop umano: una persona che supervisiona, approva le azioni rischiose, fa escalation quando qualcosa non torna, con un giro che dura ore o giorni. Tre anelli concentrici, ciascuno con il proprio setpoint, il proprio ritardo, il proprio guadagno.

Un principio della teoria del controllo dice quando questa struttura funziona: gli anelli annidati si comportano bene se l’anello interno è molto più veloce di quello esterno — una separazione di scala temporale. Quando vale, ogni anello esterno “vede” quello interno come se fosse già assestato, e può ragionare sul suo comportamento medio senza inseguirne i transitori. Quando non vale — quando il loop di valutazione gira quasi alla stessa velocità dell’agente — i due interferiscono: il giudice corregge l’agente mentre l’agente sta ancora reagendo alla correzione precedente, e nasce un’oscillazione tra i livelli. Progettare la gerarchia di loop di un sistema agentico è, in buona parte, scegliere le scale temporali in modo che restino separate: l’eval non deve girare a ogni token, l’umano non deve essere chiamato a ogni edit. È lo stesso motivo per cui, in un’automobile, il loop veloce che regola l’iniezione di carburante e il loop lento con cui il guidatore decide la rotta non si disturbano: vivono su scale temporali diverse.

Sorvegliare i feedback loop di prodotto. Un sistema AI in produzione vive dentro anelli più larghi del singolo agente: i suoi output influenzano gli utenti, gli utenti generano dati, i dati rientrano nell’addestramento o nella valutazione. Sono anelli lenti, con ritardi lunghi — settimane, mesi — e proprio per questo difficili da governare: quando un comportamento indesiderato diventa visibile, il disturbo che lo ha causato è entrato nell’anello molto tempo prima. La cibernetica insegna a cercarli e a chiedersi di che segno sono. Un sistema di raccomandazione che impara dalle interazioni può chiudere un anello positivo non presidiato: i contenuti già popolari ottengono più esposizione, quindi più interazioni, quindi ancora più esposizione. La contromisura — iniettare esplorazione, varietà forzata — è, nei termini di questo capitolo, l’aggiunta di un feedback negativo deliberato che contrasta un feedback positivo spontaneo.

Lo stesso ragionamento si applica all’RLHF iterato. Un modello viene allineato su preferenze umane; gli output del modello influenzano cosa gli annotatori vedono e quindi le preferenze che esprimono al giro successivo; e spesso i dati di preferenza vengono raccolti confrontando output del modello stesso. È un anello, e se i dati di addestramento futuri sono dominati da ciò che il modello già produce, l’anello rischia di essere positivo: il modello rinforza i propri pattern invece di essere corretto da segnale fresco. Il presidio è lo stesso che vale per ogni anello di auto-valutazione — ancorarlo a qualcosa che non dipende dal sistema: dati raccolti dal mondo reale, valutatori indipendenti, un dataset di riferimento fisso. Cercare questi anelli larghi prima che producano deriva, e classificarli per segno, è una delle abitudini operative più concrete che la cibernetica regala a chi gestisce un sistema AI in produzione.

Il ponte verso l’AI: dove l’analogia regge e dove no

Sezione intitolata “Il ponte verso l’AI: dove l’analogia regge e dove no”

Questa sezione merita cura, perché il vocabolario del feedback si applica all’AI in modi che vanno da “stessa identica struttura” a “somiglianza con un nucleo formale preciso”. È il terreno dove le classi di affermazione — analogia, filiazione, equivalenza — si confondono se non le si marca. Qui le marchiamo a una a una.

Il loop agentico come feedback — identità di schema. Il ciclo osserva-pensa-agisci di un agente non somiglia a un anello di feedback: è un anello di feedback, nello stesso senso strutturale in cui lo è il governor di Watt. Vale la pena fare la mappatura componente per componente, perché è precisa e non lascia spazio a vaghezza. Il setpoint è l’obiettivo del task — “rispondi alla domanda”, “fai passare i test”, “porta a termine la migrazione”. Il sensore è il meccanismo con cui l’agente percepisce lo stato del mondo: la lettura dell’output di un tool, il contenuto di un file, il risultato di un comando. La misura yy è quell’osservazione. Il comparatore è il passo di ragionamento in cui l’agente confronta l’osservazione con l’obiettivo e si chiede “ci sono, o manca qualcosa?”. L’errore ee è il gap residuo che quel confronto produce: ciò che ancora non va. Il controllore è il modello di linguaggio, che dall’errore decide la prossima mossa. L’attuatore è la tool call che esegue quella mossa. Il processo è l’ambiente — il filesystem, il repository, il sistema esterno. E il ramo di ritorno è il fatto che l’agente, dopo aver agito, ri-osserva.

La struttura causale chiusa è la stessa di un termostato. È un’identità di schema, e va distinta da un’identità piena: lo schema è lo stesso, ma i blocchi sono fatti di materiali diversi, e il controllore — un modello di linguaggio — è incomparabilmente più complesso e opaco di un termostato. Ciò che il capitolo precedente (cibernetica-definizione) chiama “identità di schema con il timoniere di Wiener” è esattamente questo. Il pattern ReAct, descritto in ReAct: Synergizing Reasoning and Acting in Language Models (Yao et al., arXiv 2022), che alterna passi di ragionamento e passi di azione, è la forma esplicita di questo anello. Il loop percezione-azione degli agenti — loop-percezione-azione (in preparazione), react (in preparazione) — è lo stesso oggetto visto dal lato dell’ingegneria degli agenti.

Perché questa mappatura è utile e non un esercizio di stile: rende dicibili i guasti dell’agente con il vocabolario del controllo. Un agente con ritardo è uno che ragiona su un’osservazione ormai vecchia — lo stato del repository è cambiato da quando l’ha letto. Un agente con overshoot è uno che a ogni passo corregge più del necessario: fa un edit ampio per sistemare un dettaglio, e l’edit successivo deve disfarne una parte. Un agente in oscillazione applica e revoca la stessa modifica in cicli — il fix del test A rompe il test B, il fix di B rompe A. Un agente con il segno dell’anello rovesciato è uno che, passo dopo passo, si allontana dall’obiettivo invece di avvicinarvisi, perché interpreta male l’errore: il loop, pensato come negativo, sta funzionando da positivo, e ogni iterazione peggiora. Quattro guasti, quattro nomi, quattro cure diverse — e nessuno dei quattro è “il modello ha allucinato”.

Lo stesso vocabolario illumina un caso più sottile, il loop di reasoning. I modelli di ragionamento moderni iterano su una traccia di pensiero: generano un passo, lo valutano, ne generano un altro che lo corregge o lo prosegue. È un anello, e come ogni anello può perdere stabilità. Un modello che rivede di continuo la propria risposta senza un criterio chiaro di “errore zero” — senza un setpoint ben definito che dica quando fermarsi — può girare a vuoto, oscillare tra due risposte, o allontanarsi da una soluzione corretta che aveva già trovato. Riconoscere che si tratta di un problema di stabilità di un anello di feedback, e non genericamente di “il modello sbaglia”, orienta verso le contromisure giuste: un setpoint esplicito, un criterio di terminazione, un guadagno moderato sul peso che le revisioni hanno rispetto alla risposta corrente. È, di nuovo, calibrazione di un anello — applicata al ragionamento invece che a un edit di codice.

C’è infine un anello che lo sviluppatore aggiunge apposta attorno al modello: il guardrail. Un classificatore di sicurezza, un filtro sull’output, un validatore di formato sono tutti anelli di controllo. Misurano una proprietà dell’output — presenza di contenuto tossico, conformità a uno schema, presenza di dati personali — la confrontano con un criterio (il setpoint: “output accettabile”) e agiscono: bloccano, rigenerano, correggono. È feedback negativo deliberato, aggiunto dall’ingegnere che non si fida del solo modello. E come ogni anello ha un guadagno da tarare: un guardrail troppo aggressivo rifiuta troppo, soffoca il sistema di falsi positivi; uno troppo blando lascia passare ciò che doveva fermare. Un sistema LLM serio ne ha più d’uno, a stadi diversi — sull’input, sull’output, sui tool — e progettarli significa, letteralmente, disegnare una rete di piccoli anelli di controllo attorno al modello.

Il training come feedback loop — analogia forte con un nucleo di identità. La discesa del gradiente è leggibile come un anello di feedback negativo. La loss misura lo scarto tra la predizione del modello e il target: è l’errore. Il gradiente indica in quale direzione muovere i pesi per ridurre quello scarto: è il segnale di correzione. L’aggiornamento dei pesi è l’azione. E il learning rate è il guadagno. Qui la classe dell’affermazione va calibrata con attenzione, perché non è solo analogia: un passo di discesa del gradiente è, matematicamente, un passo di correzione proporzionale a un “errore” — il gradiente della loss — esattamente nella forma u=Keu = K \cdot e. C’è un nucleo di identità formale, localizzato al singolo passo di aggiornamento. Ma sarebbe un eccesso nell’altra direzione concludere che i teoremi del controllo si applicano al training: il “processo” qui non è un sistema fisico con dinamica continua, è un’ottimizzazione su milioni di parametri, e i risultati della teoria del controllo lineare non si trasferiscono. La formulazione onesta è: analogia strutturale forte, con un nucleo di identità formale al passo di aggiornamento, e con il resto della teoria che non si trasferisce. Questa precisione paga: spiega perché abbassare il learning rate cura una loss che oscilla, ma anche perché non si può “dimostrare la convergenza” del training con gli strumenti del controllo classico.

RLHF e i suoi loop iterati — anelli reali, controllore non progettato. In RLHF (Reinforcement Learning from Human Feedback, il metodo standard per allineare i modelli alle preferenze umane), un valutatore umano esprime una preferenza tra due risposte; quella preferenza diventa un segnale di reward; il reward retroagisce sulla policy del modello modificandone il comportamento. È un anello di feedback sul comportamento del modello — rlhf-ppo (in preparazione) ne dà la meccanica. Quando questo schema viene iterato — il modello aggiornato genera nuove risposte, su cui si raccolgono nuove preferenze, e così via — l’anello si allarga e diventa più insidioso. Se le risposte da confrontare provengono sempre più dal modello stesso, e i suoi output influenzano cosa gli annotatori vedono e quindi le preferenze che esprimono, l’anello rischia di chiudersi su sé stesso. Un anello chiuso su un sistema che valuta i propri output, senza un ancoraggio esterno, tende a derivare: rinforza i propri bias invece di correggerli. Il caso limite documentato è il model collapse, il degrado di un modello addestrato ricorsivamente sul proprio output. È, in fondo, lo stesso meccanismo del microfono che fischia: il segnale rientra nell’anello, viene amplificato, satura. La cura è la stessa per tutti gli anelli di auto-valutazione: ancorarli a un segnale esterno e fisso — un test oggettivo, un giudizio umano indipendente, un dataset di riferimento che non dipende dal sistema.

I feedback loop nei recommender — identità causale documentata. Un sistema di raccomandazione impara dalle interazioni degli utenti; le sue raccomandazioni determinano cosa gli utenti vedono, e quindi su cosa possono interagire; quelle interazioni rientrano come dati di addestramento. L’anello è chiuso, ed è un anello reale, non un’analogia. Quando si comporta da feedback positivo, degenera in echo chamber e filter bubble. Il fenomeno è studiato formalmente — Degenerate Feedback Loops in Recommender Systems (Jiang et al., AIES 2019) — sotto il nome di degenerate feedback loop. Il punto sottile è che il sistema non vede l’anello: dal suo punto di vista sta solo imparando da dati e migliorando una metrica, e non si accorge che quei dati sono il prodotto delle sue stesse raccomandazioni passate. È un anello chiuso che, visto da dentro un solo ciclo, sembra una catena aperta.

Il filo che lega questi quattro casi è il segnale di errore e da dove viene. Un anello di feedback ottimizza fedelmente ciò che misura. Se ciò che misura è una proxy imperfetta di ciò che si vuole davvero — il reward come proxy delle preferenze umane vere, il tasso di click come proxy della soddisfazione dell’utente — l’anello la spinge fino a scollarla dall’obiettivo reale. È il meccanismo della legge di Goodhart, goodhart-law (in preparazione): chiudere un anello di feedback su una metrica è potente, e per questo pericoloso quando la metrica è quella sbagliata. L’anello converge fedelmente — al setpoint sbagliato.

I limiti del feedback loop sono importanti quanto il meccanismo, e diversi limiti hanno cause diverse. Conviene tenere a mente una distinzione: alcuni limiti sono strutturali — inerenti allo schema, non eliminabili — e altri sono errori di calibrazione — evitabili con un tuning corretto.

Il feedback è sempre in ritardo, per costruzione. Non è un difetto eliminabile con più ingegneria: è strutturale. Il feedback agisce dopo aver visto lo scarto, quindi un po’ di scarto c’è sempre. Se il disturbo è veloce e grande, il feedback da solo non basta — il sistema devia prima che la correzione faccia effetto. È esattamente la ragione per cui esiste il feedforward, e il motivo per cui i due si combinano, come argomenta Feedback vs feedforward.

Il feedback negativo non garantisce la stabilità. È il fraintendimento più costoso. Si è tentati di credere che “feedback negativo” sia sinonimo di “stabile”, perché per costruzione la sua azione si oppone allo scarto. Ma lo si è visto nella meccanica: con un ritardo grande, la correzione arriva sfasata e rinforza l’errore invece di opporvisi, e un anello pensato come stabilizzante diventa oscillatorio o esplosivo. Il segno dell’anello è una condizione necessaria per la stabilità, non sufficiente. La stabilità dipende dalla combinazione di segno, guadagno e ritardo.

Il guadagno alto non è gratis. È istintivo pensare che un anello che corregge più forte sia un anello migliore. Non lo è. Più guadagno significa errore a regime più piccolo, sì, ma anche overshoot più violento, oscillazioni più ampie, e margine di stabilità più sottile. Ogni anello reale vive in un compromesso tra prontezza e stabilità, e spingere il guadagno oltre una soglia lo rovescia nell’instabilità. La soglia, va detto, non è un numero universale: dipende dal processo. Nell’Esempio 1 numerico la transizione da convergenza a oscillazione avviene a un certo valore di KK; per un processo diverso la soglia sarebbe altrove. Universale è il fenomeno della soglia, non il suo valore.

L’attuatore ha un limite, e il limite vince. Lo schema dell’anello assume implicitamente che l’azione uu possa assumere qualunque valore. Nella realtà no: una valvola si apre al massimo del 100%, un motore eroga una coppia massima, un budget di token ha un tetto. Quando il controllore, davanti a uno scarto grande, calcola un’azione che supera il limite dell’attuatore, l’azione viene saturata al massimo possibile, e il sistema corregge meno di quanto il calcolo prevedeva. Un anello tarato bene nella zona lineare può comportarsi in modo del tutto diverso quando l’attuatore satura: la correzione si appiattisce, e con essa la garanzia di stabilità calcolata ignorando il limite. È un limite che il modello ideale non vede e che la realtà impone sempre.

Il feedback positivo non si spegne da solo. Per sua natura un anello positivo non cerca un equilibrio: o satura contro un limite fisico, o cresce finché qualcosa si rompe. Affidarsi al fatto che “prima o poi si fermerà” è pericoloso: si ferma solo se c’è un limite o un feedback negativo che subentra. Nei sistemi progettati, quel limite va messo apposta.

Misurare male l’uscita rovina l’anello. Tutto l’anello poggia sulla misura di yy fatta dal sensore. Se il sensore è rumoroso, il controllore insegue il rumore e agita il sistema senza motivo — è il caso dell’agente che reagisce a un test intermittente. Se il sensore è distorto, succede una cosa peggiore: il sistema converge al setpoint sbagliato, quello che il sensore crede, non quello vero. L’anello funziona benissimo nel senso del controllo, e porta il sistema dove non doveva andare. È il legame diretto con l’osservabilità trattata nella Parte IX: se l’uscita non porta informazione affidabile sullo stato, non c’è feedback che tenga.

Lo schema condiviso non spiega il caso particolare. C’è un rischio opposto a quello di sottovalutare il feedback: sopravvalutarlo. Sapere che un agente, un termostato e un loop di training condividono lo schema del feedback è vero e utile, ma da solo è povero. Lo schema dice che c’è un anello; non dice quanto è grande il guadagno, quanto lunghi i ritardi, quanto rumorosa la misura, quanto non-lineare la dinamica. E sono questi dettagli quantitativi a decidere se l’anello converge, oscilla o diverge. La cibernetica fornisce la cornice giusta per porre le domande; le risposte richiedono di scendere nei numeri del caso specifico. “È un feedback loop, quindi capisco” è fermarsi troppo presto: lo schema è dove l’analisi comincia.

In un anello, “la causa” non esiste. Dentro un anello di feedback la domanda “che cosa causa che cosa” non ha la risposta lineare che ci si aspetta: lungo l’anello, ogni variabile è causa ed effetto di sé stessa, con un ritardo. La velocità del motore causa il sollevamento delle sfere, che causa la chiusura della valvola, che causa una nuova velocità. Cercare “la causa prima” dentro un anello porta a diagnosi sbagliate: va capito il giro, non un singolo nesso. È un’abitudine mentale difficile da acquisire, perché il pensiero quotidiano è lineare, e proprio per questo è il punto in cui chi analizza un sistema a feedback sbaglia più spesso.

Calibrare è la parte difficile, e questo capitolo non la insegna tutta. Il feedback non è una ricetta che funziona da sola: è una strategia i cui parametri — guadagno, ritardo, qualità della misura — vanno conosciuti e calibrati. Questo capitolo dà il vocabolario per sapere cosa calibrare e perché. Il come — i margini di stabilità quantitativi, i criteri formali, i metodi di tuning — è materia del prossimo capitolo della Parte X, stabilita-ritardi-oscillazioni (in preparazione), e della control theory della Parte XI. Chi si ferma qui ha la mappa, non ancora gli strumenti di misura.

Oltre ai limiti strutturali, alcuni fraintendimenti ricorrono ogni volta che si parla di feedback con chi lo incontra per la prima volta. Non sono errori di chi non ha studiato: sono trappole linguistiche, costruite dal fatto che parole come “feedback”, “positivo”, “guadagno” hanno un significato comune diverso da quello tecnico. Vale la pena nominarle a una a una.

Il primo, e il più diffuso: “feedback positivo è buono, feedback negativo è cattivo”. È falso, ed è anche invertito. Nell’italiano di tutti i giorni “feedback positivo” è un complimento e “feedback negativo” una critica. Nella teoria dei sistemi i due aggettivi indicano il segno dell’anello, non un giudizio. Il feedback negativo è quasi sempre quello che vuoi — stabilizza, riporta sul bersaglio. Il feedback positivo è quasi sempre quello che temi — amplifica, destabilizza.

Il secondo: “il feedback negativo garantisce la stabilità”. Falso, e lo si è già visto: il segno dell’anello è necessario ma non sufficiente. Con ritardo e guadagno alto, un anello negativo oscilla e diverge.

Il terzo: “più feedback rende qualunque sistema più stabile”. Falso. Esiste una soglia di guadagno oltre la quale aumentare l’azione correttiva peggiora le cose, come mostra l’Esempio 1. Il feedback è potente, non onnipotente: ci sono ritardi e vincoli sugli attuatori che nessuna quantità di retroazione cancella.

Il quarto: “in un anello posso individuare la causa”. Dentro un anello ogni variabile è causa ed effetto di sé stessa, con un ritardo. Cercare “la causa prima” porta a diagnosi sbagliate; va capito il giro.

Il quinto, il più insidioso per chi viene dall’AI: “un agente che corregge troppo sta allucinando”. Spesso non è allucinazione: è overshoot, un problema di guadagno dell’anello. Diagnosi sbagliata, cura sbagliata — si cambia il prompt quando bisognerebbe ridurre l’ampiezza degli edit.

Il sesto: “il guadagno di anello e il guadagno del controllore sono la stessa cosa”. Non lo sono. Il guadagno KK è una proprietà del solo controllore; il guadagno di anello LL è il prodotto dei guadagni di tutti i blocchi lungo il giro — controllore, processo, sensore. Si può alzare KK e, se il processo ha un guadagno basso, avere comunque un LL modesto; oppure tenere KK moderato e ritrovarsi un LL alto perché il processo amplifica. È LL, non KK, a decidere il carattere dell’anello. Confonderli porta a tarare il numero sbagliato.

Tutti e sei hanno la stessa radice: una parola o un’intuizione del senso comune che non coincide con la nozione tecnica. Imparare il vocabolario di questo capitolo è, in buona parte, imparare a non lasciarsi guidare dall’eco delle parole comuni quando si ragiona su un sistema.

  • Wiener: comunicazione e controllo in animali e macchine — il capitolo che precede questo nella Parte X: posa lo schema astratto del feedback loop, che qui viene smontato nei suoi sei componenti e nei suoi parametri.
  • Feedback vs feedforward — la panoramica della Parte IX: introduce il feedback come concetto di teoria dei sistemi e lo contrappone al feedforward. Questo capitolo vi rimanda per la distinzione di base e ne approfondisce una sola metà.
  • stabilita-ritardi-oscillazioni (in preparazione) — il prossimo capitolo della Parte X: overshoot, delay e divergenza in dettaglio, con i criteri quantitativi che qui sono solo introdotti.
  • Equilibrio, stabilità, attrattori — un equilibrio è stabile esattamente quando gli anelli di feedback dominanti attorno a esso sono negativi; la stabilità è il segno degli anelli, non una proprietà magica del punto.
  • Stato, transizione, traiettoria — un anello di feedback è una dinamica sullo spazio di stato; convergenza, oscillazione e divergenza sono tipi di traiettoria.
  • system-dynamics-forrester (in preparazione) — stock, flow, causal loop diagram e archetipi sistemici: il dialetto della system dynamics che nomina i due anelli B e R, ripreso in questo capitolo.
  • pid-control-intuizione (in preparazione) — il controllore PID è la forma matura del feedback, con i termini proporzionale, integrale e derivativo; questo capitolo usa solo il proporzionale.
  • react (in preparazione) — ReAct è la forma esplicita del loop di feedback agentico; questo capitolo ne dà la lettura cibernetica componente per componente.
  • discesa-gradiente (in preparazione) — il training come anello di feedback, con il learning rate nel ruolo del guadagno e con il nucleo di identità formale discusso nel ponte verso l’AI.
  • rlhf-ppo (in preparazione) — il reward umano come segnale di feedback che retroagisce sulla policy; questo capitolo ne discute la versione iterata e i suoi rischi.
  • ponte-cibernetica-agenti (in preparazione) — agent loop, monitoring, escalation e human-in-the-loop visti come problemi di controllo, inclusi i loop annidati introdotti qui.
  • goodhart-law (in preparazione) — un anello di feedback chiuso su una metrica proxy degenera: l’anello converge fedelmente al setpoint sbagliato.

Le fonti che seguono coprono i due versanti del capitolo: i lavori storici che hanno fondato l’analisi del feedback e i testi moderni che ne danno il vocabolario completo, fino al caso documentato di un anello degenere in un sistema con AI.

  • James Clerk Maxwell, “On Governors” (Proceedings of the Royal Society of London, vol. 16, 1868). Il paper fondante: la prima analisi matematica della stabilità di un sistema a retroazione, e la prima distinzione tra azione proporzionale e azione integrale. Disponibile in PDF presso la Clerk Maxwell Foundation.
  • Norbert Wiener, Cybernetics: or Control and Communication in the Animal and the Machine (MIT Press, 1948; seconda edizione ampliata 1961). I capitoli su feedback e oscillazione sono il cuore tecnico del libro che ha dato un nome generale al feedback loop.
  • Donella Meadows, Thinking in Systems: A Primer (Chelsea Green, 2008). Un’introduzione accessibile al linguaggio della system dynamics: stock, flow, loop di rinforzo e di bilanciamento, e gli archetipi sistemici, con esempi non ingegneristici.
  • Karl J. Åström, Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers (Princeton University Press, 2008; seconda edizione 2021). Il testo moderno di riferimento sul feedback come concetto trasversale; i primi capitoli formalizzano guadagno, ritardo e risposta nel tempo. Disponibile in versione open access.
  • Hao Jiang et al., “Degenerate Feedback Loops in Recommender Systems” (AIES 2019, arXiv:1902.10730). Analisi formale di come un anello di feedback chiuso tra raccomandazioni e interazioni degenera in echo chamber e filter bubble.