Design of an Air Compressor 901508820 AME40423 Mechanisms and Machines December 10, 2010 Abstract The purpose of this study was to design an air compressor with a motor to deliver 3 cfm air. The vector loop equation for a crank-slider was utilized to determine the basic kinematic coefficients. A model of the gas pressure was developed and the required operating speed was calculated to be 1,256 rpm. A plot of the pressure related to the angular velocity is provided. The inverse dynamics problem to determine the torque driving the crank as a function of the crank angle is solved. An expression for the driving torque using the power equation is given. A plot of the driving torque related to the angular velocity is provided. The 3 HP VL3609T motor is selected and performance characteristics provided. A torque speed curve for the motor is calculated for the motor characteristics. Pulleys are factored in to reduce the motor speed. The forward dynamics problem is solved to develop a dynamic simulation. The first order Euler method is utilized for the time integration. A plot of the angular velocity related to time is provided and the Coefficient of Fluctuation is calculated to be 14.04%. A flywheel with inertia of 0.0236 slug-ft2 was added to the system to decrease the Coefficient of Fluctuation to 3%. A plot of the angular velocity related to time for the system with the flywheel is provided. The flywheel radius was calculated to be 0.33 ft. The average motor speed was determined to be 1,198 rpm. The actual pressure delivered by the air compressor was calculated to be 2.88 cfm. The main MATLAB code used for all of the analysis is provided.

1 Engineering Analysis 1.1 Newtonâ€™s Method The air compressor was modeled as a crank-slider mechanism. Figure 1 shows the design of the air compressor.

Figure 1: Single Stage Air Compressor The vector loop of the crank-slider with a coordinate system is illustrated in Figure 2.

Figure 2: Crank-Slider Vector Loop in Air Compressor The vector loop equations are, ( )

( )

( )

( )

( ) ( )

In Appendix A, the position problem is solved and the basic first and second order kinematic coefficients are found. The main MATLAB program is provided in Appendix A as well.

1.2 Gas Pressure & Operating Speed

A thermodynamic model of the gas pressure was developed and the required operating speed was determined from this model. In the model it was assumed to have adiabatic and isentropic compression and expansion of the air trapped in the cylinder. This means that the cylinder is a closed system and the mass of the air is constant. The required speed of 1,256 rpm was determined using the volume of high pressure air delivered with each revolution of the crank. Appendix B discusses the development of the thermodynamic model in more detail and presents a plot of the pressure in relation to the crank angle. The MATLAB code for the pressure relation is also presented in Appendix B.

1.3 Torque The inverse dynamics problem was solved to determine the driving torque on the crank as a function of the crank angle. An expression for the driving torque on the crank was developed using the power equation. Friction and potential energy were neglected in the power equation since the values are very small. Appendix C has provides more detail into the development of the power equations and solving the inverse dynamics problem. A plot of the driving torque related to the crank angle is also shown in Figure C-1

1.4 Motor Selection The 3 HP motor that was selected to drive the crank is the VL3609T. This motor operates at a speed of 1747 rpm under a load of 100 %. Some important characteristics of the motor are the break-down torque, 23 lbf-ft, the pull-up torque, 18 lbf-ft, and the locked-roter torque, 29 lbf-ft. Appendix D is a full list of motor characteristics for the VL3609T model. The specifications were used to develop a piecewise linear approximation of the motor torque shown in Figure 3.

This figure is just a fallback to the polynomial speed curve for the C type motor shown in Appendix E. Pulleys to reduce the motor speed to the desired crank speed were also chosen and the specifications are shown in Appendix F.

1.5 Forward Dynamics Problem The forward dynamics problem was solved in order to develop a dynamic simulation of the air compressor. The first and second order kinematic coefficients of the mass centers were calculated and used to compute the A and B for each moving member. Appendix G details the analysis, provides the MATLAB code to calculate the torque delivered by the motor, and the MATLAB code to determine the kinematic coefficients for the center of masses and the values for âˆ‘

and âˆ‘ . The power equation was rearranged to solve for the angular acceleration,

∑ ̈

̇

∑

( )

With the angular acceleration, the position and angular velocity were able to be iterated for each time step using the first order Euler Method. The new position and angular velocity were found using, ̇

̇

̈ (

)

