Imported: 10 Mar '17 | Published: 27 Nov '08

USPTO - Utility Patents

A motor controller stores values corresponding to predetermined equivalent resistance which corresponds to power loss generated by switching on and off switching elements. Voltage command values are determined by adding voltage drop values determined from values corresponding to the equivalent resistance and values of current flowing in the switching elements to target applied voltage values corresponding to current command values which correspond to target output of a motor. The switching elements arranged in a power supply line to the motor are switched on and off by control signals generated according to the voltage command values.

The present invention relates to a motor controller suitable for controlling, for example, the output of the motor for generating steering assist power in an electric power steering apparatus.

In a motor controller comprising switching elements such as MOS-FETs or the like arranged in a power supply line to a motor, current command values corresponding to target output of the motor are determined, target applied voltage values to the motor are calculated based on the current command values, PWM control signals having duty cycle corresponding to the target applied voltage values are generated, and the output of the motor is controlled by switching on and off the switching elements constituting an inverter circuit with the PWM control signals (Japanese Laid-open Patent No. 2001-268980).

In the motor controller, it is required that the difference between the target output and the actual output of the motor is reduced. However, since the difference is not sufficiently reduced, there is a problem that desirable characteristics cannot be achieved. Especially, when the output of the motor is open-loop controlled, the problem is emphasized. It is an object of the present invention to provide a motor controller that can resolve such a problem.

A motor controller of the present invention for controlling output of a motor by switching on and off switching elements arranged in a power supply line to the motor by control signals comprises a current command value determination part for determining current command values corresponding to a target output of the motor; a calculation part for determining target applied voltage values to the motor corresponding to the current command values; a storage part for storing values corresponding to predetermined equivalent resistance which corresponds to power loss generated by switching on and off the switching elements; a current determination part for determining values of current flowing in the switching elements; a calculation part for determining voltage command values by adding voltage drop values determined from the values corresponding to the equivalent resistance and the values of current flowing in the switching elements to the target applied voltage values; and a signal generating part for generating the control signals according to the voltage command values.

The present invention is based on knowledge that one of causes of the difference between the target output and the actual output of the motor is power loss generated by switching on and off the switching elements. To be more precise, FIG. 12 illustrates an example of relation between the timing of switching on and off the switching elements, power loss of the switching elements and time. Conventionally, it takes no account of such transient power loss generated by switching on and off the switching elements when the voltage command values corresponding to the voltage applied to the motor. Therefore, the voltage applied to the motor drops due to the power loss, so that the difference between the target output and the actual output of the motor is generated.

To the contrary, according to the present invention, the values corresponding to the equivalent resistance which corresponds to the power loss generated by switching on and off the switching elements are predetermined and stored, the voltage command values are determined by adding the voltage drop values determined from the values corresponding to the equivalent resistance and the value flowing in the switching elements to the target applied voltage values, and the output of the motor is controlled by the control signals corresponding to the voltage command values. Therefore, the voltage drop due to the power loss generated by switching on and off the switching elements is compensated, and the difference between the target output and the actual output of the motor can be reduced.

It is preferable that the motor controller of the present invention further comprises a voltage determination part for determining values of voltage applied to the switching elements, wherein values which correspond to the values of current flowing in the switching elements determined by the current determination part and the values of voltage applied to the switching elements determined by the voltage determination part are stored as the values corresponding to the equivalent resistance.

The power loss generated by switching on and off the switching elements varies according to the values of current flowing in the switching elements and the values of voltage applied to the switching elements, so that the difference between the target output and the actual output of the motor can be further reduced by making the values corresponding to the equivalent resistance used to determine the voltage command values correspond to the values of current and the values of voltage.

It is preferable that an output of a three-phase brushless motor is open-loop controlled as the output of the motor via an inverter circuit constituted of the switching elements, U-phase current value, V-phase current value and W-phase current value which are values of current flowing in the respective three-phase coils constituting an armature winding of the motor are determined as values of current flowing in the switching elements, the motor controller further comprises a rotation position determination part for determining rotation positions of a rotor of the motor, a calculation part for calculating an angular velocity of the rotor based on the rotation positions, and a phase current coordinate conversion part for calculating a d-axis current value and a q-axis current value based on the U-phase current value, the V-phase current value, the W-phase current value and the rotation position, in which an axis along the magnetic flux direction of field system of the rotor is taken as the d-axis, and an axis perpendicular to the d-axis and the rotation axis of the rotor is taken as the q-axis, the current command value determination part has dq-axes current command value calculation part for determining a d-axis current command value and a q-axis current command value as the current command values based on the target output of the motor, a d-axis equivalent resistance value and a q-axis equivalent resistance value are stored as the values corresponding to the equivalent resistance, a d-axis target applied voltage value V_{d }and a q-axis target applied voltage value V_{q }are determined as the target applied voltage values from the following formulas (1) and (2),

*V*_{d}=(*R+PL*_{d})*I*_{d}**L*_{q}*I*_{q}*(1)

*V*_{q}=(*R+PL*_{q})*I*_{q}**L*_{d}*I*_{d}*+(2)

a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }are determined as the voltage drop values from the following formulas (3) and (4),

*V*_{d}*=R*_{d}*I*_{d}(3)

*V*_{q}*=R*_{q}*I*_{q}(4)

a d-axis voltage command value V_{d}* and a q-axis voltage command value V_{q}* are determined as the voltage command values from the following formulas (5) and (6),

*V*_{d}**=V*_{d}*+V*_{d}(5)

*V*_{q}**=V*_{q}*+V*_{q}(6),

in formulas (1) through (6), R_{d }stands for a d-axis equivalent resistance value, R_{q }stands for a q-axis equivalent resistance value, I_{d }stands for a d-axis current value, I_{q }stands for a q-axis current value, R stands for a predetermined resistance value of the three-phase coils, P stands for a differential operator, L_{d }stands for a predetermined d-axis self-inductance of the three-phase coils, L_{q }stands for a predetermined q-axis self-inductance of the three-phase coils, I_{d}* stands for a d-axis current command value, I_{q}* stands for a q-axis current command value, stands for an angular velocity of the rotor, is a value predetermined by multiplying a maximum value of magnetic flux linkage of the three-phase coils by (3/2)^{1/2}.

As a result, the difference between the target output and the actual output of the three-phase brushless motor open-loop controlled via the inverter circuit can be reduced.

According to the motor controller of the present invention, the difference between the target output and the actual output of the motor can be reduced, so that the motor can be sufficiently performed.

An electric power steering device **101** of a rack-pinion type for a vehicle in an embodiment of the present invention, which is shown by FIG. 1, comprises a steering shaft **103** that is rotated by steering operation, a pinion **103***a *provided on the steering shaft **103**, a rack **104** engaged with the pinion **103***a*, a three-phase brushless motor **1** for generating steering assist power, and a ball screw mechanism **110** for transmitting the output of the motor **1** to the rack **104**. Each end of the rack **104** is linked to a wheel (not shown in the figures). When the pinion **103***a *is rotated by steering operation, the rack **104** moves in the lateral direction of the vehicle, and the steering angle varies due to the movement of the rack **104**.

The motor **1** comprises a stator **1***a *that is fixed to a housing **108** covering the rack **104**, a cylindrical rotor **1***b *that is rotatably supported by the housing **108** via bearings **108***a*, **108***b*, and a magnet **1***c *provided as a field system of the rotor **1***b*. The stator **1***a *has U-phase coil, V-phase coil and W-phase coil constituting an armature winding of the motor **1**. The rotor **1***b *surrounds the rack **104**. A resolver **2** serves as a rotation position determination part for determining rotation positions of the rotor **1***b*, and outputs rotation angles of the rotor **1***b *from a reference position of the stator **1***a *as the rotation positions.

The ball screw mechanism **110** has a ball screw shaft **110***a *integrally formed on the outer periphery of the rack **104** and a ball nut **110***b *engaged with the ball screw shaft **110***a *via balls. The ball nut **110***b *is connected to the rotor **1***b*. As a result, when the motor **1** rotates the ball nut **110***b*, the steering assist power is provided along the longitudinal direction of the rack **104**. The motor **1** is connected to a controller **10**.

FIG. 2 is a function block diagram of the controller **10** of the first embodiment. The resolver **2**, a torque sensor **7** that detects the steering torque transmitted by the steering shaft **103** and a vehicle velocity sensor **8** that detects the vehicle velocity are connected to the controller **10**. The controller **10** has a current determination part **11**, a signal processing part **12** and a drive part **13**. The drive part **13** has a pair of U-phase MOS-FET **13***u***1**, **13***u***2**, a pair of V-phase MOS-FET **13***v***1**, **13***v***2** and a pair of W-phase MOS-FET **13***w***1**, FET**13***w***2** as switching elements arranged in a power supply line to the motor **1**. The FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** constitute an inverter circuit, and are switched on and off by PWM control signals to open-loop control the output of the motor **1** via the inverter circuit.

The current determination part **11** determines U-phase current value I_{u}, V-phase current value I_{v }and W-phase current value I_{w}, which are values of current flowing in the three-phase coils as values of actual current flowing in the respective FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2**. The current detection part **11** of the present embodiment has current detectors **11***u*, **11***v*, **11***w *and AD converter **11***u*, **11***v*, **11***w* that perform AD conversion of current detection signals produced by the current detectors **11***u*, **11***v*, **11***w*. Each of the current detectors **11***u*, **11***v*, **11***w *has a current detection resistance and a detection circuit . Each of the current detection resistor is arranged between the ground terminal and each of the lower arm FETs **13***u***2**, **13***v***2**, **13***w***2**. Each of the detection circuit amplifies the current flowing through the current detection resistor to output the current detection signal.

The constitution of the current determination part **11** is not particularly limited as long as the current flowing through the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** can be determined. For example, each of the current detectors can be arranged in the upstream position of each of the upper arm FETs **13***u***1**, **13***v***1**, **13***w***1** or in the position between each of the upper arm FETs **13***u***1**, **13***v***1**, **13***w***1** and each of the lower arm FETs **13***u***1**, **13***v***1**, **13***w***1**. Furthermore, instead of providing three current detectors **11***u*, **11***v*, **11***w*, the respective phase current values I_{u}, I_{v}, I_{w }can be determined by calculation based on switching timing of the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** and detected current with a current detector having a single current detection resistor arranged in either position or position in FIG. 2. Furthermore, the phase current values in one or two of the three-phases can be determined by the current detector, and the remaining phase current values can be determined by calculation.

The signal processing part **12** is comprised of a computer storing a control program, and has a basic target current calculation part **15**, a dq-axes current command value calculation part **50**, a phase current coordinate conversion part **51**, a dq-axes voltage command value calculation part **52**, a voltage determination part **53**, a voltage coordinate conversion part **54**, a storage part **55** and PWM (pulse width modulation) control parts **18***u*, **18***v*, **18***w *for the respective three-phase coils. The storage part **55** can be constituted by an area of a memory device storing the control program or by another memory device.

In the basic target current calculation part **15**, a basic target current value I* is calculated based on the steering torque detected by the torque sensor **7** and the vehicle velocity detected by the vehicle velocity sensor **8**. The calculation of the basic target current value I* can be performed by a known method; for example, as the value of the steering torque becomes larger and the vehicle velocity becomes smaller, the basic target current value I* becomes larger. Furthermore, the method for determining the basic target current value I* is not particularly limited, and an arbitrary method can be adopted.

The basic target current value I* calculated in the basic target current calculation part **15** is input to the dq-axes current command value calculation part **50**. The dq-axes current command value calculation part **50** determines the d-axis current command value I_{d}* and q-axis current command value I_{q}* as the current command values based on the basic target current value I*. To be more precise, the d-axis current command value I_{d}* for generating magnetic field in the d-axis direction and the q-axis current command value I_{q}* for generating magnetic field in the q-axis direction are calculated in the dq coordinate system, in which an axis along the magnetic flux direction of the field system (magnet **1***c*) of the rotor **1***b *is taken as the d-axis, and an axis perpendicular to the d-axis and the rotation axis of the rotor **1***b *is taken as the q-axis. Here, the q-axis current command value I_{q}* corresponds to the target output torque of the motor **1**. The calculation in the dq-axes current command value calculation part **50** can be performed by using known calculation formulas. Therefore, in the present embodiment, the basic target current calculation part **15** and the dq-axes current command value calculation part **50** serve as the current command value determination part for determining the current command values corresponding to the target output of the motor **1**. The constitution of the current command value determination part is not particularly limited as long as the current command values corresponding to the target output of the motor **1** are determined, for example, a constitution which sets constant values as the current command values can be adopted.

The phase current coordinate conversion part **51** calculates the d-axis current value I_{d }and the q-axis current value I_{q }based on the phase current values I_{u}, I_{v}, I_{w }determined by the current determination part **11** and the rotation positions of the rotor **1***b *detected by the resolver **2**. The calculation in the phase current coordinate conversion part **51** can be performed by using known calculation formulas.

The voltage determination part **53** determines values V_{E }of actual voltage applied to the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2**. The voltage determination part **53** in the present embodiment can be constituted by a known voltage detector which outputs signals corresponding to detected values of voltage between the connecting points, which are shown by E**1** and E**2** in FIG. 2, in the inverter circuit.

The storage part **55** stores predetermined equivalent resistance values which correspond to power loss generated by switching on and off the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2**. In the present embodiment, a d-axis equivalent resistance value R_{d }and a q-axis equivalent resistance value R_{q}, which corresponds to values of actual current flowing in the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** and values of actual voltage applied to the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2**, are stored as the equivalent resistance values. FIG. 3 shows an example of relations between the values of current flowing in the FETs, the values V_{E }of voltage applied to the FETs and the equivalent resistance values, and the values corresponding to such relations are stored. To be more precise, a relation between the d-axis current value I_{d }determined by the phase current coordinate conversion part **51**, the voltage value V_{E }determined by the voltage determination part **53** and the d-axis equivalent resistance value R_{d }is predetermined and stored as a form of table or calculation formula or the like, furthermore, a relation between the q-axis current value I_{q }determined by the phase current coordinate conversion part **51**, the voltage value V_{E }determined by the voltage determination part **53** and the q-axis equivalent resistance value R_{q }is predetermined and stored as a form of table or calculation formula or the like.

Furthermore, resistance R of the three-phase coils, d-axis self-inductance L_{d}, q-axis self-inductance L_{q}, a value obtained by multiplying a maximum value of magnetic flux linkage of the three-phase coils by (3/2)^{1/2 }in the above-mentioned formulas (1) and (2) are predetermined and stored in the storage part **55**.

The dq-axes voltage command value calculation part **52** determines the voltage command values by adding the voltage drop values determined from the above-mentioned equivalent resistance values and values of current flowing in the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** to the target applied voltage values determined from the current command values and the relation expressed by the formulas (1) and (2). To be more precise, the dq-axes voltage command value calculation part **52** determines the d-axis target applied voltage value V_{d }and q-axis target applied voltage value V_{q }which are target applied voltage values, from the d-axis current command value I_{d}* and q-axis current command value I_{q}* determined by the dq-axes current command value calculation part **50** and the formulas (1) and (2), so that it serves as a calculation part for determining the target applied voltage values of the motor **1** corresponding to the current command values. Furthermore, the dq-axes voltage command value calculation part **52** determines a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }as voltage drop values from the d-axis current value I_{d }and q-axis current value I_{q }determined by the phase current coordinate conversion part **51** and the above-mentioned formulas (3) and (4), and determines the d-axis voltage command value V_{d}* and q-axis voltage command value V_{q}* as the voltage command values from the above-mentioned formulas (5) and (6). Here, the dq-axes voltage command value calculation part **52** serves as a calculation part for calculating angular velocity of the rotor **1***b *based on the rotation positions of the rotor **1***b *inputted in time series from the resolver **2**, and read the d-axis equivalent resistance value R_{d }and q-axis equivalent resistance value R_{q }from the storage part **55** based on the voltage value V_{E }determined by the voltage determination part **53** and the d-axis current value I_{d }and q-axis current value I_{q }determined by the phase current coordinate conversion part **51**.

In the present embodiment, the voltage coordinate conversion part **54** and PWM control parts **18***u*, **18***v*, **18***w *serve as the signal generating part for generating the PWM control signals for switching on and off the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** according to the d-axis voltage command value V_{d}* and q-axis voltage command value V_{q}* which are voltage command values.

To be more precise, in the voltage coordinate conversion part **54**, the U-phase voltage command value V_{u}*, V-phase voltage command value V_{v}* and W-phase voltage command value V_{w}* are calculated based on the d-axis voltage command value V_{d}*, the q-axis voltage command value V_{q}* and the rotation positions of the rotor **1***b *detected by the resolver **2**. The calculation in the voltage coordinate conversion part **54** can be performed by using known calculation formulas.

The respective PWM control parts **18***u*, **18***v*, **18***w *generates PWM control signals that are pulse signals having duty cycle corresponding to the voltage command values V_{u}*, V_{v}*, V_{w}* of the respective phases. The FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** of the drive part **13** are switched on and off by the PWM control signals so that the voltage applied by a battery E to the coils of respective phases of the motor **1** corresponds to the voltage command values V_{u}*, V_{v}*, V_{w}*. To be more precise, in the U-phase of the inverter circuit, when the PWM control signal inputted to the gate of one of the upper arm FET **13***u***1** and the lower arm FET **13***u***2** is high pulse, the PWM control signal inputted to the gate of the other is low pulse, and dead time is set between the falling edge of one of the PWM control signals and the rising edge of the other. It's same in the V-phase and W-phase. As a result, voltage corresponding to the target output is applied to the three-phase coils of the motor, and the motor is driven.

The flowchart of FIG. 4 shows a control procedure with the controller **10** of the first embodiment for the motor **1**. First, the detected values by the resolver **2**, the torque sensor **7**, the vehicle velocity sensor **8**, the current detectors **11***u*, **11***v*, **11***w*, and the voltage determination part **53** are read (step S**1**), and the basic target current value I* is calculated based on the detected torque and vehicle velocity (step S**2**). The d-axis current command value I_{d}* and q-axis current command value I_{q}* corresponding to the basic target current value I* are calculated (step S**3**), the d-axis current value I_{d }and q-axis current value I_{q }corresponding to the detected phase current values I_{u}, I_{v}, I_{w }and rotation positions of the rotor **1***b *are calculated (step S**4**), and the angular velocity of the rotor **1** is calculated based on the rotation positions of the rotor **1***b *determined in time series (step S**5**). The d-axis equivalent resistance value R_{d }and q-axis equivalent resistance value R_{q }corresponding to the calculated d-axis current value I_{d}, calculated q-axis current value I_{q }and detected voltage value V_{E }are read from the storage part **55** (step S**6**). Next, the d-axis voltage command value V_{d}* and q-axis voltage command value V_{q}* are calculated based on the calculated d-axis current command value I_{d}*, calculated q-axis current command value I_{q}*, calculated d-axis current value I_{d}, calculated q-axis current value I_{q}, calculated angular velocity , read d-axis equivalent resistance value R_{d}, read q-axis equivalent resistance value R_{q}, and relation expressed by formulas (1) through (6) (step S**7**). The U-phase voltage command value V_{u}*, V-phase voltage command value V_{v}* and W-phase voltage command value V_{w}* corresponding to the calculated d-axis voltage command value V_{d}* and q-axis voltage command value V_{q}* are calculated (step S**8**). The PWM control signals corresponding to the calculated voltage command values V_{u}*, V_{v}*, V_{w}* of the respective phases are generated, and the motor **1** is driven by switching on and off the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** by the PWM control signals (step S**9**), whether the control is to be ended is judged based on, for example, ON/OFF state of the ignition switch (step S**10**), and the processing flow returns to step S**1** in a state where the control is not to be ended.

