Nella vita di tutti i giorni e nell’utilizzo di macchine, arnesi o sistemi è molto spesso necessario l’intervento umano per il buon fine delle operazioni. Ad esempio un corpo con singola ruota come una carriola non riesce a stare in equilibrio quando è in moto, a meno che un sapiente dosaggio di forze applicate dalle nostre braccia sui due manici non intervengano. Tutto ciò che viene regolato da noi umani utilizzando le nostre percezioni e la nostra intelligenza si dice che subisce un “controllo manuale”. Ci sono altre migliaia di esempi di questo tipo, ad esempio quando annaffiando il giardino apriamo il rubinetto tanto quanto basta per ottenere in uscita dalla sistola il flusso d’acqua desiderato, quel flusso che non è così impetuoso da dissestare il terreno ma neanche così debole da imporci tempi di innaffiatura troppo lenti. Un altro esempio di controllo manuale, questa volta relativo alla temperatura, entra in gioco sotto la doccia quando misceliamo l’acqua calda e quella fredda in modo da raggiungere e mantenere una temperatura gradevole per il nostro corpo.
Invece tutte le volte che un sistema, sia esso meccanico, idraulico, elettronico o di tipo diverso riesce a regolare una grandezza senza l’intervento umano si dice che è dotato di un “controllo automatico”. Può risultare sorprendente scoprire che questi sistemi di varia natura hanno un denominatore comune, cioè sono schematizzabili nel medesimo modo, indipendentemente dalla loro tipologia.
Un controllo automatico che tutti noi abbiamo sotto gli occhi ogni giorno, della cui perfetta funzionalità godiamo ma di cui, per contro, pochi riconoscono il pregio è lo sciacquone del water. Non sorprenda dunque se uso proprio “lui” come approccio all’argomento :-)
Il fatto che sia un nobile esempio di controllo ‘automatico’ è immediatamente dimostrato dal fatto che una volta “tirata l’acqua” possiamo allontanarci con serenità, certi che al prossimo utilizzo la riserva necessaria sarà nuovamente lì, pronta ad aspettarci, senza che dobbiamo preoccuparci di fare alcuna azione in tal senso. Un corrispondente controllo ‘manuale’, come avveniva un tempo, prevederebbe di riempire un secchio aprendo di persona un rubinetto e richiudendolo quando il secchio è colmo, lasciandolo poi nelle vicinanze del water per il successivo utilizzo.
Un aspetto decisamente caratterizzante della versione automatica è che il livello dell’acqua nel deposito, mandato rapidamente a zero azionando lo scarico, viene in tempi ragionevoli riportato sempre alla quota iniziale. Il merito di questo è del sistema a galleggiante visibile in Figura 1 seguente:
Figura 1. Il sistema a galleggiante con asta aziona il rubinetto di afflusso dell’acqua (in alto a destra) aprendolo o chiudendolo a seconda del livello.
Il braccio con il galleggiante viene spostato in basso o in alto a seconda del livello dell’acqua nel serbatoio poiché la palla, azzurra in Figura 1, è ermetica e galleggia. Siccome il braccio costituisce una leva per il rubinetto, riesce a chiuderlo o ad aprirlo rispettivamente se il livello dell’acqua è quello precedente, prima dello svuotamento, oppure se è a zero. Il sistema viene calibrato finemente in modo che il rubinetto operi in tutta la sua escursione possibile, da completamente aperto a chiuso del tutto, passando per ogni stato intermedio di chiusura o apertura parziale. È proprio questa fine capacità di gestire il flusso di acqua entrante a permettere di ripristinare il livello precedente di vasca piena e a farlo in tempi ragionevolmente brevi.
In questa discussione si è usata la dicitura “livello precedente” ad indicare che esiste una quota ben precisa che l’acqua deve raggiungere in fase di riempimento del serbatoio. Questa quota nell’esempio dello sciacquone è l’equivalente di un’altra qualunque grandezza in un diverso esempio e rappresenta un fattore fondamentale nel controllo automatico: è quello che tecnicamente si chiama “valore desiderato” o all’inglese “setpoint”. Si tratta del valore che desideriamo che la grandezza in esame raggiunga a bocce ferme, quando le variazioni sono terminate.
Nel caso dello sciacquone, il setpoint è fissato una volta per tutte dall’idraulico in fase di installazione, ma in molti altri casi questo valore può cambiare spesso a seconda delle necessità e quindi nel sistema deve esistere un metodo per poterlo impostare a piacere all’interno di un intervallo prestabilito. Ad esempio usando il termostato di casa, altro sistema di controllo automatico, quando impostiamo la temperatura che vogliamo per l’ambiente (riscaldato da una stufa o raffreddato da un condizionatore) il setpoint cambia a seconda del periodo dell’anno e quindi deve essere facilmente impostabile dall’utente.
Affinché il controllo automatico possa funzionare, tale valore desiderato deve essere posto a confronto con un valore misurato e i due, sottratti, devono dar luogo ad un segnale di errore che dovrà essere tenuto il più possibile a zero. La figura seguente raffigura questa situazione:
Figura 2. Il segnale di errore è in la differenza (con segno) fra i valori desiderato e misurato della variabile da controllare.
Nell’esempio del controllo di livello, l’errore è la distanza fra la quota desiderata e la posizione attuale del galleggiante. Quando il serbatoio è pieno, i due valori sono identici e di conseguenza l’errore è nullo. All’estremo opposto, quando il serbatoio è vuoto, i due valori sono molto diversi fra loro e l’errore è grande.
Figura 3. In A il serbatoio è vuoto, il galleggiante sul fondo, i due livelli (desiderato e misurato) sono molto diversi fra loro e l’errore è grande. In B il serbatoio è pieno, il galleggiante è alla sua massima posizione in alto, i due livelli coincidono e pertanto l’errore è nullo.
In base all’errore, il sistema di controllo automatico deve intervenire per modificare lo status quo e agire in modo da riportarlo a zero, deve cioè mettere in atto una correzione al sistema. Nel caso di esempio questa consiste nell’aprire o nel chiudere la valvola di afflusso dell’acqua (il rubinetto), valvola che nel mondo dei controlli automatici prende il nome di “attuatore” (nome derivato dal fatto che è un elemento che “mette in atto” un intervento).
Sono attuatori tutti i meccanismi meccanici, idraulici, elettronici o di altro tipo che con il loro intervento causano la variazione di una grandezza. Siamo quindi in grado di disegnare la rappresentazione figurata completa di un controllo automatico:
Figura 4. Schema completo di un controllo automatico di sistema.
Il blocco più critico, quello da cui dipende in prima istanza l’efficacia del sistema, è senza dubbio il Controller ovvero la parte in cui si decide come minimizzare l’errore. Per lo stesso motivo è anche il blocco più personalizzabile e sul quale pletore di scienziati lavorano allo scopo di trovare metodi sempre più performanti per ottenere un controllo stabile e veloce della variabile in esame.
Per meglio comprendere la precedente Figura 4, riferiamoci ad un semplice sistema di controllo automatico, quello del nostro frigorifero: una sonda (‘Sensore’) legge la temperatura al suo interno (‘Valore misurato’) e il ‘Controller’ la compara con il ‘Valore desiderato’ solitamente fisso e pari a 5°C. Se l’errore è positivo, cioè la temperatura del frigo è inferiore a 5°C, non serve alcun intervento. Se invece l’errore è negativo, cioè la temperatura del frigo è superiore a 5°C, il ‘Controller’ accende il sistema di raffreddamento (‘Attuatore’) e lo lascia acceso fin tanto che la temperatura scende al di sotto di quella desiderata, cioè l’errore cambia segno.
Questo tipo di Controller è semplice perché del tipo “tutto o niente”: banalmente attiva il sistema di raffreddamento oppure lo lascia spento. Cotanta semplicità si paga con la “performance” del sistema, piuttosto scarsa poiché in realtà il frigorifero sarà alla temperatura desiderata di 5°C solamente in pochi istanti, passando di continuo da valori leggermente superiori a valori leggermente inferiori, in una corsa continua all’inseguimento della temperatura desiderata, senza speranza:
Figura 5. Grafico tipico della temperatura interna di un frigorifero di casa che mostra l’effetto di un controllo automatico del tipo “acceso o spento”.
Controller più evoluti sono utilizzati in casi più complessi, come ad esempio il pilotaggio di un braccio Robot oppure l’allineamento di un satellite geostazionario. Questi regolano continuamente il sistema e pilotano l’attuatore con segnali continui nel tempo, anziché con segnali on-off come nel caso del frigorifero, utilizzando tecniche anche molto sofisticate.
Un tipico e famoso Controller è quello che utilizza non solo l’errore attuale, ma anche quello passato (rilevato in precedenza) e quello futuro (intuito in base all’andamento). Prende il nome di PID dalle iniziali di Proporzionale, Integrale e Derivativo, le tre componenti appena descritte in cui P gestisce il presente, I il passato e D il futuro.
Questi Controller permettono di contrastare in modo veloce le variazioni del valore desiderato dovute ad elementi di disturbo esterni e consentono di definire con fine precisione i tempi e i modi con cui tale valore viene raggiunto e mantenuto. La Figura 6 mostra ad esempio un controllo di posizione in cui un attuatore che parte dalla posizione “zero metri” è azionato per raggiungere la posizione “1 metro” che è il Setpoint, in blu. Le curve mostrano tre diversi modi in cui il Controller può agire:
Figura 6. Controllo di posizione con diverse prestazioni del Controller (vedi testo).
Se segue la curva marrone offre una risposta molto veloce ma al costo di veder superare sopra e sotto la posizione target alcune volte prima di stabilizzarsi effettivamente a quel valore (questo effetto si chiama “Ringing”).
Se si muove secondo la curva nera la risposta è eccessivamente lenta: raggiunge la posizione desiderata senza mai superarla, ma in un tempo relativamente lungo.
Infine, se segue la curva rossa, offre una risposta gradevolmente veloce e, allo stesso tempo, priva di Ringing.
La fine regolazione dei parametri del Controller permette quindi non solo di farlo convergere al valore desiderato, ma addirittura di modellare il modo in cui lo si raggiunge, offrendo così la più ampia gamma di possibilità da applicare a seconda del sistema che si vuole controllare e delle esigenze operative. È facile infatti immaginare scenari in cui ciascuna delle tre risposte di Figura 6 è accettabile oppure no. Ad esempio, se l’attuatore oltre alla posizione “1 metro” avesse un ostacolo fisso (un muro) è chiaro che il Ringing sarebbe da evitare assolutamente, pena la distruzione del meccanismo all’oltrepassare la posizione target. Ma se la sua corsa fosse libera e il raggiungimento del Setpoint servisse in tempi rapidi (ad esempio per restituire la tessera ad uno sportello Bancomat o per elargire il biglietto ad un casello autostradale), allora un certo Ringing sarebbe ammesso per beneficiare di un tempo di risposta rapido.
Il mondo dei controlli automatici è decisamente affascinante e oggi si studiano controlli non-lineari altamente efficienti grazie ai quali è possibile fare cose meravigliose, come ad esempio pilotare in modo naturale (“human-like”) le protesi per persone con problemi fisici di varia natura.
Marco Sartore