( )

̇ (

)

( )

A time step of 1*10-3 was used for each increment of time. A plot of ̈ in relation to time is shown in Figure 4.

Figure 4: Angular Velocity vs. Time The speed variation at steady state is quantified by the Coefficient of Fluctuation,

, defined as,

( ) The speed fluctuation for the dynamic simulation was determined to be 14.04 %.

1.6 Flywheel To reduce the speed fluctuation a flywheel was used. The flywheel is used to add inertia to the system and increase the resistance to the changing of motion. The goal of the flywheel was to reduce the Coefficient of Fluctuation to 3%. This was achieved by selecting a flywheel which produced 0.0236 slug-ft2 of additional inertia. The radius of the flywheel was found using,

âˆš The thickness,

, was 0.083 ft. and density,

( ) , of 15.199 slug/ft3. The radius was

determined to be 0.33 ft. A plot of the angular acceleration, Ěˆ , in relation to time for the system with the flywheel is shown in Figure 5.

Figure 5: Angular Velocity vs. Time with Flywheel

2 Results The motor selected to drive the air compressor was the 3 HP VL3609T motor. In order to decrease the Coefficient of Fluctuation to 3% a flywheel with a radius of 0.33 ft. and thickness of 0.083 ft. was determined. The average motor speed with the flywheel attached is 1,198 rpm. The actual pressure of air delivered by the compressor is 2.88 cfm.

Appendix A: Newton’s Method Newton’s Method was used with the following, ̅ ̅

[ ]

( ) ( )

[ [

( ) ( ) ( ) ( )

]

]

(

)

(

)

(

)

The first order kinematic coefficients were found by differentiating the position equations by giving, ( ) ( ) Differentiation with respect to

( ) ( )

(

)

again solved for the second order kinematic coefficients given

by, ( ) ( )

( ) ( )

( ) ( )

(

)

Using Cramer’s rule the first and second order kinematic coefficients, with a tolerance of 0.01, were solved for each value of

from 0o to 360o. Each of these was graphed in relation to

are shown in Figures A-1 through A-6

and

Figure A-1: Plot of

vs.

Figure A-2: Plot of

vs.

Figure A-3: Plot of

vs.

Figure A-4: Plot of

vs.

Figure A-5: Plot of

vs.

Figure A-6: Plot of

vs.

MATLAB Code to run main program and compute Newtonâ€™s Method, %Charles Hunter %11/17/2010 %edit 12/09/2010 %Mechanisms and Machines Programming Problem %Main Program [calls NewtonMethodSliderTest.m] close all clear all clc dr = pi/180; %input of initial theta 3 and Link 4 guesses t3deg = input('Enter Guess Value of Theta 3 in Degrees:'); r = input('Enter Guess Value of Link 4 in Inches:'); r4 = r/12; %ft; tho3 = t3deg*dr; %Link Lengths r2 = 1.5/12; %ft; r3 = 4/12; %ft; C = ((7/64)/12); Dp = 3.2/12; Ap = pi*Dp^2/4;

%Call Function [f4, h32, f42, th2, th3, r4L, phi, pressureplot, h3, maxi, T2, Value,timecount,tho2dotcount, tho2count, tho2ddotcount, Cf, torque] = NewtonMethodSliderTest(r2, r3, tho3, r4, Ap); %Plots figure; plot(tho2dotcount,torque) tho2count; tho2ddotcount; xlabel('Motor Speed, \omega_m [rpm]') ylabel('Motor Torque, T_m [ft-lbf]') title('Torque-Speed Curve for VL3609T') figure; plot(timecount,tho2dotcount,'-') title('\theta_2 vs. Time') xlabel('Time [sec]') ylabel('\theta_2 [rpm]') %V = (r2+r3-r4L(maxi))*Ap; %CrankSpeed = 3/V %Power = ((Value/60*CrankSpeed)/33000) figure; plot(phi,T2) title('\Phi vs. Torque') xlabel('\phi [degrees]') ylabel('T_2 [ft*lbf]')

