Next Article in Journal
Analysis and Modeling Methodologies for Heat Exchanges of Deep-Sea In Situ Spectroscopy Detection System Based on ROV
Next Article in Special Issue
A Feasibility Study on Timber Moisture Monitoring Using Piezoceramic Transducer-Enabled Active Sensing
Previous Article in Journal
AOA-Based Three-Dimensional Multi-Target Localization in Industrial WSNs for LOS Conditions
Previous Article in Special Issue
Distributed Deformation Monitoring for a Single-Cell Box Girder Based on Distributed Long-Gage Fiber Bragg Grating Sensors
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Absolute Position Coding Method for Angular Sensor—Single-Track Gray Codes

1
School of Mechanical and Electrical Engineering, Guangzhou University, Guangzhou 510006, China
2
School of Mechanical, Electronic and Control Engineering, Beijing Jiaotong University, Beijing 100044, China
3
State Key Laboratory of Mechanics and Control of Mechanical Structures, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China
*
Author to whom correspondence should be addressed.
Sensors 2018, 18(8), 2728; https://doi.org/10.3390/s18082728
Submission received: 29 June 2018 / Revised: 16 August 2018 / Accepted: 17 August 2018 / Published: 19 August 2018
(This article belongs to the Special Issue Smart Sensors and Smart Structures)

Abstract

:
Single-track Gray codes (STGCs) is a type of absolute position coding method for novel angular sensors, because it has single-track property over traditional Gray codes and mono-difference over linear feedback shift register codes. However, given that the coding theory of STGCs is incomplete, STGC construction is still a challenging task even though it has been defined for more than 20 years. Published coding theories and results on STGCs are about two types of STGC, namely, necklace and self-dual necklace ordering, which are collectively called as k-spaced head STGCs. To find a new code, three constraints on generating sequences are proposed to accelerate the searching algorithm, and the complete searching result of length-6 STGCs is initially obtained. Among the entire 132 length-6 STGCs, two novel types of STGCs with non-k-spaced heads are found, and the basic structures of these codes with the general length n are proposed and defined as twin-necklace and triplet-necklace ordering STGCs. Furthermore, d-plet-necklace ordering STGC, which unifies all the known STGCs by changing the value of d, is also defined. Finally, a single-track absolute encoder prototype is designed to prove that STGCs are as convenient as the traditional position coding methods.

1. Introduction

Absolute angular measurement is the critical part for the accuracy of many precision control systems, such as the positioning of aerospace cameras, star positioning in astronomical observation, and precision weapon positioning in the national defense area [1,2,3,4,5]. The most widely used angular sensor is the absolute rotary encoder in which the coding disc carries all the unique angular information for each position in a magnetic or an optical way that can be recovered immediately after a power outage [6,7]. The majority of the existing coding discs are encoded by reflected Gray codes [8,9,10,11], which were originally designed to prevent spurious output from the pulse code transmission because any two adjacent codewords differ in exactly one bit. This unique property of Gray code, which enhances the reliability of absolute position coding, is called mono-difference in this study. A coding disc pattern of length-4 optical absolute encoder is shown in Figure 1, where every codeword etched in radial direction uniquely identifies one angular position in the revolution, and the mono-difference prevents the quantization errors caused by the inconsistent performance of the reading heads. Therefore, 16 different positions can be distinguished by a length-4 reflected Gray code. However, every concentric track on the coding disc denotes one bit of Gray code; thus, the only drawback of any devices making use of such code is the increasing in diameter required by high resolution.
One widely accepted solution to this drawback is the linear feedback shift register (LFSR) sequence [12], which is also called maximal-length sequence, because its codewords are arranged along the circumferential direction, such that all the position information can be encoded within only one track [13,14]. Unfortunately, LFSR sequences do not generally possess the mono-difference required for error resilience as Gray codes do; thus, the additional synchronization track and highly complicated reading system are inevitable for any devices that use these sequences [15].
Suitable coding methods for absolute angular position which satisfy mono-difference with few code tracks had been studied for years until two patents presented some coding schemes where only one track is adequate to encode all codeword information [16,17]. In 1996, Hiltgen, Paterson, and Brandestini formally defined this type of code as single-track Gray code (STGC) where the single-track property is added to the Gray code, such that every column of the codeword matrix is a cyclic shift of the first one [18]. In the field of absolute position sensing and angular measurement, STGC has “single-track” advantage over conventional Gray codes and “mono-difference” advantage over LFSR sequences, such that it becomes a suitable alternative to other coding methods. Moreover, STGCs reach the limitation of the miniaturization for encoders in the aspect of the absolute position coding theory, where only one coding track is adequate for any resolution [19,20]. One disc pattern encoded by a length-11 period-2046 STGC is shown in Figure 2, where 11 reading heads are uniformly distributed around the single track on the reading disc. Two types of STGC, necklace and self-dual necklace ordering, have been intensively studied [21]. Two iterative constructions for these types were presented in [22]. A survey of the main results on these two types of STGC can be found in [23].
STGC construction remains a challenge although it has been defined for more than 20 years [24]. We only know two structures of STGCs, namely, necklace and self-dual necklace ordering, which are collectively known as k-spaced head STGCs. The existing problem of the non-k-spaced head STGCs has been proposed as an interesting research topic in a survey [23], which is still unsolved. In the present study, we prove the existence of non-k-spaced head STGCs using two new types of code found in the complete searching of length-6 STGCs. On the basis of these codes, two new structures are proposed for length-n STGCs, which are defined as twin-necklace and triplet-necklace ordering. The structure of the d-plet-necklace ordering for length-n STGCs, which unifies all the known types of STGC, is also presented in the present work. Finally, an absolute encoder prototype is proposed using STGCs to promote the use of this code.

2. STGCs with k-Spaced Heads

Definition 1.
[STGC]: A length n period P binary code:
[ w 0 0 , w 0 1 , , w 0 n 1 w 1 0 , w 1 1 , , w 1 n 1 w i 0 , w i 1 , , w i n 1 w P 1 0 , w P 1 1 , , w P 1 n 1 ]
is an STGC if and only if it fulfills the following three properties:
(1) 
Single-track property: Each column W j is the cyclic shift of the first one W 0 , i.e., W j = E k j W 0 , where 0 j < n and E k j denotes k j times cyclic shifting, where k 0 = 0 .
(2) 
Mono-difference: Any two adjacent codewords, denoted as W i and W i + 1 , differ in only one bit which holds for the first and the last codewords as well.
(3) 
Distinctness: Every codeword is distinct from others.
Definition 2.
[head position, head interval]: In order to represent all the equivalent STGCs obtained by rearranging the columns, we define head position of a STGC, HP, as the ascending order of [ k 0 , k 1 , , k n 1 ] :
H P = ascending _ order ( [ k 0 , k 1 , , k n 1 ] ) = [ p 0 , p 1 , , p n 1 ] ,
and the sequence composed of the differences of every adjacent elements in head position is defined as head interval, HI:
H I = [ p 1 p 0 , p 2 p 1 , , p 0 p n 1 ] = [ h 0 , h 1 , , h n 1 ] ,
where p 0 p n 1 is reduced modulo P.
Definition 3.
[section, generating sequence]: We defined a section as a maximal subsequence of consecutive “1” s or consecutive “0” s. Then we define a generating sequence of W 0 as a sequence of lengths of consecutive sections, assuming that W 0 starts with a section of “1”s.
Therefore, a STGC can be briefly represented by generating sequence and head interval. For example, a length-6 period-12 STGC is shown as follows:
[ 110001111111 000111111111 111111000111 111100011111 011111111100 111111110001 ] T .
The cyclic shifting time for each column is k 0 = 0 , k 1 = 2 , k 2 = 8 , k 3 = 10 , k 4 = 4 , k 5 = 6 , and according to Definition 2 the head position is H P = [ 0 , 2 , 4 , 6 , 8 , 10 ] , so the head interval is H P = [ 2 , 2 , 2 , 2 , 2 , 2 ] . A brief description of this STGC is the generating sequence [9, 3] and the head interval [2, 2, 2, 2, 2, 2].
Necklace and self-dual necklace ordering STGCs are the only two known types of STGC since it was defined by Etzion and Paterson in 1996, whose construction was based on necklace and self-dual necklace sets in combinatorial theory. These two types of STGC have their reading heads evenly distributed. They are also called k-spaced heads STGCs.

