Suivi de la rotation avec une précision extrêmement élevée

14

Je voudrais suivre la position angulaire d'un bras rotatif motorisé assez lent (entraînement direct; voir l'illustration ci-dessous) - mais j'ai besoin d'une précision angulaire inférieure à 0,05 ° et d'une résolution similaire.

Comme @gbulmer l'a noté dans les commentaires, cela équivaut à suivre l'extrémité du bras positionnellement le long de la circonférence, avec une précision de (2 × π × 10cm) / (360˚ / 0,05) = 0,08 mm.

dessin

Existe-t-il actuellement un capteur ou une méthode électronique réalisable qui puisse atteindre ce niveau de précision dans la détection rotationnelle sans dépenser une fortune?


Voici ce que j'ai essayé jusqu'à présent, du plus simple au plus complexe:

  • Boussole / magnétomètre numérique: j'ai commencé avec ça; mais évidemment loin de la performance que je recherche.

  • Encodage rotatif: Encodage basé sur un potentiomètre / basé sur un capteur à effet Hall: Impossible d'obtenir une résolution suffisante et il y a une erreur de linéarité importante.

  • Vision industrielle: J'ai essayé de placer un marqueur optique sur la pointe du bras (car la pointe trace l'arc le plus long) et d'utiliser la caméra (OpenCV) pour suivre la position du marqueur: ne pouvait pas résoudre si bien les très petites rotations, étant donné la durée de rotation du bras une zone de 10x10 cm.

  • Encodeur magnétique: j'étudie actuellement l'utilisation de AS5048, un encodeur rotatif magnétique d'AMS, positionné avec le centre du capteur à la position de l'arbre du moteur. Quelque chose comme ça:

entrez la description de l'image ici

sasha
la source
1
Pourquoi ne pas envisager un codeur à arbre (il peut également être magnétique)? Les codeurs en quadrature peuvent avoir une précision assez élevée. Prenez-en un avec 2000 lignes. Après la quadrature, ce sera 8 000 impulsions par tour. 360/8000 = résolution de 0,045 degré
Eugene Sh.
BTW, le système est-il adapté?
Eugene Sh.
@EugeneSh: Le système n'est pas adapté. Direct-drive. Aussi, le problème avec les encodeurs de position rotatifs pour autant que je l'ai vu, c'est que même si leur résolution est élevée, leur précision fait défaut. L'erreur pour un codeur magnétique rotatif, par exemple, peut atteindre 1 degré, sur la base des fiches techniques. Les encodeurs optiques que vous avez vus sont-ils nettement meilleurs dans ce sens?
sasha
Juste pour vérifier que j'ai compris, je calcule que vous voulez connaître la position de la pointe du bras à une résolution et une précision de qui est de 0,008 cm, ou 80µm. Est-ce exact? Le moteur est-il capable d'une telle précision? (2×π×10cm)/(360˚/0,05)
gbulmer
3
Voulez-vous partager un vrai problème ici? Peut-être que la solution est beaucoup plus simple et se situe sur un plan différent.
Eugene Sh.

Réponses:

12

Ce que vous faites est possible, mais je ne vois pas comment vous allez le faire à moindre coût.

.05 degrés (3 minutes d'arc) implique une résolution de 7200 comptes / tour, ou l'équivalent de 13 bits (8192). Pire encore, puisque vous essayez de faire une boucle de position, vous aurez besoin d'au moins un bit supplémentaire de résolution ou d'un système 14 bits. Le problème réside dans le fait que votre boucle de position ne peut pas détecter une erreur de moins d'un bit, donc si le bras commence à dériver, le capteur d'angle ne le détectera pas jusqu'à ce que la sortie soit à un bit. La boucle de position repoussera le bras dans l'autre sens et arrêtera de le conduire lorsque l'erreur retombera à zéro. Mais cela permettra au bras de basculer dans l'autre sens jusqu'à ce qu'il obtienne un compte dans la direction opposée, etc. , 99, 100, etc.

Je suggère qu'un encodeur optique est votre meilleur choix, mais un encodeur 14 bits (16 384 ppr) ne sera pas bon marché. Une autre possibilité est un résolveur ou synchro, avec un RDC ou SDC (résolveur / convertisseur numérique ou convertisseur synchro / numérique) comme deuxième possibilité, mais cela coûtera encore plus. Les synchros / résolveurs ont 2 inconvénients. Tout d'abord, ils ont été généralement remplacés par des encodeurs optiques, donc ce que vous trouverez sur le marché sont principalement des unités excédentaires. Deuxièmement, la précision n'est généralement pas adéquate. Les résolveurs de taille 23 sont généralement évalués à environ 5 à 10 minutes d'arc, vous aurez donc besoin d'une unité de haute précision et bonne chance pour en trouver un.

Inductosyns vous donnera une résolution et une précision exceptionnelles, mais coûtera encore plus qu'un encodeur optique. Essentiellement, vous avez besoin d'un RDC haute vitesse pour lire la sortie.

Votre préoccupation concernant la précision de l'encodeur optique est basée sur le papier d'un fabricant spécifique, mais c'est essentiellement une pièce effrayante. Les possibilités d'erreur sont les mêmes pour tous les fabricants, et le fabricant lié n'est pas en quelque sorte meilleur que les autres fabricants. Généralement, pour les codeurs de précision, la précision est la même que la résolution.

Bien qu'il soit possible d'obtenir des encodeurs optiques avec des sorties parallèles, vous êtes probablement mieux avec un encodeur incrémental et en roulant votre propre compteur / décompteur. Si vous suivez cette route, vous utiliserez le signal "home" pour réinitialiser le compteur de position à chaque fois que vous allumez le système.

WhatRoughBeast
la source
Merci pour une réponse équilibrée et réaliste. On dirait que je devrais donner un codage optique / incrémental et si cela fonctionne, nous sommes bons. Je serais également curieux de savoir ce que vous pensez de l'approche que j'ai décrite dans mon dernier paragraphe en utilisant un encodeur magnétique linéaire avec un anneau magnétique multipolaire du type recommandé dans la fiche technique de l'encodeur.
sasha
@sasha - Je pense que vous devez regarder très attentivement le processus requis pour produire un anneau magnétique. Je doute fort que vous puissiez le faire vous-même. Alors que la fiche technique suggère que des tolérances plutôt relâchées peuvent être utilisées, je serais très méfiant vis-à-vis d'un tel "quelque chose pour rien". De plus, à moins que vous n'ayez les moyens de vérifier la précision à 3 min / 80 microns, je pense que vous feriez mieux de laisser les pros faire face aux éventuelles inexactitudes. Gardez à l'esprit le document lié.
WhatRoughBeast
C'est noté! Cela dit, j'aurais dû être clair: j'avais l'intention d'utiliser l'anneau magnétique (multipolaire) conçu de manière compatible prescrit par AMS lui-même dans la fiche technique AS5311; c'est l'anneau: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
sasha
@sasha - C'est bien, mais le problème que j'ai est de savoir comment vous montez l'anneau précisément concentrique avec l'axe de l'arbre. Toute excentricité apparaîtra dans l'angle récupéré.
WhatRoughBeast
4

Je pense que ce que OP suggère n'est pas du tout une mauvaise idée. Ce qu'il veut utiliser est un anneau prêt à l'emploi: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , il a 128 pôles = 64 paires de pôles. La résolution est de 16 bits = 65536, max 305 tr / min.
Si vous démontez un encodeur optique haute résolution, vous découvrirez qu'il est presque impossible d'aligner le détecteur sans outils spéciaux.En effet, l'utilisation de cette nouvelle méthode rend cela très simple.
Vous auriez besoin d'une machine de tournage pour ajuster correctement l'anneau, puis placez le capteur à une distance rapprochée, aucun alignement spécial n'est requis. Le capteur lui-même est disponible en versions de kit déjà soudées sur la carte de dérivation, ce dont vous auriez besoin est un capteur de référence supplémentaire - un espace avec un photodétecteur, puis vous pouvez référencer l'encodeur dans une paire de pôles avec une combinaison de sortie d'index + capteur de référence ext.

Marko Buršič
la source
Le "capteur de référence supplémentaire" est juste pour la position absolue, n'est-ce pas? (similaire au fin de course dans le cas d'un mouvement pas à pas CNC). Pouvez-vous également expliquer votre suggestion d'utiliser une «machine à tourner pour faire un bon ajustement»? Voulez-vous dire, comme une rainure pour l'anneau pour s'asseoir? Si oui, comment pouvez-vous garantir que la rainure est en position parfaite, alors que la coupe CNC elle-même pourrait ne pas être aussi précise?
sasha
@sasha Une machine à tourner pour le montage de l'anneau magnétique, le poste ext. capteur pour détecter la référence. Le capteur ext + l'impulsion zéro de l'encodeur vous assureront toujours la même référence absolue, qui dans votre cas peut ne pas être nécessaire. J'ai fait un montage LIDAR en utilisant des pas à pas à micropas et des réducteurs planétaires, sans rétroaction - la seule position absolue était des interrupteurs de fin de course pour éviter de tourner et de déchirer les câbles. Supposons que vous deviez faire référence à un certain objet puis faire des mouvements relatifs, de cette façon le LIDAR fonctionne, si vous n'avez pas besoin d'une position zéro de référence.
Marko Buršič
4

