Patent Publication Number: US-7906925-B2

Title: Electric motor, drive system employing multiple electric motors, and method for controlling the same

Description:
TECHNICAL FIELD 
     The present invention relates to an electric motor that utilizes permanent magnets and magnet coils, to a drive system employing multiple electric motors, and to a method for control the same. 
     BACKGROUND ART 
     Electric motors that utilize permanent magnets and magnet coils are known, having been disclosed in JP2001-298982A and JP2003-111483A, for example. 
     In the prior art electric motors, motor control is carried out using an on/off signal from a digital magnetic sensor. Specifically, the timing for reversing the polarity of the voltage applied to the magnet coil is determined using the on/off signal from the digital magnetic sensor. 
     Magnetic sensors having analog output (so-called analog magnetic sensors) are also available. However, where an analog magnetic sensor is used to control a motor, considerable error in sensor output can occur due to manufacturing errors of various kinds among motors, making it impossible in some instances to carry out motor control satisfactorily. Examples of manufacturing errors among motors that can have an effect on output of an analog magnetic sensor are error in the installation location of the magnetic sensor; error in the location of the N pole/S pole boundary due to magnetization error of the permanent magnet; and error in mounting location of elements inside the magnetic sensor. However, to date there have yet to be devised satisfactory technology for achieving accurate motor control using analog magnetic sensors, while taking such errors into consideration. This problem is not limited to cases where analog magnetic sensors are used; the problem is encountered also in cases where digital magnetic sensors having multi-value analog output are used. 
     Incidentally, drive systems employing multiple electric motors have been implemented in robots, mobile objects (e.g. vehicles), and the like. 
     However, in the past it was necessary to provide a large number of control lines between the individual electric motors and the overall system controller for the purpose of controlling the multiple electric motors. 
     DISCLOSURE OF THE INVENTION 
     A first object of the present invention is to provide technology for achieving accurate motor control, while taking into account errors relating to magnetic sensor output. 
     A second object of the present invention is to provide technology for simplifying the configuration and control procedure of a drive system employing multiple electric motors. 
     According to an aspect of the present invention, there is provided an electric motor comprising: a coil array having a plurality of magnetic coils; a magnet array having a plurality of permanent magnets; a plurality of magnetic sensors each outputting an output signal that changes in analog fashion depending on relative location of the magnet array and the coil array; a drive control circuit that, utilizing analog change in the output signals of the plurality of magnetic sensors, generates application voltage for application to the coil array; and an output waveform correcting unit configured to respectively correct waveforms of the output signals of the plurality of magnetic sensors such that the output signals of the magnetic sensors assume a prescribed waveform shape during operation of the electric motors. The output waveform correcting unit has a memory for storing output waveform correction values. ID codes are assigned respectively to the plurality of magnetic sensors. The output waveform correcting unit receives from an external device an output waveform correction value for each magnetic sensor, together with the ID code for each magnetic sensor, and stores the output waveform correction value for each magnetic sensor in the memory. 
     This electric motor is furnished with an output waveform correcting unit for performing correction of the output signal of the magnetic sensor so as to give a waveform of prescribed shape, and thus the drive control circuit, utilizing analog change in the output signal of the magnetic sensor, can apply application voltage of preferred waveform to the coil array. As a result, it will be possible to achieve accurate motor control even if the output of the magnetic sensor includes errors. Moreover, since the plurality of magnetic sensors are identified to one another by ID codes, and receive output waveform correction values from the external device together with the ID codes, the output signals of the plurality of magnetic sensors can be respectively corrected to their desired waveforms. 
     The output waveform correcting unit may execute gain correction and offset correction of the output signal of each magnetic sensor. 
     The gain correction and offset correction will easily correct the output signal of the magnetic sensor to the desired waveform shape. 
     The memory of the output waveform correcting unit may include a nonvolatile memory for storing gain correction values and offset correction values as the output waveform correction values. 
     With this arrangement, once a gain correction value and an offset correction value have been established, it becomes possible to obtain the desired sensor output at any time. 
     The electric motor may further comprises a communication unit configured to exchange the output waveform correction values and the ID codes of the magnetic sensors with the external device. 
     With this arrangement, correction values can be transmitted to the motor from the external device and stored when the electric motor is manufactured, for example. 
     According to another aspect of the present invention, a drive system comprises: a plurality of electric motors each including a drive control circuit; and a system controller coupled to the plurality of electric motors via a shared communication line. The drive control circuit of each electric motor has an identification code register that stores an identification code to identify each electric motor. The system controller has an individual control mode in which operation of an individual electric motor is controlled by transmitting a command to the individual electric motor together with the identification code via the shared communication line. 
     According to this drive system, in the individual control mode, the system controller controls operation of individual electric motors by sending commands, together with identification codes, to the individual electric motors via a communications line, thus eliminating the need to provide a large number of control lines and making it possible to simplify system configuration. 
     The system controller may further have a simultaneous control mode for simultaneously controlling operation of the plurality of electric motors, by transmitting via the shared communication line a shared command that is shared by the plurality of electric motors. 
     With this configuration, it is possible to simultaneously operate multiple electric motors in the simultaneous control mode, and thus multiple electric motors can be operated in coordination under the same timing. 
     The system controller may, when transmitting the shared command to the plurality of electric motors, transmit the shared command without transmitting the identification codes. 
     With this configuration, operation of multiple electric motors can be controlled simultaneously, while simplifying transmission of shared commands. 
     The system controller may be capable of transmitting commands to individual electric motors together with the identification codes via the shared communication line prior to transmitting the shared command, thereby establishing in the drive control circuit of the individual electric motors a simultaneous control sequence composed of a plurality of control steps arranged in a time sequence. Each electric motor may update or increment the control step of the simultaneous control sequence each time that the shared command is received from the system controller, and executes operation according to the updated control step. 
     With this configuration, it is possible to simultaneously modify the operational status of multiple electric motors, according to a simultaneous control sequence pre-established for each electric motor. 
     Mutually different sequences may be established in the plurality of electric motors as the simultaneous control sequence. 
     With this configuration, control sequences that are respectively appropriate for individual electric motors can be established. 
     The communication line may be a serial communication line that transmits addresses and commands over the same data line. The identification codes of the electric motors may be associated on a one-to-one basis with addresses of the electric motors transmitted by the system controller via the communication line, whereby the addresses of the electric motors function as identification codes of the electric motors. 
     With this configuration, commands can be sent to individual electric motors with a smaller number of lines. 
     The system controller may be capable of acquiring operational parameters or settings from individual electric motors via the communication line. 
     With this configuration, it is possible for the system controller to verify operational status and settings status of individual electric motors. 
     It is possible for the present invention to be reduced to practice in various ways, for example, an electric motor, a method and circuit for controlling the same; a method and device for correcting an electric motor sensor; an actuator, an electronic device, and an electric appliance employing these; a drive system and method for controlling the same; a computer program for this purpose, and so on. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1A through 1D  are sectional views showing the configuration of the motor unit of an electric motor in Embodiment 1; 
         FIGS. 2A and 2B  illustrate the positional relationship of coil arrays and a magnet array in Embodiment 1; 
         FIG. 3  illustrates magnetic sensor waveforms; 
         FIG. 4  is a schematic diagram depicting the relationship of coil application voltage and back electromotive force; 
         FIGS. 5A and 5B  illustrate coil connecting methods; 
         FIGS. 6A through 6D  illustrate the basic principle of electric motor operation in Embodiment 1; 
         FIGS. 7A and 7B  are block diagrams depicting the configuration of a drive control circuit of the motor of Embodiment 1; 
         FIG. 8  is a diagram depicting the internal configuration of a driver circuit; 
         FIG. 9  is a diagram depicting the internal configuration of a magnetic sensor; 
         FIGS. 10A through 10E  show the internal configuration and operation of a PWM controller; 
         FIGS. 11A through 11F  illustrate correspondence relationships between sensor output waveform and drive signal waveform; 
         FIG. 12  is a block diagram depicting the internal configuration of a PWM unit; 
         FIG. 13  is a timing chart depicting operation of the PWM unit during forward rotation of the motor; 
         FIG. 14  is a timing chart depicting operation of the PWM unit during reverse rotation of the motor; 
         FIGS. 15A and 15B  show the internal configuration and operation of an excitation interval setting unit; 
         FIGS. 16A through 16C  show the specifics of offset correction of sensor output; 
         FIGS. 17A through 17C  show the specifics of gain correction of sensor output; 
         FIG. 18  is a flowchart depicting the calibration procedure of sensor output; 
         FIG. 19  is a flowchart depicting in detail the procedure of offset correction; 
         FIG. 20  is a flowchart depicting in detail the procedure of gain correction; 
         FIG. 21  is a block diagram depicting a modification example of the drive control circuit for calibration; 
         FIG. 22  is a block diagram depicting magnetic sensors and a drive signal generating circuit in a modification example of Embodiment 1; 
         FIG. 23  is a block diagram depicting another modification example of the drive signal generating circuit; 
         FIG. 24  is a flowchart depicting another procedure for carrying out offset correction; 
         FIG. 25  is a flowchart depicting another procedure for carrying out gain correction; 
         FIG. 26  is a flowchart depicting yet another procedure for carrying out gain correction; 
         FIG. 27  is a block diagram depicting the configuration of the drive system in Embodiment 2; 
         FIG. 28  is a block diagram depicting the configuration of the drive control circuit provided in each individual electric motor; 
         FIG. 29  is a flowchart illustrating the procedure for individual control of a motor; 
         FIG. 30  is a flowchart illustrating the control procedure in an individual motor when a command is received; 
         FIG. 31  is a timing chart showing a communication sequence in individual control mode; 
         FIG. 32  is a flowchart illustrating the procedure of simultaneous control of multiple motors; 
         FIG. 33  is a flowchart illustrating in detail the procedure of Step S 100 ; 
         FIGS. 34A and 34B  show exemplary simultaneous control sequences; 
         FIG. 35  is a timing chart showing the communication sequence in simultaneous control mode; 
         FIG. 36  is a flowchart illustrating the control procedure in a motor when a simultaneous control command is received; 
         FIG. 37  is a block diagram depicting another configuration of the drive control circuit; 
         FIG. 38  is a block diagram depicting another configuration of the drive system; and 
         FIG. 39  is a block diagram depicting the configuration of the electric motor drive control circuit of the drive system shown in  FIG. 38 . 
     
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION 
     The embodiments of the present invention will be discussed in the order indicated below. 
     1. Embodiment 1 
     1-A. Configuration of Electric Motor 
     1-B. Configuration of Drive Control Circuit 
     1-C. Correction of Sensor Output 
     1-D. Modification Example of Drive Control Circuit 
     1-E. Other Procedure for Implementing Sensor Output Correction 
     2. Embodiment 2 
     3. Other Modification Examples 
     1. Embodiment 1 
     1-A. Configuration of Electric Motor 
       FIG. 1A  is a sectional view showing the configuration of the motor unit of an electric motor in one embodiment of the present invention. This motor unit  100  has a stator unit  10  and a rotor unit  30 , each of generally disk shape. The rotor unit  30  has a magnet array  34 M composed of a number of magnets, and is affixed to a rotating shaft  112 . The direction of magnetization of the magnet array  34 M is the vertical direction. The stator unit  10  has a Phase A coil array  14 A positioned above the rotor unit  30 , and a Phase B coil array  24 B positioned below the rotor unit  30 . 
       FIGS. 1B to 1D  depict, in detached form, the first coil array  14 A of the stator unit  10 , the rotor unit  30 , and the second coil array  24 B of the stator unit  10 , respectively. In this example, the Phase A coil array  14 A and the Phase B coil array  24 B each have six coils; likewise, the magnet array  34 M has six magnets. However, it is possible to set the number of coils and magnets to any value. 
       FIG. 2A  depicts the positional relationship of coil arrays  14 A,  24 B and the magnet array  34 M. The Phase A coil array  14 A is affixed to a support member  12 A, while the Phase B coil array  24 B is affixed to a support member  22 B. The Phase A coil array  14 A includes two types of coils  14 A 1 ,  14 A 2  excited in opposite directions and arranged in alternating fashion at a constant pitch Pc. In the state shown in  FIG. 2A , the three coils  14 A 1  are excited such that their direction of magnetization (the direction from the N pole to the S pole) is oriented downward; the other three coils  14 A 2  are excited such that their direction of magnetization is oriented upward. Likewise, the Phase B coil array  24 B is composed of two types of coils  24 B 1 ,  24 B 2  excited in opposite directions and arranged in alternating fashion at the constant pitch Pc. Herein, “coil pitch Pc” is defined as the pitch of the coils of the Phase A coil array, or the pitch of the coils of the Phase B coil array. 
     The magnet array  34 M of the rotor unit  30  is affixed to a support member  32 M. The permanent magnets of this magnet array  34 M are oriented respectively with their direction of magnetization facing in the direction perpendicular to the direction of placement of the magnet array  34 M; the latter is the left-right direction in  FIG. 2A . The magnets of the magnet array  34 M are arranged at constant magnetic pole pitch Pm. In this example, the magnetic pole pitch Pm is equal to the coil pitch Pc, and in terms of electrical angle is equivalent to π. Electrical angle of 2π is associated with the mechanical angle or distance when the phase of the drive signal presented to the coil array changes by 2π. In the present embodiment, when the phase of the drive signals of the Phase A coil array  14 A and the Phase B coil array  24 B changes by 2π, the magnet array  34 M undergoes displacement by the equivalent of twice the coil pitch Pc. 
     The Phase A coil array  14 A and the Phase B coil array  24 B are positioned at locations differing from one another by π/2 in terms of electrical angle. The Phase A coil array  14 A and the Phase B coil array  24 B differ only in location, and in other respects have substantially identical configuration. Consequently, only the example of the Phase A coil array  14 A will be discussed below, except where there is a particular need during discussion of the coil array. 
       FIG. 2B  depicts exemplary waveforms of AC drive signals presented to the Phase A coil array  14 A and the Phase B coil array  24 B. The Phase A coil array  14 A and the Phase B coil array  24 B are presented respectively with two-phase AC signals. The drive signals of the Phase A coil array  14 A and the Phase B coil array  24 B are phase-shifted by π/2 with respect to one another. The state of  FIG. 2A  corresponds to the zero phase or 2π state. 
     As shown in  FIG. 2A , the motor unit  100  additionally has an analog magnetic sensor  16 A for the Phase A coil array  14 A, and an analog magnetic sensor  16 B for the Phase B coil array  24 B. Hereinafter these will be termed the “Phase A sensor” and the “Phase B sensor.” The Phase A sensor  16 A is situated at a location in the center between the two coils of the Phase A coil array  14 A; the Phase B sensor  26 B is situated at a location in the center between the two coils of the Phase B coil array  24 B. In the present embodiment, the AC drive signals depicted in  FIG. 2B  are generated utilizing the analog output of these sensors  16 A,  26 B. Hall ICs that utilize the Hall effect can be employed as the sensors  16 A,  26 B, for example. 
       FIG. 3  is an illustration depicting magnetic sensor waveforms. In this example, the Phase A sensor output SSA and the Phase B sensor output SSB are both sine waves. These sensor outputs have waveform shape substantially identical to that of back electromagnetic force of the Phase A coil  14 A and the Phase B coil  24 B. The back electromagnetic force waveform is dependent on the shape of the coils and the positional relationship of the magnets and the coils, but is typically a sine wave or a shape very close to a sine wave. The “back electromagnetic force” may be also referred to as “induced voltage.” 
     In general, an electric motor functions as an energy conversion device that converts between mechanical energy and electrical energy. The back electromagnetic force of the coils represents mechanical energy of the motor converted to electrical energy. Consequently, where electrical energy applied to the coils is converted to mechanical energy (that is, where the motor is driven), it is possible to drive the motor with maximum efficiency by means of application of voltage having waveform identical to that of the back electromagnetic force. As will be discussed below, “voltage having waveform identical to that of the back electromagnetic force” means voltage that generates current in the opposite direction to the back electromagnetic force. 
       FIG. 4  is a schematic diagram depicting the relationship of coil application voltage and back electromotive force. Here, the coil is simulated in terms of back electromotive force Ec and resistance. In this circuit, a voltmeter V is parallel-connected to the application voltage E 1  and the coil. When voltage E 1  is applied to the motor to drive the motor, back electromotive force Ec is generated in the direction of reverse current flow to the application voltage E 1 . When a switch SW is opened while the motor is rotating, the back electromotive force Ec can be measured with the voltmeter V. The polarity of the back electromotive force Ex measured with the switch SW open will be the same as the polarity of the application voltage E 1  measured with the switch SW closed. The phrase “application of voltage of waveform identical to that of the back electromagnetic force” hereinabove refers to application of voltage having the same polarity and waveform as the back electromotive force Ec measured by the voltmeter V. 
     As noted previously, when driving a motor, it is possible to drive the motor with maximum efficiency by means of application of voltage having waveform identical to that of the back electromagnetic force. It can be appreciated that energy conversion efficiency is relatively low in proximity to the middle point of the sinusoidal back electromotive force waveform (in proximity to 0 voltage), and conversely that energy conversion efficiency is relatively high in proximity to the peak of the back electromotive force waveform. Where the motor is driven by applying voltage of the same waveform as the back electromotive force, relatively high voltage will be applied during periods of relatively high energy conversion efficiency, thus improving efficiency of the motor. On the other hand, if the motor is driven with a simple rectangular waveform, considerable voltage will be applied in proximity to a location where back electromotive force is substantially 0 (at the middle point of its waveform), and efficiency of the motor will be lower. Also, the problem of vibration and noise occurring will arise when voltage is applied during such periods of low energy conversion efficiency. 
     As will be understood from the preceding discussion, advantages of driving a motor through application of voltage having the same waveform as back electromotive force are that efficiency of the motor will be improved, and that vibration and noise will be reduced. 
       FIGS. 5A and 5B  are diagrams depicting connection methods of the two types of coils  14 A 1 ,  12 A 2  of the Phase A coil array A 1 . With the connection method of  FIG. 5A , all of the coils included in the Phase A coil array A 1  are series-connected to drive control circuits  300 . With the connection method of  FIG. 5B , on the other hand, a plurality of series-connected pairs of coils  14 A 1 ,  12 A 2  are connected in parallel. With either connection method, the two types of coils  14 A 1 ,  12 A 2  will always be magnetized with opposite polarity. 
       FIGS. 6A to 6D  depict operation of the electric motor of the present embodiment. In this example, rightward displacement of the magnet array  34 M with respect to the coil arrays  14 A,  24 B over time is depicted. The left-right direction in the drawings can be understood to correspond to the rotation direction of the rotor unit  30  shown in  FIG. 1A . 
       FIG. 6A  depicts the state at the timing when the phase is just prior to 2π. The solid arrows drawn between coils and magnets denote the attraction direction, and the broken arrows denote the repulsion direction. In this state, the Phase A coil array  14 A does not impart driving force in the operating direction (left-right direction in the drawing) to the magnet array  34 M, and magnetic force acts in the direction drawing the magnet array  34 M towards the Phase A coil array  14 A. Consequently, application voltage to the Phase A coil array  14 A will preferably go to zero at the timing coincident with the phase of 2π. On the other hand, the Phase B coil array  24 B does impart driving force in the operating direction to the magnet array  34 M. Moreover, since the Phase B coil array  24 B imparts not only attracting force but also repelling force to the magnet array  34 M, zero net force is applied in the vertical direction (direction perpendicular to the operating direction of the magnet array  34 M) to the magnet array  34 M by the Phase B coil array  24 B. Consequently, application voltage to the Phase B coil array  24 B will preferably go to peak value at the timing coincident with the phase of 2π. 
     As shown in  FIG. 6B , the Phase A coil array  14 A reverses polarity at the timing coincident with the phase of 2π.  FIG. 6B  depicts the state where the phase is π/4; polarity of the Phase A coil array  14 A is now the reverse of that in  FIG. 6A . In this state, both the Phase A coil array  14 A and the Phase B coil array  24 B impart identical driving force in the operating direction to the magnet array  34 M.  FIG. 6C  depicts the state where the phase is just prior to π/2. In this state, which is the opposite of the state of  FIG. 6A , only the Phase A coil array  14 A imparts driving force in the operating direction to the magnet array  34 M. At the timing coincident with the phase of π/2. the polarity of the Phase B coil array  24 B reverses, producing the polarity depicted in  FIG. 6D .  FIG. 6D  depicts the state where the phase is 3π/4. In this state, both the Phase A coil array  14 A and the Phase B coil array  24 B impart identical driving force in the operating direction to the magnet array  34 M. 
     As will be understood from  FIGS. 6A to 6D , polarity of the Phase A coil array  14 A switches at the timing when the coils of the Phase A coil array  14 A are situated in opposition to the magnets of the magnet array  34 M. The Phase B coil array behaves in the same way. As a result, driving force will be generated substantially constantly from all of the coils, making it possible to generate a high level of torque. 
     The operation during the period where the phase is between π and 2π is substantially the same as that shown in  FIGS. 6A to 6D , and need not be described in detail. However, it should be noted that polarity of the Phase A coil array  14 A again reverses at the timing coincident with the phase of π, and polarity of the Phase B coil array  24 B again reverses at the timing coincident with the phase of 3π/2. 
     As will be understood from the preceding discussion, the electric motor of the present embodiment affords driving force of the magnet array  34 M in the operating direction, by utilizing attracting force and repelling force between the magnet array  34 M and the coil arrays  14 A,  24 B. In particular, in the present embodiment, since the coil arrays  14 A,  24 B are situated at opposite sides of the magnet array  34 M, magnetic flux to both sides of the magnet array  34 M will be utilized for generating driving force. Consequently, utilization of magnetic flux is higher in comparison to where only one side of the magnets is utilized for generating driving force as in conventional electric motors, thereby affording a motor with good efficiency and high torque. However, it would be possible to omit one of the two coil arrays  14 A,  24 B. 
     In preferred practice, the support members  12 A,  22 B,  32 M will be respectively formed from nonmagnetic material. Also, in preferred practice, among the various components of the motor unit of the present embodiment, all components except for the electrical wiring including the coils and sensors, the magnets, and the rotating shaft and its bearings will be formed from materials that are nonmagnetic and electrically nonconductive. By dispensing with a core made of a magnetic body, it is possible to achieve smooth and consistent operation, without the occurrence of cogging. By dispensing with a yoke as part of the magnetic circuit, excitation loss (eddy-current loss) will be held to very low levels, and a motor with good efficiency attained. 
     1-B. Configuration of Drive Control Circuit 
       FIGS. 7A and 7B  show the configuration of drive control circuits for the motor of Embodiment 1.  FIG. 7A  depicts the configuration during calibration of sensor waveform, and  FIG. 7B  depicts the configuration during actual use. “Calibration of sensor waveform” is used synonymously with “correction of sensor output waveform.” 
     As shown in  FIG. 7A , during calibration, a drive control circuit  200  for calibration purposes is connected to the connector  90  of the motor unit  100 . This drive control circuit  200  has a power circuit  210 , a CPU  220 , an I/O interface  230 , a PWM controller  240 , a driver circuit  250 , and a communication unit  260 . The power circuit  210  supplies power to the circuits in the drive control circuit  200  and to the motor unit  100 . The CPU  220  controls the operation of the drive control circuit  200  by means of making settings in the various circuits in the drive control circuit  200 . The I/O interface  230  has the function of receiving sensor outputs SSA, SSB supplied from the motor unit  100 , and supplying these to the CPU  220 . The CPU  220  decides whether the received sensor outputs SSA, SSB have desired waveform shape, and determines an offset correction values Poffset and gain correction values Pgain that will give the desired waveform shape. The method for determination will be discussed in detail later. Hereinafter the offset correction value will be termed simply “offset,” and the gain correction value will be termed simply correction value will be termed simply “gain.” 
     The PWM controller  240  generates a PWM signal for driving the coils. The driver circuit  250  is a bridge circuit for driving the coils. The circuit design and operation of the PWM controller  240  and the driver circuit  250  will be discussed later. The communication unit  260  has a function whereby the sensors  16 A,  26 B are presented with and store in memory the offset correction values Poffset and the gain correction values Pgain that are determined through calibration. The communication unit  260  also has a function for transmitting the correction values Poffset, Pgain stored in the sensors  16 A,  26 B to an external device. In order to distinguish among correction values for the Phase A sensor  16 A and correction values for the Phase B sensor  26 B, the communication unit  260  sends and receives an ID code (identification signal) for each sensor, together with the correction values. Where correction values are transmitted using ID codes in this way, it is possible to transmit correction values for multiple sensors via a single communication bus, while distinguishing them from each other. 
     As shown in  FIG. 7B , during actual use of the motor, a drive control circuit  300  which is different from that used during calibration is connected to the connector  90  of the motor unit  100 . This drive control circuit  300  corresponds to the drive control circuit  200  for calibration, except that the communication unit  260  is omitted. The CPU  220  may be omitted in the configuration shown in  FIGS. 7A and 7B . If the CPU  220  is omitted, the functions of the CPU  220  described in this embodiment will be performed by other circuitry such as a logic circuit and/or a non-volatile memory. Alternatively, the CPU  220  may be replaced with a communication circuit or an interface circuit, which receives various instructions from an external device and transfers the same to the circuit elements within the device control circuit  200  or  300 . 
       FIG. 8  is a diagram depicting the internal configuration of the driver circuit  250 . The Phase A driver circuit  252  is a H-bridge circuit which drives the Phase A coil array  14 A in response to AC drive signals DRVA 1 , DRVA 2 . The white circles at the terminal part of the blocks depicting the drive signals indicate negative logic, with the signal being inverted. The arrows labeled IA 1 , IA 2  respectively indicate direction of current flow by the drive signals DRVA 1 , DRVA 2 . The configuration of the Phase B driver circuit  254  is the same as that of the Phase A driver circuit  252 ; flow of current IB 1 , IB 2  by drive signals DRVB 1 , DRVB 2  is shown. 
       FIG. 9  is a diagram depicting the internal configuration of the magnetic sensor  16 A used in Embodiment 1. Since the Phase A sensor  16 A and the Phase B sensor  26 B have identical configuration, only the Phase A sensor  16 A will be discussed below. 
     The magnetic sensor  16 A has a magnetic sensor element  410 , an offset correction circuit  420 , a gain correction circuit  430 , an offset memory  440 , a gain memory  450 , an amplifier  460 , an ID code register  470 , and a communication unit  480 . The magnetic sensor element  410  is a Hall element, for example. 
     During calibration ( FIG. 7A ), the communication unit  480  communicates with the drive control circuit  200  and receives an offset correction value Poffset and a gain correction value Pgain for sensor output, together with a sensor ID. An ID unique to the sensor may be recorded in the ID code register  470  inside the sensor, or an ID may be set using an external switch. In the example of  FIG. 9 , an ID may be set using an external switch  472  such as a DIP switch. However, it is possible for the ID code to be recorded in the motor by any of various other means besides a DIP switch. For example, it would be possible to eliminate the external switch  472  and instead construct the ID code register  470  from nonvolatile memory. In the event that the ID provided by the drive control circuit  200  matches the ID in the ID code register  470 , the communication unit  480  will store the offset correction value Poffset and the gain correction value Pgain in the memory  440 ,  450  respectively. The offset correction circuit  420  and the gain correction circuit  430  will correct the waveform of the magnetic sensor element  410  in accordance with these correction values Poffset, Pgain. The corrected sensor output is then amplified by the amplifier  460 , and output as the sensor output SSA. 
     As will be understood from the discussion above, the circuit elements  420 ,  430 ,  440 ,  450  of  FIG. 9  function as the output waveform correcting unit for correcting the output waveform of the sensor  16 A. In preferred practice the memory  440 ,  450  will be composed of nonvolatile memory. 
       FIGS. 10A to 10E  show the internal configuration and operation of the PWM controller  240  ( FIG. 7A ). The PWM controller  240  has a basic clock generating circuit  510 , a 1/N frequency divider  520 , a PWM unit  530 , a moving direction register  540 , multipliers  550 ,  552 , encoders  560 ,  562 , AD converters  570 ,  572 , a voltage control value register  580 , and an excitation interval setting unit  590 . 
     The basic clock generating circuit  510  is a circuit that generates a clock signal PCL of prescribed frequency, and is composed of a PLL circuit, for example. The frequency divider  520  generates a clock signal SDC of a frequency which is 1/N the frequency of the clock signal PCL. The value of N is set to a prescribed constant. This value of N has been previously established in the frequency divider  520  by the CPU  220  ( FIG. 7A ). The PWM unit  530  generates AC drive signals DRVA 1 , DRVA 2 , DRVB 1 , DRVB 2  ( FIG. 8 ) in response to the clock signals PCL, SDC, multiplication values supplied by the multipliers  550 ,  552 , a moving direction value RI supplied by the moving direction value register  540 , positive/negative sign signals Pa, Pb supplied by the encoders  560 ,  562 , and excitation interval signals Ea, Eb supplied by the excitation interval setting unit  590 . This operation will be discussed later. 
     A value RI indicating the direction of rotation of the motor is established in the moving direction value register  540  by the CPU  220 . In the present embodiment, the motor undergoes forward rotation when the moving direction value RI is L level, and reverse rotation when it is H level. 
     The other signals Ma, Mb, Pa, Pb, Ea, Eb presented to the PWM unit  530  are determined in the manner described below. The multiplier  550 , the encoder  560 , and the AD converter  570  are circuits for use in Phase A; the multiplier  552 , the encoder  562 , and the AD converter  572  are circuits for use in Phase B. Since these circuit groups have identical operation, the discussion hereinbelow will mainly focus on operation of the Phase A circuits. 
     The magnetic sensor output SSA is presented to the AD converter  570 . This sensor output SSA has a range, for example, of from GND (ground potential) to VDD (power supply voltage), with the middle point (=VDD/2) being the middle point of the output waveform (the point at which the sine wave passes through the origin). The AD converter  570  performs AD conversion of this sensor output SSA to generate a digital value of sensor output. The output of the AD converter  570  has a range, for example, of FFh to 0 h (the “h” suffix denotes hexadecimal), with the median value of 80 h corresponding to the middle point of the output waveform. 
     The encoder  560  converts the range of the sensor output value subsequent to AD conversion, and sets the value of the middle point of the output waveform to 0. As a result, the sensor output value Xa generated by the encoder  560  assumes a prescribed range on the positive side (e.g. +127 to 0) and a prescribed range on the negative side (e.g. 0 to −127). However, the value presented by the encoder  560  to the multiplier  560  is the absolute value of the sensor output value Xa; the positive/negative sign thereof is presented to the PWM unit  530  as the positive/negative sign signal Pa. 
     The voltage control value register  580  stores a voltage control value Ya established by the CPU  220 . This voltage control value Ya, together with the excitation interval signal Ea discussed later, functions as a value for setting application voltage of the motor; the value Ya can take a value of 0 to 1.0, for example. Assuming an instance where the excitation interval signal Ea has been set in such a way that all intervals are excitation intervals, with no non-excitation intervals being provided, Ya=0 will mean that the application voltage is zero, and Ya=1.0 will mean that the application voltage is the maximum value. The multiplier  550  performs multiplication of the voltage control value Ya and the sensor output value Xa output from the encoder  560  and conversion to an integer; the multiplication value Ma thereof is presented to the PWM unit  530 . 
       FIGS. 10B to 10E  depict operation of the PWM unit  530  in instances where the multiplication value Ma takes various different values. Here, it is assumed that all intervals are excitation intervals, with no non-excitation intervals. The PWM unit  530  is a circuit that, during each cycle of the clock signal SDC, generates one pulse with a duty factor of Ma/N. Specifically, as shown in  FIGS. 10B to 10E , in association with increase of the multiplication value Ma, the pulse duty factor of the drive signals DRVA 1 , DRVA 2  increases as well. The first drive signal DRVA 1  is a signal that generates a pulse only when the sensor output SSA is positive, and the second drive signal DRVA 2  is a signal that generates a pulse only when the sensor output SSA is negative; in  FIGS. 10B to 10E , these are shown together. For convenience, the second drive signal DRVA 2  is shown as negative pulses. 
       FIGS. 11A to 11D  depict correspondence relationships between sensor output waveforms and waveforms of drive signals generated by the PWM unit  530 . In the drawing, “Hiz” denotes high impedance. As explained in  FIGS. 10A to 10E , the Phase A drive signals DRVA 1 , DRVA 2  are generated by PWM control using the analog waveform of the Phase A sensor output as-is. This is true for the Phase B drive signals DRVB 1 , DRVB 2  as well. Consequently, it is possible for the Phase A coils and Phase B coil to be presented with effective voltage that exhibits change in level corresponding to change in the sensor outputs SSA, SSB. 
     The PWM unit  530  is furthermore designed so that a drive signal is output during excitation intervals that are indicated by the excitation interval signals Ea, Eb supplied by the excitation interval setting unit  590 , and so that no drive signal is output during intervals other than the excitation intervals (non-excitation intervals).  FIGS. 11E and 11F  depict drive signal waveforms produced in the case where excitation intervals EP and non-excitation intervals NEP have been established by the excitation interval signals Ea, Eb. In the excitation intervals EP, the drive signal pulses of FIGS. l 1 C and l 1 D are generated as is; in the non-excitation intervals NEP, no pulses are generated. By establishing excitation intervals EP and non-excitation intervals NEP in this way, there is no application of voltage to the coils in proximity to the middle points of the back electromotive force waveform (i.e. in proximity to the middle points of sensor output), thus making possible further improvement of motor efficiency. In preferred practice excitation intervals EP will be established in intervals that are symmetric about the peaks of the back electromotive force waveform (the induced voltage waveform), and the non-excitation intervals NEP will be established in intervals that are symmetric about the middle points of the back electromotive force waveform. 
     As discussed previously, if the voltage control value Ya is set to a value less than 1, the multiplication value Ma will be small compared with the voltage control value Ya. Consequently, effective adjustment of application voltage through the voltage control value Ya is possible as well. 
     As will be understood from the preceding discussion, with the motor of the present embodiment, it is possible to adjust the application voltage using both the voltage control value Ya and the excitation interval signal Ea. This is true for Phase B as well. In preferred practice, relationships between the preferred application voltage on the one hand, and the voltage control value Ya and the excitation interval signal Ea on the other, will be stored in advance in table format in memory in the drive control circuit  300 . By so doing it is possible, when the drive control circuit  300  has received the preferred application voltage from the outside, for the CPU  220  in response to the drive signal to set the voltage control value Ya and the excitation interval signal Ea in the PWM controller  240 . Adjustment of application voltage does not require the use of both the voltage control value Ya and the excitation interval signal Ea, and it would be acceptable to use either of these instead. 
       FIG. 12  is a block diagram depicting the internal configuration of the PWM unit  530  ( FIG. 10A ). The PWM unit  530  has counters  531 ,  532 , EXOR circuits  533 ,  534 , and drive waveform shaping units  535 ,  536 . The counter  531 , the EXOR circuit  533 , and the drive waveform shaping unit  535  are circuits used for Phase A; the counter  532 , the EXOR circuit  534 , and the drive waveform shaping unit  536  are circuits used for Phase B. Their operation will be described below. 
       FIG. 13  is a timing chart depicting operation of the PWM unit  530  during forward rotation of the motor. There are shown the two clock signals PCL and SDC, the moving direction value RI, the excitation interval signal Ea, the multiplication value Ma, the positive/negative sign signal Pa, the counter value CM 1  in the counter  531 , the output SI of the counter  531 , the output S 2  of the EXOR circuit  533 , and the output signals DRVA 1 , DRVA 2  of the drive waveform shaping unit  535 . For each cycle of the clock signal SDC, the counter  531  repeats an operation decrementing the count value CM 1  to 0 in sync with the clock signal PCL. The initial value of the count value CM 1  is set to the multiplication value Ma. In  FIG. 13 , for convenience in illustration, negative multiplication values Ma are shown as well; however, the counter  531  uses the absolute values |Ma| thereof. The output S 1  of the counter  531  is set to H level when the count value CM 1  is not 0, and drops to L level when the count value CM 1  is 0. 
     The EXOR circuit  533  outputs a signal S 2  representing exclusive OR of the positive/negative sign signal Pa and the moving direction value RI. When the motor is running forward, the moving direction value RI is L level. Consequently, the output S 2  of the EXOR circuit  533  will be a signal identical to the positive/negative sign signal Pa. The drive waveform shaping unit  535  generates the drive signals DRVA 1 , DRVA 2  from the output S 1  of the counter  531  and the output S 2  of the EXOR circuit  533 . Specifically, in the output S 1  of the counter  531 , the signal during intervals in which the output S 2  of the EXOR circuit  533  is L level is output as the drive signal DRVA 1 , and the signal during intervals in which the output S 2  of the EXOR circuit  533  is H level is output as the drive signal DRVA 2 . The excitation interval signal Ea falls to L level in proximity to the right end in  FIG. 13 , thereby setting up a non-excitation interval NEP. Consequently, neither of the drive signals DRVA 1 , DRVA 2  is output during this non-excitation interval NEP, and a state of high impedance is maintained. 
       FIG. 14  is a timing chart depicting operation of the PWM unit  530  during reverse rotation of the motor. When the motor is running in reverse, the moving direction value RI is H level. As a result, the two drive signals DRVA 1 , DRVA 2  switch position with those in  FIG. 13 , and it will be appreciated that the motor runs in reverse as a result. The Phase B circuits  532 ,  534 ,  536  of the PWM unit  530  operate the same as those discussed above. 
       FIGS. 15A and 15B  show the internal configuration and operation of the excitation interval setting unit  590 . The excitation interval setting unit  590  has an electronic variable resistor  592 , voltage comparators  594 ,  596 , and an OR circuit  598 . The resistance Rv of the electronic variable resistor  592  is set by the CPU  220 . The voltages V 1 , V 2  at the two terminals of the electronic variable resistor  592  are presented to one input terminal of each of the voltage comparators  594 ,  596 . The sensor output SSA is presented to the other input terminal of the voltage comparators  594 ,  596 . In  FIG. 15A , for convenience the Phase B circuits have been eliminated from the illustration. The output signals Sp, Sn of the voltage comparators  594 ,  596  are input to the OR circuit  598 . The output of the OR circuit  598  is the excitation interval signal Ea, used for distinguishing excitation intervals from non-excitation intervals. 
       FIG. 15B  depicts operation of the excitation interval setting unit  590 . The voltages V 1 , V 2  at the terminals of the electronic variable resistor  592  are modified by adjusting the resistance Rv. Specifically, the terminal voltages V 1 , V 2  are set to values of equal difference from the median value of the voltage range (=VDD/2). In the event that the sensor output SSA is higher than the first voltage V 1 , the output Sp of the first voltage comparator  594  goes to H level, whereas in the event that the sensor output SSA is lower than the second voltage V 2 , the output Sn of the second voltage comparator  596  goes to H level. The excitation interval signal Ea is a signal assuming the logical sum of the these output signals Sp, Sn. Consequently, as shown at bottom in  FIG. 15B , the excitation interval signal Ea can be used as a signal indicating excitation intervals EP and non-excitation intervals NEP. The excitation intervals EP and non-excitation intervals NEP are established by means of adjustment of the variable resistance Rv by the CPU  220 . 
     1-C. Correction of Sensor Output 
       FIGS. 16A to 16C  show the specifics of offset correction of sensor output.  FIG. 16A  shows the desired waveform SSideal of sensor output.  FIG. 16B  depicts an example of sensor output SSup shifted upward from the desired waveform SSideal, and sensor output SSdown shifted downward. In such instances, by applying vertical offset Poffset 1  to the shifted sensor output (e.g. SSup), it can be corrected to a waveform approximating the desired waveform SSideal. This correction is carried out in such a way that, for example, the middle point of the output waveform (the location where output level assumes its median value) falls within a prescribed permissible range, from the median value VDD/2 of the sensor output voltage range (GND to VDD). 
       FIG. 16C  depicts an example of sensor output SSright shifted rightward from the desired waveform SSideal, and sensor output SSleft shifted leftward. In such instances, by applying sideways offset Poffset 2  to the shifted sensor output (e.g. SSright), it can be corrected to a waveform approximating the desired waveform SSideal. This correction is carried out in such a way that the phase of the middle point of the output waveform (the location where output level assumes its median value) falls within a prescribed permissible range, from the phase of the median value VDD/2 of the sensor output voltage range (GND to VDD). The determination as to whether the sensor output is offset to the sideways direction can be made by stopping the rotor of the motor at a prescribed reference location (the location that should properly be the middle point of the output waveform), and checking whether the sensor output is equal to the median value VDD/2 of the sensor output voltage range. 
     In this way it is possible to correct both vertical offset Poffset 1  and sideways offset Poffset 2 . However, in many instances it will suffice for practical purposes to correct only one of these two types of offset. Accordingly, in the procedure described below, it is assumed that, of the two types of offset, only vertical offset Poffset 1  is to be corrected. 
       FIGS. 17A to 17C  show the specifics of gain correction of sensor output.  FIG. 17A  depicts the desired output waveform SSideal for sensor output; it is the same as that in  FIG. 16A .  FIG. 17B  depicts a sensor output waveform SSmall having a smaller peak than the desired output waveform SSideal. In this case, by multiplying the sensor output waveform SSmall by gain Pgain greater than 1, it can be corrected to a waveform approximating the desired waveform SSideal. More specifically, this gain correction is carried out in such a way that the peak value of the corrected sensor output falls within a prescribed permissible range.  FIG. 17C  depicts a sensor output waveform SSlarge having a larger peak than the desired output waveform SSideal. With this sensor output waveform SSlarge, since points that would go above the maximum value VDD of the voltage range (i.e. the power supply voltage) come to a halt at VDD, the peaks are observed to have a flattened waveform as indicated by the dot-and-dash line. In this case, by multiplying the sensor output waveform SSlarge by gain Pgain smaller than 1, it can be corrected to a waveform approximating the desired waveform SSideal. 
       FIG. 18  is a flowchart depicting the calibration procedure of sensor output. In Step S 100 , the drive control circuit  200  for calibration purposes is installed in the motor unit  100  ( FIG. 7A ). In Step S 200 , offset correction as described in  FIG. 16B  is performed, and in Step S 300  gain correction as described in  FIGS. 17B and 17C  is performed. In Step S 400 , the drive control circuit is replaced with the circuit  300  for actual use ( FIG. 7B ). 
       FIG. 19  is a flowchart depicting in detail the procedure of offset correction. While the following description pertains to offset correction of the Phase A sensor, correction would be performed in the same way for the Phase B sensor. When offset correction is performed for one magnetic sensor, the ID of the magnetic sensor targeted for correction is initially specified by the CPU  220 , and the correction process is initiated for the specified magnetic sensor. 
     In Step S 210 , the rotor unit  30  ( FIG. 1A ) is rotated and halted where the magnetic sensor  16 A is at the location of a magnet N/S pole boundary. This operation can be carried out manually, with the cover of the motor unit open, for example. In Step S 220 , an initial value of offset Poffset is transmitted from the drive control circuit  200  to the magnetic sensor  16 A and stored in the offset memory  440  ( FIG. 9 ) in the magnetic sensor  16 A. Any value can be used as the initial value for Poffset. However in preferred practice the initial value will be set to a positive non-zero value, so as permit increase or decrease of the offset Poffset by means of offset correction. 
     In Step S 230 , the voltage Ebc of the output signal SSA output by the magnetic sensor  16 A is measured. In Step S 240 , it is decided whether the measured voltage Ebc is equal to or greater than the minimum value E 1 min (see  FIG. 16B ) of a permissible range. In the event that the voltage Ebc is smaller than the minimum value E 1 min of the permissible range, since the voltage Ebc falls outside of the permissible range, the routine moves to Step S 250 , the offset value Poffset is incremented by one, and then in Step S 280  the offset value Poffset is written to the magnetic sensor  16 A. On the other hand, in the event that the voltage Ebc is equal to or greater than the minimum value E 2 min of the permissible range in Step S 240 , it is then decided in Step S 260  whether the voltage Ebc is equal to or less than the maximum value E 1 max of the permissible range. In the event that the voltage Ebc is greater than the maximum value E 1 max of the permissible range, since the voltage Ebc falls outside of the permissible range, the routine moves to Step S 270 , the offset value Poffset is decremented by one, and then in Step S 280  the offset value Poffset is written to the magnetic sensor  16 A. If on the other hand in Step S 260  the voltage Ebc is equal to or less than the maximum value E 1 max of the permissible range, the voltage Ebc falls within the permissible range, and therefore the process of  FIG. 19  terminates. 
       FIG. 20  is a flowchart depicting in detail the procedure of gain correction in Step S 300 . With regard to gain correction as well, only correction of the Phase A sensor will be discussed. When gain correction is carried out for one sensor, the ID of the magnetic sensor targeted for correction is initially specified by the CPU  220 , and the correction process is initiated for the specified magnetic sensor. 
     In Step S 310 , the rotor unit  30  ( FIG. 1A ) is rotated and halted where the magnetic sensor  16 A is at a location directly opposite the S pole or N pole of a magnet. This location is the location of maximum magnetic flux density of the magnetic sensor  16 A. This operation can be carried out manually, with the cover of the motor unit open, for example. In Step S 320 , an initial value of gain Pgain is transmitted from the drive control circuit  200  to the magnetic sensor  16 A and stored in the gain memory  450  ( FIG. 9 ) in the magnetic sensor  16 A. While any value can be used as the initial value for gain Pgain, in preferred practice it will be set to a positive non-zero value. 
     In Step S 330 , the voltage Ebm of the output signal SSA of the magnetic sensor  16 A is measured. In Step S 340 , it is decided whether the measured voltage Ebm is equal to or greater than the minimum value E 2 min (see  FIG. 17B ) of a permissible range. In the event that the voltage Ebm is smaller than the minimum value E 2 min of the permissible range, since the voltage Ebm falls outside of the permissible range, the routine moves to Step S 350 , the gain value Pgain is incremented by one, and then in Step S 380  the gain value Pgain is written to the magnetic sensor  16 A. On the other hand, in the event that the voltage Ebm is equal to or greater than the minimum value E 2 min of the permissible range in Step S 340 , it is then decided in Step S 360  whether the voltage Ebm is equal to or less than the maximum value E 2 max of the permissible range. In the event that the voltage Ebm is greater than the maximum value E 2 max of the permissible range, since the voltage Ebm falls outside of the permissible range, the routine moves to Step S 370 , the gain value Pgain is decremented by one, and then in Step S 380  the gain value Pgain is written to the magnetic sensor  16 A. If on the other hand in Step S 360  the voltage Ebm is equal to or less than the maximum value E 2 max of the permissible range, the voltage Ebm falls within the permissible range, and therefore the process of  FIG. 20  terminates. 
     In preferred practice, the maximum value E 2 max of the permissible range during gain correction will be a value slightly smaller than the maximum value possible for sensor output (i.e. the power supply voltage VDD). The reason is that since sensor output voltage cannot go above the power supply voltage VDD, if the maximum value E 2 max of the permissible range is set to the power supply voltage VDD, there exists a possibility that it will not be possible to determine if the peak of the sensor output SSA prior to correction is flattened as depicted by the dot-and-dash line in  FIG. 17C . 
     In this way, with the electric motor of the present embodiment, it is possible for offset correction and gain correction of output waveform to be carried out respectively, for the respective magnetic sensors  16 A,  26 B. Moreover, the drive control circuit  300  generates drive signals utilizing continuous change in analog output of the sensors. Consequently, through correction of the output of the magnetic sensors  16 A,  26 B to prescribed waveform shape, it is possible to achieve a high efficiency motor that experiences minimal noise and vibration. 
     1-D. Modification Example of Drive Control Circuit 
       FIG. 21  is a block diagram depicting a modification example of the drive control circuit for calibration. This drive control circuit  200   a  is similar to the drive control circuit  200  depicted in  FIG. 7A , but omits the power supply circuit  210 , the PWM controller  240 , and the driver circuit  250 . Power to the motor unit  100   a  is supplied directly to the motor unit  100   a  via the connector  90 . The PWM controller  240  and the driver circuit  250  are provided inside the motor unit  100   a . With this arrangement as well, sensor waveform can be corrected and the motor operated with high efficiency, in the same manner as the motor depicted in  FIGS. 7A and 7B . 
       FIG. 22  is a block diagram depicting the magnetic sensors and drive signal generating circuit in another modification example of Embodiment 1. In this modification example, the magnetic sensors  16 A,  26 B contain magnetic sensor elements only; the other circuit elements  420 - 480  within the magnetic sensors depicted in  FIG. 9  are not included in these magnetic sensors. The drive signal generating circuit  600  has amplifiers  610 ,  620 , AD converters  612 ,  622 , offset correction circuits  614 ,  624 , gain correction circuits  616 ,  626 , a PWM controller  240 , a correction value memory  660 , and a communication unit  670 . The offset correction circuits  614 ,  624  are the same as the offset correction circuit  420  shown in  FIG. 9 , and the gain correction circuits  616 ,  626  are the same as the gain correction circuit  430  shown in  FIG. 9 . The correction value memory  660  stores offset correction values and gain correction values relating to both the Phase A sensor  16 A and the Phase B sensor  26 B, with these values being associated with the respective ID codes. The PWM controller  240  is the same as that shown in  FIG. 10A . The communication unit  670  is coupled to the CPU  220  via the I/O interface  230 . During calibration, the outputs of the sensors  16 A,  26 B are amplified by the amplifiers  610 ,  620 , converted to a digital signal by the AD converter  232 , and presented to the CPU  220  via the I/O interface  230 . 
     With the circuit design of  FIG. 22 , it is possible, for example, for the drive signal generating circuit  600  and the driver circuit  250  to be installed in the motor unit, and for a circuit including the CPU  220 , the I/O interface  230 , and the AD converter  232  to connect with the connector  90  of the motor unit ( FIG. 7A ). With this circuit design, as with the embodiment discussed previously, it is possible for sensor waveform to be corrected and the motor operated with high efficiency. 
       FIG. 23  is a block diagram depicting a modification example of the drive signal generating circuit. In this drive signal generating circuit  600   a , the PWM controller  240  of the drive signal generating circuit  600  shown in  FIG. 22  is replaced with a pre-amplifier  630  and an amplifier  640 . The configuration is otherwise the same as that shown in  FIG. 22 . The pre-amp  630  and the amp  640  generate drive signals by amplifying as-is the corrected analog sensor outputs. In this way, even where sensor output is amplified using analog circuits and without employing PWM control, it is possible nevertheless to operate the motor with high efficiency, by means of carrying out correction of sensor waveform as described above. 
     1-E. Other Procedure for Implementing Sensor Output Correction 
       FIG. 24  is a flowchart depicting another procedure for carrying out offset correction. In Step S 1200 , the CPU  220  rotates the rotor  30 . In the procedure of  FIG. 24 , with the rotor  30  continuing to rotate, the CPU  220  executes offset correction beginning with Step S 1210 . In Step S 1210 , an initial value of offset Poffset is sent from the drive control circuit  200  to the magnetic sensor  16 A, and is stored in the offset memory  440  ( FIG. 9 ) of the magnetic sensor  16 A. This process is the same as Step S 220  of  FIG. 19 . 
     In Step S 1220 , the maximum voltage Ebcmax and minimum voltage Ebcmin of sensor output are acquired. These voltages Ebcmax, Ebcmin correspond to the upper peak value and lower peak value of the sensor output SSup (or SSdown) shown in  FIG. 16B , for example. In Step S 1230 , an average value Ebctyp of the maximum voltage Ebcmax and minimum voltage Ebcmin is calculated. This average value Ebctyp is a voltage value corresponding to the middle point of the sensor output waveform. 
     Steps S 1240  to S 1280  are substantially identical to Steps S 240  to S 280  of  FIG. 19 , but with the average value Ebctyp mentioned above replacing the voltage value Ebc of  FIG. 19 . Specifically, in Steps S 1240  to S 1280 , the offset value Poffset is adjusted so that the average value Ebctyp lies within the permissible range shown in  FIG. 16B . 
     As will be understood from this example, it is also possible for offset correction to be carried out utilizing the peak voltage of sensor voltage. In the procedure of  FIG. 24 , there is no need to position the rotor at a location corresponding to a point of interest of the sensor output waveform as in the procedure of  FIG. 19 , and a resultant advantage is that the correction operation is easier. 
       FIG. 25  is a flowchart depicting another procedure for carrying out gain correction. In Step S 1300 , the CPU  220  rotates the rotor  30 . In the procedure of  FIG. 25 , with the rotor  30  continuing to rotate, the CPU  220  executes gain correction beginning with Step S 1310 . In Step S 1310 , an initial value of gain Pgain is sent from the drive control circuit  200  to the magnetic sensor  16 A, and is stored in the gain memory  450  ( FIG. 9 ) of the magnetic sensor  16 A. This process is the same as Step S 320  of  FIG. 20 . 
     In Step S 1320 , the maximum voltage Ebmmax of sensor output is acquired a prescribed number of times. This maximum voltage Ebmmax corresponds, for example, to the upper peak value of the sensor output SSsmall shown in  FIG. 17B  (or SSlarge of  FIG. 17C ). Alternatively, instead of the upper peak value, the lower peak value may be acquired a prescribed number of times. The number of times that the upper peak value appears in the course of one revolution of the rotor is equal to one-half the pole number P of the motor. With the 6-pole motor depicted in  FIGS. 1A to 1D , the upper peak value will appear three times in the course of one revolution. In Step S 1320 , in preferred practice maximum voltage Ebmmax will be sampled (P×N)/2 times. Here, N is a prescribed integer equal to 1 or greater, preferably 2 or greater. In Step S 1230 , an average value Ebmave is calculated for the (P×N)/2 sampled maximum voltages Ebmmax. 
     Steps S 1340  to S 1380  are substantially identical to Steps S 340  to S 380  of  FIG. 20 , but with the average value Ebmave mentioned above replacing the voltage value Ebm of  FIG. 20 . Specifically, in Steps S 1340  to S 1380 , the gain value Pgain is adjusted so that the average value Ecmave lies within the permissible range shown in  FIG. 17B . 
     In the procedure of  FIG. 25 , there is no need to position the rotor at a location corresponding to a point of interest of the sensor output waveform as in the procedure of  FIG. 20 , and a resultant advantage is that the correction operation is easier. Moreover, since gain correction is carried out using an average value of several peak voltages, it is possible to establish ideal gain in consideration of the multiple magnets overall. 
       FIG. 26  is a flowchart depicting yet another procedure for carrying out gain correction. In the procedure of  FIG. 26 , Steps S 1330 , S 1340 , and S 1360  of  FIG. 25  are replaced by Steps S 1335 , S 1345 , and S 1365 , but the procedure is otherwise the same as in  FIG. 25 . 
     In Step S 1335 , a maximum voltage Ebmpk is selected from among the (P×N)/2 maximum voltages Ebmmax. In Steps S 1345  and S 1365 , gain correction is carried out using this maximum voltage Ebmpk. It is possible to derive appropriate gain correction values Pgain in this manner as well. 
     The values of the threshold values E 2  min and E 2 max used in Steps S 1345  and S 1365  of  FIG. 26  can be different from those of the threshold values E 2  min and E 2 max used in Steps S 1340  and S 1360  of  FIG. 25 . 
     2. Embodiment 2 
       FIG. 27  is a block diagram depicting the configuration of the drive system in Embodiment 2. This drive system is furnished with multiple electric motors  100   b . Here, the number of motors is denoted by M where M is an integer equal to 2 or greater. The multiple electric motors  100   b  are connected to a drive power supply  1200  via a power line PL, and also connected to a system controller  1300  via a control line CL. The power line PL and the control line CL are shared by the multiple electric motors  100   b . Alternatively, power lines PL may be individually connected to the motors. 
     Each of the electric motors  100   b  is assigned a unique ID code (identification code) identifying it from the other electric motors. As will be discussed later, the system controller  1300  uses this ID code to send commands to individual electric motors  100   b  via the control line CL. 
       FIG. 28  is a block diagram depicting the configuration of the drive control circuit provided in each individual electric motor  10   b . This drive control circuit  1600  uses sensor outputs of the analog magnetic sensors  16 A,  26 B in the electric motor  100   b  to generate AC drive signals for driving the magnet coils  14 A,  24 B. In Embodiment 2, two-phase brushless DC motors are used as the electric motors  100   b ; the suffixes “A” and “B” appended to the end of the symbols of the sensors  16 A,  26 B and the coils  14 A,  14 B denote use for Phase A and Phase B respectively. The configuration of the motor unit and the driving method can be the same as the configuration and driving method of Embodiment 1 described previously with reference to  FIGS. 1A through 6D . 
     The drive control circuit  1600  has amplifiers  1610 ,  1620 , AD converters  1612 ,  1622 , offset correction circuits  1614 ,  1624 , gain correction circuits  1616 ,  1626 , a PWM controller  1630 , a driver circuit  1640 , a memory  1660 , a circuit power supply  1650 , a communication unit  1670 , and an ID code register  1680 . The offset correction circuits  1614 ,  1624  are circuits for executing offset correction of the sensor outputs SSA, SSB; the gain correction circuits  1616 ,  1626  are circuits for executing gain correction of the sensor outputs SSA, SSB. Here, offset correction and gain correction of the sensor outputs are the same as those described in Embodiment 1. It is possible to increase the efficiency of the motors by means of carrying out these correction operations. During the process for determining the offset correction value and the gain correction value (termed “calibration”), the outputs SSA, SSB of the sensors  16 A,  16 B are amplified by the amplifiers  1610 ,  1620 , converted to digital signals by the AD converters  1612 ,  1622 , then stored temporarily in the memory  1660  and presented to the system controller  1300  via the communication unit  1670 . 
     The PWM controller  1630  is a circuit for executing PWM control utilizing the offset-corrected and gain-corrected sensor outputs, and generating drive signals. A motor speed controller  1631  provided to the PWM controller  1630  executes speed-priority control for the purpose of bringing the speed of the electric motor into line with target speed. A torque controller  1632  executes torque-priority control for the purpose of bringing the torque of the electric motor into line with target torque. A rotation direction controller  1632  executes control for the purpose of setting the rotation direction of the electric motor to that of either normal rotation or reverse rotation. The driver circuit  1640  is so-called H-bridge circuit. Motor torque can be detected using a sensor (not shown) that measures coil voltage and current. Motor speed and rotation direction can be detected using a rotation detection circuit (not shown) that detects speed and rotation direction from the output signals of the sensors  16 A,  26 B. As the PWM controller  1630 , one identical to the PWM controller  240  of Embodiment 1 may be used. 
     The memory  1660  stores offset correction values and gain correction values relating to both the Phase A sensor  16 A and the Phase B sensor  26 B, as well as various settings used by the PWM controller  1630 . Since it is preferable for offset correction values and gain correction values to be held even when the power is shut off, the part of the memory used to store these values will preferably be constituted as nonvolatile memory. 
     The communication unit  1670  is coupled to the I/O interface  1330  of the system controller  1300  via the communication line CL. Besides this interface  1330 , the system controller  1300  also includes a CPU  1320  and a memory, not shown. On the basis of a computer program, the CPU  1320  executes various control processes, discussed later. 
     In the ID code register  1680 , a ID code identifying the individual electric motor is recorded, or an ID code is set by means of an external switch. In the example of  FIG. 28 , it is possible to set the ID code using a DIP switch  1682 . However, it is possible for the ID code to be recorded or set in the motor by any of various other means besides a DIP switch. For example, it is possible to eliminate the DIP switch and instead construct the ID code register  1680  from nonvolatile memory. Using this ID code, individual communication is possible between the system controller  1300  and the communication unit  1670  of each electric motor. The specific communication method will be discussed later. 
       FIG. 29  is a flowchart illustrating the procedure for individual control of a motor in Embodiment 2. In Step S 10 , power to the entire system is switched on by the user, whereupon in Step S 20  the system controller  1300  makes initial settings for the individual motors. For example, various coefficients or constants (e.g. upper limit motor speed etc.) used for control within each motor, as well as initial operational parameters (parameters representing target motor speed, target torque, rotation direction etc.), may be set by way of these initial settings. During the initial setting process, the system controller  1300  transmits the initial settings together with the ID of the individual motor, thereby establishing the initial settings for the individual motor. 
     In Steps S 30  and S 40 , the system controller  1300  selects any one of the M motors, and by sending a control command or control instruction to the selected motor executes control of that motor. As control commands, it is possible to use commands instructing change of target motor speed, change of target torque, change of rotation direction, start/stop of braking or regeneration, stop of the motor, and so on. In Step S 30  the system controller  1300  determines which of the M motors is to be controlled, and in Step S 40  sends a control command to that motor. The control procedure within each motor at this time will be discussed later. 
     In Step S 50 , when communication with the selected motor is completed, the routine returns to Step S 30 , and Steps S 30  and S 40  are executed again. In the event that the drive system is to be stopped, in Step S 60  the system controller  1300  sends to the motors a command to halt driving of all motors. Then, in Step S 70 , power to the system is turned off by the user. 
       FIG. 30  is a flowchart illustrating the control procedure in an individual motor when a command is received. In Steps T 101 -T 107 , the communication unit  1670  ( FIG. 28 ) in the motor determines the type of command which has been received; and in Steps T 111 -T 117  the communication unit  1670  or the PWM controller  1630  executes the control or setting specified by the command. The various settings are stored in the memory  1660 . 
     For individual control of a motor, commands, such as the seven commands listed below for example, can be sent to individual motors from the system controller  1300 .
     (1) Initialization command: a command establishing various coefficients or constants (e.g. upper limit motor speed etc.) used for control within individual motors, as well as initial operational parameters (parameters representing target motor speed, target torque, rotation direction etc.).   (2) Motor speed command: where speed-priority control is executed, a command for changing the target motor speed.   (3) Torque command: where torque-priority control is executed, a command for changing the target torque.   (4) Interrupt condition command: a command stipulating an event (such as going above the upper limit current) in relation to which an interrupt request will be issued to the system controller  1300  by an individual motor.   (5) Simultaneous control condition command: a command establishing for individual motors a control sequence for use in simultaneous control mode of multiple motors, discussed later.   (6) Movement direction command: a command for changing the rotation direction of the motor.   (7) Stop command: a command for stopping the motor.   

       FIG. 31  is a timing chart showing a communication sequence that uses the communication line CL. This communication sequence is utilized in individual motor control mode. In the present embodiment, the communication line CL is a 2-wire serial communication line composed of a serial data line SDA and a serial clock line SCL. Such a serial communication line may be achieved using the I 2 C bus (trademark of Phillips), for example. However, since the simultaneous control mode to be discussed later is not specified in the I 2 C bus Specification, the protocol of this part is modified. During communication via the communication line CL, the system controller  1300  functions as the master device, and the individual motors function as slave devices. 
     During transmission of data between the system controller  1300  and an individual motor, the motor address and data are transmitted in sync with the serial clock SCL, between a Start command ST and End command ED. A Start command ST is issued by dropping the serial data SDA to Low while the serial clock SCL is High. An End command ED is issued by dropping the serial data SDA to Low while the serial clock SCL is Low, and subsequently while the serial clock SCL is High, raising the serial data SDA to High. 
     After the Start command ST is issued, a 7-bit slave address SLAD and a 1-bit transmission direction R/W are sent. Slave addresses SLAD are addresses for identifying an individual motor, and are associated on a one-to-one basis with the ID codes established in the motors. Various methods may be employed for making these associations, for example, the entire slave address SLAD may be set to the same value as the ID code of the individual motor; or several lower bits of the slave address SLAD may be set to the same value as the ID code of the individual motor. In the event that the entire slave address SLAD is not identical to the ID code, the association between the two will be stored in advance in the memory  1660  in the motor. The slave address SLAD can be considered as substantially identical to the ID code. “Identification code” is used herein in a sense including those that, as is the case with this slave address SLAD, are associated on a one-to-one association with the ID codes in the motors and that can be viewed the same as the ID codes in the motors. 
     In Embodiment 2, the initial bit of the slave address SLAD is set to a value of 1. This is for the purpose of implementing simultaneous control, to be described later. 
     The transmit direction R/W which is sent after the slave address SLAD is set Low (WRITE) in the event that data is to be sent from the system controller  1300  (master) to individual motors (slaves); and conversely is set to High (READ) when data is sent from motors to the system controller  1300 . After the transmit direction R/W, the motor specified by the slave address SLAD responds with an acknowledgement ACK. 
     In the example of  FIG. 31 , an 8-bit sub-address SBAD is transmitted following the acknowledgement ACK after the transmit direction R/W. It is possible for this sub-address SBAD to be used for identifying data of various kinds stored in the memory  1660  of the motor, for example. However, the sub-address SBAD may be omitted. After the sub-address SBAD, the motor responds with another acknowledgement ACK. 
     Once the addresses of motors have been specified in this manner, data DT is subsequently transmitted between the motors and the system controller  1300 , followed by still another acknowledgement ACK. Data DT sent from the system controller  1300  to individual motors may contain the various commands described in  FIG. 30 . On the other hand, Data DT sent from the individual motors to system controller  1300  may contain the settings that have been made for each motor, operating parameters (speed, rotation direction, torque etc.) detected by the sensors in each motor, interrupts to the system controller  1300 . 
     In Embodiment 2, where commands are sent to individual motors by the system controller  1300  in this way, since commands are sent together with identification codes (slave addresses) for the individual motors, it is possible to individually control multiple motors via a shared communication line CL. Moreover, since the system controller  1300  can acquire data from the individual motors, it is possible to check the operational status and settings of individual motors. 
       FIG. 32  is a flowchart illustrating the procedure of simultaneous control of multiple motors. In Step S 2100 , the system controller  1300  sets up a control sequence for the motors in simultaneous control mode. 
       FIG. 33  is a flowchart illustrating in detail the procedure of Step S 2100 . In Steps S 2101 -S 2103 , the system controller  1300  selects the M motors sequentially one at a time and sends a simultaneous control condition command, setting up the control sequence for the motors in simultaneous control mode. 
       FIGS. 34A and 34B  show exemplary simultaneous control sequences. The simultaneous control mode is also called “common control mode.” In Example 1 shown in  FIG. 34A , a control sequence composed of N+1 command steps STEDN is established for each of the M motors. Here, “command steps STEDN” refer to control steps for sequential execution in a time series, when carrying out simultaneous control. In simultaneous control mode, motor control starts from STEDN=0 and ends at STEDN=N. Here, N denotes an integer of 1 or more. The M motors simultaneously execute the operations specified by a given command step STEDN. For example, when STEDN=0, Motor  1  undergoes reverse rotation, Motor  2  undergoes forward rotation, and the other motors remain stopped. When STEDN=1, Motor  1  maintains reverse rotation, Motor  2  brakes (or regenerates), Motor  3  starts forward rotation, and motor M executes braking (or regeneration). The command step STEDN is updated or incremented in each motor each time that a simultaneous command or shared command, discussed later, is issued by the system controller  1300 . 
     In Example 2 shown in  FIG. 34B , the M motors carry out the same operation in each command step. As will be understood from these examples, it is possible to program mutually independent sequences for the individual motors, or to program an identical sequence for all of the motors. Simultaneous control sequences such as these are set up in the memory  1660  of each motor. A simultaneous control sequence for M motors is termed “a simultaneous control sequence set.” In preferred practice the system controller  1300  will store in its memory (not shown) one or more simultaneous control sequence sets. Where multiple simultaneous control sequence sets are stored, it will be possible to selectively implement simultaneous control of various kinds. 
     Simultaneous control sequences may be stored in the memory in each motor, rather than being stored in the system controller  1300 . With this arrangement, it is possible for the system controller  1300  to easily select the control sequence to be used, by specifying, at the outset of simultaneous control mode, which of the multiple sets of sequences is to be used. 
     Once simultaneous control sequences have been established respectively for the individual motors, control in simultaneous control mode is executed in accordance with the commands discussed below. 
       FIG. 35  is a timing chart showing the communication sequence in simultaneous control mode. When simultaneous control is to be executed, the system controller  1300  issues a Start command ST followed by an End command ED. In contrast to the normal communication sequence illustrated in  FIG. 31  in which addresses and data are issued between the Start command ST and the End command ED, during execution of simultaneous control, addresses and data are not issued between the Start command ST and the End command ED. Hereinafter such a set of commands ST and ED without accompanying addresses and data will be termed an “ST/ED command,” or in some instances “simultaneous control commands” or “shared commands.” When the motors initially receive an ST/ED command, the command step STEDN in each motor is set to 0, and control established by STEDN=0 (see  FIG. 34A  or  34 B) is executed. Subsequently, each time that the system controller  1300  issues an ST/ED command, the multiple motors respectively increment the command step STEDN, and execute control established by the command step STEDN. 
       FIG. 35  depicts an exemplary case in which simultaneous control terminates at STEDN=2, with individual control of motors executed thereafter. In Embodiment 2, since the initial bit of the slave addresses of all motors is set to 1, in the event that slave addresses are issued after a Start command ST, each motor will immediately become aware that the current mode is no longer the simultaneous control mode. Consequently, each motor can immediately distinguish between the individual control mode and the simultaneous control mode. Moreover, it is possible for the system controller  1300  to clearly distinguish between the individual control mode and the simultaneous control mode, and easily execute them. 
     It is also possible to use any other method as the method for distinguishing between the individual control mode and the simultaneous control mode. In preferred practice, however, identification codes for individual motors will not be transmitted during the simultaneous control mode. For example, in the simultaneous control mode, simultaneous control commands may be transmitted together with a so-called shared identification code (a code that the motors can recognize as being transmitted to all motors), instead of transmitting identification codes of individual motors. 
       FIG. 36  is a flowchart illustrating the control procedure in a motor when a simultaneous control command (ST/ED command) is received. Once the ST/ED command is initially received in Step T 200 , the command step STEDN is set to 0 in Step S 210 . Subsequently, when a simultaneous control command (ST/ED command) is received in Step T 220 , a determination is made as to whether the command step STEDN in each motor has reached the maximum value N; if the maximum value N has not been reached, the command step STEDN is incremented in Step T 240 . If on the other hand the maximum value N has been reached, the simultaneous control mode now terminates. In Steps T 210  and T 240 , the PWM controllers  1630  in the motors respectively execute the control content established by the command step STEDN. 
     As discussed above, in Embodiment 2 it is possible for both individual control of motors and simultaneous control of multiple motors to be implemented by means of transmitted commands from the system controller  1300  to the multiple motors using a shared communication line CL. During individual control of motors, it is possible to select only a motor whose operational status needs to be changed, and change only operation of that particular motor. During simultaneous control of motors, on the other hand, since the operations of the multiple motors can be changed simultaneously (i.e. at identical timing), it is possible to easily achieve coordinated control of the multiple motors. 
       FIG. 37  is a block diagram depicting another configuration of the drive control circuit in Embodiment 2. In this drive control circuit  1600   a , the PWM controller  1630  and the driver circuit  1640  (H-bridge circuit) of the circuit  1600  shown in  FIG. 28  are replaced by a pre-amplifier  1630   a  and an amplifier  1640   a ; the configuration is otherwise the same as in  FIG. 28 . The pre-amplifier  1630   a  and the amplifier  1640   a  generate a drive signal by amplifying in unmodified form the corrected analog sensor outputs. Where the sensor outputs are amplified using an analog circuit without PWM control in this way, it is possible to run the motors at high efficiency by carrying out correction of the sensor waveform discussed previously. 
       FIG. 38  is a block diagram depicting another configuration of the drive system. In this drive system, multiple electric motors  100   c  are connected to a system controller  1300   a  via a shared power line PL. The system controller  1300   a  is furnished with a power line modem  1310  for carrying out communication using the power line PL. 
       FIG. 39  is a block diagram depicting the configuration of the electric motor drive control circuit for the drive system shown in  FIG. 38 . This drive control circuit  1600   b  has the same configuration as in  FIG. 28 , except that a power line modem  1672  has been added to the circuit  1600  shown in  FIG. 28 . In this way, it is possible to build a drive system using the power line PL as a shared communication line. 
     3. Modification Examples 
     The present invention is not limited to the embodiments described hereinabove, and may be reduced to practice in various other ways without departing from the spirit thereof. Modifications such as the following would be possible, for example. 
     Modification Example 1 
     In the preceding embodiments, it is assumed that both gain correction and offset correction are performed by way of correction of the sensor output waveform; however, it is possible to correct only one of these instead. Alternatively, sensor output waveform may be corrected to desired waveform shape using some other type of correction besides these. In the preceding embodiments the sensor output and back electromotive force waveforms are assumed to be sine waves; however, it is also possible for the invention to be implemented in cases where these waveforms differ somewhat from sine waves. 
     It is also possible for the electric motors used in the drive system to be motors that do not perform offset correction and gain correction of sensor output. 
     Modification Example 2 
     While analog magnetic sensors are employed in the preceding embodiments, it is possible to use digital magnetic sensors having multi-value analog output, instead of analog magnetic sensors. Like analog magnetic sensors, digital magnetic sensors having multi-value analog output also have an output signal that changes in analog fashion. Herein, an “output signal that changes in analog fashion” refers in the broad sense to include both analog output signals, and multilevel digital output signals having three or more levels, not On/Off binary output. 
     Modification Example 3 
     In Embodiment 1, a drive control circuit for calibration and a drive control circuit for actual use are employed respectively, but it is possible instead to employ the drive control circuit for actual use as-is during calibration as well, and to connect the calibration circuit to the connector  90 . Any circuit having the function of registering corrected values of sensor output waveforms in the motor can be used as this calibration circuit. 
     Modification Example 4 
     It is possible to employ for the PWM circuit or PWM controller various circuit configurations besides that shown in  FIG. 10 . For example, it is possible to use a circuit that perform&#39;s PWM control by comparing sensor output with a triangular reference wave. In this case, during PWM control the gain of the sensor outputs will be adjusted according to the preferred application voltage; this gain adjustment differs from the gain correction described in  FIG. 17 . In other words, the gain correction described in  FIG. 17  entails correction for the purpose of adjusting the sensor outputs to the desired waveform irrespective of the desired application voltage level. 
     Modification Example 5 
     In Embodiment 2 discussed previously, a drive system capable of independent control of a motor and simultaneous control of multiple motors are discussed; however, the present invention may be implemented in a drive system capable of executing either independent control or simultaneous control, or both. 
     Modification Example 6 
     In Embodiment 2 discussed previously, prior to initiating simultaneous control, a sequence for simultaneous control is set up in each motor; however, it is possible to execute simultaneous control by some other methods. For example, it is possible to execute simultaneous control by simultaneously transmitting given operational parameters to multiple motors, using shared commands. By means of such a configuration, the multiple motors will be made to execute the same operation simultaneously. 
     Also, where simultaneous control of multiple motors is performed, it is not necessary to simultaneously control all of the motors contained in the system, and to instead control only a certain plurality of motors selected from among them. With this arrangement, it is possible to simultaneously control and operate a certain plurality of motors, while causing the other motors to continue their respective operations. It is therefore possible to implement more complex driving in the system as a whole. 
     Modification Example 7 
     In the preceding embodiments, six-pole, two-phase brushless DC motors are described, but it is possible to implement the invention with electric motors of various kind other than this. For example, the pole number and phase number may be any arbitrarily selected integers. It is also possible to employ a mix of different types of motors as the multiple electric motors making up the drive system. 
     INDUSTRIAL APPLICABILITY 
     The present invention is applicable to motors, actuators employing motors, and drive systems equipped with multiple motors or actuators.