# Controllo digitale

Il controllo digitale è una branca della teoria dei controlli che utilizza dispositivi elettronici digitali per il controllo di sistemi dinamici: a seconda dei requisiti, un sistema di controllo di questo tipo può avere la forma di un ASIC, un microcontrollore oppure un normale computer. L'applicazione del controllo digitale può essere prontamente compresa nell'utilizzo del concetto di retroazione. Siccome un computer digitale lavora con dati discreti (cioè non continui), nell'ambito di analisi e sintesi di questi sistemi si sfrutta diffusamente la trasformata zeta al posto della trasformata di Laplace. Inoltre, disponendo un computer di una precisione finita (si veda la voce quantizzazione), è necessaria cautela per assicurare che l'errore nei coefficienti, la conversione analogico-digitale, la conversione digitale/analogica, ecc. non producano effetti indesiderati o imprevisti.

## Vantaggi

Dalla creazione del primo computer digitale nei primi anni quaranta i costi sono scesi in maniera considerevole, il che li ha resi componenti-chiave per le seguenti ragioni:
* economicità: meno di 5 dollari per molti microcontrollori
* flessibilità: facilità di configurare e riconfigurare attraverso software
* operazioni statiche: minore sensibilità alle condizioni ambientali rispetto a capacità, induttori, ecc.
* scalabilità: la dimensione dei programmi può crescere sino ai limiti della memoria o dello spazio di memorizzazione senza costi aggiuntivi
* adattabilità: i parametri del programma possono cambiare con il tempo (si veda la voce controllo adattativo)

## Implementazione di un controllore digitale

Un controllore digitale è solitamente messo in cascata con la linea da controllare in un sistema a reazione. Il resto del sistema può essere o digitale o analogico. Tipicamente si richiede:
* conversione analogico-digitale: per convertire gli ingressi analogici in una forma leggibile dalla macchina
* conversione digitale-analogica: per convertire le uscite digitali in una forma che possa essere messa in ingresso alla linea da controllare
* un programma che metta in relazione le uscite con gli ingressi

### Programma d'uscita

* le uscite del controllore digitale sono funzione dei campioni presenti e passati, così come dei valori già mandati in uscita. Questo può essere implementato memorizzando i valori rilevanti di ingresso e d'uscita in dei registri. L'uscita può essere così calcolata come media pesata di tali valori.
I programmi possono assumere svariate forme ed effettuare molteplici funzioni:
* un filtro digitale per il filtraggio passa-basso (quelli analogici sono preferiti, in quanto introducono meno ritardo)
* un modello dello spazio degli stati di un sistema che si comporti come osservatore dello stato
* un sistema di telemetria

### Stabilità

Si noti che sebbene un controllore possa essere stabile quando implementato in maniera analogica, potrebbe essere instabile nel caso digitale per via di un lungo intervallo di campionamento. Per questo l'intervallo di campionamento caratterizza il transitorio e la stabilità del sistema compensato, e deve aggiornare i valori in ingresso al controllore con una frequenza tale da non causare instabilità.
La stabilità di un sistema di controllo digitale può essere verificata usando una specifica trasformata bilineare nel dominio di Laplace, permettendo l'utilizzo del criterio di stabilità di Routh. Il criterio di Jury è lo strumento appropriato per l'analisi di stabilità per sistemi discreti. Questa trasformata bilineare è specifica per l'applicazione e non può essere usata per paragonare attributi come la risposta al transitorio nei domini "S" e "Z".

### Progettazione di un controllore digitale nel dominio "S"

Il controllore digitale può essere progettato anche nel dominio "S" (continuo). La trasformazione di Tustin permette di riportarlo al dominio discreto. Il risultato raggiungerà un'uscita che approssima quella dell'equivalente analogico quando l'intervallo di campionamento è reso piccolo.
$s={\frac {2(z-1)}{T(z+1)}}$

#### Derivazione della trasformazione di Tustin

Tustin è l'approssimazione Padé$_{(1,1)}$ della funzione ${\begin{aligned}z&=e^{sT}\end{aligned}}$ :
    ${\begin{aligned}z&=e^{sT}\\&={\frac {e^{sT/2}}{e^{-sT/2}}}\\&\approx {\frac {1+sT/2}{1-sT/2}}\end{aligned}}$
e la sua inversa
    ${\begin{aligned}s&={\frac {1}{T}}\ln(z)\\&={\frac {2}{T}}\left[{\frac {z-1}{z+1}}+{\frac {1}{3}}\left({\frac {z-1}{z+1}}\right)^{3}+{\frac {1}{5}}\left({\frac {z-1}{z+1}}\right)^{5}+{\frac {1}{7}}\left({\frac {z-1}{z+1}}\right)^{7}+\cdots \right]\\&\approx {\frac {2}{T}}{\frac {z-1}{z+1}}\\&\approx {\frac {2}{T}}{\frac {1-z^{-1}}{1+z^{-1}}}\end{aligned}}$
Non si deve dimenticare che la teoria del controllo digitale è la tecnica di progettazione di strategie a tempo discreto, (e/o) ad ampiezze quantizzate (e/o) in forma codificata (binaria) da implementare con computer (microcontrollori, microprocessori) che controlleranno la dinamica analogica (continua in tempo e ampiezza) di un sistema analogico. Da questa considerazione, molti errori dalla teoria classica del controllo digitale sono stati identificati e corretti, e nuovi metodi proposti:
* Marcelo Tredinnick e Marcelo Souza e il loro nuovo tipo di mappatura analogico-digitale
** https://web.archive.org/web/20110706160612/http://mtc-m05.sid.inpe.br/col/sid.inpe.br/deise/1999/09.14.15.39/doc/homepage.pdf
** http://www.sae.org/technical/papers/2002-01-3468
* Yutaka Yamamoto e il suo lifting function space model
** https://web.archive.org/web/20110722072133/http://wiener.kuamp.kyoto-u.ac.jp/~yy/Papers/yamamoto_cwi96.pdf
* Alexander Sesekin e i suoi studi riguardo ai sistemi a impulsi
** https://www.amazon.com/dp/0792343948
* M.U. Akhmetov e i suoi studi riguardo ai sistemi a impulsi e il controllo dell'impulso
** https://portal.acm.org/author_page.cfm?id=81100182444&coll=GUIDE&dl=GUIDE&CFID=27536832&CFTOKEN=71744014