# Paraphrase MatLab code.

Paraphrase MatLab code.

w=400*2*pi/60; %given omega 400 rpm (We know that omega=400rpm (Given))

syms l2 l4 b1 b2 b3 b4 %unknowns

%given
l1=2.5;
l3=1;
l5=0;
b5=pi/3;

%1st equation (Equation 1)
%b1+b2+b3+b4+b5==2*pi

%2nd equation (Equation 2)
%l1-l2-l3-l4==0

%3rd equation   (Equation 3)
%-l3/b3==-40/w

%4th equation    (Equation 4)
%-pi*l2/(2*b2)==-40/w

%5th equation     (Equatoin 5)
%-2*l4/b4==-40/w

%6th equation       (Equatioh 6)
%-pi^2*l2/(4*b2^2)==-5.2683*l1/b1^2

%6 unknowns and 6 equations
[L2,L4,B1,B2,B3,B4]=solve(b1+b2+b3+b4+b5==2*pi , l1-l2-l3-l4==0 , -l3/b3==-40/w , -pi*l2/(2*b2)==-40/w , -2*l4/b4==-40/w,-pi^2*l2/(4*b2^2)==-l1/b1^2*5.2683,l2,l4,b1,b2,b3,b4);
L2=double(L2);L2=L2(2); %L2 had two answers and appropriate answer was picked
L4=double(L4);L4=L4(2); %L4 had two answers and appropriate answer was picked
B1=double(B1);B1=B1(2); %B1 had two answers and appropriate answer was picked
B2=double(B2);B2=B2(2); %B2 had two answers and appropriate answer was picked
B3=double(B3);B3=B3(2); %B3 had two answers and appropriate answer was picked
B4=double(B4);B4=B4(2); %B4 had two answers and appropriate answer was picked
L=[l1,L2,l3,L4,l5]; %L vector
B=[B1,B2,B3,B4,b5]; %Beta vector

%clean up the variable that wont be needed
clear l1 l2 l3 l4 l5 b1 b2 b3 b4 b5 L2 L4 B1 B2 B3 B4

theta=linspace(0,2*pi,1000); %theta in rad with 1000 data points
n=length(theta); %size of theta

%initial setup
y=zeros(1,n);
y_p=zeros(1,n);
y_wp=zeros(1,n);

for i=1:n
if theta(i)<=B(1) %8th order polynomical
y(i)=L(1)*(6.09755*(theta(i)/B(1))^3 -20.78040*(theta(i)/B(1))^5 +26.73155*(theta(i)/B(1))^6 -13.60965*(theta(i)/B(1))^7 + 2.56095*(theta(i)/B(1))^8 );
y_p(i)=L(1)/B(1)*(18.29265*(theta(i)/B(1))^2 -103.90200*(theta(i)/B(1))^4 +160.38930*(theta(i)/B(1))^5 -95.26755*(theta(i)/B(1))^6 +20.48760*(theta(i)/B(1))^7 );
y_wp(i)=L(1)/B(1)^2*(36.58530*(theta(i)/B(1)) -415.60800*(theta(i)/B(1))^3 +801.94650*(theta(i)/B(1))^4 -571.60530*(theta(i)/B(1))^5 +143.41320*(theta(i)/B(1))^6 );
elseif theta(i)<=B(1)+B(2) %H-3
y(i)=L(1)-L(2) + L(2)*cos (pi * (theta(i)-B(1))/(2*B(2)) ) ;
y_p(i)=-pi*L(2)/(2*B(2)) *sin(pi*(theta(i)-B(1))/(2*B(2)));
y_wp(i)=-pi^2*L(2)/(4*B(2)^2) *cos(pi*(theta(i)-B(1))/(2*B(2)));
elseif theta(i)<=B(1)+B(2)+B(3) %uniform
y(i)=-L(3)/B(3)*(theta(i)-(B(1)+B(2)))+ L(1)-L(2);
y_p(i)=-40/w;
y_wp(i)=0;
elseif theta(i)<=B(1)+B(2)+B(3)+B(4) %C-4
y(i)=L(4)*(1 – (theta(i)-(B(1)+B(2)+B(3)))/B(4) -1/pi * sin(pi*(theta(i)-B(1)-B(2)-B(3))/B(4)) )  ;
y_p(i)=-L(4)/B(4) * (1+ cos(pi* (theta(i)-(B(1)+B(2)+B(3)))/B(4) ) );
y_wp(i)=pi*L(4)/B(4)^2 * sin(pi*(theta(i)-(B(1)+B(2)+B(3)))/B(4));
else %dwell
y(i)=0;
y_p(i)=0;
y_wp(i)=0;
end
end

theta_d=theta*180/pi; %theta in degree

figure(1)
plot(theta,y)
title(‘y vs theta’)
ylabel(‘y (inch)’ )
axis([0 2*pi 0 3])

figure(2)
plot(theta,y_p)
ylabel(‘y prime (inch/rad)’ )
axis([0 2*pi -1 5])
title(‘y prime vs theta’)

figure(3)
plot(theta,y_wp)
title(‘y” vs theta’)
ylabel(‘y double prime (inch/rad^2)’ )
axis([0 2*pi -15 15])

%given
Rr=0.5;
e=1;

Rp=2.5*2.75; % L * factor from the figure

%initial setup
R=zeros(1,n);
gamma=zeros(1,n);
lamda=zeros(1,n);
Xf=zeros(1,n);
Yf=zeros(1,n);
phi=zeros(1,n);
sigma=zeros(1,n);
Xs=zeros(1,n);
Ys=zeros(1,n);

d=sqrt(Rp^2-e^2); %equation 1

for i=1:n
R(i)=sqrt(e^2+(d+y(i))^2 ); %equation 2
gamma(i)=atan(e/(d+y(i))); %equation 3
lamda(i)=theta(i)+gamma(i); %equation 4
Xf(i)=R(i)*cos(lamda(i)); %equation 5
Yf(i)=R(i)*sin(lamda(i)); %equation 5
phi(i)=atan(y_p(i)/(Rp+y(i))); %equation 8
sigma(i)=(theta(i)-phi(i)); %equation 6
Xs(i)=Xf(i)-Rr*cos(sigma(i)); %equation 7
Ys(i)=Yf(i)-Rr*sin(sigma(i)); %equation 7
end

figure(4)
plot(Xs,Ys)
grid on
title(‘cam profile’)
xlabel(‘inch’)
ylabel(‘inch’)

MAE341 Spring 2015
Individual Cam Design Project
Description:
Design a plate cam with a translating roller follower. The plate cam is to rotate clockwise at a
constant 400rpm rotational speed. The follower starts with a dwell, and starts to rise at 0 0 to a lift
of 2.5in. And then it returns with a deceleration first. During the next 1in. of its return stroke, it
must have a constant velocity of 40in./sec. Then it returns to a dwell for the last 0 60 of the cam
rotation. The roller follower has a positive offset of 1in.
(1) Using standard motions (e.g., uniform; simple harmonic; cycloidal; polynomial, etc.), suggest
standard motions for each segment for this high speed operation (there are five segments total),
and determine the corresponding lifts and cam rotation angles for each segment of the
displacement diagram. Determine y = y( ) for each segment of the displacement diagram.
Plot the displacement diagram ( y = y( ) vs.  ), the first order kinematic coefficient diagram
( y ‘ vs.  ) and the second order kinematic diagram ( y ” vs.  ).
(2) Determine the cam profile layout. The roller is to have a diameter of 1in. Determine the
minimum required prime circle radius if the pressure angle is not to exceed 0 30 . Plot the cam
profile.
Deliverables:
Submit a report with all of your work for this design project (i.e., all the equations you have used
and all of the calculations, etc.). Include your computer code and the plots in your report.