Contrôle en position d'un moteur

Bonjour, je ne m'y connais pas très bien pour l'instant en Arduino mais au bout d'une semaine j'ai réussi à balayer ce qui concerne le contrôle en position d'un moteur. Dans l'idéal, je dois pouvoir piloter un profil d'aile en le faisant osciller entre deux positions angulaires avec une certaine fréquence, et ceci avec une bonne précision et une résolution de l'ordre du degré voire moins. Ce profil d'aile et le moteur qui l'accompagne sont montés sur une petite structure que j'ai équipés de capteurs de force (accéléromètres). J'ai donc essayé et envisagé plusieurs solutions et j'en suis arrivé là :

  • j'ai utilisé l'encodeur optique de mon moteur DC emg30 avec un asservissement PID en position pour le piloter : c'est très bien pour faire des montés brusques (genre un créneau) sur des angles déjà assez importants (plus de 40°) mais pour les déplacements très petits de l'ordre du degré la consigne en vitesse donnée au moteur étant faible, il ne démarre et ne va pas à sa position. Pour effectuer un mouvement sinusoidal entre deux positions, il me faut changer la consigne très souvent temporellement et donc on se retrouve dans le problème d'un petit déplacement. De plus l'encodeur de mon moteur arrive à une résolution d'1°.

  • j'ai également essayé avec un moteur pas à pas, le contrôle en est beaucoup plus simple, mais le problème sont les à-coups qui font trembler la structure et font beaucoup de bruit sur les mesures au niveau des capteurs.

J'avais pensé à utiliser un moteur brushless à la place du moteur DC, mais je me demande si les caractéristiques d'un tel moteur pourraient me permettre d'effectuer le mouvement que je veux faire et également si cela se pilote de la même façon que mon moteur DC. Si vous avez des idées ou des reflexions, n'hésitez pas à répondre.

Salut,

Avec un brushless tu auras surement les même problème qu'avec un DC. Le pas à pas me semble mieux indiqué, si tu as des problèmes de tremblements deux solutions possibles :

  • faire du microstepping : demi-aps, quart de pas ... jusqu'au seizième de pas. Ca réduire considérablement les tremblements. Le mieux pour le faire est d'utiliser un driver dédié (TB6560, TMC 222 ... )
  • utilisé une réduction : les moteurs avec des réductions trembleront moins puisque l'écart le gap d'angle sera plus petit mais seront évidemment moins rapide

Concernant le micro-stepping, j'ai mis en œuvre un DRV8824 de Ti qui est dispo sur un module Pololu (qui porte le même nom) que je recommande. Il permet 32 µPas.

L'application est très différente mais je voulais également avoir une sortie directe sans réduction et un mouvement très fluide. J'ai écrit quelques articles sur mon blog et fait quelques vidéos.

C'est ici :

http://modelleisenbahn.triskell.org/spip.php?article71
http://modelleisenbahn.triskell.org/spip.php?article72

Mais du coup même en microstep y'a trop de vibrations ?

Pas une fois soudé la broche fast decay et réglé le courant assez bas. Le comportement est alors nickel.

Et au niveau des mouvements que ça autorise on peut avoir des oscillations avec une fréquence assez élevée (genre 2-3Hz) entre deux points distants angulairement de quelques dizaines de degrés ?

Après les vibrations pourraient ne pas être un problème mais ça dépend. Les capteurs que j'utilise sont très précis et donc très sensibles (des forces de l'ordre du gramme voire moins) mais si les vibrations ont un comportement assez sympathique ça peut se filtrer en spectral. Par contre ce qui m'intéresse c'est la précision et la fluidité du mouvement. Du coup ce que tu as fait me parait vraiment intéressant. Tu pourrais me guider un peu dans la mise en oeuvre si jamais je me dirigeais vers cette solution ?

Herr_Spaetzle:
Et au niveau des mouvements que ça autorise on peut avoir des oscillations avec une fréquence assez élevée (genre 2-3Hz) entre deux points distants angulairement de quelques dizaines de degrés ?

Après les vibrations pourraient ne pas être un problème mais ça dépend. Les capteurs que j'utilise sont très précis et donc très sensibles (des forces de l'ordre du gramme voire moins) mais si les vibrations ont un comportement assez sympathique ça peut se filtrer en spectral. Par contre ce qui m'intéresse c'est la précision et la fluidité du mouvement. Du coup ce que tu as fait me parait vraiment intéressant. Tu pourrais me guider un peu dans la mise en oeuvre si jamais je me dirigeais vers cette solution ?

bonjour
ton souhait semble etre "bien cerné" et assez pointu
tes essais de profil d'aile sont fait fait sur banc statique ou dynamique ?
je suppose (fortement :grin: ) que tu ne recherche pas à faire du 360° , ni meme du 180° ?
ton amplitude de debattement max est de quel ordre ?

Herr_Spaetzle:
Et au niveau des mouvements que ça autorise on peut avoir des oscillations avec une fréquence assez élevée (genre 2-3Hz) entre deux points distants angulairement de quelques dizaines de degrés ?

:.

J'ai pas testé des mouvement rapides.

Mon moteur est un 400pas/tour, avec 90°/s (30° et 3Hz) soit 312,5µs par µpas
Je dirais que ça va être tendu. Le DRV a une fréquence de pas maxi de 250KHz mais au delà d'une fréquence bien plus basse, le moteur ne suit pas. Après pour les mouvement rapides, on peut baisser le nombre de µPas par pas, qui est donc à adapter dynamiquement à la vitesse de rotation désirée. Mon montage actuel ne permet pas de le faire mais je dois me remettre dessus ce week-end et, si ça peut t'aider, je peux voir à quelle vitesse angulaire je peux monter avec différent réglages pour le nb de µPas/pas.

L'aile est montée dans une soufflerie et les capteurs cherchent à récupérer la composante instationnaire des forces exercées sur l'aile. Le banc est statique dans le sens où l'aile est fixée à au moteur et au montage avec les capteurs qui lui ne bouge pas. Ce que je dois pouvoir faire c'est faire osciller l'aile entre deux positions angulaires qui ont pour gamme d'un côté [10°;60°] et de l'autre [-60°;-10°] avec une évolution sinusoidale de la position angulaire lors de l'oscillation avec des fréquences dans la gamme [0.5Hz;4Hz].

Herr_Spaetzle:
L'aile est montée dans une soufflerie et les capteurs cherchent à récupérer la composante instationnaire des forces exercées sur l'aile. Le banc est statique dans le sens où l'aile est fixée à au moteur et au montage avec les capteurs qui lui ne bouge pas. Ce que je dois pouvoir faire c'est faire osciller l'aile entre deux positions angulaires qui ont pour gamme d'un côté [10°;60°] et de l'autre [-60°;-10°] avec une évolution sinusoidale de la position angulaire lors de l'oscillation avec des fréquences dans la gamme [0.5Hz;4Hz].

Mon intuition derivée des notion de grammes pour certains points et de motorisations largement d'evidence plus lourdes, m'incitait au statique. :grin:

suggestion: DIY/recup sur de l'actionneur veloce et facilement positionnable (mais je ne me rend pas bien compte de la masse à mettre en mouvement)
Hacker/Dyer du positionneur de tete HDD , la course exploitable en ° doit tenir dans ton "cahier des charges"
est ça se commande avec du simple pont en H .

Mais il ne faut pas avoir deux mains gauches (ou deux droites pour les gauchers :grin: ) pour faire l'adaptation mecanique 8)

L'aile est pas bien lourde, moins de 100 grammes.

Le reste était un peu du chinois pour moi, j'ai quelques connaissances théoriques en électronique mais ça s'arrête à ce qu'un ingénieur généraliste peut y connaitre... Et mon truc c'est plutôt l'aéro qui va suivre que le montage du dispositif... Mais je dois me débrouiller quand même. Tu pourrais me réexpliquer un peu plus clairement (pour un néophite) ce que tu entendais ?

Herr_Spaetzle:
L'aile est pas bien lourde, moins de 100 grammes.

Le reste était un peu du chinois pour moi, j'ai quelques connaissances théoriques en électronique mais ça s'arrête à ce qu'un ingénieur généraliste peut y connaitre... Et mon truc c'est plutôt l'aéro qui va suivre que le montage du dispositif... Mais je dois me débrouiller quand même. Tu pourrais me réexpliquer un peu plus clairement (pour un néophite) ce que tu entendais ?

Bon l'aero , ça va je connais "un petit peu" :grin:
Si c'est pour faire du positionnement de profil pour modelisation en statique soufflerie
l'utilisation de ce genre de systeme de positionnement est "peut etre une solution" 8)
ça depend aussi de pas mal d'autres contraintes"
simple demonstration avec un "truc" pioché au hasard sur youtube

ce qui est etonnant là dans ta demarche (au moins pour moi :grin: )
c'est qu'en general les BE aero et les ingés attachés ne (re)cherchent pas ce genre de "solutions DIY" et se tournent vers des equipements "certifiés" K€ +++

Pas de BE, de la recherche fondamentale. Quand on a besoin d'un truc qui est pas trop de notre domaine, on se débrouille pour le développer pour pas cher pour de meilleurs résultats au final que les équipements certifiés k€ des BE...

Herr_Spaetzle:
Pas de BE, de la recherche fondamentale. Quand on a besoin d'un truc qui est pas trop de notre domaine, on se débrouille pour le développer pour pas cher pour de meilleurs résultats au final que les équipements certifiés k€ des BE...

Argument que je considere parfaitement recevable :grin:
pour simple test , rien ne t'empeche de faire en proximité un appel au don de disques durs "morts" :grin:
tu es dans quel coin ?

J'ai un disque dur à proximité là, je verrai ce que je peux en tirer. Le coin du plateau de Saclay.

Herr_Spaetzle:
Le coin du plateau de Saclay.

:grin:
Je ne sais pas pourquoi, mais je ne suis pas trop surpris
c'est un plateau où poussent generalement bien de bonnes graines 8)
Bonnes manips

Bon j'ai réussi à avoir ce que je voulais avec mon moteur pas à pas pour mon mouvement oscillatoire. Mais le problème qui persiste sont les vibrations trop importantes. Là j'ai effectué des tests avec mon moteur RS5350350 qui a 200 pas et avec 16 micropas, mais les vibrations sont encore très importantes. @jlbechennec tu avais apparemment trouvé une solution pour éliminer les vibrations, est-ce que tu pourrais me l'expliquée plus en détail ? Et est-ce que ça pourrait être rentable de plutôt passer sur du 32 micropas pour éliminer les vibrations ?

Ah et j'oubliais : est-ce qu'un moteur pas-à-pas avec plus de pas ou peut-être avec plus de couple pourrait m'aider également à éliminer les vibrations ?

Quand le moteur passe d'un micro-pas à l'autre le saut est d'autant plus brutal que le couple et donc le courant sont fort. Donc j'aurais tendance à dire l'inverse.

Voici le moteur que j'utilise http://www.selectronic.fr/moteur-pas-a-pas-modele-pap-2.html mais avec un courant qui est aux 2/3 du max.

Plus il y a de pas et micro-pas et plus le mouvement sera doux.

Sur mon appli, je n'avais pas vraiment de vibration mais un léger pompage que j'ai éliminé est réglant le DRV8824 en fast decay. Par ailleurs, c'est le comportement visuel qui m'intéresse. J'imagine que des vibrations peuvent être détectables avec tes capteurs mais invisibles à l'œil nu.

A l'oeil on les voit pas trop les vibrations, juste un peu au bout de mon aile en alu qui fait une dizaine de cm et fixée sur le moteur. En revanche quand je pose le doigt sur mon portique qui soutien le moteur, je sens les vibrations. Comme tu l'as dit, j'ai essayé en abaissant l'intensité et effectivement ça c'est calmé pour les vibrations mais elles sont encore présentes.