# Pull away voltage (energy) from a DC motor driver board when it does regenerative braking

I have 200 BLDC motor (six-step) driver boards. They work fairly well but, when I tested them on a heavy load (2500 kg), I discovered that they struggle when braking the motor. The PID algorithm can be set to slow down gently (low deceleration), but sometimes (in case of emergency, for example), a bigger deceleration is desirable. When I try a more steep deceleration, the boards get broken.

Investigating the problem, I discovered that the culprit is the voltage raising, due to the regenerative braking of the H-bridge.

The nominal power supply for the board is 48V rectified: a diodes bridge is outside the board, and the rectified voltage is fed to the board, which has a bank of capacitors.

When the motor is rotating at high speed (say, 2500 RPM), and a deceleration is wanted, the PWM for the motor is decreased. This causes a rise in the power supply which, if it is not too high, is tolerated. But if the rate of PWM decreasing is too high (big deceleration), the power supply (Vbus) rises too much, and a few critical components on the board do not tolerate it (for example, the mosfet drivers, and other voltage regulators for +15V and so on).

The electronic engineer proposes to deploy a resistor to dissipate the overvoltage; this resistor would be inserted between Vbus and GND when needed (the CPU has some spare pin to control the resistor insertion, but also an automatic insertion can be done, based on on a threshold, for example Vbus > 50 volts).

I don't like the idea of the resistor, because it would heat onboard, and because I thought what follows: why add a resistor, when I have a 350VA transformer which can dissipate energy much better? If only I could short the rectifier bridge when needed, I could discharge the extra voltage into the transformer. The rectifier bridge has exactly the task of impeding a current return, but in this case, sometimes, it is desirable.

I think it could work: a mosfet or a transistor to short (bypass) the bridge, activated when Vbus trespasses a certain threshold. Normally Vbus stays at 48-49 volts - only when braking it raises: if it stays under 58-60 volts there is no problem; if it raises more, the board gets broken. I implemented a software check: the software monitors Vbus and, if it raises too much when braking, the deceleration is reduced accordingly. The result is that the board does not melt down anymore, but I would like some more braking.

The schematic, in principle, is the following:

simulate this circuit – Schematic created using CircuitLab

(Sorry for the crude schematic, I am not very expert and it took a lot of time...)

• Shorting out one diode in a bridge rectifier is not a good idea. In alternate half cycles you will short out the transformer secondary.
– user16324
Commented Jun 22, 2020 at 18:45
• @BrianDrummond I cannot see this short circuit... where is it and when? Commented Jun 23, 2020 at 6:55
• When V1 is the -ve side of the secondary and SW1 is closed.
– user16324
Commented Jun 23, 2020 at 10:02
• "I have 200 BLDC motor (six-step) driver boards" - are they all running off the same power supply? What is the maximum expected braking current? Do you have a manual or part number for the boards? Commented Jun 23, 2020 at 11:42
• @BruceAbbott they are custom board running a custom (mine) software. Yes, the power supply is always the same well-known transformer. The maximum expected current is about 5A. Commented Jun 23, 2020 at 12:40

Normally Vbus stays at 48-49 volts - only when braking it raises: if it stays under 58-60 volts there is no problem; if it raises more, the board gets broken.

The obvious solution is a clamp that conducts if the voltage tries to go above 50 V. Something like this:-

simulate this circuit – Schematic created using CircuitLab

why add a resistor, when I have a 350VA transformer which can dissipate energy much better? If only I could short the rectifier bridge when needed, I could discharge the extra voltage into the transformer.

You can't do that because the voltage at that point is a mains frequency sine wave going from ~0 V to +50 V. To feed power back into the transformer you would have to convert the DC voltage into AC with the correct voltage and phase.

