Controllo in feedback linearization

Da Wikipedia, l'enciclopedia libera.

Il controllo in feedback linearization è 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 feedback linearization può essere applicata a quei sistemi non lineari che possono essere riscritti nella seguente forma

\begin{align}\dot{x} &= f(x) + g(x)u \qquad &(1)\\
y &= h(x) \qquad \qquad \qquad &(2)\end{align}

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 lineare ad una non lineare in un certo intorno, la feedback linearization trasforma esattamente il sistema a ciclo chiuso in un sistema lineare.

Feedback linearization di sistemi SISO[modifica | modifica sorgente]

Si consideri il caso di feedback linearization 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[modifica | modifica sorgente]

L'obiettivo della feedback linearization è 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{align}
\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{align}

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[modifica | modifica sorgente]

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 il feedback[modifica | modifica sorgente]

Si assuma che il grado relativo del sistema sia n. In questo caso, dopo aver differenziato l'uscita n volte si ha,

\begin{align}
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{align}

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, un 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[modifica | modifica sorgente]

La feedback linearization 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.

Voci correlate[modifica | modifica sorgente]

Bibliografia[modifica | modifica sorgente]

  • A. Isidori, Nonlinear Control Systems, third edition, Springer Verlag, London, 1995.
  • H. K. Khalil, Nonlinear Systems, third edition, Prentice Hall, Upper Saddle River, New Jersey, 2002.
  • M. Vidyasagar, Nonlinear Systems Analysis second edition, Prentice Hall, Englewood Cliffs, New Jersey, 1993.
  • B. Friedland, Advanced Control System Design Facsimile edition, Prentice Hall, Upper Saddle river, New Jersey, 1996.

Collegamenti esterni[modifica | modifica sorgente]