INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

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!

*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.

Jobs

Calculate DC Motor Performance

Calculate DC Motor Performance

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

The spreadsheet is protected without a password.
 

RE: Calculate DC Motor Performance

Combine your information with this
http://www.engin.umich.edu/group/ctm/examples/motor2/motor.html
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.

CODE

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
    t=t-t0;
    pos(n) = x0+v0*t+0.5*a0*t^2;
    vel(n) = v0+a0*t;
  elseif t1<=t & t<t2 then              // Constant Velocity
    t=t-t1;
    pos(n) = x1+v1*t;
    vel(n) = v1;
  elseif t2<=t & t<t3 then              // Decelerating
    t=t-t2;   
    pos(n)= x2+v2*t+0.5*a2*t^2;
    vel(n)= v2+a2*t;
  elseif t3<=t then                     // Stopped when done
    t=t-t3;
    pos(n)=x3;
    vel(n)=0;
  end
end

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

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

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

CODE

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

RE: Calculate DC Motor Performance

(OP)
PNachtwey,
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!


Resources


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