424 cours du 02/04

This commit is contained in:
Pierre-antoine Comby 2019-04-02 17:17:36 +02:00
parent 0bec61a01b
commit 16e3eb51d4
4 changed files with 340 additions and 302 deletions

View file

@ -61,7 +61,7 @@ Ainsi,
\begin{rem} \begin{rem}
\begin{itemize} \begin{itemize}
\item $L_f^0 (x) = \alpha(x)$ \item $L_f^0(\alpha(x)) = \alpha(x)$
\item Soient 2 champs de vecteurs $f$ et $g$, alors \item Soient 2 champs de vecteurs $f$ et $g$, alors
\begin{align*} \begin{align*}
L_g L_f \alpha (x) & = J_{L_f \alpha}(x) g(x) \\ L_g L_f \alpha (x) & = J_{L_f \alpha}(x) g(x) \\

View file

@ -521,11 +521,15 @@ La difficulté de la poursuite asymptotique est la résolution de l'équation dy
Dans le cas des systèmes plats, la solution est obtenue via les sorties plates. Dans le cas des systèmes plats, la solution est obtenue via les sorties plates.
\begin{defin} \begin{defin}
Un système est dit \emph{plat} s'il a des sorties plates. Tous les états et entrées de commande du système sont exprimés en fonction des sorties plates et d'un nombre fini de leurs dérivées.\\ Un système est dit \emph{plat} si toutes les variables d'états $\vec{x}$ et les entrées peuvent s'écrire comme :
\[
\begin{cases}
\noindent Cas SISO : $\dot{x} = f(x,u)$ est plat si \[\exists y \in \R \text{ tq } x = \phi(y,y^{(1)},\dots,y^{(\beta)}) \text{ et } u=\psi(y,y^{(1)},\dots,y^{(\delta)}), \beta,\delta \in \N\] \vec{x} = \psi(y_1, ..., y_1^{(\alpha_1)}, ..., y_m,...,y_m^{(\alpha_m)}) \\
\vec{u} = \phi(y_1, ..., y_1^{(\beta_1)}, ..., y_m,...,y_m^{(\beta_m)})
\noindent Cas MIMO : $\dot{x} = f(x,u)$ est plat si \[\exists y \in \R^p \text{ tq } x = \phi(y_1,\dots,y_1^{(\beta_1)},\dots,y_p^{(\beta_p)}) \text{ et } u=\psi(y_1,y_1^{(\delta_1)},\dots,y_p^{(\delta_p)}), \beta_i,\delta_i \in \N\] \end{cases}
\]
Les $y_i$ sont alors appelées \emph{sortie plates}
\end{defin} \end{defin}
\begin{exemple} \begin{exemple}
@ -543,7 +547,11 @@ u_1 & = \frac{\dot{x_3}}{y_1} = \frac{(\ddot{y_2}-\dot{y_2})\dot{y_2}-\ddot{y_1}
\end{align*} \end{align*}
\end{exemple} \end{exemple}
Un autre intérêt de la platitude est la planification simple de trajectoire. Une des utilisation des sorties est la planification simple de trajectoire. En partant de $y_i(0) = y_0 $ on souhaite arriver en un temps fini à $y_i(T_f) = y_f$. À partir de ce cahier des charges on trouve une trajectoire ()généralement polynomiale) tel que $u = \phi(y_{1p} ... y_{1p}^{(\beta_1)},...,y_{mp},...,y_{m}^{(\beta_m)})$.
Une autre application est la résolution de l'équation N.L de la poursuite asymptotique par intégration successive de $u$.
\begin{thm}[Principe de la planification de trajectoire] \begin{thm}[Principe de la planification de trajectoire]
La planification peut comporter des contraintes sur la commande (énergie, saturation, ...) et sur les états (obstacles, limitation de vitesse, d'accélération...) La planification peut comporter des contraintes sur la commande (énergie, saturation, ...) et sur les états (obstacles, limitation de vitesse, d'accélération...)
@ -570,302 +578,6 @@ Commande en cassecade \footnote{Momo m'a tuer} :
\[ C_0(p) = K >>1, \quad H_0(p) = \frac{H_1(p)}{1+KH_1(p)} \approx \frac{1}{K} \] \[ C_0(p) = K >>1, \quad H_0(p) = \frac{H_1(p)}{1+KH_1(p)} \approx \frac{1}{K} \]
\end{exemple} \end{exemple}
\section{Commandes hiérarchisées}
\subsection{Échelles de temps}
Soit le système (1) $\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}$ 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}$.
On suppose que $0 < \epsilon << 1$.
On suppose $\tau = \epsilon t$ nouveau temps: $\tau$ est plus lent que $t$.
Ainsi, le système (1) 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 est d'ordre 0 en } 1/\epsilon \\
\dd{x_2}{\tau} & = \frac{1}{\epsilon} f_2(x_1,x_2,u) \text{ Dynamique rapide est d'ordre 1 en }1/\epsilon
\end{align*}
Ainsi, dans le cas d'un point d'équilibre stable, $x_2$ converge rapidement vers le voisinage dépendant de $\epsilon$, d'un point d'équilibre de $f_2=0$.
\subsection{Détermination du voisinage}
Pour $\epsilon = 0$, les points d'équilibre du système (1) forment la variété :
\[ \Sigma_0 = \{ (x_1,x_2,u)/ f_2(x_1,x_2,u) = 0 \} \]
alors que pour $\epsilon \neq 0$, les points d'équilibre forment la variété
\[ \Sigma_{\epsilon} = \{ (x_1,x_2,y) / f_1(x_1,x_2,u) = 0 \text{ et } f_2(x_1,x_2,y) \neq 0 \} \]
On a $\Sigma_{\epsilon} \subset \Sigma_0$ donc $\Sigma_{\epsilon}$ dégénère en $\Sigma_0$ pour $\epsilon=0$.
%\img{0.5}{7/2}
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$$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 (1) avec $rang(\derivp[f_2]{x_2}) = n_2$, alors $\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{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.
\begin{exemple}
[MMC]
\[
\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$, 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\dd{}{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}
\subsection{Hiérarchisation par commande à grand gain}
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}
\]
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^*)\]
$\epsilon<< 1$ et $k$ matrice diagonale définie positive.
Ainsi, suivant la nouvelle échelle de temps $\tau = \frac{t}{\epsilon}$
\[
\begin{cases}
\dd{x_1}{\tau} & = \epsilon f_1(x_1,x_2) \quad \text{dynaique 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{cases}
\]
$\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.
\newpage
\section{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*}
\subsection{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*}
Cela assure la convergence asymptotique de $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*}
La démarche est la même à l'étape $n$ :
\[ 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$
\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}
\newpage
\section{Rejet de perturbation}
\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 \]
\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}
\newpage
\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}[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}[Système à structure variable]
Un système est à 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}[Commande par mode glissant]
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)$$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$$\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$$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} \end{document}
%%% Local Variables: %%% Local Variables:

