Você está na página 1de 11

ANÁLISIS DE POSICIÓN, VELOCIDAD Y ACELERACIÓN

INVERTED SLIDER-CRANK MECHANISM


PRESENTADO POR: JHON FREDDY RODRIGUEZ LEÓN
PRESENTADO A: DR. ALEJANDRO ALFREDO LOZANO GUZMÁN
UNIDAD DE APRENDIZAJE CINEMÁTICA Y DINÁMICA DE MAQUINARIA
INSTITUTO POLITÉCNICO NACIONAL
12 DE OCTUBRE DE 2016

 DATOS DEL MECANISMO:


AC = 0.15;
BC = 0.2;
xA = 0;
yA = 0;
q1=0;
xC = AC;
yC = 0;
ang=60;
n = 30; % (rpm)

Resultado del cálculo de velocidades y aceleraciones del mecanismo:


Omega1T =3.1416 rad/s
Alpha1T =0 rad/s2
vBB1T = 0.7134 m/s.
AB1T =2.2411m/s2.
omega3T = 4.6910 rad/s
omega23T = -1.5494 rad/s
vBB21T = 0.6094 m/s.
vBB3T = 0.9382 m/s.
alpha3T = -6.3802 rad/s2
alpha21T = 6.3802 rad/s2
AB21T = 0.2765 m/s2.
AB3T = 4.5824 m/s2.
aB2B1corT = 3.8289 m/s2.

 Codigo para graficar el mecanismo “RTR” INVERTED SLIDER-CRANK MECHANISM

% Graphic of the mechanism

subplot(3,2,1)
plot(xD1,yD1,'k','LineWidth',1.5)
hold on
plot(xDD,yDD,'g','LineWidth',1.5)
axis([-0.4 0.4 -0.4 0.4]);
hold on
grid on
plot([xA,xD],[yA,yD],'r-x',[xB,xC],[yB,yC],'b-x','LineWidth',1.5)
title('INVERTED SLIDER-CRANK MECHANISM')
text(xA,yA,' A'),...
text(xB,yB,'B'),...
text(xC,yC, 'C'),...
text(xD,yD, 'D'),...
hold off

 Codigo para graficar la Aceleracion de coriolis del mecanismo “RTR” INVERTED SLIDER-
CRANK MECHANISM

subplot(3,2,4)
axis([0 370 0 4.5]);
hold on
grid on
plot(qq,aB2B1corT,'r','LineWidth',1.5)
title ('Aceleración de coriolis')
hold off
 Trayectoria del punto B y D del mecanismo “RTR” INVERTED SLIDER-CRANK MECHANISM
para una entrada de 360°:
 Aceleraciones vB1 (rojo) vB21(azul) vB3(negro)

 velocidad vB1(rojo) vB21(azul) vB3(negro)

 Aceleración de coriolis
 Velocidades Angulares (relativa) w1=w2(rojo) w23(azul) w3(negro)

 Aceleraciones Angulares (relativa) alpha1=alpha2 (rojo) alpha23(azul) alpha3(negro)


ANÁLISIS DE POSICIÓN, VELOCIDAD Y ACELERACIÓN

Código:

%%%%%%%%%%%%tarea completa%%%%%%%%%

clear all
clc
close all
AC = 0.15;
BC = 0.2;
xA = 0;
yA = 0;
q1=0;
xC = AC;
yC = 0;
ang=60;
for ang=1:1:360;
phi=(ang*pi)/180; % ángulo en radianes
phi1=phi;
q1=q1+1;
qq(q1)=ang;

rA = [ xA, yA, 0 ];
rC = [ xC, yC, 0 ];
AD = AC+BC;
xD=AD*cos(phi);
yD=AD*sin(phi);
rD=[xD,yD,0];

xDD(q1)=xD;
yDD(q1)=yD;

% position of B
eqB1 = 'xBsol*sin(phi) = yBsol*cos(phi)';
eqB2 = 'yBsol^2+(xC-xBsol)^2-BC^2 = 0';
solB = solve(eqB1, eqB2, 'xBsol, yBsol');
xBpositions = eval(solB.xBsol);
yBpositions = eval(solB.yBsol);
xB1 = xBpositions(1);
xB2 = xBpositions(2);
yB1 = yBpositions(1);
yB2 = yBpositions(2);
if (phi>=0 && phi<= pi)
if yB1 >= 0
xB=xB1;
yB=yB1;
else xB=xB2;
yB=yB2;
end
end
if (phi>pi && phi<=2*pi)
if yB1 < 0
xB=xB1;
yB=yB1;
else xB=xB2;
yB=yB2;
end
end
rB = [ xB, yB, 0 ];
phi3 = atan((yB-yC)/(xB-xC))+pi;

