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 :

Millie: simuler une girouette (mecanique des fluides, différences finies, etc.)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Millie: simuler une girouette (mecanique des fluides, différences finies, etc.)
    Bonjour,

    Voilà mon idée à l'air un peu bête comme ça mais je souhaiterais réaliser un logiciel permettant de simuler une girouette ou plus généralement un ensemble de mobile contraints ou non (pivot etc.) soumis à la force du vent.
    Je ne souhaite pas obtenir une simulation quasi-exact car je sais que l'équation de Navier-Stokes est très difficile à résoudre. Je pense que considérer l'air comme un liquide parfait ne serait déjà pas trop mal (viscosité=0 et pas compression).

    J'ai lu l'article de Millie (que je remercie au passage) ainsi que divers documents sur le net mais je ne vois pas vraiment comment faire le lien entre le mouvement des mobiles et la mécanique des fluides.

    Voici plus ou moins où j'en suis:
    Dans la méthode Millie, on utilise une astuce qui consiste à ne connaître la pression que par son gradient. La première étape serait donc de recalculer le champ de pression (ça devrait être faisable à une constante près: conditions initiales).
    Ensuite, les forces s'appliquant à ma girouette représentée par des facettes (en 3D, sinon des segments en 3D) sont égales à la pression x la surface de chaque facette. De là, connaissant la matrice d'inertie de ma girouette, je peux calculer son accélération, donc sa vitesse, donc son déplacement.

    Bon vous me direz que là j'ai déjà presque la solution... Le hic' c'est que je pense qu'il y a un problème dans mon raisonnement. En effet, le fait de déplacer un corps dans un liquide perturbe le liquide. Prenez une plaque dans de l'eau. L'eau est immobile, si je bouge la plaque, l'eau bouge... Donc ma girouette quand elle tourne suite au vent doit perturber le vent également.

    J'ai pris une girouette mais je souhaiterais être capable de gérer d'autres cas plus généraux. Je trouvais que c'était sympa l'idée que ma girouette se câle sur mon flux d'air . C'est un bon moyen de débugguer mon applicaton

    Je cherche d'autres personnes pour se lancer dans ce projet avec moi!

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Rodrigue Voir le message
    Donc ma girouette quand elle tourne suite au vent doit perturber le vent également.
    Ca doit être une grosse girouette, dit donc.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Déjà une question.

    Sais tu déplacer ta girouette si tu connaissais la vitesse du vent à chaque point de ta girouette ?

    Si c'est le cas, il faudrait a priori ajouter la girouette dans le champ de fluide. Puis ajouter une vitesse nul au sein de la girouette à chaque itération. (un peu comme pour l'ajout d'obstacle sauf que je considérais que mes obstacles ne bougaient pas).

    Et pour un liquide, en général, les perturbations sont plus fortes que pour du vent... Comme le dit pseudocode, il est possible que la girouette n'impacte pas vraiment. et en général, le vent est à la même vitesse en tout point autour de la girouette (d'autant plus qu'il n'y a en général pas d'obstacle autour d'une girouette)

    EDIT : Et puis ta girouette est en 3D. Mon modèle était en 2D

  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
    Tout d'abord merci à vous deux de vous intéressez à mon problème .

    Ca doit être une grosse girouette, dit donc.
    Oui, lol . Localement, elle perturbe quand même le vent...
    C'est surtout l'histoire de la plaque qui bouge qui m'intéresse.

    EDIT : Et puis ta girouette est en 3D. Mon modèle était en 2D
    Non au départ on va le faire en 2D mais si j'ai les algorithmes, je ne vois ce qui m'empêcherait de passer à la 3D. J'ai déjà tous les outils nécessaires pour faire ça

    Sais tu déplacer ta girouette si tu connaissais la vitesse du vent à chaque point de ta girouette ?
    En considérant le problème en 2D, si je connais les forces s'appliquant sur les différents segments de ma girouette, ainsi que l'inertie de celle-ci par rapport au centre de rotation, je pense que oui

    A partir des forces, je calcule les couples et comme je sais que:
    \sum_{i}^{N} C_i = I dw/dt

    En discrétisant l'équation, je peux calculer la rotation de la girouette.

    Si c'est le cas, il faudrait a priori ajouter la girouette dans le champ de fluide. Puis ajouter une vitesse nul au sein de la girouette à chaque itération. (un peu comme pour l'ajout d'obstacle sauf que je considérais que mes obstacles ne bougaient pas).
    J'aurais quelques questions concernant ton code justement... Je vais les poser dans un prochain post pour plus de clarter.

    Et pour un liquide, en général, les perturbations sont plus fortes que pour du vent... Comme le dit pseudocode, il est possible que la girouette n'impacte pas vraiment. et en général, le vent est à la même vitesse en tout point autour de la girouette (d'autant plus qu'il n'y a en général pas d'obstacle autour d'une girouette)
    Mais si je veux tenir compte de ce phénomène comment puis-je faire? La girouette ou la plaque exerce une force sur le liquide. Y-a-t'il moyen de setter des forces dans le liquide? Ou alors des vitesses aux interfaces égales à la vitesse de ma girouette?

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Rodrigue Voir le message
    Mais si je veux tenir compte de ce phénomène comment puis-je faire? La girouette ou la plaque exerce une force sur le liquide. Y-a-t'il moyen de setter des forces dans le liquide? Ou alors des vitesses aux interfaces égales à la vitesse de ma girouette?
    Si tu fais une simulation par programmation dynamique, tu dois pouvoir modifier le sens du flux aux points de contact entre l'air et la girouette. Le transfert d'energie cinetique doit pouvoir se calculer avec les formules classiques (somme des forces), enfin je pense.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Il faut probablement utiliser les vecteurs vitesses du fluide autour de la girouette pour faire bouger la girouette.

    Ensuite, il faut utiliser la partie avec les obstacles.

    Maintenant, sache que mon procédé de simulation de fluide est fait pour être utilisé en temps réel, il y a beaucoup de simplification (notamment discrétisation très simpliste de l'espace) dans l'unique but d'avoir des calculs rapides. Avec quelques changements (par exemple si l'on augmente par 2 la taille du quadrillage, ça plombe les performances rapidement).

    L'ordre de grandeur est forcement en f(n²) ou n est la taille du quadrillage.
    Si tu passes en 3D, tu vas avoir un f(n^3), il est fort possible que le "framerate" soit divisé par 100, ce qui va donner un truc plus du tout temps réel.

Discussions similaires

  1. Simuler une listbox avec des couleurs
    Par Invité dans le forum Contribuez
    Réponses: 9
    Dernier message: 19/03/2020, 20h49
  2. mecanique des fluides
    Par stage75 dans le forum C
    Réponses: 5
    Dernier message: 12/05/2011, 17h53
  3. Réponses: 3
    Dernier message: 13/06/2010, 00h44
  4. Simuler une POO avec des structures?
    Par MPEG4 dans le forum C
    Réponses: 10
    Dernier message: 21/07/2008, 13h35

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