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.

DRV8316REVM: How to calculate the LPF cutoff frequency of voltage feedback circuit for BLDC motor control

Part Number: DRV8316REVM

Hi All.

I'm work on DRV8316REVM to drive BLDC motor.
In order to drive and to understand the TI' motor library, I'm reading the "InstaSPIN-FOC and InstaSPIN-MOTION" user guide.
And I have a question at section "5.2.4 Voltage Filter Pole".

[Question]

  1. What is the purpose of filtering in the voltage feedback circuit, when use the InstaSPIN library? Is it to eliminate the effect of the PWM carrier frequency or is there any special purpose?
  2. How can I calculate the optimal LPF cutoff frequency?
    I want drive 12-pole motor at a maximum speed of 28.6krpm, and the carrier frequency of the PWM is 28.6kHz. Since I want to pass a frequency component of under 2.86kHz, should I set the cutoff frequency to be roughly 3kHz?
  3. I don't understand the meaning of the NOTE in the document above. What exactly does that mean?
  • Hello Kenji,

    1. The purpose of the voltage feedback circuit is to eliminate the PWM frequency of the voltage feedback but keep it as fast as possible for high-speed voltage feedback. For motors running at 10-20kHz, it is recommended to use a filter in the order of hundreds of Hz. The DRV8316REVM I believe has a cutoff frequency of 284.7 Hz (USER_VOLTAGE_FILTER_POLE_Hz). 

    2. According to the user's guide you mentioned above, I believe your motor should qualify as "high speed" and using a cutoff frequency ~3kHz should be good to cut off the PWM frequency but still give you high-speed voltage feedback. 

    3. The note talks specifically that typically in 10-20kHz applications, the cutoff frequency is around 300-400Hz. However, any cutoff frequency above 200Hz is fine according to the FAST estimator. The other parameters in the NOTE that are in all caps are all defines in the user.h portion of the firmware, and these are specifications that should be followed in order for the FAST estimator to work. So in this case, it is saying that ensure IQ_FULLSCALE_FREQUENCY_Hz < 4*3kHz = 12kHz in the software.

    Let me get more input from the MotorControl SDK team in C2000, who has more accurate knowledge of the FAST estimator and can likely give more details on some of these questions. 

    Thank you,
    Aaron

  • Hi, Aaron-san.

    Thank you for your answer.

    I am looking forward to MotorControl SDK team  information.

  • Hi Kenji-san,

    The team will get back to you on Monday!

    Thanks for your patience,

    Matt

  • Hi Kenji-san, 

    I will forward this thread to the C2000 team for more information. 

    Thanks,
    Aaron

  • What is the purpose of filtering in the voltage feedback circuit, when use the InstaSPIN library? Is it to eliminate the effect of the PWM carrier frequency or is there any special purpose?

    Yes. Sense the phase voltage by filtering out the PWM signals.

    How can I calculate the optimal LPF cutoff frequency?
    I want drive 12-pole motor at a maximum speed of 28.6krpm, and the carrier frequency of the PWM is 28.6kHz. Since I want to pass a frequency component of under 2.86kHz, should I set the cutoff frequency to be roughly 3kHz?

    The detailed calculation formula could be found in chapter "5.2.4 Voltage Filter Pole" in  InstaSPIN-FOC and InstaSPIN-MOTION User's Guide (Rev. H) (http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf) as you mentioned above.

    The 800~1000Hz should be ok for your motor.

    I don't understand the meaning of the NOTE in the document above. What exactly does that mean?

    It's a recommendation for a general motor. That means the right filter pole should be selected according to the maximum electrical frequency of the motor.

  • Hi Yanming Luo-san

    About the cut-off frequency, why 800~1000Hz clould be think ok for my motor.

    Certainly, the effect of the carrier frequency of 28.6kHz can be reduced.
    However, since the maximum rotation frequency of the motor is 2.86kHz, if the cutoff frequency is set to 1000Hz, the phase will be delayed at the rotation frequency of the motor above 1000Hz.

    How think about the phase delay?
    I recognize that it is used for zero-crossing detection of BEMF.
    I need to ​perform phase compensation in my application?

  • Meet the last point in the notes in the user's guide.

    The phase delay will be compensated in the estimator, it's not used for zero-crossing detection of BEMF, FOC doesn't need zero-crossing detection of BEMF.

  • Hi Luo-san

    Please tell me the reason why you said the cutoff frequency should be 800Hz to 1kHz while the maximum rotation frequency is 2.86kHz.

    The point I want to know is, not need to consider attenuated from 1 kHz to 2.86kHz , when use that cut off frequency value?
    In zero-cross detection, even if the signal is attenuated, it is sufficient if the zero-cross can detect. Is my understanding correct?

    Also please tell me how you calculate the cutoff frequency, why  800 Hz - 1 kHz is best?

  • Select the voltage filter pole first according to the maximum frequency of the motor and PWM switching frequency, the filter is used to filter out the PWM signals on the phase voltage, so it must be far lower than the PWM switching frequency, and is greater than one-fourth of the maximum frequency of the motor. It's related to the estimator algorithm.

    The detailed calculation formula could be found in chapter "5.2.4 Voltage Filter Pole" in  InstaSPIN-FOC and InstaSPIN-MOTION User's Guide (Rev. H) (http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf) as you mentioned above.