Général Vitesse moteur PAP

  • Auteur de la discussion Mcar
  • Date de début
F

Fred69

Compagnon
c'est dans les premiers tours que le moteur décroche à environ 5-10 tr/mn et cela à l'accélération comme à la deceleration.
Je crois que c'est normal si le moteur tourne à vide, essaie de faire le test en serrant l'axe du moteur dans tes doigts par exemple.
 
M

Mcar

Compagnon
Je crois que c'est normal si le moteur tourne à vide, essaie de faire le test en serrant l'axe du moteur dans tes doigts par exemple.
je viens de faire un essai, ça a l'air de confirmer tes propos, merci
formidable ce forum :smt038
 
J

Jmr06

Compagnon
le microstep et reglé à 1
Pour les faibles vitesse, si tu as des micro-pas, cela se passera mieux. En pas entier, il y a des résonances qui font des bêtises. Le faite de mettre un couple résistant amortit ces résonances, ce qui fait que cela se passe mieux. Une autre méthode, c'est d'utiliser des micro-pas ce qui réduit aussi ces résonances (les pas n'arrivent pas en 1 coup, mais progressivement micro-pas par micro-pas, ce qui évite en partie les résonances).
Il y a donc peut-être un compromis à trouver pour les micro pas, entre vitesse max et démarrage.
De toute manière, ces problèmes de résonance, il faut voir cela en situation, avec la charge. C'est un ajustement de paramètre à voir une fois que tout est monté.
 
M

Mcar

Compagnon
oui, j'ai modifié tout ça, car je l'avait remarqué.
donc maintenant je suis à 800 pas/tour soi un coefficient de 2 puisque mon moteur est un 400step/tr.
en charge le moteur ne décroche plus à basse vitesse .
je me suis créé ma propre routine d'accélération et décélération, celle de AccelStepper ne me plaisait pas car l'accélération /deceleration est la même ce que je ne veut pas. (je dois minimiser le temps de déplacement au maximum pour éviter que mes trains attendent avant de franchir cet ascenseur. la courbe de l'accélération étant plus faible que la deceleration.
voilà mon code :



et voilà une video

 
G

gégé62

Compagnon
mais paradoxalement lorsque j'applique l'accélération c'est dans les premiers tours que le moteur décroche à environ 5-10 tr/mn et cela à l'accélération comme à la deceleration.
bonjour,
d'après mon expérience (avec un brushless mais je pense que c'est le même problème) j'avais aussi des décrochements de ce type au démarrage et en fin de ralentissement. J'ai expliqué cela par un trop fort couple produit à chaque impulsion: le rotor démarre trop vite, il a tendance à aller trop loin, et l'impulsion suivante a plutot pour effet de le freiner c'est un peu le "décrochement par coup de pied au cul" . Autrement dit, pas assez de couple, ça ne va pas, trop de couple ça ne va pas non plus....Le remède pour cela serait d'adapter (par la tension ou la durée d'impulsion) au moins pour les basses vitesses.
Comme dit plus haut on peut penser que c'est une sorte de résonance (fonction du couple et de l'inertie de l'ensemble tournant).
 
V

vres

Compagnon
En pas entier le couple développé sur chaque pulse correspond au couple de maintien, c'est ingérable.
 
V

vres

Compagnon
On utilise un moteur Pas à Pas pour faire du positionnement précis.
Utiliser un générateur de pulses pifometrique et un FdC pour positionner un moteur Pas à Pas ça n'a pas de sens, c'est même du contre-emploi.
Dans ce cas autant utiliser un moteur DC ou asynchrone beaucoup mieux adapté.
En CNC pour faire les POM avec précision on fait plusieurs phases et la dernière est toujours a vitesse fixe.
 
M

Mcar

