424 cours 21/03
This commit is contained in:
parent
5aeb2021b4
commit
1e42bf08bd
2 changed files with 178 additions and 99 deletions
|
@ -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}
|
||||
\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}
|
||||
|
|
|
@ -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*}
|
||||
|
||||
\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}
|
||||
|
|
Loading…
Reference in a new issue