next_inactive up previous


SCILAB à l'École nationale des ponts et chaussées


http://www.enpc.fr/scilab



Modélisation et Commande des Systèmes Non Linéaires,
ENPC, Département MSPI.

Positionnement de Masses
Reliées Élastiquement à un Moteur Linéaire

Jean LEVINE

dernière date de mise à jour : 24 avril 2002

Version pdf de ce document

On considère dans un premier temps un moteur linéaire de masse $M$, se déplaçant le long d'un rail rectiligne, relié à un corps de masse $m$ par une tige flexible de masse négligeable que l'on peut assimiler à un ensemble ressort-amortisseur, le ressort ayant une raideur $k$ et l'amortisseur un coefficient d'amortissement $r$. L'abscisse du moteur (resp. de la masse) est notée $x$ (resp. $z$). Le moteur produit une force $F$ qui est la variable de commande. Le système s'écrit, en première approximation,

\begin{displaymath}
\begin{array}{l}
\displaystyle M\ddot{x}= F -k (x-z) - r (\d...
...playstyle m\ddot{z} = k (x-z) + r (\dot{x}-\dot{z})
\end{array}\end{displaymath} (1)

Figure: Simple masse reliée élastiquement à un moteur linéaire.

\begin{displaymath}\includegraphics[width=10cm, angle=0]{SimpleMasse0f.eps}\end{displaymath}

On désire générer des déplacements arrêt-arrêt rapides de l'ensemble masse-moteur pour positionner la masse de façon précise et par conséquent sans oscillation. Notons que dès que la force $F$ n'est pas nulle, le moteur se déplace et, à cause de la tige flexible, engendre une dynamique oscillante de la masse.

Dans ce qui suit, nous prenons $M=4$ kg pour la masse du moteur, $m=0.15$ kg pour la masse transportée, $k=m(4\cdot 2\pi)^2$ N/m pour la raideur de la tige (qui correspond à une fréquence propre de 4 Hz), $r=2\cdot 0.01\sqrt{km}$ Ns/m pour le coefficient d'amortissement de la tige (qui correspond à une constante de temps d'amortissement de $\frac{1}{0.01}$ s).

1ère partie : Étude du déplacement sans tenir compte de la masse transportée

Dans un premier temps, on veut effectuer le déplacement sans tenir compte de la masse transportée. Pour cela, on fait comme si le système était donné par

\begin{displaymath}M\ddot{x}=F\end{displaymath}

les contributions de la masse transportée étant considérées comme des perturbations.

Ainsi, pour un déplacement arrêt-arrêt partant de $x_{0}$ au repos à l'instant 0 et arrivant à $x_{1}$ au repos à l'instant $T$, avec la force et sa dérivée nulles aux instants 0 et $T$, on peut prendre comme trajectoire de référence

\begin{displaymath}
x_{ref}(t)=x_{0}+\left(x_{1}-x_{0}\right)\left(\frac{t}{T}\r...
...frac{t}{T}\right)^{2} - 20
\left(\frac{t}{T}\right)^{3}\right)
\end{displaymath} (2)

On vérifie alors que la référence de la force $F_{ref}$ est donnée par

\begin{displaymath}F_{ref}=M\ddot{x}_{ref}=
420\ M\left(\frac{x_{1}-x_{0}}{T^{2}...
...(\frac{t}{T}\right)^{2}
- 2\left(\frac{t}{T}\right)^{3}\right).\end{displaymath}

Pour rendre le déplacement du moteur insensible aux perturbations, on ajoute à la force de référence une boucle PID :

\begin{displaymath}
F=F_{ref}-k_{P}\left( x-x_{ref} \right) -
k_{D}\left( \dot{x...
... -
k_{I}\int_{0}^{t}\left( x(\tau)-x_{ref}(\tau) \right) d\tau
\end{displaymath} (3)

0.0.0.1 1.1

Exécuter le fichier Smasse0.sci. Pour un déplacement de $x_{0}=0$ à $x_{1}=0.1$ m, régler la durée $T$ telle que le maximum du module de la force de référence ne dépasse pas $1.5 g$.

0.0.0.2 1.2

Régler les gains $k_{P}$, $k_{D}$ et $k_{I}$ du PID pour que l'influence de la masse transportée soit presque insensible sur la position du moteur. Quelle amplitude d'oscillations de la masse transportée obtient-on ?

0.0.0.3 1.3

Peut-on modifier la fréquence d'oscillation et la constante de temps d'amortissement de la masse transportée ?

2ème partie : Étude du déplacement en tenant compte de la masse transportée

On veut essayer d'empêcher les oscillations de la masse sans toutefois observer sa position. Pour cela, on va utiliser le modèle (1) pour chercher des trajectoires de consigne de déplacement du moteur et de la force telles que le moteur et la masse transportée arrivent au point final au repos à l'instant $T$.

0.0.0.4 2.1

Exprimer $x$, $z$ et $F$ en fonction d'une sortie plate du système (1) et de ses dérivées.

0.0.0.5 2.2

En déduire une trajectoire arrêt-arrêt pour le moteur et la masse transportée partant de $x_{0}=z_{0}=0$ à l'instant $t=0$ à $x_{1}=z_{1}=0.1$ m à l'instant $t=T$ calculé précédemment.

0.0.0.6 2.3

Exécuter le fichier Smasse1.sci. Régler les gains $k_{P}$, $k_{D}$ et $k_{I}$ du PID, pour assurer la stabilité et la robustesse d'erreur de suivi dans le cas d'une erreur sur les conditions intiales de l'ordre de 5% sur $z$, ou sur les masses, raideurs et amortissements de l'ordre de 0.01%.

0.0.0.7 2.4

En reprenant la méthode de la première partie, régler la durée $T_{1}$ pour que la loi de commande (3) avec (2), où $T$ est remplacée par $T_{1}$, produise des oscillations de la masse transportée de même amplitude qu'aux questions 2.2 et 2.3 avec $T$.

3ème partie : Même étude pour deux masses transportées

Reprendre l'étude précédente en ajoutant une seconde masse $m'=0.04$ kg reliée au moteur par une seconde tige flexible dont les caractéristiques sont $k'=m'(7\cdot 2\pi)^2$ N/m (fréquence propre de 7 Hz) et $r'=2\cdot 0.012\sqrt{k'm'}$ Ns/m (constante de temps d'amortissement de $\frac{1}{0.012}$ s). L'étude du déplacement du moteur sans tenir compte des masses transportées se fait à l'aide du fichier Dmasses0.sci, et celle tenant compte des masses transportées à l'aide du fichier Dmasses1.sci. On pourra modifier $T$ et les gains du PID en faisant exécuter les fichier Scilab.

Figure: Deux masses reliées élastiquement à un moteur linéaire.

\begin{displaymath}\includegraphics[width= 100mm,angle=0]{DoubleMasse0f.eps}\end{displaymath}

Dans ce cas, le système est donné par

\begin{displaymath}
\begin{array}{l}
\displaystyle M\ddot{x}= F -k (x-z) - r (\d...
...le m'\ddot{z}' = k' (x-z') + r' (\dot{x}-\dot{z}').
\end{array}\end{displaymath} (4)

On pourra se servir des formules

\begin{displaymath}
\begin{array}{l}
\displaystyle x= y+\left( \frac{r}{k}+ \fra...
...r'}{kk'} \right)
\ddot{y} +
\frac{mr'}{kk'} y^{(3)}
\end{array}\end{displaymath}

et, pour générer des trajectoires arrêt-arrêt :

\begin{displaymath}
\begin{array}{l}
\displaystyle y(t)=x_{0}+(x_{1}-x_{0})\left...
...right)^{5}+
924\left(\frac{t}{T}\right)^{6}\right).
\end{array}\end{displaymath}


next_inactive up previous
Jean-Philippe CHANCELIER 2002-04-24