View file

@ -0,0 +1,320 @@
\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*}
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}
\]
\begin{rem}
La variété $\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$$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}
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}
\]
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^*)\]
$\epsilon<< 1$ et $K$ matrice diagonale définie positive.
Ainsi, suivant la nouvelle échelle de temps $\tau = \frac{t}{\epsilon}$
\[
\begin{cases}
\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{cases}
\]
$\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}
\]
$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*}
\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*}
Cela assure la convergence asymptotique de $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*}
La démarche est la même à l'étape $n$ :
\[ 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$
\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}
\section{Rejet de perturbation}
\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 \]
\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}[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}[Système à structure variable]
Un système est à 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}[Commande par mode glissant]
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)$$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$$\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$$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:

View file

@ -8,6 +8,8 @@
\usepackage{multicol} \usepackage{multicol}
\usetikzlibrary{decorations.markings} \usetikzlibrary{decorations.markings}
\usetikzlibrary{patterns} \usetikzlibrary{patterns}
\let\epsilon\varepsilon
\begin{document} \begin{document}
\maketitle \maketitle
@ -20,6 +22,7 @@
\newpage \newpage
\tableofcontents \tableofcontents
\part{Études des systèmes non linéaires}
\chapter{Classification} \chapter{Classification}
\subfile{chap1.tex} \subfile{chap1.tex}
\chapter{Caractérisation de la stabilité} \chapter{Caractérisation de la stabilité}
@ -30,10 +33,13 @@
\subfile{chap4.tex} \subfile{chap4.tex}
\chapter{Stabilité des systèmes non linéaires} \chapter{Stabilité des systèmes non linéaires}
\subfile{chap5.tex} \subfile{chap5.tex}
\part{Commande des systèmes non linéaires}
\chapter{Commandabilité et observabilité en non linéaire} \chapter{Commandabilité et observabilité en non linéaire}
\subfile{chap6.tex} \subfile{chap6.tex}
\chapter{Commande par bouclage linéarisant} \chapter{Commande par bouclage linéarisant}
\subfile{chap7.tex} \subfile{chap7.tex}
\chapter{Commande hiérarchisée}
\subfile{chap8.tex}
\end{document} \end{document}
%%% Local Variables: %%% Local Variables: