Patent Publication Number: US-11387760-B2

Title: Motor control device

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims priority to Japanese Patent Application No. 2020-099541 filed on Jun. 8, 2020, incorporated herein by reference in its entirety. 
     BACKGROUND 
     1. Technical Field 
     The disclosure relates to a motor control device that controls a motor in which a rotor is rotated using a reluctance torque (hereinafter also referred to as a “motor using a reluctance torque”). Examples of a motor using a reluctance torque include a motor in which a rotor is rotated using a reluctance torque and a magnet torque in addition to a reluctance motor in which a rotor is rotated using only the reluctance torque. 
     2. Description of Related Art 
     A reluctance motor that rotates a rotor using only a reluctance torque is known. Examples of a reluctance motor include a switched reluctance motor (SRM) including a stator and a rotor with protruding pole portions and a synchronous reluctance motor (SynRM) with a stator having the same structure as a brushless motor. 
     Out of the stator and the rotor of the synchronous reluctance motor, only the rotor includes protruding pole portions. In the synchronous reluctance motor, there are a direction of a protruding pole portion in which magnetic flux flows easily (hereinafter referred to as a “d-axis direction”) and a direction of a non-protruding pole portion in which magnetic flux does not flow easily (hereinafter referred to as a “q-axis direction”) due to the protruding pole portions of the rotor. Accordingly, a reluctance torque is generated due to a difference (L d −L q ) between an inductance in the d-axis direction (hereinafter referred to as a “d-axis inductance L d ”) and an inductance in the q-axis direction (hereinafter referred to as a “q-axis inductance L q ”) and the rotor is rotated by the reluctance torque. 
     WO 2019-017231 discloses a control method of controlling a synchronous reluctance motor in which maximum torque/current control using a maximum torque table and maximum output/speed control using a high output table are switched based on a rotation speed. In the maximum torque table, a motor torque which is generated from a motor is stored for a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized at the armature current command value for each armature current command value. In the high output table, a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized is stored for each rotation speed of the motor. 
     When the rotation speed of the motor is in a low rotation speed area which is equal to or lower than a predetermined rotation speed (for example, in a constant torque area), the maximum torque/current control is performed. Specifically, an armature current command value and a current phase angle command value are calculated based on the maximum torque table such that a motor torque corresponding to a motor torque command value is generated from the motor, and the motor is controlled based on the calculated armature current command value and the calculated current phase angle command value. 
     On the other hand, when the rotation speed of the motor is in a high rotation speed area which is higher than the predetermined rotation speed (for example, in a constant output area), the maximum output/speed control is performed. Specifically, an armature current command value and a current phase angle command value with which the motor torque is maximized at a current rotation speed are calculated based on the high output table, and the motor is controlled based on the calculated armature current command value and the calculated current phase angle command value. 
     SUMMARY 
     In the control method described in WO 2019/017231, a maximum torque can be output but a motor torque corresponding to a motor torque command value cannot be output in the high rotation speed area in which the maximum output/speed control is performed. The disclosure provides a motor control device that can output a maximum torque and output a motor torque corresponding to a motor torque command value in all rotation speed areas. 
     According to an aspect of the disclosure, there is provided a motor control device that controls a motor using a reluctance torque. The motor control device includes: a first setting unit configured to set a motor torque command value which is a command value of a motor torque which is to be generated from the motor; a rotation speed detecting unit configured to detect a rotation speed of the motor; a second setting unit configured to set an armature current command value and a current phase angle command value based on the rotation speed and the motor torque command value; a current vector setting unit configured to set a d-axis current command value and a q-axis current command value based on the armature current command value and the current phase angle command value; and a drive unit configured to drive the motor based on the d-axis current command value and the q-axis current command value. The second setting unit is configured to set the armature current command value and the current phase angle command value such that an armature current vector which is set based on the d-axis current command value and the q-axis current command value is included in an area surrounded by an armature current vector locus in maximum torque/current control and a vertical axis in a d-q coordinate system with a d-axis current on a horizontal axis and with a q-axis current on the vertical axis. 
     According to this aspect, it is possible to output a maximum torque and to output a motor torque corresponding to a motor torque command value in all rotation speed areas. The motor control device according to the aspect may further include: a first table in which a motor torque generated from the motor is stored in correlation with a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized at the corresponding armature current command value; and a second table in which armature current command values, current phase angle command values, and motor torques at a plurality of operating points on a voltage limiting oval are stored in correlation for each rotation speed of the motor. The second setting unit may be configured to calculate an armature current command value and a current phase angle command value of a first candidate based on the motor torque command value and the first table, to calculate an armature current command value and a current phase angle command value of a second candidate based on the rotation speed, the motor torque command value, and the second table, to set the armature current command value and the current phase angle command value of the first candidate as command values when the current phase angle command value of the first candidate is equal to or greater than the current phase angle command value of the second candidate, and to set the armature current command value and the current phase angle command value of the second candidate as command values when the current phase angle command value of the first candidate is less than the current phase angle command value of the second candidate. 
     In this configuration, the plurality of operating points on the voltage limiting oval corresponding to a rotation speed of the motor may include an operating point at which the motor torque is maximized at the rotation speed. The motor control device according to the aspect may further include: a first table in which a motor torque generated from the motor is stored in correlation with a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized at the corresponding armature current command value; and a third table in which armature current command values, current phase angle command values, and motor torques at a plurality of third operating points including a first operating point at which the motor torque is maximized at a corresponding rotation speed and a plurality of second operating points which is set in a direction in which an operating point moves from the first operating point when an inter-terminal voltage of the motor decreases are stored in correlation for each rotation speed of the motor. The second setting unit may be configured to set the armature current command value and the current phase angle command value based on the motor torque command value and the first table when the rotation speed is equal to or lower than a predetermined value and to set the armature current command value and the current phase angle command value based on the rotation speed, the motor torque command value, and the third table when the rotation speed is higher than the predetermined value. 
     In this configuration, the plurality of third operating points may be set on a straight line connecting the first operating point at the corresponding rotation speed and a convergent point which is set as an origin of the d-q coordinate system or a predetermined point close to the origin for each rotation speed in the d-q coordinate system. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Features, advantages, and technical and industrial significance of exemplary embodiments of the disclosure will be described below with reference to the accompanying drawings, in which like signs denote like elements, and wherein: 
         FIG. 1  is a diagram schematically illustrating a configuration of an electric power steering device to which a motor control device according to an embodiment of the disclosure is applied; 
         FIG. 2  is a diagram schematically illustrating a configuration of an electric motor; 
         FIG. 3  is a diagram schematically illustrating an electrical configuration of an ECU illustrated in  FIG. 1 ; 
         FIG. 4  is a graph illustrating an example in which a motor torque command value T s * is set with respect to a detected steering torque T h ; 
         FIG. 5  is a graph illustrating an example of characteristic data of a motor torque T with respect to a current phase angle β which is acquired for each of a plurality of armature currents I a ; 
         FIG. 6  is a diagram schematically illustrating an example of details of a forward rotation table in a command value/maximum torque table; 
         FIG. 7A  is a diagram schematically illustrating an example of details of a torque command value table; 
         FIG. 7B  is a diagram schematically illustrating an example of details of a torque command value table; 
         FIG. 7C  is a diagram schematically illustrating an example of details of a current phase angle command value table; 
         FIG. 8  is a graph illustrating a method of preparing a torque command value table, a current command value table, and a current phase angle command value table; 
         FIG. 9  is a flowchart illustrating operations which are performed by a current command value setting unit; 
         FIG. 10  is a graph illustrating a method of preparing a torque command value table, a current command value table, and a current phase angle command value table according to a second embodiment; and 
         FIG. 11  is a flowchart illustrating operations which are performed by a current command value setting unit according to the second embodiment. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     Hereinafter, embodiments of the disclosure will be described in detail with reference to the accompanying drawings. 
     [1] First Embodiment 
       FIG. 1  is a diagram schematically illustrating a configuration of an electric power steering device to which a motor control device according to a first embodiment of the disclosure is applied. The electric power steering device  1  includes a steering wheel  2  that is a steering member for steering a vehicle, a turning mechanism  4  that turns turning wheels  3  with rotation of the steering wheel  2 , and a steering assist mechanism  5  that assists with a driver&#39;s steering. The steering wheel  2  and the turning mechanism  4  are mechanically connected to each other via a steering shaft  6  and an intermediate shaft  7 . 
     The steering shaft  6  includes an input shaft  8  that is connected to the steering wheel  2  and an output shaft  9  that is connected to the intermediate shaft  7 . The input shaft  8  and the output shaft  9  are connected via a torsion bar  10  such that they can rotate relative to each other. A torque sensor  11  is provided around the steering shaft  6 . The torque sensor  11  detects a steering torque T h  which is applied to the steering wheel  2  based on a relative rotational displacement between the input shaft  8  and the output shaft  9 . The steering torque T h  which is detected by the torque sensor  11  is input to an electronic control unit (ECU)  12 . 
     The turning mechanism  4  is constituted by a rack and pinion mechanism including a pinion shaft  13  and a rack shaft  14  which is a turning shaft. The turning wheels  3  are connected to ends of the rack shaft  14  via tie rods  15  and knuckle arms (not illustrated). The pinion shaft  13  is connected to the intermediate shaft  7 . A pinion  16  is connected to a tip of the pinion shaft  13 . The rack shaft  14  extends in a straight line shape in a lateral direction of the vehicle. A rack  17  that engages with the pinion  16  is formed in the middle in an axial direction of the rack shaft  14 . Rotation of the pinion shaft  13  is converted to movement in an axial direction of the rack shaft  14  by the pinion  16  and the rack  17 . By moving the rack shaft  14  in the axial direction, the turning wheels  3  can be turned. 
     When the steering wheel  2  is steered (rotated), this rotation is transmitted to the pinion shaft  13  via the steering shaft  6  and the intermediate shaft  7 . The rotation of the pinion shaft  13  is converted into movement in the axial direction of the rack shaft  14  by the pinion  16  and the rack  17 . Accordingly, the turning wheels  3  are turned. The steering assist mechanism  5  includes an electric motor  18  for assisting with steering and a reduction gear  19  that transmits an output torque of the electric motor  18  to the turning mechanism  4 . In this embodiment, the electric motor  18  is constituted by a synchronous reluctance motor. The reduction gear  19  is constituted by a worm gear mechanism including a worm gear  20  and a worm wheel  21  that engages with the worm gear  20 . The reduction gear  19  is accommodated in a gear housing  22 . 
     The worm gear  20  is rotationally driven by the electric motor  18 . The worm wheel  21  is connected to the steering shaft  6  such that they can rotate integrally. The worm wheel  21  is rotationally driven by the worm gear  20 . When the worm gear  20  is rotationally driven by the electric motor  18 , the worm wheel  21  is rotationally driven and the steering shaft  6  rotates. The rotation of the steering shaft  6  is transmitted to the pinion shaft  13  via the intermediate shaft  7 . The rotation of the pinion shaft  13  is converted into movement in the axial direction of the rack shaft  14  by the rack and pinion mechanism. Accordingly, the turning wheels  3  are turned. That is, by rotationally driving worm gear  20  using the electric motor  18 , steering assist using the electric motor  18  becomes possible. 
     A rotation angle of a rotor (hereinafter referred to as a “rotor rotation angle”) of the electric motor  18  is detected by a rotation angle sensor  25  such as a resolver. An output signal of the rotation angle sensor  25  is input to the ECU  12 . The electric motor  18  is controlled by the ECU  12  which is a motor control device.  FIG. 2  is a diagram schematically illustrating a configuration of the electric motor  18 . 
     The electric motor  18  is a synchronous reluctance motor as described above and includes a rotor  100  including a plurality of protruding pole portions which are arranged at intervals in a circumferential direction and a stator  105  including an armature winding as schematically illustrated in  FIG. 2 . The armature winding has a configuration in which a U-phase stator coil  101 , a V-phase stator coil  102 , and a W-phase stator coil  103  are star-connected. 
     A three-phase fixed coordinate system (a UVW coordinate system) with a U axis, a V axis, and a W axis set to the directions of the phase stator coils  101 ,  102 , and  103  is defined. A two-phase rotary coordinate system (a d-q coordinate system, an actual rotary coordinate system) in which a d-axis direction is a direction of a protruding pole portion in which magnetic flux flows easily from the rotation center of the rotor  100  to an outer circumferential portion and a q-axis direction is a direction of a non-protruding pole portion in which magnetic flux does not flow easily from the rotation center of the rotor  100  to the outer circumferential portion is defined. The d-q coordinate system is an actual rotary coordinate system corresponding to a rotation angle (rotor rotation angle) θ of the rotor  100 . 
     In this embodiment, the rotor rotation angle (electrical angle) θ is defined as a rotation angle in the counterclockwise direction from the U axis to one protruding pole portion (the d axis) serving as a reference out of two neighboring protruding pole portions (d axis). The direction of the one protruding pole portion serving as a reference is defined as a +d-axis direction and the direction of the other protruding pole portion adjacent thereto is defined as a −d-axis direction. An axis rotating by an electrical angle of +90 degrees from the +d axis is defined as a +q axis, and an axis rotating by an electrical angle of −90 degrees from the +d axis is defined as a −q axis. Magnetic poles (an N pole and an S pole) caused in the rotor  100  (the protruding pole portions) are determined by a direction of a current vector I a  in the d-q coordinate system. In this embodiment, the forward rotation direction of the electric motor  18  corresponds to the counterclockwise direction (CCW) of the rotor  100  in  FIG. 2 , and the reverse rotation direction of the electric motor  18  corresponds to the clockwise direction (CW) of the rotor  100  in  FIG. 2 . 
     Coordinate conversion between the UVW coordinate system and the d-q coordinate system is performed using the rotor rotation angle θ (for example, see Expressions (1) and (2) in Japanese Unexamined Patent Application Publication No. 2009-137323 (JP 2009-137323 A)). In this specification, a current flowing in an armature winding is referred to as an “armature current” or a “motor current.” A current vector I a  in the d-q coordinate system is a vector of a current (an armature current vector) flowing in the armature winding. β represents a current phase angle and is a phase difference between the armature current vector I a  and the d axis. i d  represents a d-axis current and is expressed by i d =I a ·cos β. i q  represents a q-axis current and is expressed by i q =I a −sin β. 
       FIG. 3  is a diagram schematically illustrating an electrical configuration of the ECU  12  illustrated in  FIG. 1 . The ECU  12  includes a microcomputer  31 , a drive circuit (inverter circuit)  32  that is controlled by the microcomputer  31  and supplies electric power to the electric motor  18 , and current sensors  33 ,  34 , and  35  that detect a U-phase current, a V-phase current, and a W-phase current flowing in the electric motor  18 . 
     The microcomputer  31  includes a CPU and a memory and serves as a plurality of function processing units by executing a predetermined program. The memory includes a ROM, a RAM, and a nonvolatile memory  40 . The plurality of function processing units includes a torque command value setting unit  41 , a current command value setting unit  42 , a current vector calculating unit (current vector setting unit)  43 , a d-axis current difference calculating unit  44 , a q-axis current difference calculating unit  45 , a d-axis proportional integral (PI) control unit  46 , a q-axis proportional integral (PI) control unit  47 , a voltage limiting unit  48 , a two-phase/three-phase coordinate converting unit  49 , a PWM control unit  50 , a current detecting unit  51 , a three-phase/two-phase coordinate converting unit  52 , a rotation angle calculating unit  53 , and a rotation speed calculating unit  54 . 
     The rotation angle calculating unit  53  calculates a rotation angle of the rotor (a rotor rotation angle θ) of the electric motor  18  based on the output signal of the rotation angle sensor  25 . The rotor rotation angle θ calculated by the rotation angle calculating unit  53  is given to the rotation speed calculating unit  54  and the coordinate converting units  49  and  52 . The rotation speed calculating unit  54  calculates a rotation speed ω [rpm] of the electric motor  18  by integrating the rotor rotation angle θ calculated by the rotation angle calculating unit  53  with respect to time. 
     The current detecting unit  51  detects phase currents i U , i V , and i W  of the U phase, the V phase, and the W phase (hereinafter collectively referred to as “detected three-phase currents i U , i V , and i W ”) based on the output signals of the current sensors  33 ,  34 , and  35 . The torque command value setting unit  41  sets a motor torque command value (hereinafter referred to as a “torque command value T s *”) which is a command value of a motor torque which is to be generated from the electric motor  18 . Specifically, the torque command value setting unit  41  sets the torque command value T s * based on a steering torque detected by the torque sensor  11  (a detected steering torque T h ). An example in which the torque command value T s * is set with respect to the detected steering torque T h  is illustrated in  FIG. 4 . Regarding the detected steering torque T h , for example, a torque for left steering is defined as a positive value and a torque for right steering is defined as a negative value. The direction of the motor torque for assisting with left steering of the electric motor  18  is defined as corresponding to the forward rotation direction of the electric motor  18  and the direction of the motor torque for assisting with right steering is defined as corresponding to the reverse rotation direction of the electric motor  18 . The torque command value T s * has a positive value when a steering assist force for left steering is to be generated from the electric motor  18 , and has a negative value when a steering assist force for right steering is to be generated from the electric motor  18 . 
     The torque command value T s * has a positive value when the detected steering torque T h  has a positive value, and has a negative value when the detected steering torque T h  has a negative value. When the detected steering torque T h  is 0, the torque command value T s * is 0. As the absolute value of the detected steering torque T h  increases, the absolute value of the torque command value T s * increases. Accordingly, as the absolute value of the detected steering torque T h  increases, the steering assist force can increase. 
     The torque command value setting unit  41  sets the torque command value T s * corresponding to the steering torque T h , for example, using a map in which a relationship between the steering torque T h  and the torque command value T s * is stored or a calculational expression indicating the relationship as illustrated in  FIG. 4 . The torque command value T s * set by the torque command value setting unit  41  is given to the current command value setting unit  42  and the current vector calculating unit  43 . 
     In the nonvolatile memory  40 , a command value/maximum torque table  60  and a speed/command value table  70  are stored. The command value/maximum torque table  60  is an example of a “first table” in the claims, and the speed/command value table  70  in the first embodiment is an example of a “second table” in the claims. Details of these tables  60  and  70  will be described later. The current command value setting unit  42  sets an armature current command value I a * (I a *&gt;0) and a current phase angle command value β* (β*&gt;0) based on the torque command value T s *, the rotor rotation speed co, and the command value/maximum torque table  60  or the speed/command value table  70 . Details of the current command value setting unit  42  will be described later. 
     The current vector calculating unit  43  calculates a d-axis current command value i d * and a q-axis current command value i q * based on the armature current command value I a * and the current phase angle command value β* set by the current command value setting unit  42  and the sign of the torque command value T s *. Specifically, the current vector calculating unit  43  calculates the d-axis current command value id* using Expression (1).
 
 i   d   *=I   a *·cos β*  (1)
 
The current vector calculating unit  43  calculates the q-axis current command value i q * using Expression (2a) or (2b).
 
 i   q   *=I   a *·sin β* if  T   s *&gt;0  (2a)
 
 i   q   *=I   a *·sin(−β*) if  T   s *&lt;0  (2b)
 
     The d-axis current command value i d * and the q-axis current command value i q * may be collectively referred to as “two-phase instruction currents i d * and i q *.” The three-phase currents i U , i V , and i W  detected by the current detecting unit  51  are given to the three-phase/two-phase coordinate converting unit  52 . The three-phase/two-phase coordinate converting unit  52  converts the detected three-phase currents i U , i V , and i W  to a d-axis current i d  and a q-axis current i q  (hereinafter collectively referred to as “detected two-phase currents i d  and i q ”) in the d-q coordinate system using the rotor rotation angle θ calculated by the rotation angle calculating unit  53 . The d-axis current i d  acquired by the three-phase/two-phase coordinate converting unit  52  is given to the d-axis current difference calculating unit  44 . The q-axis current i q  acquired by the three-phase/two-phase coordinate converting unit  52  is given to the q-axis current difference calculating unit  45 . 
     The d-axis current difference calculating unit  44  calculates a difference Δid (=i d *−i d ) between the d-axis current i d  and the d-axis current command value i d *. The d-axis PI control unit  46  calculates a d-axis instruction voltage v d ′* by performing a proportional integral (PI) on the current difference Δi d  calculated by the d-axis current difference calculating unit  44 . The d-axis instruction voltage v d ′* is given to the voltage limiting unit  48 . The q-axis current difference calculating unit  45  calculates a difference Δiq (=i q *−i q ) between the q-axis current i q  and the q-axis current command value i q *. The q-axis PI control unit  47  calculates a q-axis instruction voltage v q ′* by performing a proportional integral (PI) on the current difference Δi q  calculated by the q-axis current difference calculating unit  45 . The q-axis instruction voltage v q ′* is given to the voltage limiting unit  48 . 
     The voltage limiting unit  48  is provided to avoid a state in which an induced voltage in the electric motor  18  is higher than a source voltage and a current cannot flow in the electric motor  18  (a voltage saturated state). For example, the voltage limiting unit  48  limits the d-axis instruction voltage v d ′* to equal to or less than a preset maximum d-axis voltage command value and limits the q-axis instruction voltage v q ′* to equal to or less than a preset maximum q-axis voltage command value. The d-axis instruction voltage v d * and the q-axis instruction voltage v q * subjected to the limiting process by the voltage limiting unit  48  are given to the two-phase/three-phase coordinate converting unit  49 . 
     The two-phase/three-phase coordinate converting unit  49  converts the d-axis instruction voltage v d * and the q-axis instruction voltage v q * to instruction voltages v U *, v V *, and v W * of the U, V, and W phases using the rotor rotation angle θ calculated by the rotation angle calculating unit  53 . The instruction voltages v U *, v V *, and v W * of the U, V, and W phases are collectively referred to as “three-phase instruction voltages v U *, v V *, and v W *.” The PWM control unit  50  generates a U-phase PWM control signal, a V-phase PWM control signal, and a W-phase PWM control signal with duty ratios corresponding to the U-phase instruction voltage v U *, the V-phase instruction voltage v V *, and the W-phase instruction voltage v W * and supplies the generated PWM control signals to the drive circuit  32 . 
     The drive circuit  32  includes three-phase inverter circuits corresponding to the U, V, and W phases. Power elements constituting the inverter circuits are controlled by the PWM control signal given from the PWM control unit  50  such that voltages corresponding to the three-phase instruction voltages v U *, v V *, and v W * are applied to the phase stator coils of the electric motor  18 . The current difference calculating units  44  and  45  and the PI control units  46  and  47  constitute a current feedback control unit. The motor current (the armature current) flowing in the electric motor  18  is controlled by the function of the current feedback control unit such that it reaches the two-phase instruction currents i d * and i q * calculated by the current vector calculating unit  43 . 
     The command value/maximum torque table  60 , the speed/command value table  70 , and the current command value setting unit  42  will be described below in detail. First, the command value/maximum torque table  60  will be described. The command value/maximum torque table  60  includes a forward-rotation (CCW) armature current/current phase angle setting table (hereinafter referred to as a “forward-rotation table  61 ”) and a reverse-rotation (CW) armature current/current phase angle setting table (hereinafter referred to as a “reverse-rotation table  62 ”). 
     In order to efficiently drive the electric motor  18 , the electric motor  18  has only to be controlled such that a ratio of the motor torque to the armature current increases. The motor torque T s  in a synchronous reluctance motor with the number of poles P n  is expressed by Expression (3).
 
 T   s   =P   n ·( L   d   −L   q )· i   d   ·i   q   (3)
 
L d  is a d-axis inductance [H] and L q  is a q-axis inductance [H]. i d  is a d-axis current [A] and i q  is a q-axis current [A].
 
     When the magnitude of the armature current is defined as I a  and the current phase angle is defined as β, i q =I a ·sin β and i d =I a −cos β are satisfied and thus the motor torque T s  is expressed by Expression (4). The current phase angle β represents a phase difference between the armature current vector and the d axis.
 
 T   s =(½)· P   n ·( L   d   −L   q )· I   a   2  sin 2β  (4)
 
Accordingly, when the d-axis inductance L d  and the q-axis inductance L q  do not change, the motor torque T s  is maximized when the current phase angle β is 45 degrees. However, in the synchronous reluctance motor, since the d-axis inductance L d  and the q-axis inductance L q  are changed due to magnetic saturation of the rotor core and the stator core, the motor torque T s  may not be maximized when the current phase angle is 45 degrees.
 
       FIG. 5  is a graph illustrating characteristic data of a motor torque T s  with respect to a current phase angle which is acquired for each of a plurality of armature currents I a  in a certain synchronous reluctance motor. The characteristic data illustrated in  FIG. 5  reuses data described in Masaru HASEGAWA (Chubu Univ.), Shinji DOKI (Nagoya Univ.), Akiyoshi SATAKE (Okuma Corporation), Daohong WANG (Gifu Univ.), “Drive Circuit Technique and Drive Control Technique of Reluctance Motor of Permanent Magnet Motor −6. Reluctance Motor Control Technique-,” the Institute of Electrical Engineers of Japan, Industrial Application Group Conference, Papers, 1-119 to 1-124 (2004). In  FIG. 5 , the horizontal axis is set to the current phase angle β, the vertical axis is set to the motor torque T s , and characteristics of the motor torque T s  with respect to the current phase angle β of each armature current I a  are represented by curves. 
     As illustrated in  FIG. 5 , the current phase angle β at which the motor torque T s  is maximized differs depending on the magnitude of the armature current I a . In the example illustrated in  FIG. 5 , as the armature current I a  increases, the current phase angle β at which the motor torque T s  is maximized increases. In order to efficiently drive the electric motor  18 , it is preferable to set the current phase angle at which the motor torque T s  is maximized for the armature current command value I a * as the current phase angle β. 
       FIG. 6  is a schematic diagram illustrating an example of details of the forward-rotation table  61  in the command value/maximum torque table  60 . In the forward-rotation table  61 , a motor torque T s  [Nm] generated from the electric motor  18  is stored in correlation with a combination of an armature current command value I a * when the electric motor  18  rotates in the forward rotation direction and a current phase angle command value β* at which the motor torque T s  is maximized in the armature current command value I a * for each armature current command value I a *. 
     In this example, data of K armature current command values I a * is stored in the forward-rotation table  61 . The K armature current command values I a * have a relationship of I a1 *&lt;I a2 *&lt; . . . &lt;I a(K-1) *&lt;I aK *. The motor torque T s  increases as the armature current command value I a * increases. The forward-rotation table  61  is prepared, for example, as follows. When a predetermined armature current command value I a *, a predetermined current phase angle command value β*, and a sign indicating the forward rotation direction are given to the current vector calculating unit  43  of the motor control circuit illustrated in  FIG. 3 , the electric motor  18  is forward rotationally driven based on two-phase instruction currents i d * and i q * corresponding to the armature current command value I a *, the current phase angle command value β*, and the sign. In a state in which the electric motor  18  is forward rotationally driven, the motor torque T s  generated from the electric motor  18  (for example, an average value of the motor torque in a predetermined time) is acquired. Accordingly, the motor torque T s  for a combination of the predetermined armature current command value I a * and the predetermined current phase angle command value β* is acquired. The motor torque T s  is measured using a measuring instrument which is not illustrated. 
     By performing this test on each of a plurality of current phase angle command values β*, data of the motor torque T s  for each combination of the predetermined armature current command value I a * and the plurality of current phase angle command values β* is acquired. The current phase angle command value β* at which the motor torque T s  is maximized for the predetermined armature current command value I a * is identified based on the acquired data. 
     By performing this test on each of a plurality of armature current command values I a *, data of the motor torque T s  for a combination of an armature current command value I a * and a current phase angle command value β* at which the motor torque T is maximized therefor is acquired for each of the plurality of armature current command values I a *. Accordingly, data for preparing the forward-rotation table  61  is acquired. Although not illustrated, in the reverse-rotation table  62 , the motor torque T s  [Nm] generated from the electric motor  18  for a combination of an armature current command value I a * when the electric motor  18  rotates in the reverse rotation direction and a current phase angle command value β* at which the motor torque T s  is maximized at the armature current command value I a * is stored for each armature current command value I a *. 
     The reverse-rotation table  62  is prepared by performing the same test as the test performed to prepare the forward-rotation table  61 . When the reverse-rotation table  62  is prepared, unlike when the forward-rotation table  61  is prepared, a sign indicating the reverse rotation direction is given to the current vector calculating unit  43  at the time of test. Accordingly, the electric motor  18  is reversely rotationally driven at the time of test. 
     A method of acquiring the armature current command value I a * and the current phase angle command value β* corresponding to the torque command value T s * based on the forward-rotation table  61  or the reverse-rotation table  62 , and controlling the electric motor  18  based on the acquired armature current command value I a * and the acquired current phase angle command value β* is referred to as “maximum torque/current control.” The speed/command value table  70  will be described below. The speed/command value table  70  includes a torque command value table  71 , a current command value table  72 , and a current phase angle command value table  73  as illustrated in  FIG. 3  and  FIGS. 7A to 7C . 
     In the torque command value table  71 , a plurality of motor torques T sn1  to T snM  is stored for each of rotation speeds ω 1  to ω N  of the electric motor  18  as illustrated in  FIG. 7A . N denotes the number of pieces of data of the rotation speed, and M denotes the number of pieces of data of the motor torque T s  which is set for each type of rotation speed. 1 to N in the leftmost column in the torque command value table  71  represent index numbers n of the rotation speed (hereinafter referred to as “speed numbers”). 1 to M in the uppermost row in the torque command value table  71  denote index numbers m of the motor torque (hereinafter referred to as “torque numbers”). 
     In the current command value table  72 , a plurality of armature current command values I an1 * to I anM * corresponding to Torque Numbers 1 to M are stored for each of Speed Numbers 1 to N as illustrated in  FIG. 7B . In the current phase angle command value table  73 , a plurality of current phase angle command value β n1 * to β nM * corresponding to Torque Numbers 1 to M is stored for each of Speed Numbers 1 to N as illustrated in  FIG. 7C . Methods of preparing the tables  71  to  73  will be described below with reference to  FIG. 8 . 
       FIG. 8  illustrates a d-q coordinate system with a d-axis current on the horizontal axis and with a q-axis current on the vertical axis. In  FIG. 8 , Curve A represents a locus of an armature current vector in maximum torque/current control. Curve A can be prepared, for example, as follows. As illustrated in the command value/maximum torque table  60  of  FIG. 6 , it is assumed that a current phase angle β at which the motor torque is maximized is acquired in advance for each armature current I a . 
     A d-axis current command value and a q-axis current command value for a current phase angle β at which the motor torque is maximized are calculated for each armature current I a  based on i d =I a ·cos β and i q =I a ·sin β. Then, an end point of an armature current vector (hereinafter referred to as an “operating point”) corresponding to the d-axis current command value and the q-axis current command value for the current phase angle β at which the motor torque is maximized is plotted on the d-q coordinate system for each armature current I a . A curve passing through the points is drawn to obtain Curve A. 
     In  FIG. 8 , Curves B 1  to B 8  represent loci of the armature current vector when the current phase angle is changed at 8 types of rotation speeds which are different from each other by a predetermined value (200 rpm in this example) within a predetermined range of the rotation speed (a range from 1600 rpm to 3000 rpm in this example). The right end (the lower end) of each curve represents an operating point at which the current phase angle is 45 degrees. The left end (the upper end) of each curve represents an operating point at which the motor torque is maximized. 
     Curve B 1  is a locus of the armature current vector corresponding to 1600 rpm, Curve B 8  is a locus of the armature current vector corresponding to 3000 rpm, and the magnitude of the armature current vector when the current phase angle is 45 degrees decreases as the rotation speed increases. Curve C represents a straight line passing through the operating points on Curves B 1  to B 8  when the current phase angle is 45 degrees. For example, Curve B 1  can be drawn as follows. 
     The electric motor  18  is driven by giving a maximum value of the armature current command value I a * and a predetermined current phase angle command value β* to the current vector calculating unit  43  of the motor control circuit illustrated in  FIG. 3 . Then, a load is adjusted such that the rotation speed reaches a predetermined rotation speed (1600 rpm when Curve B 1  is prepared). The motor torque T s  and the armature current I a  are measured for a plurality of current phase angle command values β* while slightly increasing the current phase angle command value β* from 45 degrees. The current phase angle command value β* at which the motor torque is maximized is calculated, and the motor torque T s  and the armature current I a  at that time are measured. 
     The motor torque T s  is measured using a measuring instrument which is not illustrated. The armature current I a  can be calculated from the d-axis current command value i d * and the q-axis current command value i q * which are output from the coordinate converting unit  52  in  FIG. 3 . In this way, in a range of the current phase angle command value β* of from 45 degrees to the current phase angle command value β* at which the motor torque is maximized, the motor torque T s  and the armature current I a  are calculated for M current phase angle command values β* including the current phase angle command values β* and different from each other. By plotting the operating points corresponding to the M current phase angle command values β* on the d-q coordinate system and drawing a curve passing therethrough, Curve B 1  is obtained. Other Curves B 2  to B 8  can be drawn using the same method. In  FIG. 8 , the operating points plotted into a dotted line  81  in Curves B 1  to B 8  are operating points at which the motor torque is maximized. 
     When 1600 rpm is defined as Speed Number 1, M motor torques T s  calculated for the rotation speed of 1600 rpm are stored as motor torques T s11  to T s1M  in a row corresponding to Speed Number 1 in the torque command value table  71 , for example, in the ascending order of the current phase angle command values β*. M armature currents I a  calculated for the rotation speed of 1600 rpm are stored as armature current command values I a11 * to I a1M * in a row corresponding to Speed Number 1 in the current command value table  72 , for example, in the ascending order of the current phase angle command values β*. M current phase angle command values β* calculated for the rotation speed of 1600 rpm are stored as current phase angle command values β 11 * to β 1M * in a row corresponding to Speed Number 1 in the current phase angle command value table  73 , for example, in the ascending order of the current phase angle command values β*. 
     M motor torques T n1  to T nM , M armature current command values I an1 * to I anM *, and M current phase angle command values β n1 * to β nM * for each of other Speed Numbers 2 to N are calculated in the same way and are stored in the torque command value table  71 , the current command value table  72 , and the current phase angle command value table  73 . A method of acquiring an armature current command value I a * and a current phase angle command value β* corresponding to a torque command value T s * and a rotation speed ω based on the speed/command value table  70  and controlling the electric motor  18  based on the acquired armature current command value I a * and the acquired current phase angle command value β* is referred to as “torque/speed control.” 
     The operation of the current command value setting unit  42  will be described below in detail.  FIG. 9  is a flowchart illustrating a routine of operations which are performed by the current command value setting unit  42 . The routine illustrated in  FIG. 9  is repeatedly performed at intervals of a predetermined operation cycle. In the following description, a newest rotation speed ω calculated by the rotation speed calculating unit  54  is referred to as an “actual rotation speed ω.” The current command value setting unit  42  calculates an armature current command value I acan1 * and a current phase angle command value β can1*  of a first candidate based on the command value/maximum torque table  60  (Step S 1 ). 
     Specifically, first, the current command value setting unit  42  selects the table  61  or  62  of the rotation direction corresponding to the sign of the torque command value T s * out of the forward-rotation table  61  and the reverse-rotation table  62 . Then, the current command value setting unit  42  acquires the armature current command value I a * and the current phase angle command value −β* corresponding to the torque command value T s * based on the selected table  61  or  62 , and stores the acquired command values as an armature current command value I acan1 * and a current phase angle command value β can1 * of a first candidate in the memory. 
     More specifically, the current command value setting unit  42  searches for a motor torque T s  having the same magnitude as the torque command value T s * out of a plurality of motor torques T s  in the selected table  61  or  62 . When the motor torque T s  having the same magnitude as the torque command value T s * can be searched for, the current command value setting unit  42  reads the armature current command value I a * and the current phase angle command value β* corresponding to the motor torque T s  from the table  61  or  62  and stores the read command values as the armature current command value I acan1 * and the current phase angle command value β can1 * of the first candidate in the memory. 
     On the other hand, when the motor torque T s  having the same magnitude as the torque command value T s * cannot be searched for, the current command value setting unit  42  performs the following process. The current command value setting unit  42  reads an armature current command value I a * and a current phase angle command value β* corresponding to a motor torque T s  (hereinafter referred to as a “first motor torque T sL ”) which is less than the torque command value T s * and which is closest to the torque command value T s * out of a plurality of motor torques Ts in the selected table  61  or  62 . 
     The current command value setting unit  42  reads an armature current command value I a * and a current phase angle command value β* corresponding to a motor torque T s  (hereinafter referred to as a “second motor torque T sH ”) which is greater than the torque command value T s * and which is closest to the torque command value T s * out of a plurality of motor torques T s  in the selected table  61  or  62 . Then, the current command value setting unit  42  calculates an armature current command value I a * and a current phase angle command value β* corresponding to the torque command value T s * by linearly interpolating the armature current command values I a * and the current phase angle command value β* of the read two groups. 
     Specifically, the armature current command value I a * and the current phase angle command value β* corresponding to the first motor torques T sL  are set as I aL * and β L * and the armature current command value I a * and the current phase angle command value β* corresponding to the second motor torque T sH  are set as I aH * and β H *. T sH −T sL =ΔT s , I aH *−I aL *=ΔI a *, and β H *2−β L *=Δβ* are set. 
     The current command value setting unit  42  calculates an armature current command value I a * and a current phase angle command value β* corresponding to the torque command value T s * based on Expressions (5) an (6) and stores the calculated command values as the armature current command value I acan1 * and the current phase angle command value β can1 * of the first candidate in the memory.
 
 I   a *=(Δ I   a   */T   s )·( T   s   *−T   sL )+ I   aL *  (5)
 
β*=(Δβ*/ T   s )·( T   s   *−T   sL )+β L *  (6)
 
     Then, the current command value setting unit  42  acquires the armature current command value I acan2 * and the current phase angle command value β can2 * of the second candidate based on the speed/command value table  70  (Step S 2 ). 
     Specifically, the current command value setting unit  42  acquires Speed Number n which is closest to an actual rotation speed co as a first speed number n1 from the torque command value table  71 . Then, the current command value setting unit  42  searches for a motor torque T s  having the same magnitude as the torque command value T s * out of a plurality of motor torques T s  corresponding to the first speed number n1 in the torque command value table  71 . When the motor torque T s  having the same magnitude as the torque command value T s * can be searched for, the current command value setting unit  42  acquires the torque number m of the motor torque Ts as a first torque number m1. 
     Then, the current command value setting unit  42  reads an armature current command value I a * and a current phase angle command value β* corresponding to the first speed number n1 and the first torque number m1 from the current command value table  72  and the current phase angle command value table  73  and stores the read command values as the armature current command value I acan2 * and the current phase angle command value β can2 * of the second candidate in the memory. On the other hand, when the motor torque T s  having the same magnitude as the torque command value T s * cannot be searched for, the current command value setting unit  42  performs the following process. The current command value setting unit  42  acquires a torque number m corresponding to the motor torque T s  (hereinafter referred to as a “first motor torque T sL ”) which is less than the torque command value T s * and which is closest to the torque command value T s * out of a plurality of motor torque T s  corresponding to the first speed number n1 in the torque command value table  71  as the first torque number m1. Then, the current command value setting unit  42  reads an armature current command value I a * and a current phase angle command value β* corresponding to the first speed number n1 and the first torque number m1 from the current command value table  72  and the current phase angle command value table  73  and stores the read command values as the armature current command value I a * and the current phase angle command value β* corresponding to the first motor torque T sL  in the memory. 
     The current command value setting unit  42  acquires a torque number m corresponding to a motor torque T s  (hereinafter referred to as a “second motor torque T sH ”) which is greater than the torque command value T s * and which is closest to the torque command value T s * out of a plurality of motor torques Ts corresponding to the first speed number n1 in the torque command value table  71  as a second torque number m2. Then, the current command value setting unit  42  reads an armature current command value I a * and a current phase angle command value β* corresponding to the first speed number n1 and the second torque number m2 from the current command value table  72  and the current phase angle command value table  73  and stores the read command values as the armature current command value I a * and the current phase angle command value β* corresponding to the second motor torque T sH  in the memory. 
     Then, the current command value setting unit  42  calculates an armature current command value I a * and a current phase angle command value β* corresponding to the torque command value T s * and the actual rotation speed ω by interpolating the armature current command values I a * and the current phase angle command values β* of the read two groups. Specifically, the armature current command value I a * and the current phase angle command value β* corresponding to the first motor torque T sL  are set as I aL * and β L *, and the armature current command value I a * and the current phase angle command value β* corresponding to the second motor torque T sH  are set as I aH * and β H *. T sH −T sL =ΔT s , I aH * −I aL *=ΔI a *, and β H *−β L *=Δβ* are set. 
     The current command value setting unit  42  calculates the armature current command value I a * and the current phase angle command value β* corresponding to the torque command value T s * and the actual rotation speed ω based on Expressions (5) and (6) and stores the read command values as the armature current command value i acan2 * and the current phase angle command value β can2 * of the second candidate in the memory. Then, the current command value setting unit  42  determines whether the current phase angle command value β can1 * of the first candidate is equal to or greater than the current phase angle command value β can2 * of the second candidate (Step S 3 ). When β can1 *≥β can2 * is satisfied (Step S 3 : YES), the current command value setting unit  42  sets the armature current command value I acan1 * and the current phase angle command value β can * of the first candidate as the armature current command value I a * and the current phase angle command value β* (Step S 4 ). Accordingly, maximum torque/current control is performed. Then, the routine in this operation cycle ends. 
     When it is determined in Step S 3  that β can1 *&lt;β can2 * is satisfied (Step S 3 : NO), the current command value setting unit  42  sets the armature current command value I acan2 * and the current phase angle command value β can2 * of the second candidate as the armature current command value I a * and the current phase angle command value β* (Step S 5 ). Accordingly, torque/speed control is performed. Then, the routine in this operation cycle ends. 
     The reason why the first candidate is selected when β can1 *≥β can2 * is satisfied and the second candidate is selected when β can1 *≤β can2 * is satisfied will be described below. Curves B 1  to B 8  in  FIG. 8  represent loci of the armature current vector in torque/speed control. Curves B 1  to B 8  are loci of the armature current vector for each rotation speed when a maximum value is given as the armature current command value I a *. Accordingly, Curves B 1  to B 8  constitute a part of a voltage limiting oval. The voltage limiting oval indicates a controllable range of an armature current vector at an arbitrary input voltage (a motor inter-terminal voltage) and an arbitrary rotation speed using a locus of the armature current vector. The voltage limiting oval decreases as the rotation speed of the electric motor  18  increases. 
     Curve A in  FIG. 8  indicates a locus of the armature current vector in maximum torque/current control and a locus of the armature current vector at which the armature current is minimized to output an arbitrary torque from the electric motor  18 . When it is intended to output an arbitrary torque from the electric motor  18  and an operating point of torque/speed control is located above Curve A or on the right side with respect to Curve A, the operating point of maximum torque/current control is a most efficient point for outputting the torque. For example, when the actual rotation speed is 1600 [rpm] and the operating point of torque/speed control is located above a crossing point of Curve A and Curve B 1  or on the right side with respect to the crossing point, the operating point of maximum torque/current control is a most efficient point for outputting the torque. Accordingly, in this case, it is preferable to control the electric motor through maximum torque/current control. Therefore, when β can1 *≥β can2 * is satisfied, the first candidate is set as the armature current command value I a * and the current phase angle command value β*. 
     On the other hand, when the operating point of torque/speed control is located on the left side with respect to Curve A, a target torque cannot be output in the maximum torque/current control. For example, when the actual rotation speed is 1600 [rpm] and the operating point of the torque/current control is located on the left side with respect to a crossing point of Curve A and Curve B 1 , a target torque cannot be output in the maximum torque/current control. Accordingly, in this case, it is preferable to control the electric motor  18  using torque/speed control. Therefore, when β can1 *&lt;β can2 * is satisfied, the second candidate is set as the armature current command value I a * and the current phase angle command value β*. 
     That is, in the first embodiment, the armature current command value I a * and the current phase angle command value β* are set such that a current vector set by the armature current command value I a * and the current phase angle command value β* is included in an area surrounded by the current vector locus (Curve A) in the maximum torque/current control and the q axis in the d-q coordinate system in  FIG. 8 . Accordingly, it is possible to output a maximum torque and to output a motor torque corresponding to a motor torque command value in all rotation speed areas. 
     [2] Second Embodiment 
     In the first embodiment, the speed/command value table  70  is prepared based on the assumption that the motor inter-terminal voltage is a predetermined reference voltage. When the motor inter-terminal voltage decreases, the voltage limiting oval is reduced. Accordingly, since characteristics indicated by Curves B 1  to B 8  in  FIG. 8  change, details of the speed/command value table  70  in the first embodiment are not suitable for characteristics when the motor inter-terminal voltage decreases. 
     Accordingly, when the motor inter-terminal voltage decreases, there is a problem in that an area in which a motor torque cannot be output is generated even when a torque command value is in a range in which the motor torque can be output in the torque/speed control according to the first embodiment. The reason is that a command value corresponding to a motor torque which cannot be output as an armature current command value I a * and a current phase angle command value β* is set when the motor inter-terminal voltage decreases in the speed/command value table  70  according to the first embodiment and thus an unexpected armature current flows in the electric motor  18 . 
     An objective of the second embodiment is to realize motor control that can output a maximum torque, perform torque control in all rotation speed areas, and solve the aforementioned problem in the first embodiment. In the second embodiment, the method of preparing the speed/command value table  70  is different from that in the first embodiment. That is, the methods of preparing the torque command value table  71 , the current command value table  72 , and the current phase angle command value table  73  are different from those in the first embodiment. The second embodiment is different from the first embodiment in the operation of the current command value setting unit  42 . The other points are the same as in the first embodiment. 
     The method of preparing the speed/command value table  70  will be first described below with reference to  FIG. 10 .  FIG. 10  illustrates a d-q coordinate system with a d-axis current on the horizontal axis and with a q-axis current on the vertical axis. First, as illustrated in  FIG. 10 , Curve A representing a locus of an armature current vector in maximum torque/current control is drawn in the d-q coordinate system. Curve A can be drawn using the same method as in the first embodiment. 
     Then, an operating point (hereinafter referred to as “maximum output point”) at which the motor torque is maximized is calculated at each of 8 types of rotation speeds which are different from each other by a predetermined value (200 rpm in this example) within a predetermined range of the rotation speed (a range from 1600 rpm to 3000 rpm in this example), and the calculated operating points are plotted on the d-q coordinate system. The operating points which are plotted into a closed dotted curve  91  in  FIG. 10  are maximum operating points at the corresponding rotation speeds and correspond to the operating points which are plotted into the closed dotted curve  81  in  FIG. 8 . These operating points can be calculated using the same method as the method of preparing Curves B 1  to B 8  which has been described above in the first embodiment. 
     Then, an origin of the d-q coordinate system or a predetermined point close to the origin is set as a convergent point V. In this embodiment, a predetermined point on Curve A which is close to the origin of the d-q coordinate system is set as the convergent point V. The maximum output point at each rotation speed and the convergent point V are connected by a straight line. Accordingly, Straight Lines D 1  to D 8  are acquired at the 8 types of rotation speeds. Straight Line D 1  is a straight line corresponding to 1600 rpm, Straight Line D 8  is a straight line corresponding to 3000 rpm, and the rotation angle (the current phase angle β) from the d axis increases as the rotation speed increases. 
     Then, M operating points including the maximum output point are set on the corresponding straight line for each of Straight Lines D 1  to D 8 . In this embodiment, M operating points are set on each of Straight Lines D 1  to D 8  such that neighboring two operating points are distant at the same length. The M operating points are a plurality of operating points (third operating points) including the maximum output point (a first operating point) and a plurality of operating points (second operating points) which is set in a direction in which the operating point moves from the maximum output point when the inter-terminal voltage of the electric motor  18  decreases. 
     Then, a d-axis current i d , a q-axis current i q , an armature current I a , and a current phase angle β corresponding to each of the set operating points are calculated. The armature current I a  at a certain operating point is calculated from the d-axis current i d  and the q-axis current i q  at the operating point. Then, for each operating point, the armature current I a  and the current phase angle β are given as an armature current command value I a * and a current phase angle command value β* to the current vector calculating unit  43  of the motor control circuit illustrated in  FIG. 3  and a motor torque T s  is measured. In this way, the motor torque T s , the armature current command value I a *, and the current phase angle command value β* at the M operating points can be acquired for each of Straight Lines D 1  to D 8 . 
     For example, when 1600 rpm is defined as Speed Number 1, the motor torques T s  at the M operating points on Straight Line D 1  are stored as motor torques T s11  to T s1M  in a row corresponding to Speed Number 1 in the torque command value table  71  (see  FIG. 7A ), for example, in the ascending order of the armature current command values I a *. The armature currents I a  at the M operating points on Straight Line D 1  are stored as armature current command values I a11 * to I a1M * in a row corresponding to Speed Number 1 in the current command value table  72  (see  FIG. 7B ), for example, in the ascending order of the armature current command values I a *. The current phase angle command values β* at the M operating points on Straight Line D 1  are stored as current phase angle command values β 11 * to β 1M * in a row corresponding to Speed Number 1 in the current phase angle command value table  73 , for example, in the ascending order of the armature current command values I a *. 
     M motor torques T n1  to T nM , M armature current command values I an1 * to I anM *, and M current phase angle command values β n1 * to β nM * for each of other Speed Numbers 2 to N are calculated in the same way and are stored in the torque command value table  71 , the current command value table  72 , and the current phase angle command value table  73 . The speed/command value table  70  according to the second embodiment is an example of a “third table” in the claims. 
     The operation of the current command value setting unit  42  will be described below in detail.  FIG. 11  is a flowchart illustrating a routine of operations which are performed by the current command value setting unit  42 . The routine illustrated in  FIG. 11  is repeatedly performed at intervals of a predetermined operation cycle. The current command value setting unit  42  determines whether an actual rotation speed co is equal to or lower than a predetermined rotation speed ω th  (Step S 11 ). The predetermined rotation speed ω th  is set to a rotation speed in the vicinity of a boundary point between a predetermined low rotation speed area and a predetermined high rotation speed area. The predetermined low rotation speed area may be a constant torque area in which a torque is almost constant in speed-torque characteristics of the electric motor  18 . In this case, the predetermined high rotation speed area is a constant output area in which the rotation speed is higher than that in the constant torque area. 
     When the actual rotation speed ω is equal to or lower than the predetermined rotation speed ω th  (Step S 11 : YES), the current command value setting unit  42 A sets the armature current command value I a * and the current phase angle command value β* corresponding to the torque command value T s * using the command value/maximum torque table  60  (Step S 12 : YES). The method of calculating the armature current command value I a * and the current phase angle command value β* using the command value/maximum torque table  60  is the same as described in the first embodiment. Then, the routine in this operation cycle ends. 
     When it is determined in Step S 11  that the actual rotation speed ω is higher than the predetermined rotation speed ω th  (Step S 11 : NO), the current command value setting unit  42  sets the armature current command value I a * and the current phase angle command value β* corresponding to the torque command value T s * and the actual rotation speed ω using the speed/command value table  70  (Step S 13 : YES). The method of calculating the armature current command value I a * and the current phase angle command value β* using the speed/command value table  70  is the same as described in the first embodiment. Then, the routine in this operation cycle ends. 
     In the second embodiment, the armature current command value I a * and the current phase angle command value β* are set such that a current vector set by the d-axis current command value i d * and the q-axis current command value i q * is included in an area surrounded by the current vector locus in the maximum torque/current control and the q axis in the d-q coordinate system. Accordingly, it is possible to output a maximum torque and to output a motor torque corresponding to a motor torque command value in all rotation speed areas. 
     In the second embodiment, a plurality of operating points is set in the direction in which the operating point moves due to the decrease in motor inter-terminal voltage, and an armature current, a current phase angle, and a motor torque corresponding to each operating point are set as table values of the speed/command value table  70 . Accordingly, even when the motor inter-terminal voltage decreases, a motor torque can be output when a torque command value is in a range in which the motor torque can be output. 
     That is, in the second embodiment, when the motor inter-terminal voltage decreases and a torque command value is in a range in which a motor torque can be output, the motor torque corresponding to the torque command value can be output. In other words, in the second embodiment, even when the motor inter-terminal voltage decreases, an area in which a motor torque corresponding to a torque command value can be output is wider than that in the first embodiment. Accordingly, it is possible to solve the problem in the first embodiment. 
     While the first and second embodiments of the disclosure have been described above, the disclosure may be embodied in other forms. In the first and second embodiments, the microcomputer  31  includes the voltage limiting unit  48 , but it may not include the voltage limiting unit  48 . In the first and second embodiments, a synchronous reluctance motor that can rotate in two directions including the forward rotation direction and the reverse rotation direction has been exemplified, but the disclosure can also apply to an electric synchronous reluctance motor that is rotationally driven in only one direction. 
     In the first and second embodiments, the electric motor  18  is a synchronous reluctance motor, but the electric motor  18  may be a motor (such as a switched reluctance motor or an IPM motor) other than the synchronous reluctance motor as long it is a motor in which a rotor is rotated using a reluctance torque. In the first and second embodiments, the disclosure has applied to a control device of an electric motor for an electric power steering system. However, the disclosure can also apply to a motor control device other than the control device of an electric motor for an electric power steering system as long as it is a control device of a motor which is controlled based on a torque command value. 
     The disclosure can be subjected to various changes in design without departing from the scope of the disclosure described in the appended claims.