Part Number: TMS320F28069F
I've been trying to add RsOnline Estimation into my code, and I am finding that the value that it calculates to vary significantly.
The motor I'm using is low resistance - the motor tuning algorithm picks the Rs as 0.045 ohms. This value is quite repeatable. I'd like to add online Rs updates to improve low speed performance. When I enable the EST_setFlag_enableRsOnLine() the Rs value varies between 0.99 and 0.02 ohms. Here is a plot of what it looks like over time, with the motor running at constant load and 2000 RPM (233Hz):
I'm looking for suggestions on making RsOnline functional. Here's the motor parameter from user.h in case this is helpful.
#define USER_MOTOR_TYPE MOTOR_Type_Pm #define USER_MOTOR_NUM_POLE_PAIRS (7.0) #define USER_MOTOR_Rr (NULL) #define USER_MOTOR_Rs (0.308) // #define USER_MOTOR_Ls_d (0.000309814903) // #define USER_MOTOR_Ls_q (USER_MOTOR_Ls_d) // d and q are the same #define USER_MOTOR_RATED_FLUX (0.0164) // 320 RPM/V/14p = 0.0134 V/Hz #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) #define USER_MOTOR_RES_EST_CURRENT (2.0) #define USER_MOTOR_IND_EST_CURRENT (-USER_MOTOR_RES_EST_CURRENT) #define USER_MOTOR_MAX_CURRENT (10.0) //return to (40.0) #define USER_MOTOR_FLUX_EST_FREQ_Hz (30.0)
What I've tried:
I've tried this at 500 RPM, 1000 RPM both have similar response.
I've increased the RsOnline_Current_A from 0.75 to 1.5A didn't change anything
The RsRecalc before startup provides a consistent value.
If I allow the algorithm to use the Rs values calculated, then the motor gets crazy and stops running.
Can anyone help me figure out where to look next?
Thanks!