According to the above-mentioned embodiment, the d-axis equivalent resistance value R_{d }and q-axis equivalent resistance value R_{q }corresponding to the power loss generated by switching on and off the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** are predetermined and stored, the d-axis voltage command value V_{d}* is determined by adding the d-axis voltage drop value V_{d }determined from the d-axis equivalent resistance value R_{d }and d-axis current value I_{d }to the d-axis target applied voltage value V_{d}, the q-axis voltage command value V_{q}* is determined by adding the q-axis voltage drop value V_{q }determined from the q-axis equivalent resistance value R_{q }and q-axis current value I_{q }to the q-axis target applied voltage value V_{q}, and the output of the motor **1** is controlled by the control signals corresponding to the voltage command values V_{d}* and V_{q}*. Therefore, the voltage drops due to the power loss generated by switching on and off the FET **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** is compensated, and the difference between the target output and the actual output of the three-phase brushless the motor **1** open-loop controlled via the inverter circuit can be reduced. Furthermore, by making the equivalent resistance values R_{d}, R_{q }used for determining the voltage command values V_{d}*, V_{q}* correspond to the current values flowing in the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** and the voltage values applied to the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2**, the difference between the target output, and the actual output of the motor **1** can be further reduced. Therefore, the motor **1** can be sufficiently performed and the capability of the electric power steering apparatus can be improved. FIG. 5 shows relations between the angular velocity and the output torque of the motor **1**, in which the relation in the above-mentioned embodiment where the voltage drop values V_{d}, V_{q }are added to the target applied voltage values V_{d}, V_{q }is expressed by a solid line, and the relation in the prior art where the voltage drop values V_{d}, V_{q }are not added to the target applied voltage values V_{d}, V_{q }is expressed by a broken line, and it can be confirmed that the reduction of the output torque is prevented in the above-mentioned embodiment in comparison with the prior art.

FIG. 6 shows a function block diagram of a controller **10** of the second embodiment. The difference in the second embodiment from the first embodiment is that the motor **1** is feedback controlled. The parts that are the same as the first embodiment are indicated by the same reference symbols, and the differences are explained.

The signal processing part **12** has a voltage drop calculation part **56**, a d-axis difference calculation part **57***d*, a q-axis difference calculation part **57***q*, a d-axis PI calculation part **58***d*, a q-axis PI calculation part **58***q*, a d-axis addition part **59***d *and a q-axis addition part **59***q *instead of the dq-axes voltage command value calculation part **52** of the first embodiment.

The voltage drop calculation part **56** determines a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }as the voltage drop values from the d-axis current value I_{d}, q-axis current value I_{q }and above-mentioned formulas (3) and (4). Here, the d-axis equivalent resistance value R_{d }and q-axis equivalent resistance value R_{q }are read from the storage part **55** based on the voltage value V_{E }determined by the voltage determination part **53** and the d-axis current value I_{d }and q-axis current value I_{q }determined by the phase current coordinate conversion part **51**.

The d-axis difference calculation part **57***d *determines the difference between the d-axis current command value I_{d}* and the d-axis current value I_{d }determined by the phase current coordinate conversion part **51**, the d-axis target applied voltage value V_{d }is determined by carrying out the PI calculation of the difference in the d-axis PI calculation part **58***d*. The q-axis difference calculation part **57***q *determines the difference between the q-axis current command value I_{q}* and the q-axis current value I_{q }determined by the phase current coordinate conversion part **51**, the q-axis target applied voltage value V_{q }is determined by carrying out the PI calculation of the difference in the q-axis PI calculation part **58***q*. As a result, the d-axis difference calculation part **57***d*, the q-axis difference calculation part **57***q*, the d-axis PI calculation part **58***d *and the q-axis PI calculation part **58***q *serve as the calculation part for determining the target applied voltage values to the motor **1** corresponding to the current command values.

The d-axis addition part **59***d *determines the d-axis voltage command value V_{d}* by adding the d-axis voltage drop value V_{d }to the d-axis target applied voltage value V_{d }as expressed by the formula (5), and the q-axis addition part **59***q *determines the q-axis voltage command value V_{q}* by adding the q-axis voltage drop value V_{q }to the q-axis target applied voltage value V_{q }as expressed by the formula (6). As a result, the voltage drop calculation part **56**, the d-axis addition part **59***d *and the q-axis addition part **59***q *constitute the calculation part for determining the voltage command values.

The flowchart of FIG. 7 shows a control procedure with the controller **10** of the second embodiment for the motor **1**.

First, the detected values by the resolver **2**, the torque sensor **7**, the vehicle velocity sensor **8**, the current detectors **11***u*, **11***v*, **11***w*, and the voltage determination part **53** are read (step S**101**), and the basic target current value I* is calculated based on the detected torque and vehicle velocity (step S**102**). The d-axis current command value I_{d}* and q-axis current command value I_{q}* corresponding to the basic target current value I* are calculated (step S**103**), the d-axis current value I_{d }and q-axis current value I_{q }corresponding to the detected phase current values I_{u}, I_{v}, I_{w }and rotation positions of the rotor **1***b *are calculated (step S**104**), the d-axis target applied voltage value V_{d }is calculated by the PI calculation of the difference between the calculated d-axis current command value I_{d}* and the calculated d-axis current value I_{d}, and the q-axis target applied voltage value V_{q }is calculated by the PI calculation of the difference between the calculated q-axis current command value I_{q}* and the calculated q-axis current value I_{q }(step S**105**). The d-axis equivalent resistance value R_{d }and q-axis equivalent resistance value R_{q }corresponding to the calculated d-axis current value I_{d}, calculated q-axis current value I_{q }and detected voltage value V_{E }are read from the storage part **55** (step S**106**). Next, the d-axis voltage drop value V_{d }and q-axis voltage drop value V_{q }are calculated from the calculated d-axis current value I_{d}, calculated q-axis current value I_{q}, read equivalent resistance values R_{d}, R_{q }and relation expressed by the formulas (3) and (4) (step S**107**), the d-axis voltage command value V_{d}* is calculated by adding the calculated d-axis target applied voltage value V_{d }and the calculated d-axis voltage drop value V_{d}, and the q-axis voltage command value V_{q}* is calculated by adding the calculated q-axis target applied voltage value V_{q }and the calculated q-axis voltage drop value V_{q }(step S**108**). The U-phase voltage command value V_{u}*, V-phase voltage command value V_{v}* and W-phase voltage command value V_{w}* corresponding to the calculated d-axis voltage command value V_{d}* and calculated q-axis voltage command value V_{q}* are calculated (step S**109**). The PWM control signals corresponding to the calculated voltage command values V_{u}*, V_{v}*, V_{w}* of the respective phases are generated, and the motor **1** is driven by switching on and off the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** by the PWM control signals (step S**110**), whether the control is to be ended is judged based on, for example, ON/OFF state of the ignition switch (step S**111**), and the processing flow returns to step S**101** in a state where the control is not to be ended. Other features are similar to those of the first embodiment.

FIG. 8 shows a function block diagram of a controller **10** of the third embodiment. The difference in the third embodiment from the first embodiment is that the basic target current I* is determined from the respective phase voltage command values V_{u}*, V_{v}*, V_{w}* without carrying out the calculation in the dq coordinate system. The parts that are the same as the first embodiment are indicated by the same reference symbols, and the differences are explained.

The signal processing part **12** has a three-phase current command value calculation part **60** and a three-phase voltage command value calculation part **61** instead of the dq-axes current command value calculation part **50**, the phase current coordinate conversion part **51**, the dq-axes voltage command value calculation part **52** and the voltage coordinate conversion part **54** of the first embodiment.

The three-phase current command value calculation part **60** calculates the respective U-phase current command value I_{u}*, V-phase current command value I_{v}* and W-phase current command value I_{w}* of the three-phase coils as the current command values based on the basic target current value I*. The calculation in the three-phase current command value calculation part **60** can be performed by a known method. Therefore, in the present embodiment, the basic target current calculation part **15** and the three-phase current command value calculation part **60** serve as the current command value determination part for determining the current command values corresponding to the target output of the motor **1**.

The storage part **55** stores a U-phase equivalent resistance value R_{u}, a V-phase equivalent resistance value R_{v }and a W-phase equivalent resistance value R_{w }as the equivalent resistance values. To be more precise, a relation between the U-phase current value I_{u }determined by the current determination part **11**, the voltage value V_{E }determined by the voltage determination part **53** and the U-phase equivalent resistance value R_{u }is predetermined and stored as a form of table or calculation formula or the like, a relation between the V-phase current value I_{v }determined by the current determination part **11**, the voltage value V_{E }determined by the voltage determination part **53** and the V-phase equivalent resistance value R_{v }is predetermined and stored as a form of table or calculation formula or the like, and a relation between the W-phase current value I_{w }determined by the current determination part **11**, the voltage value V_{E }determined by the voltage determination part **53** and the W-phase equivalent resistance value R_{w }is predetermined and stored as a form of table or calculation formula or the like.

The three-phase voltage command value calculation part **61** determines the U-phase target applied voltage value V_{u}, V-phase target applied voltage value V_{v }and W-phase target applied voltage value V_{w}, which are the target applied voltage values, from the respective phase current command values I_{u}*, I_{v}*, I_{w}* determined by the three-phase current command value calculation part **60** and the following formulas (7) through (9), so that it serves as a calculation part for determining the target applied voltage values to the motor **1** corresponding to the current command values.

*V*_{u}=(*R+PL*)*I*_{u}**PM*(*I*_{v}**+I*_{w}*)/2*+E*_{u}(7)

*V*_{v}=(*R+PL*)*I*_{v}**PM*(*I*_{u}**+I*_{w}*)/2*+E*_{v}(8)

*V*_{w}=(*R+PL*)*I*_{w}**PM*(*I*_{u}**+I*_{v}*)/2*+E*_{w}(9)

Here, in the formulas (7) through (9), R is resistance of the three-phase coils, L is the self-inductance of the respective three-phase coils, and M is mutual inductance between the three phase coils, which are predetermined and stored in the storage part **55** respectively. Furthermore, E_{u}, E_{v }and E_{w }are speed electromotive forces induced in the respective three-phase coils, which are determined by multiplying a predetermined counter electromotive force constant that is particular to the motor **1** by an angular velocity calculated based on the rotation positions of the rotor **1***b *inputted in time series from the resolver **2**. P stands for a differential operator.

Furthermore, the three-phase voltage command value calculation part **61** determines the U-phase voltage drop value V_{u}, V-phase voltage drop value V_{v }and W-phase voltage drop value V_{w }as the voltage drop values from the respective phase current values I_{u}, I_{v}, I_{w }determined by the current determination part **11** and the following formulas (10) through (12). Here, the respective phase equivalent resistance values R_{u}, R_{v}, R_{w }are read from the storage part **55** based on the respective phase current values I_{u}, I_{v}, I_{w }determined by the current determination part **11** and the voltage value V_{E }determined by the voltage determination part **53**.

*V*_{u}*=R*_{u}*I*_{u}(10)

*V*_{v}*=R*_{v}*I*_{v}(11)

*V*_{w}*=R*_{w}*I*_{w}(12)

Furthermore, the three-phase voltage command value calculation part **61** determines the U-phase voltage command value V_{u}*, V-phase voltage command value V_{v}* and W-phase voltage command value V_{w}* as the voltage command values, by adding the respective phase voltage drop values V_{u}, V_{v}, V_{w }to the respective phase target applied voltage values V_{u}, V_{v}, V_{w }as shown by the following formulas (13) through (15).

*V*_{u}**=V*_{u}*+V*_{u}(13)

