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.

TMDSHVMTRINSPIN: About Instaspin library lab 2B

Part Number: TMDSHVMTRINSPIN

Hello Dear,

I am using Hardware TMDSHVMTRINSPIN and Software Instaspin lab's. I am connecting servo motor with it.I have several questions about it but here the motor parameter

#define USER_IQ_FULL_SCALE_FREQ_Hz        (USER_MOTOR_NUM_POLE_PAIRS/0.008)

#define USER_IQ_FULL_SCALE_VOLTAGE_V      (2100)

#define USER_ADC_FULL_SCALE_VOLTAGE_V       (700)

#define USER_IQ_FULL_SCALE_CURRENT_A          (10.0)

#define USER_ADC_FULL_SCALE_CURRENT_A        (20)

Reference for labs :1) InstaSPIN Projects and Labs User’s Guide , 2)InstaSPIN-FOC and InstaSPIN-MOTION

Motor rating : (rated voltage = 75 V , rated frequency = 200Hz , rated current  = 1.1 A , rated speed =  3000rpm )

I have questions for lab 2B

I have three question for it

1) In lib 2b I have got error of USER_ERRORCODE_VOLTAGE_SF_LOW , So I reduce the ratio up to 1 than the error was eliminate. but the reference guide say we have to maintain ratio of (1/3) at least. So where I am wrong?

2) USER_IQ_FULL_SCALE_FREQ_Hz means which value I have to write?,because as per guide it must have to more than maximum speed but if I am put 5000 Hz , than it's gives me error of USER_ERRORCODE_VOLTAGEFILTERPOLE_HZ_LOW.

3) which parameter help to increage supply voltage to motor from 340 V DC Bus.

4) In lab 2b the motor identify Rs and Flux but Not Inductance value It's show error of estimation.

The User Motor Parameter

"

#elif (USER_MOTOR == Servo1_Motor)                  // Name must match the motor #define
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm  // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
#define USER_MOTOR_NUM_POLE_PAIRS       (4)            // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
#define USER_MOTOR_Rr                   (NULL)         // Induction motors only, else NULL
#define USER_MOTOR_Rs                   (NULL)     // Identified phase to neutral resistance in a Y equivalent circuit (Ohms, float)
#define USER_MOTOR_Ls_d                 (NULL)  // For PM, Identified average stator inductance  (Henry, float)
#define USER_MOTOR_Ls_q                 (NULL)  // For PM, Identified average stator inductance  (Henry, float)
#define USER_MOTOR_RATED_FLUX           (NULL)         // Identified TOTAL flux linkage between the rotor and the stator (V/Hz)
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)         // Induction motors only, else NULL
#define USER_MOTOR_RES_EST_CURRENT      (1.0)          // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
#define USER_MOTOR_IND_EST_CURRENT      (-1.0)         // During Motor ID, maximum current (negative Amperes, float) used for Ls estimation, use just enough to enable rotation
#define USER_MOTOR_MAX_CURRENT          (4.5)         // 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     (20.0)         //(5) During Motor ID, maximum commanded speed (Hz, float), ~10% rated
#define USER_MOTOR_ENCODER_LINES        (5000)       // Number of lines on the motor's quadrature encoder
#define USER_MOTOR_MAX_SPEED_KRPM       (5.0)          // Maximum speed that the motor

"

  • Hi Divyesh, 

    Thanks for reaching out...we are locating the right domain expert to address your issue.  You should get a response back shortly. 

    Regards,

    Krishna

  • If you are using TI high voltage kit, you can't change the USER_ADC_FULL_SCALE_CURRENT_A and USER_ADC_FULL_SCALE_VOLTAGE_V that are related to the hardware board. And you don't need to change USER_IQ_FULL_SCALE_CURRENT_A and USER_IQ_FULL_SCALE_VOLTAGE_V as well.

    You just need to tune the identification variables ibelow n the user.h file according to the motor you used.  And don't add any load on the motor when run this lab for motor parameters identification.

    #define USER_MOTOR_RES_EST_CURRENT      (1.0)                               // A -  10-30% of rated current of the motor

    #define USER_MOTOR_IND_EST_CURRENT      (-1.0)                             // A -  10-30% of rated current of the motor,  just enough to enable rotation

    #define USER_MOTOR_MAX_CURRENT            (5.0)                               // A -  30~150%  of rated current of the motor

    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (40.0)                            // Hz - 10~30% rated frequency of the motor

  • Dear Luo,

    As mention, you told me we don't have to change hardware parameters. So we replace the default register in the circuit ,again we set the default kit parameter in user.h.

    after that again we perform lab 02b, but we didn't get actual Inductor.

    In addition My motor  have rated voltage is 75 V. So, I have to keep the J1,J2,J3,J4  jumper or I have to remove it ?

  • Don't populate the jumper on J1~J4 if you want to run a high voltage motor,, and the hardware parameters for voltage is as below

    //! \brief Defines the maximum voltage at the AD converter
    // Full scale voltage of AD converter, not the current voltage
    #define USER_ADC_FULL_SCALE_VOLTAGE_V (409.90f)

    //! \brief Defines the analog voltage filter pole location, Hz
    //!
    #define USER_VOLTAGE_FILTER_POLE_Hz (375.55f)

    Populate the jumper on J1~J4  to bypass the 820k(ohm) resistor if you want to run a low voltage motor,, and the hardware parameters for voltage is as below

    //! \brief Defines the maximum voltage at the AD converter
    // Full scale voltage of AD converter, not the current voltage
    #define USER_ADC_FULL_SCALE_VOLTAGE_V (112.21f)

    //! \brief Defines the analog voltage filter pole location, Hz
    //!
    #define USER_VOLTAGE_FILTER_POLE_Hz (381.15f)