This paper addresses the problem of steady-state velocity ripple elimination in permanent magnet synchronous motor(PMSM). The velocity ripples are caused by periodic disturbances in the system, such as: cogging torque, measurement errors of stator current, magnetic flux harmonic, load torque and dead time effect etc. Some of these periodic disturbances affect the speed loop of PMSM vector control system, and the others affect the current loop. Different from the usual way of designing speed loop controller only, according to the generation mechanisms of these periodic disturbances, the speed loop controller and current loop controller are designed based on internal model principle(IMP). The experimental results show that suppressing the velocity ripple in both speed loop and current has a better performance than only in speed loop.