DC Motor Regenerative issue

33 posts / 0 new
Author
Message

I have a 24V DC motor which I used to PWM speed control using a battery bank as the supply.

I'm now using a switch-mode Power supply and when the motor goes into re-generative mode, ie the load is pushing the motor, the 24VDC rail voltage to too high and I need to clamp this voltage.

My guess is that, at the most, the motor can generate about 3 amps.

Whats a good way of "dumping" this excess energy ?

Cheers

I think you use a diode across the terminals of the motor with the anode at the positive terminal so that it freewheels to a halt.

So more than specifying the number of amps, you need to specify the energy stored in this 'flywheel'. If you talk about 3 Amps, I'd say 3 Amps for how long? If it was for a millisecond then most diodes should be able to deal with that, but for a minute, it becomes different. You could work out the energy to be dissipated roughly be using 0.5*I*angularvelocity, where I is the moment of inertia of your load. It should then be reasonably simple to relate this to dissipation in your diode (use its datasheet).

Edit: angularvelocity^2!!!

Last Edited: Tue. Sep 7, 2010 - 07:00 AM

What voltage is too high for your Buck (or equiv.) circuit?

The motor driver is a simple-H from Robot Power.

As the motor can run both ways the free wheeling diode will unfortunately not work.

The 3A could be up to a minute, but in most instances would be about 3 or 4 seconds.

I need to keep the clamped voltage below 26V.

Use a biiig capacitor to dump charge into. Use a Zener to clamp the voltage to something safe.

If you dont have a BIIIG zener use a diode bridge and inside the bridge connect a zener in conjucntion with a power transistor to boost zener rating.

In Your case the bride will make this arrangement polarity insensitive otherwise use two zeners back to back.

EDIT bride == bridge

I was thinking something like a resistor where I could dump the excess energy.
Maybe have a zener switching a transistor which then dumps the energy on the resistor.
My hardware skills suck, so I'm way out of my depth here when it come down to the design stage.

But...
If you could put a regular diode in series with the motor drive, I think that it would solve the problem.

As far as I know, the motor doesn't need any sort of a load when it is acting like a generator. If it is being powered through a diode, that will block any excess voltage. Voltage will rise on the cathode end, but it shouldn't make any difference.

How the H drive behaves in this situation is another matter -- I really just don't know.

Alternately, you might try the circuit that I found on the web
http://www.robotroom.com/HBridge...

They couple the motor drive to the basic power source through some schottky diodes. I think that this may work quite well, but it probably depends on how stiff the basic power source is. Note that you will need some pretty hefty diodes.

Hmm, I'm not sure then - zeners seem to make sense. How about braking? (switch both high sides or both low sides on at the same time) Couple that with zeners
maybe to prevent spikes on your voltage supply?
Can you say what motor / load etc you are using to give an intuitive idea of the energy?

ford2go: The problem with a series diode is that the motor is "generating" energy, which will have nowhere to go. That will cause the voltage to increase until a path forms somewhere... most likely through said diode, or inside the motor's windings.
That, and the OP said the motor goes both ways, which is on odds with the one-way nature of the diode...

Also, the diodes in that circuit is (to my understanding) what is causing the problem in the first place: The motor driving the power supply backwards, which doesn't work for most switching-mode power supplies.
However, if I remember correctly, there are some more exotic variants of SMPSes that can handle reverse currents. That's just pushing the problem ahead though, since the energy needs to go somewhere, and re-feeding it to the line is rather tricky business (but can be done, I've done it on labs on the uni).

Depending on your usage case, a large transistor-connected cap could work wonders - put a little logic in an AVR, and if the voltage gets over the supply voltage let the transistor conduct, eating up the excess energy. Add a return diode and you can then use this energy when starting back up again.
The only problem then is if the generated energy is larger than what the cap can "eat", adding in a zener-triggered resistive dump is probably a good idea for safety. Clamp it above what the cap is set for, but below the max rating of your system.

Wish I had any schematic program handy right now, but unfortunately not. I'll post this and see if I can edit in a fixed-width schematic. :)

Edit: Sneaked onto a workmate's computer for a few minutes. The components are probably not exactly right, but they were what he had.
If you want to control cap discharge, just add a transistor in series with the diode. Should probably add a diode on the "in" to the caps as well.

Edit2: Minor screwup on the clamp part, this ought to work... I think... maybe... :)

Attachment(s):

And my workmate just walked by and we started talking... as usual, this got a bit over the top, but this is what we came up with - complete control over regeneration.
Q5 controls charging of the cap bank, Q7 discharging.
Q6 is an automatic voltage clamp, and Q9 can be used for "manual" resistive braking.
Q8 means you can shut down incoming power, such as when braking with Q9, and enables running purely off the cap bank.

Using the H bridge to brake (by keeping either both up or both down transistors on) works, but remember that you'll be effectively short-circuiting the motor, probably generating massive amounts of heat in the windings, or in the transistors, which may or may not be able to take it.

Attachment(s):

If OP use 24V and it can't be bigger that 26V caps will not do the job!
I would have the caps on all the time and if needed make a inrush control.(and perhaps have a diode in the main power.)
And for the dump yes use some resistores.
Just make sure (be aware of) the dump control and motor can start some osc. (but the big caps should help)

Oh, just read the 26V requirement again, forgot it along the way. Yes, that'll be a problem, that's pretty tight considering the power we're discussing (up to 100W braking, as far as I can tell). What's limiting at 26V? The H bridge? In that case, I agree with sparrow2 - caps always connected to slow down the energy spikes, and give the clamp time to absorb it.
Beware of the zener knee too - it could well be a volt or two wide, which will cause the clamp transistor to be resistive (which is bad at these currents). Might need a comparator-based solution instead, to make it sharper.

This ought to see You right.

Minimum component count clamping to Vz + Vbe + 3 * Vd

Vz = Zener voltage ( notionally 22V)
Vbe = base emiter voltage
Vd forward voltage drop of diodes

EDIT: mount the transistor on a suitable heat sink.
the circuit sits in parallel with the motor.

Attachment(s):

I have a question: When the motor is running under load from the 24V supply, and you remove the 24V, the load momentum is driving the motor. What V is it outputting now? 12V? 20V? I guess this is the back EMF that was present while the motor was running? So if you dump this into the cap bank, it starts charging and really loads the motor down almost like driving into a short. After the motor slows down, you have this partially charged cap bank. A DC to DC stepup from the cap V (2V? 5V?) to 25V would let you recover all the captured coulohms in the caps and put em back in the battery.

Imagecraft compiler user

Looks to me like you need a power "source" that both sources and sinks. The AC power grid works that way. Most power supplies don't.

Jim

Until Black Lives Matter, we do not have "All Lives Matter"!

I always thought a buck or equiv. circuit chopped the voltage down (and current up) and dumped it in a cap, for regeneration. This way a traditional boost-buck (or equiv.) works both ways...

tlucas: There are circuit versions of them that do. However, if you look at a "standard" buck, there's a diode in the current path, which means it'll only work in one direction. If that's replaced with a transistor (see this wikipedia article), you can enable the current to move both ways through the regulator.
What you basicly end up with is a half-bridge (or a full H bridge if you want to be fancy and do both positive and negative voltages), with an inductor on the "output".

