Ma Deckel FP4NC [ Retrofit ] COPEAUX!!!!!!

B

bendu73

Compagnon
Lorsque je cherchais comment réduire la vitesse de l'axe du Y (qui s'est avérer une simple inversion de pôle ), j'ai touché au potard d'offset du var, mais j'ai compter précisément les tours que je faisais pour les remettre à l'origine ensuite. Le seul que j'ai réellement changer c'est l'uffset du X et du Z car ils bougeaient sur la visu.
J'ai moi aussi pensé à l'oscillation.
En premier je vais tester le signal par pile 4,5 ou 9V et tatter comme je le fait avec Mesa. Je vais pouvoir comparer à l'oreille si le son est le même.
Puis je vais procédé à des essai sur banc, pas si simple, il faut retirer le moteur de la machine car c'est pignon sur couronne... et puis j'ai pas trop le choix de les tenir à proximité de leurs emplacement car les câbles ne sont pas long...
Et c'est bien possible cette histoire de boucle de masse ou de revoit de courant dans l'armoire par la Mesa, c'est une chose à vérifié ça aussi. Mais on va d'abord se concentrer sur ces disjoncteurs thermiques

Allez ça va le faire
 
B

bendu73

Compagnon
Bonjour,

J'ai fait des tests sur la Deckel pour ce problème de disjoncteur thermique ( d'ailleurs c'est confirmé, c'est bien les disjoncteurs thermique).

Les mesures ont été faites sur une phase de l'arrivé 380, je ne dispose pas de pince ampérométrique pour le continue des moteurs ni d'ampèremetre d'intensité suffisante pour faire un montage en serie ( mais c'est prévu que je m'en fasse prêter un!).

-à vide 0.042A
-Avec broche petite vitesse : 4A
-Variateur activé sans moteur branché : 1A, un top à 1,6A max
-Variateur activé avec moteur branché : 4A
-Variateur activé avec moteur X et Z : 3.8A
-Variateur activé avec moteur Z : 2.7A
-Moteur X en déplacement ( 8.5V au borne de Mesa en commande ) : affichage bizarre, ça dessus, ça monte mais ça n'a pas l'aire de dépasser les 4A, ca à 0, puis remonte.
-Moteur Y en déplacement ( 8.5V au borne de Mesa en commande ) : 18A au maximum
-Moteur Z en déplacement ( 8.5V au borne de Mesa en commande ) : affichage bizarre, ça dessus, ça monte mais ça n'a pas l'aire de dépasser les 4A, ça à 0, puis remonte.

Je ne sais pas comment prendre ces résultats, en tout cas le comportement de ampèremètre était différent entre les XZ et le Y. J'ai donc fait un essai en débranchant le Y, et le X fait tout de même disjoncter...Je n'ai actionné que le X et vu que le Z n'est pas sur le même disjoncteur je sais que c'est pas le moteur Y on dirait...

Voici les deux disjoncteurs thermique, à gauche le X et Y et à droite le Z. régler respectivement sur 14A et 24A.



Voici une vidéo avec les mouvements en X. Cela disjoncte à 1min 03 sec exactement, on entend bien le son du moteur :

 
B

Bruno26

Compagnon
4A variateur activé avec moteur branché mais sans déplacement! Je me trompe ou 4A sur une phase du triphasé 380 ça fait quelque chose comme 2kW? Elle pass où cette puissance? Y'a bien un truc qui doit chauffé bien comme il faut.
Une petite suggestion. T'as pas une connaissance qui pourrait te prêter une caméra thermique pour voir où ça chauffe?
Sinon est-ce que tu n'a pas des accélérations trop fortes qui ferait des gros appel de courant?
 
B

bendu73

Compagnon
Oui on est bien à 2kW...
Avec une simple soustraction on trouve la conso de chaque moteur :
Y=4-3.8=0.2A
X=3.8-2.7=1.1A
Z=2.7-1=1.7A

Je vais tenter de trouver une camera thermique, c'est une très bonne idée !
L'accélération je ne sais pas trop, elles ne me semblent pas incroyable non plus...
 
B

Bruno26

Compagnon
Dommage que tu ne sois pas plus près j'en ai une sur un tel portable, un "CAT", bien utile pour voir les ponts thermiques de mon chez moi.
 
G

gaston48

Compagnon
Sinon est-ce que tu n'a pas des accélérations trop fortes qui ferait des gros appel de courant?

