Résolu Problème d'interpolation circulaire non circulaire

  • Auteur de la discussion ink_a
  • Date de début
I

ink_a

Nouveau
Bonjour à tous,
Nous avons un problème sur une machine outil, qui ne produit pas des trajectoires circulaires parfaites.
Cela donne l'impression que la machine fait une "sortie de virage" et tente de se rattraper du mieux qu'elle peut.
La vitesse programmée semble raisonnable, d'autant plus que des essais ont étés réalisés en baissant drastiquement celle-ci.
Avez-vous différentes pistes pour diagnostiquer le problème ?
Merci.
 
V

vres

Compagnon
bonjour,
2 solutions :
- jeu mécanique provoquant un retard à l'inversion,
- Asservissement servomoteur mal réglé.

Il faudrait en savoir plus sur la machine.
 
C

clabaut

Compagnon
bonsoir
il faut reprendre les parametres d axes qui ne sont plus adaptés a l usure de la vis
 
I

ink_a

Nouveau
Super, merci à vous pour ces pistes, ça sent bon.
En effet la machine tourne en continu 35H par semaine, je ne suis pas franchement sûr que ces points ont étés vues.
@Dodore Effectivement sujet aborder !
 
M

MegaHertz

Compagnon
Bonjour,

Possible que les réglages d'interpolation ne soient pas bons.
Ce que tu décris ressemble à une gestion de trajectoire qui donne la priorité à la vitesse plutôt qu'à la trajectoire.

Contrôle de trajectoire continue avec tolérance
Contrôle de trajectoire exacte

Dans un cas tu permets à la machine de dévier pour respecter au mieux les vitesses
Dans l'autre cas tu interdis ou bornes les déviations, quitte à brutaliser l'outil si les trajectoires l'exigent.

Sur linux CNC ce sont les GCode G64 et G61, regardes voir sur ton contrôleur comment tu peux configurer ça.
 
D

Dodore

Compagnon
Je ne connaissais pas « Linux CNC » que tu donnes en exemple
j’en profite pour demander à @ink_a qu’il précise sur quelle machine et avec quelle commande il a ce problème
 
M

MegaHertz

Compagnon
LinuxCNC a très bien documenté tout le GCode et la doc éxiste également en Français :

Le contrôle de trajectoire est une fonctionnalité avancée sur laquelle on a souvent pas de vue à l'écran de la machine, dans les post proc de CFAO ou même dans le GCode.
Quelquefois c'est même persistant et il suffit qu'un prog l'ait défini pour qu'on récupère des changements de comportements.

J'ai pris en éxemple LinuxCNC parce que la doc est claire mais ce réglage est propre à chaque contrôleur, je ne crois pas que le GCode soit normalisé pour ça.
 
V

vres

Compagnon
Le G64 ne concernent pas les interpolations circulaires mais les microvecteurs.
 
D

Dodore

Compagnon
Avant de dire tel code fait ça ou ça , il serait intéressant de connaître quelle est l’armoire utilisée
par exemple le G64 chez Num c’est le cycle d’ébauche en tournage
 
M

MegaHertz

Compagnon
Le GCode n'est pas vraiment normalisé, chacun fait un peu ce qu'il veut.
On peut compter sur G01, G00, G02 et G03 mais pour le reste faut surtout pas rester sur ses acquis et toujours lire la doc du GCode concerné.

Le G64 ne concernent pas les interpolations circulaires mais les microvecteurs.

Mouais... mais vu que pour dessiner un cercle certains calculateurs travaillent avec une table trigo, ça peut se finir en micro-vecteurs.
Y'a pas vraiment de règles, chaque constructeur fait ce qu'il veut.

Ajoutes à ça que quand on utilise un logiciel de CFAO il n'utilisera pas toujours les G02 ou G03 pour faire des courbes, la plupart du temps ils pondent des tonnes de micro-vecteurs.
 
Dernière édition:
V

vax

Modérateur
Peut-être même avoir des infos plus générales...
La machine vient-elle d'arriver dans l'atelier ?
La machine fonctionnait-elle bien avant ?
Le problème est-il apparu brusquement ?
Y at-il eu des changements dans l'environnement de la machine ? Nouvel opérateur ? Maintenance récente ? Changement dans le protocole de programmation (nouveau personnel au bureau d'étude, nouvelle FAO...).

Les questions de base pour déblayer le diagnostic quoi... Pardon les réflexes de sous-mariniers ont la vies dure ! :wink:
 
D

Dodore

Compagnon
Oui effectivement , il est toujours bien de préciser l’historique de la chose ça permet de mieux cerner ou de comprendrele problème
 
R

Radiel