*V*_{v}**=V*_{v}*+V*_{v}(14)

*V*_{w}**=V*_{w}*+V*_{w}(15)

In the third embodiment, the PWM control parts **18***u*, **18***v*, **18***w *serve as the signal generating part for generating the PWM control signals according to the respective phase voltage command values V_{u}*, V_{v}*, V_{w}*.

The flowchart of FIG. 9 shows a control procedure with the controller **10** of the third embodiment for the motor **1**. First, the detected values by the resolver **2**, the torque sensor **7**, the vehicle velocity sensor **8**, the current detectors **11***u*, **11***v*, **11***w *and the voltage determination part **53** are read (step S**301**), and the basic target current value I* is calculated based on the detected torque and vehicle velocity (step S**302**). The respective phase current command values I_{u}*, I_{v}*, I_{w}* corresponding to the basic target current value I* are calculated (step S**303**), the speed electromotive forces E_{u}, E_{v}, E_{w}, which are determined based on the rotation positions of the rotor **1***b *detected in time series, are calculated (step S**304**), the respective phase equivalent resistance values R_{u}, R_{v}, R_{w }corresponding to the respective phase current values I_{u}, I_{v}, I_{w }determined by the current determination part **11** and the detected voltage value V_{E }is read from the storage part **55** (step S**305**), and the respective phase voltage command values V_{u}*, V_{v}*, V_{w}* are calculated from the calculated current command values I_{u}*, I_{v}*, I_{w}*, calculated speed electromotive forces E_{u}, E_{v}, E_{w }of the respective phases, determined respective phase current values I_{u}, I_{v}, I_{w}, read respective phase equivalent resistance values R_{u}, R_{v}, R_{w}, and relation expressed by the formulas (7) through (15) (step S**306**). The PWM control signals corresponding to the calculated voltage command values V_{u}*, V_{v}*, V_{w}* of the respective phases are generated, and the motor **1** is driven by switching on and off the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** by the PWM control signals (step S**307**), whether the control is to be ended is judged based on, for example, ON/OFF state of the ignition switch (step S**308**), and the processing flow returns to step S**301** in a state where the control is not to be ended. Other features are similar to those of the first embodiment.

FIG. 10 shows a function block diagram of a controller **10** of the fourth embodiment. The difference in the fourth embodiment from the first embodiment is that the motor **1** is feedback controlled and the basic target current I* is determined from the respective phase voltage command values V_{u}*, V_{v}*, V_{w}* without carrying out the calculation in the dq coordinate system. The parts that are the same as the first embodiment are indicated by the same reference symbols, and the differences are explained.

The signal processing part **12** has a three-phase current command value calculation part **60**, a voltage drop calculation part **56**, a U-phase difference calculation part **57***u*, a V-phase difference calculation part **57***v*, a W-phase difference calculation part **57***w*, a U-phase PI calculation part **58***u*, a V-phase PI calculation part **58***v*, a W-phase PI calculation part **58***w*, a U-phase addition part **59***u*, a V-phase addition part **59***v *and a W-phase addition part **59***w *instead of the dq-axes current command value calculation part **50**, the phase current coordinate conversion part **51**, the dq-axes voltage command value calculation part **52** and the voltage coordinate conversion part **54** of the first embodiment.

The three-phase current command value calculation part **60** calculates the respective phase current command values I_{u}*, I_{v}*, I_{w}* as the current command values like in the third embodiment. Therefore, in the present embodiment, the basic target current calculation part **15** and the three-phase current command value calculation part **60** serve as the current command value determination part for determining the current command values corresponding to the target output of the motor **1**.

The storage part **55** stores the respective phase equivalent resistance values R_{u}, R_{v}, R_{w }as the equivalent resistance values like in the third embodiment.

The voltage drop calculation part **56** reads the respective phase equivalent resistance values R_{u}, R_{v}, R_{w }from the storage part **55** based on the respective phase current values I_{u}, I_{v}, I_{w }determined by the current determination part **11** and the voltage value V_{E }determined by the voltage determination part **53**, and determines the respective phase voltage drop values V_{u}, V_{v}, V_{w }as the voltage drop values from the respective phase equivalent resistance values R_{u}, R_{v}, R_{w}, respective phase current values I_{u}, I_{v}, I_{w }and formulas (10) through (12), like the three-phase voltage command value calculation part **61** in the third embodiment.

The U-phase difference calculation part **57***u *determines the difference between the U-phase current command value I_{u}* and the U-phase current value I_{u}, and the U-phase target applied voltage value V_{u }is determined by carrying out the PI calculation of the difference in the U-phase PI calculation part **58***u*. The V-phase difference calculation part **57***v *determines the difference between the V-phase current command value I_{v}* and the V-phase current value I_{v}, and the V-phase target applied voltage value V_{v }is determined by carrying out the PI calculation of the difference in the V-phase PI calculation part **58***v*. The W-phase difference calculation part **57***w *determines the difference between the W-phase current command value I_{w}* and the W-phase current value I_{w}, and the W-phase target applied voltage value V_{w }is determined by carrying out the PI calculation of the difference in the W-phase PI calculation part **58***w*. As a result, the respective phase difference calculation parts **57***u*, **57***v*, **57***w *and the respective phase PI calculation part **58***u*, **58***v*, **58***w *serve as the calculation part for determining the target applied voltage values to the motor **1** corresponding to the current command values.

The U-phase addition part **59***u *determines the U-phase voltage command value V_{u}* by adding the U-phase target applied voltage value V_{u }and the U-phase voltage drop value V_{u }as expressed by the formula (13), the V-phase addition part **59***v *determines the V-phase voltage command value V_{v}* by adding the V-phase target applied voltage value V_{v }and the V-phase voltage drop value V_{v }as expressed by the formula (14), the W-phase addition part **59***w *determines the W-phase voltage command value V_{w}* by adding the W-phase target applied voltage value V_{w }and the W-phase voltage drop value V_{w }as expressed by the formula (15).

In the fourth embodiment, the PWM control parts **18***u*, **18***v*, **18***w *serve as the signal generating part for generating the PWM control signals according to the respective phase voltage command values V_{u}*, V_{v}*, V_{w}*.

The flowchart of FIG. 11 shows a control procedure with the controller **10** of the fourth embodiment for the motor **1**. First, the detected values by the resolver **2**, the torque sensor **7**, the vehicle velocity sensor **8**, the current detectors **11***u*, **11***v*, **11***w *and the voltage determination part **53** are read (step S**401**), and the basic target current value I* is calculated based on the detected torque and vehicle velocity (step S**402**). The respective phase current command values I_{u}*, I_{v}*, I_{w}* corresponding to the basic target current value I* are calculated (step S**403**), the U-phase target applied voltage value V_{u }is calculated by carrying out the PI calculation of the difference between the calculated U-phase current command value I_{u}* and the determined U-phase current value I_{u}, the V-phase target applied voltage value V_{v }is calculated by carrying out the PI calculation of the difference between the calculated V-phase current command value I_{v}* and the determined V-phase current value I_{v}, and the W-phase target applied voltage value V_{w }is calculated by carrying out the PI calculation of the difference between the calculated W-phase current command value I_{w}* and the determined W-phase current value I_{w }(step S**404**). Further, the respective phase equivalent resistance values R_{u}, R_{v}, R_{w }corresponding to the determined respective phase current values I_{u}, I_{v}, I_{w }and voltage value V_{E }are read from the storage part (step S**405**), the respective phase voltage drop values V_{u}, V_{v}, V_{w }are then calculated from the read respective phase equivalent resistance values R_{u}, R_{v}, R_{w}, determined respective phase current values I_{u}, I_{v}, I_{w }and relation expressed by the formulas (10) through (12) (step S**406**), the U-phase voltage command value V_{u}* is calculated by adding the calculated U-phase target applied voltage value V_{u }and the calculated U-phase voltage drop value V_{u}, the V-phase voltage command value V_{v}* is calculated by adding the calculated V-phase target applied voltage value V_{v }and the calculated V-phase voltage drop value V_{v}, and the W-phase voltage command value V_{w}* is calculated by adding the calculated W-phase target applied voltage value V_{w }and the calculated W-phase voltage drop value V_{w }(step S**407**). The PWM control signals corresponding to the calculated voltage command values V_{u}*, V_{v}*, V_{w}* of the respective phases are generated, and the motor **1** is driven by switching on and off the FETs **13***u***1**, **13***u***2**, **13***v***1**, **13***v***2**, **13***w***1**, **13***w***2** by the PWM control signals (step S**408**), whether the control is to be ended is judged based on, for example, ON/OFF state of the ignition switch (step S**409**), and the processing flow returns to step S**401** in a state where the control is not to be ended. Other features are similar to those of the first embodiment.

The present invention is not limited to the above-described embodiments. For example, the application of the motor controlled by the controller of the present invention is not particularly limited. Further, the number of phases and type of the motor is not limited, and the present invention can be applied to a brush motor. Furthermore, each value corresponding to the equivalent resistance stored in the storage part is not limited to the equivalent resistance value itself, for example, the equivalent resistance value can be substantially stored by storing the voltage value, which is obtained by multiplying the equivalent resistance value by a current value, with related to the current value. In this case, the voltage value related to the current value that is determined by the current determination part can be read from the storage part as the voltage drop value. Furthermore, when the output of the motor is controlled under a condition where the fluctuation of the equivalent resistance value is small, the value corresponding to the equivalent resistance stored in the storage part can be constant.

a current command value determination part for determining current command values corresponding to a target output of said motor;

a calculation part for determining target applied voltage values to said motor corresponding to said current command values;

a storage part for storing values corresponding to predetermined equivalent resistance which corresponds to power loss generated by switching on and off said switching elements;

a current determination part for determining values of current flowing in said switching elements;

a calculation part for determining voltage command values by adding voltage drop values determined from the values corresponding to said equivalent resistance and the values of current flowing in said switching elements to said target applied voltage values; and

a signal generating part for generating said control signals according to said voltage command values.

a current command value determination part for determining current command values corresponding to a target output of said motor;

a calculation part for determining target applied voltage values to said motor corresponding to said current command values;

a storage part for storing values corresponding to predetermined equivalent resistance which corresponds to power loss generated by switching on and off said switching elements;

a current determination part for determining values of current flowing in said switching elements;

a calculation part for determining voltage command values by adding voltage drop values determined from the values corresponding to said equivalent resistance and the values of current flowing in said switching elements to said target applied voltage values; and

a signal generating part for generating said control signals according to said voltage command values.

a voltage determination part for determining values of voltage applied to said switching elements, wherein

values which correspond to the values of current flowing in said switching elements determined by said current determination part and the values of voltage applied to said switching elements determined by said voltage determination part are stored as the values corresponding to said equivalent resistance.

a voltage determination part for determining values of voltage applied to said switching elements, wherein

values which correspond to the values of current flowing in said switching elements determined by said current determination part and the values of voltage applied to said switching elements determined by said voltage determination part are stored as the values corresponding to said equivalent resistance.

an output of a three-phase brushless motor is open-loop controlled as the output of said motor via an inverter circuit constituted of said switching elements,

U-phase current value, V-phase current value and W-phase current value which are values of current flowing in the respective three-phase coils constituting an armature winding of said motor are determined as values of current flowing in said switching elements,

said motor controller further comprises

a rotation position determination part for determining rotation positions of a rotor of said motor,

a calculation part for calculating an angular velocity of said rotor based on said rotation positions, and

a phase current coordinate conversion part for calculating a d-axis current value and a q-axis current value based on said U-phase current value, said V-phase current value, said W-phase current value and said rotation positions, in which an axis along the magnetic flux direction of field system of the rotor is taken as the d-axis, and an axis perpendicular to the d-axis and the rotation axis of the rotor is taken as the q-axis,

said current command value determination part has dq-axes current command value calculation part for determining a d-axis current command value and a q-axis current command value as said current command values based on the target output of said motor,

a d-axis equivalent resistance value and a q-axis equivalent resistance value are stored as the values corresponding to said equivalent resistance,

a d-axis target applied voltage value V_{d }and a q-axis target applied voltage value V_{q }are determined as said target applied voltage values from the following formulas (1) and (2),

*V*_{d}=(*R+PL*_{d})*I*_{d}**L*_{q}*I*_{q}*(1)

*V*_{q}=(*R+PL*_{q})*I*_{q}**L*_{d}*I*_{d}*+(2)

a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }are determined as said voltage drop values from the following formulas (3) and (4),

*V*_{d}*=R*_{d}*I*_{d}(3)

*V*_{q}*=R*_{q}*I*_{q}(4), and

