Hi there,
One of the limitations in driving a stepper motor is the type of
circuit used to drive it and the voltage that is supplied to that
circuit.
Let me try to explain this a bit more.
The winding of a stepper is inductive and resistive in nature.
The resistive part dissipates energy and so will eventually heat up the
motor. Normally with a pure inductance, the inductive part will
not dissipate energy and so will not contribute to the heat, but
because the inductive part of the coil is made with a non ideal
core which has various losses associated with it, the inductive
part actually dissipates energy too which results in more heating.
Thus, we have heating from both coil resistance and non ideal
inductance.
The heating from the coil resistance is based on t*I^2*R losses
and so goes up with current and the time the coil is on for
so speed is partly involved.
The heating from the coil non ideal inductance is based on the
current and the frequency, and here the frequency plays an
important role in limiting how fast we can switch the coil on and
off, and this limits speed.
This all of course depends on the type of driver, assuming we
have the best possible driver, and the best possible driver is
one that can force the current to rise as fast as possible in
the motor winding, and once it gets there, to regulate it at
the limit of the motor spec.
The circuit voltage is important too as that is what is used to
force the current to rise as fast as possible, so if the circuit
power supply voltage isnt high enough, the motor will not run
as fast as possible.
The problem is also that some circuits will not accept voltages
that are higher than maybe 30 or 40v or so.
To see how the voltage of the power supply affects speed we
can look at the equation for an inductor:
v=L*di/dt
where
v is the voltage
L is the inductance
di is the change in current
dt is the time it takes for that change in current.
We know what di is because that will be the peak current that
we can put through the motor, assuming a set duty cycle,
and we know what v is because that's the power supply voltage,
and we might find out what L is by looking at the motor spec sheet,
so we solve for dt which is the time it takes for the current to
reach the level di we want:
dt=L*di/v
Now for the sake of this discussion we lump L and di to form one
constant K which reduces this equation to:
dt=K/v
Now recognizing that K never changes, we can try various values for
v and see what happens to dt. After trying a few values it becomes
obvious that because v is in the denominator, decreasing v increases
dt, and increasing v decreases dt. Because we want faster speed we
want to decrease dt, so this means we have to increase v.
Now back to the limitations...
The resistance heats the motor and so does the non ideal inductance.
The resistance limits the average current through the motor, even with
an ideal circuit that can regulate current precisely. Thus, in the above
equation di is limited based on the motor construction.
Since the non ideal inductance also heats the motor, this places a
limit on frequency, or the speed of the motor.
The idea then is to run the motor with the best circuit possible and
try to increase speed. As the speed increases the motor will
eventually get too hot to run without burning up.