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.

DRV8305: problem with current loop control of BLDC motor with FOC method

Part Number: DRV8305
Other Parts Discussed in Thread: CONTROLSUITE

Hello,

I am using sensored FOC method for controlling BLDC motor. In current loop,when I set the d axis current to zero and q axis current to something below the rated value, the motor starts to rotate and after few second the speed of motor began to decrease and finally the motor stops. when I look at the current of motor, it is constant and suddenly began to increase. so I want to know why it is happening?

Regards,
Mohammad.

  • Please make sure the rotor angle and feedback speed are correct for FOC, you might use Datalog or PWMDAC to monitor these two variables in your project. Both modules have been implemented in some example projects in controlSUITE. It seems like the feed speed had a wrong direction in your case.
    Btw, the position sensor needs to be done offset and zero calibration for each motor, that's not fixed value. Even you have to do the calibration every startup if you are using an incremental encoder.
  • Thanks for response, I checked and rotor angle measurement  is correct , and because  I  just execute the current loop, I do not need the speed feedback. The  following pictures are rotor angle,  q axis current, speed and  current  of phase a respectively. As you can see, when the q axis current reaches it's reference value, the speed becomes zero.

     

  • As mentioned above, you must do the zero offset calibration of the encoder, and configure it correctly even though you only need torque control, the precise rotor angle is very critical for any FOC algorithm. Please use a rotor alignment to implement zero offset calibration every power on, even startup.