Rotor position sensing apparatus for motors

A pulse encoder (2) is provided for generating a position code IP corresponding to the rotational position of a rotor of a motor (1), as well as rotation pulses AP, BP each of which is produced whenever the rotor rotates by a predetermined amount. The rotation pulses AP, BP are applied to a counter (32) via quadrupling pulse generating circuit (30). A leading edge/trailing edge sensing circuit (31) is provided for sensing a transition point of the position code, with the counter (32) being preset by an output from the circuit (32). Thus, the position of the rotor is capable of being indicated precisely based on the position code and the value counted by the counter.

BACKGROUND OF THE INVENTION 
1. Technical Field 
This invention relates to a rotor position sensing apparatus for motors for 
sensing the rotational position of a motor such as a synchronous motor. 
More particularly, the invention relates to a rotor position sensing 
apparatus for motors wherein a fine position code is capable of being 
generated by performing an interpolation between position codes from a 
sensor provided on a rotor. 2. Description of the Related Art 
A rotating field-type synchronous motor, which is composed of an armature 
serving as a stator and a field pole serving as a rotor, is operable to 
generate a rotating field by application of a three-phase current to the 
stator windings (armature windings), with the field pole being pulled by 
the rotating field so as to rotate at the same velocity as the rotating 
field. 
Though a synchronous motor of this kind has been considered to involve 
complicated velocity control and control circuitry of a complex 
construction in comparison with a DC motor, a drive method has recently 
been developed for effecting torque generation control in a manner 
equivalent to that of a DC motor, thereby facilitating velocity control of 
the synchronous motor. 
According to this drive method, torque generation is controlled in a manner 
equivalent to that of a DC motor if the armature current and induced 
voltage are controlled to have the same phase (i.e., if control is 
effected in such a manner that the main flux and armature current are 
rendered mutually perpendicular). To realize such control, it is necessary 
to sense the position of the field pole (i.e., the phase of the main flux, 
which is displaced from the phase of the induced voltage by 90.degree.), 
generate a current command having a phase corresponding to the position, 
and apply the current command to the armature windings of the synchronous 
motor. 
In general, in order to sense the position of the field pole, a widely 
adopted arrangement has a pulse coder provided on the rotary shaft of the 
field pole (rotor). The pulse coder produces a position code corresponding 
to the rotational position of the rotor and thus allows the rotational 
position of the rotor to be sensed. The pulse coder is composed of a 
rotary disk having position codes disposed radially of the the position 
codes. However, the number of position codes capable of being disposed 
along the circumference of the coder is limited by resolution, with the 
number being several hundred at most even if a high-resolution Gray code 
is used as the position code. The position sensing precision is therefore 
less than satisfactory, making it difficult to carry out fine control. 
Accordingly, an object of the present invention is to provide a rotor 
position sensing apparatus for motors which, irrespective of a limitation 
imposed on a number of position codes by the resolution of a sensor for 
sensing the rotational position of a rotor, readily enables generation of 
fine position signals surpassing the number of position codes of the 
sensor. 
SUMMARY OF THE INVENTION 
According to the present invention, a sensor generates a coarse position 
code which corresponds to the rotational position of a rotor of a motor, 
as well as fine rotation pulses each of which is issued whenever the rotor 
rotates through a predetermined angle. The rotation pulses are counted by 
a counter. The rotational position of the rotor is indicated by the coarse 
position code and the value counted by the counter. According to the 
invention, a precise rotor position is capable of being indicated even 
when the position code is coarse, thereby enabling a motor to be 
controlled in accurate fashion.

DESCRIPTION OF THE PREFERRED EMBODIMENT 
The present invention will now be described in detail with reference to the 
drawings. 
FIG. 1 is a block diagram showing an embodiment of a synchronous motor 
control system utilizing the present invention. 
In the Figure, numeral 1 denotes a revolving field-type synchronous motor, 
and numeral 2 designates a pulse encoder coupled directly to the shaft of 
the synchronous motor 1 for generating a variety of position signals. 
The pulse encoder 2 will now be described in detail with reference to FIGS. 
2 and 3. The pulse encoder 2 includes a code disk 23 provided on a rotary 
shaft 20 which is directly connected to the shaft of the synchronous motor 
1, a light-emitting element 22 such as a light-emitting diode for reading 
a position signal from the code disk 23, a light-receiving element 21 such 
as a photodiode, the elements 21, 22 being disposed so as to face each 
other with the code disk 23 interposed therebetween, and an output circuit 
24. 
As shown in FIG. 3, an A-phase track a, a B-phase track b, and a code track 
d comprising four tracks are formed concentrically on the code disk 23. 
Patterns are formed on the A- and B-phase tracks a, b in such a manner 
that rotation pulse trains (incremental pulses) displaced in phase from 
each other by .pi./2 will be generated when the code disk rotates. 
The code track d comprises four tracks each of which is formed with a 
pattern in such a manner that different four-bit position codes (absolute 
codes) will be generated in correspondence with each angle of rotation of 
the code disk. A Gray code is used for the position codes. 
Numeral 3 denotes a sine wave generating circuit, described below. The 
circuit 3 includes a counter which is set by a position code IP from the 
pulse encoder 2, and which counts A-phase pulses AP and B-phase pulses BP 
from the pulse encoder 2 to produce values of sin.theta., cos.theta., 
which are dependent upon the counted value. 
Numeral 7 denotes an F/V converter for converting the pulse rate of a 
positive pulse train PP or negative pulse train NP from the sine wave 
generating circuit 3 into a voltage, the output voltage being an actual 
velocity voltage TSA, which is proportional to the rotational velocity of 
the synchronous motor 1. 
Numeral 8 denotes an arithmetic circuit for calculating the difference 
(hereafter referred to as a velocity error) ER between the actual velocity 
voltage TSA and a velocity command VCMD issued by a velocity command 
circuit, not shown. Numeral 9 designates an error amplifier for amplifying 
the velocity error ER to produce the amplitude I.sub.s of an armature 
current. Numerals 10a, 10b represent multiplier circuits for multiplying 
the output of the error amplifier 9 by the outputs cos.theta., sin.theta. 
of the sine wave generating circuit 3 to produce two-phase current 
commands I.sub.1 a (=I.sub.s .multidot.sin.theta.), I.sub.1 b (=I.sub.s 
.multidot.cos.theta.), respectively. 
Numeral 11 denotes a two phase-three phase converting circuit having the 
circuit construction shown in FIG. 4 for converting the two-phase signal 
into a three-phase signal. More specifically, the two phase-three phase 
converting circuit 11 includes two operational amplifiers OA.sub.1, 
OA.sub.2, 10 K.OMEGA. resistors R.sub.1 through R.sub.4, a 5.78 K.OMEGA. 
resistor R.sub.5, and a 5 K.OMEGA. resistor R.sub.6. With these values for 
the resistors R.sub.1 through R.sub.6, and with the connections as 
illustrated, the following are produced at the terminals T.sub.u, T.sub.v, 
T.sub.w : 
##EQU1## 
These signals I.sub.u, I.sub.v, I.sub.w are three-phase current commands 
displaced in phase from one another by 2.pi./3 and of the same phase as 
the phases of the induced voltage Eo. 
Numerals 12, 12b, 12c denote arithmetic circuits for obtaining the 
differences between the commanded currents I.sub.u, I.sub.v, I.sub.w and 
the actual phase currents. More specifically, these calculate the 
differences between the current commands I.sub.u, I.sub.v, I.sub.w in the 
respective phases, and actual phase currents I.sub.au, I.sub.av, I.sub.aw 
sensed by current transformers 15a, 15b, 15c, respectively. Numerals 13a, 
13b 13c denote current amplifiers provided in the respective phases for 
amplifying the current differences in these phases. 
Numerals 14a, 14b, 14c designate pulse-width modulator/inverter circuits. 
As illustrated in FIG. 5, the pulse width modulator/inverter circuits 14a, 
14b, 14c each include a sawtooth generating circuit STSG for generating a 
triangular wave, e.g., a sawtooth signal STS, comparators COM.sub.u, 
COM.sub.v, COM.sub.w, NOT gates NOT.sub.1 through NOT.sub.3, and drivers 
DV.sub.1 through DV.sub.6. These components construct a pulse-width 
modulator circuit 140. The inverter 141 includes six power transistors 
Q.sub.1 through Q.sub.6 and six diodes D.sub.1 through D.sub.6. 
The comparators COM.sub.u, COM.sub.v, COM.sub.w compare the sawtooth signal 
STS with the amplitudes of the three-phase alternating current signals 
i.sub.u, i.sub.v, i.sub.w, respectively, and produce a "1" output when 
i.sub.u, i.sub.v or i.sub.w is greater than the value of STS, or a "0" 
output when i.sub.u, i.sub.v or i.sub.w is smaller. Thus, with respect to 
i.sub.u, the comparator COM.sub.u produces the pulse-width modulated 
current command i.sub.uc shown in FIG. 6. More specifically, pulse-width 
modulated three-phase current commands i.sub.uc, i.sub.vc, i.sub.wc 
dependent upon the amplitudes of i.sub.u, i.sub.v, i.sub.w are produced. 
It should be noted that a triangular signal in the form of isosceles 
triangles can be employed instead of the sawtooth signal used for 
pulse-width modulation. There is no limitation upon the kind of sawtooth 
signal or isosceles-type triangular signal; various triangular signals can 
be used providing that pulse-width modulation is carried out 
satisfactorily. 
The NOT gates NOT.sub.1 through NOT.sub.3 and drivers DV.sub.1 through 
DV.sub.6 convert the current commands i.sub.uc, i.sub.vc, i.sub.wc into 
drive signals SQ.sub.1 through SQ.sub.6 to control the on/off action of 
the power transistors Q.sub.1 through Q.sub.6 constituting the inverter 
141. Numeral 142 denotes a rectifying circuit for DC current feed, and 
numerals 15a, 15b, 15c designate current transformers for sensing the 
actual phase currents. 
Described next will be the operation of the motor control system in FIG. 1 
which includes the rotor position sensing apparatus of the present 
invention. 
When the power supply is turned on, the position code IP from the pulse 
encoder 2 enters the sine wave generating circuit 3, which converts the 
code into corresponding values of cos.theta., sin.theta. and produces 
output voltages conforming to cos.theta., sin.theta.. Thereafter, the 
velocity command VCMD is applied to the synchronous motor 1, which is 
supplied with three-phase alternating current. When the synchronous motor 
1 rotates, the pulse encoder 2 generates the A-phase pulses AP and the 
B-phase pulses BP, in an order which depends upon the direction of 
rotation. These pulses are counted by the counter. Thus, a sine wave 
sin.theta. and a cosine wave cos.theta. conforming to both the position 
code IP and position .theta. of the rotor are produced. 
Meanwhile, to rotate the synchronous motor 1 at a desired rotational 
velocity V.sub.c, an addition input terminal of the arithmetic circuit 8 
is supplied with a velocity command VCMD having a predetermined analog 
value. Since the synchronous motor 1 is rotating at an actual velocity 
V.sub.a (&lt;V.sub.c), the F/V converter 7 produces the actual velocity 
voltage TSA, which is proportional to the actual velocity V.sub.a. The 
actual velocity voltage TSA is applied to a subtraction terminal of the 
arithmetic circuit 8. Accordingly, the arithmetic circuit 8 calculates the 
velocity error ER, which is the difference between the commanded velocity 
V.sub.c and the actual velocity V.sub.a, and applies the error to the 
error amplifier 9. The error amplifier 9 performs a proportional 
integration operation expressed by the following equation: 
##EQU2## 
The result I.sub.s in Eq. (2) corresponds to the amplitude of the armature 
current. Specifically, when the load varies or the velocity command 
changes, the velocity error ER (=V.sub.c -V.sub.a) becomes greater, as 
does the armature current amplitude I.sub.s correspondingly. The increased 
amplitude I.sub.s results in the production of a greater torque, which 
brings the actual rotational velocity of the motor into conformity with 
the commanded velocity. 
Since the sine wave generating circuit 3 produces the two-phase sine and 
cosine waves cos.theta., sin.theta. indicating the position 8 of the field 
pole of synchronous motor 1, the multiplier circuits 10a, 10b perform the 
computations given by: 
I.sub.1 a=I.sub.s .multidot.sin.theta., I.sub.1 b=I.sub.s 
.multidot.cos.theta. 
to produce two-phase current command I.sub.1 a, I.sub.1 b. The two 
phase-three phase converting circuit 11 then performs the computation 
indicated by Eq. (1) to produce three-phase current commands I.sub.u, 
I.sub.v, I.sub.w. These are three-phase current commands the phases of 
which are the same as those of the induced voltage E.sub.o of the 
synchronous motor 1. 
Thereafter, the arithmetic circuits 12a, 12b, 12c compute the differences 
between the three-phase current commands I.sub.u, I.sub.v, I.sub.w and the 
actual phase currents I.sub.au, I.sub.av, I.sub.aw. These differences, 
namely the three-phase AC signals i.sub.u, i.sub.v, i.sub.w, are amplified 
and then applied to the respective comparators COM.sub.U, COM.sub.V, 
COM.sub.W of the pulse-width modulator/inverter circuits 14a, 14b, 14c. 
The comparators COM.sub.U, COM.sub.V, COM.sub.W compare the sawtooth 
signal STS with the amplitudes of the three-phase AC signals i.sub.u, 
i.sub.v, i.sub.w and produce the pulse-width modulated three-phase current 
commands i.sub.uc, i.sub.vc, i.sub.wc, whereby the inverter drive signals 
SQ.sub.1 through SQ.sub.6 are produced via the NOT gates NOT.sub.1 through 
NOT.sub.3 and drivers DV.sub.1 through DV.sub.6. The inverter drive 
signals SQ.sub.1 through SQ.sub.6 are applied to the bases of the 
respective power transistors Q.sub.1 through Q.sub.6 constituting the 
inverter 141, thereby controlling the on/off action of the power 
transistors Q.sub.1 through Q.sub.6 to supply the synchronous motor 1 with 
three-phase current. Control is thenceforth performed in a similar manner 
until the synchronous motor 1 eventually rotates at the commanded 
velocity. 
The construction and operation of the sine wave generating circuit 
including the rotor position sensing apparatus of the present invention 
will now be described. 
FIG. 7 is a block diagram of an embodiment of the present invention. In the 
Figure, numeral 30 denotes a quadrupling pulse generating circuit. Using 
the A- and B-phase rotation pulses AP, BP, the quadrupling pulse 
generating circuit 30 generates quadrupled positive rotation pulses PP 
when rotation is in the forward direction, and quadrupled negative 
rotation pulses NP when rotation is in the reverse direction. Numeral 31 
denotes a leading edge/trailing edge sensing circuit for sensing the 
leading edge/trailing edge of each bit of bits C.sub.1 through C.sub.8 of 
the position code IP, and for producing preset data PD and a preset signal 
PS for a counter, described below. Numeral 32 denotes an up/down counter 
which is set to the preset data PD in response to the preset signal PS 
from the leading edge/trailing edge sensing circuit 31, and which counts 
up the positive rotation pulses PP and counts down the negative rotation 
pulses NP. Numeral 33 denotes a Gray/binary conversion circuit for 
converting the Gray code of the position code IP (bits C.sub.1 through 
C.sub.8) into a binary code. Numeral 34 denotes a read-only memory (ROM) 
which stores the digital values sin.theta., cos.theta. of the sine and 
cosine waves at respective addresses. With the binary position code from 
the Gray/binary conversion circuit 33 serving as the upper order digit of 
an address and the counted value from the counter 32 serving as the lower 
order digit of the address, the corresponding values of sin.theta., 
cos.theta. may be read out of the ROM. Numeral 35 denotes a digital/analog 
(D/A) converter for converting the values of sin.theta., cos" from the ROM 
34 into analog outputs which are delivered to the multiplier circuits 10a, 
10b (FIG. 1), respectively. 
The quadrupling pulse generating circuit 30 is provided with a NOT circuit 
N.sub.1 and flip-flop circuits FF.sub.1, FF.sub.2 for the A-phase pulses 
AP, and with a NOT circuit N.sub.2 and flip-flop circuits FF.sub.3, 
FF.sub.4 for the B-phase pulses BP. Also provided is a gate group circuit 
GC for forming the positive rotation pulses PP or reverse rotation pulses 
from the outputs of the flip-flops FF.sub.1 through FF.sub.4. This circuit 
will now be described with reference to the waveform diagram of FIG. 8. 
If the motor is rotating in the forward direction, the B-phase pulses BP 
are generated at a 90.degree. phase lag with respect to the A-phase pulses 
AP. If the motor is rotating in the reverse direction, the A-phase pulses 
AP are generated at a 90.degree. phase lag with respect to the B-phase 
pulses BP. Accordingly, as shown by the waveform diagram for forward 
rotation in FIG. 8, the Q, Q outputs of the flip-flop circuit FF.sub.1 
have the form A.sub.1, A.sub.1 shown in the Figure, so that an output is 
generated in phase with, or opposite in phase to, the A-phase pulses AP. 
These outputs A.sub.1, A.sub.1 are delayed by one block by means of the 
flip-flop circuit FF.sub.2, emerging as outputs A.sub.2, A.sub.2. The same 
is true for the B-phase pulses BP, with the flip-flop circuits FF.sub.3, 
FF.sub.4 cooperating to generate outputs B.sub.1, B.sub.1, B.sub.2, 
B.sub.2. These eight outputs A.sub.1, A.sub.1, A.sub.2, A.sub.2, B.sub.1, 
B.sub.1, B.sub.2, B.sub.2 are applied to the gate group circuit GC, which 
forms the positive rotation pulses PP or negative rotation pulses NP. 
Specifically, since the positive rotation pulses PP are formed under the 
conditions (AHD 1.multidot.A.sub.2 .multidot.B.sub.1), (AHD 1.multidot.BHD 
1.multidot.B.sub.2), (A.sub.1 .multidot.A.sub.2 .multidot.B.sub.1), 
(A.sub.1 .multidot.B.sub.1 .multidot.B.sub.2), four AND gates are provided 
for detecting these conditions, and an OR gate is provided for taking the 
logical sum of the outputs from the AND gates, with the output of the OR 
gate being the positive rotation pulses PP shown in FIG. 8. These are 
pulses having four times the pulse rate of the A-phase pulses AP or 
B-phase pulses BP. 
If the motor is rotating in the reverse direction, the phase relationship 
between the outputs A.sub.1 through A.sub.2 based on the A-phase pulses 
and the outputs B.sub.1 through B.sub.2 based on the B-phase pulses is 
reversed, so that the negative rotation pulses NP are formed under the 
conditions (B.sub.1 .multidot.B.sub.2 .multidot.A.sub.1), (B.sub.1 
.multidot.AHD 1.multidot.A.sub.2), (B.sub.1 .multidot.B.sub.2 
.multidot.A.sub.1), (B.sub.1 .multidot.A.sub.1 .multidot.A.sub.2). Four 
AND gates are provided for detecting these conditions, and an OR gate is 
provided for taking the logical sum of the outputs from the AND gates, 
with the output of the OR gate being the negative rotation pulses NP. 
These are pulses having four times the pulse rate of the A-and B-phase 
pulses AP, BP. Accordingly, the gate group circuit GC produces solely the 
positive rotation pulses PP when rotation is in the forward direction, and 
solely the negative rotation pulses NP when rotation is in the reverse 
direction. 
The aforementioned leading edge/trailing edge sensing circuit 31 is 
provided with NOT circuits N.sub.3, N.sub.4, N.sub.5, N.sub.6, prestage 
flip-flop circuits FF.sub.5, FF.sub.7, FF.sub.9, FF.sub.11 and poststage 
flip-flop circuits FF.sub.6, FF.sub.8, FF.sub.10, FF.sub.12 for the bits 
C.sub.1, C.sub.2, C.sub.4, C.sub.8 of the position code IP. Thus, four 
outputs are produced with respect to each of the bits C.sub.1, C.sub.2, 
C.sub.4, C.sub.8 of the position code IP, namely C.sub.81, C.sub.81, 
C.sub.82, C.sub.82, C.sub.41, C.sub.41, C.sub.42, C.sub.42, C.sub.21, 
C.sub.21, C.sub.22, C.sub.22, C.sub.11, C.sub.11, C.sub.12, C.sub.12. The 
phase relationship among these four outputs is the same as that for the 
outputs A.sub.1 through A.sub.2 based on the A-phase pulses AP of FIG. 8. 
These 16 outputs C.sub.81 through C.sub.12 are applied to the gate group 
circuit GD, which forms the preset data PD and preset signal PS. The gate 
group circuit GD senses the transition points of the position code IP 
(i.e., the leading edge/trailing edge thereof). Specifically, since the 
four outputs C.sub.81 through C.sub.82, C.sub.41 through C.sub.42, 
C.sub.21 through C.sub.22 or C.sub.11 through CHD 12 will have the same 
phase relationship as the outputs A.sub.1 through A.sub.2 of FIG. 8, as 
mentioned above, the trailing edge of each bit is capable of being sensed 
by the conditions (C.sub.81 .multidot.C.sub.82), (C.sub.41 
.multidot.C.sub.42), (C.sub.21 .multidot.C.sub.22), (C.sub.11 
.multidot.C.sub.12), so that it will suffice if four AND gates are 
provided for detecting these conditions. Further, the leading edge of each 
bit is capable of being sensed by the conditions (C.sub.81 
.multidot.C.sub.82), (C.sub.41 .multidot.C.sub.42), (C.sub.21 .multidot.C 
.sub.22), (C.sub.11 .multidot.C.sub.12), so that it will suffice if four 
AND gates are provided for detecting these conditions. The logical sum of 
the outputs from these eight AND gates is taken by an OR gate, the output 
of which is delivered as the preset signal PS which thus indicates a 
transition in the position code. 
The gate group circuit GD also has a circuit for sensing the direction of 
motor rotation from the aforementioned 16 inputs C.sub.81 through 
C.sub.12, and for producing preset data "0000" as an output in case of 
forward rotation, and preset data "1111" as an output in case of reverse 
rotation. Here a change in the Gray code is utilized. Specifically, the 
Gray code is arranged as shown in the following table: 
TABLE 
______________________________________ 
No. 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 16 
______________________________________ 
C8 0 0 0 0 0 0 0 0 1 
1 1 1 1 1 1 1 
C4 0 0 0 0 1 1 1 1 1 
1 1 1 0 0 0 0 
C2 0 0 1 1 1 1 0 0 0 
0 1 1 1 1 0 0 
C1 0 1 1 0 0 1 1 0 0 
1 1 0 0 1 1 0 
______________________________________ 
Accordingly, if we let forward rotation correspond to the direction in 
which "No." increases and reverse rotation correspond to the direction in 
which "No." decreases, then a change in forward rotation from "0000" to 
"0001" can be sensed by the condition (C.sub.82 .multidot.C.sub.42 
.multidot.C.sub.22 .multidot.C.sub.12 .times.C.sub.11 .multidot.C.sub.12) 
since this will be a case where the current position code IP is "0000" and 
a leading edge occurs at bit C.sub.1. Similarly, a change in forward 
rotation from "0001" to "0011) can be sensed by the condition (C.sub.82 
.multidot.C.sub.42 .multidot.C.sub.22 .multidot.C.sub.12 .times.C.sub.21 
.multidot.C.sub.22) since this will be a case where the current position 
code is "0001" and a leading edge occurs at bit C.sub.2. Thereafter, and 
in similar fashion, 16 conditions are established, whereby it becomes 
possible to sense forward rotation and produce forward rotation pulses. 
Accordingly, 16 AND gates are provided for detecting each of these 
conditions, an OR gate is provided for taking the logical sum of the 
outputs from these AND gates, and a circuit is provided for generating 
preset data PD of "0000" in response to the output (forward rotation 
pulses) of the OR gate. This allows forward rotation to be sensed and the 
preset data "0000" to be produced as an output. Conversely, in case of 
reverse rotation, an change from "0001" to "0000" can be sensed by the 
condition (C.sub.82 .multidot.C.sub.42 .multidot.C.sub.22 
.multidot.C.sub.12 .times.C.sub.11 .multidot.C.sub.12) since this will be 
a case where the current position code is "0001" and a trailing edge 
occurs at bit C.sub.1. As described above with regard to forward rotation, 
16 conditions are established, and it will suffice to provide 16 AND gates 
corresponding to these conditions, one OR gate and a circuit for 
generating "1111" as the preset data PD. 
Though a change in the Gray code is utilized in the foregoing description, 
a change in a binary code can be employed and results obtained in a 
similar manner in a case where the position code is a binary code. 
The operation of the arrangement shown in FIG. 7 will now be described. 
First, for forward rotation of the motor, the quadrupling pulse generating 
circuit 30 generates the positive rotation pulses PP by utilizing the 
above-described A- and B-phase pulses AP, BP. The counter 32 counts up the 
positive rotation pulses. Meanwhile, the position code IP is applied to 
the leading edge/trailing edge sensing circuit 31, which senses the 
transition points (leading edge/trailing edge) and generates the preset 
signal PS. A forward rotation pulse is produced whenever a transition 
point occurs, and "0000" is generated as the preset data PD. The counter 
32 is preset to the preset data PD "0000" whenever a transition point is 
sensed, and thereafter counts up the positive rotation pulses PP until the 
next transition point is sensed (i.e., until the preset signal PS is 
generated). The position code IP is converted into a binary position code 
IP by the Gray/binary conversion circuit 33 and is applied to the ROM 34 
as the higher order digit of the address thereof. The value counted by the 
counter 32 is applied to the ROM 34 as the lower order digit of the 
address. 
In response to the combination of the address digits, the values digits, 
the values sin.theta., cos.theta. at the corresponding address of the ROM 
34 are read from the ROM. Accordingly, the number of addresses applied to 
the ROM 34 is 2.sup.n times the number that would prevail in the case of 
the position code IP alone (where n is the number of bits possessed by the 
counter 32). This makes it possible to generate addresses of a 
correspondingly fine precesion. The values of sin.theta., cos.theta. are 
converted into analog values of sin.theta., cos.theta. by the DA converter 
35. Accordingly, as shown in FIG. 9 which is a view for describing the 
operation of the circuitry, the analog value of sin.theta. or of 
cos.theta. is delivered as an output M having a smooth, sinusoidal 
waveform, rather than as an output N which has a step-like waveform when 
the solely the position code IP is used. 
If the motor is rotating in the reverse direction, the quadrupling pulse 
generating circuit 30 generates the negative rotation pulses NP, and the 
leading edge/trailing edge sensing circuit 31 generates "1111" as the 
preset data PD whenever the preset signal PS is generated. The counter 32 
is preset to the preset data PD "1111" whenever the preset signal PS is 
generated, and thereafter counts down the negative rotation pulses NP 
until the next preset signal PS is generated. The ROM 34 is then addressed 
in the manner described above with regard to forward rotation, and 
therefore the description of reverse rotation will not be given. 
According to the present invention as described above, a counter is 
provided for counting fine rotation pulses from a sensor, and the 
rotational position of a rotor is indicated by a rough position code from 
the sensor and the value counted by the counter. The invention is 
advantageous in that a fine rotor position can be indicated even when the 
position code is coarse. In particular, though the number of actual 
position codes is limited by resolution, the present invention, which 
makes it possible to produce a number of position codes several score that 
of the number of actual position codes, is extremely useful for precise 
control of a motor. Since the foregoing can be achieved purely through 
circuitry without modification of the conventional sensor, the apparatus 
is simple in construction and control can be performed with facility. 
Though the present invention has been described in conjunction with an 
embodiment thereof, the invention is not limited to the aforesaid 
embodiment and various modifications can be made in accordance with the 
gist of the invention without departing from the scope thereof. 
According to the present invention, the arrangement is such that a fine 
position code can be generated by performing an interpolation between 
position codes from a sensor provided on the rotor of a motor, thereby 
making it possible to provide a precise indication of the position of the 
motor rotor. As a result, the motor can be controlled in a precise manner. 
The present invention is therefore well-suited for application to the 
field of motor control.