DPRG List  

[DPRG] Re: PWM vs. voltage motor control

Subject: [DPRG] Re: PWM vs. voltage motor control
From: David P. Anderson dpa at io.isem.smu.edu
Date: Sat Jun 16 11:52:39 CDT 2001


There is a slightly different way of doing PWM that uses constant
duty cycle with a varying arrangement of "on" and "off" pulses,
to get around the slew-rate limit problem that Mike describes
with very narrow pulses/slow motor speeds.

The PWM package that comes with MIT's Interactive C library works
this way.  It "sounds" funny. I've got a Theory-of-Ops URL somewhere
that describes how to calculate the pulse frequency and translate the
values. I'll see'f I can dig it up.

On the other hand, I'm a happy user of traditional PWM as part of
a PID speed controller, on robots that can move at _extremely_
slow speeds when desired.  So this hasn't been a problem for me.

Any DC motor will eventually stall out from friction of the surface
(like carpet or gravel), friction of the drive train, and even internal
friction of the motor itself, at very low voltages/very low speeds,
irrespective of the voltage/current source: PWM, rheostat, whatever.

The addition of shaft-encoders and some kind of closed loop control,
like a PID (Proportional Integral Derivitive) controller, can extend
this range down into the inches-per-day velocities, or as slow as you
wish.  So the inefficiency of PWM at very narrow pulse widths becomes
a non-issue.  The speed controller adjusts the pulse dynamically to
produce a smooth motor response at whatever the requested speed.

Remember that on a two-wheel differential drive robot, the steering of
the robot is controlled by the velocity difference between the two
wheels.  The ability to drive the wheels extremely slowly is therefore
intimately tied to the ability to precisely steer the robot, at any speed.

So when we are talking about extremely slow motor speeds, this is not just
for creeping along in robo-stealth mode.  More importantly it refers to
accurate steering and precise turns, when the motor that controls the
inside wheel during a turn must slow way down, perhaps even stop or reverse.

This is maybe not so important for the basic one-speed bump-and-run
robots and line followers.  But I have found it essential if your
robot needs to home in on a target (soda can, charging station,
odometry goal, etc).

In Other News:

Just back from Alaska!  Too Cool! (no pun intended)  Check out:


("Alaska" seems to need the capital "A")


More information about the DPRG mailing list