A method for controlling a motor speed for an electric motor in an extremely low speed range using a rotary pulse encoder which outputs a pulse whenever a rotation axle of the motor has rotated through a predetermined angle and a least order disturbance, load torque estimated value observer, the extremely low speed range being defined such that a pulse interval of the output pulses is longer than a speed control period, comprising the steps of:
- a) calculating an estimated value of the motor speed n.sub.M '(j) from a prestored motor model on the basis of a torque command and a load torque estimated value;
- b) calculating an average value of the motor speed at each pulse interval n.sub.M '(j) as follows:
- n.sub.M '(j)=[.SIGMA.n.sub.M '(i)]j/n(j), wherein i denotes the speed control period and j denotes the pulse interval of the pulse encoder,
- c) providing a first deviation output between the average value of the motor speed derived in the step b) n.sub.M '(j) and an average value of the motor speed n.sub.M (j) derived on the basis of the pulses of the pulse encoder.
- d) providing a second deviation output between the output value derived in the step a) n.sub.M '(i) and the deviated output of the step c) to derive the value of n.sub.M (i),
- (e) outputting the estimated load torque value .tau..sub.L (j) from the first deviated output of the step c), and
- f) providing a third deviation output between the load torque command .tau..sub.M (i) and the load estimated value .tau..sub.L (j) derived in the step e).