mech_proj_2
TRANSCRIPT
![Page 1: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/1.jpg)
Table of ContentsAbstract........................................................................................................................................................... 2
Introduction.................................................................................................................................................. 2
1.0 Kinematics of Single Cylinder Engine.........................................................................................4
2.0 Shaking Force including Optimum balancing of mass........................................................5
3.0 Iterative Process for balancing......................................................................................................7
4.0 Plot of balanced Shaking Force.....................................................................................................8
5.0 Appendix................................................................................................................................................. 9
![Page 2: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/2.jpg)
Abstract
The device of concern in this project is a single cylinder engine. The frame of the
device’s crank-slider mechanism is subjected to a substantial shaking force
produced by the engine. This is not a desirable factor due to excess vibrations and
noise produced during operation. It is not possible however, to eliminate the
shaking force for the primary, secondary and higher order components for a single
cylinder engine. The alternative is to add a single counter balance weight in order to
reduce the shaking magnitude produced by the engine. Our objective is to compute
the mass (along with its particular placement, r) that would be the most optimal for
reducing the shaking force with the given parameters of the particular cylinder
engine.
Introduction
The nature of this problem at hand demands many iteration. Such task is best left to
a computer and thus MATLAB was used to code the algorithm which had been
derived through kinematic analysis on the engine.
A piston is a crank mechanism used in engines to convert energy released from gas
expansion (due to combustion occurring where the piston resides) into kinematic
energy that is transferred to the crank shaft when the piston is forced downwards
inside its shaft.
Before programing the code for MATLAB, it was essential to outline the method of
determining the optimum balancing which we had related to the engines shaking
force. Adjustments were made to the formula to fit the given constraints and
provide convenience when translating it to a programming algorithm.
![Page 3: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/3.jpg)
Through computation via MATLAB, polar graphs were created displaying the
following information:
Mass
Mass placement (distance)
Shaking Force
From the polar graphs we were able to determine the ideal mass and its placement
to achieve the maximum shaking force reduction which resulting in a 77.6%
reduction.
![Page 4: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/4.jpg)
1.0 Kinematics of Single Cylinder Engine
ILL DRAW THIS PART (JOSH)
![Page 5: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/5.jpg)
2.0 Shaking Force including Optimum balancing of mass
The first step in determining the optimum balancing mass was to first
calculate the shaking force produced by the piston on the ground or environment.
The general method used for calculating the shaking force was through Force
Analysis of a Slider Crank Mechanism. Utilizing this method allowed us to solve for
multiple forces and moments experienced by each link, via system of equations.
According to free body diagram shown previously, the following matrix expression
was derived,
[A ] {x }={B }
A=[−1 00 −1
1 00 1
0 00 0
A3,3 A3,4−1 0
0 00 0
0 00 0
0 0−1 0
0 10 0
0 00 0
0 −1A6,3 A6,4
0 00 0
0 00 0
0 −1A6,5 A6,6
0 00 0
1 00 1
0 0−1 0
]A3,3=−r2 sinθ2 ; A3,4=r2 cosθ2 ; A6,3=r3sinθ3−b3 sinθ3 ;
A6,4=−r3 cosθ3−b3cosθ3 ; A6,5=−b3 sin θ3 ; A6,6=b3 cosθ2
{x }=
(F12)x(F12)y(F23)x(F23)y(F34)x(F34)y(F14)yM 12
; {B }=
m2(aG2)xm2(aG2)y0
m3(aG3)xm3(aG3)yIG3θ̈3m4 (aG 4
)x0
Moreover, solving for {x} and adding all the force components that the piston
induces on the ground gives us the magnitude for the shaking force produced as
shown,
![Page 6: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/6.jpg)
F s=√(F21)x2+((F21)y+(F41) y)2
Furthermore, in conjunction with the force analysis, complex vector analysis
on a slider crank mechanism was used. The complex vector analysis allowed us to
find the angular velocity and acceleration of each link, which was to be needed
during force analysis.
The optimum balancing mass (mb) was placed at a certain distance (rb) from
point O2 at 180∘ from the crankshaft. By adding the balancing mass in this
orientation changes the mass of the crankshaft centroid to the total mass of the
crankshaft and the balancing mass. Furthermore it also changes the location of the
centroid on the crankshaft, and they are determined to be,
mtotal=mb+m2
b2=−mb ⋅rb+m2 ⋅r2
mb+m2
This minor adjustment was implemented within the calculations during force
analysis. By incorporating these alternate values, allowed us to determine the
shaking force produced by the piston as a balancing mass was added at a certain
distance and orientation mentioned earlier.
Also, since the value α affected the position of the centroid on the connection
rod (link 3), another adjustment was made. The following adjustment was made,
b3=(1−α )r3
Furthermore, by utilizing the matrix expression and adjusted variables, the
values for the balancing mass (mb), distance (rb), and α were each iterated to find
values, which produced the minimal shaking force. The iterative process was
preformed using MATLAB.
![Page 7: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/7.jpg)
3.0 Iterative Process for balancing
The iterative process was simple and highly dependent on the use of
MATLAB. A code, shown in the Appendix, was developed to iterate values for
balancing mass (mb), distance (rb), and α . Furthermore the maximum shaking force
for each combination of different values were determined and compared to the
previous iterated shaking force to see if it was lower than the previous. Moreover, if
the proceeding iterated shaking force was lower than the previous, then the values
for balancing mass (mb), distance (rb), α , and maximum shaking force were saved
from that particular iteration. In addition this new minimal shaking force is
compared with further proceeding shaking force values, which potentially may
replace existing values if a lower shaking force is established.
![Page 8: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/8.jpg)
4.0 Plot of balanced Shaking Force
Polar Graph of Shaking Force (N) during a full rotation of the crankshaft without balancing mass, at α=0.32 .
Polar Graph of Shaking Force (N) during a full rotation of the crankshaft with balancing mass, at α=0.32 .
![Page 9: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/9.jpg)
The maximum shaking force without a balancing mass at α = 0.32 is 475 N. Furthermore when a optimum balancing mass of 260 grams, at a distance of 4 cm at (180 degrees), was added the maximum shaking force the piston experiences becomes 106.3 N. By adding the balancing mass the shaking force was reduced by 77.6%.
5.0 Appendix
CODE FOR FINDING OPTIMUM BALANCING MASS (mb) AT DIESTANCE (rb) and α
%used for iteration count%j=1;%loop for iterating balancing mass from 0kg to 1kg%for mb = 0:0.01:0.3%loop for iterating balancing mass distance from 0m to 1m%for rb = 0:0.01:0.04%loop for varying quantity alpha from 0 to 1%for alpha = 0:0.01:1i = 1; for theta2 = 0:2*pi/100:2*pi%given Parameters%m2 = 0.05;%mass of crankshaft%m3 = 0.15;%mass of connecting rod%m4 = 0.1;%mass of piston head%r2 = 0.04;%crank shaft length%r3 = 0.1;%connecting rod length%b3 = (1 - alpha)*r3;%length of link 3 centroid from point B%b2 = (-rb*mb+m2*r2/2)/(mb+m2);%length of centroid of mb and m2 on from point O2%w = 188.5;%angular velocity of crank shaft%%integral of function used to determine moment of inertia of link 3%fun = @(r) r.^2*m3/r3;IG3 = integral(fun,-r3*alpha,(1-alpha)*r3);%moment of inertia of link 3%mt = m2+mb;%total mass at crank shaft centroid% theta3 = pi - asin((r2*sin(theta2))/r3);%angular displacement of link 3 from horizon%theta3_dot = (r2*w*cos(theta2))/(r3*cos(theta3));%angular velocity of link 3%%angular acceleration of link 3%theta3_dob_dot = (-r2*w.^2*sin(theta2)+r3*theta3_dot.^2*sin(theta3))/(r3*cos(theta3)); % matrix terms used to solve system of force anf moment equations% A33 = -r2*sin(theta2);A34 = r2*cos(theta2);A63 = r3*sin(theta3) - b3*sin(theta3) ;A64 = -r3*cos(theta3) + b3*cos(theta3);A65 = -b3*sin(theta3);A66 = b3*cos(theta3);
![Page 10: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/10.jpg)
%acceleration components of link 2 centroid%aG2x = -b2*w.^2*cos(theta2);aG2y = -b2*w.^2*sin(theta2);%acceleration component of link 3 centroid%aG3x = -r2*w.^2*cos(theta2)+((theta3_dot).^2)*(r3*cos(theta3)-b3*cos(theta3))+theta3_dob_dot*(r3*sin(theta3)-b3*sin(theta3));aG3y = -r2*w.^2*sin(theta2)+((theta3_dot).^2)*(r3*sin(theta3)-b3*sin(theta3))+theta3_dob_dot*(r3*cos(theta3)-b3*cos(theta3));%acceleration component of link 4 centroid, only in x-direction%aG4x = (-r2*w.^2*cos(theta3-theta2)+r3*theta3_dot.^2)/cos(theta3); % matrix used to solve system of force anf moment equations% A = [-1 0 1 0 0 0 0 0;0 -1 0 1 0 0 0 0;0 0 A33 A34 0 0 0 1;0 0 -1 0 -1 0 0 0;0 0 0 -1 0 -1 0 0;0 0 A63 A64 A65 A66 0 0;0 0 0 0 1 0 0 0;0 0 0 0 0 1 -1 0];%solution to matric product [A][x] = [B]%B = [mt*aG2x;mt*aG2y;0;m3*aG3x;m3*aG3y;IG3*theta3_dob_dot;m4*aG4x;0];%solving for [x]%x = linsolve(A,B);%solving for shaking force experinced by ground from the piston%Fs(i) = sqrt((x(1)).^2+(x(2)+x(7)).^2);%theta2 for every shaking force value calculatedtheta(i) = theta2 + 2*pi/100;%counter used to increase matrix size%i = i+1;end%finds maximum shaking force produced%Fs_max = max(Fs)%if statement compares previous looped maximum shaking forces and finds the%lowest of them%%and sets new values for alpha,mb and rb associated with it%if j==1 FS_MAX = Fs_max; alpha_new = alpha; rb_new = rb; mb_new = mb;elseif Fs_max<FS_MAX FS_MAX = Fs_max; alpha_new = alpha; rb_new = rb; mb_new = mb; end%used as counter for if statment%j=j+1; endendend%displays the desired quantities as shown below% disp('maximum shaking force is') disp(FS_MAX) disp('alpha is') disp(alpha_new) disp('balancing mass distance is') disp(rb_new)
![Page 11: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/11.jpg)
disp('balancing weight is') disp(mb_new)
%assigning new iterated values to produce polar plot for shaking for one complete revolution of the crankshaft% alpha = alpha_new; rb = rb_new; mb = mb_new; k=1;for theta2 = 0:2*pi/10000:2*pi m2 = 0.05;m3 = 0.15;m4 = 0.1;r2 = 0.04;r3 = 0.1;b3 = (1 - alpha)*r3;b2 = (-rb*mb+m2*r2/2)/(mb+m2);w = 188.5;fun = @(r) r.^2*m3/r3;IG3 = integral(fun,-r3*alpha,(1-alpha)*r3);mt = m2+mb; theta3 = pi - asin((r2*sin(theta2))/r3);theta3_dot = (r2*w*cos(theta2))/(r3*cos(theta3));theta3_dob_dot = (-r2*w.^2*sin(theta2)+r3*theta3_dot.^2*sin(theta3))/(r3*cos(theta3)); A33 = -r2*sin(theta2);A34 = r2*cos(theta2);A63 = r3*sin(theta3) - b3*sin(theta3) ;A64 = -r3*cos(theta3) + b3*cos(theta3);A65 = -b3*sin(theta3);A66 = b3*cos(theta3); aG2x = -b2*w.^2*cos(theta2);aG2y = -b2*w.^2*sin(theta2);aG3x = -r2*w.^2*cos(theta2)+((theta3_dot).^2)*(r3*cos(theta3)-b3*cos(theta3))+theta3_dob_dot*(r3*sin(theta3)-b3*sin(theta3));aG3y = -r2*w.^2*sin(theta2)+((theta3_dot).^2)*(r3*sin(theta3)-b3*sin(theta3))+theta3_dob_dot*(r3*cos(theta3)-b3*cos(theta3));aG4x = (-r2*w.^2*cos(theta3-theta2)+r3*theta3_dot.^2)/cos(theta3); A = [-1 0 1 0 0 0 0 0;0 -1 0 1 0 0 0 0;0 0 A33 A34 0 0 0 1;0 0 -1 0 -1 0 0 0;0 0 0 -1 0 -1 0 0;0 0 A63 A64 A65 A66 0 0;0 0 0 0 1 0 0 0;0 0 0 0 0 1 -1 0];B = [mt*aG2x;mt*aG2y;0;m3*aG3x;m3*aG3y;IG3*theta3_dob_dot;m4*aG4x;0];x = linsolve(A,B);FS(k) = sqrt((x(1)).^2+(x(2)+x(7)).^2);Theta(k) = theta2 + 2*pi/100;k = k+1;end
![Page 12: MECH_PROJ_2](https://reader036.vdocuments.pub/reader036/viewer/2022083022/58aae12b1a28ab27178b62b7/html5/thumbnails/12.jpg)
polarplot(Theta,FS);