DC Motor IO

DC Motors use magnets and coils which are connected through an armature, which switches the power to the coils in such a way that the energized coil is always just behind the placement of the magnets. Universal Motors are very simular, but use a field coil instead of the perminant magnets.

Advantages: Low cost, high efficiency, higher rotational speed. Relatively low cost H bridge drivers like the MassMind.org H-Bridge DC Motor Driver

Disadvantages: Requires encoder and PID control loop when used for positional motion. Compared to steppers, they provide lower torque at low speeds, often requiring gearing of some sort. Shorter life span (a few thousand hours), electrical noise from brushes.

For example, an AmpFlow M27-150 DC motor^ at 24 volts, 5.3 amps = 128 watts will produce 100 watts of power at nearly 3200 RPM. So 78% efficiency (79% at ~70W). At a cost of about $35 new. A 200 watt DC motor H bridge will cost about $15. But then you need a position encoder, microcontroller, and a PID loop, which you must tune to form a working servo system. Depending on the application, you may also need a gearbox. And the brushes in the motor will burn out in a few thousand hours.

For comparison, a standard Lin Engineering brand 5718X-15P^ stepper motor at 24 volts, 4.2 amps = 100 watts drive, will actually produce about 45 watts of output power; 40 oz-in at 1500 RPM. So only 45% efficient. And it will cost around $60 if you find a good deal, plus another $30 or more for a capable driver. And But it will last for hundreds of thousands of hours and doesn't need a position encoder / PID / servo system if operated in range.

Calculating Output Power

An electric motor (any kind) transforms electrical energy into mechanical (rotational) energy. This rotational energy can be used to produce work (W). W=Fd where F is force and d is distance (in the same direction with respect to the force). For circular motion, we consider the F vector tangent to the circumference where motion occurs, and d is the length of an arc, so d=rO where O is angular displacement and r is the radius of the circumference that contains the arc. We have W=FrO and because a tangent to a circumference and the radius are perpendicular to each other we can say that T=Fr where T is torque. We obtain W=TO Average power is the change in work per unit time, so P=(TO)/t where P is average power and t is the time interval in which the work is delivered. Average angular speed is the change in angular displacement per unit time, so we have that w=O/t where w is angular speed, thus P=Tw In metric units P[Watts]=T[Newton-meter]w[rad/s]

Brushed DC motor (and brushless too) angular speed and torque relationship is approximately linear. This allows us to easily find out the output power of any motor even if we don't have a complete datasheet for it.

Assuming an ideal motor (no mechanical losses), when the speed of the motor is maximum, the torque applied to the output load is zero. The back EMF is equal to our supply voltage, so there's no current through the motor windings. In this case the motor maintains a fixed angular speed because there's no torque to produce an acceleration. When the motor is loaded, i. e. external torque in the opposite direction to the rotation of the motor is applied to it, its speed diminishes, as the back EMF produced by the motor. This allows for some current through the windings of our motor. Current then rises to a sufficient magnitude that produces the same amount of torque than the load, again allowing the motor to maintain a fixed (but not maximum) angular speed, as long as the load stays the same.

The "bigger" the load gets, the slower the motor will turn, to allow for a grater current to produce the necessary torque to balance out the load. This current (and torque) reaches its maximum when the motor is completely stalled. We now know this two things: maximum angular speed-zero torque, maximum torque-zero angular speed.

As said before, the relation between angular speed and torque is linear, and if we know our motor's maximum angular speed and torque we can find out the output speed for a given torque for our motors (or vice-versa). We can graph the speed-torque curve for our motor. Let Wmax be the maximum angular speed and Tmax maximum torque. We assign the X axis to torque, and Y axis to speed. Maximum speed is located at (0, Wmax), and maximum torque is located at (Tmax, 0). Every value for the speed as a function of torque is a point in the line defined by those two points.

speed
|
|\
| \
|__\__ torque

Analytically, angular speed as a function of torque is W(T)=aT+b, where a=Wmax/-Tmax and b=Wmax. So W(T)=Wmax*T/-Tmax + Wmax.

We know power is P=T*W. So P(T)=T*W(T)=Wmax*T^2/-Tmax + Wmax*T. The first derivative of power with respect to torque is P'(T)=2Wmax*T/-Tmax + Wmax. Making P'(T)=0 gives us 2Wmax*T/Tmax = Wmax. Thus 2T=Tmax. We have found the torque value that produces the maximum power, it is half of Tmax. And W(Tmax/2)=Wmax/2. So at half the maximum torque, and half the maximum angular speed our motor gives maximum power!

Good sources for DC Motors:

Hint: Treadmills have nice DC motors. People toss them all the time. Universal Motors can also be used as DC motors.

PIC Microcontoller Input / Output Methods for Perminant Magnet Motors

Proportional Integral Differential PID Motor Control

James Newton of MassMind Says:

Strange idea, improbably useful: Instead of one motor with H-bridge driver, use 2 motors with physically connected shaft, and single transistor PWM drive per motor. Half as many transistors, same number of uC pins. So far, not worth doing. Now... when moving in CW direction, read generated pulses from CCW motor to encode position. And vice versa.

Gino Magarotto Muñoz replies: I think these are called tachogenerators. I can see two issues with this approach for CNC applications. First, the number of pulses that encode position would be very low, depending on the number of poles of the motor, even the cheapest of encoders will provide more resolution. Second, in order to see which way the motors are turning, one would have to sense the polarity of the voltage generated by the motor that is not being powered. One could be inclined to think that the direction of rotation is always known by choosing to power one of the two motors, but the inertia of the system won't allow us to change direction instantly, so when we power the opposite motor to change direction, the system will continue to move in the opposite direction, decelerating.

See also: