0
\$\begingroup\$

I am currently having an issue with precision control of small brushed DC gearmotors (130 size) being used as drive motors on an autonomous robot, but this question can be applied to small, high-speed DC motors in general. On my robot, I am driving the motors with an L293D-based dual H-bridge controller, controlled by a microprocessor. I have found that simply setting both of the microcontroller outputs connected to the H-bridge low will not stop the motor quickly enough for the robot to immediately stop, resulting in imprecise turning, even when running the motors at the lowest speed possible without stalling.

I decided to try an experiment with braking several DC motors (RF300, RF370, and 130 size) with and without a 2.5-ounce flywheel on the output shaft. I connected both of the motors to 5 volt power, allowed them to reach full speed, and then disconnected power and shorted the leads on each motor using a DPDT switch, and compared the time it took for them to stop with and without shorting the leads. It seems that the stopping times for the motors are relatively the same whether or not the leads are shorted. The motors with the flywheel attached took longer to come to a stop, as expected. The same results were obtained by running the motors at 12 volts.

Is it actually possible to brake small motors?

\$\endgroup\$
5
  • 2
    \$\begingroup\$ You can briefly reverse power them. \$\endgroup\$
    – user16324
    Commented Feb 17, 2016 at 0:41
  • \$\begingroup\$ A DC motor can be stopped by shorting the motor terminals. The motor controller your are using does not support this feature. You can either install something that will let you short the terminals together or get another motor controller that supports the feature. \$\endgroup\$
    – vini_i
    Commented Feb 17, 2016 at 0:52
  • \$\begingroup\$ I have performed the experiment above with the L293D controller, and the results are basically the same as shorting the motor terminals with a piece of wire. \$\endgroup\$
    – 3871968
    Commented Feb 17, 2016 at 0:55
  • \$\begingroup\$ You wrote "It seems that the stopping times for the motors are relatively the same whether or not the leads are shorted." Do you really mean stopping times? What were the actual measurements? \$\endgroup\$
    – gbulmer
    Commented Feb 17, 2016 at 1:47
  • 1
    \$\begingroup\$ If these are planned (rather than reactive) moves, consider acceleration (and de-acceleration) planning. Also consider if you can turn by speeding up the outside without requiring the inside to brake so much. \$\endgroup\$ Commented Feb 17, 2016 at 5:13

3 Answers 3

7
\$\begingroup\$

When the motor is spinning it generates a voltage proportional to its rotational speed (almost equal to the supply voltage when running free). Then when you apply a short the current is determined by that voltage and the motor's internal resistance. Torque is proportional to current, so initially you get a braking force equal to the stall torque. However as the motor slows down it produces less voltage, so the current and torque reduces (down to zero when it stops). If the 'short' is not a low resistance compared to the motor's internal resistance then it will have even less braking force.

Any inertia in the drive chain will make it run on past the point where you try to stop. A motor in a gearbox has a lot of inertia due to the high rotational speed of the armature and first gear stages. It will never stop instantly, just like it won't go from stationary to full speed instantly when powered up.

Motors such as the RF300 and RF370 typically have high internal resistance and low torque, relying on the gearbox to provide sufficient output torque. They also have heavy iron-cored armatures which increase inertia. Swapping out the motor for a more powerful coreless type with low internal resistance would improve the braking speed. Unfortunately good coreless motors tend to be expensive, and often require matching (expensive!) gearboxes.

You can stop faster by applying reverse voltage, but be careful because that can cause the transistor bridge to 'shoot-through' if you don't stop and wait for the inductive back-emf to die down before reversing. Also the peak current will be twice as high as normal.

Even with reverse voltage applied it will take some time to stop. To compensate for this you must start braking the motor before the robot gets to the position you want. How much before depends on the amount of inertia in the system, which may vary depending on what the robot is doing.

\$\endgroup\$
2
3
\$\begingroup\$

I can report that braking by shorting the motor DOES reduce stopping distance somewhat. Use a relay to engage power through the powered-closed terminals and short the motor through the powered open terminals - Thus you go from powered to shorted in just the time it takes the relay arm to switch positions - not long!
I had been hoping for a more immediate stop than I got. Different application but same requirement for a very abrupt stop. How is it achieved in some cordless drills? In these it is very effective and abrupt.

\$\endgroup\$
0
\$\begingroup\$

Shorting motor terminals absolutely does slow down the motor, that's how EM brakes work. However, electric braking is inefficient at low speed, that's why all electric vehicles have conventional brakes in addition to electric. Adding a conventional brake could also be an option for you.

If your motors are running at slow speeds (hundreds RPM or less), consider using faster motors with a gearbox. This will increase the efficiency of EM braking by the factor your gearbox provides.

In the end, if you want to have pure position control, you should use stepping motors. If you're using regular motors, you don't directly control the position, only the speed, and your algorithm should take that into account. E.g. you could decide on a trajectory, calculate the required speed as a function of time, and then try to run your motor at that speed, adding correction from position error.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.