Technique

Algorithmique

Catégories: Théorie

Traçé des droites et des cercles

En deux axes, il est relativement facile de tracer informatiquement droites et cercles, il existe depuis très longtemps des algorithmes ultra-simples, sans multiplication autre que par 2 et surtout sans division, et uniquement en entiers, qui sont les algorithmes de Bresenham, pour les droites et les cercles.

Pour passer en trois axes, il faut rechercher l'"axe maître" (celui qui
a le plus grand nombre de pas) et faire tourner en simultané deux algorithmes.

Régularité simultanée sur les axes

Si on veut une bonne fluidité, il faut faire un 'suréchantillonage' pour que les pas ne soient pas envoyés au même moment, parce que sinon, lorsque l'on est proche de 45°, les irrégularités sur l'axe 'esclave' sont très importantes. genre 1-1-1-1-2-1-1-1-1-2.
Si on multiplie le nombre de pas par 4, par exemple, on aura en
'équivalent temps' 1.25-1.25-1.25-1.25-1-1.25,etc.

- Un petit dessin serait utile... -

La vitesse est contrôlée en modulant l'échelon de temps entre les pas de
l'"axe maitre", il faut donc faire une correction pour avoir la vitesse
réelle.

Enchaînement des segments

Si on enchaîne deux segments présentant un angle, on a forcément une transitoire de vitesse instantanée représentant une accélération extrêmement importante.
Les moteurs pas à pas permettent des transitoires instantanées, mais leur valeur est limitée.
Quand on paramètre un logiciel, on définit d'ailleurs une vitesse 'de départ' qui servira de point de départ à l'accélération.
Cette vitesse est indiquée sur les courbes de couple de moteurs pas à pas, mais elle est plus faible dans la réalité, du fait de l'inertie ajoutée en plus de celle du moteur. Voir les courbes de couple 'pull-in', moteur départ à vitesse nulle, par opposition au courbes 'pull-out', moteur lançé.

Ce que j'avais envisagé, mais jamais testé, c'est d'accepter une transitoire de vitesse sur un axe approximativement égale à la moitié de celle que l'on accepte départ à 0. Le moteur étant en rotation dispose de moins de couple, il est donc évident que les transitoires qu'il accepte sont moins fortes. On pourrait envisager de moduler ces transitoires en fonction de la vitesse , mais c'est un poil plus compliqué.
De cette manière, on peut faire des enchaînements de vecteurs, sans arrêter le mouvement. Si l'angle est faible, il n'y a même pas à ralentir.

Une bonne solution serait de faire un petit programme de test, qui fait des essais de démarrage à 0 à des vitesses croissantes, de façon a déterminer à quel moment on décroche, et de même, faire des essais de transitoires, déplacement déjà engagé. En faisant suivre la transitoire d'une accéleration brutale, on doit pouvoir déterminer si la machine à décroché, car le couple de 'raccrochage' est faible.

Liens

http://www.cs.uiowa.edu/~jones/step/highlevel.html

Le contenu de ce site est soumis à une License Creative Commons   (détails). Creative Commons License
Éditer - Historique - Imprimable - Changements récents - Rechercher
Page mise à jour le 15/12/2015 03:10