xD1(q1)=xB;
yD1(q1)=yB;

n = 30; % (rpm) driver link


omega1 = [ 0 0 pi*n/30 ];
Omega1 = omega1(3);
Omega1T(q1)=Omega1

Omega2 = omega1(3);
omega2 = omega1;
alpha1 = [0 0 0 ];
alpha2 = alpha1;
Alpha1 = alpha1(1);
Alpha2 = alpha1(1);
Alpha1T(q1)=Alpha1

vA = [0 0 0 ];
aA = [0 0 0 ];
vC = [0 0 0 ];
aC = [0 0 0 ];
VB1= [0 0 0 ];

%velocidad vB1
vB1 = vA + cross(omega1,rB);
%descomponer vB1 en i and j
TvB1=sqrt(vB1(1)^2+(vB1(2)^2));
vBB1T(q1)=TvB1

%desvB1=[vB1];
%vBB1(1)=desvB1(1:3:end);
%vBB1(2)=desvB1(2:3:end);
%vBB1X=vBB1(1);
%vBB1Y=vBB1(2);
%vBB1XX(q1)=vBB1X;
%vBB1YY(q1)=vBB1Y;

%aceleracion aB1
aB1 = aA + cross(alpha1,rB) - dot(omega1,omega1)*rB;
TAB1=sqrt(aB1(1)^2+(aB1(2)^2));
AB1T(q1)=TAB1

%descomponer aB1 en i and j


%desaB1=[aB1];
%aaB1(1)=desaB1(1:3:end);
%aaB1(2)=desaB1(2:3:end);
%aaB1X=aaB1(1);
%aaB1Y=aaB1(2);
%aaB1XX(q1)=aaB1X;
%aaB1YY(q1)=aaB1Y;

% angular velocity of link 3


omega3z = sym('omega3z','real'); % omega3z unknown
omega3 = [ 0 0 omega3z ];
vB21 = sym('vB21','real'); % vB21 unknown
% vB2B1 parallel to the sliding direction
vB2B1 = [ vB21*cos(phi1) vB21*sin(phi1) 0 ];
% vB2 = vB3 = vC + omega3 x (rB-rC)
vB3 = vC + cross(omega3,rB-rC);
vB2 = vB3;
eqvB = vB2 - ( vB1 + vB2B1 ); % vB2 = vB1 + vB2B1
eqvBx = eqvB(1); % equation component on x-axis
eqvBy = eqvB(2); % equation component on y-axis
solvB = solve(eqvBx,eqvBy);
omega3zs = eval(solvB.omega3z);
omega3T(q1)=omega3zs

omega23T(q1)=Omega1-omega3zs

vB21s = eval(solvB.vB21);
Omega3 = [0 0 omega3zs];

%velocidad vB21
VB21 = vB21s*[cos(phi1) sin(phi1) 0];
TvB21=sqrt(VB21(1)^2+(VB21(2)^2));
vBB21T(q1)=TvB21
%descomponer vB1 en i and j
%desvB21=[VB21];
%vBB21(1)=desvB21(1:3:end);
%vBB21(2)=desvB21(2:3:end);
%vBB21X=vBB21(1);
%vBB21Y=vBB21(2);
%vBB21XX(q1)=vBB21X;
%vBB21YY(q1)=vBB21Y;

VB3 = vC + cross(Omega3,rB-rC);
TvB3=sqrt(VB3(1)^2+(VB3(2)^2));
vBB3T(q1)=TvB3

%descomponer vB3 en i and j


%desvB3=[VB3];
%vBB3(1)=desvB3(1:3:end);
%vBB3(2)=desvB3(2:3:end);
%vBB3X=vBB3(1);
%vBB3Y=vBB3(2);
%vBB3XX(q1)=vBB3X;
%vBB3YY(q1)=vBB3Y;

%Velocidades
qvBx=vpa(eqvBx,6);

%Aceleraciones
alpha3z = sym('alpha3z','real'); % alpha3z unknown
alpha3 = [ 0 0 alpha3z ];
aB21 = sym('aB21','real'); % aB21 unknown
% aB2B1 parallel to the sliding direction
aB2B1 = [ aB21*cos(phi1) aB21*sin(phi1) 0 ];
% aB2=aB3=aC+alpha3 x rCB-(omega3)ˆ2 rCB
aB3=aC+cross(alpha3,rB-rC)-dot(Omega3,Omega3)*(rB-rC);
aB2 = aB3;
% aB2B1cor = 2 omega1 x vB2B1
aB2B1cor = 2*cross(omega1,VB21);
% aB2 = aB1 + aB2B1 + aB2B1cor
eqaB = aB2 - ( aB1 + aB2B1 + aB2B1cor );
eqaBx = eqaB(1); % equation component on x-axis
eqaBy = eqaB(2); % equation component on y-axis
solaB = solve(eqaBx,eqaBy);
alpha3zs = eval(solaB.alpha3z);
alpha3T(q1)=alpha3zs

alpha21T(q1)=Alpha1-alpha3zs

aB21s = eval(solaB.aB21);
Alpha3 = [0 0 alpha3zs];

AB21 = aB21s*[cos(phi1) sin(phi1) 0];


TAB21=sqrt(AB21(1)^2+(AB21(2)^2));
AB21T(q1)=TAB21

%descomponer AB21
%desvAB21=[AB21];
%ABB21(1)=desvAB21(1:3:end);
%ABB21(2)=desvAB21(2:3:end);
%ABB21X=ABB21(1);
%ABB21Y=ABB21(2);
%ABB21XX(q1)=ABB21X;
%ABB21YY(q1)=ABB21Y;

AB3=aC+cross(Alpha3,rB-rC)-dot(Omega3,Omega3)*(rB-rC);
TAB3=sqrt(AB3(1)^2+(AB3(2)^2));
AB3T(q1)=TAB3
% print the equations for calculating
% alpha3z and aB21
%fprintf('aB2B1cor = [%g, %g, %d] (m/sˆ2)\n', aB2B1cor);
TAB2B2coriolis=sqrt(aB2B1cor(1)^2+(aB2B1cor(2)^2));
aB2B1corT(q1)=TAB2B2coriolis

%des2=[aB2B1cor];
%aB2B1cor(1)=des2(1:3:end);
%aB2B1cor(2)=des2(2:3:end);
%aB2B1corX=aB2B1cor(1);
%aB2B1corY=aB2B1cor(2);
%aB2B1corXx(q1)=aB2B1corX;
%aB2B1corYy(q1)=aB2B1corY;

% Graphic of the mechanism

subplot(3,2,1)
plot(xD1,yD1,'k','LineWidth',1.5)
hold on
plot(xDD,yDD,'g','LineWidth',1.5)
axis([-0.4 0.4 -0.4 0.4]);
hold on
grid on
plot([xA,xD],[yA,yD],'r-x',[xB,xC],[yB,yC],'b-x','LineWidth',1.5)
title('INVERTED SLIDER-CRANK MECHANISM')
text(xA,yA,' A'),...
text(xB,yB,'B'),...
text(xC,yC, 'C'),...
text(xD,yD, 'D'),...
hold off

subplot(3,2,2)
axis([0 370 0 8]);
hold on
grid on
plot([qq],[AB1T],'r',[qq],[AB21T],'b',[qq],[AB3T],'k','LineWidth',1.5)
title ('Aceleraciones vB1 vB21 vB3')
hold off

subplot(3,2,3)
axis([0 370 0 1.5]);
hold on
grid on
plot([qq],[vBB1T],'r',[qq],[vBB21T],'b',[qq],[vBB3T],'k','LineWidth',1.5)
title ('velocidad vB1 vB21 vB3')
hold off

subplot(3,2,4)
axis([0 370 0 4.5]);
hold on
grid on
plot(qq,aB2B1corT,'r','LineWidth',1.5)
title ('Aceleración de coriolis')
hold off

subplot(3,2,5)
axis([0 370 -5 10]);
hold on
grid on
plot([qq],[Omega1T],'r',[qq],[omega23T],'b',[qq],[omega3T],'k','LineWidth
',1.5)
title ('Velocidades Angulares (relativa) w1=w2 w23 w3')
hold off

subplot(3,2,6)
axis([0 370 -20 20]);
hold on
grid on
plot([qq],[Alpha1T],'r',[qq],[alpha21T],'b',[qq],[alpha3T],'k','LineWidth
',1.5)
title ('Aceleraciones Angulares (relativa) alpha1=alpha2 alpha23 alpha3')
hold off

pause(0.01)
end

Você também pode gostar