Optimizing Use of High Speed Stepping Motor


Stepper motors are generally driven in open loop mode. The controller defines timing of the pulses sent to the driver. The motor must be strong enough to move the load without loss of synchronism. The advantage of the stepper, related to its design, is to have enough stable positions per revolution for positioning the load without the need for an encoder. Driven in open loop, it is a positioning device by itself.

For fast motion its design presents some disadvantages : at high speed, dynamic motor torque is affected by the high number of commutations per revolution, the iron structure, and the electrical time constant. All these reasons lead the designer to select stepper motors for use as a positioner and move the load along a trapezoidal speed profile.

The Disc Magnet stepper motor has the advantage of lower iron losses than regular hybrid stepper motors. It can therefore also be used for fast incremental motion. To take advantage of its dynamic possibilities one should first know the dynamic torque output of the motor-and-driver and then adapt the velocity profile accordingly. 

In this paper, a simple but reliable model is used for calculating the dynamic torque output. This example it would be better to use a constant speed up to ω0 and then follow an exponential speed profile from ω0 to ω1. Then we present an easy way of calculating the appropriate speed profile. We will also point out the precautions to be taken if the motor is driven in microstep mode.


In many applications, trapezoidal spee profiles are used. This is mainly because motors are working at low speed and because such profiles are easy to implement using existing dedicated integrated circuits. It is, however, important to understand the limitations of such a speed profile. The dynamic torque curve of a stepper usually has a shape as shown. (See Figure 1). 

Say we want to reach the speed ω1 as quickly as possible. When using a linear profile the motor torque is considered equal to T1 over the entire speed range, and we do not take advantage of the motor's capability of delivering much more torque at low speed. In ω0 and then follow an exponential speed profile from ω0 to ω1.


As stated previously, to optimise the speed profile it is imperative to know the dynamic torque of the motor-and-driver unit. There are two ways of doing so. The first one is to measure it. This requires the motor, the driver and some special equipment. A second method consists of calculating the torque. Many papers have been published on how to calculate the dynamic torque of stepper motors, but they often neglect the motor's iron losses. At low speed this is correct, but at high step rates iron losses are no longer negligible. In this Chapter we present a model of iron losses adapted to the Disc Magnet Motor, and then apply it to the dynamic torque calculation. Please note that this model has been simplified after many practical measurements. These simplifications would not hold with other motor technologies.



An alternating magnetic flux crossing an iron structure generates iron losses. There are two kinds of iron losses: those due to hysteresis and losses due to eddy currents.To simulate these losses we suppose that the stator magnetic circuit is perfect and that we have added a second winding with the same number of turns as the motor winding. We imagine this winding connected to a resistance whose value will depend on the frequency of the magnetic flux, i.e. the step rate. Measurements also show that up to the rated flux th resistance does not change with induction. (See Figure 2).

Principle of Measurement:

Two kinds of measurements were made:

  • measure without a rotor
  • measure with the rotor in place

It is important to understand the way these measurements were made, because after comparing both methods and their results we were able to simplify our theoretical model.

Measurements without rotor:

The rotor of disc magnet motors has no iron and, with the permeability of the magnet being close to that of air, it is possible to have the rotor locked or to take it out altogether. The procedure uses a voltage generator. By measuring the voltage, the current and the phase shift we can figure out the R' value at different frequencies (See Figure 3).

According to the phasor diagram fig. III-3 we can calculate R' using the following formulas by using modulas. (See Figure 4).  The last formula is the one to use because it does not take into account inductance. The simulation has shown that with formulas 1 and 2 a variation of inductance will generate big changes for R'. (See Figure 5). 

Measurements with the rotor

A DC motor is used to rotate the stepper motor. The stepper windings are connected to a high impedance oscilloscope. (See Figure 6).  By measuring the EMF versus speed we
find the losses due to R' generated by the magnetic flux from the magnet. With a perfect magnetic circuit EMF would rise linearily with speed. The value of R' is given by the equation in Figure 7. 

By measuring the torque required to drive the stepper we determine the power loss in the magnetic circuit due to flux crossing the winding and flux crossing only the edges of the teeth. We can separate both losses (See Figure 8). 

