1. Field of the Invention
The present invention relates to linear or rotary optical encoders used to instantaneously measure the position of a linear or rotary moving element such as an actuator.
2. Description of the Prior Art
It is certainly true that optical encoders are well known in the prior art. A typical optical encoder would be utilized to measure the digital absolute position of a linear or rotary moving element. Generally, these prior art optical encoders would include a code plate having several tracks of alternating dark and transparent bands and an optical emitter and detector on either side of the code plate assigned to reading each band. Alternatively, the emitter and detector may be on the same side of the code plate with the alternating bands having high and low reflectivity. In either situation, an optical emitter/detector combination would be assigned to each of the bands, thereby increasing the complexity and the cost of the system. A typical optical reading encoder capable of resolving the absolute position of the code plate to one part in a thousand would require approximately 10 pairs of optical emitters and detectors to read the 10 tracks on the code plate.
Examples of prior art optical detectors are U.S. Pat. No. 4,602,242 issued to Kimura; U.S. Pat. No. 4,720,699 issued to Smith; U.S. Pat. No. 5,336,884 issued to Khoshnevisan et al.; U.S. Pat. No. 5,451,776 issued to Kolloff et al.; and U.S. Pat. No. 5,748,111 issued to Bates.
The patent to Smith describes an optical encoder employing a line array of detectors. A single strip of encoding bars is used in conjunction with a plurality of detectors 6 to determine the absolute position of the strip of encoding bars. As shown in
The patent to Kolloff et al. describes an optical encoder for sensing the linear position of an optical medium moving in a linear direction. As illustrated in
The patent to Khoshnevisan et al. is generally related to an optic encoder for sensing an angular position. A circular disc is provided with an angular absolute track 104 as well as a number of additional angular tracks 110, 112, 114 and 116 as illustrated in
The patent to Kimura describes either a linear or rotary encoder containing a code carrying medium having a fine reading track 21 and a rough reading track 22 which is parallel with respect to one another. The fine reading track 21 is divided into a plurality of blocks 21a and the rough reading track 22 is divided into a plurality of blocks 23.
The patent to Bates describes an apparatus for monitoring the speed and actual position of a rotating member. This apparatus includes a grating portion 114 including a plurality of wedge-shaped pattern markings 22 that are equally spaced around a periphery surface 20. A sensor 16 in conjunction with a processor 18 would determine both the speed and actual position of the rotating member.
None of the above-noted prior art patents describes an optical encoder utilizing a code plate having a plurality of wedge-shaped items defining a plurality of digital words associated with a linear or rotary moving element. Additionally, none of these references would employ a relatively small number of detectors to quickly and efficiently detect the absolute position of the code plate which, in turn, is associated with the actual position of the linear or rotary moving element.
Furthermore, none of the above-noted prior art patents describes an encoder for the instantaneous determination of the position of an element, such as an actuator, at the particular moment that is provided to the encoder. This is important particularly when power is initially lost to the encoder and/or the actuator and then power is restored to the encoder and/or actuator, especially when the encoder is used in a hostile environment.
The deficiencies of the prior art are addressed by the present invention which describes an optical absolute position encoder including a code plate having a plurality of encoder elements forming, in turn, a plurality of digital words extending for at least a portion of the entire length of a linear position encoder or provided along the periphery of at least a portion of a rotary position encoder. Although the present invention can be applied to both a linear encoder as well as a rotary encoder, for ease of explanation, we will limit our discussion to a linear encoder. One or two optical emitter/detector combinations would be utilized to read the digital absolute position of the code plate. Each of the emitter/detector combinations would be provided on a single sensor head. When two pairs of emitter/detectors are employed, each would be provided on a separate read head separated from one another by a precise distance.
Each of the digital words would contain a Most Significant Bit (MSB) and a plurality of additional bits, thereby creating a multi-bit digital word. The code plate would contain a plurality of these digital words. Each of the digital bits of each of the words would represent either a digital “0” or digital “1” based upon whether the reflectivity of each of the encoder elements was decreasing or increasing in the direction of movement assigned a positive value on the code plate. Each of the bits would constitute a plurality of parallel encoder tracks. Within each bit of the digital word, based upon the exact reflectivity sensed by each optical detector or detectors, the analog, or exact position of the code plate would then be determined.
The present invention would employ a Gray code relationship whereby each digital word would only differ by the change of one bit from each adjacent digital word.
A signal processing device is used to operate the optical decoder according to the present invention. This signal processor would be provided with sufficient software and memory for properly controlling the operation of the present invention. The memory of the signal processor would be provided with the position of each of the digital words on the code plate as well as the orientation, which defines bit value of each of the encoder elements on the code plate. Therefore, utilizing the information gathered by the optical detector or detectors, the exact position of the code plate and its associated moving element would be determined. Once the signal processing device determines the exact position of the moving elements, it would be relayed to an appropriate output device.
The present invention is designed to operate in various electromagnetic and volatile environments. Therefore, to combat electrical magnetic interference, as well as to ensure that no sparks are generated, each of the optical detector/emitter combinations would be in communication with an optical waveguide, thereby allowing for a remote reading of the position of the code plate and its associated actuator.
Another embodiment of the present invention is directed to an encoder, also used in conjunction with a code plate to determine the absolute position of an actuator, or other device, associated with the code plate. In this context, as was true with the previous embodiment, the code plate would move in concert with either a linear or rotary moving element.
The purpose of this new embodiment is to determine the exact position of the code plate, and hence the actuator, at the time that power is either initially applied to a system utilizing the encoder and the code plate, or when power is applied as a recovery from a power outage. The code plate would be provided with a plurality of tracks, with each track allowing a sensor to sense one of two or more signal levels. Computer software or hardware associated with the operation of the actuator would be able to locate the exact position of the code plate and, therefore, the actuator, based upon the recognition of the exact digital word containing the same number of bits as the number of tracks on the code plate corresponding to the location of a plurality of sensors or read heads, one for each of the tracks. Similar to the previously described embodiment, a Gray code relationship is provided in each of the digital words in which each digital word differs from an adjacent digital word by the change of only one bit. For example, if three signal levels are used, the value change is always one increment; never 0 to 2 or 2 to 0. Possible value changes would be 0 to 1, 1 to 0, 1 to 2 or 2 to 1. As a result, the magnitude of the value change is known in advance.
Various types of encoders can be utilized by the second embodiment of the present invention. For example, a carbon nanotube sensor, sensitive to different magnetic fields, each magnetic field strength corresponding to a signal level may be employed. Furthermore, an optical sensor could be utilized, with the optical sensor, sensitive to various discrete reflection values provided on the code plate, each reflection value indicative of a particular signal level.
The present invention will be better understood when consideration is given to the following detailed description thereof. This description makes reference to the following drawings wherein:
A block diagram showing the basic elements of the present invention 10 is illustrated with respect to
The wedge-shaped elements produce an approximately linear variation of detected signal amplitude across the span of a single digital bit. It will be obvious to those skilled in the art that other means, such as micro scale variation of coating density or approximately linear changes in the reflection spectrum may alternatively be used to produce a discernable variation in the detected signal across a bit.
Although the present invention could operate utilizing a multitude of sensor heads, as has been described hereinabove, the present invention would generally utilize one or two sensor heads. The use of only one sensor head would result in a savings of money in producing the optical reader according to the present invention but would sacrifice the ability to maintain a continuous linear reading. In addition, the use of only a single sensor head would reduce the complexity of a processor utilized with the present invention and would also increase the speed of the processing of the present invention. However, as indicated hereinabove, this is done by sacrificing the ability to maintain a continuous linear reading. Therefore, for ease of discussion of the present invention, we will limit our description to an encoder utilizing two sensor heads.
As shown in
The second sensor head 20 is provided at a close distance from the sensor head 18 and, similar to the sensor head 18, would be provided with an input fiber optic waveguide 26 connected between the sensor head 20 and an emitter 34 providing an optical output to the sensor head 20, such as a laser output. An optical fiber optical waveguide 28 is provided between the sensor head 20 and a detector 36. Both detectors 32 and 36 are connected to a signal processor 38 for determining the exact position of the code plate 12 based upon the outputs transmitted by the detectors 32 and 36 to the signal processor 38. Similar to the optical output signal generated by the first sensor 18, the output of the second sensor 20 is also indicative of the reflected optical power of the optical signal reflected off of one of the encoder elements 14. Generally, both of the sensor heads 18, 20 remain stationary while the code plate 12 moves above or under the sensor heads. However, for convenience in describing the encoder operation, we adopt the convention of having the sensor head in motion relative to a fixed code plate.
The two waveguide sensing heads 18, 20 are separated in the measurement direction as depicted by arrow 16 by, for example, 0.5, 1.5, 2.5 or 3.5 times the bit pitch of the individual encoder elements 14. This separation assures that handing the signal readout back and forth from one fiber pair to another fiber pair will maintain a linearly-varying signal versus position of relationship over the entire encoder range. Maintaining a constantly linear signal in turn would allow the encoder to provide the absolute position at all times without correlation with other sensor data. The loss of signal as a function of sensing head distance from the code plate reflecting surface is proportional to the distance between the code plate 12 and each of each of the sensor heads 18, 20. The sensing head distance is minimized by making the reflective surface of the code plate 12 face the sensing head. Therefore, although the present invention could operate with the input waveguide provided on the opposite side of the code plate 12 with respect to the output waveguide, the present invention will be described with respect to a sensing head having an input waveguide and an output waveguide on the same side of the code plate.
A typical digital word 40 is illustrated with respect to
Each digital bit contains a plurality of equally-shaped reflecting wedges whose thickness varies in a linear manner from one side of the digital bit until the second side of the digital bit. For example, the leftmost side 56 of bit 42 is relatively thick and the thickness of each of the wedges of bit 42 would decrease in size linearly until it reaches edge 58. The distance between edges 56 and edges 58 is the same for all bits and is called the bit pitch. The reflectivity of bit 42 is highest at the thickest part 56 of the bit 42 and is lowest at the thinnest part 58 of the bit 42. Therefore, the encoder reflectivity would vary as the code plate moves above or below the stationary sensor heads 18, 20. A rising slope would be equated as a digital 1in which the thickness of the wedge increases in the measurement direction 60, as, for example, bit 46. A falling slope such as shown in bit 42 would denote a digital 0. Consequently, since the signal processor 38 is aware of the exact position of each of the digital words provided on the code plate 12, once it is established where the sensing heads are positioned within a single digital word or, in the instance of two sensing heads, in one digital word or an adjacent digital word, the absolute position of the code plate can be determined to a resolution of one bit pitch. This bit pitch resolution determination is then refined in an analog manner by determining the exact position of the sensor head or heads within a particular bit of a particular digital word by the determination of the reflectivity of the wedge-shaped element of that particular digital bit, since the variation of reflectivity across the bit pitch of each of the wedges is known. Therefore, once it is determined over which digital word the stationary sensor head is positioned, it can then be determined, utilizing the exact reflectivity level, the exact position within that digital bit of the particular digital word. The digital words can be placed on the code plate 12 to utilize a binary Gray code wherein each digital word differs from its adjacent digital word by only a single bit. Since the present invention employs a six-bit digital word, a six-bit binary Gray code would be employed. The single bit change from word to word in a Gray code provides an indication of error-free operation.
Furthermore, a plurality of guard bands 54 is provided at both ends of a linear code plate. It is possible that a rotary code plate would employ only a single grouping of guard bands. Assuming that the digital word 40 shown in
As shown in
Minimal optical power loss is achieved by use of a planar waveguide coupler having two branches 26, 28 converging on an exit face 64. Emitted light passes through one branch, out of the coupler and is reflected off of the code plate and passes back into the other coupler branch. The planar waveguide coupler would have an in-plane dimension, seen in
The particular signal processor 38 used in the present invention would be chosen based upon the type of response time contemplated. Short read-out response time depends on the signal processor speed and the particular processor algorithm employed. In order to accommodate a rapid response time, the algorithm can output an immediate position value based solely on signal amplitude variation handed off from the two sensing heads, followed by confirmation of the absolute position based on the next decoded digital word. This method allows the shortest instantaneous response to motion combined with reasonably rapid confirmation of the absolute position.
High resolution of the present invention is obtained by using all of the possible digital words based upon the number of digital bits in each digital word. For example, in the embodiment illustrated in
Your attention is now directed to
When the system is turned on, either initially or after a loss of power, the positioning algorithm will be initiated at step 80. At this point, both of the sensor heads 18, 20 would obtain an amplitude value of the particular spot of the bit of a particular digital word over (or under) the sensor is positioned at step 82. The value of the instantaneous amplitudes would form a first estimate of the position of the designated sensor head 18 or 20. These instantaneous amplitude values are designated as d[1,1] and d[2,1]. At this point, step 84, an estimated position of the sensor head and, of course, the code plate would be determined utilizing the following equation:
X0=(2L/D)[(d[1,1]+d[[2,1])/2−D/4−D0] 1
L=Full measurement range
D0=Lowest signal level
Dmax=Highest signal level
D=Dmax−D0=Full system dynamic range
The ability to make this estimation depends on code plate less significant bits using less than the full dynamic range and shifting from an average of D/4 to an average of 3D/4 across the full code plate length.
A series of detected values is then acquired at step 86. These detected values represent a dynamic range used by all of the bits with exception of the most significant bit. A second estimation of position is then made. These detected values are acquired after several cycles of rising and falling signal levels as sensed by both of the detectors. During the initial determination of the position of the code plate, the code plate might be forced to move at least in one direction allowing the sensor heads to acquire these additional values. The maxima and minima of these values d[1,j] and d[2,j] are observed, out of phase. All of the signal values detected would be recorded using sequence indicator j for later processing reference. The values 1 or 2 for d[i,j] define which of the sensor heads is providing a given detected signal; i=1 for sensor head 18 and i=2 for sensor head 20. A sample rate is established using the number of samples per cycle as a measure and, for example, ten samples per cycle as a criterion. The average of cycle peaks (highest value in a given cycle, DMAX) and average of cycle valleys (lowest value in a given cycle, DMIN) are then measured. The most significant bit (MSB) is identified using:
dMAX[i,j]−dMIN[i,j]>1.5*((average of dMAX)−(average of dMIN)) 2
Excluding the MSB, the average of cycle peaks and the average of cycle valleys are noted. The dynamic range d1 of all of the bits other than the MSB is as follows:
d1=(average of dMAX)−(average of dMIN) 3
The detected signal mid value dm is determined utilizing:
dm=((average of dMAX))+(average of dMIN))/2 4
Based upon these computations, an estimated position X1 is computed with step 86:
X1=(L/d1)[dm−D0−d1/2] 5
Equation 5 captures the early position estimation benefit associated with a gradual rise in the dm value across the code plate.
Once this second estimated position is determined, a hand-off back and forth is established between detected signals d[1,j] and d[2,j] from sensor heads 18 and 20 at step 88. As an initial sub-step within step 88, Table T is formed. Each time the detected signal values d[1,j], d[2,j] are acquired, j would be incremented by 1 and new detected signal values would be added. Let P be the distance along the X axis equivalent to 1 bit pitch, and assume that the sensor heads are separated by 3.5 P. Table T is scanned for the first instance of d[1,j] in a range which can occur only if the detector d[1,j] is reading an MSB (d[1,j] above dMAX [i,j]+0.12d1 or below dMIN[i,j]−0.12d1)
If d[2,j] encounters an MSB first, the roles of d[1,j] and d[2,j] can be reversed relative to this description, resulting in a small reduction in time to acquire the next stage of absolute position improvement.
j1 is designated the first j for which d[1,j] can only be an MSB. Assume initially that increasing j is initially capturing data from increasing X positions. This assumption will be either validated or reversed and corrections applied later in the process. Determine sign of MSB (=MSBS) at j1 as MSBS=+1 if d[1,j] vs j slope is positive and MSBS=−1 if d[1,j] vs j slope is negative.
DMid=(D0+Dmax)/2 6
D=Dmax−D0 7
Form fourth and fifth columns of table [T] for ΔX1 and ΔX2. For all rows before and after j1 in which d[1,j] stays between dMIN+0.13*d1 and dMAX−0.13 d1 assign a value of ΔX1.
ΔX1=(MSBS)*P*(d[1,j]−DMid)/D 8
For those j near j1 in which the absolute value of ΔX1 is between 0.32*P and 0.43*P, determine whether d[2,j] is tracking d[1,j] with the same or opposite sign of slope relative to ΔX1 ordinate. Based on this determination, assign a value of +1 or −1 to the bit slope of a bit in which d[2,j] is positioned (BS=1 or −1). Also establish the sign of + or − direction of motion (DS=1 if motion is increasing X through d[1,j], d[2,j] transition and DS=−1 if motion through transition is decreasing X. Establish cumulative position (CP) index which is incremented by P/2 when DS=1 and reduced by P/2 when DS=−1. Enter in column 5 values for ΔX2 when d[2,j] is between dMIN[1,j]+0.13*d1 and dMAX[1,j]−0.13*d1:
ΔX2=CP+BS*P*(d[2,j]−dM)/d1 9
The ΔX2 value from Equation 9 refers to the position of sensor head d[1,j] inferred from sensor head d[2,j] data. Sensor head d[1,j] is therefore a universal reference position element regardless of whether data defining position enters via sensor head d[1,j] or d[2,j].
Transitions from d[2,j] to d[1,j] are made in a similar manner to those from d[1,j] to d[2,j] and the formula for ΔX1 when d[1,j] is the differential position data source is:
ΔX1=CP+BS*P*(d[1,j]−dM)/d1 10
with CP and BS determined as was done for ΔX2. In general, bit transitions will continue to occur as the code plate moves. Back and forth motion is accommodated by reversing CP accumulation trend when a bit transition is preceded by a direction reversal and maintaining the CP trend when bit transitions occur without direction reversal.
The dynamic range measurement is refined at step 90. As ΔX changes, determine values of dMAXO [i,j], dmino[i,j] and D for which the following expressions are minimized:
where dMINO is the minimum d[i,j] associated with low-to-high or high-to-low LSB transition, dMAXO is the maximum d[i,j] associated with a low-to-high or high-to-low LSB transition in the sampled data and only ΔX and d[i,j] values associated with minima or maxima of the d[i,j] series are considered.
Continuously gather data and improve dmin[i,j] and dmax[i,j] and D estimation accuracy. Formulas 1 through 12 require small corrections such as:
d1=fl*(dMAX[i,j]−dmin[i,j] 13
These correction factors, along with estimated numerical values for signal thresholds given above, will be determined during system calibration.
Based upon this information, the first digital word is read at step 92.
As the code plate moves, the absolute value of ΔX will reach 2.5*P, then 3.5*P. If d[2,j] reaches the center of an MSB at ΔX=3.5*P, the direction of net motion is increasing X. d[2,j] at X tracking exactly d[1,j] previously obtained when sensor head 1 was positioned at X will verify this determination. If d[2,j] reaches an MSB center at ΔX=2.5*P, direction of motion is decreasing X and that determination is verified by d[1,j] at X tracking exactly d[2,j] previously obtained when sensor head 2 was positioned at X. If the direction of motion is decreasing X, assign a negative sign to X motion and reassess tabulated ΔX values.
For increasing X, assign bit value=1 for rising slope and bit value=0 for falling slope. If the encoder passes new bits while moving in the −X direction, the bit value assignment criteria must reverse signal slope referenced to j sequence numbers in order to maintain a consistent bit value assignment referenced to the X axis.
Associate bit values with integer multiples of bit pitch in the direction of increasing X. For example, MSB is bit 0, bit with X=P at center is bit 1, bit with X=2P at center is bit 2, and so on up to bit 5. Use d[1,j] as reference for bit number determination.
When bits 0 through 5 associated with any MSB have been assigned values, decode digital word, using the Gray code as a reference.
A third position estimate is made at step 94.
Assign X value to center of MSB for decoded word:
X=(Decoded number)*P*6
Continue to gather bit identification as X value changes, following methods outlined above. Assign X values to MSB center of each new word decoded.
When the first word is decoded, the position of the decoded word in a system memory database is determined.
The dynamic range is further defined as step 96 and the differences between the model predictions and d(i,j) measurements are assessed. D, D0, DMAX, dMAX and dMIN values are corrected by an amount corresponding to the systematic drift that is measured. All system parameters are constantly updated to adapt to drift in the optical input signal strength or system throughput variability. If dramatic corrections occur, a possible malfunction is noted.
Once the exact position of the code plate with respect to one of the designated sensors is determined, movement of the code plate from this first detected position to all subsequent positions are easily made based upon movement between a first digital bit and one or the other of the two digital bits adjacent to this first digital bit. The exact position of the code plate is then determined based upon the reflectivity value sensed by the sensor heads which, in turn, is a function of the exact position of the sensor head with respect to a bit within the digital word. Utilizing the binary Gray code would act as a further check on the position of the code plate since each of the adjacent digital words should differ from one another by only a single bit. A block diagram illustrating continuing operation of the encoder after a first digital word has been obtained is shown in
As shown in
For purposes of illustration,
As can be appreciated, one of the sensor heads, such as the one associated with track 1, would be directly over a transition point between a zero signal and a one signal. This occurs at 228 in the short code plate segment, illustrated in
Various types of sensors can be utilized to determine the position of a sensor head along a specific track of the code plate.
It is noted that each of the cells 244, 246, 248 and 250 act as a passive optical sensor using a semiconducting carbon nanotube material similar to the material described in U.S. patent application publication 2005/0248768 to Pettit. This patent application publication describes various optical properties of the carbon nanotube material. One of these properties would change the amplitude or absorption of a particular wavelength of light due to the presence of a magnetic field. Based upon the fact that this absorption is responsive to variable levels of the magnetic field, different magnetic field strengths can represent the different signal levels illustrated in
Each of the optical absorption cells 244, 246, 248 and 250 are sensitive to different wavelengths of light than the other optical absorption cells. Consequently, a source of light, such as multiplexed lasers 232, would be utilized to produce a plurality of different wavelengths of light. The number of different wavelengths would be dependent upon the number of optical absorption cells and tracks employed. Therefore, the full spectrum of these particular wavelengths would be transmitted through the optical fiber 234 and through each of the optical absorption cells 244, 246, 248 and 250. The absorption and amplitude of each of the spectra would be modified based upon the magnetic field of the particular permanent magnet aligned with that particular optical cell at any one time. The signals produced by each of the optical absorption cells would be transmitted over the fiber optic cable or waveguide 234 to a demultiplexing unit 252. This demultiplexed signal would then be processed by a signal processor 244 in communication with a computer 256. The computer would include software therein which would read the particular digital word produced by the optical absorption cell array. Once this particular digital word has been sensed, the exact position of the code plate 230 is determined, defining the exact position of the actuator associated with the code plate.
Due to the importance of the separation of the light spectra used in conjunction with the magnetic code plate illustrated in
Each of the tracks are coated with patterned reflective material, such as gold, having discrete reflection values producing three levels of optical signals suitable for position coding as previously described. A multiplexed laser source would be utilized with a plurality of wavelength division multiplexing (WDM) splitters to direct light having four different wavelengths to the four different read heads associated with each of the tracks. These splitters would include dichroic mirrors 328, 330 and 336. The multiplexed lasers are connected to a fiber optic or waveguide 300, which would include sections 302, 304, 310 and 314 to direct the specific distinct wavelengths to the respective read heads 290, 292, 294 and 296. Each of these read heads would be similar to the read head illustrated with respect to
Cross-talk or interference can be reduced by coating each of the tracks 282, 284, 286 and 288 with a narrow transmission band dichroic filter that restricts transmitted light to the appropriate wavelength associated with that track. Measurement resolution is defined by the size of the read head waveguides along the measurement direction.
The above described embodiments are merely illustrative of the principals of the present invention. Other embodiments of the present invention will be apparent to those skilled in the art without departing from the spirit and scope of the present invention. For example, although the second embodiment was described using a WDM technique, time division multiplexing (TDM) could also be employed.
The present application claims the priority of provisional patent application Ser. No. 60/509,982 filed Oct. 10, 2003, and U.S. patent application Ser. No. 10/959,041, filed Oct. 7, 2004, both of which are incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60509982 | Oct 2003 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10959041 | Oct 2004 | US |
Child | 11655911 | Jan 2007 | US |