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.
Applied Voltage
Resistance
No-Load Speed
No-Load Current
The spreadsheet is protected without a password.





RE: Calculate DC Motor Performance
htt
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
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
This implements the motion equations I submitted on another post.
RE: Calculate DC Motor Performance
Thanks for the interesting information (Controls Tutorial).