Author Topic: BLDC motor - how to protect PCB circuitry from sudden stop and generator operati  (Read 881 times)

0 Members and 1 Guest are viewing this topic.

Offline tomerbrTopic starter

  • Newbie
  • Posts: 2
  • Country: il
Hi,

This is my first time in this forum, hello all.

I have a working board that we are unable to stabilize.
By that I mean some boards get burned with no apparent reason.

The system is an outdoor cleaning robot for solar panels.
It comprises of several building block, the main ones are: a solar charger that charge the battery when the robot is in the docking station, the MCU and the BLDC motor driver.

The battery is a LiFePO4 16.4V (5 cells).

I have two issues.

    The charger stops charging, something gets ruined there.
    Parts around the BLDC driver get burned.

I think these two problems are connected because we never see a stop in the charging when the robot is docking only after it returns.
From that I deduce that the charger circuit either get burnt during the operation of the robot or during the entry into the docking station when the solar panel is of course "hot".

I investigated how the robot is being operated in the field and found two issues that I think I need to address.

    Sudden stop.
    Manually pushing the robot, effectively turning the motor into a generator.

Both these issues will produce voltage and current above the system rating, I even saw a 50V 1000uF electrolytic cap exploded.

I saw something that is called a breaking resistor, but I am not quite sure how to install it.

I have considered adding a freewheeling diode or rectifiers, but I am not sure where to put it on a BLDC motor and if that even help because it will still pass the entire voltage back to the system and affect the charger and other parts.

The motor works with about 16V and get reach a peak 15 amps in normal operation.

Attached is the basic block diagram, the charger and power stages and the motor stage.


1456720-0  1456726-1  1456732-2  1456738-3
1456738-4
Any suggestions?
Drawings are also attached in PDF format in better resolution

Thanks,
Tomer
 

Offline uer166

  • Super Contributor
  • ***
  • Posts: 1002
  • Country: us
There are issues that can cause what you see, and it's not inherently to do with "sudden braking" or moving the motor by hand. It seems you have a single common current sense for all three half-bridge legs. What is your control strategy? Is it trapezoidal? FOC? Dumb sinusoidal PWM?

For any reasonable motor driver, you need true current control, whether peak or average, to maintain the output current in each of the phase legs. If you output PWM without controlling the current, you may enter regenerative modes of operation that can raise the bus voltage beyond the battery voltage, or just plain old overcurrent in the FETs, causing destruction. Any BLDC driver will have at least 2 or 3 current sensors, either in the half-bridge low-sides, or in the motor phases themselves, such that current through each leg is fully under control.

There is no simple bolt-on you can add to protect against all that, you just need to correctly control the BLDC motor and all the control variables, which really are the phase currents.
 

Offline tomerbrTopic starter

  • Newbie
  • Posts: 2
  • Country: il
Thank you,

For your first quotation, it is a sensored motor and I use trapezoidal commutation.
The system works very well under normal operation.

The only issues that we have are under the "sudden stop" and when turning it into a generator (pushing by hand).

Current sense for all 3 phases is something that we cannot escape from because we don't have enough ADC's to check each phase separately.

How about adding freewheeling diodes in parallel to each MOSFET?
I was thinking that the internal diode might not be fast or strong enough.

What do you think?

In addition, can someone explain how do I add a breaking resistor that will go into operation when the system suddenly stops or when there is no voltage from the battery, just when the robot is pushed by hand?

Thanks

 

Offline uer166

  • Super Contributor
  • ***
  • Posts: 1002
  • Country: us
The body diode in the FETs is rated for as much current as the FET itself (thermal issues notwithstanding). Anti-parallel diodes won't help you here almost certainly.

A braking resistor is useful for, well, braking. If in your case people are spinning the motor by hand, that's okay, just let it coast and don't allow it to be spin faster than it goes in normal operation. Unless you have a real control problem (accidental regen operation, essentially turning the windings into a boost converter), this is never a problem.

If you're missing an extra ADC input, that is a fundamental design oversight. I can't think of any way to make a BLDC driver work reliably without knowing all 3 phase currents, which you can drive from only 2 sensors. Even the cheapest drivers that I've seen have 3 shunt resistors in the low-side of the half-bridges, there is no excuse to do it right.

I understand that it might be difficult to do a change, which is why you're seeking a bolt-on such as a braking resistor or some extra diodes, but you're much better off realizing that it's broken as-is, and needs some fundamental changes to become a real BLDC driver.

Another thing is, a BLDC driver is as much a firmware exercise as hardware. Please post your controller schematic and code, at least in some pseudocode way so people can actually help out.

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf