1. A synchronous motor control apparatus that performs current vector control of a permanent-magnet synchronous motor based

on a q-phase current command and a d-phase current command, comprising:

a first candidate value calculating unit which, using the motor speed of said synchronous motor and a control apparatus current

limit value and control apparatus voltage limit value preset in said control apparatus, calculates a first d-phase current

limit candidate value and a first q-phase current limit candidate value, based on points of intersection at which a current

limiting circle representing a current vector locus that said control apparatus current limit value describes on a d-q current

coordinate plane intersects a voltage limiting ellipse representing a current vector locus that said control apparatus voltage

limit value describes as a function of said motor speed;

a second candidate value calculating unit which, using the motor speed of said synchronous motor and said control apparatus

voltage limit value, calculates a second d-phase current limit candidate value and a second q-phase current limit candidate

value, based on points of intersection at which a maximum torque/flux curve representing a current vector locus that maximizes

torque for the same flux linkage on said d-q current coordinate plane intersects said voltage limiting ellipse representing

the current vector locus that said control apparatus voltage limit value describes as a function of said motor speed;

a first q-phase current command unit which, when the absolute value of said first d-phase current limit candidate value is

smaller than the absolute value of said second d-phase current limit candidate value, then sets said first q-phase current

limit candidate value as a q-phase current limit value, but otherwise sets said second q-phase current limit candidate value

as the q-phase current limit value and, when a first q-phase current command candidate value created based on a torque command

exceeds said q-phase current limit value, then limits said first q-phase current command candidate value to said q-phase current

limit value and outputs said limited first q-phase current command candidate value;

a first d-phase current command unit which, when the absolute value of said first d-phase current limit candidate value is

smaller than the absolute value of said second d-phase current limit candidate value, then sets said first d-phase current

limit candidate value as a d-phase current limit value, but otherwise sets said second d-phase current limit candidate value

as the d-phase current limit value and, when a first d-phase current command candidate value created based on said motor speed

and said first q-phase current command candidate exceeds said d-phase current limit value, then limits said first d-phase

current command candidate value to said d-phase current limit value and outputs said limited first d-phase current command

candidate value;

a third candidate value calculating unit which calculates a third d-phase current limit candidate value and a third q-phase

current limit candidate value, based on points of intersection at which a maximum torque/current curve representing a current

vector locus that maximizes generated torque for the same current on said d-q current coordinate plane intersects said current

limiting circle representing the current vector locus that said control apparatus current limit value describes;

a second q-phase current command unit which, when a second q-phase current command candidate value created based on said torque

command exceeds said third q-phase current limit candidate value, then limits said second q-phase current command candidate

value to said third q-phase current limit value and outputs said limited second q-phase current command candidate value;

a second d-phase current command unit which outputs a second d-phase current command candidate value that is created by using

said second q-phase current command candidate value output from said second q-phase current command unit and said maximum

torque/current curve representing on said d-q current coordinate plane said current vector locus that maximizes generated

torque for the same current; and

a d-q phase current command judging unit which, when the absolute value of said second d-phase current command candidate value

is larger than the absolute value of said first d-phase current command candidate value, then outputs said second d-phase

current command candidate value and said second q-phase current command candidate value, otherwise outputs said first d-phase

current command candidate value and said first q-phase current command candidate value, as said d-phase current command and

said q-phase current command, respectively.