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 - Motor clatters at higher currents

Other Parts Discussed in Thread: DRV8301

Hello,

I'm using a customized version of MW lab04 with the DRV8301-69M-KIT. 

I would like to run a maximum current of 60-70A for a few seconds. (continuous current: about 30A)

Unfortionately, the motor starts to clatter at about 37 - 38 A and if I raise the current even higher, the clattering increases until the motor doesn't really move anymore. One Board already exploded doing this.

Furthermore, I noticed, that using different values for Ls_d and Ls_q (simulated values) raises the highest possible current to about 53A, while the motor has problems to start. So, these values work better for higher currents instead of low currents. 

I use the internal current sensors.

Do you have any idea why the clattering occurs? What parameters can I change to be able to drive with low currents as well as high currents?

Thank you!

  • This board only support 40A peak current and 41.5A peak current measurements. 60-70A is not permitted without changing the hardware.

    Oh, I see you updated to the internal gain sensors which support 60A. Did you also update the SW to use these pins and the USER settings in user.h??

    The clattering could be several things, but most likely related to poor current sense feedback at high speeds. This is due primarily to non-ideal current sense layout of this kit, but can also be exacerbated by low inductance motors and poor speed or current loop tuning.

    Inductance will have no effect on start-up capability for the FAST observer. It will effect the current loop gain calculations though.
  • Thanks for your reply.

    I configured the SOCs in hal.c and also the full scale current values + num current sensors (2) in user.h.
    This works fine for lower currents.

    Surprisingly, the clattering happens at low speed as well as at higher speed. Furthermore, the motor has a an inductance of about 0.8mH.
    So, probably it's the current loop tuning? Using an oscilloscope, I noticed, that at 36A and above, the upper half-wave becomes kind of triangular. The lower half-wave looks good.
    You said that the inductance would affect the current loop gain calculations. So, this would justify why 53A worked well with a different inductance.
    I would like to tune the current loop. Do you have any suggestions?
  • 1. Make sure the gain of DRV8301 is set to 10, and set USER_ADC_FULL_SCALE_CURRENT_A to 165.0.
    2. Make sure the current offset is correct.
    3. Lq will decrease per current increase, so it's better to tune the current loop, even estimator parameters.
  • Thanks for your reply.
    1. How do I set the gain of DRV8301 to 10?
    2. The current offsets are defined like this:
    #define I_A_offset (0.9969797521)
    #define I_B_offset (1.001363647)
    #define I_C_offset (0.995615234)
    I haven't tuned these parameters by myself. How do I know how to change them ?
  • I recognized, that changing USER_VOLTAGE_FILTER_POLE_Hz from 335.648 Hz (white signal) to 210 Hz (yellow signal) results in a way better sinusoidal current (@Iq=30A): picload.org/.../tek00001.png

    Using 210Hz, I raised the current up to 48A and obtained the following measurements: picload.org/.../tek00002.png
    As you can see, the upper halfwave has a higher amplitude than the lower halfwave. Furthermore, I recognized that the clattering happens more often at lower rpm. At 200rpm and above, it doesn't happen as long as I don't raise the current over 48A.
    I've seen, that starting from 36A and above, the current collapses for a cycle (a noisy low current appears), but afterwards, there's a sinusoidal current again. What could be the cause for this?

    Right now, I can reach 48A at higher speeds. My final goal is to have a maximum current of 50A without clattering (even at lower rpm).
  • 1. How do I set the gain of DRV8301 to 10?
    A: The defaulu gain of DRV8301 is 10.

    2. The current offsets are defined like this:
    #define I_A_offset (0.9969797521)
    #define I_B_offset (1.001363647)
    #define I_C_offset (0.995615234)
    I haven't tuned these parameters by myself. How do I know how to change them ?
    A: The offset is based on your hardware kit, you can see the hal.adcBias.I or gMotorVars.I_bias in watch window, and input these value into use.h.

    Please check your software and hardware design to ensure the current is not saturated overflow.
    1. USER_ADC_FULL_SCALE_CURRENT_A in user.h is enough to output 50A current and match your kit.
    2. USER_MOTOR_MAX_CURRENT in user.h is enough to output 50A current.