In many fields, absolute angle measuring devices are used to determine the position of two bodies moved relative to one another. Compared to systems that measure purely incrementally, absolute angle measuring devices have the advantage that in every relative position, even after the energy supply has been interrupted, correct position information can be output immediately.
The absolute position is embodied by an angle coding. Disposing the position information in a single code track, with code elements disposed in succession in the measurement direction, is especially space-saving. The code elements are disposed in succession in pseudo-random distribution, so that a certain number of successive code elements each form one code word, which unambiguously defines the absolute position. When the scanning unit is displaced relative to the angle coding by a single code element, a new code word is already formed, and over the entire range (360°) to be detected absolutely, a succession of different code words is available. This kind of serial or sequential code is also often called a chain code or a pseudo-random code (PRC).
For determining the absolute position from the scanned code words—also called decoding—a decoding table is used, in which one position is associated with each code word. For associating the absolute position with a scanned code word, the code word forms the address for the decoding table, so that at the output, the absolute position stored in memory for this code word is present and is available for further processing. These nonvolatile tables can be designed today in hardware-wired fashion in an ASIC, to make fast access possible.
The demands in terms of resolution of angle measuring devices are becoming more and more stringent, so that over 360°, many positions have to be encoded unambiguously. The more positions have to be encoded, the more complex is the ensuing decoding. In serial encoding, it is problematic that for high resolution, a very great number of different code words have to be generated and decoded. If the decoding is done by means of tables, a large table is required, in which for every possible code word, one associated absolute position is stored in memory. If the decoding is done with a computer, the result is relatively long computation times.
U.S. Pat. No. 6,330,522 B1 shows a provision for how an angle coding and an angle measuring device can be designed in order to reduce the complexity of decoding. In it, a first code sequence of a first length and a second code sequence of a second length are disposed over 360°, in tracks extending parallel to one another. The first code sequence is disposed five times over 360°, and the second code sequence is disposed fourteen times over 360°. The bit width of the first code sequence differs from the bit width of the second code sequence. The decoder device has a first value set for decoding the first code sequence and a second value set for decoding the second code sequence. The absolute position is unambiguous because of the combination of the two partial positions at every point over 360°.
A disadvantage of a parallel arrangement of code sequences is on the one hand the vulnerability to moiré shifts in scanning, and the relatively few absolutely codable positions over 360°.
It is therefore the object of the invention to disclose an angle coding with which many positions over 360° can be unambiguously encoded, and with which in an angle measuring device, simple decoding of the successions of code words, generated by scanning this angle coding, is made possible.
This object is attained by the angle coding recited in claim 1.
In claim 12, an absolute angle measuring device with an angle coding of this kind is recited.
The absolute angle coding has a plurality of code sequences disposed within 360°, which in combination absolutely unambiguously encode the 360°. The first code sequence has a first length LA and is disposed NA times in succession, and the second code sequence has a second length LB and is disposed NA times in succession, where
NA is greater than or equal to 2 and is an integer or not an integer;
NB is greater than or equal to 2 and is an integer or not an integer;
NA is not equal to NB;
LA and LB are integers
LA is not equal to LB;
Furthermore, the first code sequence and the second code sequence are disposed in one common track, in that a part of the first code sequence and a part of the second code sequence are disposed in alternation. In particular, one code element of the first code sequence is followed by a single code element of the second code sequence each time, and a code element of the second code sequence is followed by a single code element of the first code sequence each time.
The code sequences are disposed circularly on a disk or over the circumference of a drum concentrically to the pivot point. A part of the code sequence means that this can be one or more successive code elements of this code sequence. In the exemplary embodiments that follow, this part in each case is a single code element. A code element in each case is a range of the angle coding from which a bit 0 or 1 can be derived.
“Code sequence” means a succession of a plurality of code elements that defines different positions, over the total length of the code sequence, in the grid of a code element.
The term “cyclically continued code sequence” means that at the end of the code sequence, the beginning of this same code sequence ensues again.
The length of a code sequence defines the angle sector that one code sequence includes. Since the code elements of all the code sequences each include identical angle sectors, the length of the code sequence is equal to the number of code elements within the code sequence, and thus to the number of bits that can be derived therefrom.
For generating a shift of the positions of both code sequences, the length of the first code sequence is advantageously not a multiple of the length of the second code sequence. The shifting length of the code sequences is maximal when the length of the first code sequence differs by 1 from the length of the second code sequence, or in other words when one of the two code sequences has one single code element more than the other of the two code sequences.
A first angle coding that is especially simple to decode is obtained if over 360°, the first code sequence is disposed NA times, and the second code sequence is disposed NB times, where NA and NB are both integers.
This angle coding that is especially simple to decode endlessly over the entire circumference (360°) has M1 different absolute positions over 360°, if the angle coding has a number M1=2*KGV (LA, LB) code elements are disposed, where
KGV (LA, LB) is the least common multiple of LA and LB
LA is the length of the first code sequence A;
LB is the length of the second code sequence B
For NA the following is then true: NA=KGV (LA, LB)/LA.
For NB the following is then true: NB=KGV (LA, LB)/LB.
The maximum number of different positions is attainable if LA differs from LB by 1. Then the following is true:
M
1max=2*LA*LB
The words (bit patterns) obtained in the scanning of this angle coding by means of a detector array can be decoded by means of two value sets available in a decoding device. The first value set is embodied for decoding a first succession of code words, which occurs in each case upon scanning of the first code sequence and its cyclical continuation. The second value set is embodied for decoding a second succession of code words, which occurs each time upon the scanning of the second code sequence and of its cyclical continuation.
The outcome of the decoding of the first succession of code words is a first partial position within the first code sequence, and the outcome of the decoding of the further succession of code words is a second partial position within the second code sequence. The total position value is obtained from the two partial positions.
If over 360°, a number M2 of absolute positions that differs from M1=2* KGV (LA, LB) is required, in particular M2=2k different positions, then in a second angle coding over 360° the number of the code elements is as follows:
M
2<2*KGV (LA, LB), where
KGV (LA, LB) is the least common multiple of LA and LB
LA is the length of the first code sequence A;
LB is the length of the second code sequence B
The first code sequence is disposed NA times, where
NA>2 and NA is not an integer,
so that the first code sequence has a joint, and/or
the second code sequence is disposed NB times, where
NB>2 and NB is not an integer,
so that the second code sequence has a joint.
In other words, in that case at least one of the two code sequences is plotted only partially once within 360°, and the part of this code sequence not plotted is cut out, and the remainder is attached to the next code sequence. At this attachment point, this code sequence is interrupted, since an joint region occurs here, at which in the scanning a new succession of code elements occurs, that is, new bit patterns or words. New bit patterns means that these bit patterns are not a component of the code sequences or their cyclical continuations. The “cutting out” or the “joint” is done at a boundary between two code elements, so that over 360°, a whole number of code elements of all the code sequences is always present.
In this second angle coding, in order to utilize the code sequences well and to enable the highest possible number of positions, the number over 360° is advantageously
M2=2*(KGV (LA, LB)−E*LA), which means that only one of the second code sequences B is incomplete, or
M2=2*(KGV (LA, LB)−E*LB), which means that only one of the first code sequences A is incomplete.
Here, E>0 and is an integer.
The second angle coding now makes it possible to dispose M2=2k code elements over 360°, where k is preferably less than 4 and an integer.
For decoding the words obtained in the scanning of the second angle coding, a further value set is now required besides the first and second value sets. This further value set is designed for decoding the joint in the cyclical continuation of the first and/or second code sequence, that is, the joint region, and it now contains the bit patterns which occur newly in the scanning of the joint region, or in other words which are not a component of the first or second value set.
Further advantageous features of the invention are recited in the dependent claims.
Exemplary embodiments of the invention will be described in further detail in conjunction with the drawings.
In the invention, the Nonius principle is employed. For absolute position measurement, two serial code sequences A, B are used, which include different lengths LA and LB. At each position within the measurement range of 360°, the unambiguous absolute position POS is now obtained from the combination of partial positions xA, xB of the plurality of serial code sequences A, B. The advantage of such encoding is that a decoder device 3 has to decode only the relatively short plurality of serial code sequences A, B and their cyclical continuations, and then the unambiguous position POS can be ascertained over 360° by relatively simple relations from these decoded code sequences A, B. If the decoding is done by means of tables, all that is needed is a plurality of small tables. This requires far fewer table entries than there are absolute positions that can be output.
In
The principle of the position measurement is based on the shifting of two code sequences A, B of different lengths LA and LB, where LA, LB are integral and preferably relatively prime. The maximum length to be decoded, M1max, is obtained if LA differs from LB by 1.
Let the first code sequence A be defined by the bit sequence
A0,A1,A2,A3 . . . ALA-1 of length LA.
Let the second code sequence B be defined by the bit sequence
B0,B1,B2,B3 . . . BLB-1 of length LB.
Here, Ai, Bi∈{0;1}. The angle coding 1 is then produced by the alternation disposition of one bit from the code sequence A and then one bit from the code sequence B:
Because of the different lengths LA, LB of the code sequence A and the code sequence B, the result is a shift between the code sequences A and B. The total encodable length M1max (that is, the length after which the bit pattern repeats) is defined, when LA−LB=1, by
M
1max=2*KGV (LA, LB)=2*LA*LB,
where KGV (LA, LB)=the least common multiple of LA and LB.
According to the invention, angle codings with code sequences of arbitrary length difference LA−LB are also possible. In the case where LA−LB is not equal to 1, however, the maximum codable length M1max is less, and the evaluation algorithm may be more complicated, so that here, only the especially advantageous example in which LA differs from LB by 1 will be described in detail.
For the position measurement, the angle coding 1 is scanned, for instance optically, in that the code elements modulate a beam of light as a function of position, so that at the location of a detector array 2 of a scanning unit, a position-dependent distribution of light occurs that is converted by the detector array 2 into electrical scanning signals w. The detector array 2 is a line sensor, with a succession of detector elements disposed in the measurement direction. The detector elements are embodied such that at least one of the detector elements is unambiguously associated with each of the code elements in each relative position, and thus from each of the code elements, one bit, 0 or 1, can be obtained. To that end, in the case of the optical scanning principle, the code elements are reflective or nonreflective, or opaque or nonopaque, and the reflective code elements are for instance assigned the bit value 1 while the nonflective code elements are assigned the bit value 0. The succession of these bits (bit pattern) within one code sequence A, B, whose number is dependent on the scanning length LL, forms one code word w for each of the two code sequences A, B. The scanning signals, that is, the code words w, are delivered to a decoder device 3, which from each of the code words w of one of the code sequences A, B derives a partial position xA, xB, and from these partial positions xA, xB, then forms an absolute position POS therefrom. When the detector array 2 is displaced relative to the angle coding 1 by the width or length of one code element A, B, one new code word w is generated from each of the code sequences A, B.
For decoding the code words w, the decoding device 3 has two tables TA, TB, that is, table TA for the code sequence A and table TB for the code sequence B. A certain number of code elements is scanned by the detector array 2 to generate the code words w. The number of scanned code elements of the two code sequences A, B is called the scanning length LL and is preferably an even number of code elements or bits. The bit succession (bit pattern) generated by the detector array 2 is decoded into two words w1 and w2, as shown in
w1→TA; w1→TB; w2→TA; w2→TB in order to attain an association:
w1→wA and w1→wB, respectively, and w2→wA and w2→wB, respectively.
In the search, the following possibilities exist:
In these:
In this first exemplary embodiment, the two code sequences A, B are each disposed NA and NB times, respectively, within 360°, and NA and NB are integers. Each code sequence A, B is adjoined by the beginning of the same code sequence A, B again, so that at each seam of successive code sequences A, B, this code sequence A, B is cyclically continued.
The flow chart shown in
With the angle coding 1 shown as an example in
length of the code sequence A: LA=5
code sequence A: A0A1A2A3A4
length of the code sequence B: LB=4
code sequence B: B0B1B2B3
scanning length: LL=8
M1max=2*LA*LB=40
KGV (LA, LB)=20
NA=KGV (LA, LB)/LA=4
NB=KGV (LA, LB)/LB=5
The table TA for code sequence A:
The table TB for code sequence B:
These two tables TA, TB together contain 9 entries, and with these 9 entries, 40 different positions can be decoded unambiguously, specifically over 360° in angular steps corresponding to the width of one code element. The prerequisite for such decoding is that each of the two code sequences A, B is disposed in complete form multiple times over 360°; that is, at the end of one code sequence A, B, that code sequence A, B begins again and is disposed completely until the beginning of the next code sequence A, B.
In
If the position measurement value ascertained from the two code sequences A, B is to be resolved further, then the above-described angle coding 1 can be expanded by one further track or a plurality of further tracks with absolute codes or with incremental graduations.
It can also be advantageous, from the absolute angle coding 1, additionally to derive a periodic incremental signal.
One example of an advantageous arrangement of an additional incremental track 4 is shown in
For many applications, however, an angle coding is now wanted which defines M2=2k different positions over one revolution, that is, within 360°. Below, in conjunction with
Let there now also be a detector array 20 with a scanning length LL, with LL being an even number. For this system, there are now two ranges:
First Range: Positions 0 . . . to (M2-LL):
This is the range in which for the angle coding 10, the range V adopted from the angle coding 1 is present, and in which the total position POS can be calculated by means of the algorithms R1 and R2 of the first exemplary embodiment.
Second Range: Positions (M2-LL+1) . . . to(M2-1):
By joining together the range V taken over, a new joint ST is obtained, at which at least one of the code sequences A, B and the cyclical continuation of at least one of the code sequences (in this case the code sequence A) is interrupted. This range over this joint ST dictates special treatment with at least one additional value set for decoding bit patterns, that is, a special table, since the bit patterns generated in the scanning over this joint ST are not present in the tables TA and/or TB.
Further explanations will be made below in terms of one example:
Number of bits required per circumference: M2=32=25
Scanning length: LL=8
LA=5
LB=4
The full angle coding 1 has a length=2*LA*LB=40 positions, and to create the requisite angle coding 10 it is cut off or reduced to a length M2 of 32 positions. In
The code sequences A and B are defined by the following:
Code sequence A: A0A1A2A3A4
Code sequence B: B0B1B2B3
The tables TA and TB are then defined as follows:
Now, what happens to the code sequences A and B at the new joint ST?
First, one can see that the code sequence B was cut off precisely at its cyclical continuation (that is, between B3 and B0). Thus if the detector array 20 moves past the joint ST, no problems arise with the code sequence B (“B grid”) and with the table TB: the bit B3 is followed again by the bit B0. The code sequence B and its cyclical continuation are accordingly not interrupted.
Conversely, the code sequence A is interrupted at the joint ST. For the code sequence A, as the detector array 20 passes over the joint ST, new bit patterns now occur, which do not occur in the table TA. The bit A0 is in fact not followed by A1 but rather by A0 again and only then by A1. The new positions of the code sequence A at the joint ST can be summarized in a new table TSTA (“ST” stands for joint; “A” stands for code sequence A).
POSST can now be ascertained by means of the tables TB and TSTA. The associated algorithms R3 and R4 are shown in
Another possibility for ascertaining the positions POSST at the joint ST is to look at the successive bit patterns in their entirety and not to divide them at the joint ST into the two code sequences A and B. To that end, the (LL-1)=7 bit patterns of the joint ST are written into a table TST, in which the word length in this table TST is now LL, or in the example, 8.
Finally, for the above example, one code in the associated tables will also be given:
Code sequence A: 01111
Code sequence B: 0100
Angle coding 1 (length 40 bits):
0011101010011010101100101011100010111010
Angle coding 10 (32-bit excerpt V):
00111010100110101011001010111000
In the example, one can see that it is especially advantageous if one of the code sequence lengths (LA or LB) is already a power of two. In the second example above, the total length is M2=32 and LB=4. The advantage here is then that only one of the code sequences A or B (specifically only code sequence A) has to be “cut off”. In the other code sequence (in this case the code sequence B), all the code sequences as well as their cyclical continuations are kept complete in their entirety over 360°.
For the number of code elements within 360°, the following then applies:
M
2=2*(KGV(LA, LB)−E*LA),
which means that only one of the code sequences B within 360° is incomplete, but all the code sequences A are plotted completely and are cyclically continued, or
M
2=2*(KGV(LA, LB)−E*LB),
which means that only one of the code sequences A is incomplete, but all the code sequences A are plotted completely and are cyclically continued, and E is an integer>0.
In
The decoder device 3, 30 is advantageously embodied as an ASIC, and the required tables T, that is, the value sets required, are each hard-wired in the production of the ASIC. Alternatively, the tables T or value sets could instead be stored in memory in read-only memories, such as EPROMs.
In the second angle measuring device, a mixed form of memories is especially advantageous; on the one hand, fast access to the memory data, that is, the value sets, is attained, and on the other, rapid adaptation to the intended use is made possible. This is attained on the one hand because the value set TA, TB for the code sequences A and B and their cyclical continuations is embodied in hard-wired form, and in addition, a memory that is also programmable after the mask production is provided, and the individually required value set TST, TSTA of the joint ST is stored in this programmable memory, in other words, in the tables TST and TSTA, respectively. The programmable memory is a read-only memory and is embodied for instance as an EPROM.
As shown schematically in
The invention can be especially advantageously used on the optical scanning principle, since an optically scannable angle coding 1, 10 with a maximum number of possible different positions over 360° (one revolution of the angle coding 1, 10) can be produced replicably, and thus especially high-resolution position measurement is made possible. The detector array 2, 20 and the decoder device 3, 30 can be accommodated jointly in an opto-ASIC.
However, the invention is not limited to the optical scanning principle, but can also be used with magnetic, inductive and capacitive scanning principles.
Number | Date | Country | Kind |
---|---|---|---|
10 2008 053 985.6 | Oct 2008 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP09/07041 | 10/1/2009 | WO | 00 | 4/28/2011 |