Pendule inversé: modèle sans frottements

Introduction

Cet article présente le modèle d’un pendule inversé. Ce système est composé d’un chariot et d’un pendule dont le centre de gravité est au dessus de la liaison pivot qui le lie au chariot.

InvertedPendulum

Dans cet article, nous ferons les hypothèses suivantes:


  • m_1 est la masse du chariot.

  • m_2 est la masse du pendule.

  • I_1 est le moment d’inertie du chariot.

  • I_2 est le moment d’inertie du pendule.

  • L est la distance entre la liaison pivot et le centre de gravité du pendule.

  • \Theta est l’angle d’inclinaison du pendule.

  • x_1 et y_1 sont les coordonnées du centre de gravité C_1 du chariot.

  • \Theta_1 est l’orientation du chariot.

  • x_2 et y_2 sont les coordonnées du centre de masse C_2 du pendule.

  • \Theta_2 est l’orientation du pendule.

Les notations suivantes seront utilisée dans la suite de cet article pour éviter de surcharger les équations:

 \frac{d\Theta}{dt} = \dot{\Theta}

Et pour la dérivée seconde:

 \frac{d^2\Theta}{dt^2} = \ddot{\Theta}

Contraintes

Comme le chariot et le pendule sont liés par une liaison pivot, nous pouvons écrire les équations suivantes. Ces équations expriment les coordonnées et l’orientation de chaque corps du système. Pour le chariot (corps 1):

\begin{array}{r c l} x_1 &=& x_1 \\ y_1 &=& 0 \\ \Theta_1 &=& 0 \\\end{array}

Pour le pendule (corps 2):

\begin{array}{r c l} x_2 &=& x_1 - L.sin(\Theta)\\ y_2 &=& y_1 + L.cos(\Theta) &=& L.cos(\Theta)\\ \Theta_2 &=& \Theta\end{array}

Définissons \vec{q}, la position de notre système :

 \vec{q}=\begin{pmatrix} x_1 \\ \Theta_2 \end{pmatrix}

Définissons les contraintes sur la position:

 \phi = \begin{pmatrix} y_1 \\ \Theta_1 \\ x_2 \\ y_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ x_1 - L.sin(\Theta) \\ L.cos(\Theta) \end{pmatrix}

Calculons les contraintes en vitesse:

 \dot{\phi} = \begin{pmatrix} \dot{y_1} \\ \dot{\Theta_1} \\ \dot{x_2} \\ \dot{y_2} \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\  \dot{x_1} - L.\dot{\Theta_2}.cos(\Theta_2)  \\ -L.\dot{\Theta_2}.sin(\Theta_2) \end{pmatrix}

Calculons les contraintes en accélération:

 \ddot{\phi} = \begin{pmatrix} \dot{y_1} \\ \ddot{\Theta_1} \\ \ddot{x_2} \\ \ddot{y_2} \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\  \ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) + L.\dot{\Theta_2}^2.sin(\Theta_2) \\ -L.\ddot{\Theta_2}.sin(\Theta_2) - L.\dot{\Theta_2}^2.cos(\Theta_2) \end{pmatrix}

Dynamique

Le principe fondamental de la dynamique peut être appliqué à notre système. Pour le chariot (corps 1):

\begin{array}{r c l} m_1.{a_1}^x = m_1.\ddot{x_1}&=& \| \vec{F_t} \| + \lambda_1 \\ m_1.{a_1}^y = m_1.\ddot{y_1}&=& 0 + \lambda_2 \\ I_1.\ddot{\Theta_1} &=& 0 + \lambda_3 \\\end{array}

Pour le pendule (corps 2):

\begin{array}{r c l} m_2.{a_2}^x = m_2.\ddot{x_2} &=& 0 + \lambda_4 \\  m_2.{a_2}^y = m_2.\ddot{y_2} &=& \| \vec{F_g} \| + \lambda_5 = -g.m_2 + \lambda_5\\ I_2.\ddot{\Theta_2} &=& 0 + \lambda_6 \\\end{array}

\lambda_1, \lambda_2,\lambda_3,\lambda_4,\lambda_5 et \lambda_6 sont les coefficients de Lagrange. Ces coefficients représentent les interactions entre les coprs. Dans notre système, il s’agit de l’interaction entre le chariot et le pendule.

Interactions

Nous allons maintenant résoudre le système de façon à éliminer les interactions entre les corps(\lambda_i). Il est prouvé que:

 M.\ddot{q} = F - \frac{d\phi}{dq}^\top .\Lambda

Où:

 M=\begin{pmatrix} m_1 & 0 \\ 0 & I_2 \end{pmatrix}
 \ddot{q}=\begin{pmatrix} \ddot{x_1} \\ \ddot{\Theta_2} \end{pmatrix}
 F=\begin{pmatrix} \| \vec{F_t} \|  \\ 0 \end{pmatrix}
 \frac{d\phi}{dq} = \begin{pmatrix} \frac{dy_1}{dx1} & \frac{dy_1}{d\Theta_2} \\\frac{d\Theta_1}{dx1} & \frac{d\Theta_1}{d\Theta_2} \\\frac{dx_2}{dx1} & \frac{dx_2}{d\Theta_2} \\\frac{dy_2}{dx1} & \frac{dy_2}{d\Theta_2} \end{pmatrix} =\begin{pmatrix}0 & 0 \\0 & 0 \\1 & -L.cos(\Theta_2) \\0 & -L.sin(\Theta_2)\end{pmatrix}
 \Lambda=\begin{pmatrix} \lambda2 \\ \lambda3 \\ \lambda4 \\ \lambda5 \end{pmatrix}

Appliqué à notre système, cela donne:

\begin{pmatrix} m_1 & 0 \\ 0 & I_2 \end{pmatrix} .\begin{pmatrix} \ddot{x_1} \\ \ddot{\Theta_2} \end{pmatrix} =\begin{pmatrix} \| \vec{F_t} \|  \\ 0 \end{pmatrix} -\begin{pmatrix} 0 & 0 & 1 & 0 \\ 0 & 0 & -L.cos(\Theta_2) & -L.sin(\Theta_2) \end{pmatrix} .\begin{pmatrix} \lambda2 \\ \lambda3 \\ \lambda4 \\ \lambda5 \end{pmatrix}

et:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -\lambda4 \\I_2.\ddot{\Theta_2} &=& \lambda4.L.cos(\Theta_2) + \lambda5.L.sin(\Theta_2)\end{array}

Résolution du système

En se basant sur les équations mentionnées précédement, nous pouvons reformuler l’expression de \lambda_4 et \lambda_5:

\begin{array}{r c l}\lambda_4 &=& m_2.\ddot{x_2} \\\lambda_5 &=& m_2.\ddot{y_2} + g.m_2 \\\end{array}

L’équation précédente devient:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -m_2.\ddot{x_2} \\I_2.\ddot{\Theta_2} &=& m_2.\ddot{x_2}.L.cos(\Theta_2) + (m_2.\ddot{y_2} + g.m_2).L.sin(\Theta_2)\end{array}

Grâce à la contrainte en accélération:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -m_2.(\ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) - L.\dot{\Theta_2}^2.sin(\Theta_2) ) \\I_2.\ddot{\Theta_2} &=& m_2.(\ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) + L.\dot{\Theta_2}^2.sin(\Theta_2) ).L.cos(\Theta_2) + (m_2.(-L.\ddot{\Theta_2}.sin(\Theta_2) - L.\dot{\Theta_2}^2.cos(\Theta_2)) + g.m_2).L.sin(\Theta_2)\end{array}

Reformuler l’équation précédente nous donne:

\begin{array}{r c l}(m_1+m_2).\ddot{x_1} &-& m_2.L.cos(\Theta_2).\ddot{\Theta_2} &=& \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\-m_2.L.cos(\Theta_2).\ddot{x_1} &+& (I_2+ m_2.L^2).\ddot{\Theta_2} &=& m_2.g.L.sin(\Theta_2)\end{array}

et:

\begin{pmatrix} m_1+m_2 & - m_2.L.cos(\Theta_2) \\-m_2.L.cos(\Theta_2) & (I_2+ m_2.L^2)\end{pmatrix} . \ddot{q} =\begin{pmatrix} \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\ m_2.g.L.sin(\Theta_2)\end{pmatrix}

L’équation générale du système est:

\ddot{q}=A^{-1}.B

Où:

A=\begin{pmatrix} m_1+m_2 & - m_2.L.cos(\Theta_2) \\-m_2.L.cos(\Theta_2) & (I_2+ m_2.L^2)\end{pmatrix}
B= \begin{pmatrix} \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\ m_2.g.L.sin(\Theta_2)\end{pmatrix}

Representation d’états

En se basant sur le résultat précédent, il est maintenant possible d’écrire la représentation d’états du système. Définissons X l’état du système:

X=\begin{pmatrix} x_1 \\ \Theta_2 \\ \dot{x_1} \\ \dot{\Theta_2} \end{pmatrix}

La représentation d’état est donc:

\dot{X}=\begin{pmatrix} \dot{x_1} \\ \dot{\Theta_2} \\ \left[A^{-1}.B\right] \end{pmatrix}

Remerciements

Je tiens à remercier Sébastien Lagrange de l’université d’Angers pour son aide et ses explications.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *