Aide choix - Codeur de servo

  • Auteur de la discussion wapiti
  • Date de début
G

gaston48

Compagnon
Il serait intéressant de choisir la résolution du codeur en fonction du pas de la vis et la résolution voulue, de sort que l’interpolateur (Mach3…) fera le minimum possible d’erreur de quantification.
Bonjour,
C'est un aspect qu'on peut effectivement prendre en compte, mais par précaution.
car sous linuxcnc, ça ne pose pas de problèmes, (tout comme le passage en pouce avec de la mécanique métrique)
tous les calculs se font en double précision et on peut donc préciser un scale de conversion sous le format double.
Ensuite il y a ce qu'on peut faire au niveau du drive, je ne connais pas DG4S, mais sous le BRB / BRC de machdrives
on peut paramétrer un scale supplémentaire pour retomber sur des chiffres ronds et le scale peut même
s'exprimer sous la forme d'un ratio. j'imagine qu'en interne le calcul ne produira pas d'erreur cumulative.

Concernant le DG4S , il y a le manuel de base, mais il y a aussi la doc du paramétrage du firmware avec
une petite carte d'interfaçage , à voir s'il y a plus détail
je privilégierait une forte résolution quand même , dans les 2000 points alors, toujours pour un bon calcul
de la vitesse quand elles sont très basses (et toujours suivant les conseils du drive BRB/BRC que je connais
 

Fichiers joints

  • BRB BRC User Manual.pdf
    1.6 Mo · Affichages: 62
Dernière édition:
G

gaston48

Compagnon
Voilà le paramétrage du DG4S:
à voir sous quelle format on peut rentrer le "step multiplier " ?
entier ? réel ?
 

Fichiers joints

  • Servoconfigurator3_users_manual_eng.pdf
    699.5 KB · Affichages: 63
W

wapiti

Compagnon
@Gaston : j'ai les mesa 7i77 5i25 7i78 pour gérer :
les 3 axes servo indramat
le 4eme axe pas à pas zebotronic
la broche et son codeur
:wink: j'ai racheté une broche HF refroidie par eau de 2.2kw (pour faire comme bruno 26 sauf que ça va être plus la misère pour la fixer) mais j'aimerais qu'elle soit pilotée, je ne sais pas si le masso G3 peut piloter 2 broches...

même si j'ai les mesa, je trouve le principe du masso sans PC tres avantageux, il est probable que j'oblique vers un systeme de ce genre...on verra...

@saci: Merci pour la remarque pertinente,
Les vis à billes ont un pas de 5mm
Les regles ont une resolution de 0.005mm (anilam B5)

Liz a préparé la facture avec des 2048ppr mais j'ai pas encore payé, je peux peut etre changer...

Merci pour le servoconfigurator Gaston :wink: j'arrive plus à suivre là mais une fois la commande passée bein la commande est passée, je buche la littérature...

Manger faim nourriture :wink:
Bon app messieurs
 
S

saico

Apprenti
tous les calculs se font en double précision et on peut donc préciser un scale de conversion sous le format double.
Ensuite il y a ce qu'on peut faire au niveau du drive, je ne connais pas DG4S, mais sous le BRB / BRC de machdrives
on peut paramétrer un scale supplémentaire pour retomber sur des chiffres ronds et le scale peut même
s'exprimer sous la forme d'un ratio. j'imagine qu'en interne le calcul ne produira pas d'erreur cumulative.

L’utilisation des calculs double précision, et mise à l’échelle par l’introduction des facteurs fractionnels de type MUL/DIV améliore nettement les erreurs de calcul de la cinématique ( trajectoires, position, vitesse, accélération, jerk…) mais ça ne règle pas le problème de la quantification car quel que soit la résolution du codeur, l’ensemble du model reste un système « discret » ou « quantifié » donc tout déplacement doit être un multiple entier de la résolution.

Dans l’exemple précèdent :

Vis de 4mm, un codeur de 2048 ppr donnera une résolution de 0.48828125 µm

Dans ce cas si l’algorithme après calculs de bonne précision, demande un déplacement de 1µm, l’ensemble « mécanique-entrainement » répondra forcément par un déplacement multiple à 0.48828125 µm et donc jamais 1µm.

Ce petit problème sera résolu en utilisant un codeur de 2000 ppr, dans ce cas tout le déplacement supérieur ou égale 0.5µm seront honorés. ( à condition qu’on respecte la résolution bien sûre ).
 
S

saico

Apprenti
Les vis à billes ont un pas de 5mm

Je vous suggère de prendre plutot des 1250ppr, c'est suffisant, mais un multiple est encore mieux (ex 2500ppr ou 5000 ppr) cela , comme la déjà mentionné @Gaston, est très important si tu veux une bonne résolution en vitesse.
 
W

wapiti

Compagnon
Merci pour ta (votre?) participation Saci , le modele K58 propose:
1250 / 2000 / 2048 / 2500 / 4096 / 5000 / 7200 ...ppr

@Gaston : dans la doc de BRB page 18 ils parlent de l'AMT-102V et du délai de calcul de son interpolation qui cree des soucis, ça rejoint ce qui est dit sur le forum cncdrive concernant ces codeurs...
 
W

wapiti

Compagnon
PS: plus la resolution augmente, plus le tarif augmente, 2500 me semble etre un bon compromis... feu?

EDIT : servoconfigurator du DG4S:
"3.5.3.Steps per input field.
A numeric decimal value should be written into this textbox. The values shown by the DROs will be divided with the „steps per” value. This is useful when the user like to see values forexample in mms or inches. Forexample if it takes 500steps for the drive to make the axis travel 1mm, then the value of 500 should be written into the steps per field to see the travel in mm units. "
pas de 5mm codeur 2500 steps :1mm=500 steps (effectivement plus commode que 2048/5...)

en plus du pc avec linuxcnc, il va falloir un pc windows pour configurer les drivers...

EDIT encore:
".2.2.11.Encoder decoding modes.
The basic resolution of an encoder is defined as Counts Per Revolution (CPR). This CPR value is the full number of pulses per one revolution of the encoder. The drive supports 2 kinds of decoding modes: "
full number of pulse per one revolution... ça fait pas doublon avec le 'step per input field' ça

P***n, vous me faites mal à la tronche :wink:

EDIT toujours:
7i77 pour les servos
7i78 pour le pap
 
Dernière édition:
S

saico

Apprenti
PS: plus la resolution augmente, plus le tarif augmente, 2500 me semble etre un bon compromis... feu?

Un avis très personnel :

Avec un codeur de 1250 ppr, le servomoteur est équivalent à un moteur pas à pas de 200 pas/tour, commandé en 1/25 ième de pas, c’est à mi-chemin entre 1/16 et 1/32 ! On trouve pas mal de machines qui fonctionnent correctement à 1/16 de pas donc j’imagine qu’a 1/25 les résolutions seront bonnes en position comme en vitesse, donc à mon humble avis, pour une machine standard, un 1250 ppr est un bon choix, un 2500 ppr est un bon compromis, un 5000 ppr est un luxe !
 
G

gaston48

Compagnon
comme en vitesse
Tu as raison concernant les aspects asservissement position
mais à mon avis non concernant la vitesse ceci avec mon expérience pratique sur le drive BRB, 1000 points c'est trop juste
c'était le gros avantage des boucles avec tachy analogique, pas de bruit quantification aux très basse vitesse,
c'était très visible avec le scope du logiciel de réglage du BRB.
BRB conseille et fournit des 2500
Un très bon asservissement vitesse c'est 99 % du travail sur une boucle PID

Ensuite, comme le logiciel de pilotage voit des pseudo pas à pas , on adapte la résolution
de pilotage dans le drive en fonction de la fréquence maxi d'entrée step du drive, ici 400 Khz
sachant qu'on est susceptible d'utiliser quand même les règles linéaires
donc ce serait une double PID l'une interne au drive, l'autre par Linuxcnc sur les règles

Il faudrait faire un point pratique aussi
Une Z1C avec glissière lisse, non synthétique, il serait prudent de na pas dépasser 5000 mm/mn
comme avance rapide.
Quelles serait alors les vitesses maxi des servomoteurs compte tenu de leur transmission
jusqu'aux vis de 5 mm ?

Sinon concernant la config Mesa, tu as 4 voies step/dir
tu as 6 voies analogiques disponible, tu peux en affecter une à la commande de vitesse du VFD
 
G

gaston48

Compagnon
dans la doc de BRB page 18 ils parlent de l'AMT-102V et du délai de calcul de son interpolation qui cree des soucis, ça rejoint ce qui est dit sur le forum cncdrive concernant ces codeurs...
il me semble qu'il y avait eu une réflexion de ce type sur le forum linuxcnc aussi et concernant son traitement PID
par linuxcnc ... Si DG4S s'en accommode quoique ? et que BRB n'aime pas, leur algorithmes ne sont peut être pas les
même . je pense que l'interpolateur de ces codeurs fonctionne un peu comme certain CAN
avec une boucle d'asservissement. C'est bien quand c'est lentement variable seulement.
Pas de soucis avec les interpolateurs à partir de signaux analogique sin/cos comme heidenhain
 
W

wapiti

Compagnon
justement, les DG4S ne s'en accomodent pas des masses, j'en avait parlé au post 6 et il y a le lien vers la discussion:

C'est cool, je retombe sur mes pattes avec les specs de l'AMT102V que cncdrive vend; par contre, il y a un client qui galere avec les AMT, le Mr cncdrive lui dit que les codeurs 'capacitive sensor' sont problematiques à cause de l'interpolation qui crée une instabilité:
"The problems with the AMT encoder is that it is a capacitive encoder and it interpolates the position with capacitive sensors to output the incremental signals.
This interpolation requires time which causes lag in the output position which can cause instability in the control loop. This is a problem especially on high encoder resolution."

forum.cncdrive.com • View topic - DG4s-8020 Driver issues

La facture est sur Alibaba, je laisse trainer une nuit de conseil mais demain matin je pense que des fonds Français vont migrer vers la Chine, ça reste modeste : 210E les 3 codeurs et le port.

Merci beaucoup Gaston et Saci pour votre participation éclairée, ce sujet va être clos et je vais rebasculer sur le sujet principal.

à+
bibi
 
W

wapiti

Compagnon
j'ai demandé 2500ppr

en reprenant ton calcul:
5000mm/min avec vis au pas de 5mm donne 1000tr/min soit 17tr/s
17tr/s avec 2500ppr ça fait 42Khz X 4 ça donne 170Hz , c'est bon pour le driver (1Mhz max)

en m'interessant à la boucle 'la regle donne un ordre de correction au codeur':
2500pulses = 1 tour = 5mm
5mm/2500 = 0.002 mm par pulse
les regles sont à 0.005mm
si la regle donne un ordre de correction, son pas de correction est 2.5 X plus élevé que le pas d'action du codeur au cul du servo, donc à priori le codeur ne devrait pas être paumé ou plutôt hésitant devant les ordres de la regle...

la démarche est correcte? en suivant les regles de la metrologie il faudrait un facteur 10 mais j'en voit pas trop l'interet...
 
G

gaston48

Compagnon
c'est bon pour le driver (1Mhz max)
Et c'est bon pour sa commande step/dir aussi (max 400 Khz)
Il y a plusieurs solutions de pilotage :
Suivant son pilotage initial: même si le PID du DG4S est susceptible de "positionner" , tu le pilotes
en mode vitesse et la boucle vitesse sera de très haute qualité, mais au lieu de piloter en +/- 10 V
tu pilotes en +/- "frequence de step" la boucle de position sera assuré par le retour des règles
ce sera à +/- 5 microns. je trouve que c'est un peu beaucoup.
Habituellement on dispose de règles au microns ou en dessous et on limite facilement l'erreur de poursuite à +/- 2 microns.

l'autre solution, c'est de partir du principe que tes vis à billes et leurs transmission sont d'une bonne précision
et tu asservis en position à partie de tes codeurs de moteur. Rien ne t'empêche de brancher quand même
tes règles sur linuxcnc et d'afficher dans un coin la dro et contrôler la précision de tes vis.
Tu peux même faire des relevés de linéarité et paramétrer un tableau de correction.
Tu parles de piloter à 0.002 de résolution (2500), tu peux piloter à 0.5 mic (2500x4)
Ensuite, il s'agit de savoir si tu crées un boucle PID position linuxcnc avec les codeurs, en plus de celle gérée par
DG4S. 2 boucle PID, c'est possible, on en revient à la première solution, au lieu que linuxcnc récupère les règles,
il récupère le codeur et il pilote la PID DG4S en vitesse
qu'elle est la meilleure boucle position ? celle de DG4S ou celle de Linuxcnc + codeur 2500 là c'est à essayer ?
 
W

wapiti

Compagnon
Bonjour Gaston,
Je te confirme que les regles sont à 5 microns (specs de la ref des regles / facture de la machine), effectivement si la précision des codeurs permet avantageusement de se passer des regles ce sera interessant: les regles impliquent une protection qui vient masquer la fixation de la bretelle de fraisage horizontal (que je ne possede malheureusement pas) et empecher son utilisation donc diminuer la polyvalence d'utilisation de la machine. J'enleverrais les regles si possible
De plus, tu verras au second plan de quoi me permettre de 'finir' les tolérances fines , tu connais il me semble :wink: (mais il me manque la contre pointe et quelques porte meule...)
IMG_20210624_082927.jpg
 
S

saico

Apprenti
Oh c’est une très belle machine…j’adore !

Juste une remarque, la vis à billes est entraînée par une courroie, ça mérite de réviser les précédents calculs en prenant en compte le rapport de réduction s’il est différent de 1:1 sur tous les axes !

Concernant la règle de mesure, Je me demande si le pas annoncé de 5µm correspond bien à la période du signal en quadrature ( A ou B ), dans ce cas la précision de mesure peut être améliorée pour atteindre 1.25µm en décodage X4, ou plutôt ce pas de 5µm correspond à la distance entre les fronts montants ou descendants les plus proches des deux signaux A et B et dans ce cas, pas de mystère, la précision reste telle qu’elle est annoncée !

Pour le choix du capteur de mesure de la boucle d’asservissement en position, généralement y’a pas mieux que la règle, la vis à billes, avec le temps et à cause des frottements , prend du jeux même si minime mais ça reste considérable comparé à la résolution du codeur moteur, en plus la qualité de la transmission par courroie n’arrange pas les choses car cette dernière n’est pas conçue pour une précision de l’ordre de micron ( irrégularité entre crans, dilatation en réponse d’effort et/ou en réponse du changement de température… ) Donc la règle est privilégiée même avec une résolution de 5µm ça reste quand même correcte. Après, si d’autres considérations doivent être prises en compte telle que l’encombrement, ou difficulté de protection, le codeur moteur suffira pour une tolérance bien discutée.
 
W

wapiti

Compagnon
Oui, jolie machine, ça prend du temps de trouver la (les) perle rare, de foncer au moment voulu et surtout d'acquérir les connaissances sur ce qu'est une bonne machine, quels sont les modeles interessants (j'suis dessineux...) ... je suis super content de mon atelier :wink: manque plus que la fraiseuse cnc fonctionne, le dro et la lunette et quelques multifix sur le tour, la contrepointe et les porte meules sur l'affuteuse rectifieuse ... apprendre à s''en servir dans le regles de l'art et apres je pourrais jouer...quand je serais à la retraite ??? :wink:

Le rapport de réduction...quel con... j'l'avais zappé celui là : servo:12 vab:28
1 tour moteur = 2.1429mm de déplacement
que ce soit avec 2500ppr ou 2048ppr, je n'obtiens pas de valeur ronde...de toute façon les thunes sont parties ce matin à l'autre bout du monde...

La machine date des années 85, elle n'a pas fait de prod, juste des protos, elle est stockée dans un environnement relativement stable T° 12 à 18°. elle a un backslash de quelques degrés à la vab.

Pour la bretelle de fraisage horizontal, il faudra enlever le capot de la regle X
 
G

gaston48

Compagnon
Bonjour wapiti,
Tu verras qu'avec une fraiseuse cnc, tu entreprendras des stratégies d'usinages qui ne te viendrait même
pas à l'esprit sur une conventionnelle, comme un alésage ou un tourillonage à la fraise, là les aspects
cosmétiques peuvent avoir leurs importances comme une discrétisation de l'état de surface .
En y réfléchissant, ou pourrait mixer règle et codeur pour améliorer la résolution de la règle.
pour simplifier, disons que le composant qui traite les signaux d'une règle ou d'un encodeur fournit:
une sortie compteur du decodage X4
une entrée échelle qui convertie la valeur du compteur en unité machine , ici le mm
une sortie en mm (qui va rentrer dans la PID)
une entrée reset qui remet instantanément à zéro le compteur et la sortie en mm

Si on rentre la sortie compteur de la règle, tous les 5 microns, sur l'entrée reset du codeur,
le compteur du codeur et donc sa sortie en mm seront remis à zéro.
Il suffirait d'additionner la sortie règle avec la sortie codeur le résultat étant rentré sur la PID pour augmenter
la résolution de la règle d'un facteur 10
resterait le problème du calcul de la vitesse ?. le composant qui traite le codeur calcul aussi une vitesse
instantanée qui est transmisse au composant PID pourrait-on faire une sommation aussi ?
 
G

gaston48

Compagnon
j'l'avais zappé celui là : servo:12 vab:28
Ah !!! pourtant j'avais regardé vite fait ta photo ici :
ou il a raison, c'est bien un rapport 1/1 (qui est inusité, car on s'arrange pour exploiter un moteur DC sur toute sa
gamme de vitesse car son couple est constant )
pas grave, à 2000 rpm environ tu restes dans les clous

ScreenShot254.jpg
 
S

saico

Apprenti
elle a un backslash de quelques degrés à la vab.

Quelques dégrées c’est déjà beaucoup pour un codeur de 2500 ppr et une réduction de 28:12

Un jeu de 4° correspondrais à environ 60 point codeur ou 240 pas de mesure ! c’est possible de le rattraper par logiciel mais le mieux est de garder les règle de mesure quitte à modifier leur installation sur la machine.

Si on tient absolument à éliminer les règles, il est possible d’optimiser un petit peu en montant le codeur directement sur la vis à billes (sachant que le moteur est un DC à ballais), cela simplifiera les calculs, et en même temps on assure que le top Z du codeur apparaîtra une seule fois par tour de vis, cela est essentiel pour la prise d’origine machine mais pas obligatoire !
 
W

wapiti

Compagnon
@saci Oh bein je vais garder les regles je pense

@Gaston: le pas de 5 microns de la regle serait affiné par le codeur en quadrature...mais lui ne prend pas en compte le backslash ni les jeux qui sont supérieurs à 5 microns...
 
Dernière édition:
W

wapiti

Compagnon
Bonjour,
ils sont arrivés, 11euros de TVA...
Malheureusement, loi de murphy oblige, il y a 7/100 à réaléser sur l'alesage du codeur (je prefere ne pas toucher à l'arbre du servo pour le remontage des tachy si nécessaire pour les revendre)
Quelle méthode adopter pour les 7/100 emes? poncage grain fin présentation avec du bleu de prusse, reponçage...etc...?

IMG_20210715_143827.jpg


edit : la zone 'elastique' sous la bride rentre, il faudrait que je 'n'abime' que la zone qui frottouille, conserver la zone sous bride pour garantir la concentricité... j'ai bon espoir :wink:
 
Dernière édition:
W

wapiti

Compagnon
Bonjour,

Un ptit coup de papier de verre 1000 sur l'arbre du Y et c'est rentré:
IMG_20210723_160920.jpg

par contre, en m'attaquant au X, c'etait pas possible, l'ai donc mesuré et observé un faux rond de 5/1000

du coup j'ai fais des mesures sur l'arbre du Y et je me suis aperçu qu'il y a un faux rond de 19/1000 qui crée un déplacement de 10/1000 du codeur...

Est ce que ça va créer des erreurs de positionnements ces erreurs?

PS: l'alésage des codeurs chinois est parfait : 0/1000!!!!
 
B

Bbr

Compagnon
par contre, en m'attaquant au X, c'etait pas possible, l'ai donc mesuré et observé un faux rond de 5/1000

du coup j'ai fais des mesures sur l'arbre du Y et je me suis aperçu qu'il y a un faux rond de 19/1000 qui crée un déplacement de 10/1000 du codeur...

Est ce que ça va créer des erreurs de positionnements ces erreurs?