2.1. Necklace Ordering STGCs

Definition 4.
[necklace]: Let a length n codeword be W = w 0 w 1 w n 1 , and the cyclic shift of W can be represented as, E l W = w l w l + 1 w n 1 w 0 w 1 w l 1 , where E is a cyclic shift operator. The cyclic order of a length n codeword W is defined as the minimum period under cyclic shift, i.e., so a necklace is defined as the codeword set:
{ W , E 1 W , E 2 W , , E o ( W ) 1 W } ,
if o ( W ) = n , the set is called full-order necklace, otherwise, it is called non-full-order necklace [25,26,27].
For a length-6 codeword 010001, the necklace set is {010001, 100010, 000101, 001010, 010100, 101000}. A non-full-order necklace If the number of the elements in one necklace set equals the length of its codeword, then the necklace set {001001, 010010, 100100} can be obtained from codeword 001001.
Theorem 1.
[necklace ordering STGC]: Let S 0 , S 1 , , S r 1 be the seed codes which are from r different full-order length n necklaces, and any two adjacent seed codes differ in exactly one bit, including S r 1 and E l S 0 with an integer l relatively prime to n, then the following codeword list form a length n period P = n r STGC:
S 0 , S 1 , , S r 1 , E l S 0 , E l S 1 , , E l S r 1 , E 2 l S 0 , E 2 l S 1 , , E 2 l S r 1 , E ( n 1 ) l S 0 , E ( n 1 ) l S 1 , , E ( n 1 ) l S r 1 ,
which is called necklace ordering STGC.
For example, two codes, 100111 and 101111, are selected as the seed codes according to the two conditions above, and a length-6 period-12 necklace ordering STGC can be constructed when the codewords of the two necklace sets are alternatively arranged as follows:
[ 110001111111 000111111111 011111111100 111111110001 111111000111 111100011111 ] T .
Therefore, the appropriate seed codes must be found to construct necklace ordering STGCs; for a short length, a Karnaugh map is convenient for selecting the seed codes [28], whereas a computer searching program is needed for lengths that are higher than 12.
The brief description of this STGC is also with the generating sequence [9, 3] and the head interval [2, 2, 2, 2, 2, 2], so these two STGCs are the same.
The structure is based on necklace sets; thus, the head interval of necklace ordering STGCs is consistently perfectly uniform. Figure 3 shows the coding pattern and reading head distribution of a length-6 period-36 necklace ordering STGC with generating sequence [16, 9, 2, 2, 3, 4] and head interval [6, 6, 6, 6, 6, 6].

2.2. Self-Dual Necklace Ordering STGCs

A self-dual word W is a word for which its complement is the cyclic shift of W. So let W = S S ¯ be a length 2n self-dual word, where S ¯ denotes the length n word obtained by complementing every bit of S. The complementary cyclic shift operator E ¯ is defined as E ¯ S = s 1 , s 2 , , s n 1 , s ¯ 0 , where s ¯ 0 is the binary complement of s 0 . The complementary cyclic order of a length n codeword S is defined as o ¯ ( S ) = min { i | E ¯ i S = S , 1 i 2 n } .
It is obvious that a length 2n self-dual codeword is only determined by the length n word S , called base word. The self-dual necklace can be defined as follows.
Definition 5.
[self-dual necklace]: Let a length 2n self-dual codeword be W = S S ¯ = s 0 , , s n 1 , s ¯ 0 , , s ¯ n 1 . A self-dual necklace is defined as the codeword set { W , E W , E 2 W , , E o ( W ) 1 W } , and for simplicity a base word set { S , E ¯ S , E ¯ 2 S , , E ¯ o ¯ ( S ) 1 S } is also used as the representative of a self-dual necklace. If o ( W ) = 2 n or o ¯ ( S ) = 2 n , the set is called full-order self-dual necklace, otherwise, it is called non-full-order self-dual necklace [29,30,31].
Another classic type of STGC is the self-dual necklace ordering STGCs, which has a structure similar to necklace ordering STGCs.
Theorem 2.
[self-dual necklace ordering STGCs]: Let S 0 , S 1 , , S r 1 be the seed code, which consists of r base words from r different full-order length 2n self-dual necklaces, and any two adjacent seed codes differ only in one bit which also holds for S r 1 and E ¯ l S 0 with an integer l relatively prime to 2n, then the following word list form a length n period P = 2 n r single-track Gray code:
S 0 , S 1 , , S r 1 , E ¯ l S 0 , E ¯ l S 1 , , E ¯ l S r 1 , E ¯ 2 l S 0 , E ¯ 2 l S 1 , , E ¯ 2 l S r 1 , E ¯ ( n 1 ) l S 0 , E ¯ ( n 1 ) l S 1 , , E ¯ ( n 1 ) l S r 1 , E ¯ ( 2 n 1 ) l S 0 , E ¯ ( 2 n 1 ) l S 1 , , E ¯ ( 2 n 1 ) l S r 1 ,
which is called self-dual necklace ordering STGC.
The only difference of self-dual necklace ordering STGCs from necklace ordering STGCs is the seed codes should be self-dual words. Since the last n bits of a length 2n self-dual word are redundant, self-dual necklace ordering STGCs are the special case of necklace ordering after deleting these redundant information. Therefore, the reading heads are distributed along the half of the coding disc (the reading heads on the other half are deleted), and the interval is also evenly distributed. Figure 4 shows the disc pattern and reading head distribution of a length-6 period-60 self-dual necklace ordering STGC with generating sequence [13, 3, 6, 2, 6, 13, 3, 6, 2, 6] and head interval [5, 5, 5, 5, 35].
The generating sequence of a self-dual necklace ordering STGC is also self-dual; thus, each reading head has two positions where it can be arranged, which are 180° apart. Therefore, five new head intervals [5, 5, 5, 10, 25], [5, 5, 10, 5, 20, 15], [5, 5, 15, 20, 5, 10], [5, 10, 10, 15, 10, 10], and [5, 15, 5, 15, 5, 15], which can also construct STGCs with the same generating sequence shown in Figure 4, are available. These transformed STGCs from self-dual necklace ordering are the only published codes with non-k-spaced heads.

3. STGCs with Non-k-Spaced Head

3.1. Complete Solution of Length-6 STGCs

Necklace and self-dual necklace ordering are the only known structures of STGCs. The main open problem for STGCs was proposed by Etzion regarding the presence of STGCs with non-k-spaced heads except the transformed codes from self-dual necklace orderings [21,22,23]. A computer program was used in searching the complete solution of length-n STGCs based only on the definition of STGCs to find new words.
STGCs are rare among binary codes. For length-5 period-30 codes, 2 30 sequences can possibly be the generating sequences; however, only 13 sequences generate STGCs. In view of complex computation time, Yan and Wang proposed a speed-up algorithm to obtain the complete solution for length-5 STGCs [32]. However, this algorithm is insufficient for length-6 codes. Thus, we propose three constraints to identify the impossible generating sequences rapidly and finally find the complete solution for length-6 STGCs.

3.1.1. Constraints for the Generating Sequence of STGCs

