BLDC controller PWM switching method. Please help!

peters

1 kW
Joined
Oct 20, 2012
Messages
373
Location
Hungary
I built my 12 FET BLDC controller for hub motor with IRFP4568 FETs, IR21844 gate drivers and an Atmel microcontroller. Now I'm playing with the firmware, and I have an issue with the PWM switching. I tried several methods, but none of them seems to be very good...

I try to explain the problem with some examples I tested:

---------------------------------------------------------------------
Method 1:
phase U:
high side FET: PWM
low side FET: ~PWM (inverted PWM)
phase V:
high side FET: continuously OFF
low side FET: continuously ON
phase W:
both FETs are OFF (floating phase)

The problem here is when the motor back EMF is greater than the average applied voltage from the controller, then it goes into braking mode. It happens when the motor runs at high speed (high PWM duty cycle/high voltage), then the throttle (PWM) is reduced, then it brakes.
---------------------------------------------------------------------
Method 2:
phase U:
high side FET: PWM
low side FET: ~PWM
phase V:
high side FET: ~PWM
low side FET: PWM
phase W:
both FETs are OFF (floating phase)

It has the same braking effect as in method 1, plus the PWM duty cycle has to start from 50%, this is the 0 speed, because then the average voltage between phase U and V is 0.
---------------------------------------------------------------------
Method 3:
phase U:
high side FET: PWM
low side FET: ~PWM
phase V:
high side FET: OFF
low side FET: PWM
phase W:
both FETs are OFF (floating phase)

In this case when PWM=1, then the rail voltage is connected on the motor, that is ok.
When PWM=0, then phase V is also floating as phase W, and phase U is clamped to 0V via the low side FET. It also has some braking effect, but less than in method 1 and 2. It seems that it is because the back EMF voltage on phase W is less than the 0V for some time during this commutation state, so the body diode of phase W low side FET opens, so it shorts phase U to W and there is some current.
---------------------------------------------------------------------
Method 4:
phase U:
high side FET: PWM
low side FET: OFF
phase V:
high side FET: OFF
low side FET: PWM
phase W:
both FETs are OFF (floating phase)

Here the braking effect is eliminated, it runs in a nice freewheel mode (as there was a mechanical freewheel between the motor and the wheel), because when PWM=0 then all phases float, so there is no current path from one phase to another. There is only the inductive current for a short time: when PWM changes from 1 to 0, the motor current keeps its direction due to its inductance, so the phase voltage reverses: the diode in phase U low side FET and the diode in phase V high side FET open until the voltage of the inductance decays.
But here is a new problem: phase U must be at 0V for some time in order to charge the bootstrap capacitor of the high side gate driver (IR21844), but in this case the low side FET is OFF, and the voltage from the motor inductance seems not always enough to fully charge the cap, because it is there only for a short time.
Also the starting PWM level is not very nice, because the motor does not start from 0% PWM, and at 50% it is already at a speed in steady state. The motor starts at a PWM is somewhere between 0 and 50%.
---------------------------------------------------------------------

So, am I doing something wrong?
How is it implemented usually in the hub motor controllers?
 
Yessss, method 5 is ok. How I didn't think of that...!? :D

I wanted to use the most simple PWM and trapezoid commutation at first, and maybe trying to implement sensorless mode.

Lebowski, what do you mean by noise shapers? Is it for reducing the commutation timing errors, or something else?

Thanks!
 
Back
Top