Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations The Obturator on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Calculate DC Motor Performance

Status
Not open for further replies.

Clyde38

Electrical
Oct 31, 2003
533
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.
 
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.

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.
 
PNachtwey,
Thanks for the interesting information (Controls Tutorial).

[link ]
btn_liprofile_blue_80x15.gif" width="80" height="15" border="0" alt="View Clyde Hancock's profile on LinkedIn
[/url]
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor