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.

High acceleration rate using torque control in high speed BLDC



Hi,

Is it possible to achieve acceleration of 420krpmps in high speed BLDC using torque control with LAUNCH-F28027F-BOOST-DRV8301?

I've already run it with the Lab4 and get it running up to 36krpm with torque working nice. But the acceleration is very low for application I have. I need it to accelerate to a certain speed and deaccelerate another speed or maybe stop running but with very high acceleration rate.

I've also tried to apply the solution suggested in the post: InstaSPIN acceleration more than 500krpm/s2. But it does not worked, actually I coud not see any different behavior in Lab10a using it.

Thanks for attention,

Henrique.

  • Hello Henrique,

    There are several factors that go into determining how fast you can accelerate.  The first and obvious one is your load inertia.  The second one is your current limit setting in your code.  Q-axis current is directly proportional to torque on a PMSM machine.  And torque is directly proportional to acceleration.  In fact, acceleration is equal to torque divided by inertia.

    However, a lesser known factor is the difference between your back-EMF voltage and your supply voltage.  As the back-EMF voltage approaches your supply voltage at higher speeds, this means you cannot develop as much voltage drop across the motor's phase inductance and resistance.  And without that voltage drop, there is no way to develop the current you need for acceleration, regardles of what the current limit is set to.

    One solution you might want to investigate is to employ field weakening.  This is done by putting negative current on the d-axis of the machine.  The result is that the motor will run less efficiently, but in many applications, the need for higher speeds and faster acceleration outweigh this concern.  We do have lab examples that show how to use field-weakening.

     

    Regards,

    Dave

     

  • Hello Dave,

    Thank you for your quick answer.

    I'm aware about those variables that, I agree, are very dificult to have all of them.

    But, using the Lab10a I'm able to set acceleration up to 127.999 krpmps that is limited by Q24 and got satisfatory results.

    So, I'd like to know if there is a way to increase this value or obtain a more accentuated acceleration using torque controller.

    Thank you again and best regards,
    Henrique.

  • Dave,

    Is it possible to set all low side Mosfets to HIGH and the upper to LOW? The idea is to implement an active brake to try to stop instantly the motor. As the inertia is not to high I think this should be done with no great problems, am I right?
    There is a exemple on how to do this?
    I've tried do implement this in the Lab04 using a modified function of HAL_writePwmData to write _IQ(0.0) to CmpA, but when it execute the function the Flag_enableSys goes to low turning the motor off and not braking it. If I use the GUI, I'm able to set the flag to high as soon as it goes to 0 and in this case the motor is instantly stoped.
    Please feel free to ask more information if necessary.
    Thank you again for your attention.
    Ps.: (sorry if I wrote something wrong, I'm not completely familiar with motors yet)
  • Hello Henrique,

     

    Sorry for the tardy reply, as I was out of town last week.

     

    Simply turning the bottom FETs on is certainly one way to brake the motor quickly, but it is dangerous unless you are controlling the current levels, as you may blow your FETs depending on how much mechanical energy you need to convert to electrical energy.  Also, the way you are trying to override the control algorithm won't work, because as soon as the ISR fires again, it resets the PWM values, essentially overriding your override.  If you want to control PWMs this way, I suggest that you do it directly in the voltage calculation in the ISR itself, so that the PWMs are not overwritten each ISR.

     

    Have you tried controlled current braking?  This can be done by setting your q-axis current reference to the highest negative value your inverter can handle without damaging it.  For example, if you set your q-axis current level to -10 amps, that means that the motor will do a controlled brake with three-phase current waveforms which have a 10 amp peak.  This will result in maximum braking torque per amp where the mechanical energy is dissipated in the motor windings, in the FET resistance, and also stored on the buss capacitor plates in the form of 1/2 CV^2.  However, be careful.  if you have too much motor/load  inertia, you can pump your buss capacitor voltage up too high, and blow the capacitor.

     

    Best Regards,

    Dave