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.

DRV 8301 low speed and the motor don't change the direction

Other Parts Discussed in Thread: MOTORWARE, BOOSTXL-DRV8301

Hi,

I am using a DRV8031-HC-EMV Rev D Kit with the F2806M controlCARD and a BLDC-motor (Faulhaber 4490 H 024 BS). The characteristics of the motor are 1 pair of poles, 24V and a maximum speed of 5450 rpm. I work with the example programs MotorWare_1_01_00_12.  

I have different problems:

- The motor reaches only the half maximum speed. If the SPEEDREF is set to 5 krpm in lab2a the motor has 2.24 krpm.

-The second problem is the motor don’t change the direction in lab2b and the next labs. In lab2a if I set the SPEEDREF negative the motor change the direction. But in lab2b the motor stops if the SPEEDREF is negative.

I think it is a problem with the parameters? 

Thanks in advance

Regards,

Christoph

4113.user.h4505.4490_BS_Datasheet.pdf

  • Christoph,

    I have tried a Faulhaber 2232S012BX4S with very limited success....but that's because this motor is only 3.9W @ 24V!! That is only 0.1625A full current, and I was trying to use a 14A BOOSTXL-DRV8301.  You would have to create HW scaled for <0.2A to have a chance for success.  But it also has just a tiny amount of flux (the Torque is only 0.03 Nm) so I think it would be hard to use a flux control algorithm like FAST (or many others) on this for sensorless control.

    But let's look at your Faulhaber motor...it is a bit more reasonable.

    How many poles does it have?
    24V
    5A continuous
    Torque of 1.45 Nm (the flux must be reasonably high to support this torque, so that is good for InstaSPIN-FOC)
    Rs = 0.35 ohm (line-neutral)
    RPM = 5450

    Do you have the # of poles? We can calculate some expected values out.

    1. Make sure you have compiler 6.2.3 or greater, there is a but in the 6.2.0-6.2.2 compilers, and one of the way it manifests itself is no reversal.

    2. Let's look at your paramters.

    a. What do you get for Rs, Ls, and Flux?

    b. please change to this variable in user.h: USER_R_OVER_L_EST_FREQ_Hz   (100.0)

    c. When running 2b, add "controller_obj.RoverL" to your expressions window and report the value after ID starts.

    d. if this value is over 2000.0 you need to use proj_lab2c for higher speed , lower flux motors (though this motor should actually be pretty low electrical frequency).

     

  • Chris

    Thank you for your help

    The numbers of poles are 2.

    1. With the new compiler 6.2.6 drives the motor in both directions and the speed is 4.5 krpm, but not 5.45 krpm. The motor has the speed of 4.5krpm only with the lab3a and higher.

     

    2. Parameters:

    #define USER_MOTOR_Rs (0.3817309)

    #define USER_MOTOR_Ls_d (0.0001135815)

    #define USER_MOTOR_Ls_q (0.0001135815)

    #define USER_MOTOR_RATED_FLUX (0.1621415)

    0121.user.h

  • 1. How fast does it go with a full Iq command using proj_lab05a?

    Note that the default modulation is pure sinewave 1.0. To use more modulation, hence more voltage, hence higher speeds, follow proj_lab10 after you understand the PI speed control tuning in 5b (or use SpinTAC In 5c-5F)

    2. 

    These all seem reasonable...Ls is a bit lower than expected for this motor. did you use proj_lab2c to ID the parameters?

    Haven't looked at your user.h yet, but did you use a flux frequency of ~60 Hz?

  • Hi chris

    1. The speed with a full iq command in lab 5a goes only to 4.5 krpm. With the lab 10b and an over modulation goes the speed higher than 5.45 krpm.

     

    2. The Ls is a little bit higher whit the lab 2c (Ls =0.000164215) and I have a flux frequency of 20Hz.

  • 1. ok, so it is behaving as expected, correct?  Most motor max speeds are specified with full voltage BLDC type modulation. Using sinewave or space vector will alsways apply less voltage on average, so the motor won't spin quite as fast.  In these cases you either live with it, apply field weakening (lab09), and/or apply over modulation (lab10)

    2. use the lower Ls value, it is always better for stability than a value too high