I'd like to know how to estimate the maximum speed of a stepper motor before the torque drop-off. There are several existing calculators of varying degrees of complexity for that:
- RepRap calculator
- Alex Kenis provides a spreadsheet (see also links therein)
- Many thanks to Ryan Carlyle for his answer to "Real life stepper speed" here on 3D Printing.SE
- Zalophus Dokdo's Stepper Motors Calculator
- CNC.xyz's Stepper Motor Calculations
However, some of them simply don't explain all the math behind the numbers, there are differences see issue #38 between real-life measurements and theoretical predictions, and all the notation is a bit inconsistent.
It is possible to do the calculations using full ODEs and all that sort of jazz, but it's too much for a single motor. I prefer to see it as a black box with some exposed parameters, nothing more.
What I've got so far boils down to EMF:
A = 1.8o, angle per full step
U = 24 V, voltage
P = 2 mm, pitch
Nt = 20, teeth per gear
Nms = 16, microsteps per full step
v = 200 mm/s, desired speed
Th = 0.4 Nm, holding torque
Ir = 1.5 A, rated current
R = 5.75 Ohm, phase resistance
e = 75%, stepper current
L = 8.4 mH, motor inductance
f = 200 kHz, max step rate, see Klipper docs
Derived variables:
Ns = 360o / A = 200 step/rev, full steps per revolution
d = P * Nt = 40 mm/rev, distance per revolution
ds = d / Ns = 0.2 mm, distance per full step
dms = 1000 * ds / Nms = 12.5 um, distance per microstep
Ie = Ir * e / 100 = 1.125 A, effective max current
RD = Ns * Nms / d = 80 step/mm, rotational distance (is it supposed to be microsteps/mm?)
vmax = f * 1000 / RD = 2500 mm/s, max theoretical speed at this rate
RPMm = 60 * (v / d) = 300 rev/min, revolutions per minute at speed v; Alex also multiplies by Ns and divides by a magic number 200, both really make no sense to me
RPSm = RPMm / 60 = 5 rev/sec, revolutions per second
xir = 1.414 * PI * Th * (RPSm / Ir) ~ 5.9 V, rotation EMF. This is the point where questions start to arise though. I found another source ("Back emf due to rotation of stepper motor") where the rated current is used as well. To me, it looks like should be Ie even for peak EMF values since the current is limited by the corresponding driver. There is also an argument in issue #38 regarding the coefficients that should be used in practice
xii = RPSm * PI * Ie * (L / 1000) * (Ns / 2) ~ 14.8 V, Alex uses magic numbers again, I also failed to find the actual source for this formula.
Now, since I'm not sure these values/formulas are valid I can't move to the next part that's calculations of the maximum achievable speed. Even more so, there are two formulas that introduce even more confusion.
I'd be happy to see some solid advice or potential sources to read.
- RepRap calculator
- Alex Kenis provides a spreadsheet (see also links therein)
- Many thanks to Ryan Carlyle for his answer to "Real life stepper speed" here on 3D Printing.SE
- Zalophus Dokdo's Stepper Motors Calculator
- CNC.xyz's Stepper Motor Calculations
However, some of them simply don't explain all the math behind the numbers, there are differences see issue #38 between real-life measurements and theoretical predictions, and all the notation is a bit inconsistent.
It is possible to do the calculations using full ODEs and all that sort of jazz, but it's too much for a single motor. I prefer to see it as a black box with some exposed parameters, nothing more.
What I've got so far boils down to EMF:
A = 1.8o, angle per full step
U = 24 V, voltage
P = 2 mm, pitch
Nt = 20, teeth per gear
Nms = 16, microsteps per full step
v = 200 mm/s, desired speed
Th = 0.4 Nm, holding torque
Ir = 1.5 A, rated current
R = 5.75 Ohm, phase resistance
e = 75%, stepper current
L = 8.4 mH, motor inductance
f = 200 kHz, max step rate, see Klipper docs
Derived variables:
Ns = 360o / A = 200 step/rev, full steps per revolution
d = P * Nt = 40 mm/rev, distance per revolution
ds = d / Ns = 0.2 mm, distance per full step
dms = 1000 * ds / Nms = 12.5 um, distance per microstep
Ie = Ir * e / 100 = 1.125 A, effective max current
RD = Ns * Nms / d = 80 step/mm, rotational distance (is it supposed to be microsteps/mm?)
vmax = f * 1000 / RD = 2500 mm/s, max theoretical speed at this rate
RPMm = 60 * (v / d) = 300 rev/min, revolutions per minute at speed v; Alex also multiplies by Ns and divides by a magic number 200, both really make no sense to me
RPSm = RPMm / 60 = 5 rev/sec, revolutions per second
xir = 1.414 * PI * Th * (RPSm / Ir) ~ 5.9 V, rotation EMF. This is the point where questions start to arise though. I found another source ("Back emf due to rotation of stepper motor") where the rated current is used as well. To me, it looks like should be Ie even for peak EMF values since the current is limited by the corresponding driver. There is also an argument in issue #38 regarding the coefficients that should be used in practice
xii = RPSm * PI * Ie * (L / 1000) * (Ns / 2) ~ 14.8 V, Alex uses magic numbers again, I also failed to find the actual source for this formula.
Now, since I'm not sure these values/formulas are valid I can't move to the next part that's calculations of the maximum achievable speed. Even more so, there are two formulas that introduce even more confusion.
I'd be happy to see some solid advice or potential sources to read.