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.

INSTASPIN-BLDC: InstaSPIN BLDC motor characterization fails. Motor stops spinning during RatedFlux

Part Number: INSTASPIN-BLDC


Tool/software:

Dear All,

I am having issues characterizing a Keda A63-S motor using the InstaSpin. During the characterization phase, the algorithm performs the ramp-up phase correctly, however then during the RatedFlux it stops spinning and then it makes weird sounds. I have increased the USER_MOTOR_FLUX_EST_FREQ_Hz variable up to 100 (as explained in the documentation), but the motors still stops. What should I do?

Below you can find the motor parameters that I am using:
#define USER_MOTOR_TYPE MOTOR_Type_Pm // Type of motor: MOTOR_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
#define USER_MOTOR_NUM_POLE_PAIRS (7) // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
#define USER_MOTOR_Rr (NULL) // Must be zero for PMSM motors
#define USER_MOTOR_Rs (0.601877)
#define USER_MOTOR_Ls_d (0.000597)
#define USER_MOTOR_Ls_q USER_MOTOR_Ls_d
#define USER_MOTOR_RATED_FLUX (NULL) // Must be zero for PMSM motors
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL) // Must be zero for PMSM motors
#define USER_MOTOR_RES_EST_CURRENT (4.0) // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current. After motor ID this value is not used
#define USER_MOTOR_IND_EST_CURRENT (-1.0) // For PMSM motors this value can be set to the negative of the maximum current used for Rs estimation. This value is used during motor ID to estimate Ls_d and Ls_q
#define USER_MOTOR_MAX_CURRENT (5.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 (10.0) // For PMSM motors this value can be set to the maximum commanded speed (Hz, float) during motor ID. This value is used to estimate Ls_d and Ls_q
#define USER_MOTOR_MAX_SPEED_KRPM (6.0)

The board is powered with 42V.

  • Hi,

    Which C2000 device and hardware (eval board, inverter, etc) are you using?

    #define USER_MOTOR_MAX_CURRENT (5.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

    Max current can be higher for your motor based on Keda's site https://www.kedamodel.com/product/a63-s.html

    Best,

    Kevin

  • Hi,

    Thanks Kevin. I am using a F28069M chipset mounted onto a custom board, which uses a DRV8323RS motor driver to control three FDMD85100 mosfets to control the motor.

    About the max current, I tried to increase it up to 15A, but still nothing changes.

    Any other suggestion?
    Best,

    Niccolò

  • Please follow the following steps to verify the hardware board and identify the motor parameters

    1. Set correct parameters based on the hardware board in user.h You can refer to the Chapter 5 Managing Motor Signals of  InstaSPIN-FOC and InstaSPIN-MOTION User's Guide to calculate and define the value of these variables.

    #define USER_IQ_FULL_SCALE_VOLTAGE_V            (xx)

    #define USER_VOLTAGE_FILTER_POLE_Hz                (xx)

    #define USER_ADC_FULL_SCALE_VOLTAGE_V        (xx)

    #define USER_IQ_FULL_SCALE_CURRENT_A            (xx)

    #define USER_ADC_FULL_SCALE_CURRENT_A        (xx)

    2. Follow the instaSPIN lab guide to use lab01b and lab01c to verify your own hardware since you are not using the TI EVM kits and then run the subsequent labs.

    3. Using the lab02b or lab02c and tuning the identification variables parameter below to identify the motor parameters, and use the identified parameters to run the motor if the current and voltage sensing signals are verified and good.

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

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

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

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