My apologies, but I just cannot resist the temptation to comment on
some of the messages about H-bridges on this list. (Especially since
it gives me an opportunity to take on so many of the experts at the
same time (:-) - Let's see if I survive it.) Also, perhaps I can reduce
some confusion on the issue.
First of all, I would like to compliment Terry and Sean for the nice
ideas and instructive examples! I agree with Terry that an SMPS
controller could make a very nice motor controller. As Paul
indicated, motor driver are very close to SMPS, and in fact, many of
the key issues for SMPS design apply to motor driver design as well.
However, a motor driver has many more pathological noise/transient/etc
cases one needs to consider for a good design. (For a few years, I have
had as a kind of hobby collecting Good Methods of How to Destroy a
DC-Motor Driver, and my, that list is pretty long by now...)
I like Sean's example, because it is deceptive, but (or rather,
therefore) very instructional. Calculations appear correct, but
the conclusion is a bit odd. There is a tacit assumption in the
example, which seems not to have received any attention so far.
Sean Breheny wrote:
...
{Quote hidden}> is because the same average current needs to flow (if the frictional torque
> remains the same). If we have a motor that generates 10v of back emf at
> full speed and has 1 ohm of winding resistance, then with 12v PWM at 100%
> duty cycle, we have a continuous 2 amps flowing, we are using 24 watts of
> electrical power,and doing 20 watts of mechanical work (approximately,
> assuming that the transfer of power due to back EMF is purely mechanical).
> The efficiency is 20/24 = 83%
>
> If we now drop to 50% duty cycle, we still need an average current of 2
> amps to oppose the friction,so we have 4 amps flowing during the on time.
> That's 48 watts of power for 50% of the time,or,again,24 watts of average
> electrical power. However, the back emf is now only 8v ( 12-8=4, 4/1ohm = 4
> amps),so we are only doing 8*4=32 watts for half the time, or 16 watts
> mechanical work. The efficiency is now only 67%,and it reaches 0% when the
> duty cycle gets so low that the resistance doesn't allow enough current to
> flow to oppose the friction (in this case, we couldn't operate the motor
> below 16% duty cycle). As we decrease the duty cycle, the speed vs. duty
> cycle curve is nonlinear and drops expecially fast as we near 16%.
...
That something is funny here is clear if we consider the following
case, the idea of which I think somebody touched upon in a response:
Suppose we drive the motor with just under 2 Volts steady. Although
this consumes 4 W, it isn't enough to overcome the friction, and
efficiency is 0%. However, let's now use 12 V PWM to switch on the
current on for sufficiently long periods, so that the maximum current
through the rotor ramps up to just above 2 A, and so the motor just
barely overcomes the friction and moves a trifle. The average power
during the on cycle will obviously be less than 24 W. Let the
OFF-period be nine times as long as as the ON-period. Clearly, the
duty cycle is less than 10%, total power consumption less than 2.4 W,
but the PWM efficiency is still >0%, while linear voltage control
gives a solid 0% efficiency even at 4 W.
So, what is the problem?
Several writers have commented on the type of load. Although
frictional load contributes to the seemingly paradoxical result, I
woudn't say that it is the most important thing here. An inertial
load would represent more of a worst case from the driver
designer's point of view (cf. below).
Instead, IMHO, the key word is "average". Sean wrote: "we need an
average current..." It is important to think of how the the current
behaves, or is supposed to behave, in the rotor winding. The current
wants to stay the same and goes to great lengths and voltages to do
just that. If we have a current which varies greatly, we are using too low
switching frequency. The current shouldn't be left in peace for too
long or it freaks out.
The analogy with SMPS is useful here. For maximum efficiency of an
SMPS, we want to keep the current through the energy store choke on a
constant level. Large excursions will increase resistive losses. The
voltage is generated by the ripple on top of this current. It is the
same thing for a DC-motor. We want to keep a relatively constant
current through the rotor. ON periods push the current up a little
bit, OFF periods pull it down a little bit. If the current is allowed
to go to zero or saturate the core, the PWM frequency is too low, and
we will have such effects as Sean described. A key feature of PWM
is to let the motor inductance even out the pulse variations.
A small example. Escap's coreless DC-motor 23DT12-216P has the
following data: Nominal 9 V, Imax (cont) 1.76 A, Max temporary torque
80 mNm, Torque constant 12.4 mNm/A, Terminal resistance 2.6 ohm, Rotor
inductance 0.2 mH. We have u = L*di/dt, where u is the voltage over
the coil minus back emf (near zero at low speed) and resistive drop.
For a continuous current of 1.76 A, low speed, and a max ripple of
10%, we have that the maximum ON-period is roughly dt < di * L/u =
0.176 * 0.0002/(9 - 1.76*2.6) = (approx) 8 us. For the OFF-period, u
equals the resistive voltage drop, so dt < 0.176 * 0.0002/4.4 =
(approx) 8 us. Together this means a switching frequency of at least
1000/(8+8) > 60 kHz.
Sean wrote:
> With a switcher,however,we could forget PWM and just supply a continuous
> variable voltage to the motor. The current would stay the same and the RPM
> would linearly follow the voltage. The efficiency would not change much
> over the whole RPM range.
Paul Webster wrote:
> [Sean's] analysis regarding motor performance is correct. Implementation
> of switchmode control as you describe essentially consists of using PWM
> whilst providing a series inductor and commutation diode. The
> commutation diode(s) may already be part of an H-bridge or if the FETs
> may be operated "backwards", they may function as such.
I would say as a conclusion rather that with sufficient switching
frequency, PWM is only marginally worse than linear control from a
resistive losses aspect. (There are of course also switching losses,
and I haven't said it is _easy_ to implement such fast switching. Only
that high resistive losses are not an inherent PWM property :-)
For low speeds and such frictional load as Sean describes, PWM becomes
superior. There is still a reason, however, for driving a DC-motor
with the output from an SMPS. The coil on the SMPS is stationary and
can be bulky, without adverse effects. The DC-motor cannot afford such
a big and bulky rotor coil. A smaller choke has lower inductance and
would require higher switching frequency than the SMPS, if PWM driven.
John Payson wrote:
{Quote hidden}> When PWM'ing a motor, there are two methods which can be used, which
> I'll call voltage-based PWM and current-based PWM.
>
> For voltage-based PWM, the motor output is switched between "active
> high" [a positive voltage source] and "active low" [ground]. Ground-
> ing the motor output will actively brake the motor, so the motor will
> be switched between full-on and full-stop. This method will cause
> the motor to move somewhat jerkily (if the PWM is at an audible freq-
> uency, the motor will "sing") but has the advantages of decent torque
> output and (for the slower part of the range) a speed output which is
> reasonably proportional to the duty cycle. The big disadvantage of
> this PWM method is that it is a *MAJOR* power hog (running a motor at
> 1/2 speed with no load will use about 1/4 as much power as a stalled
> motor receiving 100% power) but if that's acceptable the performance
> can be quite good.
Well, it is a power hog only if the PWM frequency is so low
that the winding current changes substantially during one PWM cycle.
John also wrote:
> very well. Nonetheless, it may sometimes be useful to add a sinking
> transistor; this is to allow for rapid changes in motor speed. If
> the motor has little mechanical loading, there will be no way for it
> to slow down quickly absent a sinking transistor. If the "active
> high" output is equivalent to a car's gas pedal, the "active low"
> output is the brake. Although braking should be minimized when it's
> not needed, it's hard to slow down or stop without it.
This is really very important, and I wonder why it is so rare to find
such a shunt included in published circuits! A not too exceptional
case is where the motor runs full speed one way, and the driver then
reverses to full speed the other direction. The motor will then act
as a generator, and pull twice its stall current.
Bob Blick wrote:
> drop is more like 2 volts. If you think about how a DC motor works, you'll
> see that there is no way to operate a 12 volt motor with 12 volts and 5
> amps at high speed. If you had a motor like this, it would draw much more
> than 5 amps at low speed, and destroy the H-bridge. At low speeds, it
If you also consider rapidly reversing direction, the motor will draw
twice the stall current at full speed and full supply voltage. This
current will be sustained if there is large inertia on the rotor.
Scott Dattalo wrote:
>I am a bit confused here: why would the FETs require more precautions? The
>only thing I can think of would be that the power dissipation for a FET
>goes as the second power of current,and for a darlington/BJT, as the first
>power of current. Granted,this makes a big difference as current goes to
>infinity, but in certain cases, you might burn up the BJTs way before the
>FETs if the RDSon of the FETs is really low.
and Bob responded:
> It's actually even worse than that. The R of the MOSFET increases with
> temperature and current, so unless you go overkill or have protection you
> have a big problem. With comparable devices, the bipolar will usually take
> a lot more abuse(assuming it has enough drive current). Generally in a
> small application it's easy enough to use a larger MOSFET, but I've
> designed 1200 amp motor controllers and it makes sense to put in good
> protection so you can use fewer MOSFETs.
I guess Bob has had a lot of bad experiences with MOSFETs... One of
the primary obstacles with fast MOSFET switching is that it causes a
zillion of noise and transient problems. Due to the high speed, it can
be extremely difficult to debug a MOSFET switching circuit. MOSFETs
also sometimes have a peculiar property of going on working and
appearing alright for a while, although they are fatally wounded.
Otherwise, AFAIK, the two main problems with BJTs as compared to
MOSFETs are 1) Current concentration and thermal runaway, and 2)
Secondary breakdown. Some other problems are: Slow switching,
switching time temperature dependent, difficult to interpret SOA and
derate for various parameters, complex drive circuitry, and power
consumption of driver circuit itself.
Cheers,
Martin Nilsson http://www.sics.se/~mn/
Swedish Institute of Computer Science E-mail: spam_OUTmnTakeThisOuTsics.se (current)
Box 1263, SE-164 29 Kista, Sweden .....Dr.NilKILLspam@spam@bigfoot.com (permanent)
Tel: +46-8-633-1574 Fax: +46-8-751-7230