# Controllo automatico

In scienza dell'automazione, il controllo automatico di un dato sistema dinamico (ad esempio un motore, un impianto industriale o una funzione biologica come il battito cardiaco) si prefigge di modificare il comportamento del sistema da controllare (ovvero delle sue "uscite") attraverso la manipolazione di opportune grandezze d'ingresso.
In particolare, può richiedersi che l'uscita rimanga costante ad un valore prefissato al variare dell'ingresso (controllo semplice o regolazione) oppure segua fedelmente la dinamica dell'ingresso stesso (sistema di asservimento o comando) a meno di amplificazioni e ritardi.
Il controllo del sistema in esame viene affidato ad un altro sistema costruito appositamente, detto "sistema controllante" o "sistema di controllo", che viene progettato dopo uno studio preliminare del sistema da controllare per individuarne un modello matematico sufficientemente preciso servendosi degli strumenti messi a punto dalla teoria dei sistemi.
Il controllo automatico di un sistema è possibile solo se il sistema stesso è raggiungibile e osservabile, cioè se è possibile sia portarlo in un dato stato interno agendo sui suoi ingressi sia risalire allo stato attuale del sistema basandosi sulle sue uscite.

## Storia

Il primo esempio di applicazione della teoria dei controlli è dato dal regolatore centrifugo sul quale James Clerk Maxwell affrontò uno studio di analisi dinamica nel suo scritto del 1868 intitolato On Governors.
In seguito Edward John Routh, allievo di Maxwell, generalizzò le conclusioni di Maxwell per la classe dei sistemi lineari. Indipendentemente da Routh, Adolf Hurwitz analizzò nel 1877 la stabilità del sistema servendosi di equazioni differenziali. Il risultato di Routh e Hurwitz è noto come teorema di Routh-Hurwitz.
Negli anni 1890 Aleksandr Michajlovič Ljapunov elabora le basi della teoria della stabilità.
Negli anni 1930 Harry Nyquist elabora il criterio di stabilità di Nyquist che permette di studiare la stabilità di un sistema in retroazione unitaria.
Con la Seconda guerra mondiale la teoria dei controlli espanse il suo campo di applicazione ai sistemi di puntamento, ai sistemi di guida, e all'elettronica. Con la corsa allo spazio anche la guida dei veicoli spaziali divenne oggetto di studio della teoria dei controlli.
Negli anni quaranta anche l'informatica diventa studio della teoria dei controlli grazie agli studi sulla programmazione dinamica di Richard Bellman. Sempre negli anni '40 nasce la cibernetica, una scienza multidisciplinare che sfrutta i risultati della teoria dei controlli.
Negli anni cinquanta John R. Ragazzini contribuisce introducendo i concetti di controllo digitale e la trasformata zeta. Altri campi di applicazione della teoria dei controlli sono l'economia e l'ingegneria chimica.

## Teoria dei controlli

La teoria dei controlli è quella branca della scienza ed ingegneria che studia il comportamento di un sistema le cui grandezze siano soggette a variazioni nel tempo. Questa scienza, che ha un vastissimo campo di applicazione, è nata nell'ambito dell'elettronica industriale e dell'automazione.
Il controllo può avvenire solo in un regime temporale. Spesso lo studio matematico con modelli matematici nel dominio del tempo diventa molto difficile, causa la necessità di risolvere equazioni differenziali. Quindi attraverso delle trasformazioni, le trasformate di cui le più famose sono quelle di Fourier e quelle di Laplace, si studia lo stesso sistema con tecniche di tipo algebrico nel dominio della frequenza e una volta ottenuto il risultato si antitrasforma per tornare nel dominio del tempo.

### Ingressi e uscite

Ogni sistema può avere uno o più ingressi e una o più uscite. Con il termine SISO (acronimo di single input - single output) si intende un sistema a singolo ingresso e a singola uscita, mentre con il termine MIMO (acronimo di multi input - multi output) si intende un sistema a ingressi multipli e a uscite multiple.
Ad ogni variazione delle variabili in ingresso segue una determinata risposta del sistema, ovvero un certo comportamento di altre variabili all'uscita. Le variazioni delle variabili in ingresso più comuni sono: l'impulso di Dirac, il gradino, la rampa e la sinusoide).
* Impulso di Dirac.
* Variazione a gradino.
* Variazione a rampa.
* Variazione sinusoidale.
Le variabili in ingresso (o in entrata) si differenziano in:
* variabili manipolabili (o variabili di controllo o variabili di manipolazione): hanno la caratteristica di essere sempre misurabili
* disturbi (o sollecitazioni esterne): possono essere anche non misurabili e la loro presenza è indesiderata dal punto di vista del controllo.
Tra le variabili in uscita si hanno:
* variabili di prestazione: sono le variabili controllate, da non confondere con le variabili di controllo, e possono essere misurabili direttamente o indirettamente
* variabili intermedie: sono delle variabili fisiche misurabili che possono essere utilizzate per la misura indiretta delle variabili di prestazione.
La misura diretta delle variabili da controllare viene detta misura (o misurazione) primaria, mentre la misura indiretta delle variabili da controllare viene detta misura (o misurazione) secondaria. Esempi di misurazione secondaria sono il controllo in cascata, il controllo adattativo e il controllo inferenziale.

### Controllo ad anello aperto

Un sistema automatico di controllo può funzionare essenzialmente in due modi: come controllo ad anello aperto o come controllo in retroazione.
Il controllo ad anello aperto (o in avanti o predittivo o feedforward) si basa su una elaborazione degli ingressi eseguita senza conoscere il valore dell'uscita del sistema controllato, essendo note alcune proprietà del sistema da controllare.
In questo caso è fondamentale avere un buon modello matematico che descriva con buona precisione il comportamento del sistema. Tanto più il modello matematico su cui si basa l'azione del controllo feedforward è esatto, tanto più questo tipo di controllo è affidabile.
I motori elettrici della maggior parte dei ventilatori oggi in vendita sono controllati mediante un sistema di asservimento di questo tipo.

### Controllo ad anello chiuso (retroazione)

Il controllo ad anello chiuso (o retrazionato o all'indietro o feedback), più complesso ma molto più flessibile del primo, può rendere stabile un sistema che di per sé non lo è affatto.
In questo caso l'anello di controllo riporta all'ingresso del processo che si vuole controllare o rendere stabile una funzione dell'uscita che va sommata algebricamente al segnale già presente in ingresso.
Chiamando $y_{ref}$ il segnale in ingresso al sistema prima dell'innesto della retroazione detto anche segnale di riferimento, $y_{out}$ il segnale in uscita dal sistema da controllare, $y_{fb}$ il segnale in uscita dal controllore (che quindi dipende da $y_{out}$ e dalla struttura dello stesso controllore), si può distinguere il controllo in:
* retroazione positiva: al segnale $y_{ref}$ viene sommato $y_{fb}$, e la somma viene inviata in ingresso al sistema;
* retroazione negativa: al segnale $y_{ref}$ viene sottratto $y_{fb}$, in modo da avere in ingresso al sistema il cosiddetto segnale errore, $e_{f}$
Il segnale di riferimento viene chiamato così in quanto nei sistemi di asservimento si vuole che l'uscita lo segua il più fedelmente possibile per alcune classi di segnali di riferimento. Per questo motivo la differenza tra riferimento e uscita viene chiamata errore o errore di inseguimento
In generale la retroazione positiva porta a sistemi instabili, mentre la retroazione negativa apre la strada a strategie di controllo molto efficaci per il raggiungimento della stabilità del sistema e il miglioramento delle prestazioni del sistema: velocità nel raggiungere il valore di uscita desiderata, errore nullo nel caso di ingresso costante o di ingresso con variazioni lineari nel tempo, ecc.

### Controllo in retroazione di sistemi L.T.I. e L.I.T.

Ogni blocco componente di un sistema dinamico lineare stazionario (LTI) può essere rappresentato tramite una funzione di trasferimento applicando al sottosistema che modella il blocco stesso rispettivamente la trasformata di Laplace o la trasformata Zeta, a seconda che si tratti di sistemi a tempo continuo o a tempo discreto. Perciò il controllo LTI in retroazione è essenzialmente un sistema di controllo formato:
* dalla cascata di controllore $C(s)$ o $C(z)$ e processo $P(s)$ o $P(z)$ il cui ingresso è l'errore $E(s)$ o $E(z)$ tra riferimento $R(s)$ o $R(z)$ e uscita del processo $Y(s)$ o $Y(z)$; le funzioni complesse in s o in z sono rispettivamente le trasformate di Laplace o Zeta dei sistemi che rappresentano i blocchi e le trasformate di Laplace o Zeta dei segnali in ingresso e in uscita ai blocchi stessi.
* dal processo $P(s)$ o $P(z)$ la cui uscita $Y(s)$ o $Y(z)$ è prelevata da un compensatore dinamico $C(s)$ (o $C(z)$) ottenuto come sintesi di un osservatore dello stato e di un controllo in retroazione dallo stato, per esempio il regolatore lineare quadratico, che genera l'ingresso di controllo $U(s)$ o $U(z)$ che si somma al riferimento $R(s)$ o $R(z)$.
Le posizioni nel piano complesso dei poli e degli zeri della funzione di trasferimento determinano i modi di risposta e in particolare la stabilità del sistema. Nei sistemi causali LTI, quali i sistemi fisici LTI, ovvero nei sistemi LTI le cui uscite non dipendono dai valori futuri degli ingressi, gli elementi della matrice di trasferimento sono frazionari ed hanno un polinomio a denominatore di grado non inferiore al grado del polinomio a numeratore. Se gli zeri dei denominatori, detti poli della trasformata, appartengono al semipiano a parte reale positiva del piano complesso il sistema è instabile e la risposta all'impulso y$_δ$(t) tende all'infinito al crescere di t. Se invece i poli della trasformata appartengono al semipiano a parte reale negativa del piano complesso il sistema è asintoticamente stabile e y$_δ$(t) tende asintoticamente a 0 al crescere di t. Se infine i poli della trasformata appartengono alla retta verticale a parte reale nulla del piano complesso ed hanno molteplicità singola, il sistema è semplicemente stabile e y$_δ$(t) è maggiorata in valore assoluto da un certo valore al crescere di t. Per determinare come variano le posizioni dei poli e degli zeri al variare della funzione di trasferimento del compensatore si usano particolari grafici quali il diagramma di Bode, il diagramma di Nyquist e il luogo delle radici.
Due proprietà fondamentali dei sistemi LTI sono la raggiungibilità e l'osservabilità. Se queste due proprietà sono verificate allora per il sistema di controllo, cioè il sistema ottenuto retroazionando il sistema dinamico LTI con un controllore LTI, esiste sempre un controllore che rende il sistema di controllo asintoticamente stabile.
Esistono differenti tipi di controllori. Le prime tecnologie di controllori si basavano essenzialmente su circuiti analogici (reti correttrici) appositamente creati per un dato problema. Attualmente vengono utilizzati sistemi di controllo digitale che permettono di sfruttare le potenzialità dei computer garantendo un minor costo e una maggiore versatilità.

## Componenti di un sistema di controllo

I componenti principali di un sistema di controllo sono:
* sensori: misurano la grandezza che si vuole controllare
* trasduttori: convertono un tipo di segnale in un altro tipo (ad esempio un segnale pneumatico in segnale elettrico)
* trasmettitori: trasmettono un segnale a distanza
* controllori: ricevono il segnale in entrata e il setpoint, elaborano tali informazioni e producono il segnale in uscita
* attuatori: ricevono dal controllore i comandi necessari a produrre un cambiamento della grandezza misurata (ad esempio chiudere una valvola per diminuire il flusso di liquido che passa attraverso un condotto).
Oltre a questi elementi, possono essere presenti ad esempio amplificatori per amplificare un segnale.

## Soluzioni di controllo

Esistono diverse tecniche per sintetizzare controllori in anello chiuso tra cui le soluzioni più note sono:

### Controllo PID

Rappresenta una delle soluzioni di controllo più semplici, permette di ottenere buone prestazioni con sistemi prevalentemente lineari, mentre risulta deludente per sistemi con carattere fortemente non lineare (ad esempio: sistemi LTV) o con caratteristiche particolari come la presenza di zeri nel semipiano di destra o di poli nell'origine o sull'asse immaginario. La semplicità delle tre azioni elementari che lo costituiscono ne rende semplice l'implementazione sia con tecnologie pneumatiche sia con tecnologie elettroniche. Per via della sua larga diffusione non è raro trovarne implementazione anche in elettronica digitale dove le potenzialità della CPU permetterebbero l'implementazione di algoritmi ben più complessi.

### Controllo sliding mode

Può essere considerato come una estensione del controllo on/off utilizzato per la regolazione della temperatura di caldaie e frigoriferi. Sfruttando la teoria di stabilità secondo Lyapunov e la possibilità di applicare segnali di controllo in alta frequenza, permette di ottenere controllori semplici ed estremamente robusti. Il limite principale è rappresentato dalla frequenza massima del segnale di controllo e dalla presenza di oscillazioni sull'uscita, note come chatter. Tuttavia la teoria alla base del controllo sliding mode permette di svilupparne varianti leggermente più complesse, prive di chatter e allo stesso tempo robuste anche per sistemi con caratterizzazioni fortemente non lineari.

### Controllo adattativo

In questa categoria rientrano gli algoritmi di controllo con capacità di adattarsi ai cambiamenti delle condizioni di funzionamento del sistema da controllare. Esistono diverse forme di adattabilità che vanno dalla modifica dei parametri di controllo lungo opportune curve (gain scheduling) alla possibilità di cambiare completamente o parzialmente la struttura del controllore. Rispetto alle soluzioni di controllo che non prevedono una variabilità nei parametri o nella struttura, scontano un maggiore peso computazionale che ne rende difficile l'implementazione su hardware commerciale, ma offrono come contropartita migliori prestazioni e una maggiore robustezza.

### Controllo ottimo

Il controllo ottimo si prefigge di stabilizzare il sistema dinamico tramite l'ottimizzazione di una funzione di costo $J(x,u)$, dove per $x$ si intende lo stato del sistema e per u il controllo generato da un opportuno controllore ottenuto a seguito della minimizzazione. Minimizzando la funzione di costo $J$ e manipolando opportuni parametri si riesce ad ottenere un controllore che rende la dinamica del controllo grande e veloce o piccola e lenta. Minimizzare $J$ significa far tendere $x$ a zero, ovvero stabilizzarlo, in tempo finito o infinito e di conseguenza anche $u$ che è un controllo in retroazione dallo stato, quindi un'opportuna combinazione lineare delle variabili di stato. Il controllo ottimo è efficace sotto ipotesi di controllabilità e di osservabilità del sistema. Se il sistema è osservabile, cioè se lo stato $x$ va stimato, è necessario un osservatore anch'esso ottimo: il filtro di Kalman.
La teoria sviluppata per il controllo ottimo permette la sintesi di controllori noto il modello ed esclusivamente per sistemi lineari.

### Controllo robusto

È una soluzione di controllo che permette di imporre sia le prestazioni nominali, sia le prestazioni robuste sotto ipotesi di incertezze parametriche sul modello del sistema. Valido solo per sistemi lineari, giunge alla definizione di una serie di vincoli che il controllore deve garantire. In tal senso non è una soluzione di controllo robusta per natura (come il Controllo sliding mode), ma semplicemente un'imposizione di vincoli su un controllore in retroazione di stato.
Nel caso lineare MIMO il sistema P$_0$, detto processo nominale, viene controllato con un apposito compensatore K in retroazione dallo stato stimato, quindi il sistema di controllo sarà costituito da un controllore vero e proprio e da un osservatore dello stato. La matrice K viene sintetizzata tramite appositi algoritmi di controllo robusto che, assegnati i vincoli di prestazione, forniscono un compensatore ottimo tramite sintesi LQR - LTR (anche detta LQG), tramite sintesi in H-infinito o tramite i classici metodi della compensazione di sistemi SISO previa operazione di disaccoppiamento del sistema.

### Controllo deadbeat

Il controllo deadbeat è una tecnica nata per sistemi tempo-continuo e poi estesa ai sistemi tempo-discreto. Consente di ottenere sistemi che garantiscono delle ottime proprietà dinamiche ed errore a regime nullo in funzione di un dato segnale in ingresso. È una tecnica sviluppata essenzialmente per sistemi lineari. Il suo utilizzo per i sistemi non lineari è ancora un problema aperto.

## Schema riassuntivo di confronto

Di seguito vengono confrontate le diverse possibilità di controllo:

### Strutture di controllo

   * Controllo feedback - Vantaggi: robustezza, controlla anche i disturbi non misurabili o imprevisti - Svantaggi: essendo in anello chiuso può introdurre instabilità nella risposta se tarato male, non agisce in tempo reale
   * Controllo feedforward - Vantaggi: agisce prima che il sistema risenta del disturbo, non introduce instabilità nella risposta - Svantaggi: il sistema deve scostarsi poco dal modello, è richiesta una buona conoscenza del sistema, il disturbo deve essere misurabile, non sono controllati i disturbi imprevisti o non misurabili
   * Controllo misto - Unisce i vantaggi delle singole soluzioni senza presentare svantaggi significativi.
   * Controllo in cascata - Vantaggi: Sforzo di taratura minore, maggiore robustezza ai disturbi

### Tipi di controllo

   * Controllo PID - Vantaggi: Semplice e funzionale, implementabile in diverse tecnologie - Svantaggi: Prestazioni modeste con sistemi fortemente non lineari, come gli LTV.
   * Controllo adattativo - Vantaggi: Sforzo di taratura ridotto, prestazioni elevate anche al variare dei parametri per fenomeni di invecchiamento. - Svantaggi: Costo computazionale maggiore, implementazione possibile solo con dispositivi elettronici digitali.
   * Controllo Sliding Mode - Vantaggi: Basso costo computazionale, elevata robustezza - Svantaggi: Alcune soluzioni possono essere affette da 'chatter'.
   * Controllo Ottimo - Vantaggi: Permette di sintetizzare un controllore basandosi su un indice di costo, valido anche per sistemi lineari MIMO - Svantaggi: Peso computazione delle operazioni di sintesi elevato, valido solo per sistemi lineari.
   * Controllo Robusto - Vantaggi: Robustezza a variazioni parametriche - Svantaggi: Valido solo per sistemi lineari

## Applicazioni
### Controllo della temperatura ambientale

Esempio classico di controllo in retroazione è il sistema di controllo di temperatura di una stanza. Questo sistema di controllo a retroazione viene anche chiamato regolatore poiché regola l'uscita di un sistema per mantenerla il più possibile uguale all'ingresso. Si vuole mantenere la temperatura di una stanza a 20 °C. Un termostato controlla la temperatura e comanda l'afflusso di acqua ai caloriferi della stanza. In un sistema di controllo il valore a cui si vuole mantenere la temperatura viene chiamato set point. A seconda della temperatura letta dal sensore si apre o si chiude l'afflusso dell'acqua al calorifero. La temperatura della stanza oscillerà attorno ai 20 °C a seconda della dissipazione del calore, della capacità dei caloriferi e delle condizioni a cui il regolatore apre o chiude la valvola. Un tipo di regolazione in retroazione come questo è chiamato regolazione on-off in quanto prevede come retroazione un semplice comando acceso-spento. Un tipo di controllo del genere può essere usato per la regolazione del riscaldamento di una stanza di un'abitazione dove oscillazioni di 1 °C sono tollerate da chi dovrà utilizzare la stanza.

### Controllo delle prestazioni dei motori

Per esempio in un moderno motore a combustione interna il sistema di controllo riceve in ingresso una serie di informazioni (tra cui la posizione del pedale dell'acceleratore, la velocità del veicolo, il numero di giri al minuto, la temperatura del motore e la presenza di ossigeno allo scarico), li elabora e agisce su una serie di parametri (tra cui la quantità di carburante da iniettare nel motore), al fine di garantire determinate velocità e coppia in uscita e una corretta composizione dei gas di scarico. Il cuore del sistema controllante è tipicamente una centralina elettronica, collegata ad una serie di sensori e altri componenti del sistema di controllo.