Sorry if this question is a little long, but I though it prudent here to discuss the state-of-the art as I know it before asking the question.
ISSUE
When using an H-bridge to drive a bidirectional coil of a motor etc, I have always had my concerns about the best way to deal with the fly-back current.
CLASSIC FLY-BACK
Classically, we see the following circuit used where fly-back diodes across the bridge switches allow the drive current, shown in green, to be rechanneled back to the power supply (shown in red).
However, I have always had grave concerns about that method, specifically about how that sudden reversal in current in the supply line affects the voltage regulator and the voltage across C1.
RECIRCULATION FLY-BACK
An alternative to classic is to use recirculated fly-back. This method only turns off one of the switch pairs (low or high). In this case the red current only circulates within the bridge and dissipates in the diode and mosfet.
Obviously, this method removes the issues with the power supply, however it does require a more complex control system.
Current decay is much slower with this method since the voltage applied across the coil is just diode-drop + IR of the on mosfet. As such, it is a MUCH better solution over the classic method while using PWM to regulate the current in the coil. However, for snuffing the current before flipping direction, it is slow, and dumps all the energy in the coil as heat in the diode and mosfet.
ZENER BYPASS
I have also seen the classic fly-back method modified to isolate the supply and use a Zener bypass as shown here. The Zener is chosen to be a significantly higher voltage than the supply rail but a safety margin less than whatever the maximum bridge voltage is. When the bridge is closed the fly-back voltage is limited to that zener voltage and the recirculation current is blocked from returning to the supply by D1.
This method removes the issues with the power supply, and does NOT require a more complex control system. It snuffs out the current faster since it applies a larger back voltage across the coil. Unfortunately, it suffers from the issue that almost all of the coil energy is dumped as heat in the Zener. The latter therefore has to be rather high wattage. Since, the current is terminated more quickly, this method is undesireable for PWM current control.
ENERGY RECYCLING ZENER BYPASS
I have had considerable success with this method.
This method modifies the classic fly-back method to isolate the supply again using D3, however, instead of just using a Zener, a large capacitor is added. The Zener now only plays the role of preventing the voltage on the capacitor from exceeding the rated voltage on the bridge.
When the bridge closes the fly-back current is used to add charge to the capacitor which is normally charged to the power supply level. As the capacitor charges up past the rail voltage, the current decays in the coil and the voltage on the capacitor can only reach a predictable level. When designed correctly, the Zener should never actually turn on, or only turn on when the current is at a low level.
The rise in voltage on the capacitor snuffs out the coil current faster.
When the current stops flowing the charge, and energy that was in the coil, is trapped on the capacitor.
Next time the bridge is switched on there will be a larger than rail voltage across it. This has the effect of charging the coil faster and re-applying that stored energy back into the coil.
I used this circuit on a stepper motor controller I designed once and found that it significantly improved the torque at high step rates and in fact allowed me to drive the motor considerably faster.
This method removes the issues with the power supply, does NOT require a more complex control system, and does not dump much energy as heat.
It probably is still is not suitable for PWM current control though.
COMBINATION
I have the feeling that a combination of methods may be prudent if you are using PWM current control in addition to phase commutation. Using the recirculation method for the PWM part and perhaps the energy recycler for the phase switch is probably your best bet.
SO WHAT IS MY QUESTION?
The above are the methods I am aware of.
Are there any better techniques to handle the fly-back current and energy when driving a coil with an H-Bridge?