Sizing D.C. Drive Motors

motorWhen building a mobile robot selecting the drive motors is one of the most important decisions you will make.  This article covers some of the basic physics and rules of thumb used to select DC drive motors for mobile robots. Before you can select your motors you’ll need to know some characteristics of the robot you want to build.  How much will it weight?  How fast will it move?  Once you have an idea of what your robot will look like, the equations in this article will give you some guidelines you can use for determining the power required from the robot’s motor(s).  These power requirements will determine 1) how fast the robot can accelerate from rest to full speed, and 2) how fast the robot can travel up an incline (if at all).

Step 1 – Determine the Robot’s Mass

The first step in selecting a motor is to determine the robot’s mass given the robot’s weight.   Although weight and mass are often used interchangeably they have quite different meanings.  Referring to the above diagram, the robot’s weight (w) is represented by the equation “w = mg”, where “m” is the robot’s mass and “g” is the acceleration due to the earth’s gravity.  Thus given the robot’s weight we can divide by the gravitational constant to obtain the robot’s mass.

Since we are using metric units as our system of measurement we need to convert the robot’s weight from English weight units (pounds) to metric mass units (kilograms).  Fortunately the following equation performs this task easily:

m = w * (1 kg / 2.2 lbs)

where “m” is the robot’s mass in kilograms and “w” is the robot’s weight in pounds.  Note that the equation converts units of weight (aka force) into units of mass by assuming the weight is measured relative to earth’s gravity.

Step 2 – Determine the Forces Acting Against the Robot

Given the mass of the robot we can now compute the forces acting on the robot.  Again referring to the diagram above we see that the robot’s weight is a vector quantity with two components – a force holding the robot against the incline (Fn) and a force pulling the robot down the incline (Fg).  Assuming that the wheels have adequate traction against the incline’s surface such that the wheels don’t slip, force Fg is the force the motors must overcome to move the robot up the incline.  Force Fg is calculated by the equation:

Fg = mg * sin(theta)
Fg = m * 9.807 * sin(theta)

where Fg = force due to gravity pulling robot down incline in Newtons, m is the robot’s mass in kilograms and theta is the incline’s angle in degrees.

Force Fw is the force required by the wheels to move the robot up the incline.  When the robot is moving at a constant speed the sum of the two vectors Fg and Fw equals zero resulting in the equation:

(-Fg) + Fw = 0
Fw = Fg

The previous equation represents the “steady state” scenario of the robot moving up the incline at a constant speed.  However the motors must also be powerful enough to overcome the inertia of the robot accelerating from a dead stop to a maximum speed up the incline.  Since inertia is yet another force the wheels must overcome the equation becomes:

Fw = Fg + Fi

Inertia is described by the equation F = ma where “m” represents the mass of the robot and “a” represents the robot’s acceleration.  Let’s substitute what we know about the robot thus far into the previous equation to arrive at the total force required of the wheels:

Fw = Fg + Fi
Fw = (m * 9.807 * sin(theta)) + (ma)
Fw = m * ((9.807 * sin(theta)) + a)

Assuming “a” represents acceleration from a dead-stop to full speed we can replace “a” with the robot’s maximum speed divided by the time required to attain that speed:

Fw = m * ((9.807 * sin(theta)) + (vmax / ta))

where m is the robot’s mass in kilograms, theta is the incline’s angle in degrees, vmax is the robot’s maximum speed in meters per second, and ta is the time in seconds required to reach maximum speed from a dead-stop.

Step 3 – Determine the Torque Required of the Motor

Now that we know how much force is needed to move the robot up the incline we can start thinking about how large the motor must be.  Motors generate force using the formula:

Fm = Tm / rw

where Fm is the force generated by the motor in Newtons, Tm is the motor’s torque rating in Newton-meters, and rw is the wheel’s radius (distance from wheel edge to wheel center) in meters.

In the previous step we calculated the force at the edge of the wheel needed to move the robot up the incline.  By replacing the force of the wheel by the equivalent force produced by the motor’s torque we will discover the amount of torque the motor needs to produce:

Fw = m * ((9.807 * sin(theta)) + (vmax / ta))
Fw = Tm / rw
Tm / rw = m * ((9.807 * sin(theta)) + (vmax / ta))
Tm = m * ((9.807 * sin(theta)) + (vmax / ta)) * rw

where Tm is the torque required of the motor in Newton-meters, m is the robot’s mass in kilograms, rw is the wheel radius (1/2 of wheel diameter) in meters, theta is the incline’s angle in degrees, vmax is the robot’s maximum speed in meters per second, and ta is the time in seconds the robot needs to reach maximum speed from a dead-stop.

Step 4 – Determine the Motor’s Power

The final step to specifying the motor’s size (or more precisely, the motor’s power) is to determine how fast the motor has to rotate to move the robot at the desired speed.  The motor’s rotational speed is specified in units of rotations per minute.

To compute the rotations per minute we need an equation converting distance to wheel rotations.  From basic geometry we know that the distance around a wheel (i.e., the wheel’s circumference – Cw) is found by multiplying the wheel’s radius by the constant 2pi.  Thus the equation for converting maximum speed into maximum wheel rotations per second is:

Rw = vmax / Cw
Rw = vmax / (2pi * rw)
Rw = vmax * (1 / 2<pi) * (1 / rw)
Rw = vmax / rw * (1 / 2pi)

where Rw is the wheel rotations per second, vmax is the robot’s maximum speed in meters per second, and rw is the wheel radius in meters.

At this point we know the torque the motor needs to produce at the required speed.  We now only have to convert the wheel rotations to angular velocity (omega) to compute the power the motor needs to supply.  First we convert the wheel’s motor shaft rotations from rotations per second into radians per second:

omega = Rw * 2pi
omega = (vmax / rw / 2pi) * 2pi = vmax / rw

and then multiply by the motor’s torque to arrive at the power the motor needs to produce:

Pm = Tmomega
Pm = (m * ((9.807 * sin(theta)) + (vmax / ta)) * rw) * (vmax / rw)
Pm = m * ((9.807 * sin(theta)) + (vmax / ta)) * vmax

where Pm is the power required of motor in watts, m = robot’s mass in kilograms, theta is the incline’s angle in degrees, vmax is the robot’s maximum speed in meters per second, and ta is the time in seconds the robot needs to reach maximum speed from a dead-stop.

Summary

Given the equations we calculated above we now have the means for selecting the robot’s DC drive motors based on the robot’s physical characteristics:

Motor Torque:

Tm = m * ((9.807 * sin(theta)) + (vmax / ta)) * rw

where Tm is the motor torque in newton-meters, m = robot’s mass in kilograms, theta is the incline’s angle in degrees, vmax is the robot’s maximum speed in meters per second, ta is the time in seconds the robot needs to reach maximum speed from a dead-stop, and rw is the wheel radius in meters.

Motor Shaft RPM at No Load:

Rm = Rw * (60 secs / 1 min)
Rm = (vmax / rw / 2pi) * 60
Rm = vmax / rw * 9.54

where Rm is the motor shaft revolutions per minute, vmax is the robot’s maximum speed in meters per second, and rw is the wheel radius in meters.

Motor Power:

Pm = m * ((9.807 * sin(theta)) + (vmax / ta)) * vmax

where Pm is the motor power in watts, m is the robot’s mass in kilograms, theta is the incline’s angle in degrees, vmax is the robot’s maximum speed in meters per second, and ta is the time in seconds the robot needs to reach maximum speed from a dead-stop.

Leave a Reply

Your email address will not be published. Required fields are marked *