Stepper Motor Emf Position Detector

This project,a stepper motor emf position detector from 1992, 

It works by detecting the emf generated by the coils as they go past each magnet when the coils are powered down (as they will be during each part of the stepper motor driving cycle).

Executive Summary of the Stepper Motor Emf Position Detector

A method for measuring the position of a stepping motor by generating a signal representative of the back electromotive force induced by the rotor in the coils of the motor, and estimating the actual position of the rotor from the signal representative of the back electromotive force induced by the rotor.

Background of the Stepper Motor Emf Position Detector

The present designs relates generally to the determination of the angular position of a rotating apparatus, and more specifically to the accurate determination of the position of a D.C. stepping motor.


In the measurement of position or velocity of rotating elements, such as drivers for a xerographic photoreceptor belt, it is common practice to utilize encoders to monitor the position of the rotating element. In general, however, the accuracy of the positional information is limited to the resolution of the encoder used.

It is also generally known that in order to increase the accuracy of the positional information, more expensive, high resolution encoders must be employed.

It is known that closed loop control of a motor requires that information regarding the shaft position, that is, velocity or position, be available to the controller. For many motors, this information is provided by an external sensor, such as a tachometer or incremental position encoder. This external sensor represents a substantial additional cost to the motion control system.

In the field of motion control, it is common practice to use stepping motors, operating in open-loop fashion, i.e., without the use of position and/or velocity feedback devices, as a cost effective alternative to closed loop operation of DC motors with their attendant and necessary feedback elements, such as tachometers and/or incremental position encoders.

While widely practiced, it is just as widely known that there are two undesirable characteristics of open-loop stepping motor operation that must be considered and/or overcome in the design of a successful motion control application: (1) stalling of the stepping motor during load torque or speed changes; (2) the highly underdamped, resonant response commonly referred to as "ringing".

As seen by a review of the prior art, great progress has been made in preventing the occurrence of stalling during open-loop stepper operation by properly timing the occurrence of step commands with knowledge of motor position gleaned from examination of the back EMF of the stepping motor coils, a process commonly called self-synchronization.

In the present design, methods are developed to yield position estimates of sufficient resolution and accuracy throughout the entire electrical cycle to enable true closed loop control of stepper motor operation. In this way the second major defect of open loop stepper operation, i.e., "ringing" can be controlled.

As is well know by those skillful in the art, closed loop feedback control allows the designer of a dynamic system the opportunity to change the closed loop system's poles or eigenvalues and thus to shape the closed loop response of the system. Specifically with respect to stepping motors, true closed loop feedback control means the opportunity to eliminate "ringing" by shaping the closed loop system's dominant pair of oscillatory eigenvalues to be well damped.

A major difference between the prior art and the present design is that in the prior art electrical cycle position estimates are generated only at a few selected points in the electrical cycle, e.g., 0, 90, 180,270 degrees, for the purpose of self-synchronizing full stepping open loop stepper operation.

The present design has the capability of making positional measurements throughout the electrical cycle at any time without using op-amp coil simulation, or specialized sensing coils. In the prior art, the measurement of the back EMF is often done by either adding voltage sensing coils to the stepper motor and/or simulating the coil via analog op-amp circuitry.

The need for sensing coils limits closed loop control of stepping motors to specially constructed motors which are more expensive than the common stepper motor used ill many motion control applications and thus excludes the vast majority of motors commonly available. The op-amp approach, as seen, for example, in U.S. Pat.

No. 4,658,194 to Richter et al., has other disadvantages that are impractical. In particular, it uses the simulation of a differentiator to estimate the voltage drop across the inductor of the motor coil. As well know to anyone skillful in the art, differentiation is an inherently noisy process and thus a serious signal to noise problem is introduced in the back EMF measurement which in turn limits the positional accuracy of the estimate.

Also, the op-amp approach adds additional circuitry to the system, and thus, additional cost.

It would be desirable, therefore, to provide true closed loop control of the motor itself rather than merely self synchronization. It would also be desirable to provide closed loop control of a hybrid stepper motor allowing the stepper to be used in critical constant velocity systems, such as those in a xerographic reproduction machine.

It is an object, therefore, of the present design, to provide a method to determine the position of a hybrid stepping motor throughout the entire electrical cycle, allowing accurate position measurement of the stepper motor without an external sensor. It is another object of the present design to provide a self encoding technique incurring virtually no additional cost over an open loop stepper motor system while reaping the benefits of closed loop control.

It is still another object of the present design to provide a self encoding technique that uses the fact that a relationship exists between the back EMF of the motor coils and the electrical position and virtually no additional hardware is needed for sensing the coil back EMF.

Summary of the Stepper Motor Emf Position Detector

A method for measuring the position of a stepping motor having a rotor and a plurality of coils including generating a signal representative of the back electromotive force induced by the rotor in the coils, and estimating the actual position of the rotor from the signal representative of the back electromotive force induced by the rotor.

Figure 1 : Is a schematic elevational view depicting various operating components and subsystems of a xerographic reproduction machine incorporating the present invention
for the stepper motor emf position detector

View larger image here.

Description of the Stepper Motor Emf Position Detector

For a general understanding of the features of the present design, reference is made to the drawings. Referring to FIG. 1, there is shown a typical xerographic reproduction machine 5 composed of a plurality of programmable components and subsystems which cooperate to carry out a copying or printing job.

The machine employs a photo-conductive belt 10, which is entrained about stripper roller 14, tensioning roller 16, idler rollers 18, and drive roller 20. Drive roller 20 is rotated by a conventional motor (not shown) coupled thereto by suitable means such as a belt drive. Drive roller 20 is also operatively connected to a shaft encoder having a resolution of 100 lines/revolution, whereby the belt position and velocity are tracked via signals from the encoder As roller 20 rotates it advances belt 10 in the direction of arrow 12 through the various processing stations disposed about the path of movement thereof.

Initially, the photoconductive surface of belt 10 passes through charging station A where corona generating devices, indicated generally by the reference numerals 22 and 24, charge photoconductive belt 10 to a relatively high, substantially uniform potential. Next, the charged photoconductive belt is advanced through imaging station B.

At imaging station B, a document handling unit 26 sequentially feeds documents from a stack of documents in document tray 27 into registered position on platen 28. Xenon flash lamps 30 mounted in optics cavity 31 illuminate the document on platen 28, the light rays reflected from the document being focussed by lens 32 onto belt 10 to expose an electrostatic latent image on photoconductive belt 10 which corresponds to the informational areas contained within the document currently registered on platen 28.

After imaging, the document is returned to document tray 27 via a simplex copy path or if the first pass of a duplex copy is being made via a duplex path.

The electrostatic latent image recorded on photoconductive belt 10 is developed at development station C by a magnetic brush developer unit 34 having developer roll assemblies 36, 38 and 40. A paddle wheel 42 picks up developer material and delivers it to the developer roll assemblies 36, 38. Developer roll assembly 40 is a cleanup roll while magnetic roll 44 is provided to remove any carrier granules adhering to belt 10.

Following development, the developed image is transferred at transfer station D to a copy sheet provided via de-skew rollers 71 and paper feed roller 72. Tile re, the photoconductive belt 10 is exposed to a pre-transfer light from a lamp (not shown) to reduce the attraction between photoconductive belt 10 and the toner powder image.

Next, a corona generating device 46 charges the copy sheet to the proper magnitude and polarity so that the copy sheet is tacked to photoconductive belt 10 and the toner powder image attracted from the photoconductive belt to the copy sheet. After transfer, corona generator 48 charges the copy sheet to the opposite polarity to detack the copy sheet from belt 10.

Following transfer, a conveyor 50 advances the copy sheet bearing the transferred image to fusing station E where a fuser assembly, indicated generally by the reference numeral 52 permanently affixes the toner powder image to the copy sheet. Preferably, fuser assembly 52 includes a heated fuser roller 54 and a pressure roller 56 with the powder image on the copy sheet contacting fuser roller 54.

