Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: BOOSTXL-DRV8320RS, MOTORWARE
There seems to be some confusion on the FAST states and the way they are being implemented in SDK(FOC) lab 5 motor ID. Judging from all available information SPRUHJ1H of the FAST control states engine do not exactly align with how lab 5 motor ID was developed.
The motor ID states are not being detected in a way that matches user.c wait times and over runs seem to occur upon various state changes. Some state changes are down right disastrous being forced into improper modes and rapidly fall apart if any wait time has been extended or reduced, outlined in SPRUHJ1H–January 2013–Revised June 2019. Oddly after puttsing with wait state times for Nidec motor I was able to ID larger SPM motor LC flux, only one time from a stalled state and Online run speed >550Hz. That is fairly good evidence SDK(FOC) motor ID process has major issues with state changes.
The SDK marginally works with BoostXL-DRV8320rs and often fails to determine correct or any LC induction, stalls motor and drives current to unsafe levels at critical state changes. The state engine in lab 5 is using an odd undocumented way to determine when states have changed.
How is this code conforming to documented control objects required to change Motor ID states? How can anyone trouble shoot issues if the guide is not updated changes made to FAST estimator that differ from documented illustration or control objects?
else // No estimator error
{
motorVars.Id_target_A = EST_getIntValue_Id_A(estHandle);
flagEstStateChanged = EST_updateState(estHandle,
motorVars.Id_target_A);
/* Estimator current state changed */
if(flagEstStateChanged == true)
{
//SCIprintf(">>STATE_CHANGED \n");
//
// configure the trajectory generator
//
EST_configureTraj(estHandle);
1. Why are motor ID control states not being monitored by these control objects?
CTRL_updateState () bool CTRL_updateState(CTRL_Handle handle) Feeds back whether or not the controller state has changed
CTRL_State_e state; //!< the current state of the controller CTRL_State_e prevState; //!< the previous state of the controller
2. How is enabling the controller object same as enabling Motor ID shown in the FAST estimator object?
3. Why is the forced angle flag not being disabled when current ramp up cycle begins? Figure shows angle is forced on motor STARTUP only, not left enabled during any other state. It seems the reason being the control state object was not used so there is no way to know when to disable or enable the flag. Oddly flag is enabled during R/L but frequency >1Hz (USER_FORCE_ANGLE_FREQ_Hz) and remains enabled, so it is not working to auto disable directive flag.




