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, correct position information can be output immediately, even after the energy supply has been interrupted.
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 by a single code element, a new code word is already formed, and over the entire range to be detected absolutely, a succession of different code words is available. This kind of serial or sequential code is often also 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 and a second code sequence 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 code sequences include different angle sectors. 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 is that over 360°, only a number of positions that in each case is an integral multiple of the length of the two code sequences can be encoded.
It is therefore the object of the invention to disclose an angle coding with which an arbitrary number of 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 that are disposed within 360° and that in combination unambiguously absolutely encode the 360°, of which
a first code sequence, comprising a succession of code elements, includes a first angle sector and is disposed in multiple succession and is also cyclically continued multiple times;
a second code sequence, comprising a succession of code elements, includes a second angle sector and is disposed in multiple succession and is also cyclically continued multiple times, wherein
the first angle sector is not equal to the second angle sector, and at least one of the code sequences is embodied only partially within the 360° and with the succeeding code sequence forms a joint.
In other words, at least one of the two code sequences is plotted only partly once within 360°, and this part is connected to the next code sequence. At this connection point, this code sequence is interrupted, since a joint region occurs here, at which in the scanning a new succession of code elements, that is, new bit patterns or words, occurs. “New bit patterns” means that these bit patterns are not a component of the code sequences or of their cyclical continuations.
The code sequences are disposed in circular fashion on a disk or over the circumference of a drum.
Each code element is a respective region of the angle coding from which a bit can be derived.
Code sequence means a succession 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 angle coding embodied according to the invention now makes it possible in particular to encode 2k different positions over 360°, where preferably k is greater than 4 and is an integer.
The code elements of the first code sequence and of the second code sequence each include identical angle sectors. On this condition, the size of an angle sector can be defined especially simply by the number of code elements.
The maximum number of different positions is obtained if the length of the first code sequence differs by 1 from the length of the second code sequence. The length of the first code sequence is the number of code elements of the first code sequence, and the length of the second code sequence is the number of code elements of the second code sequence.
Relatively simple evaluation of the words (bit patterns) obtained by scanning the code sequences results if the first code sequence and the second code sequence are disposed in different tracks.
With the disposition in two tracks, in both tracks over 360° each, the same number
M1<KGV (LA, LB) of code elements is disposed, in which
KGV (LA, LB)=least common multiple of LA and LB
LA=integral number of code elements of the first code sequence
LB=integral number of code elements of the second code sequence.
Over the 360°, more different positions can be encoded if the first code sequence and the second code sequence are disposed in the same track, in that one part of the first code sequence and one part of the second code sequence are disposed in alternation. In particular, a code element of the first code sequence is followed by a single code element of the second code sequence in each case, and a code element of the second code sequence is followed in each case by a single code element of the first code sequence.
With the disposition in the same track, in this track over 360° a number
M2<2*KGV (LA, LB) of code elements is disposed, in which
KGV (LA, LB)=least common multiple of LA and LB
LA=integral number of code elements of the first code sequence
LB=integral number of code elements of the second code sequence.
If the position value ascertained by the two code sequences A, B is to be resolved further, at least one incremental track can be disposed concentrically with the absolute angle coding. The graduation period of this incremental track is for instance a fraction of the width of one code element of the code sequences A, B.
An angle measuring device now has a detector array for scanning the first and second code sequences of the angle coding and for generating code words, and also has a decoder device for decoding the code words and for generating position values.
The decoder device has a first value set for decoding a first succession of code words, which each occur upon the scanning of one of the first code sequences as well as its cyclical continuation, and a second value set for decoding a second succession of code words, which each occur upon the scanning of one of the second code sequences as well as its cyclical continuation, and the decoder device has a further value set, which is suitable for decoding the joint of the first code sequence and/or of the second code sequence.
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 angle sectors 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, only several small tables are required. This requires far fewer table entries than the number of absolute positions that can be output.
In
The principle of position measurement is based on the shifting of two code sequences A, B of different sizes of the angle sector LA and LB including them. The size of the angle sectors LA and LB differ only slightly from one another for the purpose, so that the angle sector LA is not an integral multiple of the angle sector LB.
If, as is shown in the example, the angle sectors of the code elements A0 through A4 are equal to the angle sectors of the code elements B0 through B3, then for simplified further explanation, the size of the angle sectors of the code sequences A, B can be represented by the number of code elements. Thus LA and LB, as the number of code elements, are integers and are preferably relatively prime. The maximum length M1max to be decoded occurs when LA differs by 1 from LB.
The first code sequence A is defined by the bit sequence
A0, A1, A2, A3 . . . ALA-1 of length LA.
The second code sequence B is defined by the bit sequence
B0, B1, B2, B3 . . . BLB-1 of length LB.
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
=KGV(LA,LB)=LA*LB,
where KGV (LA, LB)=the least common multiple of LA and LB.
For many applications, an angle coding 1 that over one revolution, that is, within 360°, defines M1=2k different positions is desirable. For forming this angle coding 1, at least one of the code sequences A, B within the 360° is therefore not embodied completely, in order to define the desired M1=2k different positions.
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 device, 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 nonreflective 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, x13, 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.
The detector array 2 has one detector 2A, 2B each for scanning a respective one of the code sequences A, B, each with a scanning length LL1. For this angle coding there are now two ranges:
This is the range in which all the code sequences A, B are embodied completely and are present in cyclically continued form.
The result is a new joint ST, at which 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 separate treatment in the decoding, with at least one separate table, because 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: M1=16=24
Scanning length: LL1=4
The full angle coding 1 has a length=LA*LB=20 positions, and for creating the required angle coding 1 it is cut or reduced to a length M1 of 16 positions.
The code sequences A and B are defined by the following:
Code sequence A: A0A1A2A3A4
Code sequence B: B0B1B2B3
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, since at the joint, one of the code sequences A is cut off and is not plotted completely. For the code sequence A, as the detector array 2A 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 Al. The new positions of the code sequence A at the joint ST are summarized in a new table TSTA (“ST” stands for joint; “A” stands for code sequence A). This additional table TSTA makes the value set for decoding the words WSTA, generated by the detector 2A at the abutment ST available. The number of entries is 3 (LL1−1) in this example.
The position POS is now ascertained, outside the abutment ST, from the partial positions xA and xB and, on the pass over the abutment ST, from the partial positions xA and XSTA.
The invention will now be still further explained on the basis of a concrete angle coding:
The code sequences A and B are defined by the following:
Code sequence A: 01111
Code sequence B: 0100
Maximum encodable length=KGV(5;4)=20
Complete track with the code sequence A:
01111011110111101111
Complete track with the code sequence B:
01000100010001000100
Track of code sequence A reduced to 16 positions:
0111101111011110
Track of code sequence B reduced to 16 positions:
0100010001000100
Scanning length LL=4 (for each of the two tracks)
A flow chart and algorithms for ascertaining the position POS from read-out bit patterns is shown 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 is especially advantageous, from the absolute angle coding 1, to derive a periodic incremental signal which has a period corresponding to the width (angle sector) or an integral multiple of the width of one code element.
Additionally, it is advantageous to dispose an incremental track 4 parallel, that is, concentrically, to the tracks having the code sequences A, B. The graduation period of this incremental track 4 is advantageously a fraction of the width of one code element of the code sequences A, B. Within one angle sector of one code element, a number greater than or equal to 1 of incremental graduation periods is advantageously disposed. This dimensioning of the incremental track 4 makes it possible to further subdivide the width of one code element. To that end, the incremental graduation 4 is scanned by means of a further detector unit, not shown, which in a known manner generates a plurality of incremental signals phase-offset from one another. These incremental signals are delivered to an interpolator, which further subdivides the incremental signals and outputs an absolute partial position within the width of one code element. The absolute position POS obtained from the absolute angle coding 1 and the partial position obtained from the incremental track 4 are delivered to a combination unit, which from them forms a total position, which over the measurement range of 360° is absolute and thus unambiguous and has a resolution corresponding to the interpolation step ascertained from the incremental graduation. For example, 211 code elements and one incremental graduation with 215 incremental periods are disposed over 360°. In that case, within one code element there are 16 incremental periods.
A second exemplary embodiment of the invention will now be described in conjunction with
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 M2max (that is, the length after which the bit pattern repeats) is defined, when LA−LB=1, by
M
2max=2*KGV(LA,LB)=2*LA*LB,
where KGV (LA, LB)=the least common multiple of LA and LB.
Once again, for forming the angle coding 10, at least one of the code sequences A, B is embodied as not complete within the 360°, in order for instance to define the required M2=2k different positions. Once again, the angle coding 10 is defined by the lengths LA and LB of the code sequences A and B, where LA is not equal to LB, and LA and LB are integers. Since the code elements all include the same angle sector, the lengths LA and LB are again defined as a number of code elements of the corresponding code sequences A, B.
A detector array 20 with a scanning length LL2 will now also be assumed, with LL2 being an even number. For this system, there are now two ranges:
First Range: Positions 0 . . . to (M2−LL2):
This is the range in which for the angle coding 10, only complete code sequences A and B are present over 360°. The total position POS is calculated here by means of the algorithms R1 and R2 in accordance with
At the joint ST, at least one of the code sequences A, B is cut off, and thus 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 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: LL2=8
The full angle coding 1 has a length
M
2max=2*LA*LB
In the example, it thus has 40 positions, and to create the requisite angle coding 10 it is cut off or reduced to a length M2 of 32 positions.
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, since 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).
The algorithms R1, R2, R3 and R4 for ascertaining the position POS 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. To that end, the (LL2−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 LL2, 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
Complete angle coding (length, 40 bits):
0011101010011010101100101011100010111010
Angle coding 10 (32-bit excerpt from the complete angle coding with 40 bits):
00111010100110101011001010111000
From both examples, 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°, for the second example, the following then applies:
M
2=2*(KGV(LA,LB)−E*LA),
which means that only one of the code sequences B is incomplete, or
M
2=2*(KGV(LA,LB)−E*LB),
which means that only one of the code sequences A is incomplete,
and E is an integer >0.
In the example explained above with LA=5 and LB=4 and E=1, one of the code sequences A is incomplete, and M2=32.
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 angle measuring devices embodied according to the invention, 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 abutment 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.
The tables TST and TSTA can be fixedly defined or in other words stored in memory during the production of the angle measuring device. Alternatively, the tables TST and TSTA can be generated automatically and stored in memory by means of a specified formation rule, or they are generated by means of a calibration run, in which one position is associated with each scanned bit pattern (word) and stored in memory.
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 986.4 | Oct 2008 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2009/007043 | 10/1/2009 | WO | 00 | 4/28/2011 |