%Plot Results figure; plot(th2,th3,'r*') %Label figures title('\theta_2 Vs. \theta_3') xlabel('\theta_2 [degrees]') ylabel('\theta 3 [degrees]') figure; plot(th2,r4L,'bo') title('\theta_2 Vs. r_4') xlabel('\theta_2 [degrees]') ylabel('r_4 [feet]') figure; plot(phi,pressureplot) xlabel('\phi [degrees]') ylabel('Gage Pressure [lb/ft^2]') title('\Phi Vs. Gage Pressure') figure; plot(th2,h3,'r*') title('\theta_2 Vs. h_3') xlabel('\theta_2 [degrees]') ylabel('h_3 [dimensionless]') figure; plot(th2,f4,'bo') title('\theta_2 Vs. f_4') xlabel('\theta_2 [degrees]') ylabel('f_4 [inches]') figure; plot(th2,h32,'r*') title('\theta_2 Vs. h_3''') xlabel('\theta_2 [degrees]') ylabel('h_3'' [dimensionless]') figure; plot(th2,f42,'bo') title('\theta_2 Vs. f_4''') xlabel('\theta_2 [degrees]') ylabel('f_4'' [inches]')

function [f4, h32, f42, th2, th3, r4L,phi, pressureplot, h3, maxi, T2, Value,timecount,tho2dotcount, tho2count, tho2ddotcount, Cf, torque] = NewtonMethodSliderTest(r2, r3, tho3, r4, Ap) %Charles Hunter %10/23/10 %edit 12/09/10 %Mechanisms & Machines %Programming Problem - Newton's Method for Crank-Slider. pexhaust = 134.7*144; %lbf/ft^2

pintake = 14.7*144; %lbf/ft^2 k = 1.4; clearance = (7/64)/12; %ft L = 0; Value = 0; hmotor = 1.4; tho2 = 0; tho2d = 0; tho2dot = 0; tho2ddot = 0; t = 0; deltat = 0.001; rpmax = 1500; rpmin = 1499; %Conversion rd = 180/pi; xcoor = 1; ycoor = 1; i = 1; %loop theta 2 360 degrees since crank input for t = 0:deltat:.5 while xcoor > 0.01 || ycoor > 0.01 %vector loop equations in matrix form f1 = r2*cos(tho2)+r3*cos(tho3)-r4; f2 = r2*sin(tho2)+r3*sin(tho3); f = [f1; f2]; %1st order KC equations kc1 = r2*sin(tho2); kc2 = -r2*cos(tho2); kc = [kc1; kc2];

% A matrix A = [-r3*sin(tho3), -1;r3*cos(tho3), 0];

%initial theta guesses put into matrix x0 = [tho3; r4]; %solves for new value of theta 3 and r4 x = (-inv(A)*f + x0); B = (-inv(A)*kc); %Computes limitation xcoor = abs(x(1,1)-tho3); ycoor = abs(x(2,1)-r4); %sets new theta 3 and r4 guesses tho3 = x(1,1); r4 = x(2,1); %Sets value for Kinematic Coefficients

h3i = B(1,1); f4i = B(2,1); %Calculates 2nd Order Kinematic Coefficients kc21 = r2*cos(tho2)+r3*cos(tho3)*h3i^2; kc22 = -r2*sin(tho2)+r3*sin(tho3)*h3i^2; kcsecond = [kc21;kc22]; C = (-inv(A)*kcsecond); end %Variables put into matrix for plotting purposes th2(i) = tho2*180/pi; th3(i) = x(1,1)*180/pi; r4L(i) = abs(x(2,1)); h3(i) = B(1,1)*rd; f4(i) = B(2,1); h32(i) = C(1,1)*rd; f42(i) = C(2,1);

st2(i)=sin(tho2); if st2(i) >= 0.00 pabs=pintake*((2*r2+clearance)/(r2+r3-r4+clearance))^(k); if pabs >= pexhaust pabs=pexhaust; end end if st2(i) < 0 pabs=pexhaust*(clearance/(r2+r3-r4+clearance))^(k); if pabs <= pintake pabs=pintake; end end if (pabs == pexhaust && L == 0) maxi = i; L = 1; end pressureplot(i) = pabs - pintake; pgage = (pabs-pintake); Pforce = pgage*Ap; T2(i) = Pforce*f4i; phid = (pi-tho2-(2*pi))*180/pi; phi(i) = phid; %1st and 2nd order KC of mass centers [SumA, SumB] = masscenter_kcs(tho2, r2, tho3, r3, h3i, kc21, hmotor); %Motor Torque [Tm] = motortorque(tho2dot,hmotor); torque(i) = Tm; tho2ddot = (-Tm*hmotor+T2(i)-SumB*tho2dot^2)/(SumA); tho2 = tho2 + tho2dot*deltat+.5*tho2ddot*deltat^2;