After fusing, the copy sheets are fed through a decurler 58 to remove any curl. Forwarding rollers 60 then advance the sheet via duplex turn roll 62 to gate 64 which guides the sheet to either finishing station F or to duplex tray 66, the latter providing an intermediate or buffer storage for those sheets that have been printed on one side and on which an image will be subsequently printed on the second, opposed side thereof. The sheets are stacked in duplex tray 66 face down on top of one another in the order in which they are copied.

To complete duplex copying, the simplex sheets in tray 66 are fed, in seriatim, by bottom feeder 68 back to transfer station D via conveyor 70, de-skew rollers 71 and paper feed rollers 72 for transfer of the second toner powder image to the opposed sides of the copy sheets. The duplex sheet is then fed through the same path as the simplex sheet to be advanced to finishing station F.

Copy sheets are supplied from a secondary tray 74 by sheet feeder 76 or from auxiliary tray 78 by sheet feeder 80. Sheet feeders 76, 80 are friction retard feeders utilizing a feed belt and take-away rolls to advance successive copy sheets to transport 70 which advances the sheets to rolls 72 and then to transfer station D.

A high capacity feeder 82 is the primary source of copy sheets. Tray 84 of feeder 82, which is supported on an elevator 86 for up and down movement, has a vacuum feed belt 88 to feed successive uppermost sheets from the stack of sheets in tray 84 to a take away drive roll 90 and idler rolls 92.

Rolls 90, 92 guide the sheet onto transport 93 which in cooperation with idler roll 95, de-skew rollers 71 and paper feed rollers 72 move the sheet to transfer station D.

After transfer station D, photoconductive belt 10 passes beneath a corona generating device 94 which charges any residual toner particles remaining on belt 10 to a polarity conducive to their removal from photoconductive belt 10. Thereafter, a pre charge erase lamp (not shown), located inside photoconductive belt 10, discharges the photoconductive belt in preparation for the next charging cycle. Residual particles are removed from belt 10 at cleaning station G by an electrically biased cleaner brush 96 and two de-toning rolls 98 and 100.

It can be observed from the above description that the use of motors is extensive throughout the xerographic process. Suitable motors or drive elements are necessary for such operations as photoconductor belt movement, document to platen movement and the general movement of copy sheets throughout the process e.g., to the registration, transfer, fusing, and finisher stations.

Thus, there are ample opportunities for the use of improved motor techniques to contribute to the efficiency, reliability, timing and synchronization of the xerographic process, including distributed drive systems and the use of stepper motors.

The self encoding technique described herein utilizes the fact that a relationship exists between the back EMF of the motor coils and the shaft position. The technique requires virtually no additional hardware for the sensing of the coil back EMF. The back EMF is estimated by using the voltages and currents of the two motor coils.

Note that the discussion that follows refers to a 2-phase, 200 step/rev, bipolar hybrid stepping motor but that the same technique would be valid for 5-phase hybrid motors, or unipolar hybrid motors or 400 step/rev motors, etc.

First, it will be shown how to analytically derive the shaft position of the motor from the coil voltages and currents. The following are model equations, in the Laplace domain, of the two motor coils:


VCOIL1 voltage in coil 1 [volts]

VCOIL2 voltage in coil 2 [volts]

ICOIL1 current in coil 1 [amps]

ICOIL2 current in coil 2 [amps]

emf1 back emf of coil 1 [volts] which is equal to -Kt ωsinθ

emf2 back emf of coil 2 [volts] which is equal to -Kt ωcosθ

ω velocity of the motor shaft [shaft rad/sec]

θ position in the electrical cycle [electrical rad] (Note that for a 200 step/rev hybrid motor there are 50 electrical cycles per motor shaft cycle, i.e., a full electrical cycle constitutes 4 full steps)

R coil resistance [amps]

coil inductance respectively [henries]

