Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Simulation mécanique - Quadcopter



  1. #1
    PsyKoBoY

    Simulation mécanique - Quadcopter


    ------

    Bonjour à tous,

    Je me lance dans la réalisation d'un Quadcopter. Pour programmer le micro-contrôleur, j'aimerai faire des essai sur des simulations Java.

    Je cherche donc à écrire le moteur physique (ultra simpliste et adapté à mon cas) de gestion de la position du quadcopter en fonction de la poussé des moteurs de chaque coté.

    Pour simplifier, je travail en 2D. Mon quadcopter est représenté par un segment sur lequel s'appliquent 2 forcent à chaque extrémité, représentant la poussé des moteurs. (schema sur l'image)

    Mes notions de physique et de mécaniques des solides étant un peu anciennes, je sollicite votre aide. Quelle est la méthode permettant de calculer la nouvelle position et orientation de mon quadcopter en fonction des forces appliqués de chaque coté ?
    Le moment de force requiert un axe de rotation, ce qui n'est pas le cas dans la situation. D'instinct je pense que l'axe de rotation va se deplacer en fonction de la poussée de chacun des moteurs (qui peut tres bien etre différente d'un moteur a l'autre). Cela peut il se résoudre par la recherche de l'axe de rotation instantanné ?

    Je souhaite réaliser cette simu simpliste en Java, mais les bases de physique me font défaut.

    Merci de votre aide
    Cordialement,
    Alex

    -----
    Images attachées Images attachées

  2. Publicité
  3. #2
    verdifre

    Re : Simulation mécanique - Quadcopter

    bonjour,
    l'axe de rotation va passer par le centre de gravité. Il va falloir que tu te replonges dans tes cours de meca, afin de determiner la matrice d'inertie de ton truc, de plus avec des rotors tu vas avoir des couples gyroscopiques à gêrer.
    au niveau de la modelisation cela rique quand même de ne pas être du gateau.
    pour ce qui est du logiciel pour faire cela je te conseillerai volontier Vpython qui integre un petit moteur physique.
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  4. #3
    PsyKoBoY

    Re : Simulation mécanique - Quadcopter

    Verdifre, merci pour ta réponse.

    Pour moi il n'est pas évident que l'axe de rotation passe par le centre de gravité de l'objet. Si tu le dit, je te crois et vais effectuer quelques recherches.

    Pour le moment je néglige les effets gyroscopiques de rotors.

    La simulation peut elle être réalisée comme suit ?
    1. Calcul des forces créées par chaque moteur (2 forces parallèles),
    2. Calcul de la résultante incluant la force de gravité,
    3. Calcul du vecteur vitesse au centre de gravité,
    4. Calcul du moment des forces en chaque point d'application des forces moteur par rapport au centre de gravité de mon solide,
    5. Calcul de l'acceleration et vitesse angulaire,
    6. Mise à jour de la position, et vitesse angulaire.

    C'est une approche simpliste je pense, et les mécaniciens me jetteront probablement des pierres pour les aneries que je peux raconter

    Lorsque je parle de moteur physique simpliste, c'est uniquement car il ne simulera que mon cas (pas de collision, rebond, frottement, etc...). Cependant j'aimerai que la simulation de mon quadcopter soit assez réaliste.

    Pour passer sous Vpython, je vais je pense rester sous Java pour rester dans un environnement que je connais et ne pas rajouter une difficulté supplémentaire.

    Merci encore

  5. #4
    PsyKoBoY

    Re : Simulation mécanique - Quadcopter

    Bonjour,

    Je continue mes recherches. J'avoue avoir un peu de mal car je ne connais pas la dénomination de ce type d'étude et je ne sais pas trop dans quelle direction chercher.

    Pour le moment j'ai une simulation fonctionnelle mais elle ne me parait pas satisfaisante d'un point de vu "réalisme". Voici ma démarche :

    1. Je calcule mes moments de forces appliqué au point d'accroche de chacun des moteurs à partir du centre de gravité de l'objet. Je somme ces deux moment ce qui me permet de déduire la vitesse angulaire par Va = L0 / (m*r²)
    J'applique donc cette vitesse angulaire en l'intégrant par rapport au temps pour obtenir le nouvel angle de mon solide.

    2. Je réalise la somme des forces qui s'appliquent sur mon solide. Pour ce faire je somme simplement les forces de chacun de mes moteurs, en les rapportant au centre de gravité pour obtenir la résultante. J'ajoute ensuite la gravité pour calculer le déplacement du centre de gravité et le schéma ensuite est classique (loi de newton, intégration, = depalcement).
    Je pense que c'est ce dernier point qui pose problème car je pense ne pas avoir le bon raisonnement pour calculer le déplacement du centre de gravité de mon solide.

    Toujours personne pour m'aider svp ?
    Merci

  6. A voir en vidéo sur Futura
  7. #5
    LPFR

    Re : Simulation mécanique - Quadcopter

    Bonjour.
    Verdifre a raison.
    Et vous pouvez lui faire confiance en physique.
    Ce que vous avez au départ ce sont les forces des moteurs
    - La somme des ces forces vous permet de calculer l'accélération du centre de masses (pas la vitesse directement).
    - La différence entre ces forces vous donne le couple appliqué à l'engin. Avec ce couple vous pouvez calculer l'accélération angulaire (pas la vitesse angulaire directement).

    Pour calculer la nouvelle vitesse il faut faire V(t+dt) = V(t) + a.dt en vectoriel. Où dt est l'intervalle de temps entre les calculs.
    Même chose pour la vitesse angulaire.
    Puis, pour calculer la nouvelle position il faut faire x(t+dt) = x(t) + 0,5( V(t+dt)+V(t)) dt
    Même chose pour la position angulaire.

    En intégrant (c'est ce que viens de faire) on cumule les erreurs, même avec des méthodes moins rudimentaires que celle que je viens de vous donner. Donc, à long terme, si on ne corrige pas (avec la manette de commande), la vitesse et la position dérivent.
    Si vous voulez réviser vos basses en mécanique, vous avez ce fascicule (7 Mo):
    http://www.sendspace.com/file/ttrwye
    Au revoir.

  8. #6
    PsyKoBoY

    Re : Simulation mécanique - Quadcopter

    Bonjour,

    Merci pour votre réponse. Je ne remet pas du tout en doute les compétences de verdifre.
    La démarche que vous expliquez est plus ou moins celle que j'utilise, a quelques détails près (que je compte bien modifier).
    Je vais potasser le pdf en lien avant de poser plus de question car vous ne faite pas mention de la matrice d'inertie contrairement à verdifre.

    Merci encore

  9. Publicité
  10. #7
    verdifre

    Re : Simulation mécanique - Quadcopter

    Bonjour,
    je pense que de te limiter à une simulation 2 d ( tout du moins au niveau du calcul) est une erreur. Tu as un probleme qui est en 3 d, tu vas passer à coté d'enormement de choses en te restreignant au 2d
    La premiere des choses essentielle est de determiner ta matrice d'inertie. Tu peux à ce niveau commencer uniquement par un modele "grossier" en te contentant de modeliser ton engin par un ensemble de masses ponctuelles. Cela te permet d'obtenir rapidement une matrice d'inertie pas trop eloignée de la réalité et de pouvoir commencer à jouer avec.
    Je te conseille trés fortement d'utiliser des bibliotheques de simulation dynamique , ODE ou un de ses avatars, plutot que de l'ecrire toi même. En particulier le couple Vpython et Pyode te permet de faire de la simulation trés rapidement. Cela te permet de te concentrer plus sur tes equations que sur un codage qui peut être long (trés long) et douloureux (trés douloureux)
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  11. #8
    verdifre

    Re : Simulation mécanique - Quadcopter

    Bonjour,
    car vous ne faite pas mention de la matrice d'inertie contrairement à verdifre.
    on peut reussir à se passer de matrice d'inertie dans certains cas particuliers , la matrice n'est en fait qu'un moyen pratique de synthetiser ce que l'on sait sur la repartition des masses du systeme que l'on étudie. Quand on se limite à la 2 d on peut donc souvent s'en passer, mais se limiter au 2d dans ce cas est affreusement reducteur, les commandes sur les 3 axes interagissant les unes avec les autres.
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  12. #9
    LPFR

    Re : Simulation mécanique - Quadcopter

    Citation Envoyé par verdifre Voir le message
    Bonjour,
    je pense que de te limiter à une simulation 2 d ( tout du moins au niveau du calcul) est une erreur. Tu as un probleme qui est en 3 d, tu vas passer à coté d'enormement de choses en te restreignant au 2d
    La premiere des choses essentielle est de determiner ta matrice d'inertie. Tu peux à ce niveau commencer uniquement par un modele "grossier" en te contentant de modeliser ton engin par un ensemble de masses ponctuelles. Cela te permet d'obtenir rapidement une matrice d'inertie pas trop eloignée de la réalité et de pouvoir commencer à jouer avec.
    Je te conseille trés fortement d'utiliser des bibliotheques de simulation dynamique , ODE ou un de ses avatars, plutot que de l'ecrire toi même. En particulier le couple Vpython et Pyode te permet de faire de la simulation trés rapidement. Cela te permet de te concentrer plus sur tes equations que sur un codage qui peut être long (trés long) et douloureux (trés douloureux)
    fred
    Bonjour Verdifre.
    Sur cet aspect je ne suis pas d'accord avec vous.
    Vu le niveau en physique de PsyKoBoy, je pense que ça lui fera le plus grand bien de commencer en 2D et en faisant le calcul lui même.
    Ce sera très bien qu'il révise ce qu'est le moment d'inertie autour d'un axe avant d'utiliser la matrice d'inertie.
    Pour ce qui est d'utiliser un simulateur, je pense que c'est très bien pour ceux qui sont capables de comprendre quels sont les calculs que fait le simulateur. Je ne l'encourage pas à utiliser une "boite noire" qui donne des valeurs quand on lui injecte des données. Mais je suis sûrement de la vieille école.
    Cordialement,

  13. #10
    PsyKoBoY

    Re : Simulation mécanique - Quadcopter

    Bonjour,

    Je suis conscient que se limiter à la 2D limite les interactions et réduit très fortement la compléxitée. C'est d'ailleurs pour ca que je commence par un cas 2D, car comme l'a dit LPFR, mon niveau en méca n'est plus ce qu'il était à l'époque du lycée ou de la prépa et il me faut du temps pour dérouiller la machine. La programmation ne me fait pas vraiment peur, étant informaticien de métier.
    Les raisons pour lesquels je n'utilise pas de moteur physique tout fait sont celles qu'exposent LPFR. Je n'aime pas le concept de boite noire lorsque l'on veut comprendre ce qui se passe.
    Bien evidement avant de passer sur le quadcopter réel, je testerai mon algorithme en 3D avec eventuellement une API physique à ce moment la. Je pense qu'une fois le modèle physique assimilé en 2D, le portage vers la 3D n'en est que plus facile (que de commencer par le modèle 3D j'entends)

    Cela dit je pense que j'ai réussi à avoir un comportement correct en retouchant legerement la méthode que je vous ai détaillé, en apportant les modifs que vous évoquiez tous les deux.

    Merci encore,
    Alex

  14. #11
    verdifre

    Re : Simulation mécanique - Quadcopter

    bonjour LFPR
    Je comprend parfaitement votre point de vue, mais à mon avis cela depend fortement des objectifs poursuivis. Si l'objectif est de faire une simulation afin de pouvoir valider une conception, le "detail" des equations n'est pas forcément le plus important, bien que la demarche soit au final risquée.
    de cepoint de vue je crois plus prejudiciable une simulation simple mais fondamentalement incomplete qu'une simulation un peu plus complete mais pas forcément bien maitrisée. (Je suis d'accord c'est charybde et scylla)
    On peut aussi , mais alors la il faudrait un forum complet, voir cela sous l'angle du débat entre la methode inductive et la methode deductive.
    Aprés ta remarque, je ne sais plus forcément ou me placer entre la complexité du modèle "réel" et des options de simulation qui me semblent dangereusement insuffisantes
    cordialement
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

Discussions similaires

  1. Logiciel de simulation à la fois mécanique et fluide
    Par coincebulle dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 10/03/2010, 10h09
  2. simulation mécanique quantique
    Par tithai000 dans le forum Physique
    Réponses: 4
    Dernier message: 25/06/2008, 23h19
  3. simulation mécanique des fluides
    Par SpOcK dans le forum Physique
    Réponses: 3
    Dernier message: 27/03/2008, 23h06
  4. Simulation mecanique classique d'un astronef
    Par vinchh dans le forum Physique
    Réponses: 0
    Dernier message: 16/03/2008, 17h48
  5. Simulation de mecanique
    Par nemohck dans le forum Physique
    Réponses: 5
    Dernier message: 14/12/2007, 13h31