SPRUHJ1I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
The final state of the identification process is also a transitional state to let the internal state machine know that the motor has been identified. After the transitional state of EST_State_MotorIdentified is over, both state machines, CTRL and EST state machines, are put back to Idle. Users can check if the motor has been identified by calling the following function. If this function returns a TRUE, it means that the motor has been identified, either by going through all the described states, or by using motor parameters from a header file:
gMotorVars.Flag_MotorIdentified = EST_isMotorIdentified(obj->estHandle);
Once the motor has been fully identified, if users require running the motor identification process again, the controller must be re-initialized to set the state machines to an initial state with the motor identified flag back to FALSE. The following function call re-initializes the controller back to the initial state and the motor identified flag back to FALSE:
// set the default controller parameters
CTRL_setParams(ctrlHandle,&gUserParams);
To summarize the complete state machine of the identification process, see Figure 7-25.
The entire process of PMSM motor identification is also shown in Figure 7-26, where one phase current is plotted.