Peut être que : ....
Ta PID vitesse, gérée par le drive est opérationnelle normalement. Si tu envoies des créneaux de tension
de commande sans rampe accélération, les peches de courant envoyée au moteur sont énormes.
L'inertie du rotor plus celle de la grosse vis à billes n'est pas négligeable
La rampe d'accélération est un compromis résultant d'une erreur de poursuite mesurée satisfaisante on l'applique
également sur les avances rapides même si dans ce cas une erreur de poursuite n'a pas d'importance.
C'est un peu comme si tu faisais du start-stop avec un moteur pas à pas, il ne va pas consommer plus de
courant, mais il va décrocher. Là, ton servomoteur ne décroche pas, mais il consomme de grosses pointes de courant
Le thermique est la pour accumuler - comptabiliser le stress pour finir par déclencher.
 
B

bendu73

Compagnon
Il ce pourrait que les accélérations à répétition accumulent une surchauffe qui fini par être suffisante pour déclenché le disjoncteur?
J'avais déjà abaisser l'accélération car elle m'avait fait disjoncter la maison...(bon je suis passer de 300 à 50 dans ini).
Je vais essayer de réduire cette accélération et je vous tien au courant. Ce que je peux aussi remarquer c'est que l'utilisation des axe Y et Z rend l’enclenchement du disjoncteur plus direct. Le X étant "mécaniquement moins lourd il lui faut plus de temps pour atteindre le seuil critique du disjoncteur (sur la vidéo il déclenche tout de même à 1min, les autres sont plus de l'ordre de 20/30sec).
Mais tu as raison, Mesa balance bien le 8.45V direct, il n'y a visiblement pas de courbe (ou alors mon multimètre n'a pas d'affichage assez rapide).

@gaston48 , 2Kw de "maintient" monteur te parais raisonnable? Le Z retiens tout de même une sacrés masse mais les autres...c'est le courant de contre réaction (les moteurs se bloque, à la manivelle on ressent une vibration haute fréquence mais peu amplifié)??
 
G

gaston48

Compagnon
Tu n'as rien dans la PID qui est esclave de la consigne (et donc des rampes d'accélération).
Les sens étant maintenant vérifiés, il faut mettre FF1 à 0 et commencer à monter le P ...
installer l'affichage de l’erreur de poursuite ... la vraie vie quoi !
 
B

bendu73

Compagnon
En direct de l'atelier ( je prend un pc portable pour avoir un oeil sur le sujet de Laurent/gaston).
Avec une accélération moindre (20 au lieu de 50) les mouvements sont moins brutaux et le son des moteurs est meilleur. a voir par la suite...
Les règles incrémentent dans le bon sens, pour inverser leurs sens sur la Visu, il suffit de mettre un signe moins "-" dans le fichier Hal ligne "scale". ex: 1000 devient -1000.
Les moteurs tournent également dans le bon sens.

Ensuite j'ai installé l'afficheur d'erreur de poursuite! Merci encore au post de Laurent. J'essayerai de faire un descriptif de l'installation de cet afficheurs car j'ai regroupé des info (fruit de reflection) du post source. Je compte synthétisé les quelques message en une série d'étape à suivre.
Allez j'y retourne!
 
B

bendu73

Compagnon
Bonsoir,


******************TUTO_AFFICHEUR_ERREUR_DE_SUIVIE*******************************

Pour aider les futurs retrofit sur Mesa voici ce que j'ai fait pour installé l'afficheur utilisé par Laurent (merci à tout les intervenant sur ce post sans qui je n'aurai pas réussis moi même). Il sert à visualisé l'écart entre le réel (les règles) et la commande (Signal Mesa).


1) Il faut créer un fichier texte "nom" avec le code ci-dessous puis le renommé en ".xml". Ce fichier, il faut le mettre dans le même répertoire que le .ini et .hal.


2) Ensuite ouvrer votre "custom.postgui" et ajoutez y ces lignes :


3) Dans le fichier INI, dans la parti [DISPLAY] ajouté cela à la suite, mettre bien le réel nom de votre programme xml :


4) Dans le fichier HAL, dans chaque AXIS d'axe , par exemple juste avant les PWM Generator, ajoutez ces lignes en changeant bien sur X par l'axe affecté :


Normalement au lancement de LinuxCNC vous aurez un superbe afficheur d'erreur sur la droite

*******************************************************************************

Bon sinon moi j'ai commencer le réglage PID.

Pour commencer, sur le X :
FF1 à 0
P à 0.1
--> erreur max 1,21mm, état stable -0.0025mm

Puis :
P à 0.5
--> erreur max 0.24mm, état stable -0.0018mm

