From 16e3eb51d48114c69ca9d875ef434f3ab438b8f8 Mon Sep 17 00:00:00 2001 From: Pierre-antoine Comby Date: Tue, 2 Apr 2019 17:17:36 +0200 Subject: [PATCH] 424 cours du 02/04 --- 424-Systeme_Non_Lineaires/Cours/chap6.tex | 2 +- 424-Systeme_Non_Lineaires/Cours/chap7.tex | 314 +-------------------- 424-Systeme_Non_Lineaires/Cours/chap8.tex | 320 ++++++++++++++++++++++ 424-Systeme_Non_Lineaires/Cours/main.tex | 6 + 4 files changed, 340 insertions(+), 302 deletions(-) create mode 100644 424-Systeme_Non_Lineaires/Cours/chap8.tex diff --git a/424-Systeme_Non_Lineaires/Cours/chap6.tex b/424-Systeme_Non_Lineaires/Cours/chap6.tex index bdd6a21..e361a83 100644 --- a/424-Systeme_Non_Lineaires/Cours/chap6.tex +++ b/424-Systeme_Non_Lineaires/Cours/chap6.tex @@ -61,7 +61,7 @@ Ainsi, \begin{rem} \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 \begin{align*} L_g L_f \alpha (x) & = J_{L_f \alpha}(x) g(x) \\ diff --git a/424-Systeme_Non_Lineaires/Cours/chap7.tex b/424-Systeme_Non_Lineaires/Cours/chap7.tex index 9c6613f..4a08b7f 100644 --- a/424-Systeme_Non_Lineaires/Cours/chap7.tex +++ b/424-Systeme_Non_Lineaires/Cours/chap7.tex @@ -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. \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\] - -\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\] + \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)}) + \end{cases} + \] + Les $y_i$ sont alors appelées \emph{sortie plates} \end{defin} \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{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] 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} \] \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$ 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 (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^*)\] -où $\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)$ 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: diff --git a/424-Systeme_Non_Lineaires/Cours/chap8.tex b/424-Systeme_Non_Lineaires/Cours/chap8.tex new file mode 100644 index 0000000..4e1aabe --- /dev/null +++ b/424-Systeme_Non_Lineaires/Cours/chap8.tex @@ -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$ 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} + +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^*)\] +où $\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} + \] + 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*} + +\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)$ 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: diff --git a/424-Systeme_Non_Lineaires/Cours/main.tex b/424-Systeme_Non_Lineaires/Cours/main.tex index 015b2df..95e881f 100644 --- a/424-Systeme_Non_Lineaires/Cours/main.tex +++ b/424-Systeme_Non_Lineaires/Cours/main.tex @@ -8,6 +8,8 @@ \usepackage{multicol} \usetikzlibrary{decorations.markings} \usetikzlibrary{patterns} + +\let\epsilon\varepsilon \begin{document} \maketitle @@ -20,6 +22,7 @@ \newpage \tableofcontents +\part{Études des systèmes non linéaires} \chapter{Classification} \subfile{chap1.tex} \chapter{Caractérisation de la stabilité} @@ -30,10 +33,13 @@ \subfile{chap4.tex} \chapter{Stabilité des systèmes non linéaires} \subfile{chap5.tex} +\part{Commande des systèmes non linéaires} \chapter{Commandabilité et observabilité en non linéaire} \subfile{chap6.tex} \chapter{Commande par bouclage linéarisant} \subfile{chap7.tex} +\chapter{Commande hiérarchisée} +\subfile{chap8.tex} \end{document} %%% Local Variables: