Quel actionneur/commande pour CNC pour métal

  • Auteur de la discussion Yakov TOPRAK
  • Date de début
F

Francois59

Apprenti
chlore a dit:
@cantause : je ne pense pas que ce soit plus difficile de faire le réglage de poursuite avec une règle linéaire qu'avec un codeur rotatif et la regle est justement là pour palier aux erreurs de construction . Dans le cas que je viens d'exposer si j'ai un jeu dans la VAB ou si la VAB n'est pas régulière le codeur rotatif ne le verra pas alors qu'avec la règle cela va compenser

Le codeur linéaire ne remplace pas le codeur rotatif. Il vient en plus.

Le codeur rotatif est obligatoire pour la partie intensité/ PWM du PID. Il est impératif de connaitre le plus exactement possible la position angulaire électrique du moteur si on veut pouvoir le contrôler avec précision.

La règle (et le PID de positionnement associé) ne peuvent palier que les erreurs RÉPÉTABLES de positionnement. Genre divergence du pas de la vis à bille. Mais PAS les erreurs aléatoires de positionnement : genre JEU ou flexion non contrôlée. Le PID va devenir fou...
 
F

Francois59

Apprenti
stanloc a dit:
A mon avis il ne faut pas que le problème du capteur (il en faudra trois) cache tous les autres problèmes que la conception/réalisation de cette machine va engendrer.
Stan

Exact.

Je pense que la vis à bille de précision (genre C3/C5) s'impose :

Vu la longueur de la vis à bille, on va avoir un gros diamètre. Au pif au moins 40 ou 50mm.

Une vis à bille a une limite de vitesse, indépendamment des problèmes de flexion et vitesse critique. Le paramètre Dnm est lié à le force centrifuge, au chocs entre les billes. Une vis à bille de 40mm en C7 ne pourra pas tourner à plus de 1200t/min. et 1800t/min si elle est en C3. Quelque soit sa longueur.

A 1200 t/min va se poser le problème de la vitesse d'avance = si pas de 10 = 12m/min maxi = 30 secondes pour un aller retour sur une course de 3m.
Et de puissance du servo (Vitesse typique servo 2500 à 3000 t/min). Donc puissance disponible = moins de la moitié de la puissance nominale.

Si on met une vis à bille C3, elle sera suffisamment précise pour que l'encodeur rotatif du servo soit suffisant pour atteindre la précision souhaitée. Mais par contre, on va avoir tous les problèmes de paliers, lubrification, contrôle thermique, parallélismes qu'une telle vis impose pour son montage.
 
E

erolhc

Guest
Francois59 a dit:
chlore a dit:
@cantause : je ne pense pas que ce soit plus difficile de faire le réglage de poursuite avec une règle linéaire qu'avec un codeur rotatif et la regle est justement là pour palier aux erreurs de construction . Dans le cas que je viens d'exposer si j'ai un jeu dans la VAB ou si la VAB n'est pas régulière le codeur rotatif ne le verra pas alors qu'avec la règle cela va compenser

Le codeur linéaire ne remplace pas le codeur rotatif. Il vient en plus.

Le codeur rotatif est obligatoire pour la partie intensité/ PWM du PID. Il est impératif de connaitre le plus exactement possible la position angulaire électrique du moteur si on veut pouvoir le contrôler avec précision.

La règle (et le PID de positionnement associé) ne peuvent palier que les erreurs RÉPÉTABLES de positionnement. Genre divergence du pas de la vis à bille. Mais PAS les erreurs aléatoires de positionnement : genre JEU ou flexion non contrôlée. Le PID va devenir fou...
J'ai jamais dit que la regle remplacait le codeur rotatif (que ce soit un resolver ou un disque optique ou autre ) d'ou la notion de "difficulté" employée et pas "temps". Par contre je pensais plus que le codeur était plus pour la vitesse que la position angulaire mais effectivement de toute façon c'est lié

Les erreurs que tu appelles "répétables" sont bien "aléatoires" pour le système à moins qu'il sache qu'a telle position il y a un écart mais bon là je pinaille :wink: et j'ai bien compris ce que tu veux dire .
Je me suis mal exprimé en parlant d'erreur de construction car quand on met un système de règles ce n'est pas sur une machine qui branloche de partout bien évidemment par contre cela doit bien compenser un jeu dans la VAB non ?
 
