A motor drive device comprising: a drive circuit for driving a motor; and a control section for controlling the drive circuit; wherein the control section comprises: a current command value calculating portion configured to calculate a current command value, a rotation calculating portion configured to calculate a rotation angle and an angular speed of the motor, a current command value correcting portion configured to correct the current command value calculated by the current command value calculating portion based on the rotation angle calculated by the rotation calculating portion, a voltage command value calculating portion configured to calculate a voltage command value based on the current command value corrected by the current command value correcting portion, a voltage command value correcting portion configured to correct the voltage command value calculated by the voltage command value calculating portion based on the current command value calculated by the current command value calculating portion and the rotation angle and the angular speed calculated by the rotation calculating portion so as to compensate delays in feedback and in calculation of each of said calculating portions (21, 22, 25), and a drive signal generating portion configured to generate a drive signal based on the voltage command value corrected by the voltage command value correcting portion. a drive circuit for driving a motor; and a control section for controlling the drive circuit; wherein the control section comprises: a current command value calculating portion configured to calculate a current command value, a rotation calculating portion configured to calculate a rotation angle and an angular speed of the motor, a current command value correcting portion configured to correct the current command value calculated by the current command value calculating portion based on the rotation angle calculated by the rotation calculating portion, a voltage command value calculating portion configured to calculate a voltage command value based on the current command value corrected by the current command value correcting portion, a voltage command value correcting portion configured to correct the voltage command value calculated by the voltage command value calculating portion based on the current command value calculated by the current command value calculating portion and the rotation angle and the angular speed calculated by the rotation calculating portion so as to compensate delays in feedback and in calculation of each of said calculating portions (21, 22, 25), and a drive signal generating portion configured to generate a drive signal based on the voltage command value corrected by the voltage command value correcting portion. a current command value calculating portion configured to calculate a current command value, a rotation calculating portion configured to calculate a rotation angle and an angular speed of the motor, a current command value correcting portion configured to correct the current command value calculated by the current command value calculating portion based on the rotation angle calculated by the rotation calculating portion, a voltage command value calculating portion configured to calculate a voltage command value based on the current command value corrected by the current command value correcting portion, a voltage command value correcting portion configured to correct the voltage command value calculated by the voltage command value calculating portion based on the current command value calculated by the current command value calculating portion and the rotation angle and the angular speed calculated by the rotation calculating portion so as to compensate delays in feedback and in calculation of each of said calculating portions (21, 22, 25), and a drive signal generating portion configured to generate a drive signal based on the voltage command value corrected by the voltage command value correcting portion.