• TY @Bruce, this schematic is exactly the solution the hardwarist is pushing. I am trying to avoid the bulky and expensive resistor R4. Moreover, I would like to try to dump current in the transformer because it should be more soft: it is a coil, right? It should oppose abrupt changes in current... Commented Jun 24, 2020 at 4:55
• You can't dump energy into a transformer. You could dump it into the mains through the transformer, but only with a complicated inverter circuit. Coils and capacitors only store energy, you need resistance to dissipate it! I'm a little unsure of what you actually have (200 motor drivers all running off the same power supply, or? You didn't answer my question) but this circuit could go in the power supply so bulk shouldn't be a problem, and the resistor isn't that expensive. Any other solution I can think of would probably cost more.. Commented Jun 24, 2020 at 7:34
• TY Bruce - I didn't understand your question. The reply is: these 200 boards are totally independent, they will be sold, each together with its transformer+gear+motor, over time in different places. The resistor is expensive for my purchase department - about 4-5 dollars? I should reach the target spending 3 dollars, but 2 would be better, and 1 would be the best. When the boards become 2000 a year, the difference gets big. Commented Jun 24, 2020 at 10:07
• I bet the cost of a 350VA transformer and the case to put it etc. far outweighs the resistor. A slightly higher price can usually be justified if the product is more reliable. 125W is the continuous power dissipation when shunting 5A at 50% PWM. If the braking is only intermittent then the resistor rating could perhaps be much lower, depending on braking time, duty cycle etc. (probably need to test a working system to find the required rating). Another option might be to use a lower rating and measure or calculate the temperature, then shut the controller down if it gets too hot. Commented Jun 25, 2020 at 1:53
• Yes Bruce, all you say is true; probably a 20W resistor would suffice. The braking phase lasts about 2 seconds and could be quite shorter with the proper circuit. I will test deeper and let you know. For the record, I already use temperature prediction, it works fairly well. Commented Jun 25, 2020 at 4:43

Transformers are not designed to dissipate energy any more that the board components that are failing. You could put energy back into the AC source, but that requires an inverter, not a rectifier.

The advice that you have already been given is the best advice for this situation. The resistor should not be on the board, it should be external. Rather than switch in the resistor based on a threshold voltage, you could detect the voltage rising above the rectified voltage and switch based on a differential.

• Don't you think that forcing an inverse current in the secondary actually dumps that energy in the AC source via the primary? About dissipating energy, the motor itself is not designed to do that. But shorting its terminal is sometimes used to brake by dissipating energy in the motor internal resistance. I thought the situation is very similar. Moreover the components that are failing do not fail because of the energy (heat) but because of too low voltage rating. Commented Jun 23, 2020 at 6:58
• No, because you are applying DC to the secondary.
– user16324
Commented Jun 23, 2020 at 10:03
• Actually, SW1 would switch on and off at a frequency of 50 hertz ("when V1 > 30V"), so in the transformer would enter a pulsating current, not DC. Commented Jun 23, 2020 at 10:29
• SW1 won't do anything except destroy the bridge because it is actually shorting the AC input is alternate half cycles as @Brian Drummond explained. You need an inverter bridge to regenerate. Anything that pulses DC is still DC.
– user80875
Commented Jun 23, 2020 at 11:55

OK if the switch is actively controlled synchronous with the incoming AC waveform, (which was not very clear from the question) you could in principle get regenerative braking.

But you need a second switch from DC bus voltage V2 to the other secondary terminal, to make the waveform symmetrical and approximately the "modified sinewave" (three level step, +V, 0,-V) from cheap AC inverters. Otherwise there is a huge net DC component across the transformer secondary, causing magnetisation and saturation problems.

You have to take care with the switch timing; because when the switch is on, you modify V1 which affects your switch off timings.

Depending on power level and regulatory environment, you may not be allowed to do such obscene things to the incoming AC mains waveform : you may need to add "power factor correction", driving the switches with PWM and modifying the duty cycle to output sinusoidal currents on the mains.

If you use power MOSFETs for these two switches, you orient them such that their body diodes form part of the bridge rectifier : the next hack is to use 4 MOSFETs instead of the bridge, and control them to provide synchronous rectificaion eliminating the diode losses.

It goes without saying that any of these approaches transmits 100Hz torque ripple to the motor shaft during braking, which will be noisy and uncomfortable for the passengers.

Given a 3 phase supply you can make this ripple free : at this stage you have something much more complex than the current schematic, and it's pretty standard practice at that point.

Resistive braking is simple and has none of these issues.

• Thank you Brian, I want to start investigating, so I need a simple circuit, just to experiment. But the problem is I am not able to design a circuit to do that: a mosfet (or transistor?) that closes only when V2 > 50V and V1 > 30 or something like that. If I can prove the thing is doable, the hardware colleague can do it, but first I need to show him some result. Commented Jun 23, 2020 at 16:10
• If you need a simple circuit, stick to resistive braking.
– user16324
Commented Jun 23, 2020 at 16:48
• Just one more thing: this "obscene thing" (dumping rubbish into the mains) would happen only in case of emergency: once a week would be just too much, indicating that something else is wrong. Commented Jun 24, 2020 at 5:00
• In that case just short circuit the motor. Turn on (e.g.) all 3 low side transistors, keep all high side OFF until the speed is within the range for normal braking. From the motor's perspective it's similar to a short duration stall, it'll take some time to overheat. Essentially the motor becomes the big resistor.
– user16324
Commented Jun 24, 2020 at 8:30
• Thank you Brian, this is the other solution I didn't try yet, because I fear it is really brutal for a mass of 2500 kg. Maybe I could leave open all the high sides and apply PWM on the low sides. I have to test. Commented Jun 24, 2020 at 9:54