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.

TMS320F28069M: InstaSPIN motor rated flux low

Part Number: TMS320F28069M

Greetings! I am performing Lab02a and I think I ID my ACIM correctly. The shaft spins slowly when the flux is measured. After the test the motor runs smoothly when I change the krmp parameter. It accelerates and descelerates according the krpm value. The problem is the measured flux is only 1.8. When I add this value to the motor parameters in the next lab(lab03a) the start check(USER_checkForErrors(&gUserParams)) returns USER_ErrorCode_motor_ratedFlux_Low. So in the user.c file the line of code doing this check is this :

if(USER_MOTOR_RATED_FLUX < (USER_IQ_FULL_SCALE_VOLTAGE_V / (float_t)USER_EST_FREQ_Hz / 0.05))

My USER_IQ_FULL_SCALE_VOLTAGE_V  is 500(the motor is on 380V I don`t  think I should decrease this value)

My USER_EST_FREQ_Hz  is 4000 which is normal for 3 phase ACIM.

#define USER_NUM_PWM_TICKS_PER_ISR_TICK        (1)

#define USER_NUM_ISR_TICKS_PER_CTRL_TICK       (1) 

#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK   (1)

#define USER_NUM_CTRL_TICKS_PER_EST_TICK       (1) 

So for this type of motor my PWM should run somewhere in between 2-8kHz. So 4kHz is normal. Higher value leads to overheating.

But in this case the flux should be no less than 2.5. I increased the flux to 2.8 and performed lab03a. The offsets were estimated and the motor runs correctly.

Is this correct course of action? Should I change this parameter check line? Should I change something else?

Thanks!

  • Could you please take a look at the lab guide and user's guide about ACIM identification? Did you lock the rotor to identify the Rr and Ls? And set an initial rated flux value based on the motor specification?

  • Ok! I`ve made some changes. I increased the USER_MOTOR_MAX_CURRENT so this allows me to increase the USER_MOTOR_RES_EST_CURRENT. So now when I run the test the USER_MOTOR_RATED_FLUX is higher above 3. Which passes the start test. With the previous values my motor was turning too but the flux was low. Here are my results:

    #define USER_MOTOR_TYPE MOTOR_Type_Induction
    #define USER_MOTOR_NUM_POLE_PAIRS (8)
    #define USER_MOTOR_Rr (19.699995)
    #define USER_MOTOR_Rs (20.6425228)
    #define USER_MOTOR_Ls_d (0.0944091007)
    #define USER_MOTOR_Ls_q (0.0944091007)
    //#define USER_MOTOR_RATED_FLUX (0.8165*380.0/50.0)
    #define USER_MOTOR_RATED_FLUX (3.23786998)
    #define USER_MOTOR_MAGNETIZING_CURRENT (0.714712143)
    #define USER_MOTOR_RES_EST_CURRENT (0.4)
    #define USER_MOTOR_IND_EST_CURRENT (NULL)
    #define USER_MOTOR_MAX_CURRENT (2.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (5.0)

    #define USER_MOTOR_FREQ_MAX (60.0)

    #define USER_MOTOR_FREQ_LOW (5.0)
    #define USER_MOTOR_FREQ_HIGH (50.0)
    #define USER_MOTOR_VOLT_MIN (50)
    #define USER_MOTOR_VOLT_MAX (380.0)

    My motor current rate is 1.2A(380V 50Hz from the motor plate). So do I need to decrease this current to the plate level on the next lab?

    So using this technique I`ve menaged to ID a hoist motor:

    #define USER_MOTOR_TYPE MOTOR_Type_Induction
    #define USER_MOTOR_NUM_POLE_PAIRS (8)
    #define USER_MOTOR_Rr (16.179985)
    #define USER_MOTOR_Rs (9.70751286)
    #define USER_MOTOR_Ls_d (0.0235978737)
    #define USER_MOTOR_Ls_q (0.0235978737)
    //#define USER_MOTOR_RATED_FLUX (0.8165*380.0/50.0)
    #define USER_MOTOR_RATED_FLUX (6.21084642)
    #define USER_MOTOR_MAGNETIZING_CURRENT (3.45367789)
    //#define USER_MOTOR_RES_EST_CURRENT (0.6)
    #define USER_MOTOR_RES_EST_CURRENT (2.0)
    #define USER_MOTOR_IND_EST_CURRENT (NULL)
    #define USER_MOTOR_MAX_CURRENT (10.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (10.0)
    #define USER_MOTOR_NUM_ENC_SLOTS (NULL)
    #define USER_MOTOR_INERTIA (NULL)

    #define USER_MOTOR_FREQ_MIN_HZ (5.0)
    #define USER_MOTOR_FREQ_MAX (60.0)

    #define USER_MOTOR_FREQ_LOW (5.0)
    #define USER_MOTOR_FREQ_HIGH (50.0)
    #define USER_MOTOR_VOLT_MIN (50)
    #define USER_MOTOR_VOLT_MAX (380.0)

    Again the USER_MOTOR_MAX_CURRENT is increase above the plate note. Is this normal course of operation? Am I doing it correctly? 

    What do I have  to do with the increased max current? Leave it this way or decreased it to plate level for overcurrent protection or something else?

    Thanks!

    PP: Yes, I am locking the shaft. I am following the procedure!

  • Set the USER_MOTOR_RATED_FLUX  based on the motor spec. as you showed above, and the USER_MOTOR_MAX_CURRENT c is the torque current, no the rated current on the plate, it ould be SQRT(2)* rated current or higher.