DEVICE FOR DETECTING THE ROTATIONAL POSITION OF ROTOR OF MOTOR

Abstract: The device comprises an absolute position transducer (1) which has a position detector 2) coupled to the rotor shaft (3) of a motor and an absolute position detector circuit (4), and a code converter (5). When the rotor shaft rotates, an absolute code on a code disk is optically or magnetically read by the position detector and provides absolute position data (a). The code converter (5), which is either a logical or arithmetic circuit, or a ROM, converts the absolute data (a) to a rotor magazine pole position signal (b), which is used to control the motor drive current.

Description: The present invention relates to a detector for detecting the rotational position of a rotor of a motor, and more particularly to a rotational position detector capable of detecting the absolute rotational position of a rotor shaft of a motor. To drive an AC servo motor or a stepping motor, it is necessary to control an electric current passing through the stator of the motor in accordance with the rotational position of a predetermined magnetic pole of the rotor (hereinafter referred to as "the magnetic pole position") relative to the stator of the motor. In this connection, a detector is required, which is capable of detecting the magnetic pole position of the rotor to generate a signal representative of the detected magnetic pole position of the rotor. Conventionally, the detection of magnetic pole position of the rotor has been carried out by: (1) using a synchro or resolver, which has poles equal in number to that of the rotor; (2) using a detector, which is so constructed as to detect the absolute position of the rotor at intervals of period equal to a value calculated by dividing a rotational period of a motor by a number of poles of the rotor or half the number of the rotor poles so that a detected absolute data indicates the magnetic pole position of the rotor; and (3) using a position detector which is coupled to the rotor of a motor by way of gears or the like so as to be rotated by a number of revolutions equal to a number of rotor poles or half the number of the rotor poles per one revolution of the motor to output an absolute detection data in one revolution of the detector as a rotor magnetic pole position data. However, none of the above-mentioned conventional methods can carry out absolute detection for one revolution of a motor, so that they require another detector to effect this kind of absolute detection. Moreover, to detect a rotor magnetic pole position, these methods use a detector constructed in conformity with a number of rotor poles, so that they have to use different detectors for motors which are different in number of poles from each other, resulting in necessity of preparing many kinds of detectors for the magnetic pole position detection. Accordingly, problems occur such as increased tasks in both designing and manufacturing. Furthermore, in the above-mentioned method (3) using gears, abration of the gears and backlash can occur, which adversely affects a detection accuracy. JP-A-59-10162 discloses a prior art rotor rotational position detector as specified in the preambles of claims 1 and 4, which employs a slitted disc together with a counter for counting pulses produced by a sensor in response to the slits of the disc to detect the absolute position of the rotor in one revolution thereof. The armature winding currents of the motor are controlled in dependence upon the absolute position of the rotor indicated by the content of the counter. It is an object of the present invention to provide a rotational position detector which is capable of carrying out absolute detection for one revolution of a motor and to provide a coded signal suitable for control of the drive current of the motor, and is adaptable to a variety of motors which are different in number of rotor poles from each other, with minor modification of electrical parts thereof. According to a first aspect of the present invention there is provided a rotor rotational position detector for a motor, comprising an absolute type position detector coupled to a rotor shaft of the motor and operable to detect the absolute position of the rotor shaft in one revolution of the rotor shaft and to output a first coded signal representative of the detected absolute position, the rotor rotational position detector being characterised by: a code converting means for converting the first coded signal from the absolute type position detector into a second coded signal representative of the rotor magnetic pole position suitable for control of the drive current of the motor, this second signal being repeated for each drive control cycle of the motor, with the number of motor drive control cycles in one revolution of the motor being determined in accordance with the number of poles of the motor. According to a second aspect of the present invention there is provided a rotor rotational position detector for a motor, comprising: a position detector coupled to a rotor shaft of the motor for outputting a first coded signal representative of the absolute position of the rotor shaft in one revolution of the rotor shaft, and for sequentially outputting increment pulses with revolution of the rotor shaft; characterised by: a code converting means for converting the first coded signal from said position detector into a second coded signal representative of the rotor magnetic pole position and for outputting the second coded signal; and a counter arranged to count the increment pulses and to be reset to a predetermined value every time said counter counts pulses which equal in number the increment pulses generated during one drive control cycle of the motor, with the number of motor drive control cycles in one revolution of the rotor being determined in accordance with the number of poles of the motor, an output from said code converting means being input to said counter as an initial value when a power supply is turned on, and said counter being operable to output its counted value as a third coded signal representative of the rotor magnetic pole position and suitable for control of the drive current of the motor. As described above, according to the present invention, since the coded output from the absolute type position detector for detecting the rotor shaft position is converted into the signal representative of the rotor magnetic pole position by the code converting means, the absolute position of the rotor shaft and the rotor synchronization data for motor drive control can be obtained by only a single position detector, and further, the detector of the present invention is adaptable to a variety of motors which are different in number of rotor poles from each other, by solely exchanging an electrical circuit such as the code converting means. Therefore, in case, for instance, that a robot or the like is driven by a motor in a direct drive system, the absolute position of the rotor shaft required for motor direct drive system can be detected, and at the same time the rotor synchronization data for motor drive control can be obtained. Fig. 1 is a block diagram showing a position detector according to a first embodiment of the present invention; and Fig. 2 is a block diagram showing a position detector according to a second embodiment of the present invention. Fig. 1 shows a rotational position detector according to a first embodiment of the present invention. Reference numeral 1 designates a conventionally known absolute type position detector which may be of any type such as an optical or magnetic type. The absolute type position detector 1 comprises a detecting section 2 and a rotor shaft 3 which is secured to a rotor shaft (not shown) of an AC servo motor or a stepping motor. The rotor shaft 3 has a code disk secured thereto on which absolute codes are formed. The detector 1 is so arranged that the detecting section 2 optically or magnetically reads absolute codes formed on the code disk when the rotor shaft 3 of the detector 1 is rotated and consequently the code disk is rotated with rotation of the rotor shaft of a motor, not shown, and an absolute detecting circuit 4 which responds to the output from the detecting section 2 sequentially outputs data representative of a position of the rotor shaft of the motor, that is, absolute data a. Further, the detector 1 has a code converting means 5 which is supplied with the absolute data a outputted from the absolute detecting circuit 4. The code converting means 5 is arranged to convert the absolute data a into a signal for motor driving control, that is, data b for synchronizing the rotor of the motor, as will be described later, and outputs the data b. In AC servo motors and stepping motors, a driving current must be controlled corresponding to a relative position of the rotor magnetic pole and the stator winding, whereas the relative position of the magnetic pole and the winding is determined in accordance with the number of the rotor poles. Therefore, the code conversion from the absolute data a into the data b for rotor synchronization is carried out in consideration of the number of the rotor poles. For the code conversion, there can be proposed a code-converting method using a logical circuit and a code-converting method using a read only memory (ROM). Hereinafter, an example of using the ROM as the code converting means 5 will be explained. In the present embodiment, the absolute type position detector 1 is used, which is arranged to output a code representative of the rotational position of the rotor shaft every 1/30 revolution of the rotor shaft of the motor, to obtain 30 absolute data, for example, coded data "0" to "29" per one revolution of the rotor shaft. For effecting a desired control of the motor driving current, the rotor synchronization data b is generated at intervals of a period calculated by multiplying the rotational period of the rotor shaft with 1/(number of pole pairs). For example, if the number of rotor poles of the motor is assumed to be six, the rotor synchronization data b for three cycles are generated per one revolution of the rotor shaft. As described above, since 30 absolute data a are generated per one revolution of the rotor shaft, ten data a are generated in one motor control cycle corresponding to 1/3 revolution of the rotor shaft. Then, the data a are converted into coded data, respectively, as will be hereinafter referred to, by which obtained are ten data b respectively coded by "0" to "9" and indicating the rotor pole position in each motor control cycle. More specifically, in addresses "0" to "9" of the ROM as the code converting means 5, there are stored the codes "0" to "9", in addresses "10" to "19" there are again stored the codes "0" to "9", and in addresses "20" to "29" there are further stored the codes "0" to "9", respectively. When the rotor shaft 3 of the position detector 1 is rotated with rotation of the motor, the detecting section 2 detects the absolute codes which are formed on the disk secured to the rotor shaft 3. Then, the absolute detecting circuit 4 supplies one of the coded absolute data consisting of "0" to "29" into the ROM in response to the output from the detecting section 2. As a result, the absolute data, that is, the address of the ROM corresponding to the rotational position of the rotor shaft 3 is selected, and, one of the rotor synchronization codes consisting of "0" to "9" is read out from the address and outputted as a signal for driving the motor. Incidentally, the absolute data from the detecting circuit 4 is provided for control other than the motor driving control. The relationship between the absolute data a and the synchronization data b is shown as follows: ABSOLUTE CODE SYNCHRONIZATION CODE 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 0 11 1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 20 0 21 1 22 2 23 3 24 4 25 5 26 6 27 7 28 8 29 9 As described above, an example is given wherein the ROM is used as the code converting means 5. When the code converting means 5 is formed of a logical circuit or an arithmetic circuit, the same code conversion as described above can be applied. As a result, the absolute position of the rotor shaft of the motor can be detected by the absolute data a, and the data b for rotor synchronization can be obtained by the code converting circuit 5. Fig. 2 shows a second embodiment of the present invention, wherein, as distinct from the first embodiment, a position detector 6 including an incremental detecting circuit 7 for detecting a travelling amount of the rotor shaft of the motor is used in place of the position detector 1 so as to enable outputting an incremental detecting pulse C and obtaining highly reliable data for synchronizing the rotor by the use of the detecting pulse. The same elements as those employed in the first embodiment are designated by the same reference numerals and the explanation thereof will be partly omitted. Specifically, the position detector 6 in Fig. 2 is provided with the incremental detecting circuit 7, in addition to the elements 2 to 4. The incremental detecting circuit 7 is so arranged as to sequentially output the detecting pulses C with revolution of the rotor shaft in response to the least significant two bits of the output from the detecting section 2. Further, a gate circuit 8 and a counter 9 are connected in the rear stage of the code converting circuit 5. The gate circuit 8 is arranged such that it is opened or enabled upon supply of a set instruction d outputted from an NC apparatus or the like for controlling motors or the like when the electric power supply is turned on to be applied to the whole system. The counter 9 is arranged to be initialized to the rotor synchronization data b from the code converting means 5, as an initial value, at the time the set instruction d is generated. Also, the counter 9 is arranged to sequentially count the detecting pulse C from the incremental detecting circuit 7 and outputs the counted value. Further, the counter 9 is arranged such that when the counted value reaches a value calculated by dividing a total number of the pulses C generated during one revolution of the rotor shaft 3, that is, a total number of the detecting pulses C generated during one absolute detecting cycle, by the number of pole pairs of the motor, in other words, when the counted value reaches a value equal to a total number of the pulses C generated in one cycle of the magnetic pole position detection, it is set to a predetermined value "0", for instance, and thereafter resumes the counting operation. For example, if the position detector 6 which outputs the absolute codes "0" to "29" for one revolution of the rotor shaft and the motor having six poles are employed in the same manner as the first embodiment, a total number of the pulses C generated for one revolution of the rotor is calculated to be 30. Since 1/3 revolution of the rotor corresponds to one cycle of the magnetic pole position detection, the counter 9 may be such a decimal counter that counts from "0" to "9" and is reset the counted value to "0" when it reaches "9" and the next detecting pulse C is generated. Further, if a detector which outputs 2000 detecting pulses C per one revolution of the rotor shaft 3 and a motor having eight poles are employed, the couter 9 may be such one that counts 500 (2000/4) times and is reset to "0" when the counted value reaches "499" and the next detecting pulse C is generated. Now, reference is made to the operation of the second embodiment. When the power supply is turned on and the set instruction d is activated by the controller, an output representative of an absolute position of the rotor shaft 3 from the absolute detecting circuit 4 arranged in the position detector 6 is converted by the code converting means 5 into an absolute position in one cycle of the magnetic pole position detection, that is, data representative of a magnetic pole position, which in turn is set in the couter 9 as an initial value through the gate circuit 8. Then, the detecting pulse C sequentially outputted from the incremental detecting circuit 7 with rotation of the motor is inputted and counted by the couter 9, so that the counted value which indicates a magnetic pole position is outputted from the counter 9 as rotor synchronization data. On the other hand, the absolute data a is outputted from the absolute detecting circuit 4, so that an absolute position of the rotor shaft 3 can be also detected by the absolute data a. The detecting pulse C from the incremental detecting circuit 7 can be also used as an incremental signal indicating a travelling amount of the rotor shaft. As described above, the embodiment shown in Fig. 2 is so arranged that the magnetic pole position at the time the power suply is turned on is set in the counter 9 and thereafter the counter 9 counts the detecting pulse C to obtain the rotor synchronization data b, so that even when a detecting error is produced in the absolute detecting circuit 4 due to high speed revolution of the motor, an error will never be produced in the rotor synchronization data b, rendering it possible to obtain exact data b for the rotor synchronization. Incidentally, when a motor having a different number of rotor magnetic poles is used, it is only required to exchange the code converting means 5, i.e., the ROM in accordance with the number of rotor magnetic poles for the case of the first embodiment, and exchange the code converting means 5 and the counter 9 for the case of the second embodiment. Accordingly, the position detectors 1 and 6 do not have to be exchanged.

Claims: A rotor rotational position detector for a motor, comprising an absolute type position detector (1) coupled to a rotor shaft of the motor and operable to detect the absolute position of the rotor shaft in one revolution of the rotor shaft and to output a first coded signal representative of the detected absolute position, the rotor rotational position detector being characterised by: a code converting means (5) for converting the first coded signal from the absolute type position detector (1) into a second coded signal representative of the rotor magnetic pole position suitable for control of the drive current of the motor, this second signal being repeated for each drive control cycle of the motor, with the number of motor drive control cycles in one revolution of the motor being determined in accordance with the number of poles of the motor. A rotor rotational position detector for a motor as claimed in claim 1, wherein the motor is an AC servo motor. A rotor rotational position detector for a motor as claimed in claim 1, wherein the motor is a stepping motor. A rotor rotational position detector for a motor, comprising: a position detector (6) coupled to a rotor shaft of the motor for outputting a first coded signal representative of the absolute position of the rotor shaft in one revolution of the rotor shaft, and for sequentially outputting increment pulses with revolution of the rotor shaft; characterised by: a code converting means (5) for converting the first coded signal from said position detector (6) into a second coded signal representative of the rotor magnetic pole position and for outputting the second coded signal; and a counter (9) arranged to count the increment pulses and to be reset to a predetermined value every time said counter (9) counts pulses which equal in number the increment pulses generated during one drive control cycle of the motor, with the number of motor drive control cycles in one revolution of the rotor being determined in accordance with the number of poles of the motor, an output from said code converting means (5) being input to said counter (9) as an initial value when a power supply is turned on, and said counter (9) being operable to output its counted value as a third coded signal representative of the rotor magnetic pole position and suitable for control of the drive current of the motor. A rotor rotational position detector for a motor as claimed in claim 4, wherein the motor is an AC servo motor. A rotor rotational position detector for a motor as claimed in claim 4, wherein the motor is a stepping motor. A rotor rotational position detector as claimed in claim 4, 5 or 6, and comprising a gate circuit (8) connected between the code converting means (5) and the counter (9) for controlling transfer of the output from the former to the latter.

Inventors: SAKANO, TETSURO 1205-3-103, SHIBOKUSA OSHINO-MURA
Applicants: FANUC LTD.
Application year: 1987
Main classification: H02P6
IPC codes: H02P6, H02P27, H02K11, H02P25, H02P23, H02P8