2019-04-24 00:14:46 +02:00
\documentclass [10pt,a4paper,notitlepage] { article}
\usepackage [utf8] { inputenc}
\usepackage [french] { babel}
\usepackage [T1] { fontenc}
\usepackage { mathtools}
\usepackage [left=2cm,right=2cm,top=2cm,bottom=2cm] { geometry}
\usepackage { graphicx}
\usepackage { float}
\usepackage { subcaption}
\usepackage { tikz}
\addto { \captionsfrench } { \renewcommand { \abstractname } { Introduction} }
2019-04-30 11:17:51 +02:00
\author { Pierre-Antoine Comby}
2019-04-24 00:14:46 +02:00
\title { TP1 : Commande d'un bras à liaison flexible par bouclage linéarisant}
\input { /home/pac/Scripts/Raccourcis.tex}
\renewcommand { \R } { \mathbb { R} }
\renewcommand { \Z } { \mathbb { Z} }
\renewcommand { \vec } { \overrightarrow }
\begin { document}
\maketitle
\section { Modélisation}
\begin { figure} [ht]
\centering
\begin { subfigure} { 0.5\linewidth }
\begin { tikzpicture}
\node [draw,circle] (O) at (0,-2) { } ;
\node [draw,circle] (A) at (-3,0) { } ;
\node [draw,circle] (B) at (3,0) { } ;
\node [draw,circle] (P) at (0,5) { } ;
\draw [very thick] (O) -- (P) node[midway,right]{ R} (A)--(P)node[midway,left]{ $ L _ 1 $ } (B)--(P)node[midway,right]{ $ L _ 2 $ } ;
\draw [latex-latex] (O) -- ++(3,0) node[midway,above]{ $ r $ } ;
\draw [latex-latex] (B) -- ++(0,-2) node[midway,right]{ $ d $ } ;
\end { tikzpicture}
\subcaption { Bras en position stationnaire}
\end { subfigure} %
\begin { subfigure} { 0.5\linewidth }
\begin { tikzpicture}
\node [draw,circle] (O) at (0,-2) { } ;
\node [draw,circle] (A) at (-3,0) { } ;
\node [draw,circle] (B) at (3,0) { } ;
\node [draw,circle] (P) at (-1,5) { } ;
\node [below=0.7em] at (O) { O} ;
\node [left=0.7em] at (P) { P} ;
\draw [very thick] (O) -- (P) node[midway,right]{ R} (A)--(P)node[midway,left]{ $ L _ 1 $ } (B)--(P)node[midway,right]{ $ L _ 2 $ } ;
\draw [latex-latex] (O) -- ++(3,0) node[midway,above]{ $ r $ } ;
\draw [latex-latex] (B) -- ++(0,-2) node[midway,right]{ $ d $ } ;
\draw [dashed,latex-latex] (B) -- ++(0,5) node[midway,right]{ $ L _ { 2 y } = L _ { 1 y } $ } ;
\draw [dashed,latex-latex] (P) -- ++(4,0) node[midway,above]{ $ L _ { 2 x } $ } ;
\draw [dashed,latex-latex] (A) -- ++(2,0) node[midway,below]{ $ L _ { 1 x } $ } ;
\draw [dashed] (A) ++(2,0) -- (P);
\draw [dashed] (O) -- ++(0,2.2);
\draw (O)++(0,2) arc(90:98:2)node[midway,above]{ $ \psi $ } ;
\draw (B) ++ (0,1) arc (90:130:1) node[midway,above]{ $ \theta _ 2 $ } ;
\draw (P) ++ (0,-1) arc (-90:-113:1) node[midway,below]{ $ \theta _ 1 $ } ;
\end { tikzpicture}
\subcaption { Bras en mouvement}
\end { subfigure}
\caption { Schéma cinématique du système}
\label { fig:label}
\end { figure}
\paragraph { Prépa.1}
À partir de la figure on a :
\begin { align*}
L_ { 1x} & = r - \sin (\psi )R \\
L_ { 2x} & = r + \sin (\psi )R \\
L_ { 1y} & = R\cos (\psi ) - d
\end { align*}
\paragraph { Prépa.2} On a par définition:
\begin { align*}
F_ 1 & = -k (L_ 1-L)
F_ 2 & = -k (L_ 2-L)
\end { align*}
On introduit les angles $ \theta _ 1 $ et $ \theta _ 2 $ tel que :
\[
\tan (\theta _ 1) =\frac { L_ { 1x} } { L_ { 1y} } \text { et } \tan (\theta _ 2) =\frac { L_ { 2x} } { L_ { 2y} }
\]
Alors on a pour $ F _ 1 $ :
\begin { align*}
F_ { 1y} = F_ 1 \cos (\theta _ 1) & = F_ 1 \frac { 1} { \sqrt { 1+\tan ^ 2(\theta _ 1)} } \\
& = F_ 1 \frac { 1} { \sqrt { 1+\left (\frac { L_ { 1x} } { L_ { 2y} } \right )^ 2} } \\
& = k\left (\sqrt { L_ { 1x} ^ 2+L_ { 1y} ^ 2} -L\right ) \frac { L_ { 1y} } { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} } \\
& = k L_ { 1y} \left (1- \frac { L} { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} } \right )
\end { align*}
et :
\begin { align*}
F_ { 1x} & = F_ 1 \sin (\theta _ 1)\\
& = F_ 1 \cos (\theta _ 1)\tan (\theta _ 1) \\
& = k L_ { 1y} \left (1- \frac { L} { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} } \right ) \frac { L_ { 1x} } { L_ { 1y} } \\
& = k L_ { 1x} \left (1- \frac { L} { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} } \right )
\end { align*}
On a les mêmes relations pour $ F _ 2 $ soit:
\[
F_ { 2x} = k L_ { 2x} \left (1- \frac { L} { \sqrt { L_ { 2y} ^ 2+L_ { 2x} ^ 2} } \right ) \text { et }
F_ { 2y} = k L_ { 2y} \left (1- \frac { L} { \sqrt { L_ { 2y} ^ 2+L_ { 2x} ^ 2} } \right )
\]
Et alors :
\[
\vec { F_ 1} = \vect { -F_ { 1x} \\ -F_ { 1y} } \text { et } \vec { F_ 2} = \vect { F_ { 2x} \\ -F_ { 2y} }
\]
\paragraph { Prépa.3}
À partir des expression cartésiennes des forces on a le moment :
\[
\vec { \mathcal { M} _ { 0} } (\vec { F} ) =\vec { OP} \wedge (\vec { F_ 1} + \vec { F_ 2} )=
\vect { R\sin \psi \\ R\cos \psi \\ 0} \wedge \vect { F_ { 2x} -F_ { 1x} \\ F_ { 2y} -F_ { 1y} \\ 0} = M \vec { u_ z}
\]
Soit :
\[
M = R\cos \psi (F_ { 2x} -F_ { 1x} ) -R\sin \psi (F_ { 2y} -F_ { 1y} )
\]
\paragraph { Prépa.4}
On a :
\[
F_ { 2x} -F_ { 1x} = 2kR\sin \psi + krL \left (
\underbracket { \frac { 1} { \sqrt { L_ { 2y} ^ 2+L_ { 2x} ^ 2} } - \frac { 1} { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} } } _ { \Delta }
\right )
- k\sin \psi RL \left (\underbracket {
\frac { 1} { \sqrt { L_ { 2y} ^ 2+L_ { 2x} ^ 2} } + \frac { 1} { \sqrt { L_ { 1y} ^ 2+L_ { 1x} ^ 2} }
} _ { \Sigma } \right )
\]
En effectuant à l'orde 1 sur $ \Sigma $ et $ \Delta $ on a:
\[
\Delta = \frac { r\psi R} { ((R-d)^ 2+r^ 2)^ { 3/2} } \text { et } \Sigma = \frac { 2} { \sqrt { (R-d)^ 2+r^ 2} }
\]
soit :
\[
F_ { 2x} -F_ { 1x} \simeq 2 k R \psi + \psi \frac { kr^ 2RL } { ((R-d)^ 2+r^ 2)^ { 3/2} } - 2k\psi RL \frac { 1} { \sqrt { (R-d)^ 2+r^ 2} } = \psi K_ x
\]
Avec
\[
K_ x = 2kR + \frac { kr^ 2RL} { ((R-d)^ 2+r^ 2)^ { 3/2} } -\frac { 2kRL} { \sqrt { (R-d)^ 2+r^ 2} }
\]
On fait de même pour $ F _ { 2 y } - F _ { 1 y } $ soit :
\[
F_ { 2y} -F_ { 1y} = kR(\cos \psi -d)L \Delta = \frac { kR^ 2(1-d)Lr} { ((R-d)^ 2+r^ 2)^ { 3/2} } \psi =K_ y \psi
\]
enfin :
\[
M = RK_ x\psi + RK_ y\psi ^ 2
\]
Au premier ordre on a :
\[
M = \underbracket { R \left (2kR + \frac { kr^ 2RL} { ((R-d)^ 2+r^ 2)^ { 3/2} } -\frac { 2kRL} { \sqrt { (R-d)^ 2+r^ 2} } \right )} _ { K_ s} \psi
\]
\paragraph { Prépa.5}
Pour le système \{ plateforme + bras\} on a l'énergie cinétique:
\[
E_ c= \frac { 1} { 2} (J_ b+J_ p)\dot { \alpha } ^ 2+ \frac { 1} { 2} \dot { \psi } ^ 2
\]
\paragraph { Prépa.6}
Avec l'ensemble de la masse regroupé à son centre de gravité on a a : l'énergie potentielle de \{ plateforme + bras\} suivante :
\[
E_ p = mgh\cos (\alpha +\psi )
\]
\paragraph { Prépa.7}
On rappel l'expression générale des equations d'Euler-Lagrange:
\[
\deriv { t} \derivp [E_c] { \dot { q_ i} } -\derivp [E_c] { q_ i} =Q_ i
\]
Avec $ q _ i $ coordonnée généralisée et $ Q _ i $ la forcé généralisé associée à $ q _ i $ ( qui regroupe energie potentielle dérivée suivant $ q _ i $ et les forces s'exercant au système)
On choisit $ \alpha $ et $ \psi $ comme coordonnée généralisée (système à deux degrès de liberté). Le système est commandé par la MCC, qui exerce un couple $ N \phi i $ :
\[
\begin { cases}
J_ b(\ddot { \alpha } +\ddot { \psi } )+K_ s\psi - mgh \sin (\alpha +\psi ) & = 0 \\
J_ b(\ddot { \alpha } + \ddot { \psi } )+J_ p\ddot { \alpha } -mgh\sin (\alpha +\psi ) & = N\phi i
\end { cases}
\]
\paragraph { Prépa.8}
À partir de l'équation électrique :
\[
u =Ri + L \deriv [i] { t} + \phi \omega _ m
\]
On pose $ \tau _ e = \frac { L } { R } = 69 . 2 \mu s $ constante de temps électrique du moteur.
\paragraph { Prépa.9} On a $ \tau _ e \ll \tau = 17 ms $ on peux donc négliger l'effet inductif dans l'équation électrique et alors:
\[
i = \frac { u -\phi \omega _ m} { R} = \frac { u-\phi N \dot { \alpha } } { R}
\]
\paragraph { Prépa.10} Avec le rapport de transformation $ N $ on a:
\[
\omega _ m = N \dot { \alpha }
\]
\paragraph { Prépa.11}
À partir des équations de Lagrange et des équations du moteur électrique on a : le modèle d'état suivant :
\[
\begin { cases}
\dot { x_ 1} & = x_ 3\\
\dot { x_ 2} & = x_ 4 \\
\dot { x_ 3} & = \frac { K_ s} { J_ p} x_ 2- \frac { (N\phi )^ 2} { RJ_ p} x_ 3+ \frac { N\phi } { RJ_ p} u \\
\dot { x_ 4} & = -\frac { K_ s} { J_ p} x_ 2+ \frac { (N\phi )^ 2} { RJ_ p} x_ 3- \frac { N\phi } { RJ_ p} u -\frac { K_ s} { J_ b} x_ 2 +\frac { mgh} { J_ b} \sin (x_ 1+x_ 2) \\
y & = x_ 1+x_ 2
\end { cases}
\]
On a donc les matrices d'états suivantes:
\[
\vect { \dot { x_ 1} \\ \dot { x_ 2} \\ \dot { x_ 3} \\ \dot { x_ 4} } =
\begin { bmatrix}
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
0 & \frac { K_ s} { J_ p} & -\frac { (N\phi )^ 2} { RJ_ p} & 0 \\
0 & - K_ s\frac { J_ p+J_ b} { J_ bJ_ p} & +\frac { (N\phi )^ 2} { RJ_ p} & 0
\end { bmatrix}
\cdot \vect { x_ 1 \\ x_ 2\\ x_ 3 \\ x_ 4}
+
\begin { bmatrix}
0 & 0\\
0 & 0\\
\frac { N\phi } { RJ_ p} & 0\\
-\frac { N\phi } { RJ_ p} & 1\\
\end { bmatrix}
\vect { u \\ \frac { mgh} { J_ b} \sin (x_ 1+x_ 2)}
\]
\section { Commande en boucle fermé}
\paragraph { Manip.1}
On réalise le modèle d'état dans simulink
\begin { figure} [ht]
\centering
\includegraphics [width=0.7\textwidth] { modeleNL_ schema.png}
\caption { Modèle d'état simulé}
\label { fig:label}
\end { figure}
En excitant le modèle avec un echelon on obtient :
\begin { figure} [ht]
\centering
\includegraphics [width=0.7\textwidth] { modeleNL.png}
\caption { Variable d'états en sortie du modèle}
\label { fig:label}
\end { figure}
La simulation correspond au modèle attendu (on commande le systeme en position), il est stable mais non précis, de plus les dérivées sont assez chaotiques.
\paragraph { Prépa.12}
À partir de la sortie $ y $ il faut dérivé 4 fois pour que la commande $ u $ apparaisse. on a donc
\begin { align*}
z_ 1 & = y \\
z_ 2 = \dot { z_ 1} & = \dot { x_ 1} +\dot { x_ 2} = x_ 3+ x_ 4 \\
z_ 3 = \dot { z_ 2} & = \dot { x_ 3} +\dot { x_ 4} \\
& = \frac { K_ s} { J_ b} x_ 2+\frac { mgh} { J_ b} \sin (x_ 1+x_ 2)\\
z_ 4 = \dot { z_ 3} & = \frac { -K_ s} { J_ b} x_ 4+\frac { mgh} { J_ b} (x_ 3+x_ 4)\cos (x_ 1+x_ 2)\\
\dot { z_ 4} & = \frac { -K_ s} { J_ b} \left (
-K_ s\frac { (J_ b+J_ p)} { J_ pJ_ b} + \frac { (N\phi )^ 2)} { RJ_ p} x_ 3 - \frac { N\phi } { RJ_ p} u +\frac { mgh} { J_ b} \sin (x_ 1+x_ 2)
\right )\\
& +
\frac { mgh} { J_ b} \left (\frac { -K_ s} { J_ b} x_ 2+\frac { mgh} { J_ b} \sin (x_ 1+x_ 2)
\right )\cos (x_ 1+x_ 2) -
\frac { mgh} { J_ b} (x_ 3+x_ 4)^ 2\sin (x_ 1+x_ 2)
\end { align*}
On pose donc $ v = \dot { z _ 4 } $ .
\paragraph { Prépa.13}
On a fais les calculs en Prépa.13 , on peux donc réaliser le schéma bloc suivant :
\begin { figure} [H]
\centering
\begin { tikzpicture}
\begin { scope} [at={ (0,0)} ]
\node [draw, minimum height=1cm] (C) at (0,0) {
\begin { tabular} [c]{ c}
Synthèse \\ de la commande
\end { tabular}
} ;
\node [draw, minimum height=1cm] (S) at (3.5,0) { $ \dot { x } = f ( x ) + g ( x ) u $ } ;
\node [draw, minimum height=1cm] (N) at (7,0) { $ z = \Phi ( x ) $ } ;
\draw [-latex] (-2,0) -- (C.west) node[near start,above]{ $ v $ } ;
\draw [-latex] (C.east) -- (S.west) node[near start, above]{ $ u $ } ;
\draw [-latex] (S.east) -- (N.west);
\draw [-latex] (N.east) -- ++(1,0) node[above left]{ $ y $ } ;
\draw [-latex] (N.south) |- ++(-2,-1) node[near start,right]{ $ x $ } -| (C.south);
\end { scope}
\node at (3,-2.5){ \Large $ \Updownarrow $ } ;
\begin { scope} [shift={ (0,-4)} ]
\node [draw, minimum height=1cm] (I1) at (0,0) { $ \int $ } ;
\node [draw, minimum height=1cm] (I2) at (2,0) { $ \int $ } ;
\node [draw, minimum height=1cm] (I3) at (5,0) { $ \int $ } ;
\draw [-latex] (-2,0) -- (I1.west) node[near start, above]{ $ v $ } ;
\draw [-latex] (I1.east) -- (I2.west) node[near start, above]{ $ z _ n $ } ;
\draw [-latex] (I2.east) -- ++(1,0) node[midway,above]{ $ z _ { n - 1 } $ } ;
\draw [-latex,dashed] (I2.east)++(1,0) -- (I3.west) node[near end, above]{ $ z _ { 2 } $ } ;
\draw [-latex] (I3.east) -- ++(2,0) node[near end, above]{ $ z _ 1 = y $ } ;
\end { scope}
\end { tikzpicture}
\caption { Forme normale}
\end { figure}
\paragraph { Manip.2}
Pour réaliser le bouclage linéarisant, on utilise le fichier transmis au cours de TP au groupe (mon implémentation ne donnait pas de résultat attendu malgré les nombreux réglages effectués).
\begin { figure} [ht]
\centering
\includegraphics [width=0.7\textwidth] { BLin.png}
\caption { Sortie du modèle et du bouclage}
\label { fig:label}
\end { figure}
Les sorties issues du modèle non linéaire et du changement de variable sot identique, on a bien $ y = z _ 1 $ .
2019-04-30 11:17:51 +02:00
\paragraph { Conclusion}
2019-04-24 00:14:46 +02:00
2019-04-30 11:17:51 +02:00
Dans ce TP on a mis en place une modélisation non linéaire d'un
système et utiliser une bouclage linéarisant pour pouvoir construire
un asservissement précis et rapide. Par manque de temps je n'ai pas pu
mettre en place la dernière partie concernant la planification de
trajectoire, qui sera par ailleurs étudié dans le TP2.
2019-04-24 00:14:46 +02:00
\end { document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: