DPRG List  

[DPRG] Driving an H-Bridge with a switching power supply

Subject: [DPRG] Driving an H-Bridge with a switching power supply
From: Brian Merritt brian_merritt at juno.com
Date: Wed Dec 24 11:34:01 CST 2003

Hi ya Dave,

I have given some thought to the subject of using switching supplies
with non-balancing robots.  As you may have noticed I like to run my
robot a little faster than most.  The PID control should take care of
the speed when moving in a straight line, but I think I would have to
perform turns somewhat slower just to keep the wheels from slipping.
Since the turns don't generally take very long I don't know if the PID
would have time to correct the slower speed accurately.  As a result I
am concerned that the turn speed would vary as the battery voltage goes
down, which would result in inaccurate turns.  I am considering adding a
switching supply just for this reason.  I think it would also help with
the straight line motion since the PID would not have to make such large
and frequent corrections if the supply voltage where constant.  Of
course all of this is just speculation at this point since I have just
starting working on the hardware to give feedback of wheel speed.  Any
insights from your vast experience with 'bots?

....as visions of robots danced in their heads,

-----Original Message-----
>From: dprglist-admin at dprg.org [mailto:dprglist-admin at dprg.org] On Behalf
Of David P. Anderson
Sent: Monday, December 22, 2003 11:47 PM
To: dprglist at dprg.org
Subject: [DPRG] Driving an H-Bridge with a switching power supply


On Using a Switching Power Supply to Drive an H_Bridge.

One of the problems I've struggled with on the two-wheel
balancing robot is the change in behavior as the battery
drains.  I'm running the robot on 18 Nmh AA cells, at 1600
mAh.  Fully charged that's about 25 volts, and fully discharged
(at 1 volt per cell) is 18 volts.

The robot balancing behavior is optimal at about 23 volts.
Higher than that, it is quite "jerky", and below about 22 volts
it is quite "loopy."   I can adjust it so that it is optimal
in any of these ranges, but then it works poorly in the others.

On my other non-balancing robots, this problem is solved with
shaft encoders and a PID speed controller.  The speed controller
increases the pulse widths to compensate for the sagging battery
voltage, and the behaviors remain constant across the range of
the battery.

For the balancing robot, this has proved more problematic.
I originally thought that I could deal with this by monitoring
the battery voltage, which I do, and adjusting the gain or gains
as the voltage drooped, but in practice this has proven very
difficult to do.

About a month ago at one of the RBNOs at the warehouse, I was
demonstrating this behavior and the Most Excellent Brian Merritt
suggested that this problem might better be solved in hardware,
and thereafter gave me a pointer to a Dallas Semiconductor
Maxim MXL1074CT  --- here's a handy reference:


So I ordered a couple of samples and after some consultation with Brian
and Ron Grant, made a trip to Tanners for the appropriate inductor
and a handful of capacitors, and built a little 23 volt, 5 amp
switching power supply.  I added three more AA cells to nBot's
battery pack and mounted the switcher between the power switch
and the H-Bridge.

I've been running it for a couple of weeks now, and it works just
dandy!  The output remains at a steady 23 volts as the pack drains
>from about 29 volts to about 25v.  I hung a 3amp load on the supply
and watched the output on the scope, it appears to regulate down to
within about 2.5 volts of the requested output voltage (which I can
adjust with a 10-turn pot).  There is a little bit of ringing on
the output waveform, but basically it's pretty clean.

I'm now in the process of re-calibrating the robot, which is about
1/2 done, but so far the performance is markedly improved.   Further,
during a two hour session of testing and calibrating, the behavior
remains consistent throughout.  As a result, it is easier to tune
the system, and the robot already seems more stable.

This has made me wonder if this sort of thing might be a useful
addition to a non-balancing robot, as well.  And if so, if the
little switcher should just be part of the H-Bridge board to
begin with?  (It's only something like 5 components)

Anybody have any similar experience?  How about with industrial

merry christmas,

DPRGlist mailing list
DPRGlist at dprg.org

More information about the DPRG mailing list