IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Calcul de la matrice d'inertie d'un modèle 3D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par défaut Calcul de la matrice d'inertie d'un modèle 3D
    Bonjour à tous
    Il s'agit la d'une question ouverte : Comment calculer la matrice d'inertie d'un modèle 3D ?
    Sachant que j'ai plusieurs données en entrée possible :
    - Le fichier .x du modèle 3D
    - La tétraèdrisation de delaunay du modèle 3D
    - Le sphere tree du modèle 3D

    Je peux déjà calculer le volume de manière exacte avec la tétraèdrisation, je connais la masse et la masse volumique (on suppose que le solide est homogène)

    J'ai déjà essayé :
    - D'utiliser le dernier niveau du sphere tree. J'ai calculé la matrice d'inertie de chaque sphère, les aient déplacées toutes au même point, puis sommées. Le résultat est désastreux car les sphères peuvent se chevaucher beaucoup.
    - De ne mettre que l'identité comme matrice d'inertie . Le moteur physique déplace tout ce petit monde comme si c'était des boules, et je pense que je passe à côté de certaines choses intéressantes. (enfin c'est naze d'avoir un moteur physique qui fait ses calculs en tenant compte des moments d'inerties et de les mettre à 1)

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut
    Bon, j'ai lu en diagonal ce que tu as noté...

    Quelques définitions (cf. wikipedia) pour mettre les choses aux points:
    L'inertie d'un corps est sa propriété de conserver une vitesse constante (ou de rester immobile) lorsqu'aucune force externe ne s'y applique, ou que les forces qui s'y appliquent s'équilibrent. Le moment d'inertie est l'équivalent rotationnel de l'inertie.

    Le moment d'inertie d'un corps par rapport à un axe (vu que c'est une rotation) se calcule est égale à la somme de chacune de tes masses multipliées par la distance au carré entre cette masse et ton axe. La formule peut s'exprimer sous la forme d'un produit vectoriel: http://fr.wikipedia.org/wiki/Moment_d%27inertie

    La matrice d'inertie est un outil mathématique utilisé pour décrire les efforts d'inertie appliqués à un solide. La méthode de calcul est disponible ici: http://fr.wikipedia.org/wiki/Matrice_d%27inertie

    Tu verras que certains éléments sont égales aux moments d'inerties et d'autres sont les produits de ceux-ci.


  3. #3
    Membre chevronné Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par défaut
    ben en fait je sais calculer les moments d'inertie avec les formules.... Mais ça ne me sert pas dans ce cas la hein....
    Genre avec un lapin, ben le terme noté A dans la matrice (intégrale des (y^2 + z^2) dm), je ne vois pas comment je peux le calculer... je ne connais pas l'équation de la surface définissant le lapin...
    Ce que je voudrai c'est une méthode autre qu'en passant par ces intégrales...

  4. #4
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut
    Genre avec un lapin, ben le terme noté A dans la matrice (intégrale des (y^2 + z^2) dm), je ne vois pas comment je peux le calculer... je ne connais pas l'équation de la surface définissant le lapin...
    Ce que je voudrai c'est une méthode autre qu'en passant par ces intégrales...
    Cela n'a rien à voir avec la surface du lapin! Je t'explique...

    Prenons un exemple simple: mettons que tu aies un corps rigides composé de 3 masses notées:
    - mi, mj, mk
    toutes positionnées respectivement en:
    - (xi, yi, zi),
    - (xj, yj, zj),
    - (xk, yk, zk),

    et que tu souhaites calculer l'inertie de ce corps par rapport à l'axe (x0,y0,z). D'accord?

    On te dit que le moment d'inertie de ce corps par rapport à l'axe (x0,y0,z) est égale à la somme de chacune de tes masses multiplié par le carré de la distance séparant la masse de l'axe:

    Moment d'inertie(x0,y0,z) = mi * sqrt((xi - x0)^2 + (yi - y0)^2) + mj * sqrt((xj - x0)^2 + (yj - y0)^2) + mk * sqrt((xk - x0)^2 + (yk - y0)^2)


    sqrt:= racine carrée (Pythagore pour calculer la distance)

    Donc pour ton lapin, je ne suppose que tu ne connais que les volumes de tes tétraèdres et que tu prends comme hypothèse que ça masse volumique est constante.
    1) Calculer la masse de chacun de tes volumes: masse volumique x volume -> mi
    2) Calculer la distance le centre de gravité de chacun de tes volumes à l'axe qui t'intéresse
    3) Faire la somme de tout ça (il s'agit d'une intégrale discrète)

    Mom.Inertie = \sum_{i=0^{n} m_i \; . \; d_i^2

    Tu remarqueras que pour avoir une grande inertie, on va essayer de mettre de la matière le plus loin possible de l'axe. C'est pour ça que les pieds de table sont creux ou que les cadres de vélo O'Neil en Alu sont vraiment gros. Avec moins de matière, on peut obtenir la même inertie (résistance à la flexion dans ce cas-ci). Essaye de calculer l'inertie d'un cylindre (cf. article moment d'inertie sur wikipedia).

    Une petite vidéo illustrant l'inertie:
    http://fr.video.yahoo.com/watch/2011147

    Encore une remarque:
    Quand on te dit \int (y^2 + z^2) dm: en fait il s'agit de calculer l'inertie par rapport à l'axe des x. Tu comprends? (y^2 + z^2) c'est la distance séparant la masse dm de l'axe (x,0,0)

    Bonne journée

  5. #5
    Membre chevronné Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par défaut En résumé
    (Je sais exactement ce que c'est qu'une matrice d'inertie hein... J'ai fais pas mal de méca quand même. ^^ Mais bon ça peut aider certaines personnes qui lisent ce post à comprendre)

    Faire ce que tu décris ça revient à dire que chaque tétraedre est en fait assimilé à un point de masse égalle à la masse volumique * volume du tétraedre. Puis on calcul la matrice d'inertie du modèle en disant que le modèle est l'assemblage de ces points.... Ca doit être une bonne approximation.
    Il est possible que ça soit une solution.
    J'avais pensé à un truc dans le genre mais au lieu de dire que les tétraèdres étaient des points massique, alors je voulais calculer la matrice d'inertie d'un tétraedre..... Mais ça c'est chaud aussi ^^
    Je vais essayer de voir ce que me donne cette technique.
    J'ai un modeleur 3D qui me donne la matrice d'inertie d'un modèle. Je vais faire un modèle, l'exporter calculer la matrice avec cette méthode et comparer les résultats....

    Je ne met pas le tag résolu tout de suite, si d'autres personnes veulent ajouter / modifier des choses...

  6. #6
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Citation Envoyé par Rafy Voir le message
    Faire ce que tu décris ça revient à dire que chaque tétraedre est en fait assimilé à un point de masse égalle à la masse volumique * volume du tétraedre. Puis on calcul la matrice d'inertie du modèle en disant que le modèle est l'assemblage de ces points.... Ca doit être une bonne approximation.
    [...]
    Je vais essayer de voir ce que me donne cette technique.
    J'ai un modeleur 3D qui me donne la matrice d'inertie d'un modèle. Je vais faire un modèle, l'exporter calculer la matrice avec cette méthode et comparer les résultats....
    Si tu as beaucoup d'écart, essaye de tétraèdriser tes tétraèdres, si ils sont "gros" (entre guillemets, vu que c'est relatif...).
    Normalement en diminuant la taille des unités de volume, tu devrais limiter la valeur du terme dû à l'inertie propre des volumes.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Calcul de la matrice d'inertie d'un modèle 3D
    Par Rafy dans le forum Physique
    Réponses: 0
    Dernier message: 15/06/2008, 09h47
  2. Calcul sur des matrices
    Par Ptinéwik dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/01/2008, 10h37
  3. Calcul d'une matrice dans une boucle for
    Par david_Montreal dans le forum MATLAB
    Réponses: 7
    Dernier message: 11/07/2007, 17h17
  4. [Maths] Calcul de la matrice de projection
    Par HanLee dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 03/07/2007, 01h52
  5. Calcul de la matrice Hessienne
    Par pseudocode dans le forum Traitement d'images
    Réponses: 15
    Dernier message: 02/05/2007, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo