Finalisation du cours de 424

This commit is contained in:
Pierre-antoine Comby 2019-04-16 11:14:40 +02:00
parent 1b861ecfe8
commit 9bcac99732
4 changed files with 242 additions and 75 deletions

View file

@ -511,8 +511,30 @@ Même démarche pour les degrés supérieurs de la poursuite asymptotique.
\end{itemize}
\begin{figure}[ht]
\centering
\includegraphics[width=0.9\textwidth]{6/1.png}
\caption{ }
\begin{tikzpicture}
\sbEntree{Yc}
\sbComp{C}{Yc}
\sbRelier[$y_c$]{Yc}{C}
\sbBlocL{P}{
\begin{tabular}{c}
Commande \\ pour la \\ poursuite
\end{tabular}
}{C}
\sbBlocL[4]{I1}{$\displaystyle\int$}{P}
\sbBlocL{I2}{$\displaystyle\int$}{I1}
\node[above] at (P-I1) {$u^{(m-r)}$};
\node[above] at (I1-I2) {...};
\sbBlocL{NL}{
\begin{tabular}{c}
Système \\ N.L
\end{tabular}
}{I2}
\sbSortie{Y}{NL}
\sbRelier[$y$]{NL}{Y}
\sbRenvoi{NL}{P}{}
\sbRenvoi[6]{NL-Y}{C}{}
\end{tikzpicture}
\caption{Commande par bouclage linéarisant}
\label{fig:label}
\end{figure}
La difficulté de la poursuite asymptotique est la résolution de l'équation dynamique NL
@ -572,10 +594,7 @@ Le système est plat où $q\in\R^n$ sont les sorties plates.\\
La planification de trajectoire est réalisée sur les $q$, puis $u=K^{-1}(q,\dot{q})(M(q)\dot{q} + B(q,\dot{q}))$\\
Commande en cassecade \footnote{Momo m'a tuer} :
%\imgt{7/1}
On a la commande en cascade:
\[ C_0(p) = K >>1, \quad H_0(p) = \frac{H_1(p)}{1+KH_1(p)} \approx \frac{1}{K} \]
\end{exemple}
\end{document}
@ -584,56 +603,3 @@ Commande en cassecade \footnote{Momo m'a tuer} :
%%% 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}

View file

@ -17,7 +17,7 @@ On suppose que $0 < \epsilon \ll 1$. et on pose $\tau = \epsilon t$, alors $\ta
\dd{x_1}{\tau} & = f_1(x_1,x_2,u) ~~\text{ Dynamique lente et d'ordre 0 en } 1/\epsilon \\
\dd{x_2}{\tau} & = \frac{1}{\epsilon} f_2(x_1,x_2,u) \text{ Dynamique rapide et d'ordre 1 en }1/\epsilon
\end{align*}
\begin{prop}
Ainsi, dans le cas d'un point d'équilibre stable, $x_2$ converge plus rapidement vers $\Sigma_0$ que $x_1$ vers $\Sigma_\epsilon$ avec :
\[
\begin{cases}
@ -25,8 +25,9 @@ Ainsi, dans le cas d'un point d'équilibre stable, $x_2$ converge plus rapidemen
\Sigma_\epsilon = \{(x_1,x_2,u) ~~|~~ f_1(x_1,x_2,u)=0 \text{ et }f_2(x_1,x_2,u)=0 \} \subset \Sigma_0
\end{cases}
\]
\end{prop}
\begin{rem}
La variété $\Sigma_\epsilon$ dégènre en $\Sigma_0$ pour $\epsilon \to 0$.
La variété\footnote{Une variété est un objet mathématique, courbes :variété de dimension 1, surface :variété de dimension 3} $\Sigma_\epsilon$ dégènre en $\Sigma_0$ pour $\epsilon \to 0$.
\end{rem}
\section{Détermination du voisinage}
@ -89,24 +90,25 @@ $C_r = -\frac{\dot{u}J}{k}$ est utilisée pour estimer $C_r$ en modulant $\dot{u
\section{Synthèse de commande hiérarchisante}
\subsection{Hiérarchisation par commande à grand gain}
\begin{defin}
Soit le système (1), où la commande n'intervient que sur $x_2$ linéairement :
\[
\begin{cases}
\dot{x_1} & = f_3(x_1,x_2) \\
\dot{x_2} & = f_2(x_1,x_2) + u \end{cases} , \quad x_1 \in \R^{n_1}, x_2 \in \R^{n_2}, u \in\R^{n_2}
\]
Ce système est de \emph{forme triangulaire}.
\end{defin}
Soit $x_2^*$ la trajectoire consigne à imposer à $x_2$. Avec comme hypothèse $f_2(x_1,x_2)$ bornée, nous appliquons la commande à grand gain
\[ u = -\frac{K}{\epsilon}(x_2-x_2^*)\]
$\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}
\left\{ \begin{array}{rll}
\dd{x_1}{\tau} & = \epsilon f_1(x_1,x_2) &\quad \text{dynamique lente}\\
\dd{x_2}{\tau} & = \epsilon f_2(x_1,x_2) - k(x_2-x_2^*) &\quad \text{perturbation et dynamique de convergence rapide}
\end{array}\right.
\]
$\Sigma_0$ est la variété $x_2 = x_2^*$.
@ -133,7 +135,6 @@ La dynamique lente est $\dd{x_1}{\tau} = \epsilon f_1(x_1,x_2^*)$. Par conséque
\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 \\
@ -142,6 +143,9 @@ Soit un système sous forme triangulaire (apparition successive des différentes
\dot{x_n} & = f_n(x_1,\dots x_n) + u
\end{align*}
On veut triuver $u$ pour imposer une poursuite asymptotique de $x_1$ vers $x_1^*$, pour cela on utilise une commande réalisée via la condition de Lyapunov. La méthode du backstepping synthétise la commande $u$ en plusieurs étapes avec une séparation dynamique pour simplifier le choix de $V(x)$.
\paragraph{Procédure de synthèse}
\paragraph{Étape 1} Afin d'imposer la consigne $x_1^*$, on utilise la fonction de Lyapunov
@ -150,12 +154,11 @@ 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}
\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^*$.
$x_2^*$ est une ``consigne fictive''. On doit faire tendre $x_2$ vers $x_2^*$ asymptotiquement et plus rapidement que $x_1$ vers $x_1^*$.
\paragraph{Étape 2} Faire converger $x_2$ vers $x_2^*$. On utilise la nouvelle fonction de Lyapunov
\[ V_2(x_1,x_2) = \frac{1}{2}(x_1-x_1^*)^2 + \frac{1}{2}(x_2-x_2^*)^2 \]
@ -168,10 +171,16 @@ On veut $\dot{V_2}(x_1,x_2)$ définie négative :
(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$ :
\paragraph{Étape n}
Meme démarche:
\[ u = \dot{x_n^*} - f_n(x_1,\dots,x_n) + \alpha_n(x_n-x_n^*) \]
avec $\alpha_n < \alpha_{n-1} < \dots < \alpha_2 < \alpha_1$
si $\alpha_n \ll \alpha_{n-1} \ll ... \ll \alpha_1$ alors:
$\dot{V}$ est obtneu par $f_n(x_1,...,x_n)+u-x_n^* = \alpha_n(x_n-x_n^*)$
\begin{rem}
Cette méthode est généralisable à des systèmes sans forme :
\begin{align*}
@ -182,7 +191,7 @@ Cette méthode est généralisable à des systèmes sans forme :
\end{align*}
sur $\mathcal{D} = \{x_1,\dots,x_n \text{ tq } g_1 \neq 0,\dots,g_n\neq 0 \}$
\end{rem}
Mais les méthodes sont alors peu robuste.
\section{Rejet de perturbation}
On suppose que le modèle st soumis à des perturbations.
@ -195,7 +204,6 @@ Même principe que pour la linéarisation par bouclage, on dérive la sortie par
On réalise le rejet de perturbations sur la relation entre le degré relatif associé à $u$ et $\sigma$ degré relatif associé à $w$.
\paragraph{Cas 1} $L_ph(x) \neq 0$\\
Si $L_gh(x) \neq 0$ et la perturbation $w$ est mesurable (rarement), alors le rejet de la perturbation est obtenu par
\[ u = (L_gh(x))^{-1}(v-L_fh(x) - L_ph(x)w) \quad \text{avec trivialement } v = \dot{y}\]

View file

@ -0,0 +1,190 @@
\documentclass[main.tex]{subfiles}
\begin{document}
On suppose que le modèle est soumis à des pertubations:
\[
\begin{cases}
\dot{x} = f(x) +g(x)u+p(x)w\\
y = h(x)
\end{cases}
\]
\begin{rem}
Si $w$ modélise des incertitudes de modèle, alors on suppose que les erreurs de modélisation n'implique pas d'instabilité, $w$ ne dépend pas de $x$.
\end{rem}
On applique au modèle le principe du bouclage linéarisant:
\[
y=h(x)=z_1\implies z_2\dot{z_1} = \dot{y} =h(x)
\]
Ainsi l'analyse sur le rejet de pertubation et réalisé sur la relation entre $r$ le degré relatif associé à $u$ et $\sigma$ le degré relatif associé à $w$.
\begin{itemize}
\item $r < \sigma$ : \\
Alors le bouclage linéraisant a rendu la pertubation non commandable
\item $r \ge \sigma$:\\
\begin{itemize}
\item Soit on peux mesurer $w$ pour atténuer son effet
\item Soit on modélise la pertubation, généralement sous forme canonique (ie $w^{(\alpha)}= 0$ , ou $\alpha$ est l'ordre). Pour avoir le cas $r<\sigma$ on réalise une observateur de pertubation et atténuer son effet.
\end{itemize}
\end{itemize}
\section{Rejet de pertubation via la commande par mode glissant}
\subsection{Exemple et Définitions}
Dans la commande par mode glissant on a $U = u_{eq}+u_y$ avec:
\begin{itemize}
\item $u_{eq}$ commande sans pertubation pour une poursuite asymptotique
\item $u_y$ commande à structure variable pour faire converger $x$ vers $x^*$.
\end{itemize}
\begin{exemple}
Onduleur de tension commandé en courant
\newsavebox{\genericfilt}
\savebox{\genericfilt}{%
\begin{tikzpicture}[font=\small,>=stealth,scale=0.5]
\draw[->] (-1,0)-- (1,0);
\draw[->] (0,-1)--(0,1);
\draw[thick] (-1,-0.7) -- (0.5,-0.7);
\draw[thick] (1,0.7) -- (-0.5,0.7);
\draw[thick] (0.5,-0.7) -- (0.5,0.7);
\draw[thick] (-0.5,-0.7) --(-0.5,0.7);
\end{tikzpicture}%
}
\begin{figure}[H]\centering
\begin{tikzpicture}
\begin{scope}
\begin{axis}
[axis lines= middle,
xmin= 0,xmax= 8,
ymin =-2,ymax=2,domain=0:8,
]
\addplot[no marks,blue,samples=200]{sin(deg(x))+0.1*sin(100*deg(x+1))};
\addplot[no marks,red]{sin(deg(x))};
\end{axis}
\end{scope}
\begin{scope}[shift={(7,3)}]
\sbEntree{I}
\sbComp{Comp}{I}
\sbRelier[$i_{ref}$]{I}{Comp}
\sbBlocL{N}{\usebox{\genericfilt}}{Comp}
\sbSortie{Y}{N}
\sbRelier[$y$]{N}{Y}
\sbDecaleNoeudy[4]{Comp}{i}
\sbRelier[$i$]{i}{Comp}
\end{scope}
\end{tikzpicture}
\caption{Exemple de l'onduleur de tension}
\end{figure}
Si la fréquence est infinie on a un mode glissant
\end{exemple}
\begin{defin}
Un système est à structure variable si la commande commute entre 2 valeurs suivant une logique $\sigma(x)$.
\end{defin}
\begin{prop}
$\sigma(x)$ permet de glisser sur $S(x,t)$ surface de glissement si la fréquence de commutation est infinie. On a :
\[
V(x) = \frac{1}{2}S(x,t)^2
\]
Soit :
\[
\dot{V}(x)= S(x,t)\dot{S}(x,t) <0 : \sigma(x)
\]
\end{prop}
Dans un régime glissant on est dans un voisinage de $S(x,t)=0$ et pour maintenir le glissement la logique de commutation $\sigma(x)$ vérifie :
\[
\lim_{S\to0^-} \dot{S} >0 \text{ et }\lim_{S\to0^+} \dot{S}>0
\]
\subsection{Application à la commande par mode glissant}
On utilise la méthode suivante
\begin{enumerate}
\item Choisir $S(x,t)$:
Généralement $S(x,t)$ est obtneu par la porusuite asymptotique de $y$ (sortie du système) vers $y_c$, en choisissant une dynamique de poursuite linéaire. Alors on pose :$\epsilon(t)= y_c(t) -y(t)$ erreur de poursuite. et on a:
\[
S(x,t) = \epsilon^{(m)}(t)+\beta_{m-1}\epsilon^{(m-1)}(t)+ ... +\beta_1 \epsilon^{(1)}(t)+\beta_0 \epsilon(t)
\]
Avec $\beta_i$ tel que $p^m+\beta_{m_1}p^{m-1}+ ... \beta_0$ est un polynome d'hurwitz\footnote{Racine à partie Réelle négatives}.
Généralement on prend :
\[
\left(
\deriv[]{t}+\lambda
\right)^m \epsilon(t)= 0 ,\lambda > 0
\]
\item Trouver $u_g$ qui réalise la logique $\sigma(x)$ tel que $u_g = W signe(S)$, avec $W> 0$. Ainsi on a :
\[
u = u_{eq}+u_g \text{ avec } \dot{S} = 0 \text{ pour } u_{eq}
\]
\end{enumerate}
\subsection{Application au bouclage linéarisant}
On pose $m= r-1$ (où $r$ est le degré relatif) Alors on a :
\begin{align*}
z_1 &= y = h(x) \\
\dot{z_1} &= z_2 \\
\dot{z_2} &= z_3 \\
& \vdots \\
\dot{z_r} &= v \\
\end{align*}
Avec
\[
u \frac{1}{L_gL_f^{r-1}}\left(
-L_f^r h(x)+\underbrace{y_c^{(r)}+\dot{S}+W.sgn(S)}_{v}
\right)
\]
Soit
\[
v = y^{(r)}+\dot{S} + W sgn(S)
\]
À cette forme on rajoute une perturbation ( du au erreur du modèle):
\begin{align*}
z_1 &= y = h(x) \\
\dot{z_1} &= z_2 \\
\dot{z_2} &= z_3 \\
& \vdots \\
\dot{z_r} &= y^{(r)} = v + \Delta \\
\end{align*}
Avec $|\Delta| < K $. Pour assurer la poursuite de trajectoire on veux $ y^{(r)}=y_c^{(r)}$ Ainsi: $\dot{S} = - W sgn(S) -\Delta$. On pose $W = K \alpha$.
\begin{itemize}
\item Si $S > 0 \implies \dot{S} < -K (\alpha-1) < 0 \implies S\dot{S} <0 $ avec $\alpha >1$.
\item Si $S<0 \implies \dot{S} = W - \Delta > K(\alpha-1) >0 \implies S\dot{S} > 0 $
\end{itemize}
On a le mode de glissement avec $u_g = W sgn(S) $. C'est pour cette raison qu'on prend $W_{sat} =
\begin{cases}
+U_{max}\\
-U_{max}
\end{cases}
$
\subsection{Commande par mode glissant - Récapitulatif}
On fabrique la commande suivante pour rejeter les pertubations:
\[
u = u_{eq} + u_g
\]
où :
\begin{itemize}
\item $u_{eq}$ est la commande sans pertubation ni incertitude sur le modèle.
\item $u_g = W sgn(S)$ la fréquence de variation de $u_g$ doit être très grande devant la dynamique de la poursuite.
\end{itemize}
Le problème de la discontinuité de $u$ dans les excitation des dynamiques du système. La solution est de réalisée la loi de commande sur $w= \dot{u}$, $u$ devient une variable d'état d'un\emph{ modèle augmenté}.
Sur le nouveau modèle on applique le mode glissant sur $w = w_{eq}+ w_g$
\end{document}
%%%Local Variables:
%%% mode: latex
%%% TeX-master: "main"
%%% End:

View file

@ -40,6 +40,9 @@
\subfile{chap7.tex}
\chapter{Commande hiérarchisée}
\subfile{chap8.tex}
\chapter{Rejet de pertubation et commande Robuste}
\subfile{chap9.tex}
\end{document}
%%% Local Variables: