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.

How to control rpm in current control mode

I have a current controller working quite good using lab4.  The low load rpm is 1800.  I wish the rpms were closer to 5000, which is the rating of the motor.  How can the rpm be adjusted up without changing the current set point?  This is a 12 pole bldc motor.

Thank you!

  • if you increase the IqRef_A value do you reach the rated speed?

    Speed is achieved by a torque/current command vs. the load on the motor.

    Assuming your motor parameters are correct, you must increase your IqRef_A command to increase the speed.  Note that IqRef_A is not a continuous current being used by the motor, it is the maximum peak current. the load on the motor will determine how much current is actually being consumed.

     

  • Yes, i fully understand your point Chris.  I can't really increase the Iq as the motors main purpose is to provide a specific torque to a pump.  We have it tuned precisely.  

    It is under the start up condition, which may last several minutes, that I would like to see higher rpms until thevpump pressure builds up.  Am I making sense?

  • Tom,
    The only way to increase the speed is to increase the Iq current command. If the pressure/load is initially low, the IqRef_A that will give you the proper torque once the pressure/load is higher should cause a higher speed at low pressure.

    I don't think I'm following you exactly...
  • I dont seem to be getting much higher speed at low torque.  It must have something to do with this motor, as a different motor ran real high rpms with no load or low load.  this one acts different at low load and onlygoes up to 1800 rpm under light load.  I will do some tweaking to see what I can come up with.  Other than this one problem, it works great!

  • Just to give this a deeper look, please share your user.h. Also, please run it in speed mode, to see if there is a problem with torque mode. For example, in speed mode, does it go beyond 1800? If not, there is something else that needs to be looked at.

    -Jorge

  • Yes,  I tried it in speed mode, and I cannot get the rpms to go above 1800.  It just wont go any higher for some reason.  I am having trouble attaching my user.h.  Will get back to you soon. Thank you!

  • Here is my user.h for your examination.  Thank you!user.rtf

  • according to your user.h this is custom hardware at 90V and 8A, correct?
    do you have a TI kit you can try with your motor to try to see if you can duplicate the problem?

    in your user.h the following should be addressed
    #define USER_PWM_FREQ_kHz (20.0) // ok
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3) // I would use (2)
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (2) // I would use (1)
    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (20) // I would use (10)
    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (20) // I would use (10)


    but I think the main problem is your motor must not be rated for 5 KRPM.
    with 12 poles, 1800 RPM = 180 Hz
    your flux is USER_MOTOR_RATED_FLUX (0.633)

    that means at 180 Hz the Bemf is 180 * 0.633 = 114V, which appears to be higher than your bus voltage.

    This motor likely is built to run at higher voltage than you are running.
    5 KRPM = 500 Hz which would result in 316.5V Bemf

    you would need to run this motor at higher voltage than your design.
  • Thanks for the help Chris!  I will make your recommemed updates and run more tests to see what happens.