● Constraint 1: Number of the sections of the generating sequence:
For length-n period-P STGCs, we assume the presence of m sections in the generating sequence; thus, m junctions of two adjacent sections exist. Each junction causes mono-difference of two adjacent words, and a total of n × m junctions exists in the codeword matrix. Since P words must have mono-difference, n × m junctions equal to P; thus, the number of sections m must be P/n. Moreover, if the beginning and ending sections consist of the same component, then they are regarded as one section; thus, the number of the sections of the generating sequence, m, must be even.
● Constraint 2: Minimum section length of the generating sequence:
For length-n period-P STGCs, the minimum section length of its generating sequence is at least 2. Having a section length less than 2 and, subsequently, two equal codewords in the matrix is a contradiction of distinctness.
● Constraint 3: Maximum section length of the generating sequence:
For length-n period-P STGCs, the maximum section length of its generating sequence is at least n. P/n sections exist in the generating sequence; thus, if the maximum section length is less than n, then the length of the generating sequence must be less than P, which is impossible.

3.1.2. Result of Length-6 STGCs

A month is required to complete the searching of the 132 length-6 STGCs using a personal computer, where some new non-k-spaced head codes are found, as shown in Table 1. The complete results of length-6 STGCs can be found in Appendix B.

3.2. Twin-Necklace Ordering STGCs

The head intervals of the new STGCs are periodically circulating, and some of the period is 2. We define these codes as twin-necklace ordering STGCs, and the structure of these new codes will be introduced.
Definition 6.
[twin-necklace]: Let a length n codeword W be a combination of two length n/2 sub-words, W = W 1 W 2 . A twin-necklace set consists of the following codewords
{ W 1 W 2 , E W 1 E W 2 , E 2 W 1 E 2 W 2 , , E lcm [ o ( W 1 ) , o ( W 2 ) ] W 1 E lcm [ o ( W 1 ) , o ( W 2 ) ] W 2 } ,
where l cm denotes the least common multiple and o ( W 1 ) = min { i | E i W 1 = W 1 , 1 i n / 2 } . If the number of the elements in one length n twin-necklace set is n/2, the set is called full-order twin-necklace.
For example, the twin-necklace set of a length-6 word 011001 is {011001, 110010, 101100}, which is obtained by cyclic shifting the first half word 011 and the second half 001 independently.
Theorem 3.
[twin-necklace ordering STGCs]: Let S 0 S t , S 1 S t + 1 , , S r t E l S 0 , , S r 1 E l S t 1 be the r seed codes which are from r different length n full-order twin-necklaces. The last n/2 columns of the seed codes [ S t , S t + 1 , , S r 1 , E l S 0 , , E l S t 1 ] T is the t time cyclic shift of the first n/2 columns [ S 0 , S 1 , , S r 1 ] T , where 1 t r / 2 1 . Any two adjacent seed codes differ only in one bit which also holds for S r 1 E l S t 1 and E l S 0 E l S t with l relatively prime to n/2, then the word list:
S 0 S t , S 1 S t + 1 , , S r t E l S 0 , , S r 1 E l S t 1 , E l S 0 E l S t , E l S 1 E l S t + 1 , , E l S r t E 2 l S 0 , , E l S r 1 E 2 l S t 1 , E ( n / 2 1 ) l S 0 E ( n / 2 1 ) l S t , E ( n / 2 1 ) l S 1 E ( n / 2 1 ) l S t + 1 , , E ( n / 2 1 ) l S r t S 0 , , E ( n / 2 1 ) l S r 1 S t 1 ,
forms a length n period P = n r / 2 STGC which is called a twin-necklace ordering STGC.
The proof of Theorem 3 can be found in Appendix A.
A computer program is needed to find the suitable seed codes that satisfy the properties in Theorem 3. For example, for constructing a length-6 period-24 twin-necklace ordering STGC, we select eight length-3 sub-words 001, 001, 000, 000, 001, 001, 011, 011 as the first three columns of the seed codes. We choose t = 3 and l = 1 , so the seed codes are:
[ 00000000 00000011 11001111 00000000 00011110 01111000 ] T ,
which are from eight different twin-necklace sets and satisfy the mono-difference, so using the structure in Theorem 4 to construct all the codewords, a twin-necklace ordering STGC can be obtained. The codeword matrix is shown as follows:
[ 000000000000001111001111 000000111100111100000000 110011110000000000000011 000000000001111001111000 000111100111100000000000 011110000000000000011110 ] T ,
where the generating sequence is [14, 4, 2, 4] and the cyclic shifting times are k 0 = 0 , k 1 = 8 , k 2 = 16 , k 3 = 3 , k 4 = 11 , k 5 = 19 , so the head position is [ 0 , 3 , 8 , 11 , 16 , 19 ] , and the head interval is [3, 5, 3, 5, 3, 5].
The head interval of twin-necklace ordering STGCs is different from any known word. The structure of a length-n twin-necklace ordering STGC can be regarded as a combination of two length-n/2 necklace ordering STGCs. The first length-n/2 necklace ordering leads to n/2 reading heads that are uniformly distributed along the entire encoding disc, and the second length-n/2 necklace ordering leads to another uniformly distributed n/2 reading heads. The second necklace ordering is the shifted equivalent by t of the first one; thus, the two groups of n/2 reading heads are distributed as follows:
[ t , 2 P n t , t , 2 P n t , , t , 2 P n t , ] ,
where the sub-cycle of the head interval is 2.
Twin-necklace orderings are the first non-k-spaced head STGCs, where the periodic head interval is caused by the special structure itself. For example, Figure 5 shows the coding disc and reading head distribution of a length-6 period-48 twin-necklace ordering STGC, where t = 3 , the generating sequence is [14, 4, 6, 12, 2, 4, 2, 4], and the head interval is [3, 13, 3, 13, 3, 13].
The maximum periods of necklace, self-dual necklace and twin-necklace ordering STGCs from length 6 to length 16 are shown in Table 2. The upper bound of period for twin-necklace orderings is not less than necklace orderings and not greater than self-dual necklace orderings:
P max _ nekclace P max _ twin P max _ self - dual ,
and the difference between P max _ twin and P max _ self - dual is obvious when n/2 can be divisible by more factors.

3.3. Triplet-Necklace Ordering STGCs

Another new type of STGC with periodic head interval is found in the complete result of length-6 STGCs with sub-cycle of 3, which are listed in Appendix B Table A4; it is defined as triplet-necklace ordering STGCs because it consists of three length-n/3 necklace ordering.
Definition 7.
[triplet-necklace]: Let a length n codeword W be a combination of three length n/3 sub-words, W = W 1 W 2 W 3 . A triplet-necklace set consists of the following codewords:
{ W 1 W 2 W 3 , E W 1 E W 2 E W 3 , , E o 3 ( W ) W 1 E o 3 ( W ) W 2 E o 3 ( W ) W 3 }
where o 3 ( W ) = lcm [ o ( W 1 ) , o ( W 2 ) , o ( W 3 ) ] , o ( W 1 ) = min { i | E i W 1 = W 1 , 1 i n / 2 } and l cm denotes the least common multiple. If the number of the elements in one length n triplet-necklace set is n/3, the set is called full-order triplet-necklace.
For example, the triplet-necklace set of a length-6 word 011001 is {011001, 100110}, which is obtained by cyclic shifting the three sub-words 01, 10, and 01 independently.
Theorem 4.
[triplet-necklace ordering STGCs]: Let
S 0 S t 1 S t 2 , S 1 S t 1 + 1 S t 2 + 1 , , S r t 2 S t 1 + r t 2 E l S 0 , , S r t 1 E l S 0 E l S t 2 t 1 , , S r 1 E l S t 1 1 E l S t 2 1
be the r seed codes which are from r different length n full-order triplet-necklace sets. The second n/3 columns of the seed codes S t 1 , S t 1 + 1 , , S r 1 , E l S 0 , , E l S t 1 1 is the t1 time cyclic shift of the first n/3 columns S 0 , S 1 , , S r 1 , and the third n/3 columns S t 2 , S t 2 + 1 , , S r 1 , E l S 0 , , E l S t 2 1 is the t2 time cyclic shift of the first n/3 columns, where 1 t 1 < t 2 r / 3 1 . And any two adjacent seed codes differ only in one bit which also holds for S r 1 E l S t 1 1 E l S t 2 1 and E l S 0 E l S t 1 E l S t 2 with l relatively prime to n/3, then the word list:
S 0 S t 1 S t 2 , S 1 S t 1 + 1 S t 2 + 1 , , S r 1 E l S t 1 1 E l S t 2 1 , E l S 0 E l S t 1 E l S t 2 , E l S 1 E l S t 1 + 1 E l S t 2 + 1 , , E l S r 1 E 2 l S t 1 1 E 2 l S t 2 1 , E ( n / 3 1 ) l S 0 E ( n / 3 1 ) l S t 1 E ( n / 3 1 ) l S t 2 , E ( n / 3 1 ) l S 1 E ( n / 3 1 ) l S t 1 + 1 E ( n / 3 1 ) l S t 2 + 1 , , E ( n / 3 1 ) l S r 1 S t 1 1 S t 2 1 ,
forms a length n period P = n r / 3 STGC called triplet-necklace ordering STGC.
The proof of Theorem 4 is analogous to the proof of Theorem 3, which can be found in Appendix A. A computer program is needed to find the suitable seed codes that satisfy the properties in Theorem 4. For example, for a length-6 period-24 triplet-necklace ordering STGCs, we select 12 length-2 sub-words 10, 10, 10, 11, 11, 11, 10, 10, 10, 00, 00, 00 as the seed codes for the first necklace structure. Thus, the first necklace structure is:
[ 111111111000000111000000 000111000000111111111000 ] T .
The numbers of cyclic shift for the second and third necklace structures are t 1 = 2 and t 2 = 4 . Thus, these two necklace structures are:
[ 111111100000011100000011 011100000011111111100000 ] T   and   [ 111110000001110000001111 110000001111111110000001 ] T .
The combination of the first 12 words is the seed codes of the final triplet-necklace ordering, 101011, 101111, 101110, 111110, 111010, 111000, 101000, 100000, 100001, 000001, 000101, 000111. The final codeword matrix with generating sequence of [9, 6, 3, 6] and head interval of [2, 2, 8, 2, 2, 8] is shown as follows:
[ 111111111000000111000000 000111000000111111111000 111111100000011100000011 011100000011111111100000 111110000001110000001111 110000001111111110000001 ] T .
For triplet-necklace ordering STGCs, the reading heads evenly divide the entire coding circle three times. The intervals between the three necklace ordering structures are t 1 and t 2 ; thus, the head interval of a length-n period-P triplet-necklace ordering STGC is:
[ t 1 , t 2 t 1 , 3 P n t 2 , t 1 , t 2 t 1 , 3 P n t 2 , ] ,
where the sub-cycle is 3.
Figure 6 shows the coding disc and reading head distribution of a length-6 period-48 triplet-necklace ordering STGC, where t 1 = 4 , t 2 = 8 , the generating sequence is [12, 6, 5, 2, 5, 5, 2, 11], and the head interval is [4, 4, 16, 4, 4, 16].

3.4. D-Plet-Necklace Ordering STGCs

The most intuitive conjecture is whether quadruplet, quintuplet, or even multiple-birth- necklace ordering STGCs exist based on the discovery of twin and triplet-necklace ordering. Indeed, these conjectural multiple-birth-necklace orderings exist. In this part, the d-plet-necklace ordering STGC is defined, and some new codes of length-8 and -10 are presented for the first time.
Definition 8.
[d-plet-necklace]: For length n codeword W, if n can be divided by an integer d, then W can be regarded as a concatenation of d length n/d sub-words, W = W 0 W 1 W d 1 . Thus, we define a length-n d-plet-necklace set as a combination of d-length n/d necklaces, consisting of the following codewords:
{ W 1 W 2 W d 1 , E W 1 E W 2 E W d 1 , , E o d ( W ) 1 W 1 E o d ( W ) 1 W 2 E o d ( W ) 1 W d 1 } ,
where o d ( W ) = lcm [ o ( W 0 ) , o ( W 1 ) , , o ( W d 1 ) ] , o ( W 1 ) = min { i | E i W 1 = W 1 , 1 i n / 2 } and lcm denote the least common multiple. Similarly, if the number of the elements in the set is n/d, then it is called a full-order d-plet-necklace.
Theorem 5.
[d-plet-necklace ordering STGCs]: Let:
S 0 S t 1 S t d 1 , S 1 S t 1 + 1 S t d 1 + 1 , , S r 1 E l S t 1 1 E l S t d 1 1
be the r seed codes which are from r different length n full-order d-plet-necklace sets. The seed codes can be regarded as d groups, and the ith group consists of n/d codewords, S t i , S t i + 1 , , S r 1 , E l S 0 , , E l S t i 1 which is the ti time cyclic shift of the first n/d columns, where t 0 = 0 and 1 t 1 < t 2 < < t d 1 r / d 1 . And any two adjacent seed codes differ only in one bit which also holds for S r 1 E l S t 1 1 E l S t d 1 1 and E l S 0 E l S t 1 E l S t d 1 with l relatively prime to n/d, then the word list:
S 0 S t 1 S t d 1 , , S r 1 E l S t 1 1 E l S t d 1 1 , E l S 0 E l S t 1 E l S t d 1 , , E l S r 1 E 2 l S t 1 1 E 2 l S t d 1 1 , E ( n / d 1 ) l S 0 E ( n / d 1 ) l S t 1 E ( n / d 1 ) l S t d 1 , , E ( n / d 1 ) l S r 1 S t 1 1 S t d 1 1 ,
form a length n period P = n r / d STGC called d-plet-necklace ordering STGC.
The proof of Theorem 5 is analogous to the proof of Theorem 3, which can be found in Appendix A. The structure of a length-n d-plet-necklace ordering STGC is the combination of d-length n/d necklace orderings. The ith necklace ordering is the t i time cyclic shift of the first one, where i = 1 , 2 , , d 1 . So for a d-plet-necklace ordering STGC, the reading heads evenly divide the entire coding circle for d times. The intervals between the d-plet-necklace ordering structures are t 1 , t 2 , , t d 1 ; thus, the head interval of a length-n period-P d-plet-necklace ordering STGC is:
[ t 1 , t 2 t 1 , , t d 1 t d 2 , d P n t d 1 , t 1 , t 2 t 1 , , t d 1 t d 2 , d P n t d 1 , ] ,
where the sub-cycle of the head interval is d.
A computer program is also needed to find the suitable seed codes that satisfy the properties in Theorem 6. Some new STGCs are found by this d-plet-necklace ordering structure, and examples of 4-plet- and 5-plet-necklace ordering STGCs are listed in Table 3.

4. Reclassification of STGCs

When d = 1 , this d-plet-necklace ordering has the structure of a traditional necklace ordering STGC, and when d = n , it is the traditional self-dual necklace ordering STGC. When d = 2 or d = 3 , the d-plet- necklace ordering STGCs are twin- or triplet-necklace ordering. Therefore, d-plet-necklace ordering STGCs unify all the known STGCs.

5. Absolute Encoder Prototype Using STGCs

The majority of the absolute encoders used in industrial applications are encoded by traditional Gray codes. We design an absolute encoder prototype using STGCs, which has been proven convenient as the traditional Gray codes, to promote the use of STGCs.

5.1. Coding and Slit Discs

A length-8 period-128 necklace ordering STGC is used for the coding disc with generating sequence of [41, 2, 2, 10, 12, 11, 3, 4, 5, 8, 2, 2, 2, 4, 3, 17], as shown as in Figure 7. A slit disc, where eight slits are uniformly distributed along the circle of which the diameter equals to that of the coding disc, is designed to eliminate light interference.
The coding disc is attached to the shaft of the encoder by an ultraviolet-ray-stuck adhesive, which is the only part that rotates with the shaft in the prototype. The slit disc, which is a black film disc with eight uniformly distributed narrow white areas that allow the passing of light, is attached to the encoder body right over the eight reading heads with clearance of 1 mm.
Eight pairs of OL87KLB infrared light-emitting diodes (LEDs) and OTD10KLCG photo-transistors are employed as the reading heads to recover the information on the coding disc. Eight LEDs are surface mounted on a printed circuit board (PCB) as the top part of the encoder, and eight photo-transistors along with the decoding part are surface mounted on another PCB under the slit disc. The output of the photo-transistors is sent to the decoding memory as an input after shaping by a set of Schmidt triggers. From top to bottom, the PCBs of the LEDs and photo-transistors and the coding and slit discs are laid in the prototype, as shown in Figure 8. A photo of the experimental system is shown in Figure 9.

5.2. Decoding

A large memory space rather than decoding circuits is used to decode the codewords of STGCs into traditional Gray codes. An additional function called zero setting makes the operation more convenient in selecting any of the 128 positions as zero position by only pressing a button. This flexible function is urgently desired for various applications to eliminate the inconvenience in locating the zero pulse manually, such as in the traditional position coding methods.
A flash memory, which has 128 times larger storage capacity than the traditional method, is required to store position values that are determined by codeword information and zero position. The address of the flash is the combination of the zero position and real-time codeword. Every time the button is pressed, a new zero position will be locked into a nonvolatile memory FM1110 and sent to be the high 8-bit codeword of the flash address. At the same time, the real-time codeword read by the reading heads is sent to be the low 8-bit of the flash address.
When the low and high 8-bit codewords are identical, the combined 16-bit codeword should be decoded to position “0”. As the shaft rotates forward, the low 8-bit codeword changes to be the consecutive codewords that should be decoded to positions “1”, “2”, “3”, …, “126”, and “127”. All 128 zero positions can be decoded this way, and positions “0”–“127” are decoded into 8-bit reflected Gray codes “00000000”–“01000000” to avoid output coarse error. The unused memory space is filled with codeword “11111111,” which will be used to detect the input mistakes if it is an impossible position value obtained from the flash memory output. All the decoding information is burnt into the flash memory S29GL256N, which is used as a look-up table.

5.3. Error Analysis

The prototype of period-128 single-track absolute encoder is designed with a diameter of 50 mm, and its performance is evaluated by the experiment system shown in Figure 9. An 8192 ppr LFA-500A/501 incremental encoder with error of 0.5′ is used as a benchmark in the experiment system and is driven by a low-speed DC motor together with the prototype.
The outputs of the eight reading heads are transferred to an acquisition card DAQ-2204 at 3000 Hz sampling rate. The outputs of reading heads 1–8 in a complete revolution are shown in Figure 10, where the abscissa denotes the pulses of the incremental encoder, which are 8192 pulses per revolution and 64 pulses for every position.
Every channel has 16 sections with maximum relative error of 0.73% caused by transistor 7 when every section length is recovered. In comparison with the theoretical phase difference between two adjacent channels (1024 pulses), a maximum relative error of 0.96% occurred between transistors 6 and 7.
The final output of the prototype is converted to Binary-Coded Decimal (BCD) code by a display module to show the real-time position value. After the power has been switched on, the shaft of the prototype rotates at a speed of 1 rpm; meanwhile, the LEDs on the display module show the corresponding position values. Then, once the zero-setting button is pressed, the LEDs will immediately show the position values with respect to the new zero position.
As the shaft rotates, the outputs of the prototype and the incremental encoder are acquired by DAQ-2204. The error of a complete rotation is shown in Figure 11. In a complete revolution, the maximum error is 0.35°, which is equivalent to 1/8 of its resolution (360°/128 = 2.82°).
The error shown in Figure 11 is a combination error, which is only affected by the optical, mechanical, and electrical manufacturing processes. Therefore, no matter what type of STGCs is used, the error analysis result will be the same under the same manufacturing and experiment conditions.

6. Discussion and Conclusions

The complete searching result of length-6 STGCs is obtained for the first time. Based on these new codes, twin-necklace ordering, triplet-necklace ordering and d-plet necklace ordering STGCs are defined, which are STGCs with non-k-spaced heads and the periodic head intervals are with sub-cycle lengths of 2, 3 and d, respectively. Moreover, the basic structures of these new STGCs are proposed for the general length n, and d-plet necklace ordering STGC unifies all the known subclasses of STGCs.
These new STGCs with non-k-spaced heads improve the previous theory and results of STGCs, and the prototype have proved that STGCs can easily replace the traditional Gray codes in practical applications. However, since non-full-order sets exist in all kinds of necklace sets, not all the length n binary codes can be the codewords of a length n STGC. Therefore, the maximum period of length-n STGCs is P max < 2 n , and the upper bound on periods of all types STGCs of length-n is the important problem that should be solved from the point of view of further applications.

Author Contributions

Conceptualization, F.Z., H.Z. and J.Z.; Data curation, K.B.; Formal analysis, K.B.; Funding acquisition, F.Z. and J.Z.; Investigation, H.Z.; Methodology, F.Z.; Project administration, J.Z.; Software, P.L.; Writing—original draft, F.Z.; Writing—review & editing, H.Z.

Funding

This work was supported by National Science Foundation of China (51705093), Science and Technology Program of Guangzhou (201707010332), Guangzhou Municipal University research projects (1201610315, 1201610013), and Industry-Academia-Research project of Guangzhou University (2018A001).

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A

Proof of Theorem 3.
Since l is relatively prime to m, the integers 0 , l , 2 l , , ( m 1 ) l are distinct modulo m. Because the seed codes of length n are from r different full-order twin-necklace sets with mono-difference, we know that the codeword list in the statement of the theorem do form a cyclic Gray code. Then we will prove that the codewords have single-track property.
Let A 0 , A 1 , , A m 1 be the first m columns of the seed codes, and B 0 , B 1 , , B m 1 be the last m columns of the seed code. The first column of the entire codeword matrix W 0 is constructed by every l columns of A 0 , A 1 , , A m 1 , W 0 = [ A 0 , A l , A 2 l , , A ( m 1 ) l ] T , where the superscripts are reduced modulo m. The basic structure of the codeword list can be regarded as two length m necklace ordering combined together, so any column of the codeword list can be represented as:
W j = [ A j , A j + l , A j + 2 l , , A j + ( m 1 ) l ] T W j + m = [ B j , B j + l , B j + 2 l , , B j + ( m 1 ) l ] T
where 0 j < m and the superscripts are reduced modulo m. Since l and m are relatively prime, for every j we have j = i l ( mod m ) for some i. So W j and W j + m are:
W j = [ A i l , A ( i + 1 ) l , A ( i + 2 ) l , , A ( i + m 1 ) l ] T W j + m = [ B i l , B ( i + 1 ) l , B ( i + 2 ) l , , B ( i + m 1 ) l ] T
i.e., W j = E i l r W 0 and W j + m = E i l r W m . From the structure of the theorem, we know that W j + m = E t W 0 , so every column of the codeword list is the cyclic shift of W 0 ,
W j = E i l r W 0   and   W j + m = E i l r + t W 0
Therefore, the codeword list is a STGC. ☐

Appendix B. Complete Result of Length-6 STGCs

