TP4.tex 13.4 KB
Newer Older
Pierre-antoine Comby's avatar
Pierre-antoine Comby committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
\documentclass[../../Cours_M1.tex]{subfiles}
\newcommand{\nomTD}{TP4 : Asservissement par retour d'état}
\renewcommand{\nomentete}{UE421-\nomTD}
\renewcommand{\auteur}{Aymeric Arnould, Tom Colinot}
\newcommand{\z}{z^{-1}}

\title{TP4 : Asservissement de position d'un moteur à courant continu par retour d'état}
\author{\auteur}

\begin{document}
\maketitle

\section*{I/ Introduction}
Nous allons dans ce TP mener une première étude pour identifier le moteur considéré. Ensuite, nous mettrons en place une correction proportionnelle, afin de voir dans quelle mesure la correction par retour d'état permet un meilleur réglage des paramètres du système bouclé.


\section*{II/ Présentation du moteur}

\subsection*{Préparation 1}
\begin{itemize}\setlength{\itemsep}{10mm}
\item Le frottement sec est assimilable à une perturbation en couple constant. Ainsi, pour réduire son importance dans la modélisation, il faut essayer d'augmenter l'amplitude de la tension d'entrée, et donc du couple créé, pour que celui-ci soit prépondérant devant le frottement sec. Il faut toutefois conserver une tension d'entrée entre $\pm$ 10 V pour ne pas avoir de saturation.

\item \textbf{Détermination de $K_2$}

En boucle ouverte, la fonction de transfert relative à la tension image de la position est : 
\[\frac{V_{\theta}(p)}{U(p)} = \frac{K_2}{p(1+\tau p)} = \frac{K_2}{p}-\frac{K_2\tau}{1+\tau p}\]
On en déduit la réponse indicielle :
\[v_{\theta}(t) = K_2(t -  \tau(1-e^{t/\tau})), \forall t>0\]
\begin{figure}[h!]
\centering
\includegraphics[scale=0.5]{indBO.png}
\caption{Allure de la réponse indicielle en boucle ouverte}
\end{figure}

Dans la réponse indicielle, $K_2$ et $\tau$ correspondent à la pente et au pied de l'asymptote.

\item \textbf{Détermination de} $K_1=KK_{\Omega}$ et $\tau$

En boucle ouverte, la fonction de transfert relative à la tension image de la vitesse est : 
\[\frac{V_{\Omega}(p)}{U(p)} = \frac{K_1}{1+\tau p} \]
On en déduit la réponse indicielle :
\[v_{\Omega}(t) = K_1(1-e^{t/\tau}), \forall t>0\]

$K_1$ est alors la valeur finale de $v_{\Omega}(t)$ et  $\tau$ est le temps de montée à $63\%$.
\end{itemize}


\subsection*{Manipulation 1}
\begin{itemize}\setlength{\itemsep}{10mm}
\item \textbf{Détermination de $K_2$} avec $v_{\theta}(t)$

On génère un créneau en entrée de la boucle ouverte. La réponse de $V_{\theta}$ donnée en \emph{Annexe 1} est une rampe. Sa pente est de 18,9 V/rad pour un échelon d'amplitude 4V. Ainsi, on a \[\boxed{K_2 = KK_{\theta} = 4,725 V/rad} \].

Déterminer $\tau$ avec cet essai ne serait pas très précis, on utilise donc le second.

\item \textbf{Détermination de} $K_1=KK_{\Omega}$ et $\tau$ avec $v_{\Omega}(t)$

On prend le même créneau mais on observe la réponse de $v_{\Omega}(t)$ donnée en \emph{Annexe 2}. On obtient un premier ordre si on prend une amplitude suffisamment grande et que l'on ajoute un offset pour que le sens de rotation ne s'inverse pas à chaque créneau.

Pour un échelon de 3V, la valeur finale est de 4V, donc \[\boxed{K_1 = KK_{\Omega} = 1,3}\]

Le temps de montée à $63\%$ est \[\boxed{\tau = 56ms}\]

\item \textbf{Essai harmonique}

On génère une tension d'entrée sinusoïdale. En observant 
\[V_{\Omega}(p) = \frac{K_1}{1+\tau p} U(p)\]
on peut déterminer $\tau$ en observant le déphasage entre $v_{\Omega}(t)$ et $u(t)$ (\emph{Annexe 3}). En effet, lorsque la pulsation vaut $\frac{1}{\tau}$, le déphasage entre les deux signaux sera de $45^o$.

On a un déphasage de $45^o$ pour une pulsation de 2,84 Hz, soit $\tau = 56ms$.

\item \textbf{Détermination de $K_{\theta}$}

Pour obtenir la valeur de $K_{\theta}$, on choisit de faire tourner le moteur d'un angle de $2\pi$ (repéré entre deux remises à zéro du capteur). Pour cela, on injecte une consigne continue (échelon de fréquence très faible). Pour $\theta$ allant de 0 à $2\pi$, la tension varie proportionnellement de $0$ à $25V$. 
On a donc
\[K_{\theta} = \frac{25}{2\pi} = 3.98 V/rad\]

On en déduit donc :
\begin{itemize}
\item $K_{\theta} = 3.98 V/rad$
\item $K = 1,18 V^{-1}.rad.s^{-1}$
\item $K_{\Omega} = 1,1V.rad^{-1}.s$
\end{itemize} 


\end{itemize}


\section*{III/ Asservissement de position par un correcteur proportionnel}

\subsection*{Préparation 2}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\sbEntree{E}
\sbComp{comp}{E}                
\sbRelier[$E(p)$]{E}{comp}

\sbBloc[3]{CP}{$C$}{comp}
\sbRelier[$U(p$)]{comp}{CP}

\sbBloc[3]{mot}{$\frac{K}{1+\tau p}$}{CP}  
\sbRelier{CP}{mot}

\sbBloc[3]{int}{$\frac{1}{p}$}{mot}      
\sbRelier[$\Omega(p)$]{mot}{int}

\sbBloc[3]{sys}{$K_{\theta}$}{int}
\sbRelier[$\theta(p)$]{int}{sys}

\sbSortie[3]{S}{sys}                
\sbRelier[$V_{\theta}(p)$]{sys}{S}

\sbRenvoi{sys-S}{comp}{}
\end{tikzpicture}
\caption{Asservissement considéré}
\end{figure}

\begin{itemize}\setlength{\itemsep}{10mm}
\item La fonction de transfert en boucle fermée est :
\[\frac{V_{\theta}(p)}{E(p)} = \frac{1}{p(1+\tau p) + K_2C} = \frac{1}{\frac{\tau}{K_2C}p^2 + \frac{1}{K_2C}p+1}\]

On en déduit donc
\begin{align*}
\omega_{0BF} & = \sqrt{\frac{K_2C}{\tau}} \\
m_{BF} & = \frac{1}{2\sqrt{\tau K_2C}} \\
C & = \frac{1}{4m_{BF}^2K_2\tau}
\end{align*}

\item On veut régler le coefficient d'amortissement $m_{BF}=0,8$. On a donc :
\[ \boxed{ C_0 = 1,63 \quad \et \quad \omega_{0BF} = 12,5 rad/s} \]

\item Les pôles de la fonction de transfert en boucle fermée $\frac{V_{\theta}(p)}{E(p)}$ sont :

\begin{multicols}{2}
Pour $m<1$
\[p_{1,2} = -\frac{1}{2\tau} \pm j \frac{\sqrt{4\tau K_2 C -1}}{2\tau} \]
Les pôles ont pour partie réelle $-\frac{1}{2\tau}$ et se déplacent sur un axe vertical lorsque $C$ varie.

Pour $m\geq 1$
\[p_{1,2} = -\frac{1}{2\tau} \pm \frac{\sqrt{1 - 4\tau K_2 C}}{2\tau} \]
Lorsque $C$ varie, $p_1$ se déplace entre 0 et $-\frac{1}{2\tau}$, et $p_2$ entre $-\frac{1}{2\tau}$ et $-2\frac{1}{2\tau}$
\end{multicols}

\begin{figure}[h!]
\centering
\includegraphics[scale=0.4]{rlocus.png}
\caption{Lieu des pôles (simulé sous Matlab avec la fonction \texttt{rlocus})}
\end{figure}

Pour $m<1$, les pôles se déplacent sur un axe vertical. La distance à l'origine ($\omega_0$) et l'angle avec l'axe vertical ($m$) varient donc simultanément.
 
\item À l'aide des abaques, pour $C=C_0$, donc $m=0,8$ et $\omega_{0BF} = 12,5 rad/s$, on obtient :
\[t_r = 280 ms \]
\[D_1 = 1,5\% \]

Le gain statique de la fonction de transfert en boucle fermée est unitaire, donc l'erreur statique de position est nulle.
\end{itemize}

\subsection*{Manipulation 2}

\begin{itemize}\setlength{\itemsep}{10mm}
\item Avec les paramètres trouvés en préparation 1, on recalcule :
\[ C_0 = 1,485 \quad \et \quad \omega_{0BF} = 11,16 rad/s \]
On a alors
\[ t_r = 313 ms \quad \et \quad D_1 = 1,5\% \]

\item Lorsqu'on applique un échelon au système bouclé, on observe deux phases dans la réponse. En effet, il y a un jeu important dans l'engrenage, c'est le phénomène qu'on observe en premier. Ce phénomène a également tendance à retarder la réponse. Pour le minimiser, on augmente l'amplitude de la consigne.\\

Sur l'\emph{annexe 5}, on relève la réponse de $v_{\theta}(t)$ à un échelon de consigne. On observe un temps de réponse de $394ms$. C'est plus élevé que ce à quoi on s'attendait car il y a du jeu dans l'engrenage qui peut retarder la réponse. L'erreur statique est quasiment nulle.

Le dépassement prévu était de l'ordre de $1\%$ donc n'est pas visible sur le relevé.

\item Sur les faibles amplitudes, l'erreur statique augmente (voir \emph{annexe 6}). En effet, le phénomène de jeu ainsi que celui de frottement sec ne sont plus négligeables et le modèle de second ordre n'est plus valable.


\item \textbf{Régime harmonique}

On veut déterminer le coefficient $m$ et la pulsation propre $\omega_{0BF}$ du système bouclé.\\

Pour cela, on va chercher la pulsation pour laquelle le déphasage est de $90^o$ ($\omega=\omega_{0BF}$). Ainsi, on aura un gain de $\frac{1}{2m}$. (\emph{Annexe 7})

On obtient ce déphasage pour $\omega_{0BF}=11,74Hz$, ce qui est conforme à ce qu'on attendait. (11,16Hz)
Le gain est de -3.3dB donc on obtient $m=\frac{1}{2}10^{3,3/20}=0.73$. (valeur attendue de 0,8)

\item Grâce à cette manipulation, on peut conclure que le modèle de second ordre pour la réponse en angle est valable dans un domaine d'amplitude de consigne élevée. Lorsque l'amplitude est faible, des phénomènes (jeu dans les engrenages, frottement sec) interviennent et mettent à mal le modèle.
\end{itemize}
\section*{IV/ Asservissement de position par retour d'état}

\subsection*{Préparation 3}

\begin{itemize}\setlength{\itemsep}{10mm}
\item On part de la fonction de transfert
\[ \frac{V_{\theta}(p)}{U(p)} = \frac{K_2}{p(1+\tau p)} \]
On a donc
\[\boxed{K_2 u(t) = \frac{dv_{\theta}(t)}{dt} + \tau \frac{d^2v_{\theta}(t)}{dt^2}} \]

\item En posant
\begin{align*}
& \left\{
\begin{array}{ll}
x_1(t) & = v_{\theta}(t) = y(t) \\
x_2(t) & = \frac{dv_{\theta}(t)}{dt}
\end{array}
\right.
\intertext{on a alors}
& \left\{ 
\begin{array}{ll}
\frac{dx_1(t)}{dt} & = x_2\\
\frac{dx_2(t)}{dt} & = \frac{K_2}{\tau}u(t) - \frac{1}{\tau}x_2(t)
\end{array}
\right.
\end{align*}

Le modèle d'état peut donc s'écrire sous forme canonique commandable :
\[
\left\{ 
\begin{array}{rl}
\frac{d}{dt} \left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right]
 & = \left[\begin{array}{cc}
0 & 1 \\
0 & -\frac{1}{\tau}
\end{array} \right]
.
\left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right] + \left[\begin{array}{c}
0 \\
\frac{K_2}{\tau}
\end{array} \right] u(t) \\
\\
y(t) & = \left[\begin{array}{cc}
1 & 0\\
\end{array} \right]. \left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right]
\end{array}
\right.
\]

\item En posant $u(t) = -Lx(t) + \eta e(t)$, avec $L=[l_1 \quad l_2]$, 
\begin{align*}
\frac{d}{dt} \left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right]
 & = \left[\begin{array}{cc}
0 & 1 \\
0 & -\frac{1}{\tau}
\end{array} \right]
.
\left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right] + \left[\begin{array}{c}
0 \\
\frac{K_2}{\tau}
\end{array} \right] (-\left[\begin{array}{cc}
l_1 & l_2
\end{array}\right]x(t) + \eta e(t)) \\
\\
& = \left[\begin{array}{cc}
0 & 1 \\
-\frac{K_2l_1}{\tau} & -\frac{K_2l_2 +1}{\tau}
\end{array} \right]
.
\left[\begin{array}{c}
x_1(t) \\
x_2(t)
\end{array} \right] + \left[\begin{array}{c}
0 \\
\eta \frac{K_2}{\tau}
\end{array} \right] e(t))
\end{align*}