Kt motor back EMF constant (Volt-sec/rad)

Note: all variables are implicitly functions of time unless otherwise noted. Specifically, a variable in the Laplace domain is denoted in standard form as a function of s, the Laplace operator. It is assumed that intra-motor variations in coil properties are minimal and therefore: R=R1 =R2 and L=L1 =L2. With this assumption equation (1') is rewritten as


The two back-emf terms in equation (1), emf1 and emf2, are equal to Kt ωsinθ, Kt ωcosθ respectively in the time domain. If it was possible to directly measure these voltages, the electrical position, θ, could be found by the following:


Unfortunately, the back EMF cannot be directly measured without the use of sensing coils. Additionally, as mentioned above, an op amp simulation of the coil would require a differential component to simulate the voltage drop across the inductor. A different approach must be taken to use the relationship defined in equation (1).

After multiplying both sides of equation (1) by the quantity, 1/(sL/R +1) we have:


In equation (3), the left hand side can be viewed as the two back EMF voltages after being low passed filtered. Knowledge of ICOIL1, ICOIL2 and measurement of VCOIL1 (s)/(sL/R+1) and VCOIL2 (s)/(sL/R+1) will make it possible to evaluate the left hand components of equation (3) and use them to determine the electrical position, θ, using a scheme like that shown in equation (2).

Many stepper motors used in industry have windings that are driven by current chopping loops. The current chopper is a closed loop on current that controls a switching amplifier (usually an H-bridge). The closed loop current control regulates the coil current to some desired value by constantly switching the coil voltage between +VS and -VS (where VS is the supply voltage).

The value of the: desired coil current is an input to the current chopper that is commanded by the user, i.e., ICOIL is explicitly known because the user generates the current command and therefore knows the current in each of the motor windings.

The voltage in the motor coil is controlled by the current loop and not known by the user, A measurement scheme must be employed to measure the coil voltage. Direct measurement of the coil voltage is one alternative. Unfortunately, direct measurement requires the use of a differential amplifier, since neither side of the coil is referenced to a fixed voltage. The implementation of a differential amplifier with switching inputs is cumbersome and, as will now be shown, unnecessary.

Figure 2 : Is a full bridge amplifier functional diagram
for the stepper motor emf position detector

View larger image here.

There are some properties of the full bridge amplifier, e.g., the SGS-Thomsen L6203, as shown in FIG. 2, that allow clever indirect measurement of the coil voltage. For simplification, it is assumed that the amplifier is ideal, i.e., there are no voltage drops across the transistors. At a later time, this simplification will be removed but to ease the understanding of the development that follows, an ideal amplifier is assumed.

Note than when the input voltage at the node IN1 (pin 5 in FIG. 2), hereafter referred to VIN1, is high (+5 V), the voltage to the motor coil is +Vs. Similarly, when the input VIN1 is low (0 V), -Vs is the voltage to the motor coil. Use these points to describe a straight line that estimates VCOIL, given VIN1. as:

or similarly


As stated, equation (4) is only valid when VIN1 is either zero (0) or five (5) volts, since IN1 is a digital input. Is it important to realize, however, that VIN1 is part of a closed loop design and has it's value updated every 10 usec. Therefore, VIN1 contains frequencies (up to 50 Khz) that are much faster than the electrical and mechanical time constants of the motor and therefore do not affect the overall performance of the system.

Additionally, the H bridge amplifier simply converts an input voltage level to a corresponding output voltage level with no dynamics. This allows equation (4) to be extended to estimate the mean or filtered value of VCOIL given VIN1. For example, if the mean of VIN1 is 3.0 volts, i.e. assuming a 60% duty cycle, then the mean of VCOIL would be VS /5.

The use and analysis of PWM H bridge amplifiers in lieu of an analog amplifier are common to those skilled in the art; their use is ubiquitous in cases such as this where the effects of the higher frequency components of VIN1 and hence VCOIL on the motor current are negligible due to the low pass filter characteristics of the motor coil.

Extending (4), we have

or similarly


where VCOIL and VIN1 are the filtered or mean values of VCOIL and CIN1 respectively. Hereafter, terms with a double underbar, e.g. VCOIL, represent low pass filtered or mean values of the non-underlined variable.

Equations (4) and (4a) allow the determination of the coil voltage by observing the logical input to the amplifier. In addition, if VIN1 is sent through the RC filter shown in FIG. 2, we can use equation 4, and the Laplace transform to define VF (see FIG. 2) as follows:


After several time constants of Rf Cf have passed (steady state), equation (5) can be approximated by:


or, alternately,


Recall now the form of the first term on the right hand side of equation (3), i.e., VCOIL1 (s)/(sL/R+1). If the Rf Cf time constant in equation (7) is chosen to be equal to the L/R time constant seen in equation (3), the two expressions will be equivalent. Thus, after choosing Rf Cf =L/R, the right hand side of equation (7) can be substituted into equation (3) to yield:


The time domain equivalents of emf1 (s)/(sL/R +1) and emf2 (s)/(sL/R+1), called lemf1 and lemf2 respectively, can be calculated by transforming equation (8) back into the time domain as:


Figure 3a : Shows a hardware a-block diagram for indirect back emf sensing in accordance with the present invention for the stepper motor emf position detector

View larger image here.

Figure 3b : Shows a hardware a-block diagram for indirect back emf sensing in accordance with the present invention for the stepper motor emf position detector

View larger image here.

Figure 3c : Shows a hardware a-block diagram for indirect back emf sensing in accordance with the present invention for the stepper motor emf position detector

Equation (8a) represents an algorithm for determining the back EMF voltages that can readily be performed in real time by an Intel 8096 microcontroller. The 8096 has an internal A/D converter that can accept up to 8 analog inputs from the outside world. The analog input pins of the 8096 allow the voltages VF of both coils (VF1 and VF2) as seen in FIG. 3A, FIG. 3B and FIG. 3C to be sent directly to the microcontroller.

Figure 4 : Is a software flow diagram for the calculation of electrical position
for the stepper motor emf position detector

In our implementation, the 8096 samples VF1 and VF2 and internally calculates the discrete time values of low passed back EMF of the coils. Using equation (2), the 8096 calculates the electrical position, θf, using an algorithm as illustrated in FIG. 4 .

The calculation based upon observation of VF1 and VF2 from the current chopping hardware is:


Thus, it is not necessary to reconstruct the back EMF signals from the low pass estimates of equation (8a). We can indirectly utilize these low pass filtered values to estimate the electrical position. The use of filtered values, however, will induce a measurement error in our estimate of the electrical position.

Consider the case of velocity regulation, i.e., a motor running at constant speed: the electrical frequency, ωelec, for 200 step/rev motor is 50 times the desired shaft frequency, ωDC. A DC measurement error, θshift, can be attributed to the DC phase shift introduced by the back EMF filter.

The amount of phase lag the filtering introduces is equal to the phase lag caused by the Rf Cf filter at a frequency of ωelec. Numerically,:


The nominal value of ωelec, called ωnom, is known and is the frequency of the microstepping current commands generated by the 8096. Using ωnom the estimate of the electrical position becomes:


where θf is given by equation (9).

The estimation of the back EMF voltage can be improved by including the non-ideal properties of the H-bridge driver, e.g., the SGS-Thomsen L6203 as seen in FIG. 2, that have been neglected previously. The transistors and diodes, previously assumed to have no voltage drop or resistance, do have a nominal voltage drop and small signal equivalent resistance that are both a function of the motor current.

In addition, the circuit parameters, i.e. the voltage losses and resistance, are different in the "charge" state than in the recirculation state. These characteristics, along with other non-ideal phenomenon, i.e., DC error in the commanded current, can be partially corrected for by performing an initialization measurement on the hardware similar to a calibration setup/procedure.

Figure 5 : Is a lumped parameter model of driver/winding
for the stepper motor emf position detector

A simple lumped parameter circuit, FIG. 5 will be used to model the driver/motor circuit combination. The calibration test will be used to determine the equivalent DC offset voltage, VOFF, and AC resistance, RAC, of the model. The test will utilize the aforementioned assumption that the two motor coils are well matched. This property allows one set of current reference commands to determine both parameters.

The microcontroller initiates the test by commanding zero amps to one coil, and one amp to the other coil, i.e., ICOI1 =)and ICOIL2 =1. The microcontroller then waits one second for both the shaft position and coil current to reach their steady state values. When the current is at steady state (i.e. di/dt=0), the inductance has no effect and can be ignored.

