Hi TI,
The following code is for Rs Online, The initial value for Rs re-calibration is roughly 10.5ohms, but right after that, this Rs value is updated by Rs_Online and this value jump to 18.01, and sometimes, after refreshed and updated its value to 3.48 ohms. If I use this value to calculate motor temperature, then temperature can vary from -150 to 180 C, which is not acceptable.
Do you know why this is happening?
Thanks for help!
void runRsOnLine(CTRL_Handle handle) { CTRL_Obj *obj = (CTRL_Obj *)handle; // execute Rs OnLine code if(gMotorVars.Flag_Run_Identify == true) { if(EST_getState(obj->estHandle) == EST_State_OnLine) { float_t RsError_Ohm = gMotorVars.RsOnLine_Ohm - gMotorVars.Rs_Ohm; EST_setFlag_enableRsOnLine(obj->estHandle,true); EST_setRsOnLineId_mag_pu(obj->estHandle,_IQmpy(gMotorVars.RsOnLineCurrent_A,_IQ(1.0/USER_IQ_FULL_SCALE_CURRENT_A))); if(abs(RsError_Ohm) < (gMotorVars.Rs_Ohm * 0.05)) { EST_setFlag_updateRs(obj->estHandle,true); } } else { EST_setRsOnLineId_mag_pu(obj->estHandle,_IQ(0.0)); EST_setRsOnLineId_pu(obj->estHandle,_IQ(0.0)); EST_setRsOnLine_pu(obj->estHandle,_IQ(0.0)); EST_setFlag_enableRsOnLine(obj->estHandle,false); EST_setFlag_updateRs(obj->estHandle,false); EST_setRsOnLine_qFmt(obj->estHandle,EST_getRs_qFmt(obj->estHandle)); } } return; } // end of runRsOnLine() function