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:

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.8^\circ$, angle per full step

$U = 24\ V$, voltage

$P = 2\ mm$, pitch

$N_t = 20$, teeth per gear

$N_{ms} = 16$, microsteps per full step

$v = 200\ mm/s$, desired speed

$T_h = 0.4, Nm$, holding torque

$I_r = 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:

$N_s = 360^\circ / A = 200\ step/rev$, full steps per revolution

$d = P * N_t = 40\ mm/rev$, distance per revolution

$d_s = d / N_s = 0.2\ mm$, distance per full step

$d_{ms} = 1000 * d_s / N_{ms} = 12.5\ \mu m$, distance per microstep

$I_e = I_r * e / 100 = 1.125\ A$, effective max current

$RD = N_s * N_{ms} / d = 80\ step/mm$, rotational distance (is it supposed to be microsteps/mm?)

$v_{max} = f * 1000 / RD = 2500\ mm / s$, max theoretical speed at this rate

$RPM_m = 60 * (v / d) = 300\ rev/min$, revolutions per minute at speed $v$; Alex also multiplies by $N_s$ and divides by a magic number 200, both really make no sense to me

$RPS_m = RPM_m / 60 = 5\ rev/sec$, revolutions per second

$\xi_r = \sqrt 2 * \pi * T_h * (RPS_m/I_r) \approx 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 moto") where the rated current is used as well. To me, it looks like should be $I_e$ 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

$\xi_i = RPS_m * \pi *I_e * (L/1000) * (N_s/2) \approx 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.



You must log in to answer this question.

Browse other questions tagged .