cancel
Showing results for 
Search instead for 
Did you mean: 

How to regenerative & dissipative braking in hardware and firmware

AEzza.1
Associate

Hi all,

Over the past few months, I have been using the motor control SDK to develop a custom high efficiency motor controller for my university solar car team. After spending a while getting my hardware working and debugged, I am working on custom firmware for implementation in an EV and have compiled several questions regarding braking.

My primary background is actually in mechanical design and electrical hardware, so I am still learning the firmware side as I work through this project. As such, it would be great if you could provide "step-by-step" answers for any of the questions below! I have taken a motor theory coarse so I am fairly comfortable with the concepts of FOC.

Context: As this is for an EV application, I want to be able to implement regenerative braking for maximum efficiency. For this, the driver has an additional pedal (in addition to a standard mechanical braking system) which will be used for motor braking. My goal is for the pedal position to control the percentage of maximum battery charge current. When fully pressed, the motor will brake at a rate to charge the battery at maximum current. I am already aware that I should implement On-the-fly startup and likely a dissipative brake for this application

Questions:

  • How exactly does the dissipative brake work? I have been having trouble finding good resources for this using the STM MC SDK.
    • What does the hardware look like? Is it just one additional MOSFET and a power resistor between Vdc+ and Vdc-? Also does this switching occur at a similar speed to the primary inverter (and would thus require a properly spec'd gate driver)?
  • I am aware that when braking a motor, there are various ways to deal with the generative current, including dissipation, shorting the motor windings, etc. Does the MC SDK offer any control over this? I want to be able to prevent over-current and over-voltage of the battery which, to my knowledge, is usually done by adjusting the PWM duty cycle of the mosfets. But I am not sure how to implement this.
  • Adding to the question above, my application may also have instances where the motor is trying to brake at low speeds where the back-EMF is not high enough to charge the battery alone. I have found online that modern drive units can use the motor windings + controller to act as a boost-converter to match the battery voltage. Is this control possible? If not, what is the best way to handle this scenario?

Lots to discuss here. Thanks again in advance! Any help is greatly appreciated.

1 REPLY 1
Cristiana SCARAMEL
ST Employee

Hi @AEzza.1​ and welcome to the ST Community.

Since your question is about STM32 MCSDK, I moved your thread from the topic Motor Control Hardware to "STM32 Motor Control".