Compagnon
En pilotage c'est la formule a connaître absolument pour arrêter a la bonne position en respectant la decceration. Évidemment ce point dépend de la vitesse et ce n'est pas linéaire, il faut normalement passer par une racine carrée. Je peux te donner la formule mais demain, aujourd'hui je suis en déplacement.
je croyais que tu avais pris ta retraite :smt017
je suis hors sujet, car j'ai deux applications avec un PAP où je travaille en même temps
l'un pour l'avance auto de ma BF28 et là le générateur d'impulsion est suffisant, tout au moins en l'absence d'un moteur DC.
et l'autre pour mon ascenseur pour mes petits trains, et là j'aurai besoin de deux rampes differentes pour l'accel et l'autre pour la deceleration.
on passe on MP pour ne plus polluer ce poste.
 
E

enguerland91

Compagnon
Les moteurs PàP de "bonne lignée" ont une vitesse max indiquée par le fabricant jusqu'à laquelle le moteur peut aller en mode "start/stop" *** sans pertes de pas. Evidemment cette vitesse est liée à la charge à entrainer. Dans ce contexte pour faire des déplacements précis on utilise un compteur-décompteur pour programmer un déplacement. J'ai un tel montage sur une cnc qui gravait et perçait des pcb. Sauf que je ne sais pas si ces CI existent toujours.
*** start/stop -- veut dire sans rampes d'accélération/décélération
 
M

Mcar

Compagnon
Les moteurs PàP de "bonne lignée" ont une vitesse max indiquée par le fabricant jusqu'à laquelle le moteur peut aller en mode "start/stop" *** sans pertes de pas. Evidemment cette vitesse est liée à la charge à entrainer. Dans ce contexte pour faire des déplacements précis on utilise un compteur-décompteur pour programmer un déplacement. J'ai un tel montage sur une cnc qui gravait et perçait des pcb. Sauf que je ne sais pas si ces CI existent toujours.
*** start/stop -- veut dire sans rampes d'accélération/décélération
idem jamais vu, en revanche on peut avoir ça (stepperonline) :
1616692523577.png
 
W

wika58

Compagnon
On utilise un moteur Pas à Pas pour faire du positionnement précis.
Utiliser un générateur de pulses pifometrique et un FdC pour positionner un moteur Pas à Pas ça n'a pas de sens, c'est même du contre-emploi.
Attention aux affirmations magistrales...
Ce n'est en aucun cas ce que JE souhaite faire (et d'autres).
Je souhaite pouvoir faire des passes successives entre 2 positions approximatives à une vitesse paramétrable...


...En CNC pour faire les POM avec précision on fait plusieurs phases et la dernière est toujours a vitesse ...
Ca c'est clair...
 
V

vres

Compagnon
Attention aux affirmations magistrales...
Ce n'est en aucun cas ce que JE souhaite faire (et d'autres).
Comme je l'ai souligné ensuite, cette intervention était au sujet du cas de MCar auquel les précédents messages faisaient références. En aucun in ne s'agissait de ton cas. Il y a 2 sujets qui se croisent ce qui peut entraîner cette incompréhension. Désolé de t'avoir froissé:spamafote:
 
W

wika58

Compagnon
Ok clair...

J'ai réagi en retard car j'étais absent cet aprem.... petit visu (en respectant les gestes barrières) chez un ami du forum...
Qu'est ce que ca fait du bien... merci Raymond.
 
V

vres

Compagnon
je me suis créé ma propre routine d'accélération et décélération, celle de AccelStepper ne me plaisait pas car l'accélération /deceleration est la même ce que je ne veut pas.
Le problème dans ton code c'est qu'il n'y a pas de synchronisation entre ton accélération et la classe AccelStepper, on ne sais pas combien de temps dure tes boucles.
Je pense qu'il faut faire le contraire, dans ta boucle récupérer la position du moteur et calculer la vitesse.
 
M

Mcar