a d-axis voltage command value V_{d}* and a q-axis voltage command value V_{q}* are determined as said voltage command values from the following formulas (5) and (6),

*V*_{d}**=V*_{d}*+V*_{d}(5)

*V*_{q}**=V*_{q}*+V*_{q}(6),

in formulas (1) through (6), R_{d }stands for a d-axis equivalent resistance value, R_{q }stands for a q-axis equivalent resistance value, I_{d }stands for a d-axis current value, I_{q }stands for a q-axis current value, R stands for a predetermined resistance value of said three-phase coils, P stands for a differential operator, L_{d }stands for a predetermined d-axis self-inductance of said three-phase coils, L_{q }stands for a predetermined q-axis self-inductance of said three-phase coils, I_{d}* stands for a d-axis current command value, I_{q}* stands for a q-axis current command value, stands for an angular velocity of said rotor, is a value predetermined by multiplying a maximum value of magnetic flux linkage of said three-phase coils by (3/2)^{1/2}.

an output of a three-phase brushless motor is open-loop controlled as the output of said motor via an inverter circuit constituted of said switching elements,

U-phase current value, V-phase current value and W-phase current value which are values of current flowing in the respective three-phase coils constituting an armature winding of said motor are determined as values of current flowing in said switching elements,

said motor controller further comprises

a rotation position determination part for determining rotation positions of a rotor of said motor,

a calculation part for calculating an angular velocity of said rotor based on said rotation positions, and

a phase current coordinate conversion part for calculating a d-axis current value and a q-axis current value based on said U-phase current value, said V-phase current value, said W-phase current value and said rotation positions, in which an axis along the magnetic flux direction of field system of the rotor is taken as the d-axis, and an axis perpendicular to the d-axis and the rotation axis of the rotor is taken as the q-axis,

said current command value determination part has dq-axes current command value calculation part for determining a d-axis current command value and a q-axis current command value as said current command values based on the target output of said motor,

a d-axis equivalent resistance value and a q-axis equivalent resistance value are stored as the values corresponding to said equivalent resistance,

a d-axis target applied voltage value V_{d }and a q-axis target applied voltage value V_{q }are determined as said target applied voltage values from the following formulas (1) and (2),

*V*_{d}=(*R+PL*_{d})*I*_{d}**L*_{q}*I*_{q}*(1)

*V*_{q}=(*R+PL*_{q})*I*_{q}**L*_{d}*I*_{d}*+(2)

a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }are determined as said voltage drop values from the following formulas (3) and (4),

*V*_{d}*=R*_{d}*I*_{d}(3)

*V*_{q}*=R*_{q}*I*_{q}(4), and

a d-axis voltage command value V_{d}* and a q-axis voltage command value V_{q}* are determined as said voltage command values from the following formulas (5) and (6),

*V*_{d}**=V*_{d}*+V*_{d}(5)

*V*_{q}**=V*_{q}*+V*_{q}(6),

in formulas (1) through (6), R_{d }stands for a d-axis equivalent resistance value, R_{q }stands for a q-axis equivalent resistance value, I_{d }stands for a d-axis current value, I_{q }stands for a q-axis current value, R stands for a predetermined resistance value of said three-phase coils, P stands for a differential operator, L_{d }stands for a predetermined d-axis self-inductance of said three-phase coils, L_{q }stands for a predetermined q-axis self-inductance of said three-phase coils, I_{d}* stands for a d-axis current command value, I_{q}* stands for a q-axis current command value, stands for an angular velocity of said rotor, is a value predetermined by multiplying a maximum value of magnetic flux linkage of said three-phase coils by (3/2)^{1/2}.

an output of a three-phase brushless motor is open-loop controlled as the output of said motor via an inverter circuit constituted of said switching elements,

U-phase current value, V-phase current value and W-phase current value which are values of current flowing in the respective three-phase coils constituting an armature winding of said motor are determined as values of current flowing in said switching elements,

said motor controller further comprises

a rotation position determination part for determining rotation positions of a rotor of said motor,

a calculation part for calculating an angular velocity of said rotor based on said rotation positions, and

a phase current coordinate conversion part for calculating a d-axis current value and a q-axis current value based on said U-phase current value, said V-phase current value, said W-phase current value and said rotation positions, in which an axis along the magnetic flux direction of field system of the rotor is taken as the d-axis, and an axis perpendicular to the d-axis and the rotation axis of the rotor is taken as the q-axis,

said current command value determination part has dq-axes current command value calculation part for determining a d-axis current command value and a q-axis current command value as said current command values based on the target output of said motor,

a d-axis equivalent resistance value and a q-axis equivalent resistance value are stored as the values corresponding to said equivalent resistance,

a d-axis target applied voltage value V_{d }and a q-axis target applied voltage value V_{q }are determined as said target applied voltage values from the following formulas (1) and (2),

*V*_{d}=(*R+PL*_{d})*I*_{d}**L*_{q}*I*_{q}*(1)

*V*_{q}=(*R+PL*_{q})*I*_{q}**L*_{d}*I*_{d}*+(2)

a d-axis voltage drop value V_{d }and a q-axis voltage drop value V_{q }are determined as said voltage drop values from the following formulas (3) and (4),

*V*_{d}*=R*_{d}*I*_{d}(3)

*V*_{q}*=R*_{q}*I*_{q}(4), and

a d-axis voltage command value V_{d}* and a q-axis voltage command value V_{q}* are determined as said voltage command values from the following formulas (5) and (6),

*V*_{d}**=V*_{d}*+V*_{d}(5)

*V*_{q}**=V*_{q}*+V*_{q}(6),

in formulas (1) through (6), R_{d }stands for a d-axis equivalent resistance value, R_{q }stands for a q-axis equivalent resistance value, I_{d }stands for a d-axis current value, I_{q }stands for a q-axis current value, R stands for a predetermined resistance value of said three-phase coils, P stands for a differential operator, L_{d }stands for a predetermined d-axis self-inductance of said three-phase coils, L_{q }stands for a predetermined q-axis self-inductance of said three-phase coils, I_{d}* stands for a d-axis current command value, I_{q}* stands for a q-axis current command value, stands for an angular velocity of said rotor, is a value predetermined by multiplying a maximum value of magnetic flux linkage of said three-phase coils by (3/2)^{1/2}.

said motor controller further comprises

a rotation position determination part for determining rotation positions of a rotor of said motor,