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.

when my motor run high speed, anything wrong was happen

hi,chirs:

     I test a motor, the  id identification is ok. when driver it with no load, run in low speed is ok, but run in high speed anything wrong cause large current.

     use 28027F, 18k pwm frequency, 9k mainISR

#define USER_NUM_PWM_TICKS_PER_ISR_TICK (2)

#define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1) 

#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) 

#define USER_NUM_CTRL_TICKS_PER_EST_TICK (1) 

#define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (8) 

#define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (8) 

     motor: BLDC , 16 poles, 3000 max RPM 

     motor id:

     

    I doubt maybe the mainISR speed not enough,or the Estimate angle has error,Can you hlep me solve it, thank you.

  • Your high speed is only 400 Hz, not very high.

    Your 9khz rates are fine (I would change the speed and trajectory ticks to (9)) 

    Your parameters look incorrect. Rs / Ls = 48. It should be more like 800 (as a guess, 2x the max freq).  Your Ls being off this much explains why you lose synchronization at higher speed. 

    When you start ID what is the variable for ctrl.RoverL after State Rs? What about ctrl.Rhf and Lhf?

    Post your user.h

  • thank you for reply,I find the problem of it, I change the identification time, so the motor id identify is wrong ,when i modify the time parameter, the id is looks ok . so how can i judge whether the motor id identification is ok.

    new id:

  • Your Rs / Ls is now 388, which is more reasonable for this motor.

    But your Isc = Flux / 2pi / Ls = 497A

    This is pretty high for what I suspect is maybe a 40A motor, right?

    I do see these kind of parameters in very low cost motors though. The designer reduces Rs to save on copper and perhaps lower I^2R losses.  They also put the smallest amount of magnetic material possible to save on cost.  Because of the low R they then choose a very low L to get high enough frequency capability (often over designed on high speed motors, but yours is reasonable).  This low L then causes a very high Isc, which will lead to large torque ripple and current that is more difficult to control.

    This motor would be better to control (and the inverter would take less abuse) if the Ls was 50uH+, which means ~doubling the Rs as well.

    But you should be able to run it ok as is.

  • yes,this motor have high Isc, we run it at near 100A.

    I want  controller can identify id automatic,but motor id may identified errors, it may cause large current ,and damage the MOSFET,  i must  make sure my board will not be damaged, so is there any way to avoid this situation.

  • for a 100A system I would recommend using in-phase current sensors (like LEM) instead of shunts. this will make the current easier to read and you won't get the high current losses through a very expensive 100A+ capable shunt.

  • OK,maybe we will try in next version . 

    about Hardware:

    In Three-phase ,voltage and current sampling error caused by the precision resistor, so how much sample error is ok .