On a donc
\[ \boxed{F = \left[\begin{array}{cc}
0 & 1 \\
-\frac{K_2l_1}{\tau} & -\frac{K_2l_2 +1}{\tau}
\end{array} \right] \quad \et \quad G = \left[\begin{array}{c}
0 \\
\eta \frac{K_2}{\tau}
\end{array} \right] } \]

\item Calculons l'équation caractéristique $D(p)= det(pI-F)$ du système bouclé :

\[ D(p) = det
\left[\begin{array}{cc}
p & -1 \\
\frac{K_2l_1}{\tau} & p+\frac{K_2l_2 +1}{\tau}
\end{array} \right] \]
\[\boxed{D(p) = p^2 + \frac{K_2l_2 +1}{\tau}p + \frac{K_2l_1}{\tau}}\]

On peut l'assimiler à l'équation caractéristique d'une fonction de transfert du second ordre :
\[D_{2nd}(p) = p^2 + 2m_{BF}\omega_{0BF} + \omega_{0BF}^2\]

avec
\begin{align*}
2m_{BF}\omega_{0BF} & = \frac{K_2l_2 +1}{\tau} \\
\omega_{0BF}^2 & =  \frac{K_2l_1}{\tau}
\end{align*}
Ainsi,
\[ \boxed{ l_1 = \frac{\tau \omega_{0BF}^2}{K_2} \quad \et \quad l_2 = \frac{2\tau m_{BF} \omega_{0BF}-1}{K_2} } \]

On veut un amortissement $m_{BF} = 0.8$ et $\omega_{0BF} = $ 20 puis 30 et 50 rad/s :\\

\begin{center}
\begin{tabular}{|c|c|c|}
\hline 
$\omega_{0BF}$ & $l_1$ & $l_2$ \\ 
\hline 
20 & 4.17 & 0.125 \\ 
30 & 9.38 & 0.292 \\ 
50 & 26.0 & 0.625 \\ 
\hline
\end{tabular}
\end{center} 

\item On a $u(t) = -[l_1 \quad l_2]x(t) + \eta e(t)$ et on veut une erreur statique d'asservissement nulle, c'est-à-dire que $u(\infty) = 0$ lorsque $v_{\theta}(\infty) = e(\infty)$ : il faut donc que $\eta = l_1$.

\subsection*{Manipulation 3}
\begin{itemize}\setlength{\itemsep}{10mm}
\item On met en oeuvre la correction par retour d'état en utilisant un gain $\frac{l_2K_{\theta}}{K_{\Omega}}$ pour $V_{\Omega}$ et $l_1$ pour $V_{\theta}$.

On effectue, pour chacune des valeurs de $\omega_{0BF}$, une réponse à un échelon et une réponse harmonique.
\begin{figure}[h!]
\centering
\begin{tabular}{|c|c|c|c|c|c|}
\hline 
$\omega_{0BF}$ (rad/s) & erreur statique & $D_1$ & $t_{r5}$ (ms) & $m_{BF}$ & Relevé \\ 
\hline 
20 & 0 & 1  \% & 150 & 0.64 & 8 et 9 \\ 
\hline 
30 & 0 & 7 \% & 99 & 0.54 & 10 et 11 \\ 
\hline 
\end{tabular} 
\end{figure}

Pour $\omega_{0BF}=50rad /s$, la réponse en régime harmonique n'est plus sinusoïdal (\emph{Annexes 12 et 13}). Des effets non linéaires apparaissent et on ne peut plus du tout utiliser le modèle du second ordre.

On voulait imposer $m=0,8$ mais on observe que $m$ diminue. En effet, on avait considéré que le modèle était un second ordre. En réalité, lorsque $\omega_{0BF}$ augmente, on se rapproche de l'influence du système mécanique, ce qui rajoute encore de la phase. 

Par conséquent, la marge de phase du système diminue, et donc $m$ diminue et les dépassements augmentent.\\

Au delà de 20 rad/s, les performances sont fortement impactées par les effets de non linéarité du système.
\end{itemize}

\end{itemize}

\section*{Conclusion}
Nous avons au cours de ce TP identifié le moteur à l'aide d'une approche temporelle et harmonique. Nous avons ensuite vu que la correction proportionnelle classique permettait de garantir certaines performances, mais pas de régler indépendamment $\omega_{0BF}$ et $m_{BF}$. Ainsi, la mise en place de la commande par retour d'état permet, dans un certain domaine de validité, de régler ces paramètres de manière indépendante.
\end{document}