# Controllo sliding mode

Con il termine controllo sliding mode (o sliding mode o sliding mode control) si fa riferimento a un controllore a struttura variabile in retroazione di stato che modifica il comportamento di un sistema non lineare forzandolo con un segnale di controllo in alta frequenza.

## Idea di base

Il controllo sliding mode nasce per essere robusto e versatile, per questo motivo viene spesso indicato come "controllo universale". L'idea alla base di questo tipo di controllore è semplice: si controlla il sistema in modo che raggiunga una superficie, detta di sliding, che rappresenta il riferimento del sistema di controllo. Per ottenere ciò il sistema viene forzato con un segnale di controllo discontinuo, segnale che spinge le traiettorie del sistema in direzione della superficie di sliding: le traiettorie del sistema oscillano intorno alla superficie stessa (chattering) e l'ampiezza delle oscillazioni è tanto più piccola quanto maggiore è la frequenza del segnale di controllo. La sintesi di un sistema di controllo che applica direttamente un'azione di tipo discontinuo apre nuovi orizzonti per il controllo di attuatori di tipo on-off che tipicamente sono controllati in PWM.

## Schema di controllo

La progettazione dello schema di controllo può essere sintetizzata in due passi:
* Si sceglie una superficie di sliding su cui le traiettorie del sistema devono convergere. Il comportamento del sistema in retroazione dipende da questa scelta.
* Si sceglie una legge di controllo in funzione della superficie di sliding; questa presenta sempre un termine discontinuo e può presentare anche termini continui.
Si consideri il sistema non lineare descritto da:
| ${\dot {x}}(t)=f(x,t)+B(x,t)u(t),\quad x\in R^{n},B\in R^{n\times m}$ | $(A1)$ |
Per garantire l'esistenza e l'unicità della soluzione è necessario supporre che le funzioni f(.,.) and B(.,.) siano continue e differenziabili.
Si consideri la superficie di sliding di dimensione (n-m)
| $\sigma (x)=[\sigma _{1}(x),\ldots ,\sigma _{m}(x)]^{T}=0,\quad \sigma (x)\in R^{m}$ | $(A2)$ |

## Fondamenti teorici

I teoremi che seguono sono alla base del controllo sliding mode e permettono di dimostrare la stabilità del sistema di controllo e valutare il comportamento sulla superficie di sliding.

### Primo teorema: stabilità

Si consideri la funzione di Ljapunov
| $V(\sigma (x))={\frac {1}{2}}\sigma ^{T}(x)\sigma (x)$ | $(A3)$ |
Per il sistema descritto dalle (A1) e la superficie di sliding descritta dalle (A2) una condizione sufficiente perché il sistema sia stabile è la seguente:
    ${\frac {dV(\sigma )}{dt}}=\sigma ^{T}{\dot {\sigma }}\;<0$
in un intorno di $\sigma =0$.
La stabilità è riferita alla superficie di sliding, che rappresenta anche il riferimento per il sistema, dunque questo teorema permette di valutare se il sistema può raggiungere e permanere sulla superficie.

### Secondo teorema: regione di attrattività

Per il sistema descritto dalle (A1) e la superficie di sliding descritta dalle (A2) l'intorno di $\sigma =0$ per cui il sistema risulta stabile è dato da:
    $\sigma \;=\;\{x:\sigma ^{T}(x){\dot {\sigma }}(x)\;<0\;\forall t\}$

### Terzo teorema: dinamica sulla superficie di sliding

Se la matrice :${\frac {\partial \sigma }{\partial {x}}}B$ è non singolare, quando il sistema è su $\sigma =0$ la dinamica sulla superficie di sliding può essere ottenuta sostituendo nelle (A1) il controllo $u$, che verrà detto controllo equivalente, che garantisce ${\dot {\sigma }}=0$.
Si può dimostrare che la dinamica sulla superficie di sliding è indipendente dal campo vettoriale del sistema e dai disturbi agenti sul sistema; questo aspetto rende lo schema di controllo robusto e sostanzialmente universale.

## Progettazione della legge di controllo

Si consideri un sistema SISO e si definisca la superficie di sliding come:
| $\sigma (x)\;=\;s_{1}x_{1}+s_{2}x_{2}+\ldots +s_{n-1}x_{n-1}+x_{n}$ | $(A4)$ |
Derivando la funzione di Ljapunov si ottiene:
| ${\begin{matrix}{\dot {V}}&=&\sigma (x)^{T}{\dot {\sigma }}(x)\\&=&\sigma (x)^{T}{\frac {\partial {\sigma (x)}}{\partial {x}}}{\dot {x}}\\&=&\sigma (x)^{T}{\frac {\partial {\sigma (x)}}{\partial {x}}}(f(x,t)x+B(x,t)u)\end{matrix}}$ | $(A5)$ |
A questo punto, per il secondo teorema, è necessario scegliere un ingresso di controllo che garantisca la condizione di stabilità. Una possibile scelta dell'ingresso di controllo è la seguente:
    $u(x,t)=\left\{{\begin{matrix}u^{+}(x),&{\mbox{for}}\;\sigma \;>0\\u^{-}(x),&{\mbox{for}}\;\sigma \;<0\end{matrix}}\right.$
ovvero
    $u(x,t)=u(x)sign(\sigma )$
Si nota come questa legge di controllo presenti una discontinuità di prima specie nel punto 0 data dalla funzione segno. Questa discontinuità comporta un problema teorico e uno pratico. Il problema teorico è dato dalla soluzione dell'equazione differenziale perché condizione sufficiente, ma non necessaria per la soluzione dell'equazione differenziale è data dalla continuità della funzione. Il problema pratico è dato dal fatto che le ripetute discontinuità nello sforzo di controllo generano il cosiddetto "chattering" ovvero un comportamento a zig-zag dell'uscita del controllore che si ripercuote sullo stato del sistema. Per ovviare a questi problemi si utilizza la funzione tangente iperbolica al posto della funzione segno.