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.

  • TI Thinks Resolved

DRV8301-69M-KIT: Problem InstaSPIN FOC GUI

Intellectual 330 points

Replies: 4

Views: 55

Part Number: DRV8301-69M-KIT

I am using motorware and Code Composer Studio to work on building a driver for our BLDC motor. Part of that process is selecting the motor to use and currently we have a selection of candidates. I am using the GUI to identify the motor and then working with the Lab samples to try to get our code designed. Two of the motors have 7 pole sets and they are from two separate manufacturers. I am able to identify those motors in the GUI and then test them to 6000 RPM which is our target. They run fine with a little enhanced noise around 1500 RPMs but ok.

However the two other motors we have are from NeuMotor and have 11 pole sets. They are a bit heavier duty than the other two. I can identify them most of the time although it does fail more than just rarely. When they fail most of the time they will spin the motors but then a terrible noise comes out of the motor like a gear is being ground up. It does not seem to damage the motor but often it will still tell me that identifying the motor was successful. In those cases when you try to run the motor it will turn extremely slowly - if at all - and clearly is not correct. I can always get it to do the identification process after multiple tries. When it does identify then I can run it at many speeds. When I ramp up through about 1500 RPM it is extremely noisy - sounds like something in the motor is being chewed up. Once above about 2000-2500 RPMs the motor sounds much better and runs smoothly. When the RPM gets to about 5000 and above it starts sounding very rough and anything above ~5200 RPM goes into serious oscillation and gets very noisy. When it happened with the first NeuMotor I thought it was the motor having some bad bearings - although it is new - but the second motor is also brand new and exhibits precisely the same behavior. 

I have used the labs in motorware to try to run the identify and so far the labs always identify the motor but all the other issues are the same. 

Is there some limitation to the number of pole sets that can be present in the motor? I used the InstaSPIN MOTION GUI with the same results. Can someone guide me through what is the issue and how I can fix this?

  • Recommend that you use lab02c with CCS to identify the motor if it's a low inductance motor, and please follow the GUI guide and the instaSPIN lab guide to use the UNIVERSAL GUI. The GUI you used is mostly used for the TI EVM board with the bundled motor.

  • In reply to Yanming Luo:

    I have done this and it does indeed seem to be a low inductance motor and per these steps I am getting better results. However it is still far from acceptable. I use the proj_lab02 and set the USER_PWM_FREQ_Khz to 45 and then 60 (basically same results for these two). I am able to run the full range of startup to 6000 RPM which is our target. When it identifies the motor and is running about 200 RPM is sounds ok but a bit noisy. When I set the speed to about 1000 RPM it outputs a screeching sound but overall is better than I had before. I can step up to 6000 RPM and it runs and using a tachometer it is showing to be very close to what I have it set. It sounds like there is still some grinding in the motor. It is not a comforting sound.

    I also read through the tech specs and set some parameters that seemed appropriate. I have an 11 pole pair motor and we would like a top speed of 7500 RPM. We are running with 37 volt power supply.

    Based on that I set:

    #define USER_IQ_FULL_SCALE_FREQ_Hz        (1500.0)

    #define USER_IQ_FULL_SCALE_VOLTAGE_V      (37.0)

    #define USER_ADC_FULL_SCALE_VOLTAGE_V (66.32) // 66.32 drv8301_revd voltage scaling

    #define USER_VOLTAGE_SF ((float_t)((USER_ADC_FULL_SCALE_VOLTAGE_V)/(USER_IQ_FULL_SCALE_VOLTAGE_V)))

    #define USER_IQ_FULL_SCALE_CURRENT_A (41.25) // 41.25 Example for drv8301_revd typical usage

    #define USER_ADC_FULL_SCALE_CURRENT_A (82.5)

    #define USER_PWM_FREQ_kHz                (60.0)

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1) // 2 Example, controller clock rate (CTRL) runs at PWM / 2; ex 30 KHz PWM, 15 KHz control

    #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) // 1 Typical, Forward FOC current controller (Iq/Id/IPARK/SVPWM) runs at same rate as CTRL.

    #define USER_NUM_CTRL_TICKS_PER_EST_TICK (1) // 1 Typical, FAST estimator runs at same rate as CTRL;

    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15) // 15 Typical to match PWM, ex: 15KHz PWM, controller, and current loop, 1KHz speed loop

    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (15)

    #define USER_R_OVER_L_EST_FREQ_Hz (300)               // 300 Default

    #define USER_VOLTAGE_FILTER_POLE_Hz  (395.648)

    #elif (USER_MOTOR == NeuMotor289)
    #define USER_MOTOR_TYPE MOTOR_Type_Pm
    #define USER_MOTOR_NUM_POLE_PAIRS (11)
    #define USER_MOTOR_Rr (NULL)
    #define USER_MOTOR_Rs (0.0310872942)
    #define USER_MOTOR_Ls_d (1.82314763e-05)
    #define USER_MOTOR_Ls_q (1.82314763e-05)
    #define USER_MOTOR_RATED_FLUX (0.0146772414)
    #define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
    #define USER_MOTOR_RES_EST_CURRENT (5.0)
    #define USER_MOTOR_IND_EST_CURRENT (-2.0)
    #define USER_MOTOR_MAX_CURRENT (25.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (40.0)

    I read the guide and it said the low inductance motors could require up to 85 Khz PWM. I tried that and it got worse. I thought maybe I was over the speed for InstaSPIN to work and read the section on decimation. So I set the 

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

    I have made progress but I am not finding a key to how to work these parameters. Is there some aspect that I am missing? Please help.

  • In reply to Terry Harrison:

    Hi, I realize you are busy but can you give me at least some indication of what may be the issue I am facing? We are really stuck trying to move forward with this issue and none of the tuning seems to be helping. Looking at the inductance it does not seem to be that far out of line with the other motors we are working with but the one notable thing here is that this motor has 11 pole pairs. Could that be doing something to us?

  • In reply to Terry Harrison:

    Please use the lab02c with CCS for the low inductance motor. A more detailed description could be found in the lab guide.

    The 45kHz PWM frequency with decimation factor 3 should be ok for your motor.

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.