Comme c'est une question de brainstorming, et WhatRoughBeast a déjà mentionné tout ce que je considérerais, pourquoi ne pas ajouter les lecteurs harmoniques à la liste? En théorie (je n'ai pas vérifié avec des estimations empiriques ou les premiers calculs), il vous permet d'obtenir facilement un rapport de démultiplication de 20: 1 sans jeu (100: 1 est courant), ce qui ramène le nombre d'étapes requises à 720 / tr . Cela pourrait valoir la peine d'être examiné. Les entraînements harmoniques ne sont pas bon marché, mais ils sont généralement beaucoup moins chers que les capteurs haute résolution, en particulier pour ce rapport d'engrenage.

Monsieur Mystère
la source
3

Si vous avez besoin d'une résolution sur l'arbre de sortie correspondant à 13 bits, vous avez besoin de plus de bits supplémentaires, au moins 1 bit pour le contrôle en boucle fermée est le must. Le problème suivant est que les fabricants annoncent la résolution mais n'annoncent pas la précision . Vous devez constamment demander la précision. Si l'erreur est reproductible, vous pouvez améliorer la correction logicielle.

Un autre problème si vous avez besoin d'une solution extérieure robuste. Si oui, alors l'encodeur magnétique est une option. Mais l'encodeur magnétique peut avoir une erreur périodique répétable importante, que vous devez éliminer dans le processus d'étalonnage en utilisant un autre encodeur optique étendu. Mais vous avez besoin d'un gabarit de largeur encore plus précise.

L'interpolation Sin / cos (optique ou magnétique) augmente la résolution mais ajoute également une erreur aléatoire.

Il faut pouvoir fabriquer avec la précision souhaitée, une concentricité particulière. Vous devez également tenir compte de la bande passante car lorsque vous augmentez la résolution, un mouvement plus rapide peut dépasser la bande passante autorisée (par exemple, la fréquence de sortie en quadrature). Au contraire, le contrôle ultra-lent est une autre discipline où l'on peut trouver des problèmes non publiés intéressants.

Si vous avez besoin de la rotation du bras de commande (pas seulement la position de la voie), la résolution de l'entraînement direct et du couple est alors un problème. La double boucle aide au contrôle mais nécessite un moteur (codeur en cas de boîte de vitesses ou pas de comptage en cas de pas à pas) et une détection de position de l'arbre.

Le codeur incrémentiel ou absolu est également une décision fondamentale.

Le conseil général est le suivant: si vous souhaitez terminer un projet, utilisez des composants professionnels coûteux (par exemple, les codeurs optiques Renishaw ATOM). Si vous jouez pour le plaisir et que le temps n'est pas important, vous pouvez alors réinventer les problèmes (cul-de-sac), découvrir les problèmes inviolables, etc. Vérifiez si vous pouvez fabriquer des appareils avec la précision requise.

TMa
la source
3

Semble parfaitement adapté à un pied à coulisse numérique, normalement utilisé pour mesurer des distances précises, voir:

Comment fonctionne un pied à coulisse électronique?

Ils sont similaires aux encodeurs capacitifs (que vous avez déjà vus dans http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).

La partie électronique d'un pied à coulisse numérique linéaire peut probablement être réutilisée, vous n'avez donc qu'à créer un quart de disque avec le motif correct.

PS: La précision vous permettrait même de travailler avec un modèle linéaire standard.

user103185
la source
2

Voici ma nouvelle idée, encore une autre histoire de moteur pas à pas :-)

entrez la description de l'image ici

Cliquez sur l'image animée pour voir la résolution intégrale. Ici, vous utilisez le moteur pas à pas comme règle mobile. Il y a un aimant sur le bout de la main principale. Les lignes rouges indiquent la direction attendue du flux magnétique. En supposant que le moteur pas à pas ressemble à celui sur Wikipédia. Il a 3,6 degrés d'un pas complet. Pour une portion supposée linéaire du champ, vous avez besoin de 3,6 / 0,05 = 72 combinaisons de 7 bits. Cela signifie qu'un ADC 10 bits d'un microcontrôleur ordinaire fera très bien l'affaire pour une plus grande plage non linéaire. Une fois que vous avez fait le mécanisme, analysez le modèle d'approximation et choisissez la partie la plus linéaire, avec un logiciel de mappage en ligne et choisissez les bordures de la règle pour cette configuration particulière.

Les moteurs pas à pas ne sont pas parfaits. Selon wikipedia, ils peuvent avoir jusqu'à 5% d'écart entre les dents. Pour mesurer l'erreur, vous pouvez étendre les bordures principales de la règle avec des bordures secondaires, qui doivent simplement suivre le modèle de dégradé de l'analyse précédente de sa bordure voisine.

De plus, il vaut mieux piloter le moteur pas à pas avec micropas pour éviter les accélérations +/- qui peuvent impacter les échelles de configuration, je pense qu'au moins vous devez faire un demi pas.

Ayhan
la source
Il est peu probable que les moteurs pas à pas soient meilleurs que les codeurs - et le micropas est notoirement non linéaire.
Chris Stratton
Le micros pas n'est pas pour référencer quoi que ce soit, aucun pas intermédiaire statique requis. C'est juste pour éviter l'accélération. @ChrisStratton
Ayhan
1

Traitant de la mécanique, commencez par la mécanique d'abord.

entrez la description de l'image ici

En tournant le grand engrenage (R2) pour un angle, le petit engrenage (R1) tourne pour un angle R2 / R1 fois plus grand.

Par conséquent, si vous traitez avec une précision d'angle très extrême sur un rayon donné (R), vous pourriez avoir une précision d'angle n fois plus grossière sur un rayon n fois plus petit (c'est-à-dire R / n).

Dans votre cas, vous pouvez installer un gros engrenage sur l'axe du bras et y attacher un petit engrenage, puis interfacer un capteur plus gros avec le petit.

De nombreuses autres méthodes d'engrenage sont connues et utiles, à partir du wiki .

asndre
la source
Il introduit un jeu et une fabrication précise pose problème. En d'autres termes, il augmente définitivement la précision mais la précision est importante.
TMa
1

Vous devriez faire un deuxième mécanisme sur le bord de la main, pour diviser les marches du centre par un mécanisme linéaire comme dans le système optique du pilote de cd-rom. De cette façon, il pourrait être plus facile et suffisant d'implémenter tout le système en boucle ouverte en utilisant également un moteur pas à pas au centre et de le piloter par micropas pour éviter des amplitudes d'accélération très élevées.

Ayhan
la source
1

Les limitations physiques dans l'espace autour du bras mobile peuvent exclure cette solution, mais vous êtes ici - une autre approche de vision industrielle bon marché. La précision peut être ajustée en changeant le grossissement de l'objectif. une autre approche de vision par ordinateur

szulat
la source
0

Je ne sais pas ce que vous considérez comme une fortune, mais vous voudrez peut-être envisager http://www.inductosyn.com/

Champs EM
la source
+ J'étais sur le point de poster pour envisager soit des résolveurs soit des
RVDT
3
C'est une réponse assez faible, n'étant essentiellement qu'un lien. Mieux vaut expliquer un peu à quoi vous vous connectez.
tcrosley
@tcrosley: Dans ce cas, au lieu de fournir une conception entièrement étoffée et une description exhaustive du circuit, (comme c'est généralement mon habitude), j'ai choisi de fournir le lien car il fait référence à un appareil / système capable de résoudre 360 ​​degrés en 7200 pièces par degré d'angle, et a laissé l'essentiel des efforts et de la conception au PO. Pourquoi est-ce que ça fait de moi un méchant?
EM Fields du
2
@EMFields Mon problème n'était pas que vous n'ayez pas fourni votre propre conception, mais ce n'est pas une bonne idée de simplement publier un lien ici comme réponse, car cela peut mal tourner à un moment donné - quelqu'un devrait publier à la fois un lien et une sorte de texte d'accompagnement afin qu'un lecteur puisse rechercher un article ou une technologie similaire même si le lien n'est plus valide. Dans votre cas, vous avez publié un lien vers la page d'accueil d'une entreprise, qui est moins susceptible de mal tourner. Voir «Fournir un contexte pour les liens» sur cette page .
tcrosley
1
@tcrosley: J'apprécie votre point, mais juste le nom de marque "Inductosyn" (qui pourrait bien être proche d'un terme générique, maintenant) devrait mettre une question sincère sur le chemin de l'illumination, que la cible du lien soit vivante ou morte. Google "Inductosyn" et vous verrez qu'il y a beaucoup plus d'informations que je ne voudrais passer une soirée en perroquet.
EM Fields,
0

Une autre option très intéressante, si votre bras entre régulièrement dans une position initiale (de repos), est d'utiliser une souris optique (de jeu) ou, plus précisément, son système de détection.

Montez son capteur à l'extrémité de votre bras et fournissez un bon arrière-plan (grain fin, non réfléchissant) pour glisser. Lisez les données sur une interface de souris USB standard.

Vous aurez besoin d'un simple capteur pour calibrer la position initiale. Il faudrait expérimenter pour voir si cela fonctionne assez bien. Il devrait fonctionner principalement indépendamment de la poussière et est simple à entretenir.

user103185
la source
0

Vous pouvez peut-être envisager d'utiliser un encodeur optique linéaire à l'extrémité de votre bras pivotant et utiliser une bande de code flexible comme celle-ci , qui a jusqu'à 2000 lignes par pouce. Si vous voulez aller super bon marché, vous pouvez utiliser un encodeur linéaire comme celui-ci , mais il ne monte que jusqu'à 150 lignes par pouce, donc une résolution de 40 microns (puisqu'il s'agit d'un encodeur en quadrature). Si vous n'êtes pas sensible à une gigue dans le système d'entraînement, vous pouvez l'utiliser directement. Sinon, vous pouvez étendre le bras sous votre application et étendre le code plus loin. Vous pouvez même imprimer votre propre bande de code si vous avez une imprimante avec un DPI de 1000 ou plus.

Bonne chance!

Madcowswe
la source