However, getting back out onto the AC grid is another matter. To do that you'll need to actively control the rectifying diodes. Which can be done, but it's way over the top for such small applications as hundreds of watts. And if you start producing serious amounts of power back to the grid (more than you're consuming at any point), at least our energy agency here in Sweden starts getting cranky... :)

Bob: You point out a valid point (bah, it's early days here still :) ), the cap bank will probably need a buck-boost circuit to work as intended for regeneration.
Shorting stuff is almost never a good idea, which is why we came up with the transistor in the path to the caps. That'll mean it's possible to pwm the cap charging, making it look like less of a short. A good hold-over cap on the main rail is probably a good idea (there should be one anyway). If it's not pwm-ed down, the motor could stop very, very fast, all of its energy quickly drained to the caps.

Problem is motor voltage needs to be held below 26V under regenerative conditions.

There is not much head room for the energy to be dumped into a cap that is not without some external switching arrangement and an energy recovery scheme.

Thanks for all the suggestions.
I'm just building a test-rig right now. It will have a 20kg flywheel on the gearbox shaft, so I can test inertia, feedback, some PID loops etc.
I should have this done tomorrow at some stage.
Have been reading quite a bit as well.

The big caps are no better/worse than a battery. A battery will actually absorb quite a bit of energy and is quite easy to mount and also quite cheap.

I'm trying not to go to the expense of having a source/sink power supply, just a standard of-the-shelf (cheap) switch mode PS.

With regards to the 26V limit, it kind of just me. All the specs for the other items connected to the 24V has 28V as the absolute maximum, and I would like to stay away from the absolute values.

Here is a simple circuit from "The Art of Electronics"
Not sure if this will work correctly and I don't know how to calculate the required values.

I figured that resistor inline with the transistor would work ?

Attachment(s):

Here is another thought.
If I connect multiple Zeners in parallel across the supply and each zener can dumb 0.5A, will 4 zeners be able to handle 2A ?
or is likely I will see smoke ?

Then you will need a res. in seriel with each zener, otherwise one will take more than the rest (the one that "open" first, and that will give some smoke).

For zeners in parallel I guess it would depend on how well matched their IV curves are. You could put a 'small' resistor in series with them and that should allow them to balance out a bit?

More usefully, I could attempt to shed some light on that circuit you posted.

The 10V zener needs to be replaced by a 25V zener. Then the 1kohm resistor doesn't need to be changed. There will be an approximately 0.7V drop between the base and emitter at transistor saturation, making this a 25.7V power zener.

You just need to check that the transistor can cope with the voltage between its collector and emitter (i.e. 25.65V) and also check that it can cope with the current you expect through it. Additionally you should also check that the current through your zener is ok - you can work that out roughly by dividing the maximum current surge that you are expecting by the dc current gain of the transistor (hfe).
Incidentally, I looked at the 2N3055 and it looks pretty suitable. All I'd change is the zener.

But no one has told me what volts the motor is outputting while coasting... it cant be 24V... so its somewhere from 5 to 20V? There aint no good way to put that into a 24V battery without a DC to DC converter is there? Also, just like we pwm the batt into the motor when running, we can pwm the motor into the cap bank when doing the electronic braking. Check out the Maxwell BoostCap 24V and 48V modules... they will absorb and spit out 150 amps for several thousand watts seconds, but they are waay expensive. Also, the term 'regenerative' gets used with any arrangement that uses the motor into a load resistor, like a locomotive, with no inkling of recovering the energy. Just regenerating it to dump it into a resistor. Shame Shame.

Imagecraft compiler user

Bob, I thought the original issue was the voltage rise above the normal voltage supply, caused due to inductance - i.e. you don't really care if the motor is coasting and producing < 24V. The only situation you care about is the transient when you turn off the voltage supply, and because current was flowing, the inductor will want it to continue to try to flow and the voltage will rise..

A battery should be able to absorb that spike well, but I just think it adds too many extra complications for what doesn't seem like a very complex task.

Also just realised that ignoramus's circuit seems really good. You can use the Art of Electronics circuit, rotate it by 90degs anti-clockwise and stick it into the circuit ignoramus posted, in the place of D5, D6 and Q1 to get the same functionality. You'd just need to decrease the zener value by ~ 1.3V i.e. 2 diode drops.

Bob,

You aint no uncle of mine. Who cars about energy recovery... the fellow simply wanted to clamp the motor voltage.

If he wants to clamp and recover the energy ( and he needs no to do so since he is talking mains powered equipment he might entertain something like this:

Attachment(s):

Neil is right.
The issue is that the 24V rail goes above 24V.
As the are some other stuff on the 24V rail, like relays, so there is some natural buffering there.

Bob, I don't know exactly how much the motor puts out on the 24V rail, apart from that the voltage goes above 28V in certain circumstances. And the Switch-mode PS hates it.

I should have the test rig up and running today and should be able to give some better figures.

Cheers
Kim

I get just under 10V when under regen with quite a small resistor connected as load.

ignoramus

Should I connect a noise capacitor across D6 to stop any noise related triggering ?

Also should Q1 not dump into something like a resistor to stop it from having a direct short ?

Sorry, I know the question isn't directed at me but I'm quite interested in this. I prefer the idea of a 1kohm resistor (as in the Art of E. circuit) from base to emitter of Q1 and then I guess you can have a capacitor across the resistor.

So if the point is indeed just a voltage clamp, then the maximum energy (correct me if I'm wrong) that would need to be dumped is equal to 0.5*L*I^2
where L is the inductance of your motor line. (maybe get this from the motor datasheet)
So it would seem (I think) a very small amount of energy.
On the other hand for robustness, you could put a resistor that would draw a similar load to your motor, between the collector and the point in-between D1 and D2. You'd calculate that by (26 - 0.6 - Vce)/R should equal approximately your motor current. Then the transistor just has to cope with the motor current. (did you say 3A? If so that 2N3055 can definitely handle it)

I finished the test rig today, so should be able to do some testing over the weekend. Will report back.

Fiddler,

placing a cap across D6 will have just the opposite effect to the desired.
The cap will present a low impedance path to noise spikes whihc will cause the transistor to conduct.

On the question of R=1Kohm from base to emiter..Yes it is a reasonable thing to do as it willonly draw approximately 0.7ma under overvoltage condition.

The Zener I have nominated is a 1 W 22V Zener.
This implies a current of 1/22A (45ma approx.) would be a maximium steady state current ( depending on circuit construction and ambient temperature).

Using a High current transistor with a beta of say 20 we could reasonably expect to see a collector current of 900mA.
A factor of 3 lower than estimated motor output.

Time to define the numbers a bit better.

Hi Fiddler,
I've actually built a regenerative motor controller with a Freescale chip however I imagine the AVR is much the same.

Background:-
We used a HIP4081a mosfet driver to drive 4 N-channel Mosfets? not sure if you are using a mixture of P and N-Channel FETS???? and some 22A FET's.

Regeneration Issue:-
Basically to solve this issue I needed to know which way the currently was actually flowing accross the bridge and the only way to figure this out was to actually measure it. In order to measure the current I palced a really small resistor in series with the motor ie 1ohm or less with a necessary power rating to minimize I^2R losses and then took an ADC reading on each side of the resistor. The difference between the two values +/- gave me the current direction.

Then if the current was running in the opposite direction to how I was actually driving the circuit I knew I was in regeneration mode so I was able to switch on a separate FET and charge up a resovior cap via a dc-dc converter.

Other issues:- If you are driving a large inductive load we had a lot of issues with designing an appropriate snubber circuit to suppress transient voltage spikes accross the FET's. Hope this helps......

http://www.barello.net/Papers/H-Bridge.pdf