Puis :
P à 1
--> erreur max 0.12mm, état stable -0.0010mm
Mais une légère vibration au son...

Puis :
P à 1.5
--> grosse grosse vibration digne de secousse, on stop!

Je tente entre 0.5 et 1

Je suis finalement rester sur 0.7 pour une erreur max de 0.44mm et un état stable à -0.0014mm.

Un vidéo des axes avec une avance de 1800mm/min :

Voici mon ini :


Le hal :


Ça prend forme!!! C'est super et je n'ai pas eu de soucis de disjoncteur durant l'après midi. Je n'ai pas plus titiller que ça.

a+
 
Dernière édition:
G

gaston48

Compagnon
Tu peux poster le .HAL s'il te plait
finalement la résolution des règles est à combien en sortie des boitiers exe ?
 
B

bendu73

Compagnon
@gaston48 c'est fait
J'ai mis 1000, je ne suis pas sur à 100% que c'est cette valeur mais c'est assez cohérent. J'avais vérifier avec un comparateur mais vu la course de 20mm je ne peux pas vérifier très précisément.
 
B

Bruno26

Compagnon
Super bendu73!
Merci pour ce petit tuto, je m'en servirai, ça m'évitera d'ouvrir à chaque fois une fenêtre "halmeter".
A+
 
V

vres

Compagnon
Bravo
L'erreur de poursuite est en mm ? si oui tu as encore un peu d'affinage à faire dans tes réglages
 
G

gaston48

Compagnon
Oui c'est bien, je vois que tu commences à piger la syntaxe.
Chacun son style concernant l'édition d'un programme, mais tu as intérêt je pense à
regrouper les loadrt et addf en haut du fichier.
je préfère compacter au maximum aussi et je n'aime pas la façon qu'a le wizard
de déclarer une variable dans sa propre ligne net
EX:
aulieu de :
net x-enable axis.0.amp-enable-out
net x-enable hm2_5i25.0.7i77.0.1.analogena
je préfère:
net x-enable axis.0.amp-enable-out => hm2_5i25.0.7i77.0.1.analogena
Attention quand tu choisis une variable comme celle-ci :

Défaut_disjoncteur évite les accents et attention au "_" il est accepté mais automatiquement converti
en "-" dans halmeter par exemple.

Normalement tu n'utilises pas de port // tu peux donc effacer tout ce qui contient partport dans hal.