Table A1. Complete result of length 6 necklace ordering STGCs.
Table A1. Complete result of length 6 necklace ordering STGCs.
PeriodGenerating SequenceHead Interval
12[9, 3] [7, 5][2, 2, 2, 2, 2, 2]
24[14, 3, 2, 5] [13, 2, 3, 6] [11, 2, 5, 6] [11, 3, 3, 7] [10, 3, 2, 9] [10, 5, 2, 7]
[9, 6, 3, 6]
[4, 4, 4, 4, 4, 4]
36[16, 3, 2, 2, 3, 10] [16, 3, 2, 5, 3, 7] [16, 4, 3, 2, 2, 9] [15, 2, 3, 5, 3, 8]
[15, 2, 3, 8, 3, 5] [15, 2, 2, 3, 4, 10] [15, 2, 2, 9, 4, 4] [14, 2, 5, 8, 2, 5]
[14, 2, 3, 4, 4, 9] [14, 3, 5, 9, 2, 3] [14, 3, 4, 7, 3, 5] [14, 3, 2, 3, 5, 9]
[11, 2, 8, 5, 2, 8] [11, 2, 3, 10, 7, 3] [11, 3, 8, 9, 2, 3] [10, 3, 2, 8, 9, 4]
[9, 2, 8, 3, 4, 10] [13, 2, 2, 5, 4, 10] [13, 3, 4, 7, 2, 7] [8, 2, 7, 4, 4, 11]
[6, 6, 6, 6, 6, 6]
48[15, 2, 3, 2, 5, 7, 3, 11] [15, 2, 2, 7, 3, 9, 6, 4] [15, 3, 2, 5, 4, 9, 5, 5]
[15, 3, 2, 5, 4, 9, 5, 5] [15, 4, 6, 3, 2, 4, 3, 11] [15, 7, 5, 7, 3, 4, 3, 4]
[14, 3, 3, 11, 4, 2, 5, 6] [14, 11, 2, 4, 3, 3, 7, 4] [13, 5, 7, 2, 4, 5, 2, 10]
[11, 2, 9, 3, 3, 3, 3, 14] [11, 2, 5, 13, 7, 3, 3, 4] [11, 3, 6, 5, 4, 5, 5, 9]
[10, 2, 9, 2, 2, 13, 5, 5] [10, 3, 9, 11, 2, 4, 5, 4] [10, 3, 6, 4, 5, 5, 5, 10]
[9, 2, 4, 3, 4, 14, 9, 3] [9, 3, 6, 4, 5, 4, 6, 11] [14, 3, 4, 2, 4, 7, 2, 12]
[14, 3, 4, 5, 2, 7, 4, 9] [14, 3, 4, 14, 4, 3, 2, 4] [14, 3, 3, 3, 4, 7, 3, 11]
[14, 3, 3, 14, 5, 4, 2, 3] [14, 3, 2, 7, 3, 10, 5, 4] [14, 4, 5, 2, 3, 7, 2, 11]
[14, 4, 5, 4, 2, 4, 3, 12] [14, 4, 3, 2, 5, 13, 2, 5] [14, 4, 3, 4, 3, 7, 4, 9]
[14, 4, 2, 5, 4, 10, 4, 5] [14, 4, 2, 13, 4, 2, 4, 5] [13, 2, 5, 5, 2, 7, 4, 10]
[13, 2, 5, 13, 2, 3, 4, 6] [13, 2, 4, 3, 4, 7, 3, 12] [13, 2, 3, 7, 3, 10, 5, 5]
[13, 2, 3, 7, 2, 11, 6, 4] [13, 4, 6, 4, 3, 4, 2, 12] [13, 4, 3, 11, 4, 3, 4, 6]
[13, 4, 2, 12, 5, 2, 4, 6] [12, 2, 7, 10, 3, 7, 2, 5] [12, 2, 7, 12, 2, 4, 3, 6]
[12, 2, 5, 4, 3, 7, 4, 11] [12, 2, 5, 4, 3, 11, 4, 7] [12, 2, 5, 4, 2, 12, 5, 6]
[12, 2, 4, 5, 4, 10, 4, 7] [12, 3, 7, 11, 2, 7, 3, 3] [12, 5, 6, 3, 4, 6, 2, 11]
[12, 5, 4, 5, 4, 5, 4, 9] [11, 4, 5, 5, 4, 5, 4, 10] [11, 2, 5, 5, 2, 5, 6, 12]
[8, 8, 8, 8, 8, 8]
Table A2. Complete result of length 6 self-dual necklace ordering STGCs.
Table A2. Complete result of length 6 self-dual necklace ordering STGCs.
PeriodGenerating SequenceHead Interval
12[6, 6][1, 1, 1, 1, 1, 7] and its equivalent head intervals a
36[11, 2, 5, 11, 2, 5] [10, 4, 4, 10, 4, 4] [8, 2, 8, 8, 2, 8][3, 3, 3, 3, 3, 21] and its equivalent head intervals b
60[13, 3, 6, 2, 6, 13, 3, 6, 2, 6] [13, 4, 7, 2, 4, 13, 4, 7, 2, 4]
[12, 2, 4, 8, 4, 12, 2, 4, 8, 4] [11, 2, 6, 3, 8, 11, 2, 6, 3, 8]
[11, 3, 9, 4, 3, 11, 3, 9, 4, 3]
[5, 5, 5, 5, 5, 35] and its equivalent head intervals c
a The equivalent head intervals of [1, 1, 1, 1, 1, 7] are [1, 1, 1, 2, 5, 2], [1, 1, 2, 1, 4, 3], [1, 2, 2, 3, 2, 2] and [1, 3, 1, 3, 1, 3]. b The equivalent head intervals of [3, 3, 3, 3, 3, 21] are [3, 3, 3, 6, 15, 6], [3, 3, 6, 3, 12, 9], [3, 6, 6, 9, 6, 6] and [3, 9, 3, 9, 3, 9]. c The equivalent head intervals of [5, 5, 5, 5, 5, 35] are [5, 5, 5, 10, 25, 10], [5, 5, 10, 5, 20, 15], [5, 10, 10, 15, 10, 10] and [5, 15, 5, 15, 5, 15].
Table A3. Complete result of length 6 twin-necklace ordering STGCs.
Table A3. Complete result of length 6 twin-necklace ordering STGCs.
PeriodGenerating SequenceHead Interval
12[6, 6][1, 3, 1, 3, 1, 3]
24[14, 4, 2, 4] [12, 2, 4, 6][3, 5, 3, 5, 3, 5]
36[14, 4, 2, 5, 6, 5] [11, 6, 5, 6, 2, 6] [10, 4, 6, 8, 2, 6] [10, 6, 4, 6, 4, 6] [10, 6, 2, 5, 6, 7] [8, 6, 4, 4, 6, 8] [8, 6, 8, 6, 2, 6] [11, 2, 5, 11, 2, 5] [10, 4, 4, 10, 4, 4] [8, 2, 8, 8, 2, 8][3, 9, 3, 9, 3, 9]
48[8, 3, 7, 11, 6, 2, 5, 6] [15, 6, 3, 2, 3, 5, 5, 9] [15, 6, 2, 3, 3, 5, 6, 8][4, 12, 4, 12, 4, 12]
[12, 6, 2, 4, 6, 8, 4, 6] [14, 8, 6, 6, 2, 4, 2, 6] [14, 4, 6, 12, 2, 4, 2, 4][3, 13, 3, 13, 3, 13]
60[12, 2, 4, 6, 4, 8, 6, 4, 4, 10][9, 11, 9, 11, 9, 11]
[13, 3, 6, 2, 6, 13, 3, 6, 2, 6] [13, 4, 7, 2, 4, 13, 4, 7, 2, 4]
[12, 2, 4, 8, 4, 12, 2, 4, 8, 4] [11, 2, 6, 3, 8, 11, 2, 6, 3, 8]
[11, 3, 9, 4, 3, 11, 3, 9, 4, 3]
[5, 15, 5, 15, 5, 15]
Table A4. Complete result of length 6 triplet-necklace ordering STGCs.
Table A4. Complete result of length 6 triplet-necklace ordering STGCs.
PeriodGenerating SequenceHead Interval
24[9, 6, 3, 6][2, 2, 8, 2, 2, 8]
48[12, 6, 5, 2, 5, 5, 2, 11][4, 4, 16, 4, 4, 16]

References

  1. Lee, K.; Choi, J.; Bang, Y. Shaft position measurement using dual absolute encoders. Sens. Actuators A Phys. 2016, 238, 276–281. [Google Scholar] [CrossRef]
  2. Sasaki, M.; Nakai, F.; Hane, K.; Yokomizo, K.; Hori, K. Absolute Micro-encoder using Imaging Obtained by Ball Lens Assembled inside Wafer. J. Opt. 2006, 8, S391–S397. [Google Scholar] [CrossRef]
  3. Ye, G.; Liu, H.; Fan, S.; Li, X.; Yu, H.; Lei, B.; Shi, Y.; Yin, L.; Lu, B. Precise and robust position estimation for optical incremental encoders using a linearization technique. Sens. Actuators A Phys. 2015, 232, 30–38. [Google Scholar] [CrossRef]
  4. Liu, W.; Ma, X.; Li, X.; Chen, L.; Zhang, Y.; Li, X.; Shang, Z.; Jia, Z. High-precision pose measurement method in wind tunnels based on laser-aided vision technology. Chin. J. Aeronaut. 2015, 28, 1121–1130. [Google Scholar] [CrossRef]
  5. Deng, M.; Zhang, G.; Zhao, R.; Li, S.; Li, J. Improvement of Gaofen-3 absolute positioning accuracy based on cross-calibration. Sensors 2017, 17, 2903. [Google Scholar] [CrossRef] [PubMed]
  6. Kim, H.S.; Seo, W.; Beak, K.R. Indoor positioning system using magnetic field map navigation and an encoder system. Sensors 2017, 17, 651. [Google Scholar] [CrossRef] [PubMed]
  7. Meng, B.; Wang, Y.; Sun, W.; Yuan, X. A novel diagnosis method for a hall plates-based rotary encoder with a magnetic concentrator. Sensors 2014, 14, 13980–13998. [Google Scholar] [CrossRef] [PubMed]
  8. Gray, F.; Orange, E. Pulse Code Communication. U.S. Patent 2,632,058, 17 May 1953. [Google Scholar]
  9. Gilbert, E. Gray codes and paths on the n-cube. Bell Syst. Tech. J. 1958, 37, 815–826. [Google Scholar] [CrossRef]
  10. Savage, C.D. A survey of combinatorial gray codes. SIAM Rev. 1997, 39, 605–629. [Google Scholar] [CrossRef]
  11. Doran, R.W. The gray code. J. Univ. Comput. Sci. 2007, 13, 1573–1597. [Google Scholar] [CrossRef]
  12. Etzion, T.; Lempel, A. Algorithms for the generation of full-length shift-register sequences. IEEE Trans. Inf. Theory. 1984, 30, 480–484. [Google Scholar] [CrossRef]
  13. Petriu, E.M.; Basran, J.S. On the position measurement of automated guided vehicles using pseudorandom encoding. IEEE Trans. Instrum. Meas. 1989, 38, 799–803. [Google Scholar] [CrossRef]
  14. Fuertes, J.M.; Balle, B.; Ventura, E. Absolute-type shaft encoding using LFSR sequences with a prescribed length. IEEE Trans. Instrum. Meas. 2008, 57, 915–922. [Google Scholar] [CrossRef] [Green Version]
  15. Ye, G.; Fan, S.; Liu, H.; Li, X.; Yu, H.; She, Y.; Yin, L.; Lu, B. Design of a precise and robust linearized converter for optical encoders using a ratiometric technique. Meas. Sci. Technol. 2014, 25, 125003. [Google Scholar] [CrossRef]
  16. Gu, Z. The Coding Method of “HUI WEN” Code Used in Absolute Optical Encoders. China Patent 1069120A, 17 February 1993. [Google Scholar]
  17. Spedding, N.B. A Position Encoder. New Zealand Patent 264738, 28 October 1994. [Google Scholar]
  18. Hiltgen, A.P.; Paterson, K.G.; Brandestini, M. Single-track gray codes. IEEE Trans. Inf. Theory 1996, 42, 1555–1561. [Google Scholar] [CrossRef]
  19. Wan, Q.; Wang, Y.; Sun, Y.; Yang, S. A novel miniature absolute metal rotary encoder based on single-track periodic gray code. In Proceedings of the 2nd International Conference on Instrumentation, Measurement, Computer, Communication and Control (IMCCC 2012), Harbin, China, 8–10 December 2012. [Google Scholar] [CrossRef]
  20. Nii, H.; Raskar, R.; Fujii, T.; Tokiwa, T.; Inami, M. A proposal for space-encoder using single-track-gray-code. IEICE Trans. Inf. Syst. 2009, 92, 1784–1792. (In Japanese) [Google Scholar]
  21. Schwartz, M.; Etzion, T. The structure of single-track gray codes. IEEE Trans. Inf. Theory 1999, 45, 2383–2396. [Google Scholar] [CrossRef]
  22. Etzion, T.; Paterson, K.G. Near optimal single-track gray codes. IEEE Trans. Inf. Theory 1996, 42, 779–789. [Google Scholar] [CrossRef]
  23. Etzion, T. Single-track gray codes and sequences. In Proceedings of the International Workshop of Sequences, Subsequences and Consequences (SSC 2007), Los Angeles, CA, USA, 31 May–2 June 2007; pp. 129–133. [Google Scholar]
  24. Zinovik, I.; Kroening, D.; Chebiryak, Y. Computing binary combinatorial gray codes via exhaustive search with sat solvers. IEEE Trans. Inf. Theory 2008, 54, 1819–1823. [Google Scholar] [CrossRef]
  25. Fredricksen, H.; Maiorana, J. Necklaces of beads in k colors and k-ary de Bruijn sequences. Discrete Math. 1978, 23, 207–210. [Google Scholar] [CrossRef]
  26. Sawada, J.; Ruskey, F. An efficient algorithm for generating necklaces with fixed density. SIAM J. Comput. 1999, 29, 671–684. [Google Scholar] [CrossRef]
  27. Ruskey, F.; Savage, C.D.; Wang, T.M.Y. Generating necklaces. J. Algorithms 1992, 13, 414–430. [Google Scholar] [CrossRef]
  28. Qiu, C.; Wang, Y.; Zhu, H. Absolute encoder based on Karnaugh map. Chin. J. Sci. Instrum. 2007, 28, 1080–1086. [Google Scholar]
  29. Etzion, T. Self-dual Sequences. J. Combin. Theory Ser. A 1987, 44, 288–298. [Google Scholar] [CrossRef]
  30. Palmer, E.M.; Robinson, R.W. Enumeration of self-dual configurations. Pac. J. Math. 1984, 110, 203–221. [Google Scholar] [CrossRef] [Green Version]
  31. Lempel, A. On a homomorphism of the De Bruijn graph and its applications to design of feedback shift register. IEEE Trans. Comput. 1970, 19, 1204–1209. [Google Scholar] [CrossRef]
  32. Yan, X.; Wang, Q. Coding of shared track gray encoder. J. Dyn. Syst. Meas. Control Trans. 2000, 122, 573–576. [Google Scholar] [CrossRef]