tho2dot = tho2dot + tho2ddot*deltat; tho2count(i) = tho2*rd; tho2dotcount(i) = (abs(tho2dot*60/(2*pi))/1.29); tho2ddotcount(i) = tho2ddot; timecount(i) = t; if t > .35 if abs(tho2dot*60/(2*pi)) > rpmax rpmax = abs(tho2dot*60/(2*pi)); elseif abs(tho2dot*60/(2*pi)) < rpmin rpmin = abs(tho2dot*60/(2*pi)); end end Cf = ((rpmax-rpmin)/((rpmax+rpmin)/2))*100; Val = max(rpmax); %reset limits xcoor = 1; ycoor = 1; %increment i = i + 1; end %for i = 2:1:361 % Work(1) = T2(1); %Work(i) = Work(i-1) + (T2(i)-T2(i-1)); %Value = Value + Work(i); %end

Appendix B: Thermodynamic Model Abstract The purpose of this study was to compute the relation between the pressure in the compressor and the position angle, ϕ, of the crank; calculate the volume of air pressure delivered with each revolution of the crank and the required angular velocity to deliver 134.7 psia air. Newton’s method was used for the position analysis. A plot of the pressure related to ϕ is shown in Figure B-1. The volume of high pressure air delivered with each revolution is 0.0024 required crank speed to deliver 134.7 psia is 1,256 rpm.

. The

1 Engineering Analysis Newton’s method was used in the MATLAB function NewtonMethodSliderTest.m to relate the change of

from –π to -3π and the link length r4. Using the changing values of r4, the

gas pressure was calculated using the MATLAB function Pressure.m and then graphed in relation to ϕ. When the air pressure was equal to the exhaust pressure, the value of r4 was determined. The volume of high pressure air delivered with each crank revolution was calculated using the equation for volume found on the handout (provided at end) with the determined value of r4. This equation was implemented into the MATLAB code SliderMainTest.m. The crank speed to output this volume was determined by converting the high pressure air volume into an angular velocity with units of rpm.

2 Results Figure B-1 shows the plot of the air pressure vs. ϕ. The absolute pressure does not exceed the exhaust pressure and never has a value less than the intake pressure.

Figure B-1: Ď• vs. Pressure The volume of air delivered with each revolution is 0.0024 deliver 134.7 psia is 1,256 rpm.

. The required crank speed to

MATLAB function to compute gauge pressure function [pabs] = pressure(t2,r2,r3,r4,clearance,k, pexhaust, pintake) % % t2 is the crank angle theta2 (radians). % r2, r3 and r4 are the vector lengths in the vector loop (ft). % clearance is th eclearance at TDC (feet). % k is the gas constant for air (dimensionless). % pexhaust is the exhaust pressure (lbf/ft^2). % pintake is the intake pressure (lbf/ft^2) % pabs is the absolute pressure in the % cylinder (lbf/ft^2). % st2=sin(t2*(pi/180)); if st2 >= 0.00 pabs=pintake*((2*r2+clearance)/(r2+r3-r4+clearance))^(k); if pabs >= pexhaust pabs=pexhaust; end else pabs=pexhaust*(clearance/(r2+r3-r4+clearance))^(k);

if pabs <= pintake pabs=pintake; end end end

Appendix C: Inverse Dynamics Problem Abstract The purpose of this study was to estimate the power required by the driving motor for the compressor simulation. The torque applied to the crank for every angle during one revolution was computed using the power equations. The torque was then graphed in relation to the crank angle ϕ in Figure C-1. The amount of work in one revolution was determined to be 78 by taking the area under the curve of the graph in Figure C-1. The required driving motor power was computed using the work to be 2.9 HP.

1 Engineering Analysis The power equation applied to the crank-slider mechanism yields, ̅

̅

̅

̅

(

)

(

)

with, ̅

[

]

̅

[ ] ̇

̅

[

]

̅

[ ] ̇

the power equation was then rearranged to produce an equation for the torque,

The torque was then graphed against ϕ and is presented in Figure 1. The work for one revolution of the crank was computed in the MATLAB function NewtonMethodSliderTest.m by integrating the area under the curve in Figure 1. The value for work was multiplied with the angular velocity of the crank and then converted into units of horsepower to give an estimate of the driving motor power.

2 Results Figure C-1 shows the plot of the torque versus ϕ.

Figure C-1: Ď• vs. Torque The amount of work in one revolution was determined to be 78 motor power was computed to be 2.9 HP.

. The required driving

Appendix D: VL3609T Performance Data

Appendix E: NEMA Torque Speed Curve

Appendix F: Pulley Specifications

Appendix G: Dynamics Simulation Abstract The âˆ‘

and âˆ‘

were calculated using the kinematic coefficients of the mass centers.

1 Engineering Analysis The kinematic coefficients of the mass centers were calculated using the following, ( )

(

)

( )

(

)

( )

(

)

( )

(

)

( )

(

)

( )

(

)

(

)

(

)

(

)

( ) ( ) ( )

( )

( )

( )

( )

( )

( ) ( )

( ) ( )

( )

(

)

(

)

(

)

(

)

(

)

(

)

(

)

with the inertia properties, the A and B for each moving member was computed using, (

)

(

) (

)

(

) ( (

) )

( MATLAB function to compute ∑ and ∑ . function [SumA, SumB] = masscenter_kcs(tho2, r2, tho3, r3, h3i, kc21, hmotor) m2 = 4.5/32.2; %slug Ig2 = 16.0/(32.2*144); %slug*ft^2 r2p = -0.5/12; %ft m3 = 2.5/32.2; %slug Ig3 = 4/(32.2*144); %slug*ft^2 r3p = 1.5/12; %ft m4 = 1.4/32.2; %slug Imotor = (.319+.0236)/32.2; %slug*ft^2 %Mass center Coefficients (ft) fg2x = r2p*sin(tho2); fg2y = -r2p*cos(tho2); fg2xp = r2p*cos(tho2); fg2yp = r2p*sin(tho2); fg3x = -r2*sin(tho2)-r3p*sin(tho3)*h3i; fg3y = r2*cos(tho2)+r3p*cos(tho3)*h3i; fg3xp = -r2*cos(tho2)-r3p*cos(tho3)*h3i^2-r3p*sin(tho3)*kc21*h3i; fg3yp = -r2*sin(tho2)-r3p*sin(tho3)*h3i^2+r3p*cos(tho3)*kc21*h3i; fg4x = -r2*sin(tho2)-r3*sin(tho3)*h3i; fg4xp = -r2*cos(tho2)-r3*cos(tho3)*h3i^2-r3*sin(tho3)*kc21; %Sum of A & B A2 = m2*(fg2x^2+fg2y^2)+Ig2; B2 = m2*((fg2x*fg2xp)+(fg2y*fg2yp))+Ig2; A3 = m3*(fg3x^2+fg3y^2)+Ig3*h3i^2; B3 = m3*((fg3x*fg3xp)+(fg3y*fg3yp))+Ig3*h3i*kc21; A4 = m4*(fg4x^2); B4 = m4*((fg4x*fg4xp)); Amotor = Imotor*hmotor^2; SumA = (A2+A3+Amotor+A4); SumB = (B2+B3+B4); end

MATLAB function to compute motor torque % t2dot is angular velocity of crank in units of rad/s % Tm is the motor torque in units of ft*lbf function [Tm] = motortorque(tho2dot,hmotor) pi=4.0*atan(1.0); Ts=29; Tp=18; Tb=23; Tf=9; wp=450.0; wb=1440.0;

)

wf=1739.0; wsync=1800; wm=hmotor*abs(tho2dot*60/(2*pi)); Tm=Ts+wm*((Tp-Ts)/wp); if wm>wp Tm=Tp+(wm-wp)*((Tb-Tp)/(wb-wp)); end if wm>wb Tm=Tb+(wm-wb)*((Tf-Tb)/(wf-wb)); end if wm>wf Tm=Tf+(wm-wf)*((-Tf)/(wsync-wf)); end