Update: I’m working on a new, much updated version of this series. I’ll keep these pages around while that work is still in progress, but please check out the new pages for the latest information.
For the most part, a DC motor can be approximated with an inductor and a voltage source. In some cases however it is important to model the internal resistance of the motor as well:
The inductor represents the motor winding. The resistor represents all the electrical losses in the motor. The voltage source represents the ‘generator voltage’ and is proportional to the rotational speed of the motor. It is denoted with Vg. The current through the motor (or any of the elements, since they’re in series) is proportional to the torque of the motor.
There are two important extremes. One is when the motor runs with no load. In this mode the torque of the motor is only used to compensate for the losses. If we disregard those for a minute, than we see that the current is 0 (no torque is required) and the voltage on the motor terminals is Vg. If we consider losses as well, the current is still fairly low, and the voltage on the motor terminal is still close to Vg.
The other extremes is when the motor is stalled. In this mode their’s no rotation, so Vg is 0. The motor acts as an inductor. The current through the motor will generate torque but the voltage on the motor terminals will be 0 (or close to 0 if we consider losses as well).
Though we will in most cases ignore motor losses in the following discussions, or consider them constant, in many cases motor losses are dependent on the speed. We will also consider Lm, Rm and Vg to be constant at a given speed, at least for the most part. In fact however due to the commutation in the motor, and the conducting winding relative position to the stators’ magnetic field, all of these values are a function of the rotor position as well. This will become important when we’ll discuss back-EMF measurement.
A bridge can be driven in many different ways. In general, the on-time behavior is rather simple: you have to turn on one high-side and the opposite low-side switch to allow current to flow through the motor. It is the off-time drive that makes a difference. Since Q1 and Q2 (or Q3 and Q4) should never ever be turned on at the same time, there’s only three different combinations for those two switches. Either Q1 conducts, or Q2 conducts, or none. In the following diagrams I will use a simplified drive notation: low level means that the low-side is turned on (Q2 or Q4). A mid-level denotes the state where neither of the switches conduct, while high means that the high-side is turned on (Q1 or Q3). It is important to note that actual drive voltages depend on the component selection (‘P’ or ‘N’-type high-side MOSFETs), and that two independent driving signal will have to be generated for the two transistors:
|Symbolic and actual drive signals for ‘N’-type high-side MOSFETs||Symbolic and actual drive signals for ‘P’-type high-side MOSFETs|
Continuous and discontinuous current
This is actually a switching power supply term, but in many ways H-bridges and step-down power supplies are quite similar. It denotes two significantly different operating modes of the bridge. Whether the current in the motor reaches 0 during the off-time or on. If it does, we’re talking about discontinuous current mode, if it does not, continuous current mode. The distinction is important for many reasons, among other things the dissipated power on the catch diodes will be different. The ratio between the max. current and the average current on the motor will always be greater than two for discontinuous and lass then two for continuous mode operation. From this standpoint, continuous mode is preferred. On the other hand, whenever the current drops to 0, the voltage on the motor terminals will be Vg (no voltage drop on the resistor or the inductor), which can be used to measure the speed of the motor.
Whether the circuit operates in continuous or discontinuous mode depends on the drive mode, the load of the motor (more precisely the speed of the motor) and the power supply voltage.
In the following discussion I will assume discontinuous operating modes. The calculations can be easily repeated for continuous mode as well. Also, I will always assume that during on-time Q2 and Q3 are conducting, in other words, the motor is energized in the forward direction.
This is the simplest drive mode. During on-time (as with all other drive modes) one high-side switch and the opposing low-side switch is closed, the other two are opened. The motor current increases during this period from 0 to its maximum value.
During the off-time, the high-side MOSFET stays on, while the low-side is turned off. The motor current will continue to flow through Q3 and D1. It cannot flow through D2 since the forward current on D2 is in the opposite direction to the motor current (in other words D2 will never be forward-biased in this mode). The voltage on the motor terminals will have to be VF for this. The voltage on the motor coil will be Vg+VF-I*Rm, or approximately Vg, disregarding Rm. If the motor is under no load, than Vg is approximately Vbat*ton/tcycle. If the motor is stalled, Vg is 0. Since the current change on the inductor is proportional to the inductor voltage (VL=L*dI/dt), in the no load case, the current will decrease very slowly, while in the stalled case, it will decrease in approximately the same rate as it increased.
Once the current reaches 0, D1 closes, and the generator voltage Vg appears on the motor terminals. The circuit remains in that state until the next cycle begins.
As it can be seen from this explanation, D1 is conducting during the off-phase, until current reaches 0. It starts conducting with the maximum current. Assuming that the current decreases linearly (in other words, neglecting resistive components in the circuit), the total dissipated power is:
where tcollapse is the time it takes the current to reach zero, and tcycle is the cycle time.
The time it takes for the field to collapse depends mainly on the voltage that the motor-inductor sees. Since it is roughly Vg, which can even be 0, the collapse time is rather long. That means that the diode conducts for a significant amount of time during the cycle, so the power dissipated on the diode is rather substantial, so much so that it can be damaging to the device. If that is the case, other drive modes has to be employed, where the diode stress is lower.
A variant of this drive-mode is when instead of Q3, Q2 conducts for the whole duration of the cycle. This results in D4 becoming the conducting element for the collapse current. The collapse time and other operating parameters of the circuit is roughly the same:
It is usually a good idea to switch the high-side element as few times as possible, since their turn-on transients are slower, and thus their switching losses are higher. In that sense the first drive mode preferred. However if the operating frequency is low enough that switching loss is not an issue, one can equalize the power-dissipation on D1 and D4 by alternating the two drive-modes. This trick can cut dissipated heat on each of diodes in half and can very well move them to the safe operating range. At any rate, higher average and peak current can be achieved with this operating mode, provided that the diodes are the limiting factor.
Lock anti-phase drive
This rather popular drive mode removes almost all stress from the catch-diodes. In this mode, the motor is energized in the reverse direction during the off-time. In other words during the on-phase Q2 and Q3 are conducting while in the off time Q1 and Q4 are on. The diodes never carry current except for the short period of switching the transistors.
During the off-time the voltage on the motor windings is roughly Vbat+Vg, significantly higher than for the previous drive modes. This results in much faster collapse of the field. The problem however with this drive mode is that once the current reaches 0, it continues to decrease, into the negative values. At this point the motor is energized in the reverse direction, effectively trying to turn the shaft in the wrong direction. Another characteristic of this drive is that the generator voltage (Vg) never appears on the motor terminals. It is not a big problem for traditional motor driver circuits however if back-EMF speed-control is to be used, this drive mode is not suited for it.
Active field-collapse drive
This is a variation of the above idea: during the off-time connect the battery in the reverse direction to the motor, so that the collapse of the field is faster, however don’t let the motor current to become too negative.
In this mode, during on time we have the usual Q2 and Q3 conducting, but in the off-time, we turn off both of them, and turn on Q1. This result in D4 becoming forward-biased, opening and start conducting current. The motor inductor still sees Vbat+Vg, so the field collapses in the same rate as in the previous mode. However once, the current reaches 0, D4 closes, and Vg starts appearing on the motor terminals. The problem with this however is that, since the left side terminal is pulled to Vbat and the motor still rotates in the forward direction, Vg will forward-bias D3, and open it. The result is that motor is effectively short-circuited, and the generator voltage instead of appearing on the motor terminals, manifests on the internal windings. This in turn will start generating current through the motor again, though in a much slower rate than it was collapsing previously.
The load on the diode (in this case D4) is non-0, but much lower than in the sign/magnitude drive case, since the collapse happens much faster. There is some power dissipated on D3 as well, but that is again is much lower than previously since the motor current only slowly increases – in the same rate as it collapsed in the sign/magnitude drive case – but it starts from 0 and not from Imax.
Just as in the previous drive mode, the generator voltage never appears on the motor terminals, so this drive mode isn’t suited for back-EMF based control either.
Modified active field-collapse drive
If it is possible to measure motor terminal voltages in the circuit, some modifications can be made to the above drive mode to make it more efficient. As it can be seen from the previous diagrams, when the motor current reaches 0, the ‘B’-side motor terminals voltage jumps from ground to Vbat+VF. If the circuit can detect this transition and turn Q1 off, and Q2 on, the motor will not open D3 any more, Vg can appear on the motor terminals, and the current remains 0.
This drive-mode removes all stress from D3, the only conducting diode will be D4. However it inherits the fast collapse of the motor current from the previous design, and so it dissipates significantly less power than the sign/magnitude drive modes.
One interesting characteristics of the active-collapse drive modes (both the original and the modified) is that the collapse current flows through the battery. What it in effect means that during the off-time the collapse-current charges the battery back. While in general this is a good thing, it has to be ensured that the battery is be able to sink that current, otherwise Vbatstarts rising potentially to dangerous levels. If the battery cannot sink the energy pumped back by the collapse-current, a large capacitor must be connected to the power supply to damp the battery voltage-increase. The exact value of this capacitor can be calculated from the amount of charge the collapse-current delivers (Imax*tcollapse/2) and the maximum allowed battery voltage increase. In general this will be a rather large value.
Of course the same technique can be done on the low-side, using Q4 and D1 for the collapse-current. It is also possible to alternate Q1 and Q4 drive-modes, thus splitting the diode-load in half.
Synchron collapse drive
If one can measure the current through the motor, and accurately detect when it crosses 0, it becomes possible to modify the lock anti-phase drive in a different way. In this case, during the off-phase Q1 and Q4 are conducting, but only until the field collapses. At that moment, both Q1 and Q4 are turned off and instead Q2 (or Q3) are turned on. This will allow Vg to appear on the motor terminals, but none of the diodes will be forward-biased so the current remains 0 for the rest of the off-cycle.
Since the diodes never conduct except for the short switching periods, the power dissipated on them is insignificant. However this mode requires rather precise detection of the zero-crossing of the motor current, which might be hard to do reliably.
Which drive-mode to use?
The choice of the drive-mode depends on many things, but here are some guide-lines:
- If collapse current is not an issue, but operating frequency is high, consider the sign/magnitude drive, with the high-side continuously conducting.
- If diode power dissipation is a problem, but operating frequency is still rather high, see if distributing diode load by alternating the two sign/magnitude drives can get you within limits
- If the motor is not expected to ride under high loads or low speeds, consider locked anti-phase drive.
- If back-EMF measurement is not an issue, the active-collapse drive can be a good compromise between power dissipation and complexity.
- If back-EMF measurement is important, or the design can tolerate the additional complexity, the modified active-collapse drive, or the synchron collapse drive can be a good choice
- For the highest current application synchron collapse drive is ideal, or maybe the locked anti-phase drive, if accurate current measurement is not possible.
good article. what would be a good topology for a force feedback or torque mode dc control.current feedback would be used but back emf would be small since the rpm would be low.?thx
Thanks for the comments. As torque is proportional to the motor current, torque-feedback involves monitoring the motor current. That is usually much easier to do than speed-feedback. In most cases you have to include some sort of current-monitor anyways for safety reasons. Using the same monitoring circuit you can implement torque control.
The motor current of course is not constant, but the ripple on it is fairly low if you operate the bridge and ultrasonic frequencies. Also, the frequency of the ripple is much higher than the mechanical time-constants so a simple filtering on the output should get rid of it. You have to be a little careful as to where you measure the current if you want to use it for torque-control. Probably the easiest thing to do is to measure it between the motor and the bridge, though it’s possible to do with the current sensor at the battery or ground connection of the bridge as well.
I have a problem with understanding your tips for drive mode choice. Last tip encourage to use anti-phase drive for high loads while third states opposite.
Well, first of all, this is a rather old and in many cases inaccurate article. If you are really interested in the subject, I suggest my new series here: http://www.modularcircuits.com/blog/articles/h-bridge-secrets/. Now, to your actual question. There are many things to consider when you decide on a drive mode and yes, you might get contradictory results if you only consider parts of the equation.
When the motor is under light mechanical load, it’s current will be low. The problem with lock anti-phase drive is that it’s ripple current is higher then that of sign-magnitude drive. This ripple current will dissipate some heat on the motors’ internal resistance. Under light loads and high speeds the motor usually can easily get rid of this additional heat, it’s rarely a problem.
In high current applications the ripple is probably only a small fraction of the total current so that’s not really a factor. At the same time, losses in the bridge increase and getting rid of the excess heat could be a problem. Lock anti-phase drive makes less use of the catch diodes than the sign-magnitude drive (at least the version I describe here). Diodes have higher losses then FETs, so that where this recommendation is coming from.
I hope this helps clearing things up, but again, please look at the new series for more detailed explanations and corrected mistakes.