Figure 1. Disc pattern and reading head distribution of absolute encoder using a length-4 Gray code: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates ”1”; (b) Schematic of the reading disc, where the four small circles denote the four reading heads corresponding to the four coding tracks.
Figure 1. Disc pattern and reading head distribution of absolute encoder using a length-4 Gray code: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates ”1”; (b) Schematic of the reading disc, where the four small circles denote the four reading heads corresponding to the four coding tracks.
Sensors 18 02728 g001
Figure 2. Disc pattern and reading head distribution of absolute encoder using a length-11 period-2046 STGC. (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the 11 small circles denote the 11 reading heads and are evenly distributed around the coding track.
Figure 2. Disc pattern and reading head distribution of absolute encoder using a length-11 period-2046 STGC. (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the 11 small circles denote the 11 reading heads and are evenly distributed around the coding track.
Sensors 18 02728 g002
Figure 3. Disc pattern and reading head distribution of absolute encoder using a length-6 period-36 necklace ordering STGC. (a) Schematic of the coding disc, where white the area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads and are evenly distributed around the whole coding track.
Figure 3. Disc pattern and reading head distribution of absolute encoder using a length-6 period-36 necklace ordering STGC. (a) Schematic of the coding disc, where white the area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads and are evenly distributed around the whole coding track.
Sensors 18 02728 g003
Figure 4. Disc pattern and reading head distribution of absolute encoder using a length-6 period-36 necklace ordering STGC. (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1; (b) Schematic of the reading disc, where the six small circles denote the six reading heads and are evenly distributed around the half coding track.
Figure 4. Disc pattern and reading head distribution of absolute encoder using a length-6 period-36 necklace ordering STGC. (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1; (b) Schematic of the reading disc, where the six small circles denote the six reading heads and are evenly distributed around the half coding track.
Sensors 18 02728 g004
Figure 5. Disc pattern and reading head distribution of absolute encoder using a length-6 period-48 twin-necklace ordering STGC: (a) Schematic of the coding disc, where white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads, and the sub-cycle of the head interval is two.
Figure 5. Disc pattern and reading head distribution of absolute encoder using a length-6 period-48 twin-necklace ordering STGC: (a) Schematic of the coding disc, where white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads, and the sub-cycle of the head interval is two.
Sensors 18 02728 g005
Figure 6. Disc pattern and reading head distribution of absolute encoder using a length-6 period-48 triplet-necklace ordering STGC: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads, and the sub-cycle of the head interval is three.
Figure 6. Disc pattern and reading head distribution of absolute encoder using a length-6 period-48 triplet-necklace ordering STGC: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1”; (b) Schematic of the reading disc, where the six small circles denote the six reading heads, and the sub-cycle of the head interval is three.
Sensors 18 02728 g006
Figure 7. Disc pattern and slit disc of the prototype using a length-8 period-128 STGC: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1; (b) Schematic of the slit disc, where the eight slits are arranged right over the eight reading heads. This disc except the eight slits should be black, but to show the slits clearly we use white instead.
Figure 7. Disc pattern and slit disc of the prototype using a length-8 period-128 STGC: (a) Schematic of the coding disc, where the white area indicates “0”, and the black area indicates “1; (b) Schematic of the slit disc, where the eight slits are arranged right over the eight reading heads. This disc except the eight slits should be black, but to show the slits clearly we use white instead.
Sensors 18 02728 g007
Figure 8. The structural schematic of the prototype.
Figure 8. The structural schematic of the prototype.
Sensors 18 02728 g008
Figure 9. Experimental system.
Figure 9. Experimental system.
Sensors 18 02728 g009
Figure 10. Outputs of the eight reading heads.
Figure 10. Outputs of the eight reading heads.
Sensors 18 02728 g010
Figure 11. Error of the outputs of the prototype.
Figure 11. Error of the outputs of the prototype.
Sensors 18 02728 g011
Table 1. New STGCs with non-k-spaced heads in the complete searching result of length-6 codes.
Table 1. New STGCs with non-k-spaced heads in the complete searching result of length-6 codes.
PeriodGenerating SequenceHead IntervalSub-Cycle of Head Interval
12[6, 6][1, 3, 1, 3, 1, 3]2
24[14, 4, 2, 4][3, 5, 3, 5, 3, 5]2
[9, 6, 3, 6][2, 2, 8, 2, 2, 8]3
36[14, 5, 6, 5, 2, 4][3, 9, 3, 9, 3, 9]2
[11, 2, 5, 11, 2, 5][3, 9, 3, 9, 3, 9]2
48[15, 8, 6, 5, 3, 3, 2, 6][4, 12, 4, 12, 4, 12]2
[14, 6, 2, 4, 2, 6, 6, 8][3, 13, 3, 13, 3,13]2
[12, 6, 5, 2, 5, 5, 2, 11][4, 4, 16, 4, 4, 16]3
60[12, 2, 4, 6, 4, 8, 6, 4, 4, 10][9, 11, 9, 11, 9, 11]2
Table 2. The upper bounds of period for necklace, self-dual necklace and twin-necklace ordering STGCs from length 6 to length 16.
Table 2. The upper bounds of period for necklace, self-dual necklace and twin-necklace ordering STGCs from length 6 to length 16.
n P m a x _ n e c k l a c e P m a x _ s e l f - d u a l P m a x _ t w i n
6486060
8224240240
1096010201020
12396040563960
14161281638016380
16650246550465280
Table 3. Examples of d-plet-necklace ordering STGCs.
Table 3. Examples of d-plet-necklace ordering STGCs.
dnPeriodGenerating SequenceHead Interval
4880[20, 7, 6, 6, 2, 6, 6, 6, 2, 19][5, 5, 5, 25, 5, 5, 5, 25]
4896[15, 8, 3, 13, 8, 3, 5, 15, 2, 7, 15, 2][6, 6, 6, 30, 6, 6, 6, 30]
48112[16, 16, 3, 8, 5, 11, 5, 3, 8, 5, 3, 13, 11, 5][6, 6, 6, 38, 6, 6, 6, 38]
48128[22, 4, 18, 10, 4, 18, 9, 2, 2, 2, 5, 21, 2, 2, 2, 5][8, 8, 8, 40, 8, 8, 8, 40]
510120[35, 22, 13, 5, 2, 3, 10, 7, 3, 10, 5, 5][4, 4, 4, 4, 44, 4, 4, 4, 4, 44]
510140[25, 25, 10, 15, 5, 5, 5, 10, 5, 5, 5, 10, 10, 5][4, 4, 4, 4, 54, 4, 4, 4, 4, 54]
510160[35, 20, 7, 20, 7, 6, 5, 2, 7, 11, 2, 7, 11, 9, 6, 5][4, 4, 4, 4, 64, 4, 4, 4, 4, 64]
510180[30, 8, 21, 2, 21, 7, 2, 2, 5, 14, 7, 2, 2, 19, 8, 3, 5, 22][6, 6, 6, 6, 66, 6, 6, 6, 6, 66]

Share and Cite

MDPI and ACS Style

Zhang, F.; Zhu, H.; Bian, K.; Liu, P.; Zhang, J. Absolute Position Coding Method for Angular Sensor—Single-Track Gray Codes. Sensors 2018, 18, 2728. https://doi.org/10.3390/s18082728

AMA Style

Zhang F, Zhu H, Bian K, Liu P, Zhang J. Absolute Position Coding Method for Angular Sensor—Single-Track Gray Codes. Sensors. 2018; 18(8):2728. https://doi.org/10.3390/s18082728

Chicago/Turabian Style

Zhang, Fan, Hengjun Zhu, Kan Bian, Pengcheng Liu, and Jianhui Zhang. 2018. "Absolute Position Coding Method for Angular Sensor—Single-Track Gray Codes" Sensors 18, no. 8: 2728. https://doi.org/10.3390/s18082728

APA Style

Zhang, F., Zhu, H., Bian, K., Liu, P., & Zhang, J. (2018). Absolute Position Coding Method for Angular Sensor—Single-Track Gray Codes. Sensors, 18(8), 2728. https://doi.org/10.3390/s18082728

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop