Nonlinear and adaptive control of a shunt DC motor