A motor control system for determining, comprising: a motor having a plurality of motor harmonics and a motor frequency; a bandwidth compensation controller in communication with the motor, the bandwidth compensation controller configured to: determine a magnitude response compensation value (96, 98) and a phase compensation value (100, 102) for each of the plurality of motor harmonics, the magnitude response compensation value (96, 98) and the phase compensation value (100, 102) both based on the motor frequency; and determine a ripple compensating current (I q_RIPPLE, I d_RIPPLE) based on the magnitude response compensation value (96, 98) and the phase compensation value (100, 102); and a torque ripple compensation controller in communication with the bandwidth compensation controller, wherein the torque ripple compensation controller includes a plurality of look-up tables, wherein each of the plurality of look-up tables are used to determine one of a torque ripple magnitude and a torque ripple phase for one of the plurality of motor harmonics, characterized in that the torque ripple compensation controller is configured to calculate a current harmonic magnitude (86, 90) based on the torque ripple magnitude, and the magnitude response compensation value (96, 98) is based on the current harmonic magnitude (86, 90) and a frequency compensation value, or the torque ripple compensation controller is configured to calculate a phase output (88, 92) based on the torque ripple phase, and the phase compensation value (100, 102) is based on the phase output (88, 92) and a frequency compensation value; wherein the bandwidth compensation controller determines the frequency compensation value for an i th motor harmonic by: n = i * p 2 ω m wherein n represents the frequency compensation value for the i th harmonic, i represents a specific motor harmonic, P represents a number of poles of the motor, and ω m represents the motor frequency. a motor having a plurality of motor harmonics and a motor frequency; a bandwidth compensation controller in communication with the motor, the bandwidth compensation controller configured to: determine a magnitude response compensation value (96, 98) and a phase compensation value (100, 102) for each of the plurality of motor harmonics, the magnitude response compensation value (96, 98) and the phase compensation value (100, 102) both based on the motor frequency; and determine a ripple compensating current (I q_RIPPLE, I d_RIPPLE) based on the magnitude response compensation value (96, 98) and the phase compensation value (100, 102); and determine a magnitude response compensation value (96, 98) and a phase compensation value (100, 102) for each of the plurality of motor harmonics, the magnitude response compensation value (96, 98) and the phase compensation value (100, 102) both based on the motor frequency; and determine a ripple compensating current (I q_RIPPLE, I d_RIPPLE) based on the magnitude response compensation value (96, 98) and the phase compensation value (100, 102); and a torque ripple compensation controller in communication with the bandwidth compensation controller, wherein the torque ripple compensation controller includes a plurality of look-up tables, wherein each of the plurality of look-up tables are used to determine one of a torque ripple magnitude and a torque ripple phase for one of the plurality of motor harmonics, characterized in that the torque ripple compensation controller is configured to calculate a current harmonic magnitude (86, 90) based on the torque ripple magnitude, and the magnitude response compensation value (96, 98) is based on the current harmonic magnitude (86, 90) and a frequency compensation value, or the torque ripple compensation controller is configured to calculate a phase output (88, 92) based on the torque ripple phase, and the phase compensation value (100, 102) is based on the phase output (88, 92) and a frequency compensation value; the torque ripple compensation controller is configured to calculate a current harmonic magnitude (86, 90) based on the torque ripple magnitude, and the magnitude response compensation value (96, 98) is based on the current harmonic magnitude (86, 90) and a frequency compensation value, or the torque ripple compensation controller is configured to calculate a phase output (88, 92) based on the torque ripple phase, and the phase compensation value (100, 102) is based on the phase output (88, 92) and a frequency compensation value; wherein the bandwidth compensation controller determines the frequency compensation value for an i th motor harmonic by: n = i * p 2 ω m wherein n represents the frequency compensation value for the i th harmonic, i represents a specific motor harmonic, P represents a number of poles of the motor, and ω m represents the motor frequency.