is achieved by updating the command value iqs of the present cycle with its previous value plus down scaled differential value as follows the exe_cnt counter is then decremented by a predetermined amount step s 114 if the count value u201c exe_cnt u201d is not greater than 0 flow proceeds to step s 115 to set the current command value iq from the current map 20 as an weighted current command value iqs at step s 106 a pair of d and q axis currents id iq is determined by the uvw dq converter 25 by conversion from the u and w phase output currents of inverter 92 and then a pair of d and q axis voltage command values vd and vq is calculated by the voltage command value calculator 21 and supplied to the amplitude calculator 212 and the safeguard circuit 23 step s 107 in response the amplitude calculator 212 calculates equation 3 to obtain vm step s 108 the flags vmax_guard and vmin_guard will be weighted according to the flowchart of fig3 b at step s 116 the safeguard circuit 23 compares the amplitude value vm with vmax if vm is greater than vmax flow proceeds to step s 117 to turn on the vmax_guard_flag and turn off the vmin_guard_flag and the previous values of voltage command values are set to vd and vq as their new values step s 118 the torque control execution flag u201c exe u201d is turned on step s 119 and the guard counter u201c guard_cnt u201d is set to a count value.