The cam material will be UHMW polyethylene because it had the lost cost of the materials
meeting the mechanical property requirements of the design. For a 12”x12”x0.5” sheet of
material the UHMW was $14.47 compared to $389.56 for the FEP and $193.55 for the PTFE.
The offset m and the lift were chosen to be their minimum allowable values of 6 inches and 30o
respectively because it was found that large values of these parameters introduced undercutting
of the cam profile. This negatively affected the cam design because the ideal lift chosen by the
team of 45o was not achieved. The offset f was chosen to be 2 7/64 inches because it was the
minimum value found to prevent undercutting of the cam profile in conjunction with the other
parameters.
The cam profile was finalized through the choice of the rise and return zones. A symmetric rise
and return was chosen to provide a smooth profile, and a value of 155 o was chosen because, as
with f, it was the minimum parameter value that prevented undercutting of the cam profile.
MATLAB Code
%Trade Study - Vertical Motion Control%
clear all
close all
%inputs%
Bri = 155*(pi/180); %rise - radians%
Btd = 0*(pi/180); %top dwell - radians%
Bre = 155*(pi/180); %return - radians%
Bbd = 50*(pi/180); %bottom dwell - radians%
L = 25*(pi/180); %lift - radians%
yo = 5*(pi/180); %min follower position - radians%
f = 2 + 7/64; %follower offset - inches%
m = 6; %center offset - inches%
Rb = m*sin(yo) + f; %radius of base circle - inches%
%variables%
phi = 0;
phi0 = Bri + Btd;
phi1 = 2*pi - Bbd;
%data storage arrays%
phiarr = [];
yarr = [];
Rarr = [];
Angarr = [];
Rxarr = [];
Ryarr = [];
Darr = [];
while phi <= 2*pi
if phi < Bri %rise%
y = (L/Bri).*phi - (L/(2*pi)).*sin(((2*pi)/Bri).*phi); %follower disp%
dy = (L/Bri).*(1-cos(((2*pi)/Bri).*phi)); %dy/dphi%
D = y + yo; %follower position%
a = (m.*dy)./(1 - dy); %distance%
h = m.*sin(D) + f; %distance%
b = a.*cos(D); %distance%
psi = pi/2 - D; %angle%
theta = atan(b./h); %angle%
R = h./cos(theta); %R - magnitude of polar coord vector, cam profile%
Ang = phi + psi + theta; %angle of polar coord vector, cam profile%
Rx = R.*cos(Ang); %x coord of cam profile%
Ry = R.*sin(Ang); %y coord of cam profile%
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Angarr = [Angarr Ang];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= Bri & phi < phi0 %top dwell%
y = L;
dy = 0;
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= phi0 & phi < phi1 %return%
y = L - (L/Bre).*(phi - phi0) + (L/(2*pi)).*sin(((2*pi)/Bre).*(phi - phi0));
dy = (L/Bre).*(cos(((2*pi)/Bre).*(phi - phi0)) - 1);
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*c.
The cam material will be UHMW polyethylene because it had the lost c.pdf
1. The cam material will be UHMW polyethylene because it had the lost cost of the materials
meeting the mechanical property requirements of the design. For a 12”x12”x0.5” sheet of
material the UHMW was $14.47 compared to $389.56 for the FEP and $193.55 for the PTFE.
The offset m and the lift were chosen to be their minimum allowable values of 6 inches and 30o
respectively because it was found that large values of these parameters introduced undercutting
of the cam profile. This negatively affected the cam design because the ideal lift chosen by the
team of 45o was not achieved. The offset f was chosen to be 2 7/64 inches because it was the
minimum value found to prevent undercutting of the cam profile in conjunction with the other
parameters.
The cam profile was finalized through the choice of the rise and return zones. A symmetric rise
and return was chosen to provide a smooth profile, and a value of 155 o was chosen because, as
with f, it was the minimum parameter value that prevented undercutting of the cam profile.
MATLAB Code
%Trade Study - Vertical Motion Control%
clear all
close all
%inputs%
Bri = 155*(pi/180); %rise - radians%
Btd = 0*(pi/180); %top dwell - radians%
Bre = 155*(pi/180); %return - radians%
Bbd = 50*(pi/180); %bottom dwell - radians%
L = 25*(pi/180); %lift - radians%
yo = 5*(pi/180); %min follower position - radians%
f = 2 + 7/64; %follower offset - inches%
m = 6; %center offset - inches%
Rb = m*sin(yo) + f; %radius of base circle - inches%
%variables%
phi = 0;
phi0 = Bri + Btd;
phi1 = 2*pi - Bbd;
%data storage arrays%
phiarr = [];
yarr = [];
Rarr = [];
Angarr = [];
2. Rxarr = [];
Ryarr = [];
Darr = [];
while phi <= 2*pi
if phi < Bri %rise%
y = (L/Bri).*phi - (L/(2*pi)).*sin(((2*pi)/Bri).*phi); %follower disp%
dy = (L/Bri).*(1-cos(((2*pi)/Bri).*phi)); %dy/dphi%
D = y + yo; %follower position%
a = (m.*dy)./(1 - dy); %distance%
h = m.*sin(D) + f; %distance%
b = a.*cos(D); %distance%
psi = pi/2 - D; %angle%
theta = atan(b./h); %angle%
R = h./cos(theta); %R - magnitude of polar coord vector, cam profile%
Ang = phi + psi + theta; %angle of polar coord vector, cam profile%
Rx = R.*cos(Ang); %x coord of cam profile%
Ry = R.*sin(Ang); %y coord of cam profile%
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Angarr = [Angarr Ang];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= Bri & phi < phi0 %top dwell%
y = L;
dy = 0;
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
3. Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= phi0 & phi < phi1 %return%
y = L - (L/Bre).*(phi - phi0) + (L/(2*pi)).*sin(((2*pi)/Bre).*(phi - phi0));
dy = (L/Bre).*(cos(((2*pi)/Bre).*(phi - phi0)) - 1);
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= phi1 & phi <= 2*pi %bottom dwell%
y = 0;
4. dy = 0;
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
end
Angarr = Angarr.*(180/pi); %Ang in degrees%
phiarr = phiarr.*(180/pi); %phi in degrees%
yarr = yarr.*(180/pi); %y in degrees%
Darr = Darr.*(180/pi); %D in degrees%
plot(phiarr, yarr); %displacement diagram%
xlabel('phi (degrees)')
ylabel('y (degrees)')
figure
plot(Rxarr, Ryarr); %cam profile%
xlabel('R_x (inches)')
ylabel('R_y (inches)')
axis equal
Solution
5. The cam material will be UHMW polyethylene because it had the lost cost of the materials
meeting the mechanical property requirements of the design. For a 12”x12”x0.5” sheet of
material the UHMW was $14.47 compared to $389.56 for the FEP and $193.55 for the PTFE.
The offset m and the lift were chosen to be their minimum allowable values of 6 inches and 30o
respectively because it was found that large values of these parameters introduced undercutting
of the cam profile. This negatively affected the cam design because the ideal lift chosen by the
team of 45o was not achieved. The offset f was chosen to be 2 7/64 inches because it was the
minimum value found to prevent undercutting of the cam profile in conjunction with the other
parameters.
The cam profile was finalized through the choice of the rise and return zones. A symmetric rise
and return was chosen to provide a smooth profile, and a value of 155 o was chosen because, as
with f, it was the minimum parameter value that prevented undercutting of the cam profile.
MATLAB Code
%Trade Study - Vertical Motion Control%
clear all
close all
%inputs%
Bri = 155*(pi/180); %rise - radians%
Btd = 0*(pi/180); %top dwell - radians%
Bre = 155*(pi/180); %return - radians%
Bbd = 50*(pi/180); %bottom dwell - radians%
L = 25*(pi/180); %lift - radians%
yo = 5*(pi/180); %min follower position - radians%
f = 2 + 7/64; %follower offset - inches%
m = 6; %center offset - inches%
Rb = m*sin(yo) + f; %radius of base circle - inches%
%variables%
phi = 0;
phi0 = Bri + Btd;
phi1 = 2*pi - Bbd;
%data storage arrays%
phiarr = [];
yarr = [];
Rarr = [];
Angarr = [];
Rxarr = [];
6. Ryarr = [];
Darr = [];
while phi <= 2*pi
if phi < Bri %rise%
y = (L/Bri).*phi - (L/(2*pi)).*sin(((2*pi)/Bri).*phi); %follower disp%
dy = (L/Bri).*(1-cos(((2*pi)/Bri).*phi)); %dy/dphi%
D = y + yo; %follower position%
a = (m.*dy)./(1 - dy); %distance%
h = m.*sin(D) + f; %distance%
b = a.*cos(D); %distance%
psi = pi/2 - D; %angle%
theta = atan(b./h); %angle%
R = h./cos(theta); %R - magnitude of polar coord vector, cam profile%
Ang = phi + psi + theta; %angle of polar coord vector, cam profile%
Rx = R.*cos(Ang); %x coord of cam profile%
Ry = R.*sin(Ang); %y coord of cam profile%
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Angarr = [Angarr Ang];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= Bri & phi < phi0 %top dwell%
y = L;
dy = 0;
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
7. Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= phi0 & phi < phi1 %return%
y = L - (L/Bre).*(phi - phi0) + (L/(2*pi)).*sin(((2*pi)/Bre).*(phi - phi0));
dy = (L/Bre).*(cos(((2*pi)/Bre).*(phi - phi0)) - 1);
D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
if phi >= phi1 & phi <= 2*pi %bottom dwell%
y = 0;
dy = 0;
8. D = y + yo;
a = (m.*dy)./(1 - dy);
h = m.*sin(D) + f;
b = a.*cos(D);
psi = pi/2 - D;
theta = atan(b./h);
R = h./cos(theta);
Ang = phi + psi + theta;
Rx = R.*cos(Ang);
Ry = R.*sin(Ang);
phiarr = [phiarr phi];
yarr = [yarr y];
Rarr = [Rarr R];
Rxarr = [Rxarr Rx];
Ryarr = [Ryarr Ry];
Angarr = [Angarr Ang];
Darr = [Darr D];
phi = phi + pi/360;
end
end
Angarr = Angarr.*(180/pi); %Ang in degrees%
phiarr = phiarr.*(180/pi); %phi in degrees%
yarr = yarr.*(180/pi); %y in degrees%
Darr = Darr.*(180/pi); %D in degrees%
plot(phiarr, yarr); %displacement diagram%
xlabel('phi (degrees)')
ylabel('y (degrees)')
figure
plot(Rxarr, Ryarr); %cam profile%
xlabel('R_x (inches)')
ylabel('R_y (inches)')
axis equal