U.S. patent application number 12/627790 was filed with the patent office on 2010-03-25 for encoder eccentricity correction for motion control systems.
This patent application is currently assigned to LEXMARK INTERNATIONAL, INC.. Invention is credited to Danny Keith Chapman, Thomas Austin Fields, Brian Anthony Reichert, Steven Michael Turney.
Application Number | 20100072938 12/627790 |
Document ID | / |
Family ID | 37393464 |
Filed Date | 2010-03-25 |
United States Patent
Application |
20100072938 |
Kind Code |
A1 |
Reichert; Brian Anthony ; et
al. |
March 25, 2010 |
Encoder Eccentricity Correction for Motion Control Systems
Abstract
Correction of rotary encoder eccentricity in an image forming
device having a motor controller using period and position pulse
train feedback signals. A motor includes an encoder disc rotating
with the motor and at least two encoder sensors disposed at
different circumferential positions about the encoder disc. A
controller may use a high speed clock to calculate a corrected
speed count based on speed counts determined from the number of
clock cycles that elapse per cycle of pulse trains from the
encoders. The controller may also calculate a corrected position
count based at least partly on one or more position counts
determined from the number of clock cycles that elapse between
periodic sampling points and transitions of encoder pulse trains.
The corrected position count may also be calculated based on a
position count and one or more speed counts.
Inventors: |
Reichert; Brian Anthony;
(Lexington, KY) ; Turney; Steven Michael;
(Lexington, KY) ; Chapman; Danny Keith;
(Sadieville, KY) ; Fields; Thomas Austin;
(Winchester, KY) |
Correspondence
Address: |
LEXMARK INTERNATIONAL, INC.;INTELLECTUAL PROPERTY LAW DEPARTMENT
740 WEST NEW CIRCLE ROAD, BLDG. 082-1
LEXINGTON
KY
40550-0999
US
|
Assignee: |
LEXMARK INTERNATIONAL, INC.
Lexington
KY
|
Family ID: |
37393464 |
Appl. No.: |
12/627790 |
Filed: |
November 30, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11121576 |
May 4, 2005 |
7633256 |
|
|
12627790 |
|
|
|
|
Current U.S.
Class: |
318/640 ;
250/231.13 |
Current CPC
Class: |
G02B 26/122 20130101;
G05B 2219/37515 20130101; G05B 2219/37151 20130101; G05B 19/404
20130101 |
Class at
Publication: |
318/640 ;
250/231.13 |
International
Class: |
G05B 1/06 20060101
G05B001/06; G01D 5/30 20060101 G01D005/30 |
Claims
1-21. (canceled)
22. An apparatus comprising: a motor having an encoder disc
operatively coupled thereto, the encoder disc rotating in
conjunction with the motor; a first encoder sensor disposed at a
first circumferential position about the encoder disc, the first
encoder sensor generating a first pulse train indicative of the
speed of the encoder disc; a second encoder sensor disposed at a
second circumferential position about the encoder disc, the second
circumferential position being different than the first
circumferential position, the second encoder sensor generating a
second pulse train indicative of the speed of the encoder disc; a
clock generator operative to generate a periodic clock signal
having a frequency greater than the first and second pulse trains;
and a controller operative to generate a plurality of sampling
points, the controller further operative to calculate a corrected
position count based upon a number of cycles of the periodic clock
signal that elapse between one of the plurality of sampling points
and a transition of the first pulse train.
23. The apparatus of claim 22 wherein the controller is further
operative to calculate a corrected speed count based at least
partly upon an average of a number of cycles of the periodic clock
signal that elapse per cycle of the first and the second pulse
trains.
24. The apparatus of claim 23 wherein the first encoder sensor and
the second encoder sensor are disposed substantially 180 encoder
disc degrees apart from one another.
25. The apparatus of claim 22 wherein the controller is further
operative to generate a plurality of second sampling points, the
controller further operative to calculate the corrected position
count based at least partly on an average of: the number of cycles
of the periodic clock signal that elapse between one of the
plurality of sampling points and the transition of the first pulse
train, and a number of cycles of the periodic clock signal that
elapse between one of the plurality of second sampling points and a
transition of the second pulse train.
26. The apparatus of claim 25 wherein the first encoder sensor and
the second encoder sensor are disposed substantially 180 encoder
disc degrees apart from one another.
27. The apparatus of claim 22 further comprising a third encoder
sensor disposed at a third circumferential position about the
encoder disc, the third encoder generating a third pulse train
indicative of the speed of the motor.
28. The apparatus of claim 27 wherein the controller is further
operative to calculate the corrected position count based at least
partly on a number of cycles of the periodic clock signal that
elapse per cycle of the first, second, and third pulse trains.
29. The apparatus of claim 28 wherein the first encoder sensor and
the second encoder sensor disposed substantially 180 encoder disc
degrees apart from one another and the third encoder sensor is
disposed to lag the first encoder sensor and lead the second
encoder sensor by substantially 90 encoder disc degrees.
30. The apparatus of claim 22 wherein the encoder disc is
operatively coupled to a photosensitive unit.
31. An apparatus, comprising: a motor; an encoder operatively
coupled to the motor; a first encoder sensor associated with the
encoder, the first encoder sensor generating a first pulse train
indicative of the speed of the encoder disc; a clock generator
operative to generate a periodic clock signal having a frequency
greater than a frequency of the first pulse train; and a controller
operative to generate a plurality of sampling points, the
controller further operative to calculate a corrected position
count based upon a number of cycles of the periodic clock signal
that elapse between one of the plurality of sampling points and a
transition of the first pulse train, and adjusting a speed of the
motor based upon the corrected position count.
32. The apparatus of claim 31, further comprising: a second encoder
sensor associated with the encoder and positioned relative to the
first encoder sensor, the second encoder sensor generating a second
pulse train indicative of the speed of the encoder disc; wherein
the controller calculates a corrected speed count by averaging a
first speed count and a second speed count, the first speed count
and the second speed count determined by counting a number of
cycles of the clock signal that elapse per cycle of pulse trains
received from first and second encoder sensors, respectively,
adjusts the speed of the encoder and maintains a substantially
constant value for the corrected speed count to effect speed
control.
33. The apparatus of claim 32, wherein the corrected position count
is calculated based at least partly upon a ratio of a position
count error and speed count error, the position count error being
relative to the number of cycles of the periodic clock signal that
elapse between the one of the sampling points and the transition of
the first pulse train and the speed count error being relative to
the corrected speed count.
34. The apparatus of claim 31, further comprising a second encoder
sensor disposed at a circumferential position about the encoder
that is different from a circumferential position of the first
encoder sensor, the second encoder sensor generating a second pulse
train indicative of the speed of the encoder disc, wherein the
controller is operative to generate a plurality of second sampling
points and calculate the corrected position count based upon a
number of cycles of the clock signal that elapse between a second
sampling point and a transition of the second pulse train.
35. The apparatus of claim 34, wherein the first and second encoder
sensors are disposed on the encoder substantially 180 rotary
degrees apart from one another.
36. The apparatus of claim 34, further comprising a third encoder
sensor associated with the encoder and disposed relative to the
first and second encoder sensors, the third encoder sensor
generating a third pulse train indicative of the speed of the
encoder disc, wherein the controller calculates the corrected
position count based on number of cycles of the clock signal that
elapse per cycle of the first, second and third pulse trains.
37. An apparatus, comprising: a motor; an encoder operatively
coupled to the motor; a first encoder sensor associated with the
encoder, the first encoder sensor generating a first pulse train
indicative of the speed of the encoder disc; a second encoder
sensor associated with the encoder and positioned relative to the
first encoder sensor, the second encoder sensor generating a second
pulse train indicative of the speed of the encoder disc; a clock
generator operative to generate a periodic clock signal having a
frequency greater than a frequency of the first and second pulse
trains; and a controller operative to determine a first speed count
and a second speed count by counting a number of clock cycles that
elapse per cycle of the first and second pulse trains,
respectively, to determine a first position count by counting a
number of clock cycles that elapse between a periodic command pulse
and a transition of the first pulse train, to calculate a corrected
speed count based upon the fist and second speed counts, to
calculate a corrected position count based on the first position
count, and to adjust a speed of the motor based upon the corrected
speed count and the corrected position count.
38. The apparatus of claim 37, wherein the controller further
calculates a second position count by counting a number of clock
cycles that elapse between a second periodic command pulse and a
transition of the second pulse train, wherein the corrected
position count is calculated based upon the second position count.
Description
BACKGROUND
[0001] The present invention relates generally to the field of
motor control and specifically to improvement of speed and position
or phase control. More specifically, the present invention relates
to the correction of encoder eccentricities in motion control
systems using encoder feedback to control motor speed and
position.
[0002] Precise motor speed control is a requirement of a broad
array of motor-driven applications. Mirror motors in laser print
heads, disk drives, and CD-ROM drives are examples of devices
requiring precise motor speed control. Another example where speed
control is critical is a motor driving print media through an
electrophotographic (EP) printer--in particular, a color EP
printer--and/or driving the PC drum(s) of such a printer. Feature
placement on the PC drum(s), and on the print media as it is
transported past the drum(s), is directly influenced by the speed
of the driving motor. Any perturbations in the speed of the drive
motor may be manifested as image errors, such as banding or
misregistration of dots on the print media. These errors are
particularly noticeable in color EP printers, where different
colors of toner are deposited in layers on the print media. To
avoid these errors, dot placement must be tightly controlled. DC
motors, and in particular, brushless DC motors are typically used
in such applications. These motors are well suited to the speed and
position control method of the present invention, although the
invention is not so limited, and is applicable to AC motors as
well.
[0003] Traditional motor speed control is accomplished with a
Phase-Lock Loop (PLL) controller. Application of PLL controllers to
motor control systems typically comprises generating a periodic
signal representative of motor speed--such as from an encoder or
frequency generator--and comparing the signal to a reference signal
of a desired frequency. The PLL controller attempts to match the
phase, and hence frequency, of the two signals. Based on the phase
error signal from the PLL controller, the voltage to the motor is
increased or decreased to increase or retard its speed, so as to
match the reference signal.
[0004] PLL controllers are effective in many applications, but have
some limitations, particularly when motor systems are subjected to
varying loads and varying speeds. Unlike oscillating electrical
signals, motors and the objects they displace are inertial bodies
and do not respond instantaneously to changes in commanded signals.
Because of this, PLL-based motor controllers, while adequate for
the speed control of motor systems that are characterized by a
constant and predictable load, do not compensate well for
fluctuations in mechanical load, such as commonly found in EP
printers. Torque fluctuations in EP printers may arise due to paper
picking, nip shock, toner stirring, and a variety of other
causes.
[0005] Additionally, traditional PLL controllers are constructed
using analog circuits, which include many non-linear components.
Furthermore, most PLL controllers are "tuned" for a specific range
of frequencies, outside of which the control seriously degrades.
Even within the designed frequency range, however, due to the
control of both frequency and phase, with PLL controllers it is
important to know which error--phase or frequency--dominates, as
controlling to the wrong error may cause the motor speed to lock
onto harmonics of a commanded speed rather than the actual
commanded speed.
[0006] Other motor controllers incorporate digital solutions, such
as a digital PID controller, which permits implementation in ASICs
or DSPs, to control the speed and position of a motor shaft
subjected to varying speeds and loads. Some versions of the digital
motor controllers utilize an encoder, tachometer, or other periodic
signal generator from which motion feedback quantities are
generated. Two exemplary motion feedback quantities include a speed
count and a position count, each of which may be generated from the
encoder signal. The speed count is typically determined as the
number of high frequency clock cycles that elapse per encoder
cycle. Thus, the speed count provides an indication of the time
that elapses during one encoder period with larger speed counts
reflecting lower motor speeds and vice-versa. By comparison, the
position count provides an indication of a phase shift in the
encoder signal and may be determined as the number of high
frequency clock cycles that elapse between a periodic command pulse
and a subsequent rising or falling edge of an encoder cycle. Stated
another way, the position count provides an indication of the phase
of the encoder signal relative to a predetermined reference. Motion
feedback quantities such as these two counts are independently
determined and fed back to the digital motor controller, which
adjusts the motor speed, typically by adjusting the duty cycle of a
pulse-width-modulated drive signal, to correct any speed and
position errors indicated by the motion feedback quantities. One
example of a motor controller using this type of speed and position
correction is disclosed in commonly assigned U.S. patent
application Ser. No. 10/378,430, filed Mar. 3, 2003, which is
hereby incorporated by reference herein, in its entirety.
[0007] Incremental optical encoders used to generate these motion
feedback quantities provide a series of periodic signals set off by
mechanical motion. The number of successive periods corresponds to
resolvable mechanical increments of motion. In the case of rotary
encoders, which are typically coupled to a rotating motor or
drivetrain shaft, each cycle of the periodic signal produced by the
encoder corresponds to some angular displacement of an encoder
wheel. The encoder signal provides alternating logic states of "0"
and "1" for each successive cycle of resolution. Rotary optical
encoders achieve angular counting through a light emitter-receiver
pair where light either passes though spaced apart apertures in the
encoder wheel or reflects off spaced apart reflective segments on
the encoder wheel. Where rotating encoders are used to generate
these discrete motion feedback quantities, encoder eccentricity may
result if the optical center of the encoder wheel is not aligned
with the center of rotation of the shaft on which the encoder wheel
is mounted. This eccentricity may produce apparent speed and/or
position errors that are interpreted by the motor controller as
actual errors. Consequently, the motor controller will try to
compensate for these apparent errors by changing the speed of the
motor, even where no changes are actually required.
SUMMARY
[0008] Embodiments of the present invention are related to a method
and apparatus for correcting encoder eccentricity in an image
forming device that uses encoder feedback signals to generate speed
and position counts to control the speed and motor shaft position
of a rotary motor. The motor may be used to drive a document
transport roller or some other imaging unit component such as a
photoconductive drum in the imaging device. The motor may have an
encoder disc coupled thereto (directly or to a gear train shaft) so
that the encoder disc rotates in conjunction with the motor. A
first encoder sensor is positioned at a first circumferential
location about the encoder disc. A second encoder sensor is
positioned at a second, different circumferential location about
the encoder disc. The first encoder sensor and the second encoder
sensor may be located substantially 180 encoder disc degrees apart
from one another. Each encoder sensor generates a pulse train
indicative of the speed of the motor. A controller may use a high
speed clock to calculate a corrected speed count from an average of
a number of clock cycles that elapse per cycle of the pulse trains
from the first and second sensors.
[0009] The controller may also generate periodic sampling points
and calculate a corrected position count from a number of clock
cycles that elapse between a sampling point and a transition of the
pulse train from the first encoder sensor. In one embodiment, the
controller may generate a second set of sampling points and
calculate the corrected position count as an average of position
counts for each encoder sensor determined as the number of clock
cycles that elapse between a sampling point and a transition of the
pulse train for the respective encoder sensors. In one embodiment,
a corrected position count may be determined from one or more speed
counts and/or a corrected speed count. In one embodiment, a third
encoder sensor may be positioned at a third circumferential
location about the encoder disc. The third encoder sensor may be
positioned so that the phase of a speed count determined from this
third encoder sensor is substantially the same as the phase of a
position count determined from one of the other encoder sensors.
The controller may calculate the corrected position count based on
a number of clock cycles that elapse per cycle of the first,
second, and third pulse trains.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a schematic illustration of a motor control
circuit according to one embodiment of the present invention;
[0011] FIG. 2 is a schematic illustration of a rotary encoder with
multiple encoder sensors disposed about the encoder wheel according
to one embodiment of the present invention;
[0012] FIG. 3 is a timing diagram showing multiple encoder pulse
trains and a high speed clock signal according to one embodiment of
the present invention;
[0013] FIG. 4 is a timing diagram showing multiple encoder pulse
trains and a command signal according to one embodiment of the
present invention;
[0014] FIG. 5 is a signal diagram showing speed counts and a
corrected speed count for an eccentric encoder according to one
embodiment of the present invention;
[0015] FIG. 6 is a signal plot diagram showing the phase relation
between multiple speed counts and a position count for an eccentric
encoder according to one embodiment of the present invention;
[0016] FIG. 7 is a signal plot diagram showing a speed count, a
position count, and a corrected position count for an eccentric
encoder according to one embodiment of the present invention;
[0017] FIG. 8 is a timing diagram showing multiple encoder pulse
trains and multiple command signals according to one embodiment of
the present invention;
[0018] FIGS. 9A and 9B are signal plot diagrams respectively
showing uncorrected and corrected position variation for an
eccentric encoder according to one embodiment of the present
invention; and
[0019] FIGS. 10A and 10B are signal plot diagrams respectively
showing uncorrected and corrected position variation for an
eccentric encoder according to one embodiment of the present
invention.
DETAILED DESCRIPTION
[0020] Embodiments of the present invention are directed to the
correction of motor eccentricity in systems using encoder feedback
to control motor speed and motor shaft position. FIG. 1 depicts a
high-level representation of an exemplary motor control system,
designated generally by the number 10, in which embodiments of the
present invention may be implemented. The motor control system 10
includes a motor controller 12 that generates a Pulse Width
Modulated (PWM) motor drive signal 14. A power driver 16 converts
the PWM data to power signals 18 that are applied to the motor 20,
as is well known in the art. Operatively coupled to the motor 20 is
a rotary position encoder 21, which comprises an encoder wheel 22
that rotates in conjunction with the motor 20. In one embodiment,
the encoder wheel 22 is coupled to a rotating shaft of motor 20.
Alternatively, the encoder wheel 22 may be indirectly coupled to
the motor 20, such as on a gear shaft or other drive train shaft
(not shown), so that the encoder wheel 22 rotates in conjunction
with the motor 20. In one embodiment, the encoder wheel 22 may be
mounted to rotate in conjunction with a photoconductive unit in an
image forming device. Thus, since it is not expressly required that
the encoder wheel 22 to be mounted directly to a motor 20, the
motor 20 may be a rotary or linear motor. Other motion inducing
actuators may also be used in lieu of a motor 20.
[0021] The encoder wheel 22 may be an optical encoder having spaced
apart apertures or spaced apart reflective segments 46 that are
detectable by one or more encoder sensors 23 that are disposed
about the circumference of the encoder wheel 22. For example, in
the embodiment shown in FIG. 2, three encoder sensors 23a, 23b, 23c
may be positioned about the circumference of the encoder wheel 22.
More or fewer encoders may be used as appropriate. For example,
embodiments described below use different numbers of encoders 23.
Referring still to FIG. 1, encoder sensors 23 generate an encoder
signal 24 comprising a pulse train that provides alternating logic
states of "0" and "1" for each successive cycle of encoder wheel 22
resolution. That is, each cycle of the periodic signal 24 produced
by the encoder sensor 23 corresponds to some angular displacement
of an encoder wheel 22. In one embodiment, an encoder wheel 22
having 720 encoder lines per revolution may be used.
[0022] Accordingly, the encoder sensor 23 generates a pulse train
24 indicative of the speed and incremental position of the motor
20. The pulse train output 24 is used by the controller 12 to
calculate speed and position errors of the motor 20 shaft as
compared to a desired shaft motion. A high frequency clock 26
generates a high frequency, periodic clock signal 28 that is
supplied to the motor controller 12. The speed and position of the
motor 20 are determined from the pulse train 24 by use of the clock
signal 28. As a functional lower limit on the frequency of the
clock signal 28, it must satisfy the Nyquist criteria, i.e., that
it is at least twice the frequency of the highest frequency
component of the pulse train 24. The clock signal 28 is preferably
an order of magnitude or more faster than the pulse train 24, and
is most preferably several orders of magnitude faster. For example,
in one embodiment, the clock signal 28 has a frequency of about 16
MHz, and the pulse train 24 has a frequency of about 1 KHz.
However, it should be understood that the frequency of the pulse
train 24 varies according to motor speed.
[0023] The exemplary motor controller 12 comprises a position
counter 30, a speed counter 34, a position controller 38, and a
speed controller 40. While these components are shown as separate
entities, it should be understood that FIG. 1 is a functional
representation; in a given implementation, the motor controller 12,
the high frequency clock 26, the counters 30, 34, the controllers
38, 40, and possibly the power driver 16 may be combined, such as
in an ASIC, FPGA, DSP, or the like, as is well known in the art.
Accordingly, signals 23, 36, and 56 may be more appropriately
represented as discrete quantities that are continually updated.
Those skilled in the art will comprehend the changes that are
warranted for specific hardware or software applications.
[0024] The exemplary motor controller 12 establishes a dominant
control loop (the course control loop) via speed controller 40 to
effect speed control. The purpose of the speed control loop is to
ensure that the speed of the motor 20 is correct. The motor
controller 12 additionally implements a secondary control loop (the
fine control loop) via position controller 38 to effect position
control. The purpose of the position adjustment loop is to remove
position errors, which manifest themselves as misalignments of the
motor 20 shaft. The position adjustment loop removes position
errors by commanding small motor speed adjustments in the speed
control loop. In one embodiment, both the speed control loop and
the position adjustment loop include a Proportional, Integral,
Derivative (PID) controller, which are well known in the control
system arts. The exemplary embodiment of the motor 20 and motor
controller 12 may be used in an image forming device, such as a
color printer, where the motor 20 drives an object, such as print
media or a photoconductive drum, at a constant speed. The motor
controller 12 manages speed and position errors, which, if
uncorrected, may result in erroneous operation, such as, for
example, the misregistration of color pixels on the print media or
banding effects.
[0025] The speed counter 34 determines the speed of the motor 20 by
counting the number of cycles of the clock signal 28 that occur per
cycle of the pulse train 24. For example, the speed counter 34 may
count the number of cycles, or "ticks," of the clock signal 28 that
elapse between transitions of the pulse train 24. FIG. 3
graphically depicts this pulse counting technique for three
separate pulse trains 24a, 24b, 24c, which may be generated by the
encoder sensors 23a, 23b, 23c shown in FIG. 2. Using one cycle of
each pulse train 24a, 24b, 24c, and sampling on the rising edges,
the number of cycles, or ticks, of the clock signal 28 are counted
to produce respective speed counts T1, T2, T3. Considering for the
moment a single encoder system as shown in FIG. 1, a sequence of
speed count values T1 may be transmitted as a speed count signal 36
to speed controller 40, and by comparison to a predetermined
desired number of ticks per cycle, the PWM data 14 output by the
motor controller 12 may be adjusted to advance or retard the speed
of the motor 20, as required to bring the two counts into
agreement.
[0026] In one embodiment, the speed counter 34 may count the number
of clock cycles that elapse between adjacent rising edges of the
pulse train 24. In one embodiment, the speed counter 34 may count
the number of clock cycles that elapse between adjacent falling
edges of the pulse train 24. Other possibilities may be used,
including, for example, counting between multiple cycles or between
rising and falling edges of the pulse train 24.
[0027] The speed count signal 36 provides an indication of the
rotor speed of the motor 20. That is, the more clock signal 28
ticks that are counted during one cycle of the pulse train 24, the
slower the motor is turning. Conversely, the fewer clock signal 28
ticks that are counted per cycle of the pulse train 24, the faster
the motor 20 is turning. By comparing the actual number of clock
signal 28 ticks counted during a cycle of the pulse train 24 to a
predetermined, desired number to be counted, a speed error may be
computed. In other words, the rising edges of the pulse train 24
may be used as a sampling signal, indicating when the speed counter
34 is to sample and count elapsed cycles of the clock signal 28. As
the frequency of the clock signal 28 is known and highly precise,
the speed of the motor 20 may be determined.
[0028] The exemplary motor controller 12 further controls the
position of the motor 20. Speed is controlled by ensuring that the
pulse train 24 cycles at a constant, predetermined rate. Position
is controlled by forcing the pulses to transition at specific,
predetermined points in time. The position counter 30, under the
control of the motor controller 12, generates a command position
signal 31 that comprising a series of precisely, temporally-spaced
impulses, or sampling points 33 as shown in FIG. 4. The command
position signal 31 is shown as a series of pulses 33, but may also
comprise a binary signal or other sampling point signal, with
sample points coinciding with rising, falling or alternating edges.
FIG. 4 graphically depicts this position counting technique for
three separate pulse trains 24a, 24b, 24c, which may be generated
by the encoder sensors 23a, 23b, 23c shown in FIG. 2. Each time the
sampling pulse 33 triggers, the position counter 30 counts the
number of cycles, or ticks, of the clock signal 28 that occur
between the sample point and the next rising edge of the pulse
trains 24a, 24b, 24c. Alternatively, the count may be determined
between the sample point and the next falling edge of the pulse
trains 24a, 24b, 24c. For either case, a position count .PHI.1,
.PHI.2, .PHI.3 may be generated for each pulse train 24a, 24b, 24c.
Considering again the single encoder example shown in FIG. 1, a
position controller 38 compares the position count .PHI.1,
transmitted as a position count signal 32, to a predetermined
value, and directs the speed controller 40 to adjust the speed of
the motor 20 as needed. The speed adjustments attempt to force the
position count .PHI.1 and the predetermined value to coincide from
sample to sample, thus ensuring a constant position. Note that the
speed controller 40 adjusts the speed of motor 20 based on speed
count T1 and position count .PHI.1 information.
[0029] Referring to FIG. 2, the various embodiments disclosed below
use multiple encoder sensors, such as sensors 23a, 23b, 23c,
disposed about an encoder wheel 22 to correct errors induced by
eccentricity. It is usually the case that there is some amount of
eccentricity between the encoder disc 22 and the motor 20. The
sensors 23a, 23b, 23c may be aligned with the motor 20 or encoder
disc 22. In the example shown in FIG. 2, the sensors 23a, 23b, 23c
are aligned with a shaft of motor 20, the axis of which represents
the center of rotation 44. However, the encoder disc 22 and/or the
sensed features 46 on the encoder disc 22 are not perfectly
centered about the center of rotation 44. In FIG. 2, this
eccentricity is shown as dimension e, which represents the offset
between the rotational center 44 of motor 20 (e.g., axis of motor
shaft, motor rotor, or other rotating component) and the optical
center 42 of the encoder disc 22. A result of this eccentricity is
that, even at a constant motor speed, the individual encoder
segments 46 (e.g., reflective lines or apertures) follow different
rotational paths about the center of rotation 44. The encoder disc
22 may also whirl about the center of rotation 44. This effect is
shown by the dashed representation of the encoder disc 22, which
shows the position of the disc 22 when the motor 20 and disc 22
have rotated approximately 180 degrees from the solid
representation. In this dashed representation, the optical center
42 has traveled around the center of rotation 44 to a new position
43. Meanwhile, to the fixed encoder sensors 23a, 23b, 23c, it
appears that the encoder disc 22 and motor 20 are speeding up and
slowing down through each revolution of the encoder disc 22. This
"apparent" change in velocity occurs because the instantaneous
radius from the rotation center 44 to the encoder segments 46
continually changes even though the actual radius r from the
optical center to the encoder lines is constant.
[0030] With an eccentric encoder, the speed counts T1, T2, and T3
(generated as shown in FIG. 3 from pulse trains 24a, 24b, and 24c,
respectively) appear to get shorter and longer through each
revolution of the encoder disc 22. FIG. 5 shows the relationship of
speed counts T1 and T3 over an entire revolution of the encoder
disc 22 rotating at a constant velocity. The speed counts T1, T3
(T2 as well, though not shown in FIG. 5) are sinusoidal, and have
the same DC offset, frequency, and amplitude, but differ in phase
due to the difference in sensor position about the encoder disc 22.
Speed counts T1 and T3 may correspond to encoder sensors 23a and
23c, which are disposed approximately 180 motor shaft degrees apart
from each other. Thus, the speed count signals T1 and T3 shown in
FIG. 5 are 180 degrees out of phase with respect to each other. In
other words, when encoder sensor 23a senses longer periods (higher
T1, slower speed), encoder sensor 23c senses shorter periods (lower
T3, faster speed). Motor controller 12 may compensate for these
differences by averaging the two speed counts T1, T3 to generate a
corrected speed count TC. With regards to FIG. 2, the corrected
speed count TC may be transmitted as a speed count signal 36 to
speed controller 40 to control the speed of motor 20.
[0031] As is the case with speed counts, the position counts
.PHI.1, .PHI.2, .PHI.3 shown in FIG. 4 are also adversely affected
by motor eccentricity. In fact, the position counts .PHI.1, .PHI.2,
.PHI.3 undergo the same cyclical rising and falling that may be
incorrectly interpreted by position controller 38 as apparent
position changes. FIG. 6 shows a curve of position count .PHI.1
overlaid on the same graphical plot as speed counts T1, T2, and T3
over an entire revolution of the encoder disc 22 rotating at a
constant velocity. Position count .PHI.1 and speed count T1 may be
determined from pulse train 24a generated by encoder sensor 23a
(see FIG. 2). Speed counts T2 and T3 may be determined from pulse
trains 24b, 24c generated by encoder sensors 23b, 23c,
respectively.
[0032] The vertical axis on the left side of FIG. 6 represents
speed count values while the vertical axis on the right side of
FIG. 6 represents position count values. The position count .PHI.1
signal has the same frequency as the speed count signals T1, T2,
and T3. This is to be expected since the frequency is a function of
motor speed and each encoder 23a, 23b, and 23c experiences the same
eccentricity effects, albeit at different times. Note that the
amplitude of these signals is a function of the encoder
eccentricity. The position count .PHI.1 has a value (DC offset)
that is smaller than speed count T1. This is because the position
count .PHI.1 represents a timer count taken between a command pulse
33 (that fires somewhere within one pulse train 24a period) and the
next rising edge of the pulse train 24a. At the upper limit, a
command pulse 33 may coincide with a rising edge of the pulse train
24a, at which point the position count .PHI.1 and the speed count
T1 will substantially match. However, the position count .PHI.1
will generally have some value that is less than or equal to the
speed count T1 since some portion of one period of the pulse train
24a is counted. In fact, it is generally desirable for the command
pulse 33 to fire approximately half way through one full pulse
train 24a period so that .PHI.1 is approximately half of T1. This
provides a maximum operating window for the position controller.
The procedure for getting the command pulses 33 to fire at or near
half the pulse train 24a period is described in greater detail
below.
[0033] The corrected speed count TC discussed above was determined
as an instantaneous average of the most recent values for the speed
counts T1 and T3 derived from the two pulse trains 24a, 24c from
encoders 23a, 23c, respectively. The same averaging solution is not
practically feasible to correct eccentricity for position counts
.PHI.1, .PHI.2, .PHI.3, particularly where only one command signal
31 is used. This averaging solution is not ideal because the
command signal 31 is associated with one pulse train, for example
24a, and therefore the position counts .PHI.2, .PHI.3 generated
from the other two pulse trains 24b, 24c are not entirely reliable.
In the embodiment shown in FIG. 4, the timing of the command pulses
33 is established relative to the pulse train 24a. It was mentioned
above that it is desirable for the command pulses 33 to fire
approximately halfway through one period of the pulse train 24a.
This can be established once a motor is rotating at a constant,
steady-state speed. An interrupt is generated within the motor
controller 12 to initialize all system variables and position
counts .PHI.1, .PHI.2, .PHI.3 and load an initialization count
equal to half the desired period (indicated by 1/2TCMD) into the
position counter 30. This initialization count may be based on T1,
TC, or preferably, half the desired period based on a desired motor
speed. Then, at the next rising edge (indicated by start pulse 48
in command signal 31) of pulse train 24a, the position counter 30
counts down from or up to the initialization count. Once half the
desired initialization count 1/2TCMD elapses, the position counter
30 begins generating the periodic pulses 33, each separated in time
by a full command period TCMD, the value of which may be based on a
predetermined value based on desired motor speed. Note that, if the
encoder pulse trains 24a, 24b, 24c have a 50% duty cycle (i.e.,
they are at binary 1 for half a period and binary 0 for half a
period), the command pulses 33 may simply be started, at least for
initialization purposes, on a falling edge of the corresponding
pulse train 24a, 24b, 24c without having to implement the
half-period counting initialization procedure.
[0034] The position counts .PHI.2, .PHI.3 generated from pulse
trains 24b and 24c are not completely reliable for at least two
reasons. First, the circumferential position of the encoders 23b,
23c may induce errors in the position counts .PHI.2, .PHI.3 that
are not wholly attributable to eccentricity or motor shaft position
changes. The mounting position of the encoders 23b, 23c relative to
the encoder segments and relative to encoder 23a affect the phase
of the pulse trains 24b, 24c, respectively. Thus, as shown in FIG.
4, the values for the position counts .PHI.1, .PHI.2, and .PHI.3
may be widely different such that averaging these position counts
.PHI.1, .PHI.2, .PHI.3 will generally not produce a truly corrected
result.
[0035] Second, it may also be the case that encoder eccentricity
will cause the rising edge of pulse trains 24b, 24c to toggle
between leading and lagging the command pulses 33. For instance,
FIG. 4 shows a relatively large position count .PHI.2, measured
between a command pulse 33 and rising edge 50 in pulse train 24b.
However, encoder eccentricity may cause the pulse train 24b periods
to increase, thereby causing rising edge 52 to shift to the right
(lagging) of the command pulse 33. Consequently, the position count
(12 would suddenly jump from a large value to a small value. In
fact, the position count .PHI.2 would jump back and forth once per
motor revolution. The same situation may occur with position count
.PHI.3, where rising edge 54 moves to the left (leading) of the
command pulse 33. Consequently, the position count .PHI.3 would
suddenly jump from a small value to a large value.
[0036] Therefore, two approaches are provided herein for
establishing a corrected position count that minimizes or
eliminates errors caused by an eccentric encoder. The approaches
disclosed herein have been shown to provide corrected values for
speed and position counts that approach the accuracy of inductive
frequency generators. In a first approach, an instantaneous
position count error .PHI.Error may be derived from a speed count
error TError using the following equation:
.PHI. Error TError = N 2 .pi. [ 1 - ( e r ) 2 ] ( Eq . 1 )
##EQU00001##
where N is the number of encoder segments 46 per motor shaft
revolution, e is the encoder eccentricity, and r is the optical
radius (see FIG. 2). Equation 1 allows one to determine an
instantaneous position count error .PHI.Error if the period error
TError is known. As discussed above, a corrected speed count TC can
be determined by averaging speed counts T1, T3 derived from
encoders 23a, 23c that are positioned at substantially opposite
sides of the encoder wheel 22. Thus, at any given moment, the
period error TError between the corrected speed count TC and any
one of the individual speed counts T1, T2, T3 is known. For
example, the instantaneous period error TError between the
corrected speed count TC and speed count T2 is given by:
TError=T2-TC (Eq. 2)
[0037] As a practical matter, the values for N and r in Equation 1
are known quantities based on the specifications of the encoder
wheel 22. However, the eccentricity e is an unknown quantity that
is corrected by the embodiments disclosed herein. In general, the
eccentricity e is small in relation to the radius r. Thus, an
approximation of Equation 1 is provided by
.PHI. Error TError = N 2 .pi. ( Eq . 3 ) ##EQU00002##
[0038] Equations 1 and 3 are expressed as an error ratio between
position and period. Thus, Equations 1 and 3 may be applied to a
speed count signal T1, T2, T3 and a position count signal .PHI.1,
.PHI.2, .PHI.3 that are phase aligned. The speed count T1 and
position count .PHI.1 may be phase aligned. However, a more general
application of the present embodiment is better illustrated using
the exemplary count signals shown in FIG. 6, where speed count T1
and position count .PHI.1 are not phase aligned. This phase
misalignment may occur because of a phase delay induced by certain
counting devices, such as integrators. Those skilled in the art
comprehend that integrators induce a 90 degree phase delay, which
may cause the position count .PHI.1 to lag the speed count T1, even
though both are derived from the same encoder. Other phase shifts
may occur depending on the components used in a particular
application. The present embodiment illustrates a technique to
accounting for these phase shifts.
[0039] FIG. 6 shows that the exemplary position count curve .PHI.1
is phase aligned with speed count T2, which is derived from pulse
train 24b generated by encoder sensor 23b. Thus, speed count T2 may
be used as a reference speed count to determine the position error
.PHI.Error and the corrected position count .PHI.C. Accordingly, in
the present embodiment (illustrated in FIG. 2), the encoder 21 uses
three encoder sensors 23a, 23b, 23c disposed approximately 90 motor
shaft degrees apart from one another. In other words, angle .alpha.
and angle .beta. are each approximately 90 degrees. Encoder sensors
23a and 23c are used as described above to generate a corrected
speed count TC and encoder sensor 23b may be used to calculate a
corrected position count .PHI.C using Equation 1 or Equation 3.
[0040] The values used to calculate the corrected position count
.PHI.C are shown more clearly in FIG. 7. The horizontal and
vertical axes shown in FIG. 7 are the same as shown in FIG. 6.
Thus, the left vertical axis represents speed count values, the
right vertical axis represents position count values, and the
horizontal axis represents a complete motor shaft (and encoder
wheel 22) revolution. As shown in FIG. 7 and in Equation 2 above,
TError is expressed as the instantaneous (e.g., at arbitrary time
t) difference between the speed count T2 and the corrected speed
count TC. Further, the corrected speed count TC is derived from the
average of speed counts T1 and T3 as discussed above. Similarly,
.PHI.Error is the instantaneous (also at arbitrary time t)
difference between the position count .PHI.1 and the sought-after
corrected position count .PHI.C. Therefore, Equation 3 may be
rewritten as:
.PHI. 1 - .PHI. C T 2 - T 1 + T 3 2 = N 2 .pi. ( Eq . 4 )
##EQU00003##
Solving Equation 4 for .PHI.C yields:
.PHI. C = .PHI. 1 - N 2 .pi. .times. ( T 2 - T 1 + T 3 2 ) ( Eq . 5
) ##EQU00004##
which may be used by position counter 30 to continually determine a
corrected position count value .PHI.C. Referring to FIG. 1, this
position count value .PHI.C may be transmitted to position
controller 38 to effect position control of the motor 20. Since the
position counter 30 in the present embodiment uses speed counts T1,
T2, and T3 to calculate the corrected position count .PHI.C, these
counts may be provided by the speed counter 34 along signal path
56. Alternatively, the position counter 30 may independently count
these values. Alternatively, the speed counter 34 and the position
counter 30 may be implemented as a single counter capable of
forwarding the appropriate corrected speed count TC and position
count .PHI.C to the speed controller 40 and position controller 38,
respectively.
[0041] A second approach to determining a corrected position count
value .PHI.C is similar to the averaging solution described above
for calculating a corrected speed count TC. This particular
approach uses a second command signal 131 as shown in FIG. 8. In
this particular embodiment, the same two encoder sensors 23a, 23c
used to determine the corrected speed count TC may be used to
determine the corrected position count .PHI.C. Alternatively, two
different encoder sensors may be used, resulting in a total of four
encoder sensors disposed about the encoder wheel 22 (two for
position, two for speed).
[0042] A technique for setting the periodic command pulses 33 at or
near the midpoint of a pulse train period was disclosed above. This
same technique may be applied to the second command signal 131 to
set the periodic command pulses 133 at or near the midpoint of a
period of pulse train 24c. Then, at any given point in time, the
corrected position count .PHI.C may be calculated from the average
of the position counts .PHI.1, .PHI.3 shown in FIG. 8.
[0043] Where encoder eccentricity is minimal, the two command
signals 31, 131 may be started at practically any time without any
adverse effects. However, as eccentricity increases, the timing and
method with which the command signals 31, 131 are started may
effect the range of eccentricities that may be corrected using this
approach. To highlight these considerations, two different starting
strategies are discussed below. In one embodiment, the command
signals 31, 131 are started at different times, with the second
command signal 131 started after the first signal is locked to
encoder sensor 23a. In another embodiment, the command signals 31,
131 are started at substantially the same time. In both cases, no
additional logic or processing is used to control the timing of the
command signals 31, 131, though some control may in fact be used.
Thus, the following examples are intended to represent worst case
scenarios.
[0044] In a first initialization strategy, the position controller
38 is initially locked to sensor pulse trains 24a. That is, the
command pulses 33 are set to fire approximately halfway through
each period of pulse train 24a. The motor controller 12 controls
the position variation of sensor 23a to zero as represented by
error curve 58 in FIG. 9a, which shows the uncorrected absolute
position variation due to eccentricity for both encoder sensors
23a, 23c. Since error curve 58 is maintained at or near zero, the
error curve 60 of sensor 23c shows twice the amplitude of the true
encoder eccentricity. Thus, the uncorrected sensor 23c variation
varies between -50% to +50% of one complete period due to an
encoder eccentricity of 25% for this particular example.
[0045] In the present example, the second command signal 131 is
started at about the 75% point on the horizontal axis of FIG. 9a,
or when the position variation error curve 60 is at its largest
negative value (point 62). Initially, the position count .PHI.3
relative to the second set of command pulses 133 varies between 0%
and 100% and the DC value would be 50%. Once the controller 12
reaches a steady state condition, the amplitudes of the two
individual position counts .PHI.1, .PHI.3 become equal at 25% and
the DC value of each individual position counts .PHI.1, .PHI.3
shifts by 25% so that the corrected position measurement has an
average value of 0%. Thus, in FIG. 9b, position count .PHI.1 has
settled to a DC value of -25% while .PHI.3 has settled to a DC
value of +25%. The average of these two position counts .PHI.1,
.PHI.3 is shown as the corrected position count .PHI.C.
[0046] In the present example, an encoder eccentricity of 25%
temporarily resulted in a position count .PHI.3 variation that
fluctuated between 0% and 100%. Thus, a 25% eccentricity represents
an upper limit on the amount of eccentricity that may be corrected
using this particular initialization strategy. A larger
eccentricity will produce larger position count .PHI.3 variations
that will manifest themselves as transitions between leading and
lagging rising edges of pulse train 24c relative to the command
pulses 133. As discussed above, these transitions may lead to an
unstable motor control 12 loop. Of course, if the second command
signal 131 were started at the midpoint (point 64) of the absolute
position error signal 60 shown in FIG. 9a, then the final
individual position counts .PHI.1, .PHI.3 would both vary about
zero and no DC offset would be present. Logic or processor
instructions may be used to control the precise initialization of
the command signal 131. In the absence of this type of control, the
worst case scenario shown in FIGS. 9a and 9b must be accounted
for.
[0047] In a second initialization strategy, the position controller
38 is not locked onto either pulse train 24a, 24c. In this
particular case, both command signals 31, 131 are started at
approximately the same time and both are used to correct encoder
eccentricity. FIG. 10a shows this particular scenario with an
encoder 21 having an eccentricity of 50% of one total period. That
is, the eccentricity for the encoder 21 in FIGS. 10a, 10b is twice
that of the encoder 21 in FIGS. 9a, 9b. With neither position count
.PHI.1, .PHI.3 corrected, the absolute uncorrected position
variation 60, 62 due to encoder eccentricity is the same amplitude
for each sensor 23a, 23c and 180 electrical degrees out of
phase.
[0048] In the present example, the command signals 31, 131 are
started at about the 75% point on the horizontal axis of FIG. 10a,
or when the position variation error curve 62 is at its largest
positive value (point 66). Initially, the position count .PHI.1
relative to the first set of command pulses 33 varies between 0%
and -100% and the DC value would be -50%. Also, the initial
position count .PHI.3 relative to the second set of command pulses
133 varies between 0% and 100% with a DC value of 50%. Once the
controller 12 reaches a steady state condition, the amplitudes of
the two individual position counts .PHI.1, .PHI.3 become equal at
50%, but the initial DC value of each individual position count
.PHI.1, .PHI.3 remains so that the corrected position measurement
has an average value of 0%. Thus, in FIG. 10b, position count
.PHI.1 remains at a DC value of -50% while .PHI.3 remains at a DC
value of +50%. The average of these two position counts .PHI.1,
.PHI.3 is shown as the corrected position count .PHI.C. As with the
previous initialization strategy, the DC offsets may be minimized
if the command signals 31, 131 are started closer to the zero-axis
crossing (point 68).
[0049] In the present example, an encoder eccentricity of 50%
temporarily resulted in position count .PHI.1, .PHI.3 variations
that fluctuated between 0% and 100%. Thus, a 50% eccentricity
represents an upper limit on the amount of eccentricity that may be
corrected using this particular initialization strategy. As before,
logic or processor instructions may be used to control the precise
initialization of the command signals 31, 131. In the absence of
this type of control, the worst case scenario shown in FIGS. 10a
and 10b must be accounted for.
[0050] The present invention may be carried out in other specific
ways than those herein set forth without departing from the scope
and essential characteristics of the invention. For instance, the
signals represented by .PHI.1 and T2 in Equation 5 may be changed
as necessary to other count signals that are in phase alignment
with one another. Thus, application of the encoder correction
technique provided by Equation 5 is not expressly limited to
encoders sensors 23a, 23b that are 90 motor shaft degrees apart.
Encoder sensors at any angle may be used provided the speed and
position count signals are in phase. Furthermore, where the
corrected position .PHI.C is calculated using Equation 5, the
N/2.pi. term in that equation may be rounded to the nearest power
of 2 so the calculation may be performed using a bit-shift
operation in an ASIC or other computer processor. The present
embodiments are, therefore, to be considered in all respects as
illustrative and not restrictive, and all changes coming within the
meaning and equivalency range of the appended claims are intended
to be embraced therein.
* * * * *