This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28069M: FOC has significantly inferior performance than BLDC

Part Number: TMS320F28069M
Other Parts Discussed in Thread: DRV8305

Hello everyone,

I just bought a DRV8305 booster pack and a TMS320F28069M launchpad to run foc on my hobby grade motor. However I found except for quieter running at low speed, foc is significantly worse than my old bldc controller. I have successfully  gone through all the labs up to lab5 and I am using all the default parameters for speed and current control calculated in lab 5b.

Detail problems:

1. At low speed (around 500rpm), FOC has significantly lower torque than bldc control. For example, if I try to stop the motor with my hand, I could easily stop the motor under FOC control at 1-1.5A supply current as shown on the power supply. However, it is almost impossible to stop the motor under bldc control, the supply current increases to 15A before I can fully stop the motor. 

2. At between 3800rpm to 4000rpm, the motor under FOC starts screaming and has this really high pitch. The screaming disappears if I increase the speed further. There is no particular screaming at all throughout the entire speed range under BLDC control, although it is louder at low speed.

3. At 0rpm, the motor under FOC will make irritating white noise.

Motor: sunnysky x2814-900KV

I changed the R8,9,10,14 resistor to be 22kohm and C10,11,12,22 to be 0.033uF to increase the resolution of the filters.

Here's my configuration:

#define USER_IQ_FULL_SCALE_FREQ_Hz        (1501.5)   // Hz =(RPM * Poles) / 120; (900 * 12 * 14) / 120

#define USER_IQ_FULL_SCALE_VOLTAGE_V      (13.0)   // Vbus, Must be smaller than USER_ADC_FULL_SCALE_VOLTAGE_V, update to 16.8 on MK5

#define USER_ADC_FULL_SCALE_VOLTAGE_V       (17.85)  //  VSEN_PVDD = 3.3 / (R16/(R14 + R16)), ref: BOOSTXL-DRV8305EVM User’s Guide;

#define USER_IQ_FULL_SCALE_CURRENT_A         (25.0) // Must be >= 0.5 * USER_ADC_FULL_SCALE_CURRENT_A to bound all data.

#define USER_ADC_FULL_SCALE_CURRENT_A        (47.14)  // BOOSTXL-DR

#define USER_PWM_FREQ_kHz                (45.0)

#define USER_VOLTAGE_FILTER_POLE_Hz  (1185.73)

My max motor current is 20A

I have seen other successful stories on using even higher inductance BLDC motor in this forum. I wonder if I did anything wrong?  I'd appreciate any inputs. Many thanks!

Xunjie