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.

TMS320F280049C: FAST Estimator Speed Error When Turning Off

Part Number: TMS320F280049C


Tool/software:

Hello, 

I am using TMS320F280049C in a code based on the InstaSPIN-FOC lab is13_fwc_mtpa.  

When the following lines of code are reached to disable the PWMs and the FAST estimator, the speed returned from EST_getFm_lp_Hz(estHandle) is sometimes non-zero and can lead to reporting a non-zero speed (it does not update while estimator is disabled) when the motor is not turning/PWMs are off. This occurs about 10% of the time with an unloaded motor when stopping from various speeds. 

else if(motorVars.flagEnableOffsetCalc == false){
            EST_disable(estHandle);// disable the estimator
            EST_disableTraj(estHandle);// disable the trajectory generator
            HAL_disablePWM(halHandle);// disable the PWM

One example data point is where EST_getFm_lp_Hz(estHandle) returned 1.13 Hz, while EST_getFm_Hz(estHandle) returned 20.128 Hz and these values remained after EST_disable(estHandle). The much lower low pass filtered speed shows that the recorded speeds previously were much lower than the 20.128 Hz that is most recent. 

1. Is there a solution for this issue where the estimator does not return this erroneous speed value during shut off? 

2. I have noticed that there is a EST_setIdle() command that is no longer used in labs and is in some places replaced with EST_disable(). What is the difference between these functions and when should EST_setIdle() be used? 

3. EST_computeTorque_Nm(estHandle) does update its output when the estimator is disabled. Is there a way to have EST_getFm_lp_Hz(estHandle) update its value while the estimator is disabled? 

Thank you. 

  • 1. Is there a solution for this issue where the estimator does not return this erroneous speed value during shut off? 

    Currently, No. You should know the state of the motor, and to determine whether the feedback speed will be used.

    2. I have noticed that there is a EST_setIdle() command that is no longer used in labs and is in some places replaced with EST_disable(). What is the difference between these functions and when should EST_setIdle() be used? 

    EST_setIdle() is to reset the Estimator to Idle state for restart.

    3. EST_computeTorque_Nm(estHandle) does update its output when the estimator is disabled. Is there a way to have EST_getFm_lp_Hz(estHandle) update its value while the estimator is disabled? 

    No. These values will be not correct if you disable the Estimator.