You are on page 1of 2

clc

clear all
h=input('Ingrese Elevacion de la Leva en mm: ');
r0=input('Radio Primitivo de la Leva en mm: ');
disp('Escoja una de las Siguientes Opciones');
disp('1.-Movimiento Armonico Simple');
disp('2.-Movimiento Cicloidal');
disp('3.-Movimiento Parabolico');
disp('4.-Movimiento Uniforme');
t1=input('Ingrese el Tipo de Elevacion :');
B1=input('Angulo de Elevacion (): ');
B2=input('Angulo Intermedio (): ');
t3=input('Ingrese el Tipo de Descenso :');
B3=input('Angulo de Descenso (): ');
B1=B1*pi/180;
B2=B2*pi/180;
B3=B3*pi/180;
th=0:0.01:B1;
th1=th;
switch t1;
case 1,r1=h./2*(1-cos(pi.*th./B1))+r0;
case 2,r1=h.*(th./B1-1/(2*pi).*sin(2*pi.*th./B1))+r0;
case 3,th=0:0.005:B1/2;
p11=length(th);
r11=2.*h.*(th./B1).^2+r0;
for i=1:p11
r1(i)=r11(i);
th1(i)=th(i);
end
th=B1/2+0.05:0.005:B1;
p12=length(th);
r12=h.*(1-2.*(1-th./B1).^2)+r0;
for i=p11+1:p12+p11
r1(i)=r12(i-p11);
th1(i)=th(i-p11);
end
case 4,r1=h.*(th./B1)+r0;
case 5,disp('error es elevacion');
end
p1=length(th1);
th2=B1:0.01:B1+B2;
p2=length(th2);
r2=h+r0;
th=0:0.01:B3;
th3=th+B1+B2;
switch t3;
case 1,r3=h-h./2*(1-cos(pi.*th./B3))+r0;
case 2,r3=h-h.*(th./B3-1/(2*pi).*sin(2*pi.*th./B3))+r0;
case 3,th=0:0.001:B3/2;
p31=length(th);
r31=h-2.*h.*(th./B3).^2+r0;
for i=1:p31
r3(i)=r31(i);
th3(i)=th(i)+B1+B2;
end
th=B3/2+0.05:0.001:B3;
p32=length(th);

r32=h-1.*(-h+4.*h.*th./B3-2.*h.*(th./B3).^2)+r0;
for i=p31+1:p32+p31
r3(i)=r32(i-p31);
th3(i)=th(i-p31)+B1+B2;
end
case 4,r3=h-h.*(th./B3)+r0;
case 5,disp('error es descenso');
end
p3=length(th3);
th4=(B1+B2+B3):0.01:2*pi;
p4=length(th4);
r4=r0;
for i=1:p1
r(i)=r1(i);
th(i)=th1(i);
end
for i=p1+1:p2+p1
r(i)=r2;
th(i)=th2(i-p1);
end
for i=p1+p2+1:p1+p2+p3
r(i)=r3(i-p1-p2);
th(i)=th3(i-p1-p2);
end
for i=p1+p2+p3+1:p1+p2+p3+p4
r(i)=r4;
th(i)=th4(i-p1-p2-p3);
end
figure(1)
grid on
plot(th*180/pi,r)
figure(2)
grid on
polar(th,r)

You might also like