Je suis étonné d'une erreur statique (de position) aussi faible et d'une erreur de poursuite relativement grande.
on dirait qu'il y a trop de I, or I est à 0 ?
Il faudrait visualiser tout ça dans halscope voir l'erreur de poursuite à différente vitesse stabilisée
et pendant les transitions d'accélération.
A priori là il faudrait un peu de D
je pense aussi que la résolution de règle est bien de 1 microns et tu neutralises la yoyote de "1 digit"
avec DEADBAND = 0.001 mais par curiosité je me demande à quoi correspondent les valeurs de la 4 ème décimale
(tu peux la supprimer en changeant le format d'affichage dans le fichier.xml 3.4f en 3.3f)
 
B

Bruno26

Compagnon
Si je comprend bien la ligne:
net x-enable axis.0.amp-enable-out => hm2_5i25.0.7i77.0.1.analogena
les 3 variables sont égales? A quoi sert alors x-enable, c'est un "format" différent?
 
B

bendu73

Compagnon
Dans le même cas que celui-ci :
net spindle-ccw1 hm2_5i25.0.7i77.0.0.output-04 <= hm2_5i25.0.7i77.0.0.input-25-not
spindle-ccw1 est un nom propre au fichier hal. Je ne suis pas encore parvenu à l'utilisé pour l'intégrer à une autre fonction mais on peut surement reprendre ce nom pour le balancer dans un autre programme du genre dans le PostGui pour par exemple savoir si la broche tourne en cw ou ccw...à suivre je vais surement m'y attarder.
Mais ça marche aussi si tu retires le noms. les 3 variables sont égale oui, mais tu peux en mettre 4, 5 etc...
 
G

gaston48

Compagnon
es 3 variables sont égales? A quoi sert alors x-enable, c'est un "format" différent?
Dit autrement, c'est toi qui veut créer un branchement, une connexion "net "
entre une sortie axis.0.amp-enable-out
et une entrée hm2_5i25.0.7i77.0.1.analogena
d'ou le sens de la flèche =>
le nom de ces entrées sortie est propre au code du composant que tu as chargé, il faut respecter
rigoureusement leurs écriture.
le signal qui transite dans ce branchement doit être de nature compatible: un état logique, un integer, un flottant par exemple.
le signal qui transite, tu dois lui choisir un nom, ici: x-enable
Une sortie peut piloter plusieurs entrées, il suffit de réécrire une ligne "net" et de réutiliser ta variable x-enable.
En revanche, une entrée n'accepte qu'un branchement net, sinon il faut passer par un composant logique
ET, OU par exemple dont on branchera qu'une seule foi sa sortie.
 
G

gaston48

Compagnon
le nom de ces entrées sortie est propre au code du composant que tu as chargé, il faut respecter
rigoureusement leurs écriture.
En réalité, pas tout à fait ....
il y a un stade quand tu charges un composant qui t’intéresse "loadrt" pid par exemple
et le nombre de composant que tu veux "count" 3 par exemple, chaque composant pid sera branché par
un prefixe pid.0...., pid.1.... et pid.2

loadrt pid count=3

Au lieu de "count" tu peux lui donner un petit nom pour faciliter le lecture:

loadrt pid names=pid.x,pid.y,pid.z,pid.s
et dans ce cas, chaque ligne net commencera par pid.x ........ ou pid.y etc
 
B

Bruno26

Compagnon
Merci gaston48, il faut que je pratique encore pour que ça rentre.
 
B

bendu73

Compagnon
Bonjour,

Oui l'erreur statique est faible et l'erreur de poursuite grande, j'ai aussi été choqué.



Mon P de 0.7 est à la limite avec la vibration ( à 1 et 1,5 c'est des secousse). Il faut que j’augmente encore ou je suis au max?
En accélération je suis à nouveau remonté à 50 ( la valeur qui faisais disjoncter avec FF1 ). Avec les Pid c'est beaucoup plus souple, je peut monté encore cette valeur?
En fait je ne sais pas trop à quoi doit-je en jugé que le réglage est "bon"

Augmenter le D diminuerai l'écart de poursuite?

Contrairement à Laurent, je n'ai pas de yoyote sur les axe lorsqu'ils ne bougent pas.
 
B

bendu73

Compagnon
Bon j'ai trouvé un tableau pour les PID:

"Si le système doit rester en production, une méthode de réglage consiste à mettre les valeurs I et D à zéro. Augmenter ensuite le gain P jusqu'à ce que la sortie de la boucle oscille. Puis, augmenter le gain I jusqu'à ce que cesse l'oscillation. Enfin, augmenter le gain D jusqu'à ce que la boucle soit suffisamment rapide pour atteindre rapidement sa consigne. Le réglage d'une boucle PID rapide provoque habituellement un léger dépassement de consigne pour avoir une montée plus rapide, mais certains systèmes ne le permettent pas."


Source

Je vais voir avec Halscope (jamais utilisé...).
 
G

gaston48

Compagnon
Puis, augmenter le gain I jusqu'à ce que cesse l'oscillation.
Non ça c'est faux, malheureusement, c'est l'inverse.
Le réglage d'un asservissement est essentiellement une affaire de compromis, il faut donc faire des choix
Des méthode de réglage ont été conçu, mais elle ne sont pas toujours satisfaisante.
Ici c'est pas mal:
https://en.wikipedia.org/wiki/PID_controller


Il y a des article très bien faits dans les doc constructeur des fabricants de drive qui nécessite un
réglage d'asservissement.
Il faut expérimenter et tester des réglages en fonction des futres conditions de coupe réel, en appliquant
de vrais déplacements G1 en mode manuel. La broche n'est pas hyper rapide, une avance par dent déterminera une
certaine avance de travail moyenne. Une erreur de poursuite importante en avance rapide G0 est tolérable.
D'apres ce que j'ai pu observer chez Num , Maho ou heidenhain, en consultant les paramètres machines (anciennes) elles
comportent uniquement du P, mais avec un soin particulier apporté la boucle vitesse en aval
une boucle vitesse digitale est intégré dans la PID de linuxcnc ainsi que du feedforward.
Je regarde les doc heidenhain TNC serie 400 en ce moment des années 95 la boucle vitesse
digitale apparaît, mais seulement sur la 425, ces perfectionnements suivaient la monté en puissance
des processeurs de cette époque.
 
Dernière édition:
B

bendu73

Compagnon

Wahou super la courbe qui varie selon le réglage!!! Cela explique ce tableau! C'est très parlant à présent!!!



Ayant trouver la saturation du P, je vais pouvoir interagir sur les autres.

Je pense que je vais me faire un réglage "fonctionnant", et finir mon programme hal/ini car il me reste encore quelques bidouilles à faire (qui nécessitait le fonctionnement des moteurs avant) :

-potentiomètre d'avance ( j'vais m'amuser la! )
-la manivelle (à câbler sur Mesa) il y a des pages la dessus sur le post de Laurent
-les boutons + et - des avances régulière
-les fins de courses
-l'afficheur (j'aimerai bien mettre un voyant de broche)

J'ai hâte, j'aime bien faire ces programmes, même si c'est pas facile à décrypter (sur la doc par exemple). Le mieux étant l'expérimentation.

C'est tellement plaisant de voir la machine évoluer/bouger alors que je l'ai acheter en février 2016 sans automate et sans l'avoir testé avant

EDIT:
Ah oui aussi, j'ai un soucis sur ma broche...le frein ne s'active pas. Du moins il n'a jamais été frein ce moteur... bizarre, et j'ai 2 relais (déblocage frein 1k4 et désserage frein broche 1k8).
 
Dernière édition:
B

bendu73

Compagnon
Bonjour,

bon pas évident ces PID. J'ai une erreur en stable plus importante lorsque j'élève le I. Sans I, la visu affiche très rapidement l'axe stable, avec du I la visu peine à faire descendre l'erreur de poursuite...
Par contre il me réduit un peu la poursuite en mouvement (cela commence pas 0.15 puis descend progressivement pendant le mouvement), puis arrêt de l'axe, il stop à 0.02 puis descend lentement vers 0 (mais c'est un rattrapage très lent, bien trop lent).

