An apparatus for generating a d-axis reference current used for controlling a motor, the apparatus comprising: a difference circuit (200, 400) that obtains a difference between a q-axis reference voltage and a q-axis voltage; a) a first controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective d-axis current of a stator of the motor; or b) a second controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective q-axis voltage of the stator of the motor; and a gate that converts the corrective q-axis voltage of the stator of the motor into the corrective d-axis current of the stator of the motor; the apparatus further comprising: a summation circuit that obtains the d-axis reference current by adding the corrective d-axis current of the stator of the motor and a feed forward d-axis current of the stator of the motor; wherein the d-axis reference current is used to control the motor, characterized in that the feed forward d-axis current of the stator of the motor, I ds_feedfw is determined based on the following equation: I ds _ feedfw = V qref − r s × i qref + L qs × di qref dt + E ω × L ds wherein, r s is a stator resistance of the motor; wherein, i qref is a q-axis reference current; wherein, L qs is a q-axis inductance of the stator of the motor; wherein, di qref dt is a derivative of the q-axis reference current with respect to time; wherein, E is the back electromotive force of the motor; wherein, ω is the electrical speed of the motor; and wherein, L ds is the d-axis inductance of the stator of the motor. a difference circuit (200, 400) that obtains a difference between a q-axis reference voltage and a q-axis voltage; a) a first controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective d-axis current of a stator of the motor; or b) a second controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective q-axis voltage of the stator of the motor; and a gate that converts the corrective q-axis voltage of the stator of the motor into the corrective d-axis current of the stator of the motor; a) a first controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective d-axis current of a stator of the motor; or b) a second controller that converts the difference between the q-axis reference voltage and the q-axis voltage into a corrective q-axis voltage of the stator of the motor; and a gate that converts the corrective q-axis voltage of the stator of the motor into the corrective d-axis current of the stator of the motor; the apparatus further comprising: a summation circuit that obtains the d-axis reference current by adding the corrective d-axis current of the stator of the motor and a feed forward d-axis current of the stator of the motor; wherein the d-axis reference current is used to control the motor, characterized in that the feed forward d-axis current of the stator of the motor, I ds_feedfw is determined based on the following equation: I ds _ feedfw = V qref − r s × i qref + L qs × di qref dt + E ω × L ds wherein, r s is a stator resistance of the motor; wherein, i qref is a q-axis reference current; wherein, L qs is a q-axis inductance of the stator of the motor; wherein, di qref dt is a derivative of the q-axis reference current with respect to time; wherein, E is the back electromotive force of the motor; wherein, ω is the electrical speed of the motor; and wherein, L ds is the d-axis inductance of the stator of the motor. a summation circuit that obtains the d-axis reference current by adding the corrective d-axis current of the stator of the motor and a feed forward d-axis current of the stator of the motor; wherein the d-axis reference current is used to control the motor, characterized in that the feed forward d-axis current of the stator of the motor, I ds_feedfw is determined based on the following equation: I ds _ feedfw = V qref − r s × i qref + L qs × di qref dt + E ω × L ds wherein, r s is a stator resistance of the motor; wherein, i qref is a q-axis reference current; wherein, L qs is a q-axis inductance of the stator of the motor; wherein, di qref dt is a derivative of the q-axis reference current with respect to time; wherein, E is the back electromotive force of the motor; wherein, ω is the electrical speed of the motor; and wherein, L ds is the d-axis inductance of the stator of the motor.