Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Maintaining the RPM at varying Loads

  1. Aug 23, 2010 #1

    My setup is a DC motor driven by PWM output. Motor is attached to a wheel in a cart. Can somebody help me to figure out what approach should I take to control the speed of the motor under varying loads?

    i.e, let's say I need acceleration of 2 m/s when the cart is empty. if I want the same acceleration when the cart is having a 1 Kg of load what should I have to control?

    I know it should be duty cycle (speed) and current (torque), but, I have no idea how to calculate these parameters for the required acceleration.

    Please help me.

  2. jcsd
  3. Aug 23, 2010 #2
    You need to have an electronic motor controller. The controller monitors the voltage across and the current through the motor. As you know the speed is nearly proportional to the voltage across the motor. The difference is due to the resistance of the motor which adds to the voltage across the motor due to its IR drop but doesn't add to the speed of the motor.

    You need to determine the value of the resistance and calculate the voltage contribution that resistance makes to the voltage seen across the motor and subtract that amount to get the true emf value. Once you have the emf value, it should be compared to the speed reference to maintain constant speed under varying loads.

    Since the motor resistance is constant, you can use it as the gain of an opamp that amplifies the current measurement. That output is then subtracted from the motor voltage in another opamp. Finally the emf voltage is compared to the reference voltage so that a motor voltage is developed which will provide an emf equal to the reference.
  4. Aug 23, 2010 #3
    If I am not misunderstood, we have to control the current through the motor to increase the torque?

    I couldn't get you about controlling current. I doubt whether I got you wrong anyway.
  5. Aug 23, 2010 #4
    Yep, your current will be a fair representation of torque, while the applied voltage will be a somewhat looser approximation of speed.

    Controllers break into two groups, voltage mode control and current mode control.

    1. Voltage mode control simply sends a PWM to the motor. V * PWM = Vmotor
    2. Current control issues a current command to the motor controller and it attempts to maintain the current near this set-point.

    Voltage control will tend to drive the motor to a given speed, but it will vary from the speed due to cans in supply voltage, IR drop, and field weakening. Also, if you make a feed back loop to hold the speed, Voltage mode control can be finicky because it has two integrators, the current build up in the motor and the loads reaction to the current (torque).

    Current mode control tends to be easier in a control loop, but it's looser in terms of raw control of the motor. Essentially, the motor won't even begin to move until the current reaches a sufficient torque to over come friction. Then, extraneous loads will have an impact.

    For all in all, I prefer current mode. You can make it happen by measuring the current through the motor at all times and switching the controller on and off as the current drops too low or too high (hysteretic control). Or you can simply turn on the motor control and wait until the current reaches a set-point (peak current control).

    Whatever method you use, you'll need a feedback loop between the speed and speed set-point. A chopping wheel on the motor is pretty good for this. Usually, you want as many chops per revolution as you can get.
    Simply run the output of the chopper in a one shot to make a voltage proportional to the speed. Then, filter it with a single order low pass filter. Make sure the filter is fairly high frequency, otherwise, the lag from it will make your system unstable.
  6. Aug 23, 2010 #5
    If you really want the motor speed tight, you can lock it in a PLL loop. See 74HC4046. If you try this, just remember that more chops per revolution is better. I once saw a guy get his loop so tight that the motor was locked to a crystal oscillator within 1/2 revolution.
  7. Aug 24, 2010 #6
    Yes, as the load increases, the torque must increase in order to maintain a constant speed. Since current is proportional to torque, the current through the motor increases proportionally to the torque. The voltage across the motor also increases due to the IR drop of the motor resistance. Therefore you cannot simply compare the motor voltage to the speed reference voltage but must first subtract the IR drop of the motor due to the increased current.

    To clarify, if the voltage of the emf part of the motor voltage is held constant, the current will rise and fall with the load to maintain constant speed. The current is not directly controlled however. (Often there will be a torque limiter circuit that will limit maximum current in order to prevent either the motor or electronics from burning up in case of a stalled motor.)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook