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.

Tuning the Speed Loop



Hello,

I’m working with an ACIM, the one shown in section 4.8.1 Getting Parameters From an ACIM Datasheet of the InstaSPIN-FOC User's Guide.

I’ve been going through the labs for instaspin_foc with good success and have gotten to the point in Lab 5b – “Tuning the Speed Loop” where I want to calculate the speed controller gains and I’m a bit lost as to which equations to best use. I pulled the following out of Chapter 11 Tuning Regulators:

And need help understanding if any of the previous parameter information I’ve already extracted and calculated from the motor can be used?

Or am I over complicating this?

Regards,

Rob S

  • Chapter 11 in the user guide gives some commonly used methods to get a starting point of your PI tuning for the control loops. There is no "golden" method to be followed in PI tuning. You can try different tuning method or do trail-and-error tuning.

  • Thank you,

    My colleagues and I had read through Chapter 11 previously.

    Does TI or do you know if there is an example for a ACIM that goes through the same process as the Anaheim permanent magnet motor described in lab 5b?

    Regards,

  • You can convert any lab to ACIM by modify the motor setting in user.h file follow the two motor below in the file as example.

    #elif (USER_MOTOR == Marathon_5K33GN2A)                      // Name must match the motor #define
    #define USER_MOTOR_TYPE                 MOTOR_Type_Induction // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
    #define USER_MOTOR_NUM_POLE_PAIRS       (2)                  // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
    #define USER_MOTOR_Rr                   (5.508003)           // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Rs                   (10.71121)           // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Ls_d                 (0.05296588)         // For Induction, Identified average stator inductance  (Henry, float)
    #define USER_MOTOR_Ls_q                 (0.05296588)         // For Induction, Identified average stator inductance  (Henry, float)
    #define USER_MOTOR_RATED_FLUX           (0.8165*220.0/60.0)  // sqrt(2/3)* Rated V (line-line) / Rated Freq (Hz)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (1.378)              // Identified magnetizing current for induction motors, else NULL
    #define USER_MOTOR_RES_EST_CURRENT      (0.5)                // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
    #define USER_MOTOR_IND_EST_CURRENT      (NULL)               // not used for induction
    #define USER_MOTOR_MAX_CURRENT          (2.0)                // CRITICAL: Used during ID and run-time, sets a limit on the maximum current command output of the provided Speed PI Controller to the Iq controller
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (5.0)                // During Motor ID, maximum commanded speed (Hz, float). Should always use 5 Hz for Induction.

    #elif (USER_MOTOR == Kinetek_YDQ1p3_4)
    #define USER_MOTOR_TYPE                 MOTOR_Type_Induction
    #define USER_MOTOR_NUM_POLE_PAIRS       (2)
    #define USER_MOTOR_Rr                   (0.0)
    #define USER_MOTOR_Rs                   (0.0)
    #define USER_MOTOR_Ls_d                 (0.0)
    #define USER_MOTOR_Ls_q                 (USER_MOTOR_Ls_d)
    #define USER_MOTOR_RATED_FLUX           (0.8165*16.0/120.0 - USER_MOTOR_Ls_d*USER_MOTOR_MAGNETIZING_CURRENT*2*MATH_PI)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (0.0)
    #define USER_MOTOR_RES_EST_CURRENT      (20.0)
    #define USER_MOTOR_IND_EST_CURRENT      (NULL)
    #define USER_MOTOR_MAX_CURRENT          (40.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (5.0)

    FYI, the parameter estimation process for ACIM requires lock rotor. Thanks.

  • Sorry for the delay, had some PTO to used up.

    We have made good progress in this area and developed a series of calculations for our motor.

    We can close this thread.

    Regards,

    Rob