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.

DRV8301-69M-KIT: DRV8301-69M-KIT

Part Number: DRV8301-69M-KIT

Hi, I'm currently trying to get a brushless motor spinning and I'm having problems getting to reach it's max RPMs. The motor is rated at ~9krpm and when it reaches around 3.5k rpm it begins making an screeching noise.

I've spent awhile attempting to debug things but haven't been able to come up with a solution yet. 

I've run through labs up to 5b thinking that tuning the speed loop may fix my problem but it hasn't. (I may just not be able to find the correct values)

I've also run this motor perfectly on a hobby esc.

I'm using the park 450 brushless motor.

890kv

12 poles

14 a current rating.

12v being supplied to the board directly from a 3 cell lipo. at ~11v

I was unable to get this motor to be recognized in the instaSpin gui so I moved to the labs. 

Lab 2c gave me the following values for my motor.

#elif (USER_MOTOR == Eflite890KV)
#define USER_MOTOR_TYPE MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (6)
#define USER_MOTOR_Rr (NULL)
#define USER_MOTOR_Rs (0.114033476)
#define USER_MOTOR_Ls_d (1.20941859e-05)
#define USER_MOTOR_Ls_q (1.20941859e-05)
#define USER_MOTOR_RATED_FLUX (0.00578779029)
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.8)
#define USER_MOTOR_IND_EST_CURRENT (-1.8)
#define USER_MOTOR_MAX_CURRENT (14.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (90.0)

Lab3b gave me the following current offsets.

#define I_A_offset (2.285056233)
#define I_B_offset (2.263556838)
#define I_C_offset (2.263364792)

#define V_A_offset (0.4675807357)
#define V_B_offset (0.4651835561)
#define V_C_offset (0.4671952128)

I've also changed a few parameters inside my user.h such as 

#define USER_IQ_FULL_SCALE_VOLTAGE_V      (12.0)

#define USER_IQ_FULL_SCALE_CURRENT_A          (18.00)

Any suggestions?

Attached is my user.h0045.user.h

  • You don't need to change the USER_IQ_FULL_SCALE_VOLTAGE_V and USER_IQ_FULL_SCALE_CURRENT_A which depend on hardware board, not motor. So you don't need to change the I&V offset also.

    You can check the Ui of speed PI regulator to make sure that the maximum current is enough for high speed, and check the Vs output which is near USER_MAX_VS_MAG_PU. If yes, it means that the input voltage is not enough for high speed. If no, tune the Kp&Ki of speed PI regulator for high speed.

    // read Vd and Vq vectors per units
    gMotorVars.Vd = CTRL_getVd_out_pu(ctrlHandle);
    gMotorVars.Vq = CTRL_getVq_out_pu(ctrlHandle);

    // calculate vector Vs in per units
    gMotorVars.Vs = _IQsqrt(_IQmpy(gMotorVars.Vd, gMotorVars.Vd) + _IQmpy(gMotorVars.Vq, gMotorVars.Vq));
  • Hi Yanming thanks for the reply here,

    You're saying that I don't need to change the offsets as directed in lab 3b?

    I really don't understand what you're saying about checking the ui of the pi regulator. This motor isn't able to be Id'd by the instaspin gui so I'm unable to use the UI (I'm assuming you're saying user interface here).


    After more testing I'm able to spin the motor at higher speeds but when I put a load on it it begins to stutter and sounds as if it were missing pulses.

    Any ideas? Let me know if you need any information from me.
  • Are you talking about I don't need to change USER_ADC_FULL_SCALE_CURRENT_A and USER_ADC_FULL_SCALE_VOLTAGE_V?

    I thought these were the hardware dependent parameters.
  • Right, These parameters can't be changed if the hardware was not be modified, which is dependent on hardware.

    Open the lab project and debug it in CSS refer to lab guide, to check the ctrlHandle->pid_spd.Ui and gMotorVars.Vs in expressions window in real time debug. To see whether the maximum current or input voltage is enough for high speed with load.

    What's the "USER_MAX_VS_MAG_PU" in user.h?
  • Right, I never said I changed those parameters. I changed

    #define USER_IQ_FULL_SCALE_VOLTAGE_V (12.0)

    #define USER_IQ_FULL_SCALE_CURRENT_A (18.00)

    Not
    #define USER_ADC_FULL_SCALE_CURRENT_A        (82.5)     

    #define USER_ADC_FULL_SCALE_VOLTAGE_V (66.32)


    My user.h was also attached in my beginning file in my first reply but here it is below.

    #define USER_MAX_VS_MAG_PU (0.5)

  • It's not necessary to change USER_IQ_FULL_SCALE_VOLTAGE_V and USER_IQ_FULL_SCALE_CURRENT_A also if the hardware wasn't changed.

    Does the USER_MOTOR_MAX_CURRENT is enough for running motor with high speed? Did you have any current waveform to show the question?
  • Would you like to update the thread? Could you please let's know if have any further question. We will close this thread if not any question.