Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here


Calculate DC Motor Performance

Calculate DC Motor Performance

Calculate DC Motor Performance

This is a simple spreadsheet to calculate DC motor performance from easily determined values:
Applied Voltage
No-Load Speed
No-Load Current

The spreadsheet is protected without a password.

RE: Calculate DC Motor Performance

Combine your information with this
and you should be able to estimate dynamic response.

Go to the bottom of the CTM web page and you can see other examples of interest.

Spreadsheets are a good start but you should consider using some public domain math package.  Scilab, a public domain version of Matlab, comes to mind.  Scilab is OK for small example programs like what you would see here.


clear;                                  // Clear all variables
Distance=2.5;                           // Distance to move
Time=0.3;                               // Time to move the distance
Vel=1.5*Distance/Time                   // Calculate and print the constant velocity
Acc=4.5*Distance/Time^2                 // Calculate and print the acceleration rate
t0=0;                                   // Initial time
t1=Time/3;                              // Time when acceleration ends and constant velocities begins
t2=Time*2/3;                            // Time when constant velocity ends and deceleration begins
t3=Time;                                // Time when deceleration ends and the actuator is stopped
tn=Time+0.1;                            // Time when plot ends
N=(tn/0.01)+1;                          // Number of data point spaced 0.01 second apart
t01=t1-t0;                              // Acceleration time
t12=t2-t1;                              // Constant velocity time
t23=t3-t2;                              // Deceleration time
x0=0;                                   // Initial position
v0=0;                                   // Initial velocity
a0=Acc;                                 // Initial acceleratoin
x1=x0+v0*t01+0.5*Acc*t01^2;             // Position after accelerating
v1=v0+a0*t01;                           // Velocity after accelerating
a1=0;                                   // Acceleration is 0 at constant velocity
x2=x1+v1*t12;                           // Position after constant velocity and before decelerating
v2=v1;                                  // Velocity after constant velocity and before decelerating
a2=-Acc;                                // Acceleration is negative while decelerating
x3=Distance;                            // Final position
v3=0;                                   // Final velocity

tv=linspace(t0,tn,N);                   // Time vector, N time points spaced 0.01 seconds apart

// Calculate the Motion Profile
for n=1:N;
  t = tv(n);                            // get the time for this period
  if t0<=t & t<t1 then                  // Accelerating
    pos(n) = x0+v0*t+0.5*a0*t^2;
    vel(n) = v0+a0*t;
  elseif t1<=t & t<t2 then              // Constant Velocity
    pos(n) = x1+v1*t;
    vel(n) = v1;
  elseif t2<=t & t<t3 then              // Decelerating
    pos(n)= x2+v2*t+0.5*a2*t^2;
    vel(n)= v2+a2*t;
  elseif t3<=t then                     // Stopped when done

// Plot the Motion Profile
clf();                                  // Clear or reset the current graphics figure
subplot(2,1,1);                         // Position plot
xtitle('Position Profile','Time In Seconds','Position');
// legend("Position");

subplot(2,1,2);                         // Velocity plot
xtitle('Velocity Profile','Time In Seconds','Velocity');
// legend("Velocity");

Just copy, paste and execute.  Don't copy the


lines if they show.
This implements the motion equations I submitted on another post.

RE: Calculate DC Motor Performance

Thanks for the interesting information (Controls Tutorial).

View Clyde Hancock's profile on LinkedIn

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close