Figure 6 : Is a reduced model of test/calibration mode
for the stepper motor emf position detector

Similarly, when the motor shaft has come to rest, the back EMF voltage is zero (recall that the back EMF voltage amplitude is proportional to ω), and the model at steady state can be reduced to the lumped parameter circuit shown in FIG. 6. The two coils then satisfy the following set of equations:

The above set of equations can be used to determine the model parameters:



For purposes of modeling and analysis, the value of RAC should be used as a replacement for R, the motor resistance, since the overall resistance of the driver/winding combination is what determines the circuits time constant. In particular, Rf and Cf must be chosen such that Rf *Cf =L/RAC. Finally, VOFF and RAC must be used in the main estimation algorithm, equation (8), to fully include the non-ideal characteristics of the amplifier:


There has been shown a method for determining stepper motor shaft position that requires virtually no additional hardware from that used to microstep the motor. In addition, the algorithm software processing required is simple, allowing it to be easily implemented and quickly executed in any of the microcontrollers commercially available, e.g., the Intel 8096.

New! Comments

Have your say about what you just read! Leave me a comment in the box below.

Click here for more project ideas.

Privacy Policy | Contact | About Me

Site Map | Terms of Use

Subscribe to the MicroZine Newsletter and collect your free microcontroller Ebooks, download project code and more...

