334 lines
14 KiB
TeX
334 lines
14 KiB
TeX
\documentclass[main.tex]{subfiles}
|
|
\begin{document}
|
|
\section{Échelles de temps}
|
|
|
|
Soit le système $(S)$ (avec $f_1$ et $f_2$ lisses (de classe $C^{\infty}$), avec $x_1\in\R^{n_1}$ et $x_2\in\R^{n_2}$.)
|
|
|
|
\[
|
|
\begin{cases}
|
|
\dot{x_1} & = \epsilon f_1(x_1,x_2,u) \\
|
|
\dot{x_2} & = f_2(x_1,x_2,u)
|
|
\end{cases}
|
|
\]
|
|
|
|
On suppose que $0 < \epsilon \ll 1$. et on pose $\tau = \epsilon t$, alors $\tau$ est plus lent que $t$. Ainsi, le système $(S)$ dans la nouvelle échelle temporelle est donnée par:
|
|
|
|
\begin{align*}
|
|
\dd{x_1}{\tau} & = f_1(x_1,x_2,u) ~~\text{ Dynamique lente et d'ordre 0 en } 1/\epsilon \\
|
|
\dd{x_2}{\tau} & = \frac{1}{\epsilon} f_2(x_1,x_2,u) \text{ Dynamique rapide et d'ordre 1 en }1/\epsilon
|
|
\end{align*}
|
|
\begin{prop}
|
|
Ainsi, dans le cas d'un point d'équilibre stable, $x_2$ converge plus rapidement vers $\Sigma_0$ que $x_1$ vers $\Sigma_\epsilon$ avec :
|
|
\[
|
|
\begin{cases}
|
|
\Sigma_0 = \{(x_1,x_2,u) ~~|~~ f_2(x_1,x_2,u)=0\} \\
|
|
\Sigma_\epsilon = \{(x_1,x_2,u) ~~|~~ f_1(x_1,x_2,u)=0 \text{ et }f_2(x_1,x_2,u)=0 \} \subset \Sigma_0
|
|
\end{cases}
|
|
\]
|
|
\end{prop}
|
|
\begin{rem}
|
|
La variété\footnote{Une variété est un objet mathématique, courbes :variété de dimension 1, surface :variété de dimension 3} $\Sigma_\epsilon$ dégènre en $\Sigma_0$ pour $\epsilon \to 0$.
|
|
\end{rem}
|
|
\section{Détermination du voisinage}
|
|
|
|
L'objectif est d'avoir seulement à faire converger $x_1 \to x_1^*$.\\
|
|
|
|
À partir du théorème des fonctions implicites, nous avons l'existence de $X_2 \text{ tq } x_2 = X_2(x_1,u)$.
|
|
|
|
\begin{defin}
|
|
On définit la variété
|
|
\[ \Sigma_{0,\epsilon} = \{ (x_1,x_2) / f_2(x_1,x_2,u,\epsilon) = 0 \} \]
|
|
avec $\dot{u} = \epsilon v$ où $v$ est une fonction bornée.
|
|
\end{defin}
|
|
|
|
La variété $\Sigma_{0,\epsilon}$ est obtenue à partir de $\Sigma_0$ avec une faible variation de la commande.
|
|
|
|
\begin{prop}
|
|
Soit le système ($S$) avec $rang(\derivp[f_2]{x_2}) = n_2$, alors: \\
|
|
\begin{center}
|
|
$\exists X_2(x_1,u,\epsilon)$ tel que $\forall u$ vérifiant $\dot{u} = \epsilon v$, $v$ bornée, \\ $(x_1,x_2) \in \Sigma_{0,\epsilon}$ avec $x_2 = X_2(x_1,u,\epsilon)$.
|
|
\end{center}
|
|
\end{prop}
|
|
|
|
Interprétation :
|
|
La variété $\Sigma_0 \Leftrightarrow x_2=X_2(x_1,u)$, obtenue pour $\epsilon=0$, continue d'exister pour $\epsilon \neq 0$ et suffisamment petit si $\dot{u}=\epsilon v$, $v$ bornée, c'est à dire pour une dynamique de $u$ lente.
|
|
|
|
|
|
\begin{exemple}[MCC]
|
|
\[
|
|
\begin{cases}
|
|
|
|
L\dd{i}{t} & = u-Ri - k\omega \text{ Dynamique électrique}\\
|
|
J\dd{\omega}{t} & = Ki - \alpha\omega -C_r \text{ Dynamique mécanique temps lent}
|
|
\end{cases}
|
|
\]
|
|
|
|
On pose $\epsilon = L << 1$, on a donc le temps rapide $\tau = \frac{t}{\epsilon}$\\
|
|
|
|
Identification avec le système (1) : $x_1=\omega$ et $x_2 =i$.
|
|
|
|
Pour $\epsilon=0$, $\Sigma_0$ est donnée
|
|
\[ i = \frac{u-k\omega}{R} = X_2(x_1,u) \]
|
|
|
|
Ainsi, la dynamique lente est donnée par
|
|
\[ J \dd{\omega}{\tau} = \epsilon(k(\frac{u-k\omega}{R}) - \alpha \omega - C_r) \]
|
|
|
|
En temps lent, la nouvelle expression est
|
|
\[ J \dd{\omega}{t} = -(\frac{k^2}{R}+\alpha) \omega - C_r + \frac{k}{R}u \]
|
|
|
|
On peut améliorer l'approximation de la variété $\Sigma_{0,\epsilon}$ via un DL du 1er ordre.
|
|
|
|
\[ i = \frac{u-k\omega}{R} + \frac{L}{R}(\dot{u}-\frac{k}{J}(k(\frac{u-k\omega}{R})-\alpha\omega-C_r)) + \mathcal{O}(L^2) \]
|
|
|
|
Par exemple, si on veut avoir $i_0=0$, alors $\Sigma_0 = k\omega$. Pour garder $i_0=0$ pour $\Sigma_{0,\epsilon}$, on doit imposer une variation lente de $u$ (lente par rapport à $L\deriv[]{t}$
|
|
\[ \dot{u} = -\frac{k}{J}(\alpha\omega+C_r) - \mathcal{O}(L^2) \]
|
|
\end{exemple}
|
|
|
|
\begin{rem}
|
|
$C_r = -\frac{\dot{u}J}{k}$ est utilisée pour estimer $C_r$ en modulant $\dot{u}$ afin que $i_0$ reste aussi plat que possible et $\omega=0$.
|
|
\end{rem}
|
|
\section{Synthèse de commande hiérarchisante}
|
|
|
|
\subsection{Hiérarchisation par commande à grand gain}
|
|
\begin{defin}
|
|
Soit le système (1), où la commande n'intervient que sur $x_2$ linéairement :
|
|
\[
|
|
\begin{cases}
|
|
\dot{x_1} & = f_3(x_1,x_2) \\
|
|
\dot{x_2} & = f_2(x_1,x_2) + u \end{cases} , \quad x_1 \in \R^{n_1}, x_2 \in \R^{n_2}, u \in\R^{n_2}
|
|
\]
|
|
Ce système est de \emph{forme triangulaire}.
|
|
\end{defin}
|
|
Soit $x_2^*$ la trajectoire consigne à imposer à $x_2$. Avec comme hypothèse $f_2(x_1,x_2)$ bornée, nous appliquons la commande à grand gain
|
|
\[ u = -\frac{K}{\epsilon}(x_2-x_2^*)\]
|
|
où $\epsilon<< 1$ et $K$ matrice diagonale définie positive.
|
|
|
|
Ainsi, suivant la nouvelle échelle de temps $\tau = \frac{t}{\epsilon}$
|
|
\[
|
|
\left\{ \begin{array}{rll}
|
|
\dd{x_1}{\tau} & = \epsilon f_1(x_1,x_2) &\quad \text{dynamique lente}\\
|
|
\dd{x_2}{\tau} & = \epsilon f_2(x_1,x_2) - k(x_2-x_2^*) &\quad \text{perturbation et dynamique de convergence rapide}
|
|
\end{array}\right.
|
|
\]
|
|
|
|
$\Sigma_0$ est la variété $x_2 = x_2^*$.
|
|
|
|
Pour $\epsilon\neq 0$, $\Sigma_{0,\epsilon}$ est la variété $x_2=x_2^*+k\epsilon f_2(x_2,x_2^*)$
|
|
|
|
La dynamique lente est $\dd{x_1}{\tau} = \epsilon f_1(x_1,x_2^*)$. Par conséquent la consigne $x_2^*$ (commande fictive) peut servir à commander la dynamique lente.
|
|
|
|
\begin{rem}
|
|
Avec cette méthode on a simplifié la synthèse :
|
|
\[
|
|
\begin{cases}
|
|
u : x_2 \xrightarrow[1/\epsilon]{} x_2^* \\
|
|
x_2^* : x_1 \xrightarrow[1/\epsilon]{} x_1^* \\
|
|
\end{cases}
|
|
\]
|
|
Où $x_2^*$ est une commande ``fictive''dans le cas ou $x_1$ est à sortie asservie
|
|
\end{rem}
|
|
\begin{rem}
|
|
cette méthode à cependant des inconvénients:
|
|
\begin{itemize}
|
|
\item Amplification du bruit de mesure ($x_2$)
|
|
\item Risque de saturation $\frac{K}{\epsilon}\gg 1$.
|
|
\end{itemize}
|
|
\end{rem}
|
|
\subsection{Commande par backstepping}
|
|
Soit un système sous forme triangulaire (apparition successive des différentes commandes) :
|
|
\begin{align*}
|
|
\dot{x_1} & = f_1(x_1) + x_2 \\
|
|
\dot{x_2} & = f_2(x_1,x_2) + x_3 \\
|
|
& \vdots \\
|
|
\dot{x_n} & = f_n(x_1,\dots x_n) + u
|
|
\end{align*}
|
|
|
|
|
|
On veut triuver $u$ pour imposer une poursuite asymptotique de $x_1$ vers $x_1^*$, pour cela on utilise une commande réalisée via la condition de Lyapunov. La méthode du backstepping synthétise la commande $u$ en plusieurs étapes avec une séparation dynamique pour simplifier le choix de $V(x)$.
|
|
|
|
\paragraph{Procédure de synthèse}
|
|
|
|
\paragraph{Étape 1} Afin d'imposer la consigne $x_1^*$, on utilise la fonction de Lyapunov
|
|
\[ V_1(x_1) = \frac{1}{2}(x_1 - x_1^*)^2 \]
|
|
Pour assurer la stabilité, il faut que $\dot{V_1}(x_1)$ soit définie négative.
|
|
\begin{align*}
|
|
\dot{V_1}(x_1) & = (x_1-x_1^*)(\dot{x_1} - \dot{x_1^*}) \\
|
|
& = (x_1 - x_1^*)(f_1(x_1) + x_2 - \dot{x_1^*})
|
|
\intertext{On cherche donc $x_2^*$ pour que}
|
|
\dot{V_1}(x_1) & = \alpha_1(x_1-x_1^*)^2 \quad \text{ avec } \alpha_1 < 0 \\
|
|
x_2^* & = \alpha_1(x_1-x_2^*) - f_1(x_1) + \dot{x_1^*}
|
|
\end{align*}
|
|
$x_2^*$ est une ``consigne fictive''. On doit faire tendre $x_2$ vers $x_2^*$ asymptotiquement et plus rapidement que $x_1$ vers $x_1^*$.
|
|
|
|
\paragraph{Étape 2} Faire converger $x_2$ vers $x_2^*$. On utilise la nouvelle fonction de Lyapunov
|
|
\[ V_2(x_1,x_2) = \frac{1}{2}(x_1-x_1^*)^2 + \frac{1}{2}(x_2-x_2^*)^2 \]
|
|
On veut $\dot{V_2}(x_1,x_2)$ définie négative :
|
|
\begin{align*}
|
|
\dot{V_2}(x_1,x_2) & = (x_1-x_1^*)(\dot{x_1} - \dot{x_1^*}) + (x_2-x_2^*)(\dot{x_2} - \dot{x_2^*}) \\
|
|
& = \alpha_1(x_1-x_1^*)^2 + \alpha_2(x_2-x_2^*)^2
|
|
\intertext{Pour avoir une hiérarchisation dynamique, on pose $\alpha_2 < \alpha_1 < 0$ (la dynamique 2 est plus rapide que la 1)}
|
|
(x_2-x_2^*)(\dot{x_2} - \dot{x_2^*}) & = \alpha_2(x_2-x_2^*)^2 \\
|
|
(x_2-x_2^*)(f_2(x_1,x_2) + x_3 - \dot{x_2^*}) & = \alpha_2(x_2-x_2^*)^2 \\
|
|
x_3^* & = \alpha_2(x_2-x_2^*) - f_2(x_1,x_2) + \dot{x_2^*}
|
|
\end{align*}
|
|
|
|
\paragraph{Étape n}
|
|
Meme démarche:
|
|
\[ u = \dot{x_n^*} - f_n(x_1,\dots,x_n) + \alpha_n(x_n-x_n^*) \]
|
|
avec $\alpha_n < \alpha_{n-1} < \dots < \alpha_2 < \alpha_1$
|
|
|
|
si $\alpha_n \ll \alpha_{n-1} \ll ... \ll \alpha_1$ alors:
|
|
$\dot{V}$ est obtneu par $f_n(x_1,...,x_n)+u-x_n^* = \alpha_n(x_n-x_n^*)$
|
|
|
|
|
|
\begin{rem}
|
|
Cette méthode est généralisable à des systèmes sans forme :
|
|
\begin{align*}
|
|
\dot{x_1} & = f_1(x_1) + g_1(x_1)x_2 \\
|
|
\dot{x_2} & = f_2(x_1,x_2) + g_2(x_1,x_2)x_3 \\
|
|
& \vdots \\
|
|
\dot{x_n} & = f_n(x_1,\dots,x_n) + g_n(x_1,\dots,x_n)u
|
|
\end{align*}
|
|
sur $\mathcal{D} = \{x_1,\dots,x_n \text{ tq } g_1 \neq 0,\dots,g_n\neq 0 \}$
|
|
\end{rem}
|
|
Mais les méthodes sont alors peu robuste.
|
|
\section{Rejet de perturbation}
|
|
|
|
On suppose que le modèle st soumis à des perturbations.
|
|
\subsection{Cas SISO}
|
|
\[ (1) \begin{cases} \dot{x} & = f(x) + g(x)u + p(x) w \\ y & = h(x) \end{cases} \]
|
|
|
|
|
|
Même principe que pour la linéarisation par bouclage, on dérive la sortie par rapport au temps :
|
|
\[ \dot{y} = \derivp[h(x)]{x} \dot{x} = L_fh(x) + L_gh(x) u + L_ph(x) w \]
|
|
On réalise le rejet de perturbations sur la relation entre le degré relatif associé à $u$ et $\sigma$ degré relatif associé à $w$.
|
|
|
|
|
|
\paragraph{Cas 1} $L_ph(x) \neq 0$\\
|
|
Si $L_gh(x) \neq 0$ et la perturbation $w$ est mesurable (rarement), alors le rejet de la perturbation est obtenu par
|
|
\[ u = (L_gh(x))^{-1}(v-L_fh(x) - L_ph(x)w) \quad \text{avec trivialement } v = \dot{y}\]
|
|
Si la perturbation n'est pas mesurable, on réalise une linéarisation dynamique avec $x_{n+1} = u$ et $x_{n+2} = w$ mais dans ce cas la perturbation $w$ doit être canonique, i.e. $\exists \alpha \in \N \text{ tq } w^{(\alpha)} = 0$.
|
|
|
|
Ainsi, on dérive la sortie jusqu'à disparition de la perturbation puis on linéarise.\\
|
|
|
|
\noindent Si $L_gh(x) = 0$, on calcule les dérivées d'ordres supérieurs de la sortie jusqu'à apparition de la commande (linéarisation dynamique).
|
|
|
|
\paragraph{Cas 2} $L_ph(x) = 0$.\\
|
|
Si $L_gh(x)\neq0$, la perturbation est rejetée pour
|
|
\[ u = (L_gh(x))^{-1}(v-L_fh(x)) \]
|
|
Su $L_gh(x) = 0$, on dérive une deuxième fois la sortie.
|
|
|
|
\begin{prop}
|
|
Soient $r$ le degré relatif correspondant à $L_gL_f^{r-1}h(x) \neq 0$ et $\sigma$ le plus petit entier pour lequel $L_pL_f^{\sigma-1}h(x) \neq0$, alors :
|
|
\begin{itemize}
|
|
\item si $r<\sigma$ la perturbation $w$ est rejetée par la commande linéarisante
|
|
\item si $r=\sigma$ la perturbation $w$ est rejetée si elle est mesurable
|
|
\item si $r>\sigma$ le rejet de $w$ ne peut se faire que par une linéarisation dynamique : observateur NL si $w$ n'est pas canonique
|
|
\end{itemize}
|
|
\end{prop}
|
|
|
|
|
|
\subsection{Cas MIMO}
|
|
\[ \begin{cases} \dot{x} & = f(x) + \sum_{i=1}^m g_i(x)u_i + p(x) w \\ y & = h(x) \end{cases}, \quad x \in \R^n, u \in \R^m, y \in \R^d \]
|
|
Même principe que le cas SISO mais une linérisation MIMO où chaque nouvelle entrée $v_i$, permet de rejeter les perturbations sur $y_i$.
|
|
|
|
\begin{rem}
|
|
L'incertitude sur le modèle peut être interprétée comme une perturbation. En effet, le modèle (1) s'écrit
|
|
\[ \begin{cases} f(x) & = f(x) + \Delta f(x) + g(x) u + \Delta g(x) u \\ y & = h(x) \end{cases} \]
|
|
|
|
Suivant l'analyse sur le bouclage linéarisant, le rejet d'incertitude est obtenu si
|
|
\begin{align*}
|
|
L_{\Delta f} L_f^i h = 0 & 0 \leq i \leq r-2 \\
|
|
L_{\Delta g} L_f^i h = 0 & 0 \leq i \leq r-1
|
|
\end{align*}
|
|
|
|
Ce résultat ne peut être vérifié qu'a posteriori car $\Delta f$ et $\Delta g$ sont inconnues.
|
|
\end{rem}
|
|
|
|
\section{Robustesse en NL - Commande par mode glissant}
|
|
|
|
%%\imgt{8/1}
|
|
|
|
Un terme $u_r$ est ajouté à la commande de départ $u_{eq}$ ...
|
|
|
|
\begin{exemple}[Onduleur de tension commandé en courant]
|
|
Sans avoir à modéliser la charge, on veut imposer la forme de courant :
|
|
%%\imgt{8/2}
|
|
\end{exemple}
|
|
|
|
\subsection{Éléments de synthèse de la commande}
|
|
|
|
\begin{enumerate}
|
|
\item Synthétiser une commande sans prise en compte de l'incertitude ni de la perturbation : surface de glissement (poursuite asymptotique)
|
|
\item Commande gardant les états sur la surface de glissement ayant pour hypothèse l'incertitude ou la perturbation bornées : variation de la structure du système par commutation
|
|
\end{enumerate}
|
|
|
|
\begin{defin}
|
|
La \emph{Surface de glissement ou commutation}
|
|
$S(x,t)$ est la surface autour (dans un voisinage) de laquelle le système évolue avec une dynamique imposée par $S$.
|
|
\end{defin}
|
|
|
|
\begin{defin}
|
|
Un système est à \emph{structure variable} si son entrée commute entre deux valeurs suivant une logique bien spécifique $\sigma(x)$
|
|
%%\img{0.5}{8/3}
|
|
\end{defin}
|
|
|
|
\begin{defin}
|
|
\emph{La Commande par mode glissant} est une commande discontinue ayant pour objectif de faire converger le système en $S$. On utilise la fonction de Lyapunov \[ V(x,t) = \frac{1}{2}S^2(x,t) \]
|
|
|
|
Pour avoir convergence vers la surface de glissement, il faut avoir
|
|
\[ \dot{V}(x,t) = S(x,t) \dot{X}(x,t) \leq 0 \]
|
|
|
|
$\sigma(x)$ est la logique qui impose $S\dot{S} \leq 0$
|
|
\end{defin}
|
|
|
|
\begin{rem}
|
|
$S\dot{S}$ est la condition d'existence d'un régime glissant sur la surface $S$.
|
|
\end{rem}
|
|
|
|
\subsection{Application de la commande par mode glissant}
|
|
|
|
La poursuite asymptotique est une méthode de détermination de $S$.
|
|
|
|
Soit $\epsilon(t) = y_c(t) - y(t)$ où $y_c$ est la consigne et $y$ la sortie.
|
|
|
|
On pose $S = \epsilon^{(m)}(t) + \beta_{m-1}\epsilon^{(m-1)} + \dots + \beta_1 \dot{\epsilon} + \beta_0 \epsilon$ où $\beta_i, i =0,\dots,m-1$ sont choisis pour imposer la dynamique de convergence.
|
|
|
|
\begin{rem}
|
|
Par exemple, on peut choisir $S = (\frac{d}{dt} + \lambda)^m \epsilon, \lambda >0$
|
|
|
|
Choix de la commande (bouclage linéarisant)
|
|
\end{rem}
|
|
|
|
On pose $m=r-1$ où $r$ est le degré relatif et on a
|
|
\begin{align*}
|
|
u & = \frac{1}{L_gL_f^{r-1}h(x)} (-L_f^rh(x) + y_c^{(r)} + \sum_{i=1}^r \beta_{i-2} \epsilon^{(i-1)} + \alpha K sgn(S) ) \\
|
|
u & = \frac{1}{L_gL_f^{r-1}h(x)} (-L_f^rh(x) + y_c^{(r)} + \dot{S} + \alpha K sgn(S) )
|
|
\end{align*}
|
|
|
|
|
|
Ainsi en utilisant le changement de variable $z_i = L_f^{i-1}h(x) = \phi_i(x), i = 1,\dots,r$, la commande linéarisante avec poursuite asymptotique et robuste s'écrit :
|
|
\[ u = \frac{1}{b(z,\eta)} (-a(z,\eta) + y_c^{(r)} + \dot{S} + \alpha K sgn(S)) \]
|
|
avec pour modèle normal :
|
|
\begin{align*}
|
|
\dot{z_1} & = z_2 \\
|
|
& \vdots \\
|
|
\dot{z_{r-1}} & = z_r \\
|
|
\dot{z_r} & = y_c^{(r)} + \dot{S} + \alpha K sgn(S) + \Delta a (z,\eta) \\
|
|
\dot{\eta} & = q(z,\eta) + \Delta q(z,\eta) + \Delta p(z,\eta)u \\
|
|
\text{ avec } & \Delta a (z,\eta) = L_{\Delta f} L_f^{r-1} h(x), \Delta q(z,\eta) = L_{\Delta f} \eta, \Delta p(z,\eta) = L_{\Delta f} \eta
|
|
\end{align*}
|
|
|
|
On suppose que $|\Delta a (z,\eta)| < K < \infty$ donc pour avoir $\dot{z_r} = y_c^{(r)}$, on doit poser $\dot{S} = - \alpha K sgn(S) - \Delta a(z,\eta)$.
|
|
|
|
Cas $S>0 \Rightarrow \dot{S} < -K(\alpha-1) < 0 \si \alpha > 1$
|
|
|
|
Cas $S<0 \Rightarrow \dot{S} > K(\alpha-1) > 0 \si \alpha < 1$
|
|
|
|
Ainsi on vérifie la condition d'existence du régime glissant, alors quand la trajectoire atteint $S$, alors $y \to y_c$ suivant la dynamique imposée par $S$.
|
|
\end{document}
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: "main"
|
|
%%% End:
|