# Controllo deadbeat

Il controllo deadbeat, nell'ambito del controllo automatico, è una tecnica usata per sintetizzare dei controllori analogici o digitali. Ha come obiettivi principali, in risposta ad un dato segnale in ingresso, l'ottenimento di buone proprietà dinamiche e l'assenza di errore a regime.

## Controllori digitali

Un controllore digitale deadbeat richiede che, in seguito all'applicazione di un segnale di prova (gradino, rampa, parabola, ecc.):
* l'uscita raggiunga il valore finale nel tempo minimo
* l'errore a regime sia nullo
* non ci siano oscillazioni (ringing) tra gli istanti di campionamento

### Progettazione

Si considera anzitutto un sistema in retroazione unitaria, descritto dalla funzione di trasferimento discreta:
$G(z)={\frac {D(z)G_{p}(z)}{1+D(z)G_{p}(z)}}$
In questo contesto $D(z)$ è il controllore e $G_{p}(z)$ la funzione di trasferimento del plant.
La progettazione viene fatta per sintesi diretta. In altre parole si sceglie la forma generica che dovrà avere la funzione di trasferimento del sistema in anello chiuso e a partire da quella si impone la forma del regolatore. Se $G_{m}(z)$ è la forma del sistema in anello chiuso che si vuole imporre, è facile verificare che la forma del controllore sarà $D(z)={\frac {G_{m}(z)}{G_{p}(z)\left[1-G_{m}(z)\right]}}$ quale che sia il valore di $G_{m}(z)$. È quindi possibile suddividere la progettazione in più fasi distinte, ognuna di esse imporrà delle specifiche via via più stringenti sulla forma che il regolatore dovrà avere.

#### Raggiungimento del valore finale in tempo minimo

Affinché l'uscita raggiunga il valore finale in un numero limitato di passi, si impone che la funzione di trasferimento del sistema in anello chiuso sia del tipo $G_{m}(z)=a_{0}+a_{1}z^{-1}+...+a_{N}z^{-N}$ dove, affinché il ritardo del sistema in anello chiuso non sia inferiore a quello del sistema in anello aperto, dev'essere $N\geq n$ se n è il grado del polinomio caratteristico del plant.
Si noti come il regolatore possegga la dinamica inversa del plant. Benché da un punto di vista matematico ciò sia sempre possibile, da un punto di vista pratico devono essere rispettate una serie di condizioni che si assicurano che il sistema in anello chiuso sia stabile e che il controllore sia causale.
Le condizioni di causalità sono:
* Il grado del numeratore di D(z) non può essere maggiore del grado del denominatore
* Se nel plant è presente un ritardo di k intervalli di campionamento, nel controllore dev'esserci necessariamente un ritardo di h intervalli di campionamento con $h\geq k$
La prima di queste condizioni è dettata dal fatto che se il grado del numeratore della funzione di trasferimento è maggiore del grado del denominatore, essa risponde ad un impulso di Kronecker applicato all'istante zero con un segnale più veloce del segnale d'ingresso. Il sistema è quindi anticipativo e non è fisicamente realizzabile.
Le condizioni per la stabilità sono:
* Tutti i poli instabili o criticamente stabili di $G_{p}(z)$ devono essere zeri di $1-G_{m}(z)$
* Tutti gli zeri di $G_{p}(z)$ che si trovano nella regione di instabilità devono essere zeri di $G_{m}(z)$
Queste condizioni sono necessarie poiché nella pratica non è possibile compensare con precisione i poli e gli zeri. A questo proposito è opportuno ricordare che un modello matematico non rappresenta il sistema in sé ma una sua approssimazione. Talvolta questi sistemi sono conosciuti soltanto grazie alle loro variabili esterne e costituiscono quindi un'approssimazione decisamente grossolana. Per quanto detto è impossibile stabilire con precisione la posizione di un polo o di uno zero per compensarli con precisione. Tutto ciò non crea problemi alla stabilità del sistema quando i poli sono stabili ma la situazione diventa problematica se i poli sono instabili (ci si può rendere conto facilmente degli effetti di una cancellazione imperfetta di un polo o di uno zero analizzando il luogo delle radici del sistema).

#### Errore a regime nullo

