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.

BOOSTXL-DRV8305EVM: moduleOverCurrent fault and Help with setting up motor parameters

Part Number: BOOSTXL-DRV8305EVM
Other Parts Discussed in Thread: LAUNCHXL-F2800137, BOOSTXL-DRV8323RH

Tool/software:

Im using LAUNCHXL-F2800137 + BOOSTXL-DRV8323RH  and trying out Universal Motor Control Lab Level 1~4.

Level 1 was successfully built, and I confirmed that the variables in the expressions appeared as described in the manual.

However, while testing Level 2, I encountered a moduleOverCurrent error, with motorVars_M1.faultMtrUse.all showing a value of 16.

I referred to previous forum posts and attempted to adjust the motor parameters. Unfortunately, the datasheet for the motor I am using -Alien Power System  APS 5055S Sensed Outrunner Brushless Motor 220KV 1600W—only provides the limited information shown below.

I tried various adjustments to run the motor in Level 2, but the moduleOverCurrent  fault continues to occur. Therefore, I would like to ask if you could provide guidance on the appropriate parameter values for this motor.

Additionally, I have reviewed Appendix A. Motor Control Parameters in the Motor Control SDK Guide, but I am unsure which variables I should primarily adjust. I would greatly appreciate any advice you could offer.

Currently, the parameters in user_mtr1.hare defined as follows:

#elif (USER_MOTOR1 == APS_5055S)
// the motor type
#define USER_MOTOR1_TYPE                   MOTOR_TYPE_PM
#define USER_MOTOR1_NUM_POLE_PAIRS         (7)
#define USER_MOTOR1_Rr_Ohm                 (NULL)
#define USER_MOTOR1_Rs_Ohm                 (0.393955578f)
#define USER_MOTOR1_Ls_d_H                 (0.000190442806f)
#define USER_MOTOR1_Ls_q_H                 (0.000190442806f)
#define USER_MOTOR1_RATED_FLUX_VpHz        (0.0399353318f)
#define USER_MOTOR1_MAGNETIZING_CURRENT_A  (NULL)
#define USER_MOTOR1_RES_EST_CURRENT_A      (1.5f) //1.5f
#define USER_MOTOR1_IND_EST_CURRENT_A      (-1.0f) //-1.0f
#define USER_MOTOR1_MAX_CURRENT_A          (50.0f)  //6.6f
#define USER_MOTOR1_FLUX_EXC_FREQ_Hz       (60.0f)
#define USER_MOTOR1_INERTIA_Kgm2           (7.06154e-06)

#define USER_MOTOR1_RATED_VOLTAGE_V        (33)          // V
#define USER_MOTOR1_FREQ_MIN_Hz            (9.0f)           // Hz
#define USER_MOTOR1_FREQ_MAX_Hz            (600.0f)         // Hz

#define USER_MOTOR1_FREQ_LOW_Hz            (5.0f)           // Hz
#define USER_MOTOR1_FREQ_HIGH_Hz           (400.0f)         // Hz
#define USER_MOTOR1_VOLT_MIN_V             (1.0f)           // Volt
#define USER_MOTOR1_VOLT_MAX_V             (24.0f)          // Volt

#define USER_MOTOR1_FORCE_DELTA_A          (0.05f)          // A
#define USER_MOTOR1_ALIGN_DELTA_A          (0.01f)          // A 0.01f
#define USER_MOTOR1_FLUX_CURRENT_A         (14.5f)           // A 0.5
#define USER_MOTOR1_ALIGN_CURRENT_A        (14.0f)           // A
#define USER_MOTOR1_STARTUP_CURRENT_A      (110.0f)           // A  3.5f
#define USER_MOTOR1_TORQUE_CURRENT_A       (3.0f)           // A
#define USER_MOTOR1_OVER_CURRENT_A         (7.5f)           // A 7.5f

#define USER_MOTOR1_SPEED_START_Hz         (35.0f)          // Hz
#define USER_MOTOR1_SPEED_FORCE_Hz         (30.0f)          // Hz
#define USER_MOTOR1_ACCEL_START_Hzps       (10.0f)          // Hz/s
#define USER_MOTOR1_ACCEL_MAX_Hzps         (20.0f)          // Hz/s

#define USER_MOTOR1_SPEED_FS_Hz            (3.0f)           // Hz

#define USER_MOTOR1_BRAKE_CURRENT_A        (1.0f)           // A

#define USER_MOTOR1_BRAKE_TIME_DELAY       (12000U)         // 60s/5ms

//#if defined(MOTOR1_ENC)
//// Only for encoder
//#define USER_MOTOR1_NUM_ENC_SLOTS          (1000)           // lines
//
//#define USER_MOTOR1_ENC_POS_MAX            (USER_MOTOR1_NUM_ENC_SLOTS * 4 - 1)
//#define USER_MOTOR1_ENC_POS_OFFSET         (668)            // lines
//#endif  // MOTOR1_ENC
//
//#if defined(MOTOR1_FAST)
//// the slope coefficient for Ld compensation, (0.0f~0.5f)
//#define USER_MOTOR1_Ls_d_COMP_COEF         (0.15f)          // 0.0f~0.5f
//
//// the slope coefficient for Lq compensation, (0.0f~0.5f)
//#define USER_MOTOR1_Ls_q_COMP_COEF         (0.35f)          // 0.0f~0.5f
//
//// the minimum inductance coefficient for inductance compensation, (0.0f~0.5f)
//#define USER_MOTOR1_Ls_MIN_NUM_COEF        (0.55f)          // 0.5f~1.0f
//
//// the near zero speed limit for electrical frequency estimation, Hz.
//// The flux integrator uses this limit to regulate flux integration
#define USER_MOTOR1_FREQ_NEARZEROLIMIT_Hz  (5.0f)           // Hz
//
#define USER_MOTOR1_RSONLINE_WAIT_TIME      (60000U)    // 5min/300s at 5ms base
//
#define USER_MOTOR1_RSONLINE_WORK_TIME      (24000U)     //2min/120s at 5ms base
//#endif  // MOTOR1_FAST
//
//#if defined(MOTOR1_ESMO)
//// Only for eSMO
//// PLL (phase-locked loop)
//// PID proportional, integral, derivative
//// the sliding mode control maximum gain that equals to Ke*fmax/vscale/sqrt(2)*factor(max),
////  tune the factor(0.1~10) based the test status
//#define USER_MOTOR1_KSLIDE_MAX             (0.50f)
//#define USER_MOTOR1_KSLIDE_MIN             (0.10f)
//
//// the PLL control maximum gain that equals to 2*(Damping factor)*(Natural frequency)*factor(max),
//// tune the factor(0.1~10) based the test status
//#define USER_MOTOR1_PLL_KP_MAX             (10.0f)
//#define USER_MOTOR1_PLL_KP_MIN             (1.50f)
//#define USER_MOTOR1_PLL_KP_SF              (5.0f)
//#define USER_MOTOR1_PLL_KI                 (2.8125E-06f)    // Not used, reserve
//
//#define USER_MOTOR1_BEMF_THRESHOLD         (0.5f)
//#define USER_MOTOR1_BEMF_KSLF_FC_SF        (2.0f)
//#define USER_MOTOR1_THETA_OFFSET_SF        (1.0f)
//#define USER_MOTOR1_SPEED_LPF_FC_Hz        (200.0f)
//#endif  // MOTOR1_ESMO
//
//#if defined(MOTOR1_HALL)
//// Only for hall sensor
//#define USER_MOTOR1_HALL_DELTA_rad          (MATH_TWO_PI / 36.0f)   // rad
//#endif  // MOTOR1_HALL
//
//#if defined(MOTOR1_ISBLDC)
//// Only for IS-BLDC
//#define USER_MOTOR1_RAMP_START_Hz           (3.0f)
//#define USER_MOTOR1_RAMP_END_Hz             (30.0f)
//#define USER_MOTOR1_RAMP_DELAY              (5)
//
//#define USER_MOTOR1_ISBLDC_INT_MAX          (0.015f)
//#define USER_MOTOR1_ISBLDC_INT_MIN          (0.010f)
//
//#define USER_MOTOR1_ISBLDC_I_REF_A          (1.0f)      // 1.0(A)
//#define USER_MOTOR1_ISBLDC_I_START_A        (0.5f)      // 0.5(A)
//
//#define USER_MOTOR1_ISBLDC_DUTY_REF         (0.10f)     // 10%
//#define USER_MOTOR1_ISBLDC_DUTY_START       (0.10f)     // 10%
//#endif  // MOTOR1_ISBLDC
//
//// Current and Speed PI Regulators Tuning Coefficient
//// the low speed threshold for adjusting the Kp and Ki of the speed PI regulator
//#define USER_MOTOR1_GAIN_SPEED_LOW_Hz        (60.0f)      // 10%~50% of the rated speed
//#define USER_MOTOR1_GAIN_SPEED_HIGH_Hz       (150.0f)     // 50%~100% of the rated speed
//
//// the gain coefficient to adjust the Kp of the speed PI regulator for startup
//#define USER_MOTOR1_KP_SPD_START_SF          (1.5f)       // 0.1~100.0
//#define USER_MOTOR1_KI_SPD_START_SF          (1.5f)       // 0.1~10.0
//
//// the low gain coefficient  to adjust the Kp of the speed PI regulator
//#define USER_MOTOR1_KP_SPD_LOW_SF            (2.0f)       // 0.1~100.0
//#define USER_MOTOR1_KI_SPD_LOW_SF            (2.0f)       // 0.1~10.0
//
//// the high gain coefficient  to adjust the Kp of the speed PI regulator
//#define USER_MOTOR1_KP_SPD_HIGH_SF           (1.0f)       // 0.1~100.0
//#define USER_MOTOR1_KI_SPD_HIGH_SF           (1.0f)       // 0.1~10.0
//
//// the low current threshold to adjust the Kp and Ki of the q-axis current PI regulator
//#define USER_MOTOR1_GAIN_IQ_LOW_A            (2.0f)       // 10%~50% of the rated current
//#define USER_MOTOR1_GAIN_IQ_HIGH_A           (6.0f)       // 50%~100% of the rated current
//
//// the gain coefficient to adjust the Kp of the q-axis current PI regulator for startup
//#define USER_MOTOR1_KP_IQ_START_SF           (1.5f)       // 0.1~10.0
//#define USER_MOTOR1_KI_IQ_START_SF           (1.5f)       // 0.1~10.0
//
//// the low gain coefficient to adjust the Kp of the q-axis current PI regulator
//#define USER_MOTOR1_KP_IQ_LOW_SF             (2.0f)       // 0.1~10.0
//#define USER_MOTOR1_KI_IQ_LOW_SF             (2.0f)       // 0.1~10.0
//
//// the high gain coefficient to adjust the Kp of the d-axis current PI regulator
//#define USER_MOTOR1_KP_IQ_HIGH_SF            (1.0f)       // 0.1~10.0
//#define USER_MOTOR1_KI_IQ_HIGH_SF            (1.0f)       // 0.1~10.0
//
//// the gain coefficient to adjust the Kp of the q-axis current PI regulator
//#define USER_MOTOR1_KP_ID_SF                 (1.0f)       // 0.1~10.0
//#define USER_MOTOR1_KI_ID_SF                 (1.0f)       // 0.1~10.0

  • Please take a look at the las user's guide and follow the guide to set up the kits.

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/spruj26

    I am using -Alien Power System  APS 5055S Sensed Outrunner Brushless Motor 220KV 1600W—only provides the limited information shown below.

    The kit is not suitable to spin this motor with load. The output power of the motor is far higher the maximum power of the inverter board.

  • Thank you for your response, Yanming Luo.

    Following your advice, I have switched to a motor with more detailed specifications.

    However, I have one more question. The ModuleOvercurrent issue continued to occur at Level 2, so I proceeded to test at Level 3, where I found that the motor operates well.
    I would like to ask why this is happening and whether this approach is acceptable. Thank you.

  • Level 2 is v/f control, please try to tune the v/f profile and increase the current limitation. You can take a look at the lab user's guide that has a detailed description about the operation steps and tuning parameters on different levels.

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/spruj26