V

vres

Compagnon
J'ai un peu de mal à m'imaginer que les 50 pôles soit repartis sur 342°, je préféré rester sur mon idée que les 50 sont répartis sur 360° ce qui correspond au 1.8°, même si j'ai tord ça n'engage que moi :-D :-D

Si le couple max est délivré a 90° l'erreur de positionnement va dépendre du couple résistant. Le couple max a très basse vitesse et très proche du couple de maintient.
Si j'ai un moteur avec un couple de maintient de 2Nm et j'ai un couple résistant de 1Nm le décalage sera de asin(1/2)/50= 30/50 = 0.6°
C'est pareil cette théorie n'engage que moi et si elle n'est pas exacte et ben tant pis pour moi :-D :-D :-D

Pour la boucle PID, moi je tourne à 20kHz pour être au dessus de la fréquence de découpage du moteur et ainsi être très réactif (impératif pour le P).
Par contre je filtre tout. Ma méthode n'est surement pas la meilleure mais j'ai pas mal de machines différentes qui tournent avec :-D :-D :-D

Sur les grosses tables que je connais, la vis à billes est mise en traction avec des rondelles ressort (dont j'ai perdu le nom) et c'est l'écrou qui tourne.
ça évite que la vis à bille fasse corde à sauter. sur les grosses vis le pas est souvent supérieur à 20mm.

Je partage l'avis de François, avec une règle et du jeu dans la vis, le PID va bien avoir du mal à trouver la position exacte à l'arrêt avec peut-être un phénoméne de pompage :sad: :sad:

Edit: pour éviter le pompage, peut-être que la solution serait de faire l'asservissement sur le codeur moteur en corrigeant la position avec la règle de mesure. Il faut 2 entrées codeur pour un axe avec 2 résolution différentes, ça commence à être un peu lourd à gérer :smt017 :smt017
 
E

erolhc

Guest
CNCSERV a dit:
J'ai un peu de mal à m'imaginer que les 50 pôles soit repartis sur 342°, je préféré rester sur mon idée que les 50 sont répartis sur 360° ce qui correspond au 1.8°, même si j'ai tord ça n'engage que moi :-D :-D

J'ai "rectifié" depuis ... ce sont les 1.8° qui sont à +/-5% individuellement (donc entre 1.71 et 1.89°)

Pourquoi il y aurait du pompage ? quand un axe fini son mouvement cà ne bouge plus normalement à moins que l'on intervienne manuellement dessus (ce qui ferait bouger d'au maximum la valeur du jeu) donc dans le même sens que le mouvement précédent
 
V

vres

Compagnon
C'est exact si il n'y a pas d'inertie et que la force d'usinage est toujours inférieur à la friction mécanique.
 
G

gaston48

Compagnon
Pour la boucle PID, moi je tourne à 20kHz pour être au dessus de la fréquence de découpage du moteur et ainsi être très réactif

Avec quel matériel tu tournes à cette fréquence ?
 
V

vres

Compagnon
gaston48 a dit:
Pour la boucle PID, moi je tourne à 20kHz pour être au dessus de la fréquence de découpage du moteur et ainsi être très réactif

Avec quel matériel tu tournes à cette fréquence ?

Avec ce que je trouve :-D :-D :-D , le plus souvent c'est du brushless mais ca peut être aussi du moteur à balai.
 
G

gaston48

Compagnon
je suis étonné de cette performance, à la rigueur une boucle de courant, mais une boucle de position avec des calculs
en flottant, double précision ? les derniers drivers avec dsp intégré tourne à 2 ou 3 Khz. Une cnc Heidenhain moderne
de milieu de gamme, 3 Khz si je me souviens bien.
 
V

vres

Compagnon
C'est bien ce qui est inquiétant, l'avantage de tourner vite est de pouvoir faire une moyenne et travailler en flottants.

Le DSP que j'utilise est sorti en 1991, c'est un TMS32C31 qui fait fait les calculs flottants 32bits sur 1 cycle à 80MHz (hormis la division) il peut gérer 7 axes servomoteurs en même temps avec une fréquence PID un peu réduite et il ne fait pas que cela. J'utilise ce DSP¨depuis 1997.

Comme ce DSP est obsolète, je refais en janvier une carte servomoteur plus universelle à partir du STM32f04 qui à bien du mal à être aussi performant sur les flottants et la FPU est assez difficile à maitriser au début. Il ne fera d'ailleurs que l'asservissement des servomoteurs.

Edit: TMS320C31 et non TMS32C31
 
F

Francois59

Apprenti
Pour les vitesses des contrôleurs de servos, je suis surpris.

Pour une vitesse d'usinage de 600mm/minute = 10mm/seconde, une boucle PID qui tourne à 1 kHz va s'exécuter toutes les millisecondes : tous les 10µ de déplacement.

Pour une vise à bille et un encodeur ordinaire : vis pas 5mm, encodeur 1000ppr (ou vis pas 10mm encodeur 2000ppr, vis pas 12mm, encodeur +- 2500ppr), 10µ , c'est 2 pulses.

Donc le PID va contrôler tous les 2 pulses s'il n'y a pas +-1 pulse d'écart. Je vois pas trop l'intérêt d'aller plus vite.

Le problème serait peut être même que le PID aille trop vite. Si on veut que la vitesse d'usinage soit seulement de 100mm/min (diagonale X/Y , ou pire cercle). Le PID va avoir un pulse de commande de déplacement toute les 3 itérations. Il serait dommage qu'il accélère à l'itération 1, parce que la cible n'est toujours atteinte, et ensuite stoppe a l'itération 2 cible atteinte. Avant de recommencer pour la commande suivante. On a en fait un moteur capable de tourner à vitesse continue : ce que l'on souhaite pour avoir un bon état de surface, et le PID va le faite travailler en mode start/stop comme si c'était un moteur pas à pas... Dommage.

Je me demande comment font les contrôleurs PID évolués pour gérer les déplacements très lents ...
 
V

vres

Compagnon
Bonsoir François,
Ton raisonnement est Juste, l'erreur que tu fais c'est de partir sur la notion de pulse.
Un servomoteur c'est un moteur qui tourne et un encodeur qui numérise une position avec une précision qui dépend de la résolution de l'encodeur.

Si tu as une boucle PID d'asservissement qui tourne a 4Khz et un encodeur qui est à 3kHZ, ta boucle va lire : 0 1 1 1 avec une erreur sur le position réelle de 0.75 0.5 0.25 0
Avec de telles valeurs ton PID risque de perdre un peu les pédales.

Maintenant si tu convertis en flottants et que tu filtres un peu en faisant une moyenne sur 4 lectures tu auras : 0,75 0,75 0,75 0,75 avec une erreur avec la position réelle de 0 0 0 0
C'est quand même un peu mieux non ? et en plus tu améliores virtuellement la précision du codeur.
Plus tu montes en fréquence, plus tu pourras filtrer et réagir vite. Il n'y à pas de notion de temps dans le P.

Si ton servomoteur à un codeur de 2500 PPR, ce qui donne 10000 PPR en quadrature, à 3000tr/min tu auras 500 000 Points par seconde, si ta boucle est à 1kHz ça te fait des paquets de 500 points a avaler à chaque fois

Pour les déplacement très lents, ca ne pose pas de problèmes ça fonctionne tout pareil, même si c'est vrai, plus le servomoteur a de PPR, plus il est facile à piloter.

C'est un peu là que le mode de pilotage par dir/step montre ses limites car il sera impossible de piloter le type de moteur si dessus avec toutes ses capacités. De plus dans ce mode le moteur fonctionnent à l'aveuglette, le pilotage ne pourra pas pré-calculer la consigne pour réduire l'action du PID au minimun.
 
F

Francois59

Apprenti
CNCSERV a dit:
Bonsoir François,
Ton raisonnement est Juste, l'erreur que tu fais c'est de partir sur la notion de pulse.
Un servomoteur c'est un moteur qui tourne et un encodeur qui numérise une position avec une précision qui dépend de la résolution de l'encodeur.

Si tu as une boucle PID d'asservissement qui tourne a 4Khz et un encodeur qui est à 3kHZ, ta boucle va lire : 0 1 1 1 avec une erreur sur le position réelle de 0.75 0.5 0.25 0
Avec de telles valeurs ton PID risque de perdre un peu les pédales.

Maintenant si tu convertis en flottants et que tu filtres un peu en faisant une moyenne sur 4 lectures tu auras : 0,75 0,75 0,75 0,75 avec une erreur avec la position réelle de 0 0 0 0
C'est quand même un peu mieux non ? et en plus tu améliores virtuellement la précision du codeur.
....

La, je comprends pas trop.

Parce que pour moi, la boucle d'asservissement a une consigne et une mesure. et la différence entre les 2 donne la commande en sortie.

itération 0 : consigne = ? mesure = ? réel = ?.
itération 2 : consigne = ? mesure = ? réel = ?.
itération 3 : consigne = ? mesure = ? réel = ?.
itération 4 : consigne = ? mesure = ? réel = ?.


Et je ne vois pas non plus comment on peut faire une "moyenne" sur une position. Ca n'a de sens que si le moteur ne tourne pas, ou tourne à très faible vitesse.
 
G

gaston48

Compagnon
Finalement, je doute que même une boucle à 3 Khz soit nécessaire dans le domaine de la machine outil.
Il faut considérer la bande passante due aux inerties mécaniques.
Elle nous détermine une accélération maximale qui sera prise en compte par le planificateur de trajectoire,
Il ne fournira donc que des ordres de déplacements limités en fréquence.
Le signal d’erreur ne pourra pas contenir un spectre fréquentiel élevé non plus.
Concrètement, si mon axe oscille, la fréquence de la table ne dépassera pas par exemple 50 Hz. Le gain de l’action
proportionnelle sera forcément limité. La précision réelle (l’erreur de poursuite minimale) ne sera effective qu’avec
du temps: l’action intégrale, donc à très basse vitesse ou l’arrêt.
Si j’ai un axe de fraiseuse qui se déplace à 2000 mm/mn muni d’une règle optique à la résolution de 1 microns,
cela nous donnera bien un flux de données issu du planificateur et de la règle de 33 Khz,
mais même si les 2 flux ne sont moyennés(par leur sommation car on charge 2 compteurs) et comparés que toutes les 10 valeurs,
il ne peut pas se produire et on ne peut de toute façon pas corriger des variations se produisant entre les 10 valeurs.
 
V

vres

Compagnon
Je vous ai dis ce que je faisait, comme je l'ai dit je n'ai pas la prétention d'avoir le super système, si vous pensez qu'il est inutile de tourner a cette vitesse vous avez surement raison.
Je n'ai pas vraiment envie d'en débattre.

Le pilotage des servomoteurs est intégré dans mon pilotage depuis plus de 10 ans et je n'ai pas retouché au Firmware depuis 2010.
 
G

gaston48

Compagnon
Je ne critique pas cncserve ! je t’envie de maîtriser les DSP, mais il serait intéressant de savoir si pratiquement
tu as de meilleurs résultats, peut être une meilleure stabilité ? il n’y a que toi qui puisses faire la comparaison.
Ne serait ce que pour ne pas se focaliser sur de faux arguments commerciaux
 
V

vres

Compagnon
Ce n'est pas une question de critique c'est que l'on aura du mal à ce comprendre car vous comprenez pas ce que je vous dit et je ne comprend pas ce que vous me dites. :-D :-D :-D

Je ne sais plus comment j'ai décider de travaillé a cette fréquence, ce que peut dire c'est j'ai fait évoluer mon asservissement en séchant au pied de certaines machines que je n'arrivai pas à piloter correctement.

Pour ce qui est de l'argument commercial ... :-D :-D

Ce que ca peut donner: http://www.dailymotion.com/video/xhbf6n_premier-essai-retrofit-cnc_tech
 
Dernière édition par un modérateur:

Sujets similaires

T
Réponses
0
Affichages
536
temujinCAM
T
B
Réponses
37
Affichages
3 098
Squal112
Squal112
T
Réponses
28
Affichages
3 043
Tristan l'apprenti
T
Haut