Si considera un ingresso nella forma:
$V(z)={\frac {P(z)}{\left(1-z^{-1}\right)^{q+1}}}$
Essa comprende i segnali di riferimento più semplici:
* per $P(z)=1$ e $q=0$ si ha il gradino unitario
* per $P(z)=Tz^{-1}$ e $q=1$ si ha la rampa unitaria
e così via.
Si vuole che l'errore vada a zero in un tempo finito e che rimanga tale. Poiché la dinamica dell'errore si può scrivere come:
${\begin{aligned}E(z)&=V(z)-Y(z)\\&=V(z)-V(z)G_{m}(z)\\&={\frac {P(z)\left[1-G_{m}(z)\right]}{(1-z^{-1})^{q+1}}}\end{aligned}}$
si impone la condizione $1-G_{m}(z)=(1-z^{-1})^{q+1}N(z)$ dove $N(z)$ è un generico polinomio in $z^{-1}$. In questo modo si verifica facilmente che l'errore avrà la dinamica $E(z)=P(z)N(z)$ e andrà quindi a zero dopo un numero finito di passi, quale che sia il valore di $N(z)$ purché siano rispettate le condizioni di stabilità e causalità.

#### Evitare fenomeni di ringing

Per capire cos'è il fenomeno del ringing e come prevenirlo bisogna studiare la dinamica della variabile di attuazione. A questo proposito si consideri un plant con tutti i poli e gli zeri nella regione di stabilità e sia $p_{1}=-a$ un polo del controllore molto vicino al punto -1. Con questi presupposti si dimostra che il controllore per ingressi a gradino si può scrivere nella forma: $D(z)={\frac {1}{(z+a){\tilde {G}}_{p}(z)}}{\frac {1}{z^{h}-1}}$
In questo caso la variabile di attuazione può essere descritta dalla funzione di trasferimento: ${\frac {U(z)}{V(z)}}={\frac {D(z)}{1+D(z)G_{p}(z)}}={\frac {1}{{\tilde {G}}_{p}(z)(z+a)}}z^{-h}$.
Utilizzando l'espansione in fratti semplici è possibile dimostrare che il polo in -a dà un contributo alla variabile di attuazione del tipo $(-a)^{k}$ cioè alternato con modulo decrescente. In altre parole si può avere una variabile di attuazione che varia in maniera molto brusca, soprattutto all'inizio, e può danneggiare gli attuatori.
Questo fenomeno si verifica solitamente per periodi di campionamento molto piccoli.
Per evitare fenomeni di ringing bisogna imporre delle condizioni sulla variabile di attuazione. A questo proposito si può mettere in relazione la variabile di attuazione con il segnale di ingresso:
$U(z)={\frac {Y(z)}{G_{p}(z)}}=G_{m}(z){\frac {V(z)}{G_{p}(z)}}$
In questo modo è possibile "scegliere" la funzione la forma desiderata per la variabile di attuazione e ricavare le costanti del polinomio $G_{m}(z)$.

### Metodo semplificato

Se il plant non ha né poli né zeri fuori dal cerchio unitario si può considerare un metodo semplificato per la progettazione del controllore.
In questo caso infatti si può sempre raggiungere la situazione ideale in cui $G_{m}(z)=z^{-k}$. Il sistema in questo caso si comporta a tutti gli effetti come un vero e proprio "deadbeat", un "tempo morto", poiché l'uscita segue fedelmente l'ingresso dopo k istanti di campionamento.
In questa situazione, per ingressi a gradino, è facile verificare che il controllore può essere riscritto come: $D(z)={\frac {1}{G_{p}(z)}}{\frac {z^{-k}}{1-z^{-k}}}$
Si noti come non vengono imposte delle specifiche sulla variabile di attuazione. In altre parole questo metodo da solo non è in grado di evitare fenomeni di ringing.

### Metodo semplificato con specifica sull'attuazione

È possibile considerare un altro metodo semplificato per la progettazione di un controllore deadbeat, imponendo delle specifiche sulla variabile di attuazione.
Si consideri un generico plant $G_{p}(z)$ espresso nella variabile $z^{-1}$ (è sufficiente moltiplicare numeratore e denominatore per $z^{-n}$, dove $n$ è il grado massimo).
Si moltiplica e divide per una costante affinché la somma dei coefficienti del numeratore $P(Z)$ sia pari ad uno, ottenendo una nuova funzione nella forma: $G'(z)={\frac {P(z)}{Q(z)}}$.
Il controllore sarà quindi:
$D(z)={\frac {Q(z)}{1-P(z)}}$

## Controllori analogici

Nei sistemi a tempo continuo il controllo deadbeat richiede, in risposta ad un particolare ingresso:
* Errore nullo a regime
* Tempo di salita minimo
* Tempo di assestamento minimo
* Meno del 2% di overshoot/undershoot
* Output del segnale di controllo molto alto
Si noti come, a differenza del controllo digitale, il controllo analogico non può garantire che l'uscita raggiunga il segnale di riferimento in un tempo finito.