Comme écrit sur le papier, avec le P trop élever j'ai de gros tremblement moteur. j'ai tester tout ça sous deux vitesses d'avances.



 
B

Bruno26

Compagnon
A mon avis, ça ne suffit pas d'afficher l'erreur de poursuite sur le côté de la fenêtre d'Axis. Tu devrai afficher la consigne et la position mesurée dans halscope pour te faire une idée de ce qu'il se passe.
Bon courage pour ces expérimentations.
 
G

gaston48

Compagnon
Bonjour,
A priori, tu n'as pas besoin de I, ton erreur statique est très bonne sans I.
c'est dans les phases dynamique qu'il faut améliorer.
Tu peux monter le D et en même temps peut être du P aussi.
le problème est que ça rend la boucle nerveuse et plus bruitée surtout et qu'un
bruit peut déclencher une oscillation (toujours à une fréquence identique propre à la constante
de temps mécanique et électronique).
Tu peux diminuer le servothread aussi de 1000000 à 500000 ns et encore moins
Et enfin tu peux jouer sur FF1 aussi mais c'est comme D, tu as un système plus
nerveux, susceptible.
http://linuxcnc.org/docs/2.7/html/man/man9/pid.9.html
Bruno à raison il faut te mettre à halscope, c'est pas évident comme tout oscilloscope
surtout que dans halscope, comme c'est un numérique, il faut paramétrer le taux d’échantillonnage
en fonction du nombre de voie et de la bande passante souhaitée.
n'oublie pas de sauvegarder sa config quand tu quittes halscope
 
G

gaston48

Compagnon
Oui, mais il manque le feedback vitesse, pid.N.feedback-deriv peut être apparut après ce schéma
connecté à un signal vitesse de l'encodeur velocity
Je pense que cette boucle peut se substituer dans une certaine mesure à la boucle analogique vitesse de la tachy et son drive
 
V

vres

Compagnon
Personnellement je règle d'abord le P et le D, normalement quand on a des oscillations en augmentant P on peut stabiliser avec D.
Ensuite on agit sur I pour avoir une erreur de poursuite le plus proche de zéro.
Le problème c'est que I doit être assez réactif en fonction de l'accélération. En accélération tu parles de 50, si c'est 50mm.s-² c'est une petite accélération.
Si on est en consigne vitesse on peut avoir un coefficient vitesse (FF1 il me semble Gaston ?) pour que le PID agissent sur une erreur plus petite.
Une vidéo de réglage de PID : https://1drv.ms/v/s!ApQwIT9biUvviNMSng3UWQn3F2KOLA
 

Sujets similaires

V
Réponses
12
Affichages
913
vibram
V
E
Réponses
1
Affichages
829
sodereco
S
V
Réponses
11
Affichages
1 256
laurent12100
L
Réponses
9
Affichages
18 370
tournele
Réponses
8
Affichages
542
Réponses
0
Affichages
161
Pinocchio
G
Réponses
41
Affichages
4 439
thierry74
N
Réponses
2
Affichages
523
pierrem