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.

Spinning a motor with large R/L

Other Parts Discussed in Thread: DRV8312, TMDSCNCD28335

Hello,

I am using the DRV8312-92M-KIT and trying to spin a somewhat special motor with it. I know the motor parameters from former investigations. Nevertheless I've tried to work my way through the labs, and as I know this is a low inductance motor (about 44µH), I've tried to ID it with lab02c. I have not been able to get any good results (even with added inductance in the lines which bring the inductance up to 100µH). So because I have all the motor parameters, I've skiped the ID process and proceeded to lab03a. Here is what my motor definiton in the user.h looks like:

#elif (USER_MOTOR == My_Motor)
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS       (1)
#define USER_MOTOR_Rr                   (NULL)
#define USER_MOTOR_Rs                   (6.2)
#define USER_MOTOR_Ls_d                 (0.0001)
#define USER_MOTOR_Ls_q                 (0.0001)
#define USER_MOTOR_RATED_FLUX           (0.0008)
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
#define USER_MOTOR_RES_EST_CURRENT      (0.2)
#define USER_MOTOR_IND_EST_CURRENT      (-0.2)
#define USER_MOTOR_MAX_CURRENT          (1.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (40.0)

Now the user.c checks the following: USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_q + 1e-9)) This means, my USER_CTRL_FREQ_Hz has to be somewhere >62000. If I set the ctrl frequency this high, the program seems to have timing issues and the CTRL does not even get to the CTRL_State_OnLine state.

Any advice?


Thanks,

Chris

  • Chris,

    I don't think our FAST algorithm (InstaSPIN-FOC) will work on this motor, the flux is just ridiculously too low for a flux based observer. You have to spin at 1 kHz just to get 0.8 volts of Bemf.  I've never even seen a motor constructed like this...what is the purpose? This motor produces hardly any torque (no flux, little current, few poles).  So what good does it provide?

     

     

  • I think there is something off with the flux value. In order to determine the flux value, the motor was spun by an external driving motor at a constant speed. I then measured the generated line to line Voltage. With this setup the Flux should be Flux=Vpp / w_el  with Vpp: peak to peak voltage and w_el: 2*pi*f. So if I spin it at 1kHz it should produce about 5V of BEMF, but this is in contrast to what you said above. So how is the flux definition you use?

    The motor is one for a miniatur axial pump with about 4mm outer diameter. It is mainly this small geometry which has driven the design process.

    Thanks,
    Chris

  • Chris,

    What bus voltage are you using?

    The minimum flux we can detect is set by:

    USER_IQ_FULL_SCALE_VOLTAGE_V   /     effective_est_freq_hz    / 0.7

    To get less than 0.005 is not an issue...there are hobby motors that have 0.0015 V/Hz

    You can use 24V for IQ_V and 15 kHz estimator and have plenty of headroom.   Use the spreadsheet in "setting your user.h" post that is stickied to the top.

    .

  • I am using 20V bus voltage. I've used the spreadsheet to set up my user.h

    Nevertheless my initial problem still occurs. This expression in user.c "USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_q + 1e-9))" means that I have to choose a USER_CTRL_FREQ_Hz of at least 62kHz with the 6.2Ohm Rs and 0.1mH Ls.

    Is there a configuration where I can set the USER_CTRL_FREQ_Hz this high and won't get any timing problems?


    Thanks

  • Chris,

    No, you can't run the controller at 62 kHz, not enough mips.

    This motor is designed poorly. There is absolutely no reason to have an R/ L this high. You can accomplish speed or torque production much more efficiently with a better design. 

    Does this motor run today with another controller? Is it just open loop? Does it use rotor sensors?   What is maximum speed it can achieve?

  • Is it possible to upgrade the DRV8312 Kit with an more performant MCU?

    The motor runs with a controller today, it's a custom FOC without sensor. It can achieve about 52k RPM.

  • Chris,

    You can use a 150 MHz TMDSCNCD28335 with the kit (+ need external emulator) but there is no application software. You would be working form the ground up.  I don't have any confidence that we could get any of our other senorless observers to work for this either.    It seems like there was quite a bit of work put into this "custom" controller you have today.