Cédric Zanni - Frottements et Impacts dans un jeu de Billard - resultats

De Ensiwiki
Aller à : navigation, rechercher


Frottements et Impacts dans un jeu de Billard

Labo LJK
Equipe BIPOP
Encadrants florent.cadoux@inria.fr,jerome.malick@inria.fr

Etudiant

ZANNI, Cédric

Introduction

La simulation de système mécanique faisant intervenir le phénomène de frottement de roulement est un problème fréquemment rencontré dans de nombreux domaines tel que le génie civil (avec la mécanique des milieux granulaires), la robotique et la synthèse d'image. Du fait de l'importance de ce phénomène de nombreux modèles ont été créés pour le représenter et différentes approches sont possibles pour le simuler. Une des lois décrivant le phénomène de frottement est la loi de Coulomb qui est un modèle raisonnable dans de nombreux cas . Un solveur permettant le calcul des forces de contact de loi de Coulomb m'a été fourni par Florent Cadoux, ce solveur a pour particularité d'utiliser une formulation explicite de la loi de Coulomb dite d'Impulsion-Vitesse.

L'objectif était la réalisation d'une simulation de billard interactive dans le but de réaliser un exemple d'utilisation du solveur. Nous avions à notre disposition le solveur fourni par F. Cadoux ainsi qu'un exemple simple d'utilisation de celui-ci, la simulation d'une sphère à répartition de masse homogène pouvant entrer en contact avec un plan.

Le travail demandé était donc la généralisation à plusieurs boules et plusieurs plans de l'exemple fourni. Il fallait de plus ajouter à la simulation le phénomène de frottement de roulement.

Eléments de pré-requis

La loi de Coulomb dans sa formulation classique est une disjonction de cas. Soit r la force de contact et soit u la vitesse relative des points de contact, on est alors dans un des trois cas suivants:

Coulomb law.png

K_{\mu} est le cône de Coulomb, on a : K_{\mu} = \{ x / \forall x \in  \R,\|x_T\| \leq \mu x_N\}

Voici l'explication physique de la loi de Coulomb. Dans le premier cas, le décollage, le contact est en train de se terminer, la vitesse normale est donc positive mais il n'y a pas de force entre les deux solides. Cette loi représente donc un frottement sec. Il n'y a aucune force qui 'colle' les deux solides et les empêcherait de s'éloigner l'un de l'autre. Le cas de l'adhérence est le cas où la vitesse relative des points de contact est nulle, dans ce cas la force de contact peut se trouver n'importe où dans le cône de Coulomb. Le dernier cas est le cas de glissement, dans ce cas la vitesse relative est non nulle et contenue dans le plan de contact, la force de contact est elle comprise dans le bord du cône de Coulomb.

Travail réalisé

Mes contributions sont les suivantes:

  • modélisation du problème généralisé sous forme adaptée au solveur
  • assemblage des données pour le solveur
  • modélisation du frottement de roulement


Mise en équation

