The following article will go though a drive mode where the catch diodes are conducting for a significant amount of time in each cycle. If you haven’t read the introductory page of the series and you’re not familiar with H-bridge concepts, I suggest you do and only than continue reading this article. I also strongly suggest you read the page on sign-magnitude drive because much of the discussion here will build on the material covered over there.
If however you did read that introductory article, you might be a little surprised. There I put together a neat little taxonomy of available drive modes, and concluded that there’s only two reasonable variants. Those, the sign-magnitude drive and the lock anti-phase drive’ we’ve already covered in previous chapters. So what’s all this about than?
Well, as it turns out, I’ve lied. To be more precise, I didn’t tell the whole truth. Before we talk about the details and the reasons however, let’s review the basics! Our motor control circuit is an H-bridge, with the following configuration: The load, the DC motor is a complex beast, but we will mostly use just a very simple model for it: For this discussion we won’t be able to ignore the internal resistance for the most part.
Finally, a warning: while the previously discussed drive modes are in wide use, I haven’t found too many resources that describe what I’m about to here. That means that many of the terms I’m using (including the name actually) I came up with and may not correspond to the industry-standard nomenclature. If you find that misleading or know the official term for something in here, please let me know so I can make the appropriate corrections.
The principle assumption leading to the original analysis and the resulting two possible drive modes was that we wanted the switches to conduct during both the on-time and the off-time. Our intention was to minimize heat dissipation on the switches and since in most cases the voltage drop on the switch would be less than that on the diode, it’s better to use the switches for conducting current.
As it turns out, both the lock anti-drive drive and the sign-magnitude drive suffer from a serious problem: regenerative braking. I say problem, because this phenomena, while sounds cool at first – putting energy back into the battery – complicates system design quite a bit and pretty much forces closed-loop control of the bridge with additional sensing circuitry.
If we look back at what causes regeneration, we’ll see that it happens whenever Vmot_avg and Vg are of the same polarity but Vg is the greater of the two. Under those circumstances, the average current starts flowing in the reverse direction, recharging the battery. The current could reverse direction, because our switches allow current to flow both ways. If there was a way to block the current from reversing – at least through the battery – we could potentially make an H-bridge which doesn’t have any state with regeneration. Turns out, such reverse-current protected elements are diodes, and we already have four of them in the bridge. The question is, can we make use of them. And we’ll investigate the answer in the next chapter.
The switching patterns of this drive mode are a modification of the sign-magnitude drive. The idea is that during the off-time we’ll leave only one of the four switches closed, instead of two as with the sign-magnitude drive. This will force the off-time current to flow through one of the catch-diodes. There are four reasonable ways of doing that:
(If you are pedantic, you’ll notice that there are four other possibilities, bur they are effectively identical to the four I have listed at least as far as the discussion here is concerned.)
The four combinations are the four possible answers to the two binary questions:
- Is the on-time voltage applied in the forward or reverse direction?
- Does the high- or low-side switch stay closed during the off-time?
There usually is a control signal deciding the answer to the first question, while the second one is usually answered during the design of the bridge (there are exceptions we’ll talk about in a later article).
For the general discussion it doesn’t matter too much which direction the on-time voltage is applied, so I’m going to stick with my old habit of choosing one where the motor is driven in the forward direction (mapping A or B). For the most part, I’ll assume that we keep the high-side switch closed, so I’ll use ‘mapping A’ from now on.
You see that during the off-time, I drew the ‘b-side’ motor potential being slightly above Vbat, and at the same time, the motor voltage being slightly negative. To understand the reasons for that, let’s look at the current flow diagrams! During the on-time, the current does what it always does: flows through the two closed switching elements.
When the switch-over happens to the off-time, Q4 opens and only Q1 stays closed. At that point the motor current (being an inductive load) will have to continue flowing and the only way it can is through forward-biasing D3. So, the off-time current flow will be the following:
In order for current to flow through D3 however, the b-side lead of the motor needs to be at a slightly higher potential than Vbat. This voltage is the forward-bias voltage of the diode, and is in the range of 0.2 and 1V depending on construction, current, temperature among other things. In the following discussions I will disregard this little voltage difference though, and assume that the diode drop is 0. Just keep in mind, that for more precise calculations, you will have to take that forward drop into consideration as well.
In both cases however, essentially the motor is short-circuited, the same way as in sign-magnitude drive. Consequently the current diagram of the motor doesn’t change much either.
Continuous and Discontinuous Current
Now, before we go any further, we’ll have to discuss the topic of current flow a little deeper. What happens, when (during the off-time) the current decreases to 0? In both of the sign-magnitude and lock anti-phase drive modes the current is free to turn negative, as the conducting elements are bi-directional. Not the case here! The conducting diode (D3 for example) will close as soon as the current reaches 0. If that happens, there’s no current flow in the circuit for the rest of the cycle. So, depending on the slopes of the on-time and off-time currents (and the times spent in each state) the current might flow continuously or discontinuously in the system:
This phenomena has some nice benefits as we’ll see later, but unfortunately means that our equations will become messier as their form changes depending on which of the two distinct operating mode the bridge is in.
You can see that I introduced three time-periods:
- ton is the on-time
- toff_conduct is the portion of the off-time when the bridge is conducting current
- toff_zero is the portion of the time when the current is 0.
There are some obvious relationships between these:
- toff_conduct+toff_zero = toff
- ton+toff = tcycle
Finally there’s another time metric, worth introducing, which is the conduction time:
- tconduct = ton+toff_conduct
Using this terminology, the difference between continuous and discontinuous current modes is if toff_zero is zero or not.
While many things are different, some of the knowledge that we’ve gained by analyzing the simpler drive modes, carries over. For example, the slope of the current change during the on- and off-time (as long as it conducts) can be found by the following equations:
dI/dt = (Vbat – Vg – Imot_avg*Rm)/Lm during the on-time, and
dI/dt = (– Vg – Imot_avg*Rm)/Lm during the off-time.
As I promised, I am already involving the voltage drop on the internal resistance in these equations: we will need to make use of them pretty soon.
Average motor voltage
In order to be able to calculate the average motor voltage, there’s one last thing we’ll have to discuss: what is the voltage on the motor terminals in discontinuous current mode, when the current is 0? The answer is fairly simple: Since the current doesn’t change, the inductor of the motor should see 0 voltage difference. The internal resistance drops 0 as well, since the current is 0. This means that the motor terminal voltage must cancel out the generator voltage, Vg. In other words the motor voltage during this period should be Vg. Now, using that knowledge, we can calculate the average motor voltage:
Vmot_avg = (Vbat*ton + Vg*toff_zero)/tcycle
It’s also beneficial to introduce another voltage, which is the average voltage the motor sees during the time the bridge conducts current:
Vavg_conduct = Vbat*ton/tconduct
Note, that if the bridge is in continuous current mode, the two values are equal as tcycle = tconduct and toff_zero is 0.
Our steady-state is defined when the parameters of the bridge stay constant from cycle-to-cycle. This means both electrical and mechanical characteristics: currents, voltages, torque, acceleration etc. If that’s true, the current-change during the on-time and off-time must chancel each other out, and the change (the ripple-current) is the following:
Iripple = (Vbat – Vg – Imot_avg*Rm)/Lm*ton = (Vg + Imot_avg*Rm)/Lm*toff_conduct
Expressing Vg from this, we get:
Vg = Vbat * ton/tconduct – Imot_avg*Rm
which is the same as:
Vg = Vavg_conduct – Imot_avg*Rm
And solving it for the average motor current, we get:
Imot_avg = (Vavg_conduct – Vg) / Rm
Now, let’s put this back into the ripple-current equation:
Iripple = 1/Lm * Vavg_conduct * toff_conduct
Finding the operating mode
Let’s see if we can figure out if the bridge at a given operating point is in continuous or discontinuous mode. The external conditions that define the operating point are the following:
- The operating frequency represented by tcycle
- The duty-cycle, represented by D (D = ton/tcycle)
- The battery voltage Vbat
- The speed of the motor – or the generator voltage, represented by Vg
- The motor parameters Rm and Lm
Before we can attack this problem, we’ll have to do one more thing. It turns out, we can arrive at the average current for discontinuous current mode in a different way as well. For this operating mode, that is when the current starts from 0 in each cycle, the area under the current ‘triangle’ should be the same as the area under the average current rectangle:
Note, that this approach doesn’t work for continuous current mode, as the current doesn’t reach zero during the cycle.
From this insight, we get this:
Imot_avg * tcycle = 1/2 * Iripple * tconduct
Putting the expressions for Imot_avg and Iripple into this and expressing Vg, we get:
Vg = Vavg_conduct * (1 – 1/2 * Rm/Lm * tconduct * toff_conduct / tcycle)
The final insight is this: there’s a critical point where the continuous and discontinuous current modes meet: at this point the off-time current just reaches zero at the very end of the off-time. So in that case, the above equation is correct, while toff_zero is zero as well:
For this special-case we can do some simplifications to the previous equation, and after substituting Dcritical = ton_critical/tcycle, we get:
Vbat * Dcritical * (1 – 1/2*Rm/Lm*tcycle*(1-Dcritical)) = Vg
This is a quadratic equation for Dcritical:
Dcritical2 – Dcritical*(1+2 * Lm/Rm * 1/tcycle) + 2 * Lm/Rm * 1/tcycle * Vg/Vbat = 0
This equation has at most two roots. However, as long as Vg has the same polarity as Vbat (we’ll talk about what happens if it’s not in a minute), only one of the roots is between 0 and 1, leaving us with exactly one physically valid root:
Dcritical = 1/2 + Lm/Rm * 1/tcycle – sqrt[ (1/2 + Lm/Rm * 1/tcycle)2 + 2 * Lm/Rm * 1/tcycle * Vg/Vbat ]
Not a nice equation, but at least a solution. Finally we’re at the point where we can figure out in what operating mode the bridge is in: With the operational parameters, we calculate the critical duty-cycle. If the actual duty-cycle is above this critical value, the bridge operates in continuous current mode. If it is below that, the bridge is in discontinuous current mode.
If you look carefully at the solution, you’ll see that it depends on a few ratios only:
- First, it’s the ratio of Vg/Vbat, in other words the relative speed of the motor.
- The second is Lm/Rm * 1/tcycle. Since Lm/Rm is the electrical time constant of the motor, this ratio is the relative time constant of the motor to the bridge cycle time.
Usually a bridge operates at lower cycle time as the motor time constant and even if it didn’t the calculations above assumed that; We assumed the current change to be linear during the on-time and the off-time and that is only true if the bridge operates much faster than the motor time constant. So Lm/Rm * 1/tcycle must always be – for our purposes at least – bigger than 1.
I’ve plotted a few of these curves in the following graph:
You can see that each of the curves cut the square which represents all possible duty-cycle and relative motor speed combinations (in the forward direction) into two. The area above the curves is the land of continuous current mode operation, the area below them is for discontinuous current modes. You can see that the curves don’t deviate too much from the diagonal, so a good first-order approximation is that if the relative motor speed is less than the duty cycle, the bridge operates in discontinuous current mode. This approximation has a roughly 15% error, but the error is less and less if you increase the operating frequency of the bridge.
Finally, the promised explanation for negative Vg: If Vg is negative (that is opposing Vbat), the off-time current will never be able to close the diode as Vg biases the diode in the forward direction. So in that case, the bridge is always in continuous current mode.
The last topic to discuss is this: let’s say your bridge operates in discontinuous current mode. What is the portion of the time it spend conducting?
For the answer, we’ll have to go back to the equation in the previous chapter:
Vg = Vavg_conduct * (1 – 1/2 * Rm/Lm * tconduct * toff_conduct / tcycle)
From this, we get (after expressing Vavg_conduct from Vbat and rearranging things):
Vg/Vbat*tconduct = ton * (1 – 1/2 * Rm/Lm * tconduct * (tconduct-ton) / tcycle)
This is a quadratic equation for tconduct. I’m not going to give you the closed-form solution, because it’s an eye-sore and it’s actually easier to substitute numbers into this equation and solve if for a particular case, than to derive the parametric solution. What is important to note here is that just as before, from the two possible solutions, only one will be physically meaningful, that is between 0 and tcycle.
Transient states and input capacitor
So far it seems it’s impossible for the current to flow in the reverse direction, and we’ve really covered quite a bit of ground. The previous discussion not only applies to steady-speed operation but to acceleration, deceleration as well as long as the cycle-to-cycle averages don’t change.
When one of the parameters (mainly D or Vg) changes, it takes time for the system to settle in the new steady-state. In that transient, the current can flow in the reverse direction during the on-time. Let’s take a quick example to understand why!
Let’s say we operate the bridge in the reverse direction at 50% duty-cycle and under relatively heavy loads. Let’s also assume the motor has a really low Rm. In this case Vg is close to -Vbat/2 and the average motor current is a relatively high positive number. Because of the bridge operates in the reverse direction, the motor current flows through the battery in the positive direction as well, discharging the battery.
Now, let’s imagine that we abruptly change the bridge top operate in the forward direction, still with 50% duty-cycle. The first cycle with the changed duty-cycle will see the motor current to be opposite to the battery voltage, just as Vg. This current will start increasing (decrease in absolute value) during the on-time, as Vbat is applied in the opposite direction to the motor current now, but for the moment it still is flowing into the battery, recharging it.
When the off-time comes along, something strange happens: As Q4 closes but Q1 stays open, the motor current (still flowing in the negative direction) will have to find a way to continue flowing. It can’t flow through D3, since that diode can’t conduct in the reverse direction. The only way the current can flow is through D4:
What that means, is that the bridge is essentially in the same mode for both the on- and the off-time. The only difference is that it’s the diode and not the switch that conducts the current, but it flows through the same leg in the same direction.
This also means that the current will continue increasing (decrease in absolute value) during the off-time as well.
The next on-time will continue in the same way just as the next off-time and so on. This process continues as long as the motor current reaches 0 (coming from the negative side) at which point the normal operation of the bridge will resume: the off-time current will start flowing through D3 as usual.
From this example, the following can be derived: in the transient, the motor current increases through potentially several cycles from it’s initial negative value to 0. The increase will not depend on the timing of the bridge as the current flow and voltages stay the same during the on- and off-times. The current change will follow an exponential curve (we can no longer assume linear process as the current change is too large to assume a constant voltage drop on Rm), according the following equation:
Imot(t) = Imot(0) + (Vbat/Rm – Imot(0)) * (1 – e-t/(Lm/Rm))
Note that Imot(0), the initial current through the motor when the change in the duty-cycle happens is negative, so is Imot(t). Of course only the portion of the curve where the current is negative is valid:
As we’ve discussed it several times, current flowing back to the battery is a problem in most implementations. The main goal with using this switching pattern to begin with was to get rid of this reverse-current! Well, apparently we weren’t completely successful.
However, as long as we can put a limit on the charge that this reverse current pushes back into the battery, we can handle it by putting a capacitor on the input on the bridge that can temporarily soak up the extra charge.
So, let’s figure out if there’s an upper bound to this charge? The total charge delivered is the integral of the current over time, so the first order of business is to figure out how long does the current flow. It stops flowing when the motor current reaches 0, so:
Imot(0) + (Vbat/Rm – Imot(0)) * (1 – e-tstop/(Lm/Rm)) = 0
Now, solving it for tstop, we get:
tstop = – Lm/Rm * ln(1 – Imot(0) / (Vbat/Rm – Imot(0)) )
Next, to do the integral, we have to find the primitive function of the current curve. It is the following:
Vbat/Rm * t + (Lm/Rm) * (Vbat/Rm – Imot(0)) * e-t/(Lm/Rm) + C
With these two, we can calculate the integral. After some simplifications, the total charge released is the following:
Qreverse = – Lm/Rm * (Imot(0) – (Vbat/Rm) * ln(1 – Imot(0) / (Vbat/Rm – Imot(0)) )
As expected, the sign is negative, so the charge is coming out of the bridge, into the battery (or the capacitor we’re trying to size).
So what is the maximum value of this charge? It is when Imot(0) is maximal (in absolute value). So how big this current can be? We can take two approaches, just as we did in the lock anti-phase drive. We can take either the short-circuit current of the motor or the current-limit of the bridge into account. The latter is still a very conservative estimation and is usually much lower than the short-circuit current of the motor, so let’s use that. In the following equations, I’ve changed the signs so that we substitute the positive bridge current:
Qreverse_max = Lm/Rm * (Imax + (Vbat/Rm) * ln(1 + Imax / (Vbat/Rm + Imax) )
This charge changes the capacitor voltage following the familiar formula: Vripple_max = Qrelease_max/C. If we know how much ripple voltage the circuit can tolerate, we can calculate the size of the capacitor needed:
C = Lm/Rm * (Imax + (Vbat/Rm) * ln(1 + Imax / (Vbat/Rm + Imax) ) / Vripple_max
Let’s see an example! Let’s say our motor has a 30uH inductance, and a 1Ω resistance. Let’s say we operate from a 20V supply and the bridge can sustain a 10A current. Finally let’s assume that we can tolerate 5% ripple current. The result is a 473µF.
If we want to build a bridge with a 100A current delivery capability, the input capacitance needed would jump to almost 10x, or around 3500µF.
If we assume a much lower resistance, let’s say 100mΩ only (and still 10A current limit), the capacitor value jumps to over 5000µF. That is a trend: for low resistances, the capacitance required is more or less proportional to 1/Rm.
You can also play around with the equation to get a feel to how the various parameters affect the solution.
Another interesting experiment is this: what if we want to calculate the capacitance needed for the stall-current of the motor? The stall current is Vbat/Rm, so if we put that in the place of Imax in the previous equation we get some nice simplifications:
C = 1.405 * Lm/Rm2 * Vbat/Vripple_max
This is much easier to comprehend, but as you can see it has an inverse quadratic relationship to Rm. That is understandable since in the previous calculations we’ve assumed Imax to be independent of Rm, while in here it’s not the case anymore.
We started this article with the idea to construct an H-Bridge drive mechanism that doesn’t suffer from regenerative braking. After a lot of ugly math I hope I convinced you that it is in deed possible. There are of course down-sides to this approach:
- The catch diodes conduct for a significant portion of the time and that is usually going to generate more heat than if the switches conduct the current.
- The bridge has two operating modes: continuous and discontinuous current mode and the operating parameters, including the motor torque (average motor current) behaves differently in those two modes. This change in behavior complicates closed-loop speed-control design.
- We still need to employ an input capacitor to handle transient states, and the capacitor value can be rather large, especially for high-current bridges.
- The analysis of the bridge is significantly more complicated due to the non-linear behavior of the diodes.
With all that, this drive mode has one huge advantage, one that in many cases outweighs the negatives: it is inherently safe, as it can’t over-charge the battery during braking.
Where to go from here?
If you’re really pedantic, you’ll notice that there’s another possible drive mode we haven’t discussed so far: you can take the lock anti-phase drive and modify it to work in an asynchronous fashion just as we did with the sign-magnitude drive here. I will leave that operating mode alone at least for now as I don’t see too much practical value to it.
So now that we’ve finished with the detailed analysis of all interesting drive modes, we’re almost ready to move on and discuss drive circuitry and component selection. However before we jump into that topic, the next installment will start with a comparison of the drive modes we’ve discussed here to be able to see the differences and the similarities side-by-side.