A method of determining a quantity of rotor slots in an induction motor through analysis of voltage and current signals, characterised by: calculating an approximate slip according to an approximate slip function that is independent of a rotor slots quantity; calculating a fundamental frequency from a representation of the voltage signal; calculating a saliency frequency from a representation of the current signal, wherein the saliency frequency is the instantaneous frequency estimate of the highest quality observable saliency harmonic during operation of the motor in dynamic conditions; for each rotor slots index in a set of rotor slots indices: calculating a slip estimate according to a slip estimation function that includes the saliency frequency, a saliency order, the fundamental frequency, a rotor slots index in the set of rotor slots indices, and a quantity of poles of the motor, such that the slip estimate is evaluated at respective rotor slot indices of the set of rotor slots indices, calculating a slip estimation error signal according to a slip estimation error function that includes a difference between the approximate slip and respective slip estimates of the slip estimates, and calculating a rotor slots performance surface from an aggregate of the slip estimation error signals evaluated over the set of the rotor slots indices; defining a rotor slots quantity equal to the rotor slots index corresponding to a minimum of the rotor slots performance surface over at least a portion of the set of the rotor slots indices; and storing the rotor slots quantity. calculating an approximate slip according to an approximate slip function that is independent of a rotor slots quantity; calculating a fundamental frequency from a representation of the voltage signal; calculating a saliency frequency from a representation of the current signal, wherein the saliency frequency is the instantaneous frequency estimate of the highest quality observable saliency harmonic during operation of the motor in dynamic conditions; for each rotor slots index in a set of rotor slots indices: calculating a slip estimate according to a slip estimation function that includes the saliency frequency, a saliency order, the fundamental frequency, a rotor slots index in the set of rotor slots indices, and a quantity of poles of the motor, such that the slip estimate is evaluated at respective rotor slot indices of the set of rotor slots indices, calculating a slip estimation error signal according to a slip estimation error function that includes a difference between the approximate slip and respective slip estimates of the slip estimates, and calculating a rotor slots performance surface from an aggregate of the slip estimation error signals evaluated over the set of the rotor slots indices; calculating a slip estimate according to a slip estimation function that includes the saliency frequency, a saliency order, the fundamental frequency, a rotor slots index in the set of rotor slots indices, and a quantity of poles of the motor, such that the slip estimate is evaluated at respective rotor slot indices of the set of rotor slots indices, calculating a slip estimation error signal according to a slip estimation error function that includes a difference between the approximate slip and respective slip estimates of the slip estimates, and calculating a rotor slots performance surface from an aggregate of the slip estimation error signals evaluated over the set of the rotor slots indices; defining a rotor slots quantity equal to the rotor slots index corresponding to a minimum of the rotor slots performance surface over at least a portion of the set of the rotor slots indices; and storing the rotor slots quantity.