We can calculate R' with the method used for the EMF, then we can estimate and dissociate the losses at the tooth edges. The equations are show in Figure 9.  This method allows to separate the losses
due to the flux created by the magnet and crossing the motor winding, from losses due to the leakage flux of the magnet crossing only the tooth edges.

Practical measurements and interpretation

Measurements were made for all Portescap stepper motors. Here we only show the results for the motor type escap  PH632-508.002.

Measurements without a rotor

Measure of the real part of the impedance (See Figure 10). 

Measure of the imaginary part of the impedance (See Figure 11). 

Calculation of R' from the results (See Figure 12). 

Note Up to 2500 Hz which means 10000 steps/sec, we can linearize Re(Z) and Jm(Z).

Measurements with the rotor

The evolution of the impedance of the motor winding versus step rate shows the iron losses due to flux created by the winding only. The losses in the common magnetic circuit seen by the magnet and by the coils seem to be pretty small. Therefore we can separate the losses created by the flux of the magnet from the losses created by the flux of the coil. Then our model becomes very simple. The losses due to the flux created by the winding are simulated by modifying the real part of the impedance. The losses due to the magnet flux being located mainly at the tooth edges are taken care of by subtracting the torque required to rotate the stepper from the torque we shall calculate.

As mentioned above, we have linearized the motor resistance versus frequency and also the torque due to the losses created by the magnet flux, according to the following equations. 

The coefficients a and b have been identified for each Portescap motor (See Figure 13). 

Dynamic torque calculation

For calculating the dynamic torque, we consider:

  • the motor speed is constant during one step

  • the time origin is the instant the current reference crosses the zero value

With :    ω the rotor angular velocity
N    the number of pole pairs
T    the electrical period T=(2π)/(ω⋅N)
ψ    phase advance in electrical degrees
to    phase advance in seconds

Calculation principle

Firstly, the torque is calculated for a given speed and a given phase advance. At the time t=0, we suppose that the current equals the current reference which is zero. Then, with the speed considered constant, the BEMF can be a time function just like the current reference. The actual current is calculated with the electrical equation. We distinguish two cases, i.e.the current regulation in regenerative mode or in non regenerative mode. The current being a periodic function, we should have :
i (t+T/2)=-i (t), especially i(t=0)=-i (T/2)

The calculation will be reiterated with i(t) shifted versus the actual current until the case i(t=0) = -
i (T/2) is verified. Figure 14 illustrates the BEMF, the current reference and the actual current as calculated. Calculations are repeated until Ιinit = -Ιfin.

Figure 15 hows the algorithm used to calculate the dynamic torque for a given speed and a given phase advance. The phase advance should of course be adjusted for maximum torque.

Figure 16 shows the dynamic torque both measured and calculated. It should be noted that the result will be less precise if we neglect the iron losses.

Figure 16: Dynamic torque of the PH632-508-002 with an L/R driver, U=36V, serial resistance 33 ohms

Adequate speed profile

In the previous paragraph we calculated the dynamic torque of the stepper associated with its driver. Knowing this torque and the kinematics of the mechanical transmission, like friction and viscous torque, and reflected inertia, we can calculate the velocity profile. 

Exponential speed profile

Consider the useful motor torque to equal seventy percent of the calculated torque, from which we have subtracted the friction and viscous torque. Let's assimilate this usable torque to a linear
function of speed. (See Figure 17). 

speed profile

Figure 17: Torque available to calculate the speed profile

Adequate Speed profile

Depending on the driver it is not always possible to consider the dynamic torque as a linear function of speed. In the following paragraph dynamic torque is assimilated to an association of straight lines.
We do not consider the same curves for the usable acceleration torque and deceleration torque. With friction being a negative torque, it has to be subtracted from the acceleration torque and added to the deceleration or breaking

Practical realisation