PS: l'alésage des codeurs chinois est parfait : 0/1000!!!!

Il est possible qu'une partie de ce faux rond vienne des roulements.

L'alésage des codeurs est à zéro c'est bien, mais est-tu sûr que le disque du codeur est parfaitement centré ?

Le problème avec les microns c'est qu'ils se baladent toujours en groupe. :spamafote:

Le plus simple pour savoir si ces "erreurs" vont créer un problème c'est de finir ton montage et de faire des mesures sur la machine.
 
Dernière édition:
W

wapiti

Compagnon
Bonjour,
Est ce que pour mesurer le faux rond des roulements: je me mets en position - mesure à l'arbre - sollicitation radiale - mesure ? ce sera crédible
Aucune idée pour le disque du codeur (mais j'ai confiance :wink: )
Faire des mesures sur la machine ... il me reste encore du boulot, mais ça avance doucement de ce coté. aurais tu une suggestion de montage de mesure sachant que toute électronique est à faire !

Ça, c'est fait (il me reste à serrer la vis des brides du X et du Y , ça manque de visibilité, je vais chez le dentiste mardi je lui braquerais un miroir :wink: ):
IMG_20210724_090825.jpg


faut que je retravaille sur le capot imprimé en 3D + protection tôle mais ce sera un truc dans ce genre:
capot arr.jpg

le cul du Y est dans la cascade de copeaux, le téton n'est pas forcément une bonne idée...
 
B

Bbr

Compagnon
Est ce que pour mesurer le faux rond des roulements: je me mets en position - mesure à l'arbre - sollicitation radiale - mesure ? ce sera crédible

Si tu fais une mesure sur l'arbre tu vas avoir le défaut total : faux rond arbre + faux rond roulements (ce qui ne veut pas dire que c'est la somme des 2 maxi, ça dépend de l'orientation des différents défauts).
Les sollicitations radiales permettent de mesurer les jeux et aussi une partie de la raideur de l'assemblage mais ça n'est pas un défaut géométrique.

Ta question était de savoir si ces défauts allaient créer des erreurs de position des axes et il me parait plus simple de faire des mesures directement sur la machine, c'est à dire tu fais tourner le moteur d'un angle connu (15° par exemple) et tu mesures le déplacement réel de l'axe. En faisant des relevés avec suffisamment de valeurs tu aurais une idée de la précision de cet axe (mais ce ne sera probablement pas la même chose en usinage car les efforts de coupe ont une influence, c'est d'ailleurs pour ça qu'en production grande série on ne se contente pas d'un contrôle géométrique de la machine pour la valider, on fait des capabilités c'est à dire une série de pièces qui sont contrôlées et on vérifie qu'il n'y a pas trop de dispersions sur les côtes).

Nota : ces mesures de déplacement à vide vont représenter la somme des défauts (et il n'y a pas que le faux rond).
 
Haut