Compagnon
Merci Christian pour cette suggestion
je vais aller dans ce sens et voir ce que ça donne.
pour l'accélération je n'ai pas de problème car j'ai vérifié le nombre de pas nécessaire à cette accélération et ca corrobore avec la distance que j'estime correcte, distance toujours en dessous du nombre total de pas nécessaire au déplacement. c'est la deceleration qui pose problème comme dit pour synchroniser l'arriver au point programmé et la vitesse 0. encore que je peux définir un arrêt à une vitesse très faible au point.
 
W

wika58

Compagnon
Une solution utilisée dans l'industrie est de décélérer à un point A (xx mm avant le point de destination) jusqu'à une vitesse faible... et venir mourir à faible vitesse sur la position de destination (yyy pas du point de départ ou du point A).

Le point A est soit défini par un FdC soit par un compteur de pas depuis le point de départ...
L'avantage du FdC est que tu peux le rentrer sur une entrée qui gère les interruptions. Et donc ...
 
M

Mcar

Compagnon
Une solution utilisée dans l'industrie est de décélérer à un point A (xx mm avant le point de destination) jusqu'à une vitesse faible... et venir mourir à faible vitesse sur la position de destination (yyy pas du point de départ ou du point A).

Le point A est soit défini par un FdC soit par un compteur de pas depuis le point de départ...
L'avantage du FdC est que tu peux le rentrer sur une entrée qui gère les interruptions. Et donc ...
Oui Patrick, j'avais vu aussi cette solution. merci
Mais c'est une solution que j'utiliserai en dernier car ça m'oblique à installer 7 switch car 7 positions de l'ascenseur et je veux voudrai minimiser au maxi les câbles hors proximité de arduino suite à une mauvaise expérience de parasites pour gérer le VAR de mon tour (t'en souviens tu ?).
 
W

wika58

Compagnon
Alors tu mets 7 compteurs de pas... et tu as tes 7 positions de décélération.

Mais tjrs avec qq mm en vitesse lente pour mourir sur la destination.

Essayer de tomber pil-poil sur la position de destination en deccelérant de la GV est bcp plus difficile !!!
 
Dernière édition:
V

vres

Compagnon
c'est la deceleration qui pose problème comme dit pour synchroniser l'arriver au point programmé et la vitesse 0. encore que je peux définir un arrêt à une vitesse très faible au point.
Le problème avec ce code c'est qu'on ne connais pas la décélération réelle, donc il est très difficile de calculer le point de décélération.

Si ta vitesse est de 10 mm/s et une décélération de 2mm.s-² et que tu veux arriver à une vitesse de 0 mm/s a la position il te faudra :
t = V/a = 10 / 2 = 5s
Pour connaitre la distance
la formule est d = t²/2a donc 5² / 4 = 6.25 mm

donc tu dois commencer à décélérer à 6.25 mm de la fin.
C'est difficilement applicable a ton code.

Si tu me donne une bonne semaine je vais développer un code de positionneur pour moteur PàP avec prise en compte d'une accélération et une décélération différente. Il faut que je récupère un Arduino dans mon box (je suis SDF).

si tu veux arriver a une vitesse différente de zéro c'est a peine plus compliqué
t = (V1-V0)/a
d = t²/2a + V0.t

donc si tu veux arriver a une vitesse de 0.5mm/s en fin de trajectoire (vitesse Start/Stop)

t = 10 -0.5 /2 = 4.75s

d = (4.75²/4) + (4.75 x 0.5) = 5.64 + 2.75 = 8.39 mm
 
Dernière édition:
M

Mcar

Compagnon
Alors là :hang: il va falloir que je booste mes neurones :mrgreen:
je regarde tout ça et je modifie mon code en fonction de cette formule, merci @CNCSERV
je te dis le résultat.
 
W

wika58

Compagnon
... je voudrais minimiser au maxi les câbles hors proximité de arduino suite à une mauvaise expérience de parasites pour gérer le VAR de mon tour (t'en souviens tu ?).
Oui mais là on est pas dans le même contexte... le VdF c est vraiment méchant niveau parasites...

Mais de toute façon les règles en electronique industrielle restent les mêmes...
Découpler (opto-coupleurs) les signaux qu'on ballade... et tension différente et > au 5 Vdc d'alim du micro-controleur...
De toute façon il te faudra au moins un FdC pour le POM...
 
M

Mcar

Compagnon
Le problème avec ce code c'est qu'on ne connais pas la décélération réelle, donc il est très difficile de calculer le point de décélération.

Si ta vitesse est de 10 mm/s et une décélération de 2mm.s-² et que tu veux arriver à une vitesse de 0 mm/s a la position il te faudra :
t = V/a = 10 / 2 = 5s
Pour connaitre la distance
la formule est d = t²/2a donc 5² / 4 = 6.25 mm

donc tu dois commencer à décélérer à 6.25 mm de la fin.
C'est difficilement applicable a ton code.

Si tu me donne une bonne semaine je vais développer un code de positionneur pour moteur PàP avec prise en compte d'une accélération et une décélération différente. Il faut que je récupère un Arduino dans mon box (je suis SDF).

si tu veux arriver a une vitesse différente de zéro c'est a peine plus compliqué
t = (V1-V0)/a
d = t²/2a + V0.t

donc si tu veux arriver a une vitesse de 0.5mm/s en fin de trajectoire (vitesse Start/Stop)

t = 10 -0.5 /2 = 4.75s

d = (4.75²/4) + (4.75 x 0.5) = 5.64 + 2.75 = 8.39 mm
si je pars de ces formules que tu as données, et que je transforme une vitesse en mm/s par une vitesse en step/s
je ne fais pas d'erreur :smt017
donc vitesse max = 5400 step/s , décélération 200 step /s
T = V/A = 5400/200 = 27sec.
distance = 27² / 400 = 1,8 step ca me parait faux
ou est mon erreur ?

maintenant je sais que 800step = 1 tour de vis à bille soit 5mm
donc la vitesse = 5400 step/s = 6,75 tr/s = 33,75 mm/s
je veux une accélération de 200 step/s soit 200/800 = 0,25tr/s = 1,25mm/s²
donc T= 33,75/1,25 = 27 sec.
distance = 27x27/2x1,25=291,6 mm soit en ramené en pas = 58,32 tour = 46656 step

en considerant que ce calcul est juste, pourquoi je ne retombe pas sur mes pas (sans jeu de mot) avec le premier calcul ?
 
V

vres

Compagnon
J'ai mélange temps et vitesse
les bonnes formules sont (j'espère):

d = t².0,5.a donc 27² X 0.5 X 200 = 72900 steps

si on prend directement la vitesse: d = V²/2a = 5400²/400 = 72900 steps

si tu veux connaitre la vitesse en fonction de la distance qui reste la formule est donc

V = √ ( d*2a)
donc si il te reste 20000 steps à faire, la vitesse sera de √ (20000 * 2 * 200) = 2828 step/s.
Malheureusement ce calcul n'est pas possible sur un Arduino mais on peut ruser en faisant un tableau. Je vais voir ça.
 
Dernière édition:
M

Mcar

Compagnon
Là c'est l'heure de l apéro :mrgreen:
je teste tout ça ce soir avec arduino, Merci Christian
 
M

Mcar

Compagnon

Sujets similaires

V
Réponses
3
Affichages
1 034
vibram
V
F
Réponses
6
Affichages
25 663
fraiddy
F
G
Réponses
123
Affichages
19 200
gaston83
G
M
Réponses
15
Affichages
37 574
Doctor_itchy
D
U
Réponses
85
Affichages
7 234
Hubert86
H
G
Réponses
65
Affichages
9 292
rokag3
R
V
Réponses
62
Affichages
39 341
Dardar88
Dardar88
M
Réponses
185
Affichages
24 835
wika58
W
V
Réponses
7
Affichages
1 975
vibram
V
jpbbricole
Réponses
18
Affichages
4 422
jpbbricole
jpbbricole
jpbbricole
Réponses
1
Affichages
1 836
pinou29
pinou29
Haut