diff --git a/424-Systeme_Non_Lineaires/Cours/chap6.tex b/424-Systeme_Non_Lineaires/Cours/chap6.tex index 21776be..bdd6a21 100644 --- a/424-Systeme_Non_Lineaires/Cours/chap6.tex +++ b/424-Systeme_Non_Lineaires/Cours/chap6.tex @@ -95,7 +95,7 @@ Si $x_2 \neq 0$, alors $\Delta(x) = vect\{(\vect{x_1 \\ x_2 \\ 2},\vect{1 \\ 1 \ Soit le système non-linéaire (1) (affine en la commande) \[ \dot{x} = f(x) + g(x)u = f(x) + \sum_{i=1}^m g_i(x) u_i, \quad x \in \R^n \text{ et }u \in \R^m \] -\begin{defin}[Commandabilité] +\begin{defin} Un système est\emph{ commandable} ssi $\forall x \in \R^n, \exists u$ tel que $x$ est atteignable dans un temps fini. \end{defin} @@ -137,25 +137,32 @@ Soit $\nabla \mathcal{V}$ l'ensemble des différentielles (gradient) des éléme \end{defin} \begin{thm}[Théorème d'observabilité] -Le système (2) est localement observable en $x_0$ si $dim \nabla \mathcal{V}(x_0) = n$ et il est observable si $\forall x \in \R^n, dim \nabla \mathcal{V}(c) = n$ +Le système (2) est localement observable en $x_0$ si $\dim \nabla \mathcal{V}(x_0) = n$ et il est observable si $\forall x \in \R^n, \dim \nabla \mathcal{V}(c) = n$ \end{thm} -\begin{example}[linéaire] +\begin{exemple}[Cas linéaire] \begin{align*} \dot{x} & = Ax + Bu = f(x) + g(x)u\\ y & = Cx = h(x) \end{align*} -\begin{align*} -\mathcal{V} & = \{ h(x), L_fh(x), L_gh, L^2_fh ,L_g^2h , L_fL_gh , L_gL_fh \dots \} \\ -\mathcal{V} & = \{ Cx, C.Ax (=L_fh(x)), C.B (=L_gh), CA^2x (=L^2_fh) ,0 (=L_g^2h) , 0 (=L_fL_gh) , CAB (=L_gL_fh) \dots \} \\ -\nabla \mathcal{V} & = \{ C , CA , 0 CA^2 , 0 , 0 , 0 \dots \} \\ -dim \nabla \mathcal{V} & = rang \vect{ C \\ CA \\ CA^2 \\ \vdots \\ CA^{n-1}} \quad \text{Critère de Kalman} +\begin{align*} + \mathcal{O} = &\{ h(x), L_fh(x), L_gh, + L^2_fh ,L_g^2h , L_fL_gh , + L_gL_fh \dots \} \\ +\mathcal{O} = &\{ Cx, C.Ax (=L_fh(x)), \\ + & C.B (=L_gh), CA^2x (=L^2_fh), \\ + & 0 (=L_g^2h) , 0 (=L_fL_gh) , \\ + & CAB (=L_gL_fh) \dots \} \\ + \nabla \mathcal{O} = &\{ C , CA , 0 ,CA^2 , 0 , 0 , 0 \dots \} \\ \end{align*} -\end{example} +\[ +\dim \nabla \mathcal{O} = {\rm rg} \vect{ C \\ CA \\ CA^2 \\ \vdots \\ CA^{n-1}} \quad \text{Critère de Kalman} +\] +\end{exemple} \begin{rem} -l'action de la commande intervient dans l'observabilité. Cette contrainte est écartée dnas le cas linéaire. +l'action de la commande intervient dans l'observabilité. Cette contrainte est écartée dans le cas linéaire. \end{rem} \end{document} diff --git a/424-Systeme_Non_Lineaires/Cours/chap7.tex b/424-Systeme_Non_Lineaires/Cours/chap7.tex index 25c8af2..3179350 100644 --- a/424-Systeme_Non_Lineaires/Cours/chap7.tex +++ b/424-Systeme_Non_Lineaires/Cours/chap7.tex @@ -1,28 +1,36 @@ \documentclass[main.tex]{subfiles} \begin{document} -\section{Commande par bouclage linéarisant} -Principe : se ramener à un comportement linéaire -%\img{0.5}{5/1} - -\subsection{Linéarisation entrées-sorties} - -Cas SISO : $u\in \R$ et $y\in\R$ - -Soit le système NL (1) (affine en la commande) : -\[ +Dans la suite du chapitre on étudiera le modèle suivant : Affine en la commande +\[(\Sigma) \begin{cases} \dot{x} & = f(x) + g(x) u\\ y & = h(x) \end{cases} \] +\section{Commande par bouclage linéarisant} +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{5/1.png} + \caption{Principe du bouclage linéarisant} +\end{figure} +% \img{0.5}{5/1} A rajouter ! +Figure a rajouter +\subsection{Linéarisation entrées-sorties} +On se place dans le cas SISO: $u\in \R$ et $y\in\R$ -\begin{defin}[degré relatif] -Le degré relatif $r$ du système (1) est défini par : -\[ r \in \N \text{ tq } L_gL_f^{r-1}h(x) \neq 0 \text{ et } \forall k < r-1, L_gL_f^{k}h(x) = 0\] +\begin{defin} + Le\emph{ degré relatif} $r$ du système $(\Sigma)$ est défini par $r \in \N$ tel que + \[ + \begin{cases} + + L_gL_f^{r-1}h(x) &\neq 0\\ + L_gL_f^{k}h(x) &= 0 \quad \forall k < r-1 +\end{cases} +\] \end{defin} -\subsection{Procédure de linéarisation} +\subsubsection{Procédure de linéarisation} On cherche $r$ par le calcul des dérivées successives de $y=h(x)$ : \begin{align*} \dot{y} & = \derivp[h(x)]{x} \dot{x}\\ @@ -33,11 +41,17 @@ On cherche $r$ par le calcul des dérivées successives de $y=h(x)$ : & = \derivp[L_fh(x)]{x}f(x) + \derivp[L_fh(x)]{x}g(x)u \\ & = L^2_fh(x) + L_gL_fh(x)u \intertext{Si $L_gL_fh(x) \neq 0$, alors $r=2$. Sinon on continue...} - y^{(r)} & = L_f^rh(x) + L_gL_f^{r-1}h(x)u - \intertext{On a $1 \leq r \leq n$ car la procédure utilise la base canonique ($x_1=y,x_2=\dot{y}$) : la commande doit apparaître au maximum à la $n$-ième dérivée.} - \intertext{On pose $v=y^{(r)} = L_f^rh(x) + L_gL_f^{r-1}h(x)u$} - u & = (L_gL_f^{r-1}h(x))^{-1}(v-L_f^rh(x)) + y^{(r)} & = L_f^rh(x) + L_gL_f^{r-1}h(x)u \end{align*} + \begin{rem} + On a $1 \leq r \leq n$ car la procédure utilise la base canonique ($x_1=y,x_2=\dot{y}$) : la commande doit apparaître au maximum à la $n$-ième dérivée. +\end{rem} + + On pose $v=y^{(r)} = L_f^rh(x) + L_gL_f^{r-1}h(x)u \ne 0$ Alors: + \[ + u = (L_gL_f^{r-1}h(x))^{-1}(v-L_f^rh(x)) + \] + \[ u = \alpha(x) + \beta(x)v , \text{ avec } \begin{cases} @@ -51,9 +65,9 @@ La nouvelle entrée de commande est $v$ telle que $u = \alpha(x) + \beta(x)v$ est le bouclage linéarisant statique car à un instant fixé, la linéarisation ne dépend que de $x$ à cet instant.\\ -\underline{Cas $r=n$} +\subsubsection{Cas $r=n$} -\begin{multicols}{2} +\begin{minipage}[t]{0.5\linewidth} Choix de la base : \begin{align*} z_1 & = y = h(x) \\ @@ -62,58 +76,82 @@ z_3 & = \ddot{y} = L_g^2h(x) \Rightarrow \dot{z_2} = z_3 \\ \vdots \\ y^{(n)} & = \dot{z_n} = L_f^nh(x) + L_gL_f^{n-1}h(x)u = v \end{align*} - -Nouveau modèle : +\end{minipage} +\begin{minipage}[t]{0.5\linewidth} +Nouveau modèle : \begin{align*} \dot{z_1} & = z_2 \\ -\vdots \\ + &\vdots \\ + &\vdots\\ \dot{z_{n-1}} & = z_n \\ \dot{z_n} & = a(z) + b(z)u = v \end{align*} -donc \[ u = \frac{v-a(z)}{b(z)} \text{ avec } b(z) \neq 0 \] -\end{multicols} +\end{minipage} +On a donc la commande suivante :\[ u = \frac{v-a(z)}{b(z)} \text{ avec } b(z) \neq 0 \] +Qui nécessite le changement de base des variables d'états : \[ z = \phi(x) = \vect{\phi_1(x) \\ \vdots \\ \phi_n(x)} = \vect{ h(x) \\ L_fh(x) \\ \vdots \\ L_f^{n-1}h(x)} \] \[ u = \alpha(x)+\beta(x)v \text{ avec } \alpha(x) = -\frac{a(z)}{b(z)}|_{z=\phi(x)} \text{ et } \beta(x) = \frac{1}{b(z)}|_{z=\phi(x)} \] -Schéma blocs : -%\img{0.5}{5/2} +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{5/2.png} + \caption{Forme normale} +\end{figure} -Modèle linéaire : +\subsubsection{Cas $r<n$} + +\begin{align*} + z_1 &= y\\ + z_2 &= \dot{z_1} \\ + & \vdots \\ + \dot{z_r} &= L_g^rh+L_gL_f^{r-1}h u = v +\end{align*} +Alors on complete les variables d'état avec le vecteur$ \eta\in\R^{n-r}$ tel que: \[ -\begin{cases}\dot{z} & = Az + Bv \\ y & = Cz \end{cases} \text{ avec } A = \left[ \begin{array}{ccccc} -0 & 1 & 0 & \dots & 0 \\ -\vdots & \ddots & \ddots & \ddots & \vdots \\ -\vdots & & \ddots & \ddots & 0 \\ -0 & \dots & \dots & 0 & 1 \\ -0 & \dots & \dots & \dots & 0 -\end{array} \right], \quad B = \vect{ 0 \\ \vdots \\ 0 \\ 1 } \text{ et } C = [1 \quad 0 \dots 0 ] + \dot{\eta}=q(\eta,z,v,\dot{v},...) \] - -Synthèse du correcteur linéaire : -%\img{0.5}{5/3} - -Planification de trajectoire : -\[ y^{(n)} = v = y_c^{(n)} + a_1 (y_v^{n-1)} - y^{(n-1)})+ \dots + a_{n-1}(\dot{y_c} - \dot{y}) + a_n(y_c-y) \] - -Les $a_i$ sont choisis en imposant la dynamique de $\epsilon=y-y_c$ : -\[ \epsilon^{(n)} + a_1 \epsilon^{(n-1)} + \dots + a_{n-1}\dot{\epsilon} + a_n\epsilon = 0 \] - -Matrice d'évolution de la boucle fermée : -\[ A_{BF} = \left[ \begin{array}{ccccc} -0 & 1 & 0 & \dots & 0 \\ -\vdots & \ddots & \ddots & \ddots & \vdots \\ -\vdots & & \ddots & \ddots & 0 \\ -0 & \dots & \dots & 0 & 1 \\ --a_n & -a_{n-1} & \dots & \dots & -a_1 -\end{array} \right] \quad \text{Forme canonique} -\] - \begin{rem} -Cette méthode est assez simple. Cependant, il faut accéder aux dérivées successives de la sortie. Si on a des capteurs, alors OK, mais calculer une dérivée numérique n'est pas génial. +La dynamique de $\eta$ n'est pas linéaire (contrairement à $z$), pour appliquer la commande désirée il faut s'assurer que la dynamique de $\eta$ est stable car elle sera non observable par $y$. + +On peux faire une analogie avec la compensation de pôles, qui n'est possible que si le pôle compensé est stable. En cachant la dynamique associée à ses poles ils ne sont plus observables \end{rem} -\subsection*{Linéarisation entrée-états} +\begin{rem}\emph{ À clarifier } +Ainsi on défini la dynamique des zéros. Le système commandé est en régime stationnaire : +\[ +\dot{v}=0 y=0 .. +\] +La dynamique des zéro est celle $\dot{\eta} =q(\eta,0,v)$. Puisque la commande est linéaire on aussi prendre $v=0$ +\subsection{Dynamique des zéros} +\begin{defin} +C'est la dynamique interne pour une sortie identiquement nulle. +Ainsi, $y = 0 = z_1 \Rightarrow \dot{z_1} = \dot{z_2} = \dot{z_r} = v = 0$ et $u = -\frac{a(z)}{b(z)}$ + +La dynamique restante +\begin{align*} +&\left\lbrace +\begin{array}{cc} +\dot{z_{r+1}} & = q_{r+1}(z) \\ +\vdots \\ +\dot{z_n} = q_n(z) +\end{array}\right. \text{ où } z = (0,z_{r+1},\dots z_n)^T = (0,\text{ et }a)^T\\ +& \left\lbrace +\begin{array}{cc} +\dot{\eta_1} & = q_{r+1}(0,\eta) \\ +\vdots \\ +\dot{\eta_{n-r}} & = q_n(0,\eta) +\end{array} \right. \text{ avec } u = \frac{-a(0,\eta)}{b(0,\eta)} +\end{align*} + +\end{defin} + +\begin{rem} +Si $r<n$, le système comporte une dynamique des zéros. Dans le cas ou la dynamique des zéros est instable, on peux chercher à trouver une transformation pour linéariser le modèle entrée-états. +\end{rem} + + +\subsection{Linéarisation entrée-états} On ne dispose pas d'une sortie $y=h(x)$ donc on essaye de trouver une sortie "fictive".\\ @@ -122,9 +160,16 @@ Problème : trouver le bon changement de base $z_1 = \phi_1(x)$ qui remplace $z_ $\phi$ est un difféomorphisme, i.e. bijectif et différentiable, de même pour la réciproque.\\ -\begin{defin} -Le système $\dot{x} = f(x) + g(x)u$ (1) est linéarisable entrée-états si il existe une région $\Omega \in \R^n$, un difféomorphisme $\phi:\Omega\rightarrow\R^n$ et un retour d'état $u=\alpha(x) + \beta(x)v$ tels que le nouveau vecteur d'état est $z=\phi(x)$ et la nouvelle entrée est $v$ avec $\dot{z} = Az+Bv$, $A$ matrice d'évolution $\in \R^{m \times n}$. -\end{defin} +\begin{thm} + Le système $\dot{x} = f(x) + g(x)u$ (1) est \emph{linéarisable entrée-états} si + \begin{itemize} + \item il existe une région $\Omega \in \R^n$, un difféomorphisme $\phi:\Omega\rightarrow\R^n$ + \item et un retour d'état $u=\alpha(x) + \beta(x)v$ tels que le nouveau vecteur + d'état est $z=\phi(x)$ + \item et la nouvelle entrée est $v$ avec $\dot{z} = Az+Bv$, + où $A$ est la matrice d'évolution $\in \R^{m \times n}$. +\end{itemize} +\end{thm} En s'inspirant de la linéarisation entrée-sortie, on simplifie la recherche de $\phi(x)$ par celle de $\phi_1(x)=z_1$ et le reste des transformations est obtenu par la forme canonique (forme normale). @@ -150,8 +195,8 @@ $\begin{cases} L_g L_f^{n-1} \phi_1(x) & \neq 0 \\ \end{cases} $ ? -\begin{defin}[Distribution de champs de vecteurs] -L'application $\Delta(x)$ est une distribution de champs de vecteurs sur $\Omega$ si $\forall x \in \Omega, \Delta(x)$ est un sous-espace vectoriel. +\begin{defin} +L'application $\Delta(x)$ est une\emph{ distribution de champs de vecteurs} sur $\Omega$ si $\forall x \in \Omega, \Delta(x)$ est un sous-espace vectoriel. \end{defin} \begin{exemple} @@ -268,32 +313,6 @@ z_2 & = L_f \phi_1 = CAx \\ \end{align*} \end{rem} -\subsection{Dynamique des zéros} -\begin{defin} -C'est la dynamique interne pour une sortie identiquement nulle. -Ainsi, $y = 0 = z_1 \Rightarrow \dot{z_1} = \dot{z_2} = \dot{z_r} = v = 0$ et $u = -\frac{a(z)}{b(z)}$ - -La dynamique restante -\begin{align*} -&\left\lbrace -\begin{array}{cc} -\dot{z_{r+1}} & = q_{r+1}(z) \\ -\vdots \\ -\dot{z_n} = q_n(z) -\end{array}\right. \text{ où } z = (0,z_{r+1},\dots z_n)^T = (0,\text{ et }a)^T\\ -& \left\lbrace -\begin{array}{cc} -\dot{\eta_1} & = q_{r+1}(0,\eta) \\ -\vdots \\ -\dot{\eta_{n-r}} & = q_n(0,\eta) -\end{array} \right. \text{ avec } u = \frac{-a(0,\eta)}{b(0,\eta)} -\end{align*} - -\end{defin} - -\begin{rem} -Si $r<n$, le système comporte une dynamique des zéros. -\end{rem} \subsection{Système à déphasage minimal} \begin{defin}[Cas linéaire] @@ -327,7 +346,7 @@ Le degré relatif $r$ dans le cas MIMO est défini comme $r=r_1+\dots+r_p$ si $r \[ \exists j =1\dots m, L_{g_j}L_f^{r_i-1} h_i(x) \neq 0\] \end{defin} -\subsection{Procédure de linéarisation} +\subsubsection{Procédure de linéarisation} Sans perte de généralité, on pose $m=p$. Calculons les dérivées successives des sorties : \[ \vect{ y_1^{(r_1)} \\ \vdots \\ y_p^{(r_p)}} = @@ -795,3 +814,56 @@ Ainsi on vérifie la condition d'existence du régime glissant, alors quand la t %%% mode: latex %%% TeX-master: "main" %%% End: + + + +% A refaire complètement avant entree-état +% \subsubsection{Modèle linéaire :} +% \[ +% \begin{cases} +% \dot{z} & = Az + Bv \\ +% y & = Cz +% \end{cases} +% \text{ avec } +% A = \left[ +% \begin{array}{ccccc} +% 0 & 1 & 0 & \dots & 0 \\ +% \vdots & \ddots & \ddots & \ddots & \vdots \\ +% \vdots & & \ddots & \ddots & 0 \\ +% 0 & \dots & \dots & 0 & 1 \\ +% -a_0 & \dots & \dots & \dots & -a_{n-1} +% \end{array} \right], +% \quad B = \vect{ 0 \\ \vdots \\ 0 \\ 1 } +% \text{ et } C = [1 \quad 0 \dots 0 ] +% \] + + + + +% Synthèse du correcteur linéaire : +% % \img{0.5}{5/3} +% \begin{figure}[H] +% \centering +% \includegraphics[width=0.7\textwidth]{5/3.png} +% \caption{} +% \end{figure} + +% Planification de trajectoire : +% \[ y^{(n)} = v = y_c^{(n)} + a_1 (y_v^{n-1)} - y^{(n-1)})+ \dots + a_{n-1}(\dot{y_c} - \dot{y}) + a_n(y_c-y) \] + +% Les $a_i$ sont choisis en imposant la dynamique de $\epsilon=y-y_c$ : +% \[ \epsilon^{(n)} + a_1 \epsilon^{(n-1)} + \dots + a_{n-1}\dot{\epsilon} + a_n\epsilon = 0 \] + +% Matrice d'évolution de la boucle fermée : +% \[ A_{BF} = \left[ \begin{array}{ccccc} +% 0 & 1 & 0 & \dots & 0 \\ +% \vdots & \ddots & \ddots & \ddots & \vdots \\ +% \vdots & & \ddots & \ddots & 0 \\ +% 0 & \dots & \dots & 0 & 1 \\ +% -a_n & -a_{n-1} & \dots & \dots & -a_1 +% \end{array} \right] \quad \text{Forme canonique} +% \] + +% \begin{rem} +% Cette méthode est assez simple. Cependant, il faut accéder aux dérivées successives de la sortie. Si on a des capteurs, alors OK, mais calculer une dérivée numérique n'est pas génial. +% \end{rem}