Ouvrier
dans la méthodologie de détection des pannes:
-contrôler les jeux vis/palier/roulements ce référer aux doc constructeur pour avoir les tolérances mais en général c'est inférieur a 0.02mm
-vérifier le programme, si un doute subsiste sur le programme ne pas hésiter a faire une copie sur le forum pour avoir un peu d'aide
-si les 2 premières étapes n'ont pas résolu le problème il va falloir pousser les investigations sur les paramètres d'axe
 
D

Dodore

Compagnon
:
-contrôler les jeux vis/palier/roulements ce référer aux doc constructeur pour avoir les tolérances mais en général c'est inférieur a 0.02mm
ah bon ! 0,02 ça me parait bien petit

edit
en y réfléchissant si le palier est aussi monté sur roulement , c’est possible
 
Dernière édition:
M

MegaHertz

Compagnon
En effet la machine tourne en continu 35H par semaine, je ne suis pas franchement sûr que ces points ont étés vues.

Bonjour,

Il y'a des chances pour que ce soit une machine industrielle, pas une CNC autoconstructeur ou petite chinoise amateur.

ink_a, c'est quoi comme engin ?
Tu peux nous montrer la partie de pièce en faute ?
 
I

ink_a

Nouveau
Bonjour tout le monde,
Hier soir j'ai voulu réaliser un test au comparateur sur les axes X/Y, malheureusement, l'interface machine ne permet pas de faire un déplacement incrémental jog 0.1 1 10. A ce niveau, je vais cherché s'il existe un moyen de contourner la couche fabriquant.
Seul constat que j'ai pu faire, machine à l’arrêt, puissance enclenchée, je peux bouger l'axe X en + et - à la main d'environ 1mm, j'imagine un jeu important sur la liaison pignon crémaillère.

Avant d'aller plus loin @Dodore et @MegaHertz, j'apporte l'historique manquant :
- Il s'agit d'une fraiseuse intégré dans une ligne de fabrication qui tourne depuis 5 ans
- Pas de documentation relative à la maintenance, si ce n'est une nomenclature
- Les guidages linaires en X Y Z sont de type THK
- Les liaisons moteurs/axes sont assurées par pignons crémaillères
- Le fabriquant est aux abonnés absents
- L'armoire machine est CNI (avec une surcouche de l'intégrateur)
- Ci-après, en noir, trajectoire programmée, en rouge, la dérive. C'est un phénomène remarqué il y a un an, qui semble s'accentuer
1572520193710.png

- Gcode sans fioritures*, approche rapide en G0 au niveau de la flèche, entrée/sortie en G1, les rayons sont traités en G4/G5 (interpolation circulaire avec point d'arrivée + rayon) le tout en correction de rayon
- Le programme est le même depuis au moins deux ans

* @MegaHertz la fonction G46 est utilisé pour modifier le comportement dynamique trop brutal pour la machine voici la raison :
Peux après la réception de la machine (avant l'introduction du G46), les déplacement de la machine, j'entend pas la, enchaînement segment/segment ou segment/arc se faisait sans ralentissement, si bien que le portique de la broche se faisait secouer (nous ne donnions pas longue vie à la mécanique dans ces conditions).
EXTRAIT BOOK CNI
Mode dynamique de déplacement
Au cours de la phase d'interpolation, au cours d'un déplacement continu des axes, le CN contrôle
si 2 pas consécutifs sont tangents ou bien s'ils forment une arrête vive. Le déplacement des axes
en correspondance de l'arête est determiné par les instructions modales suivantes G46, G47,
G27, G28.

Déplacement en mode G46
Avec les paramétrages de l'instruction G46 l'on impose aux
axes de ralentir jusqu'à l'arrêt total, en correspondance des arêtes, et d'attendre que la position
réelle de tous les axes interpolants entre dans la tolérance de position progtamée dans les
Données Techniques.
Ce mode dynamique garantit une meilleure précision dans la trajectoiure et ne crée pas de
discontinuité dans les références de vitesse de tous les axes interpolants.
Les déplacements en G0 suivent toujours ce mode de déplacement.

Déplacement en mode G47
Avec le paramétrage de l'instruction G47, la vitesse nominale des axes n'est pas modifiée et ne
subit donc aucun ralentissement en correspondance des arêtes. Généralement les axes
présentent une discontinuité sur la référence de vitesse, due au changement de direction.
La trajectoire effective réalisée dépend de la réponse dynamique des contraintes qui sont
rappelées par des références de vitesse de forme linéaire, dont la réponse dépend du tarage de
l'anneau de réglage de vitesse.
Ce mode assure une continuité de déplacement sur une trajectoire non géométriquement
continue, mais introduit de nombreuses sollicitations mécaniques en réponse aux signaux de
vitesse de forme linéaire.
Déplacement en mode G27
Avec le paramétrage de l'instruction G27, l'on commande aux axes de ralentir juqu'à l'arrêt total en
correspondance des arêtes, sans pour autant attendre que la position réelle de tous les axes
interpolants entre dans la tolérance de position assignée dans les Données Techniques.
Ce mode dynamique assure une continuité sur les références de vitesse mais non la fidélité
absolue à la trajectoire géométrque.
L'instruction G27 peut être utilisée lorsque l'arrêt de l'outil a lieu en l'air et non au contact de la
pièce à façonner.

Déplacement en mode G28
Avec le paramétrage de l'instruction G28, l'on impose aux axes de ralentir en correspondance des
arêtes, sans pour autant commander un arrêt total.
Il s'agit d'un compromis entre la précision géométrique et la vitesse d'exécution des
déplacements.
Les références de vitesse ne sont pas continues, mais de peu par rapport au mode G47.
L'instruction G28 peut paramétrer 4 types de modes différents en fonction des valeurs attribuées
aux données suivantes:
• TABLEAUX -> MACHINE TABLES -> LIGNES -> Mode G28
• TABLEAUX -> MACHINE TABLES -> LIGNES -> Premier paramètre G28
• TABLEAUX -> MACHINE TABLES -> LIGNES -> Deuxième paramètre G28
Mode 0 (défaut):
TABLEAUX -> MACHINE TABLES -> LIGNES -> Mode G28=0
la vitesse des axes,en correspondance d'une arête, est proportionnelle à l'angle formé par les 2
pas contigus dans l'intervalle de 0 à 180 degrés.
Mode 1:
TABLEAUX  MACHINE TABLES LIGNES  Mode G28=1
la vitesse des axes, en correspondance d'une arête, est proportionnelle à l'angle formé par les 2
pas contigus dans l'intervalle compris entre Premier paramètre G28 et Deuxième paramètre G28.
L'unité de mesure des données Premier paramètre G28 et Deuxième paramètre G28 est exprimée
en degrés.
Pour les angles compris entre 0 et Premier paramètre G28, la vitesse dans l'arête est donnée par:
vit.=min{vit. pas n-1, vit. pas n}
où vit. pas n-1 et vit. pas n sont les vitesses de régime des pas n-1 et n respectivement. Pour les
angles compris entre Deuxième paramètre G28et 180 degrés, la vitesse dans l'arête est égale à
zéro.
Mode 2:
TABLEAUX -> MACHINE TABLES -> LIGNES -> Mode G28=2
Le ralentissement de la vitesse dans l'arête est donné par la valeur assignée à Premier paramètre
G28 (en pourcentage).
Par exemple: Premier paramètre G28=20 impose une réduction du 20% de la vitesse de régime
en correspondance de l'arête.
Mode 3:
TABLEAUX -> MACHINE TABLES -> LIGNES -> Mode G28=3
La vitesse dans l'arête est calculée automatiquement par le CN afin que la trajectoire reste le plus
près possible de l'arête.
Cette distance minimale est assignée par la donnée Premier paramètre G28. L'unité de mesure
est en mm.Pour un fonctionnement correct de ce mode, il faut estimer les caractéristiques
dynamiques de chaque axe impliqué dans l'interpolation.
Dans la figure 3 sont reportés les diagrammes de vitesse relatifs aux 4 pas consécutifs, formant 3
arêtes, au cas où la vitesse programmée ne change pas.
Figure 3 a) parcours sur le plan (x,y), b) diagramme de vitesse sur le profil, en fonction du mode programmé,
si la vitesse programmée ne change pas.
1572525869443.png

Dans la figure 4 sont reportés les diagrammes de vitesse pour les axes x et y s'ils parcourent un
profil carré, avec les côtés parallèles aux axes coordonnés.
Figure 4 a) parcours sur le plan (x,y), b) diagrammes de vitesse pour les axes x et y au cours du parcours sur
le profil carré.
1572528175398.png

