A system for controlling the speed of a motor driving a load, wherein the motor is electrically connected to a generator which is driven by an engine, said generator having a controllable field, said system comprising: a first control feedback loop configured to limit the difference between the magnetic flux in the rotor of the motor and a commanded level of magnetic flux wherein the magnetic flux in the rotor is estimated based on measurement of electrical inputs to the motor cables; and a second control feedback loop configured to limit the difference between the speed of the rotor of the motor and a commanded speed wherein the speed of the motor is estimated based on measurement of electrical inputs to the motor cables; the first and second control feedback loops are configured and operatively connected for: measuring voltage and current inputs (Vm, Im) to the motor cables; generating a signal representing an estimate of the rotor flux (λre) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor cables; comparing a flux rotor command signal (λrc) with the signal representing an estimate of the rotor flux (λre) of the motor to generate a signal representing the rotor flux error (λee); generating a flux excitation command signal (λec) based on the signal representing the rotor flux error (λee), the flux excitation command signal (λec) controlling the excitation of the field of the generator; generating a signal representing an estimate of the speed (Ume) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor; comparing a speed command signal (Umc) with the signal representing an estimate of the speed (Ume) of the motor to generate a signal representing the motor speed error (Uee); and generating a throttle position command signal (Txc) based on the signal representing the motor speed error (Uee), the throttle position command signal (Txc) controlling the position of the throttle of the engine; generating a torque engine command (Tec); and linearizing the torque engine command (Tec), wherein the gain of the throttle position control is near constant and easier to tune for optimum response. a first control feedback loop configured to limit the difference between the magnetic flux in the rotor of the motor and a commanded level of magnetic flux wherein the magnetic flux in the rotor is estimated based on measurement of electrical inputs to the motor cables; and a second control feedback loop configured to limit the difference between the speed of the rotor of the motor and a commanded speed wherein the speed of the motor is estimated based on measurement of electrical inputs to the motor cables; the first and second control feedback loops are configured and operatively connected for: measuring voltage and current inputs (Vm, Im) to the motor cables; generating a signal representing an estimate of the rotor flux (λre) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor cables; comparing a flux rotor command signal (λrc) with the signal representing an estimate of the rotor flux (λre) of the motor to generate a signal representing the rotor flux error (λee); generating a flux excitation command signal (λec) based on the signal representing the rotor flux error (λee), the flux excitation command signal (λec) controlling the excitation of the field of the generator; generating a signal representing an estimate of the speed (Ume) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor; comparing a speed command signal (Umc) with the signal representing an estimate of the speed (Ume) of the motor to generate a signal representing the motor speed error (Uee); and generating a throttle position command signal (Txc) based on the signal representing the motor speed error (Uee), the throttle position command signal (Txc) controlling the position of the throttle of the engine; generating a torque engine command (Tec); and linearizing the torque engine command (Tec), wherein the gain of the throttle position control is near constant and easier to tune for optimum response. measuring voltage and current inputs (Vm, Im) to the motor cables; generating a signal representing an estimate of the rotor flux (λre) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor cables; comparing a flux rotor command signal (λrc) with the signal representing an estimate of the rotor flux (λre) of the motor to generate a signal representing the rotor flux error (λee); generating a flux excitation command signal (λec) based on the signal representing the rotor flux error (λee), the flux excitation command signal (λec) controlling the excitation of the field of the generator; generating a signal representing an estimate of the speed (Ume) of the motor based on the measurements (Vmm, Imm) of the voltage and current inputs to the motor; comparing a speed command signal (Umc) with the signal representing an estimate of the speed (Ume) of the motor to generate a signal representing the motor speed error (Uee); and generating a throttle position command signal (Txc) based on the signal representing the motor speed error (Uee), the throttle position command signal (Txc) controlling the position of the throttle of the engine; generating a torque engine command (Tec); and linearizing the torque engine command (Tec), wherein the gain of the throttle position control is near constant and easier to tune for optimum response.