Deploying to gh-pages from @ Klipper3d/klipper@7b490f3ec1 🚀
This commit is contained in:
@@ -983,8 +983,8 @@
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#lissage-de-la-projection" class="md-nav__link">
|
||||
Lissage de la projection
|
||||
<a href="#minimum-cruise-ratio" class="md-nav__link">
|
||||
Minimum cruise ratio
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -1428,8 +1428,8 @@
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#lissage-de-la-projection" class="md-nav__link">
|
||||
Lissage de la projection
|
||||
<a href="#minimum-cruise-ratio" class="md-nav__link">
|
||||
Minimum cruise ratio
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -1540,12 +1540,14 @@
|
||||
<div class="highlight"><pre><span></span><code>end_velocity^2 = start_velocity^2 + 2*accel*move_distance
|
||||
</code></pre></div>
|
||||
|
||||
<h3 id="lissage-de-la-projection">Lissage de la projection<a class="headerlink" href="#lissage-de-la-projection" title="Permanent link">¶</a></h3>
|
||||
<h3 id="minimum-cruise-ratio">Minimum cruise ratio<a class="headerlink" href="#minimum-cruise-ratio" title="Permanent link">¶</a></h3>
|
||||
<p>Klipper met également en œuvre un mécanisme permettant de lisser les mouvements de courts déplacements en "zigzag". Considérons les mouvements suivants :</p>
|
||||
<p><img alt="zigzag" src="img/zigzag.svg.png" /></p>
|
||||
<p>Dans l'exemple ci-dessus, les passages fréquents de l'accélération à la décélération peuvent faire vibrer la machine provoquant des contraintes sur la machine et augmentant le bruit. Pour réduire ce phénomène, Klipper suit à la fois l'accélération des mouvements réguliers et un taux virtuel "d'accélération à décélération". Grâce à ce système, la vitesse maximale de ces courts mouvements en "zigzag" est limitée pour lisser le mouvement de l'imprimante :</p>
|
||||
<p>In the above, the frequent changes from acceleration to deceleration can cause the machine to vibrate which causes stress on the machine and increases the noise. Klipper implements a mechanism to ensure there is always some movement at a cruising speed between acceleration and deceleration. This is done by reducing the top speed of some moves (or sequence of moves) to ensure there is a minimum distance traveled at cruising speed relative to the distance traveled during acceleration and deceleration.</p>
|
||||
<p>Klipper implements this feature by tracking both a regular move acceleration as well as a virtual "acceleration to deceleration" rate:</p>
|
||||
<p><img alt="smoothed" src="img/smoothed.svg.png" /></p>
|
||||
<p>Plus précisément, le code calcule ce que serait la vitesse de chaque mouvement s'il était limité à ce taux virtuel "d'accélération à décélération" (la moitié du taux d'accélération normal par défaut). Dans l'image ci-dessus, les lignes grises en pointillés représentent ce taux d'accélération virtuel pour le premier déplacement. Si un déplacement ne peut atteindre sa vitesse de croisière maximale en utilisant ce taux d'accélération virtuel, sa vitesse maximale est réduite à la vitesse maximale obtenu avec ce taux d'accélération virtuel. Pour la plupart des mouvements, la limite sera égale ou supérieure aux limites existantes du mouvement et aucun changement de comportement n'est induit. En revanche, pour les déplacements courts en zigzag, cette limite réduit la vitesse maximale. Notez que cela ne modifie pas l'accélération réelle du mouvement - le mouvement continue d'utiliser le schéma d'accélération normal jusqu'à sa vitesse maximale ajustée.</p>
|
||||
<p>Specifically, the code calculates what the velocity of each move would be if it were limited to this virtual "acceleration to deceleration" rate. In the above picture the dashed gray lines represent this virtual acceleration rate for the first move. If a move can not reach its full cruising speed using this virtual acceleration rate then its top speed is reduced to the maximum speed it could obtain at this virtual acceleration rate.</p>
|
||||
<p>For most moves the limit will be at or above the move's existing limits and no change in behavior is induced. For short zigzag moves, however, this limit reduces the top speed. Note that it does not change the actual acceleration within the move - the move continues to use the normal acceleration scheme up to its adjusted top-speed.</p>
|
||||
<h2 id="etapes-de-la-generation">Étapes de la génération<a class="headerlink" href="#etapes-de-la-generation" title="Permanent link">¶</a></h2>
|
||||
<p>Une fois le processus d'anticipation terminé, le mouvement de la tête d'impression du mouvement donné est entièrement connu (temps, position de départ, position finale, vitesse à chaque point) et il est possible de générer les durées de pas du mouvement. Ce processus est effectué dans les "classes cinématiques" du code Klipper. En dehors de ces classes cinématiques, tout est suivi en millimètres, en secondes et dans un espace de coordonnées cartésiennes. C'est la tâche des classes cinématiques de convertir ce système de coordonnées générique aux spécificités matérielles de l'imprimante particulière.</p>
|
||||
<p>Klipper utilise un <a href="https://en.wikipedia.org/wiki/Root-finding_algorithm">solveur itératif</a> pour générer les durés de pas pour chaque moteur. Le code contient les formules permettant de calculer les coordonnées cartésiennes idéales de la tête à chaque instant, ainsi que les formules cinématiques permettant de calculer les positions idéales des moteurs à partir de ces coordonnées cartésiennes. Grâce à ces formules, Klipper peut déterminer le moment idéal où le moteur doit se trouver à chaque position de pas. Les étapes données sont alors programmées à ces moments calculés.</p>
|
||||
|
||||
Reference in New Issue
Block a user