So far we have calculated two tables, one each for acceleration and deceleration. Each table has two columns, for the number of steps (or microsteps) to be made at an average speed ωn, and for the average speed in steps/s (or microsteps/s). Obviously, the total displacement is known and, with the algorithm IV-6, also the number of steps to accelerate to constant speed. We now need to generate the pulses which are sent to the driver, and to count them
in order to know the displacement at any time. One solution is to use a microprocessor or a DSP, and two timers. One of them is working as a pulse generator and the other one as a counter. (See Figure 18). 

Practical realization

Figure 18: Practical realisation

The table calculated previously has to be converted into the number of periods of the external clock. Firstly, the microprocessor resets both timers. Once a motion is required, a pulse is sent to the driver. The timer (pulse
generator) is loaded with the frequency required next. The microprocessor checks the number of steps already made and compares it to the displacement profile in order to know the next frequency to be put into the timer once the
preceding pulse is sent.  The next frequency to load will be :

  • the following period in the acceleration table

  • when accelerating

  • the previous period in the deceleration table

  • when braking

  • the same period when running at constant speed

Precautions to be taken in microstep mode

The microstep mode allows to increase the motor resolution and to have a smoother motion. Nevertheless, if the number of microsteps/step and the peak speed are high, the electronics designer has to make sure the external clock
frequency of the timer is high enough to avoid excessive jumps in the frequency between microsteps, which at high speed could not be compatible with the dynamic torque of the motor. 

Example :

A motor with 200 steps/rev. has to rotate at 10'000 steps/s. The external clock frequency is 1 MHz. If the motor is working in half step mode, the value 50 has to be loaded into the timer to generate a frequency of 20 khz. The closest smaller frequency we can generate is obtained by loading the value of 51. This speed is 19607 Hz. The jump between the two frequencies corresponds to a speed jump of 196 steps/s. If the motor makes 10 microsteps/step, the speed of 10000 steps/s is generated by loading the value 10 into the timer. The closest smaller frequency we can generate by loading 11 is 90909 Hz. The jump between these two frequencies equals 909 full steps/s, which is much higher than when working in half step mode. 


Today, stepper motor technologies like the Disc Magnet motor of Portescap allow to use stepper motors not only as a positioner but also for fast incremental motion. Such motors can really compete against traditional Brushless DC motors without the need of an expensive drive electronics for closing the loop. To fully take advantage of such a motor, it is important to know with reasonable accuracy the dynamic torque of the motor associated to its driver.

This paper describes an easy way to introduce iron losses into the model for determining the dynamic torque. With a very simple algorithm, a speed profile close to the optimum can be calculated. It is clear that with such a method we always need a safety factor of roughly 70% meaning that we are not using 100% of the motor performance.  Other methods exist, like the phase plane, which consists of calculating the motor position and speed step by step.
Unfortunately, such a process requires to know perfectly well all the kinematics of the entire system which is difficult in an industrial environment. 

The paper allows to take full advantage of the Disc Magnet Motor. The calculation of the dynamic torque as well as the optimum velocity profile have been implemented in a software called "SOAP", developed by Portescap for use
by its application engineers in order to help customers to optimise their incremental motion applications.



Torque Speed Curve
Figure 1
Modelisation of iron losses
Figure 2: Modelisation of iron losses
Measurements without a rotor
Figure 3: Measurements without a rotor
Figure 4
Phasor Diagram
Figure 5: Phasor diagram
Measurements with the rotor
Figure 6: Measurements with the rotor
Figure 7
Magnetic flux
Figure 8: Magnetic flux due to the magnet
Figure 9
Measure of the real part of the impedance
Figure 10: Measure of the real part of the impedance
Measure of the imaginary part of the impedance
Figure 11: Measure of the imaginary part of the impedance
From the measure of Re(Z) and Jm(Z) we can calculate R'
Figure 12: From the measure of Re(Z) and Jm(Z) we can calculate R'
Coefficients for each Portescap motor
Figure 13: Coefficients a, b, λ for each Portescap motor
Calculate the dynamic torque
Figure 14
dynamic torque
Figure 15: Shape of the back-EMF (E(t)), the current reference Ιc(t) and the actual current i(t) for a phase advance of tox360/T electrical degrees
dynamic torque