Electrical – Problem with BLDC motor drive using PWM

brushless-dc-motordriverpwmthree phase

We are trying to speed control a BLDC 48V 500W hub motor using hall sensors. We are using IRF540N MOSFETs with IR2112 gate drivers and Arduino as MCU. We implemented the 3 phase inverter and in testing the following happens:

  1. As we start the motor at 12 volts with 5 volts applied to the gates the motor starts normally and as we increase the voltage the speed increases and so the current.
  2. The motor does not start normally as we start it from high voltage 30V for example.
  3. With any use of PWM signal on the gate the high side mosfets burns.
  4. When we use 48 volts 12Ah battery all the MOSFETs in the driver burns.

The below circuit is one phase from our inverter

enter image description here

Updated the below curve is the DC bus current at no load. At first we have a 6A spikes but it lasts for a very short time.

enter image description here

Best Answer

When there is a delay shutting off the current from one switch after the other complementary switch was turned on then there is a "shoot-thru" condition where there is a momentary short circuit current surge across the power supply thru the pair of switches. This commutation of "make-before-break" is fixed by timing control of each switch gate drive to allow both to be off for some x microseconds period, usually dependent on the T=L/R ratio. This is also called dead-time control.

Normally the diode//R attempts to turn OFF the gate faster than turn ON to assist in increasing deadtime but depending on Vgs slew rate, gate capacitance, source impedance, load inductance, ESR, RdsOn and L/R ratio, there are many contributors to delayed turn off. A simple way is to increase the value of the parallel Gate R but this has its limits with PWM frequency and gate capacitance.

More basics.

http://www.modularcircuits.com/blog/articles/h-bridge-secrets/h-bridges-the-basics/