Not Applicable
Not Applicable
Not Applicable
1. Field of the Invention
The present invention relates to the field of position measurement; and more specifically, the present invention relates to the measurement of an angular position of a rotating shaft.
A machine may be created that is then operated by a control system referred herein to as a “Computer”. During operation of this machine, the computer may need to ascertain the position of various mechanical elements, referred singly herein to as an “Axis”. The axis may be moved relative to the other components of the machine and or to some fixed position relative to a location in which the machine is installed. For machines for which the movement is rotational, the position of the axis is generally reported as an angle in degrees from some arbitrary origin where that origin is reasonably expected to be the same from one use of the machine to the next. In the course of the design of the computer and machine, the angular position of the axis may be represented in the standard form in the art of 0 to 360 degrees or as an arbitrary range of values which may then be translated to the standard form or used as is. An example of an arbitrary range would be 0 to 9,999 counts wherein a count would generally be the smallest increment of rotation that can be measured. As is generally accepted and would be familiar to one skilled in the art, the “Resolution” of an axis measurement will interchangeably be referred to as the smallest increment of angle which is represented by one count or as the total number of incremental counts which comprises a full rotation about the axis. By way of example, a resolution of one degree would generally be considered as being interchangeably referred to as a resolution of 360 counts.
The computer that controls the machine may get its axis position data from sensors known as encoders, which may be of the incremental or absolute types for example. Each axis within the machine may utilize encoders of the same type or may combine different types as dictated by the design of the system. Ultimately, whatever type of encoder is employed, these encoders will produce within the computer a grouping of digital bits that represent the position of the sensed axis. These bits may then be interpreted and or acted upon as required by the design of the system.
Incremental encoders count, or emits pulses that represent the finite increments of rotation of the axis to which they are coupled. These pulses generally contain no information about the actual absolute position of the axis but usually will indicate the direction of rotation as is, for example, the situation for an encoder which utilizes a quadrature output as would be familiar to one skilled in the art. Generally, an incremental encoder will be coupled either directly to the axis of rotation or, for example, to the drive motor of a geared-down system in order enhance the resolution of the encoder by means of multiplication of the number of rotations of the encoder versus the rotation of the axis to which it is coupled. It must be noted that this incremental encoder may not always be an actual sensor but may be intrinsic to the operation of the drive system, as is the case when the computer counts commanded incremental steps of movement of a synchronous drive motor, herein referred to as a “Stepper motor”.
In the case of a computer which counts pulses from an external incremental encoder, a loss of position information may ensue should a pulse occur but the computer is not able to detect the pulse. For example, a processing speed limitation of the computer could cause it to miss a pulse within a sequence of pulses because it is busy with an interrupt service. Errors due to missed pulses would be exacerbated should the time between these pulses be reduced, as for an increase in the speed of rotation of the axis, for a system near its operational limit. For a quadrature encoder signal, a missed pulse may further entail a loss of direction information as well, thereby compounding the error. In the case of a computer which counts stepper motor increments, a loss of position information may ensue should a step of movement not occur as commanded, commonly referred to as a “Stall” or when an external force is applied that exceeds the ability of the stepper motor to maintain its expected position, commonly referred to as “Cogging”.
The absolute position will generally be established by the computer at the beginning of operation by moving the axis to a known location herein referred to as the “Home” position. The home position is typically established by means of a sensor whose position is fixed relative to the axis, such as an optical interruption or magnetic sensor, that emits a signal to the computer when ever an actuator that is attached to the axis transits through a “Detection window” of the sensor. When the computer receives the signal, the computer sets the increment count to a pre-determined value that is typically defined as zero. As is commonly the case with the sensors typically applied for the purpose of home position determination, the angular position at which the signal is emitted by the sensor to the computer will generally not be exactly the same from one operation of the machine to the next, i.e. a home position error. This home position error is generally due to variations in the operation of the particular type of sensor employed. For example, an optical interruption sensor that uses an opaque light blocking paddle as the actuator, a light emitter and a light detector may require a slightly different detector illumination to emit the home signal at one temperature of operation versus another temperature, or the apparent optical blocking edge of the paddle may change over time as contamination or corrosion on the paddle surfaces alters its optical properties. For a magnetic sensor, the home error may be due for example to variations in magnetic flux coupling versus temperature, ferrous materials inside or outside the mechanical system, or even the earths magnetic field. A further example of a home positioning error source for any type of sensor used arises from the timing between the movement of the axis and the opto-electrical speed of the sensor and the speed at which the computer may react to the signal from the sensor. By way of example, when the axis is in motion as will be required for the purpose of home position seeking and where an optical sensor is employed as the home sensor, there may exist a finite delay between the arrival of the light blocking paddle to a position which can be sensed by the home position sensor, the activation of the sensor, the transmission of the signal to the computer and finally the interpretation of that signal by a software code in the computer. During this delay the axis may have continued to move causing the computer to be in error as to the actual occurrence of the home sensor activation versus the commanded (Expected) axis position. The axis may be made to move at progressively slower rates to minimize this motion induced error, however static errors intrinsic to the sensor alone as described above may not so easily be ameliorated.
After establishing the home position about the axis, the computer may then count increments of angle in either direction of rotation and thus sense the current axis position, or move the axis to a desired angle represented by a specific number of those increments.
Absolute encoders overcome the home position ambiguity as well as the “loss of position” shortcomings inherent to incremental encoders as they are generally capable of reporting position information for a sensing element coupled to the axis, without the need of a repeated initialization with regards to their position about that axis or even a presence of power. Absolute encoders have been realized in a variety of manners including optical disks with one or more patterns that directly represent the angular position of the pattern, “Synchros” which are rotating transformers with windings with specific phase-to-position relationships that may be translated to a digital form with electronics and magnetic field position sensing encoders. The benefits of an absolute encoder of a given resolution may generally be considered to come at a significant cost premium versus an incremental encoder capable of the same resolution, this added cost most generally stemming from a significant increase in complexity of manufacture for the absolute encoder versus the incremental encoder. Further more, an absolute encoder of “n+1” bits will represent an increase in resolution that is double that of an encoder of “n” bits, so for two absolute encoders of similar design even one more bit of resolution may be found to incur a significant increase in cost. Where a requirement of encoder bits causes the cost of a desirable absolute encoder to exceed the available resources of a particular project, a system designer may be forced to employ a lower cost incremental encoder of equivalent resolution, while forgoing the advantages that an absolute encoder would have afforded. Alternatively, the system designer may select an absolute encoder of lower resolution that desired to retain the benefits of the absolute encoder.
An absolute encoder of greater resolution than permitted by the basic form as described above may be realized in what is known in the art as a “Multi-turn” absolute encoder. A multi-turn absolute encoder typically utilizes the resolution multiplication technique of the geared-down incremental encoder described above. An example of a prior art, multi-turn absolute encoder entails employing an integrated speed-reducing gear that is coupled to a turn counting device. Common limitations of the accuracy of an encoder where a speed-reduction gear is employed include but are not limited to, errors from backlash, mechanical alignment or mechanical wear. Of particular concern to the system designer, these errors would be separate from and typically uncorrelated to, the same mechanical errors within the axis drive train to which the encoder is coupled. A second example of a prior art multi-turn absolute encoder is the magnetic bubble counting type that while not necessarily manifesting the same mechanical error sources of the gear reduction apparatus, introduces its own shortcomings including costs commensurate with the complexities of realization, all of which may not be trivial to the system designer.
Accordingly, the objects and advantages of the present invention are:
(a) to produce an enhanced pseudo-absolute position reading of an angle about an axis of rotation from a combination of an absolute encoder and a home position sensor, where the absolute encoder resolution is multiplied up to the desired enhanced resolution;
(b) to utilize mechanical elements within an existing mechanical system or an ancillary mechanical element for the purpose of resolution multiplication;
(c) to enable a convenient and economical installation of the absolute encoder and home position sensor upon an axis of the existing mechanical system or the ancillary mechanical element with minimal regard to the actual mechanical alignment of the absolute encoder and home position sensor with respect to the axis;
(d) to provide a means by which a mechanical and or temporal misalignment between the encoder and the home position sensor which may result from the installation of the encoder and home position sensor may be reduced or eliminated; and
(e) to eliminate any ambiguity of a detected home position which may arise from one operation of the system to the next.
Still further objects and advantages will become apparent from a consideration of the following description and drawings.
A method for an enhanced incremental-absolute position sensor system for producing an enhanced pseudo-absolute position reading of an angle about an axis of rotation having a number of rotation count bits and a number of rotation position bits is disclosed. In an exemplary embodiment of the present invention, a home position actuator is positioned upon an axis so as to be able to pass through a detection window of a home position sensor attached to a fixed position with respect to the axis. An absolute encoder is coupled so as to rotate an integer multiple number of times greater than one for each full rotation of the axis. A computer is connected to the home position sensor and the absolute encoder by a means such that signals may be received from the home position sensor and position data may be read from the absolute encoder. A computational means is provided whereby the mechanical misalignment of the home position sensor and the absolute encoder is minimized to an extent possible, thereby eliminating any ambiguity arising from operational variability of the home position sensor. A further computational means is provided whereby the multiple rotations of the absolute encoder with respect to the single rotation of the axis may be counted. The enhanced pseudo-absolute position reading may then be utilized by an external system or as an integral part of a local system.
Referring first to
By way of illustration, the encoder system 100a is suitable to convert the angular position of an axis in a mechanical device such as a camera pointing system such that the camera may be pointed repeatedly at some target location in the environment into which it is installed. A typical system would include, among other things, motors to provide forces with which to effect movement of the camera in either direction about one or more axis, belts, pulleys or similar elements to transfer those forces, and electronic devices such as computers within and without the mechanical device which are capable of controlling said motors in addition to interpretation, computation and storing of information related to the positions to which the device will be commanded to move. As such, encoder system 100a may be integrated into the camera control system for example to provide positional data and allow accurate, repeated pointing of the attached camera.
Although not shown for ease of illustration in
As depicted in
For the exemplary embodiment of the present invention, the convention used herein will be that the direction of rotation of the output pulley 101, alternatively referred to as the “Axis”, in the forward direction 170 as reported by the fine encoder 105 will be indicated as an increase in counts whereas a movement of the axis in the reverse direction 171 as reported by the fine encoder 105 will be indicated as a decrease in counts. The specific manipulation of the reported position information from the encoder for the purpose of implementation in this or any other embodiment of this invention, such as inversion of a reading to cause the count to appear to increase for forward rotation of the axis, is familiar to those skilled in the art and so will not be further covered herein.
The exemplary embodiment of the present invention requires that the ratio, or alternatively “Gear ratio”, between the output pulley 101 and the drive pulley 104 be an integer multiple greater than one such as 2:1 or 3:1 where the resulting enhanced resolution of the entire encoder system will be that ratio multiplied by the resolution of the fine encoder 105. By way of example, a mechanical gear ratio of 4:1 paired with a fine encoder 105 of 4096 counts of resolution will yield an enhanced position resolution of 16,384 counts per full rotation of the coarse pulley 101. For the exemplary embodiment of the present invention the gear ratio will be understood to be 16:1 and the resolution of the fine encoder will be 4,096 counts, resulting in an enhanced pseudo-absolute position resolution of 65,536 counts.
In the exemplary embodiment of the invention shown in
An example of a method to compensate for backlash induced errors such as described in the preceding paragraph could include for example, but not be limited to, selecting a drive belt 107 that is more rigid or may contain teeth as is the case for a “Gear belt”, therefore transmitting power from the drive pulley 104 to output pulley 101 more effectively.
A fine offset 111 is computed and stored as discussed in detail for
For the proceeding discussion, the upper four bits of the enhanced position 114 will be herein referred to collectively as the “Segment bits” 115. Each of the possible values of the segment bits 115 represent the angle of rotation of the coarse pulley 101 of
As previously indicated, the maximum value of the segment bits 115 is determined by the gear ratio of the fine pulley 104 to the coarse pulley 101 minus one. For the exemplary embodiment of the current invention, the gear ratio is sixteen and so therefore the maximum value of the segment bits 115 will be fifteen. Four bits are required to represent fifteen in binary and so therefore four segment bits 115 are required.
Referring to
Variability in the operation of home position sensor 102 with respect to the position of the home position actuator 103 within the light detection window 122 may include but not be limited to, variations in the voltage of Vled 117, the resistance of the resistor 118, the light emitting characteristics of the light emitting diode 119 and the illumination to current function of the light detecting transistor 126. The primary effect of all possible variations elements within the home position sensor 102, when taken together, is to cause multiple positions of the home position actuator 103 to be represented by a single Vout 125, i.e. a “home position ambiguity” as described below.
Referring to
The home position ambiguity arises from a situation typical in an actual system where the home position actuator 103 is not limited to positions that either completely unblocked or, fully block the light detection window 122. In general, the home position actuator must generally pass through a “Linear” region represented by a home position actuator position 103b that results in a range of illumination 136 represented by illumination levels 129, 130 and 131. In the worst case, sensor variability, the zero-to-one threshold of an input logic circuit employed by the computer for the purpose of reading the home sensor 102 result in a realistic range of logical state transition 136a, and therefore a range of rotational angles that may be interpreted as the “True” home position. Generally speaking, most sensors including magnetic switches (Reed), magnetic flux detection (Hall) and mechanical switches that are commonly employed for the purpose of establishing a home position will exhibit the same errors as described for the exemplary optical interruption sensor.
The above discussion applies equally when the home position sensor 102 is approached by the home position actuator 103 from the reverse 171 direction with a range of illumination 137 being roughly equivalent to the range of illumination 136 and a range of logical state transition 137a being roughly equivalent to the range of logical state transition 136a. A home position sensor off state 138 is as wide as the angular width of the home position actuator 103 in terms of the angle of rotation of the axis. The implications of the direction of the home position seeking operation as discussed above with respect to angular widths of the ranges 136a, 138 and 137a will be covered in more detail below.
When applied as detailed below, the essential benefits of the combination of the absolute nature of the fine encoder and the proceeding alignment procedure is to eliminate the home position ambiguity introduced by the typical home position sensor, thereby rendering an uncertain rotational alignment of the fine encoder to the axis (and therefore the home position sensor) essentially irrelevant while enabling the resolution multiplication of a purely incremental encoding solution without the computer processing overhead or hard logic that a purely incremental solution would typically require.
Referring to
The underlying binary mathematics commonly used in computers as referenced in the proceeding sections that involve addition, subtraction, division and other operations for fixed numbers of bits are familiar to those skilled in the art so will not be covered here in detail. All operations will be unsigned integer operations.
In the exemplary embodiment of the present invention, as illustrated in
Referring to
Because the speed of the rotation of the axis as described for the operation of the home position sensor can represent an increase in the width of the range of logical state transition 136a, the slowest possible rate of rotation of the axis would be desirable for the initial home position seeking operation. If subsequent home position seeking operations are to performed from either of the directions forward 170 or reverse 171, the actual width of the home position sensor activation signal ambiguity would be increased to encompass the total of the width of logical state transition 136a, the width of home position sensor off state 138 and the width of logical state transition 137a. For this reason it would be desirable in some instances for all home position seeking operations to be performed in the same direction of rotation although this choice would ultimately depend on the angular width of the combination of ranges 136a, 138 and 137a with respect to the angular width of a single rotation of the fine encoder, i.e. the home position sensor activation signal must not cross a 0xFFF-to-0x000 boundary of the fine position 112 data.
Once the fine offset 111 has been computed an stored, should the computer for example have lost power and thereby lost its current count of fine encoder rotations 143 relative to the axis, upon re-starting, the computer must perform the following sequence of events. The fine offset 111 is retrieved from the non-volatile memory 144 that is then applied to all subsequent fine encoder 105 readings to produce the fine position 112. If the home position sensor is already in the activated state, the axis should be rotated until the home position sensor is in the deactivated state for the reason described above pertaining to ranges 136a, 138 and 137a. The axis is rotated, preferably in the same direction as was used for the first home position seeking operation, until the home position sensor is activated at which time the segment count 143 is set to zero. The operation of the system may then proceed normally. The speed of the axis during these subsequent home position seeking operations may be as fast as desired such that the first fine position 112 data read for the purpose of segment counting described below for
Referring to
As is familiar to those experienced in the art, logical “Flags” are utilized to retain information about previous states for the purpose of programmatic decisions, and in this case a “Low flag” is used to indicate when the fine position 112 data Was (“Set”) or Was-not (“Cleared”) previously in the low third 160 and another “High flag” is used to indicate when the fine position 112 data Was (“Set”) or Was-not (“Cleared”) previously in the high third 162. No specific flags are required for the fine position 112 data in the middle third 161, this condition indicated by both the low and high flags being clear at the same time.
Three computational rules are established for the purpose of counting rotations of the fine position 112 data: (1) A reading of fine position 112 within the middle third 161 clears both the low flag and high flag; (2) a reading of fine position 112 within the low third 160 sets the low flag and if the high flag was set increments the segment count by one and then clears the high flag; and (3) a reading of fine position 112 within the high third 162 sets the high flag and if the low flag was set decrements the segment count by one and then clears the low flag.
By way of example, a rotation of the axis in the forward 170 direction, starting at a home position segment of zero, i.e. at the center of the middle third 161, both the low flag and high flag are cleared by application of rule 1 above. As the axis is rotated, the fine position 112 count will increase, eventually crossing the middle third 161 and high third 162 boundary 152. Application of rule 3 above sets the high flag but performs no counting. Further rotation of the axis will increase the count of fine position 112 such that it will cross the boundary 153 and that, by application of rule 2 above sets the low flag, increments the segment count and clears the high flag. Should the axis immediately move in the reverse 171 direction such that the fine position 112 data crosses the 154 boundary (which is the same as the boundary 153 but in the opposite direction), application of rule 3 above will set the high flag, decrement the segment count and then clear the low flag. Should the axis rotate across the boundary 153 and then back across the boundary 154 before the fine position 112 has been read, no new flags will have been set and so no counting will occur, this being useful should the fine position 112 data “Jitter” at a rotation boundary faster that the computer can read the fine encoder. Similarly, by application of the above three rules, all boundary 150-to-153 crossings in the forward direction 170 and all boundary 154-to-157 crossings in the reverse 171 direction may be accounted for as further programmatically detailed for
For one skilled in the art, from the discussion above it may be seen that the only requirement for the accurate counting of the multiple fine position 112 (and therefore fine encoder) rotations for each single rotation of the axis is that at least one reading of the fine position 112 data must be performed within a low third 160, middle third 161 or high third 162 for each transit through that third.
By way of example, an exemplary system as shown in
By way of further example, an exemplary system as shown in
Referring to
In 202 a fine encoder position is read and adjusted with fine offset to produce the fine position. In 203, if the fine position is in the low third, then the low third is flagged in 205. If the high third was flagged as determined by 208, the high flag is cleared in 209 and the segment count is incremented in 210, else nothing is done. The enhanced position is computed in 214 wherein the segment count forms the upper bits and the offset adjusted fine position forms the lower bits of the enhanced position. The process repeats indefinitely at 202 for each subsequent computation of the enhanced position wherein readings of the fine position that lie within the middle third follow the path of 202, 203, 204, 206 and 214 and readings of the fine position that lie within the high third follow the path of 202, 203, 204, 207, 211, 212, 213 and 214.
Another means to alleviate backlash could be realized as depicted in a second exemplary embodiment of the present invention as shown in
Per the detailed discussion above for encoder system 100a and as applies to encoder system 100b, the gear ratio of the output gear 110 to the fine gear 108, when multiplied by the resolution of the fine encoder 105 determines the resolution of the entire encoder system. In accordance with the previously stated convention for the encoder system 100a, movement of the axis for the alternative embodiment 100b of the encoder system in the forward direction 170 as reported by the fine encoder 105 will be indicated as an increase in counts whereas a movement of the axis in the reverse direction 171 as reported by the fine encoder 105 will be indicated as a decrease in counts.
From the description above, a number of advantages of the present enhanced incremental-absolute position sensor system method becomes evident: Off the shelf absolute encoders of lower resolution and therefore significantly lower cost than a single absolute encoder of an equivalent desired resolution may be employed to produce an enhanced pseudo-absolute position reading. A fast and simple, component variability tolerant angular alignment procedure that will not exhibit the home position ambiguity common to purely incremental encoder systems may be utilized. In a typical purely incremental encoder system, every single increment of movement of the encoder and therefore every pulse from the encoder must be processed by the controlling computer or by dedicated logic whereas the present invention requires only a fractional attention to the pulses, thus minimizing the processing speed required to maintain an accurate sense of position. Mechanisms generally already present, or simple dedicated mechanisms, in a typical mechanical system may be utilized for the mechanical multiplication of the output axis rotations instead of dedicated, intricate or precision mechanisms. When the encoder system uses existing mechanisms, errors due to backlash or other similar sources are not then compounded by additional, uncorrelated errors, as are typically introduced by a stand-alone multi-turn absolute encoder. When a dedicated rotation multiplication mechanism is employed, the system designer may specifically control the possible error sources as best serves the system. The method described above reduces or eliminates a need for precise alignment of the multiple absolute encoders and whatever misalignment has been introduced in the construction of the encoder system may then be mathematically reduced or eliminated such that little or no uncertainty is introduced that may lead to errors in the enhanced position data.