Visit our Facebook Page:

   Click Here

Recent Articles

  1. All about the MC78M05BDTRKG Linear Voltage Regulator

    How to use MC78M05BDTRKG for maximum current without using too large a heatsink pad and how to select the optimum input voltage.

    Read more

  2. Fixed point: A fast and easy way to save tons of microcntroller flash memory

    How to use fixed point maths to save microcontroller memory by avoiding use of the floating point library.

    Read more

  3. How to use the DHT22 (or DHT11) with an Arduino; Full code, description and device differences.

    Essential Guide to the DHT22/11 humidity sensor with library code guide and Full Arduino Tutorial. Learn how to Easily determine Humidity, Dew point and Heat Index.

    Read more

  4. The Essential I2C Tutorial: All you need to know about I2C...

    I2C tutorial: Learn all about the 2 wire I2C serial protocol. Learn how easy it is to use, how it works and when to use it...

    Read more

  5. [Arduino] : Using the 74HC595 shift register with shiftOut().

    The Essential Guide to the 74HC595; What it is and how you can easily use one in any of your projects.

    Read more

  6. How to use a DS18B20 on the Arduino for easy temperature measurement

    How to Easily Use the DS18B20 Maxim One-Wire thermometer with Arduino example code showing external or parasitic power modes.

    Read more

Readers Comments

"I wanted to thank
you so so so much
for all the information
you have provided in
your site it's


- Ranish Pottath

"This site really is
the best and my favorite.
I find here many useful
projects and tips."

- Milan


"Awesome site,
very, very easy and nice
to navigate!"

- Matt

Learn Microcontrollers

"Interested in

Sign up for The
Free 7 day guide:


"I am a newbie to PIC
and I wanted to say
 how great your
site has been for me."

- Dave


"Your site is a great
and perfect work.

- Suresh


"I couldn't find the correct
words to define
yourweb site.

Very useful, uncovered,
honest and clear.

Thanks so much for
your time and works.

- Anon

Back to Top