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.

Speed control with Sensored FOC not using Encoder

Other Parts Discussed in Thread: DRV8301, MOTORWARE

Hi,

we are developing an application using a PM motor driven by a custom F28069M board based on the DRV8301 Kit design.
 We have a quadrature encoder on the motor shaft so we want to use sensored FOC to achieve good torque at very low speeds, which is required for our project. We have adapted the MotorWare example using ctrlQEP.c and ctrlQEP.h to our hardware and we have been able to run the motor at 50rpm (motor has 10 pole pairs) relatively smooth. However, we found out looking at the code in ctrlQEP.[ch] that the QEP feedback is only used for commutation and not for control, i.e. the speed feedback used in the speed control loop is still taken from the FAST estimator.

Is there a reason to not use the QEP feedback since it is already available?

One possible issue I could think is that the speed feedback from the QEP could be noisy at low speeds, especially when the position differences are calculated relatively fast, 15KHz in our case (45KHz PWM, MainISR every 3 cycles). I saw that enc.c includes a low pass filter to handle that but I do not know how well this works in reality.


We will probably attempt to use the encoder speed in the speed control loop and see how this works, but any additional information is welcome.


Giannis

  • which pro_lab did you start with?

    I really don't think any of proj_lab12 or 13 use FAST for the feedback.

  • Giannis,

    If you were using lab 12b you were using the speed control was not performed by ctrlQEP.c and ctrlQEP.h.  The FOC was placed into torque control mode and the speed controller was never called.

    In lab 12b, the default speed PI controller was replaced by the SpinTAC speed controller.  This speed controller is called in the function ST_runVelCtl, and it uses the feedback from the QEP module in order to do the control.  The speed feedback is generated by SpinTAC Position Converter, which takes in electrical angle from the ENC module and converts that into a speed feedback signal which is used to close the loop in the speed control.