# Controllo in feedback linearization

Il controllo con linearizzazione in retroazione (feedback linearization in inglese) è una tecnica di base utilizzata nel controllo di sistemi non lineari. Quest'approccio consiste nella trasformazione di un sistema non lineare in un equivalente sistema lineare, grazie a un cambio di variabili e a un ingresso appositamente scelto. La linearizzazione in retroazione può essere applicata a quei sistemi non lineari che possono essere riscritti nella seguente forma
    ${\begin{aligned}{\dot {x}}&=f(x)+g(x)u\qquad &(1)\\y&=h(x)\qquad \qquad \qquad &(2)\end{aligned}}$
dove $x\in \mathbb {R} ^{n}$ è il vettore di stato, $u\in \mathbb {R} ^{p}$ è il vettore di ingresso e $y\in \mathbb {R} ^{m}$ è il vettore di uscita. L'obiettivo è sviluppare un vettore di ingresso
    $u=a(x)+b(x)v$
che renda lineare la funzione ingresso-uscita tra il nuovo ingresso $v$ e l'uscita $y$. A questo punto può essere applicata una classica strategia di controllo per sistemi lineari.
Si noti che a differenza di tecniche di linearizzazione classiche come l'espansione di Taylor, che approssimano una funzione non lineare ad una lineare in un certo intorno, la linearizzazione in retroazione trasforma esattamente il sistema a ciclo chiuso in un sistema lineare.

## Linearizzazione in retroazione di sistemi SISO

Si consideri il caso di linearizzazione in retroazione di un sistema ad un singolo ingresso e singola uscita (SISO). I risultati ottenuti possono comunque essere facilmente estesi al caso di sistemi con più ingressi e più uscite (MIMO). Quindi, in questo caso, $u\in \mathbb {R}$ e $y\in \mathbb {R}$. L'obiettivo è trovare una trasformazione di coordinate $z=T(x)$ che porti il sistema (1) nella cosiddetta forma normale:
    ${\dot {z}}=Az+bv$
con
    $A={\begin{bmatrix}0&1&0&\ldots &0\\0&0&1&\ldots &0\\\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&\ldots &1\\0&0&0&\ldots &0\end{bmatrix}}{\mbox{ and }}b={\begin{bmatrix}0\\0\\\vdots \\0\\1\end{bmatrix}}$
grazie a una legge di controllo della forma
    $u=a(x)+b(x)v$.
Per assicurare che il sistema trasformato sia un'equivalente rappresentazione del sistema originale, la trasformazione dovrà essere un diffeomorfismo. Cioè, la trasformazione non solo deve essere invertibile (biettiva), ma sia la trasformazione che la sua inversa devono essere lisce così che la differenziabilità nell'originale sistema di coordinate è preservato nel nuovo sistema. In pratica, la trasformazione può anche essere solo localmente diffeomorfa, ma naturalmente la linearizzazione risultante terrà solo localmente.
Prima di risolvere questo problema si devono introdurre una serie di strumenti matematici.

### Derivata di Lie

L'obiettivo della linearizzazione in retroazione è produrre un sistema trasformato il cui stato è composto dall'uscita $y$ e dalle sue prime $(n-1)$ derivate. Per costruire la struttura di questo nuovo sistema, si utilizzeranno le derivate di Lie. Si consideri la derivata rispetto al tempo di (2), che può essere calcolata grazie alla regola della catena,
    ${\begin{aligned}{\dot {y}}={\frac {\operatorname {d} h(x)}{\operatorname {d} t}}&={\frac {\operatorname {d} h(x)}{\operatorname {d} x}}{\dot {x}}\\&={\frac {\operatorname {d} h(x)}{\operatorname {d} x}}f(x)+{\frac {\operatorname {d} h(x)}{\operatorname {d} x}}g(x)u\end{aligned}}$
Si può ora definire la derivata di Lie di $h(x)$ lungo $f(x)$ come,
    $L_{f}h(x)={\frac {\operatorname {d} h(x)}{\operatorname {d} x}}f(x),$
e analogamente, la derivata di Lie di $h(x)$ lungo $g(x)$ come,
    $L_{g}h(x)={\frac {\operatorname {d} h(x)}{\operatorname {d} x}}g(x).$
Con questa nuova notazione, si può esprimere ${\dot {y}}$ come,
    ${\dot {y}}=L_{f}h(x)+L_{g}h(x)u$
Si noti che la notazione di Lie è conveniente quanto si prendono in considerazione le derivate successive rispetto o allo stesso vettore o a un altro. Per esempio,
    $L_{f}^{2}h(x)=L_{f}L_{f}h(x)={\frac {\operatorname {d} (L_{f}h(x))}{\operatorname {d} x}}f(x),$
e
    $L_{g}L_{f}h(x)={\frac {\operatorname {d} (L_{f}h(x))}{\operatorname {d} x}}g(x).$

### Grado relativo

Nel sistema linearizzato il cui vettore di stato è costituito dall'uscita $y$ e dalle sue prime $(n-1)$ derivate, si deve comprendere come l'ingresso $u$ entra nel sistema. Per fare questo, deve essere introdotta la nozione di grado relativo. Il nostro sistema dato da (1) e (2) è detto avere grado relativo $r\in \mathbb {W}$ al punto $x_{0}$ se,
    $L_{g}L_{f}^{k}h(x)=0\qquad \forall x$ in un intorno di $x_{0}$ e $k\leq r-2$
    $L_{g}L_{f}^{r-1}h(x_{0})\neq 0$
Considerando questa definizione di grado relativo e il significato della derivata di Lie di $y$, si può considerare che il grado relativo del sistema (1) e (2) sia il numero di volte che il vettore di uscita $y$ deve essere differenziato prima che l'ingresso $u$ appaia esplicitamente. In un sistema lineare tempo invariante, il grado relativo è equivalentemente definito come la differenza tra il grado del denominatore polinomiale della funzione di trasferimento (cioè il numero di poli) e il grado del suo numeratore polinomiale (cioè il numero di zeri).

### Linearizzazione attraverso la retroazione

Si assuma che il grado relativo del sistema sia $n$. In questo caso, dopo aver differenziato l'uscita $n$ volte si ha,
    ${\begin{aligned}y&=h(x)\\{\dot {y}}&=L_{f}h(x)\\{\ddot {y}}&=L_{f}^{2}h(x)\\&\vdots \\y^{(n-1)}&=L_{f}^{n-1}h(x)\\y^{(n)}&=L_{f}^{n}h(x)+L_{g}L_{f}^{n-1}h(x)u\end{aligned}}$
dove la notazione $y^{(n)}$ indica l'$n$-sima derivata di $y$. Dal momento che si è assunto che il grado relativo del sistema è $n$, le derivate di Lie della forma $L_{g}L_{f}^{i}h(x)$ per $i=1,\dots ,n-2$ saranno identicamente nulle. In altre parole, l'ingresso $u$ non dà un diretto contributo a nessuna delle prime $(n-1)$ derivate.
La trasformazione di coordinate $T(x)$ che porta il sistema nella forma normale viene dalle prime $(n-1)$ derivate. In particolare,
    $z=T(x)={\begin{bmatrix}z_{1}(x)\\z_{2}(x)\\\vdots \\z_{n}(x)\end{bmatrix}}={\begin{bmatrix}y\\{\dot {y}}\\\vdots \\y^{(n-1)}\end{bmatrix}}={\begin{bmatrix}h(x)\\L_{f}h(x)\\\vdots \\L_{f}^{n-1}h(x)\end{bmatrix}}$
trasforma le traiettorie dall'originale sistema di coordinate $x$ nel nuovo sistema di coordinate $z$. Dal momento che questa trasformazione è un diffeomorfismo, le traiettorie lisce nel sistema di coordinate originale avranno un'unica controparte nel sistema di coordinate $z$, anch'esso liscio. Queste traiettorie $z$ saranno descritte dal nuovo sistema,
    ${\begin{cases}{\dot {z}}_{1}&=L_{f}h(x)=z_{2}(x)\\{\dot {z}}_{2}&=L_{f}^{2}h(x)=z_{3}(x)\\&\vdots \\{\dot {z}}_{n}&=L_{f}^{n}h(x)+L_{g}L_{f}^{n-1}h(x)u\end{cases}}.$
Quindi, la legge di controllo in retroazione
    $u={\frac {1}{L_{g}L_{f}^{n-1}h(x)}}(-L_{f}^{n}h(x)+v)$
rende lineare il rapporto ingresso-uscita da $v$ a $z_{1}=y$. Il risultante sistema linearizzato
    ${\begin{cases}{\dot {z}}_{1}&=z_{2}\\{\dot {z}}_{2}&=z_{3}\\&\vdots \\{\dot {z}}_{n}&=v\end{cases}}$
è una serie di $n$ integratori a cascata. Una legge di controllo $v$ può così essere scelta utilizzando classiche metodologie per sistemi lineari. Ad esempio, una legge di controllo del tipo
    $v=-Kz\qquad ,$
dove il vettore di stato $z$ è l'uscita $y$ e le sue prime $(n-1)$ derivate, porta al sistema lineare tempo invariante
    ${\dot {z}}=Az$
con,
    $A={\begin{bmatrix}0&1&0&\ldots &0\\0&0&1&\ldots &0\\\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&\ldots &1\\-k_{1}&-k_{2}&-k_{3}&\ldots &-k_{n}\end{bmatrix}}.$
Quindi, con un'appropriata scelta di $k$, si possono arbitrariamente posizionare i poli del sistema a ciclo chiuso linearizzato.

### Dinamica zero instabile

La linearizzazione in retroazione può essere utilizzata per sistemi il cui grado relativo è minore di $n$. Tuttavia la forma normale del sistema includerà la dinamica zero (cioè stati che non sono osservabili dall'uscita del sistema) che potrebbe essere instabile. Nel caso di una dinamica zero instabile, ci potrebbero essere degli effetti deleteri nel sistema, come stati interni che crescono illimitatamente. D'altra parte la dinamica zero potrebbe anche essere stabile o almeno controllabile così che si possa fare in modo che gli stati interni non causino problemi. Nel caso di grado relativo $r<n$, il sistema diventa:
${\begin{cases}{\dot {z}}_{1}&=z_{2}\\{\dot {z}}_{2}&=z_{3}\\&\vdots \\{\dot {z}}_{r}&=v\\{\dot {\eta }}&=q(z,\eta )\end{cases}}$
ove si è assunta una forma normale stretta. La dinamica zero è rappresentata dalla seguente equazione:
${\dot {\eta }}=q(0,\eta )$
con un ingresso tale da azzerare l'uscita per ogni t.