I built a controller with FOC for BLDC motors and it works well for most motors I tested so far, but as it comes to motors with low resistance and inductance, I hear a noise, that sounds like water in a pipe. For motors with higher resistance (>1Ohm) and Inductance (>1mH) I cannot hear anything. The PWM frequency is 32kHz and clearly out of the audible frequencies. I uploaded a video of the noise on youtube:
By using a spectrum analyser, I found the following picture. I measure between phase A and GND.
I further used an acoustic spectrum analyzer app, which gave me a different image with two peaks at 2400Hz and 4800Hz:
What I already tried/analyzed:
- I used different PWM frequencies, also in the audible spectrum, but this did not change the noise frequency.
- The PWM signals itself look very clean, and it also works on different motors without any noise at all.
- The gate drive is a DRV8304H (Datasheet), such that dead time handling works just fine.
- The ADC current measurement triggering works also fine and triggers when the low side is open. I also adjusted there different parameters to test if something changes, but nothing did.
- I also tried to apply a constant PWM timing to the motor, also here the noise is the same.
I just found nothing, which influences the frequency itself. If it is somehow the motors resonance frequency, I don't know why this only occurs at low resistance and inductance motors. Has anyone an Idea what could be the cause of this noise?
Edit When I only apply a constant timing for PWM and then wait in a loop, I get exactly the same noise, so this is definitely hardware/motor related, but I'm not sure how I really can find the noise source. It will be probably the DRV8304H, since at a constant PWM input, the output is fully determined by this driver and the MOSFETs.