Chaque sphère du système est soumise à un ensemble de forces: le poids, les forces de contact faisant intervenir la sphère (ici les contacts sont ponctuels donc le point d'application est le point de contact). Pour chaque sphère on applique deux lois dynamiques: la relation fondamentale de la dynamique et le théorème de l'énergie cinétique. La première donne une relation permettant de décrire l'évolution de la vitesse du centre de gravité d'une sphère donnée, la seconde permet de décrire le mouvement de rotation de la sphère autour de son centre de gravité. On obtient donc le système suivant:

\left\{
 \begin{array}{cccc}
 m_i \dot{(v_G)_i} = m_i g + \sum_{k \in R_i} r_k \\
 J_i \dot{\Omega_i} = \sum_{k \in R_i} r_s e_k \wedge r_k \\
 loi \ de \  Coulomb
\end{array}
\right.

Ce système ne permettant pas de décrire le phénomène de rebond, il faut rajouter un modèle pour le décrire: la loi d'impact de Newton. Lors d'un impact on inverse la composante normale de la vitesse relative des points de contact et on l'atténue en la multipliant par un facteur compris entre 0 et 1. Cette modélisation simple est valable dans le cas présent car on modélise des solides sphériques et homogènes. La modélisation de ce phénomène intervient donc une fois le temps discrétisé.

Discrétisation

Un schéma de discrétisation semi-implicite permet d'obtenir le système suivant:

\left\{
 \begin{array}{cc}
 m^i((v_G^i)^+ - (v_G^i)^- = dt(m^i g + \sum_{k \in R_i} r_k) \\
 J^i ((\Omega^i)^+ - (\Omega^i)^-) = dt(\sum_{k \in R_i} r_s e_k \wedge r_k)
\end{array}
\right.

L'introduction de nouvelles notations permet d'obtenir le système suivant (où u est le vecteur constitué des vitesses relatives):


 \left\{\begin{array}{c}
Mv + f = H^Tr\\
u=Hv\\
loi\ de\ Coulomb.
\end{array}
\right.

On a ainsi obtenu un système d'équations sous forme adaptée au solveur (où u, v et r sont les inconnues).

Algorithme d'assemblage des données

Il a ensuite fallu écrire un algorithme permettant de construire l'ensemble des données à fournir au solveur. Cela est fait en trois étapes. La détection des contacts (et la création des vecteurs normaux aux contacts), la création de la matrice H (l'une des dimensions de cette matrice est le nombre de contacts, on ne peut donc pas effectuer cette étape simultanément à la première), le calcul des vitesses après impact.

Détection des contacts et création des vecteurs normaux Création de H et calcul des vitesses normales

Algo1.png

Algo2.png


Algo3.png


A la suite de ces trois étapes nous obtenons une première simulation du système mécanique. Celle-ci est convenable dans le sens où le phénomène de frottement de glissement est bien simulé (simulation1). Néanmoins cette modélisation du problème présente un problème majeur, la dissipation d'énergie dans le système n'intervient que lors des rebonds, des sphères présentes sur un plan infini peuvent donc être animées d'un mouvement de roulement permanent. Il faut donc ajouter un phénomène physique expliquant la dissipation d'énergie lors du roulement: c'est le frottement de roulement.

Ajout du frottement de roulement

Nous avons donc complété notre schéma pour rendre compte de ce phénomène. Pour cela nous avons fait intervenir un couple ponctuel appliqué au point de contact avec le sol. Un couple est un système d'action mécanique dont la résultante est nulle mais dont le moment résultant est non nul. Ainsi l'ajout de ce couple ne modifie pas l'équation résultant de l'application de la relation fondamentale de la dynamique, il modifie uniquement l'équation dépendant du théorème du moment cinétique. Ainsi le choix de modéliser le frottement de roulement par un couple est bien justifié puisque celui-ci ne va intervenir que sur la rotation du solide. Ce couple va être opposé et proportionnel au moment cinétique au point de contact.

Le moment obtenu après calcul est:

 M_{roulement}  = - \alpha m_s (2r_s\vec{n} \wedge \vec{v_G} + r_s^2 \Omega)


La seule modification apportée à la simulation est la modification du vecteur f en entrée du solveur.


Suite à cette modification du modèle on obtient un résultat plus proche de la réalité (simulation2). En effet les boules animées d'un mouvement de roulement vont voir leur vitesse diminuer petit à petit.

Conclusion

Nous avons effectué la modélisation d'un billard, c'est à dire la modélisation d'un système dynamique composé d'un ensemble de sphères. Pour cela il faut modéliser les impacts ainsi que deux lois de frottement, le frottement de glissement et le frottement de roulement. Nous avons pour cela utilisé la formulation d'impulsion-vitesse de la loi de Coulomb pour modéliser le frottement de glissement, un couple de force opposé au moment cinétique pour modéliser le frottement de roulement, une règle de restitution simple adapté au problème et un schéma de discrétisation semi-implicite. Le système d'équation obtenu est résolu par le solveur fourni par Florent Cadoux en utilisant une méthode d'optimisation complexe utilisant les cônes du second ordre.

Les résultats obtenus sont satisfaisants et rendent bien le comportement physique attendu d'un point de vue qualitatif (simulation). Néanmoins il aurait été intéressant d'effectuer des mesures pour obtenir une validation quantitative du modèle. De plus de telles mesures auraient permis d'obtenir des valeurs pour les constantes physiques (\rho ,\  \mu \ et \ \alpha) dans le cas du billard. Deux autres perspectives s'ouvrent à la suite de ce sujet. La première est une implémentation plus efficace de l'algorithme d'assemblage des données (avec la gestion du parallélisme) ainsi que son adaptation à l'utilisation d'un solveur 'sparse', en effet les données de grande taille du problème sont des matrices creuses. Enfin il serait intéressant de créer une meilleure interface graphique permettant à l'utilisateur de jouer au billard de manière interactive.


Références

  • F. Cadoux . An optimization-based algorithm for Coulomb's frictional contact, in Esaim: Proceedings, EDP Sciences.
  • D.Baraff. Analytical Methods for Dynamic Simulation of Non-Penetrating Rigid Bodies, Computer Graphics, Volume 23, number 3, July 1989


Documents additionnels