Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
printer_controller_trajectory_planning [2016/08/04 16:00] – created Traumflug | printer_controller_trajectory_planning [2018/05/27 16:10] (current) – external edit (unknown user) | ||
---|---|---|---|
Line 25: | Line 25: | ||
Moving stepper motors at a certain velocity means to send out pulses after certain delays. A computationally very cheap approach is to simply subtract some value from the previous delay to achieve higher speeds. However, this means non-constant acceleration. Still it's a lot better than no acceleration at all. | Moving stepper motors at a certain velocity means to send out pulses after certain delays. A computationally very cheap approach is to simply subtract some value from the previous delay to achieve higher speeds. However, this means non-constant acceleration. Still it's a lot better than no acceleration at all. | ||
- | AFAIK, [[https:// | + | AFAIK, [[https:// |
=== Constant Acceleration Calculation Step by Step === | === Constant Acceleration Calculation Step by Step === | ||
Line 35: | Line 35: | ||
=== Step Based Acceleration Updates at Discrete Time Intervals === | === Step Based Acceleration Updates at Discrete Time Intervals === | ||
- | Instead of doing this computationally intensive acceleration calculation after every step, it's done every other microsecond | + | Instead of doing this computationally intensive acceleration calculation after every step, it's done every other millisecond |
This is what Teacup firmware uses when compiled with ACCELERATION_REPRAP. Achievable step rate on an 16\_MHz ATmega is some 40'000 steps per second. Faster hardware, like an ARM Cortex-M4 has been demonstrated to exceed 500' | This is what Teacup firmware uses when compiled with ACCELERATION_REPRAP. Achievable step rate on an 16\_MHz ATmega is some 40'000 steps per second. Faster hardware, like an ARM Cortex-M4 has been demonstrated to exceed 500' | ||
Line 51: | Line 51: | ||
To the left is a " | To the left is a " | ||
- | This jerk signal (now any value in the range {-1, 1}) is put into another integrator, which integrates up again.This gives acceleration. Yet another integrator in the chain gives velocity. The last integrator gives position, and that integrator happens to be not some mathematical formula, but our stepper motor. | + | This jerk signal (now any value) is put into another integrator, which integrates up again.This gives acceleration. Yet another integrator in the chain gives velocity. The last integrator gives position, and that integrator happens to be not some mathematical formula, but our stepper motor. |
The non-trivial part here is to calculate the original signal. There' | The non-trivial part here is to calculate the original signal. There' |
printer_controller_trajectory_planning.1470319259.txt.gz · Last modified: 2018/05/27 16:10 (external edit)