This analysis was done by: David Coan and Chuck Davis — TTU Mechanical Engineering, ME 4640

# Introduction

The following is the force analysis of a piston can crusher that was designed for our Applied Machine Design Project. It consist of a hand crank operated 4-bar mechanism that drives a piston head to crush a soda can. The soda can was assumed to have a constant force of 120 lb to crush it.

# Analysis

Force analysis on mechanisms can be done using three main techniques; super position, matrix, or virtual work. While virtual work is the easiest way to do it, the matrix method provides force analysis information at all the joints, which could be of relevent importance to us.

In order to do force analysis, the position, velocity, and acceleration equations must first be solved for. Then using the examples out of the DOM book for a crank slider mechanism the matrix can be set up as shown in the hand calcs. This allowed us to solve for the force at every joint and the required torque at the input.

# Conclusion

The force analysis on the piston can crusher showed good results for the force at all the joints but the results for the input torque were suspect and will need to be investigated further.

Attached are graphs showing the forces at every joint.

# Appendix A

## MATLAB Code

clc

clear all

global dtr r2g r3g Ig2 Ig3 ag2x ag2y ag3x ag3y

F12x_store = zeros(1,361);

F12y_store = zeros(1,361);

F32x_store = zeros(1,361);

F32y_store = zeros(1,361);

F43x_store = zeros(1,361);

F43y_store = zeros(1,361);

F14y_store = zeros(1,361);

T12_store = zeros(1,361);

dtr = pi/180;

m2 = 1.5; %Kg

m3 = 3;

m4 = 4;

Fpx = 533.7;

r2 = .12; %meters

r3 = .30;

r2g = r2/2;

r3g = r3/2;

Ig2 = (m2*r2^2)/3;

Ig3 = (m3*r3^2)/3;

inc = 0;

for theta2 = 0:dtr:360*dtr

theta2_dot = pi;

theta2_dotdot = pi/4;

[theta3_dotdot, r1_dotdot r1 r1_dot theta3 theta3_dot] = unk_Len_ang(r2, r3, theta2, theta2_dot)

ag2x = -r2g*(theta2_dot)^2*cos(theta2);

ag2y = -r2g*(theta2_dot)^2*sin(theta2);

ag3x = r3g*theta3_dotdot*sin(theta3) + r3g*(theta3_dot)^2*cos(theta3);

ag3y = -r3g*theta3_dotdot*cos(theta3) + r3g*(theta3_dot)^2*sin(theta3);

[F12x, F12y, F32x, F32y, F43x, F43y, F14y, T12] = forces(theta2, theta3, theta2_dotdot, theta3_dotdot, Fpx, m2, m3, m4, r1_dotdot)

theta(inc+1) = inc;

inc = inc + 1;

F12x_store(inc) = F12x;

F12y_store(inc) = F12y;

F32x_store(inc) = F32x;

F32y_store(inc) = F32y;

F43x_store(inc) = F43x;

F43y_store(inc) = F43y;

F14y_store(inc) = F14y;

T12_store(inc) = T12;

end

figure(1)

plot(theta,F12x_store)

title('theta2 vs F12x')

xlabel('theta2(deg)')

ylabel('F12x(Newtons)')

figure(2)

plot(theta,F12y_store)

title('theta2 vs F12y')

xlabel('theta2(deg)')

ylabel('F12y(Newtons)')

figure(3)

plot(theta,F32x_store)

title('theta2 vs F32x')

xlabel('theta2(deg)')

ylabel('F32x(Newtons)')

figure(4)

plot(theta,F32y_store)

title('theta2 vs F32y')

xlabel('theta2(deg)')

ylabel('F32y(Newtons)')

figure(5)

plot(theta,F43x_store)

title('theta2 vs F43x')

xlabel('theta2(deg)')

ylabel('F43x(Newtons)')

figure(6)

plot(theta,F43y_store)

title('theta2 vs F43y')

xlabel('theta2(deg)')

ylabel('F43y(Newtons)')

figure(7)

plot(theta,F14y_store)

title('theta2 vs F14y')

xlabel('theta2(deg)')

ylabel('F14y(Newtons)')

figure(8)

plot(theta,T12_store)

title('theta2 vs T12')

xlabel('theta2(deg)')

ylabel('T12(N*m)')

%% function file (forces) %%

function[F12x, F12y, F32x, F32y, F43x, F43y, F14y, T12] = forces(theta2, theta3, theta2_dotdot, theta3_dotdot, Fpx, m2, m3, m4, r1_dotdot)

global r2g r3g Ig2 Ig3 ag2x ag2y ag3x ag3y

C = [1 0 1 0 0 0 0 0;

0 1 0 1 0 0 0 0;

-r2g*sin(theta2) r2g*cos(theta2) -r2g*sin(theta2) r2g*cos(theta2) 0 0 0 1;

0 0 -1 0 1 0 0 0;

0 0 0 -1 0 1 0 0;

0 0 r3g*cos(theta3+pi) -r3g*sin(theta3+pi) -r3g*sin(theta3) r3g*cos(theta3) 0 0;

0 0 0 0 -1 0 .3 0;

0 0 0 0 0 -1 1 0];

c1 = [m2*ag2x;m2*ag2y;Ig2*theta2_dotdot;m3*ag3x;m3*ag3y;Ig3*theta3_dotdot;m4*r1_dotdot-Fpx;0];

F = C\c1;

F12x = F(1);

F12y = F(2);

F32x = F(3);

F32y = F(4);

F43x = F(5);

F43y = F(6);

F14y = F(7);

T12 = F(8);

return

## Hand Calculations

Having Huge troubles getting the Photobucket thing to work so not going to post the hand calcs. It was the worked just like the example out of the DOM book for matrix method of a crank slider mechanism.