Contrôle de la vitesse et accélération
Le système effectue des contrôles sur les vitesses et accélérations des axes afin de respecter les
limites programmées dans les données machine et, si nécessaire, de modifier la vitesse nominale
imposée dans le programme.
Interpolation linéaire:Lors d'une interpolation linéaire, la vitesse et l'accélération sont projetées
sur chaque axe, proportionnellement à sa composante de déplacement et chaque axe est contrôlé
afin qu'il respecte les limites de vitesse et d'accélération maximales.
Si certains axes ne respectent pas les propres valeurs maximales, alors la vitesse complessive
d'avance est réduite de façon à garantir que tous les axes soient dans les limites admises.
Interpolation circulaire (et hélicoïdale): Trois contrôles successifs ont lieu:
- contrôle de la vitesse max. angulaire.
La vitesse max. angulaire est limitée, par défaut, à une valeur liée au temps d'échantillonnage
égale à:
Wmax=1/(20 * T)
où T est le temps d'échantillonnage et Wmax est exprimée en radiants par seconde. Par
exemple, avec un temps d'échantillonnage de 2 msec. l'on obtient une vitesse angulaire max
de 25 rad./sec. et donc un cercle de rayon R=3mm peut être parcouru à une vitesse
tangentielle max. de 3*25=75 mm/sec. ou 4.5 m/min. Cette valeur de défaut peut être
modifiée par la donnée machine:
DATI MACCHINA -> AXES -> < nom axe > -> Vitesse angul.interp. max
Si cette donnée est nulle, alors l'axe modifie la valeur de défaut.
Une valeur autre que 0 est confrontée avec les valeurs relatives aux autres axes et est utilisée
pour calculer à nouveau la vitesse angulaire maximale, en tenant compte de la valeur
minimale entre celles non nulles.
- contrôle de l'accélération centripète.
Le système contrôle que l'accélération centripète, lorsque la vitesse est égale à la vitesse de
régime, ne dépasse pas la vitesse max. des axes appartenant au plan principal d'interpolation
(les 2 axes qui effectuent l'interpolation circulaire).
Pour satisfaire cette condition, la vitesse nominale du pas est éventuellement réduite.
- contrôle de la vitesse maximale linéaire.
Sur chaque axe qui interpole circulairement, la vitesse max. atteinte le long de l'arc de
circonférence est calculée, en vérifiant qu'elle soit inférieure à la vitesse max. admise.
Si les limites max. admises ne sont pas respectées, alors la vitesse programmée sera réduite.

Je ne suis pas certain que ce soit l'utilisation de ce mode qui pose problème, mais comme le sujet est abordé je pose un maximum d'élément.
Vous m'ouvrez déjà pas mal de pistes et je vous en remercie.
 
Dernière édition:
V

vieuxfraiseur

Compagnon
bonjour :smt039,
du peut-etre à un over shoot , par des glissières en turcite, et a tendance à glisser ?.
la trajectoire corrige , par le calculateur , mais la forme n'est pas géométriquement bonne .
si vous faites un alésage H7 en contournage, vous aurez des problèmes .( suivant l'avance ) ...
( un moyen pour éviter celà, c'est de réduire l'avance à l'endroit ou l'on veut avoir un profil qui soit correct .)
bonne journée
 
Dernière édition:
M

MegaHertz

Compagnon
Bonjour,

Vu le sens de parcours, quel que soit le jeu, il est rattrapé sur l'axe du défaut quand il arrive en bout d'arc.
Je ne dis pas que le jeu soit normal mais il est possible qu'il n'explique pas tout.

Les arcs à interpolation peuvent poser problème avec un correcteur d'outil.
Peux tu exécuter le prog un peu modifié avec des correcteurs d'outil à 0 ?

Peut tu exécuter ton prog avec correcteur d'outil mais les arcs définis avec des G02 et G03 sur 180° ?
 
Dernière édition:
I

ink_a

Nouveau
Oui je peux faire ces deux tests :
1ER - G4/G5 sans correction
2EME - G2/G3 avec correction
 
R

Radiel

Ouvrier
Seul constat que j'ai pu faire, machine à l’arrêt, puissance enclenchée, je peux bouger l'axe X en + et - à la main d'environ 1mm, j'imagine un jeu important sur la liaison pignon crémaillère.

pour moi c'est la source du problème
 
C

Christophe C.

Ouvrier
Hier soir j'ai voulu réaliser un test au comparateur sur les axes X/Y, malheureusement, l'interface machine ne permet pas de faire un déplacement incrémental jog 0.1 1 10

Par contre si tu peux exécuter du Gcode, tu peux faire un petit programme qui lance un déplacement incrémental? Normalement G91 pour passer en incrémental, et hop.

Si le même programme tourne en boucle depuis des années, tu as surement de l'usure assez localisée. Si c'est des crémaillères, tu peux essayer d'intervertir plusieurs tronçons, ceux des extrêmités sont surement moins usés!
 
I

ink_a

Nouveau
Pour les tests gcode :
Oui je peux faire ces deux tests :
1ER - G4/G5 sans correction
2EME - G2/G3 avec correction
Pas de différence notable entre les deux cas de figure, côté mécanique, là ça se corse... travaux en perspective.
L'axe X (pignon/crémaillère) présente bien un jeu, mais aussi trois zones d'usure -> à changer.
L'axe Y (vis à bille) pas de jeu constaté.
Merci à tous pour vos remarques ça ma grandement aidé et appris :smt023
Maintenant, "ya plus qu'a" et c'est pas le plus simple :D
 
Haut