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.

TMS320F280041C: MotorControl SDK Lab07 flagRunIdentAndOnLine goes 0

Part Number: TMS320F280041C

Tool/software:

Greetings! I have my hardware verified and running with a small motor with internal break. So I put a bigger motor - three phase internal break (conical rotor). The problem is immediately after I turn on the main loop(flagEnableSys=1 and flagRunIdentAndOnLine=1). the flag flagRunIdentAndOnLine is set to 0 by the program and nothing happens. This happens just after the offset calibration. Here are the motor parameters:

#elif (USER_MOTOR == ELMOT_KG2412_6)
#define USER_MOTOR_TYPE                   MOTOR_TYPE_INDUCTION
#define USER_MOTOR_NUM_POLE_PAIRS         (6)
#define USER_MOTOR_Rr_Ohm                 (0.5757)
#define USER_MOTOR_Rs_Ohm                 (1.737)
#define USER_MOTOR_Ls_d_H                 (0.0037)
#define USER_MOTOR_Ls_q_H                 (0.0037)
#define USER_MOTOR_RATED_FLUX_VpHz        (0.8165*230.0/60.0) /*3.129916*/
#define USER_MOTOR_MAGNETIZING_CURRENT_A  (13.84)
#define USER_MOTOR_RES_EST_CURRENT_A      (12.5)
#define USER_MOTOR_IND_EST_CURRENT_A      (NULL)
#define USER_MOTOR_MAX_CURRENT_A          (25.0)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz       (5.0)

// Number of lines on the motor's quadrature encoder
#define USER_MOTOR_NUM_ENC_SLOTS          (1000)

#define USER_MOTOR_FREQ_MIN_HZ             (5.0)           // Hz
#define USER_MOTOR_FREQ_MAX_HZ            (60.0)         // Hz

#define USER_MOTOR_FREQ_LOW_HZ            (5.0)          // Hz
#define USER_MOTOR_FREQ_HIGH_HZ           (60.0)         // Hz
#define USER_MOTOR_VOLT_MIN_V             (50.0)           // Volt
#define USER_MOTOR_VOLT_MAX_V             (230.0)          // Volt

#define USER_MOTOR_RPM                 (920)

The fault I receive is faultUse =  OverCurrent. I double checked that if use smaller motor with the same current settings everything works fine. I tried to increase the USER_MOTOR_MAX_CURRENT_A to 40A - no luck!

My current setting in the user.h is #define USER_ADC_FULL_SCALE_CURRENT_A         ((float32_t)(132.0)) which way above 40A. My current sensors are MLX91221KDF-ABR-050-SP. This value (132A) is calculated this way

 MLX91221KDF-ABR-050-SP //0.025mV/A 

uC supply voltage 3.3V
//3.3/0.025= 132

Do you see anything odd in these settings? I suppose there is the problem, but I am not sure where to look for. The inital USER_setParams has been passed every time. Can you give me an advice which value should I try to change?

Thanks!

  • Hi,

    • Can you use a current probe on one of the motor phases with trigger enabled to see if a real overcurrent condition is occurring?
      • Can look at PWM outputs on the same scope as well
    • Try reducing the acceleration parameter, that sometimes helps
    • V/f control parameters may not be proper for your motor. Sometimes it's better to manually control V_dq instead of using the V/f calculated parameters

    Best,

    Kevin

  • I measured the current values - there is no current spike! I tried to reduce the acceleration - no luck!

    One more thing. I`ve made a mistake on the title of the thema - I am using lab07. In the software the current never goes heigher than 3-3.5A. So I suppose some setting is not right. What else could trigger the overcurrent protection? Is there a parameter for this protection? May be I have omitted it...

    Thanks!

  • Hi,

    What else could trigger the overcurrent protection? Is there a parameter for this protection? May be I have omitted it...

    Overcurrent is triggered by current input signals going outside of the CMPSS (comparator) thresholds. You can check CMPSS status registers in expressions window to see if this is happening.

    May also suggest trying Lab 3 open-loop control to verify input sensing is working properly.

    Best,

    Kevin

  • Hi. I found it! Overcurrent protection could be trigged by the TZ inputs. This is what counfused me. So the problem wasn`t in the program at all... You can change the name or add extra error for TZ sygnal. 

    Thanks!