Está en la página 1de 14

MECANICA DE MÁQUINAS

Módulo 06 – Análisis de desplazamiento 3R1P


Cuestionamiento:
¿Cómo se determina la relación de desplazamiento entre
entrada y salida en un mecanismo Grashof 3R1P?

Temas del módulo:


 Tema 1 – Análisis de desplazamiento 3R1P – Pag (2)
 Tema 2 – Cadena cinemática 3R1P – Tipo I – Pag (3-4)
 Tema 3 – Cadena cinemática 3R1P – Tipo II – Pag (5-7)
 Tema 4 – Código de programación (Cinemática directa) – Pag (8-10)
 Tema 5 – Código de programación (Cinemática inversa) – Pag (11-14)

Fuentes y referencias:
 National Programme on Technology Enhanced Learning (NPTEL). Ministry of
Human Resource Development (MHRD). Government of India.
 CARDONA Salvador & CLOS Daniel. Teoría de máquinas. Ediciones UPC. 2001
 SHIGLEY Joseph. Teoría de Máquinas y Mecanismos. Mc Graw-Hill. 1998
 https://brilliant.org/

Actividades del módulo:


Item Actividad Temas Entregable
1 Completar los códigos para 4R, 3R1P TI y 3R1P TII 1,2,3,4,5 Código

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 1


TEMA 1 - Análisis de desplazamiento 3R1P
Análisis de desplazamiento

Se analizarán 2 tipos de cadenas 3R1P en cinemática directa e inversa:

Cadena cinemática 3R1P - tipo I (Predominante la rotación)

Cadena cinemática 3R1P - tipo II (Predominante la extensión-contracción)

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 2


TEMA 2 – Cadena cinemática 3R1P – Tipo I
Análisis en cinemática directa:

Se determina el segundo modo de ensamble para el mecanismo Grashof 3R1P tipo I


en cinemática directa

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 3


TEMA 2 – Cadena cinemática 3R1P – Tipo I
Análisis en cinemática inversa:

Se determina el segundo modo de ensamble para el mecanismo Grashof 3R1P tipo I


en cinemática inversa

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 4


TEMA 3 - Cadena cinemática 3R1P – Tipo II
Cadena cinemática equivalente para el análisis:

En la cadena cinemática tipo II para simplificar el análisis es posible considerar


a la corredera rígida formando un ángulo de 90° con respecto a su guía de
deslizamiento, realizar los cálculos de desplazamiento y hacer un ajuste final
teniendo en cuenta el ángulo real que la corredera rígida forme con respecto a
la guía (la desviación en ángulo y longitud para la corredera rígida diferente
de 90° será un valor constante).

Análisis en cinemática directa:

Al calcular el Arco-coseno se obtendrán dos soluciones 𝜃 y 360°-𝜃

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 5


TEMA 3 - Cadena cinemática 3R1P – Tipo II

Se determina el segundo modo de ensamble para el mecanismo Grashof 3R1P tipo II


en cinemática directa.

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 6


TEMA 3 - Cadena cinemática 3R1P – Tipo II
Análisis en cinemática inversa:

Se determina el segundo modo de ensamble para el mecanismo Grashof 3R1P tipo II


en cinemática inversa.

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 7


TEMA 4 – Código de programación (Cinemática directa)
%-----------------------------------------------------------------------
% Cinemática directa Grashof 3R1P tipo I

% Limpiar variables
clc;
clear global;

x=2;%% 1 para primera solución curva de acoplador


%% 2 para segunda solución curva de acoplador
%% 3 para previsualizar 1 modo de ensamble
%% 4 para previsualizar 2 modo de ensamble

% Parámetros geométricos
theta2=45 %% Ingresar el valor en grados[°]
e=3; %% desviación (offset)
l2=6; %% manivela
l3=10; %% biela

if x==1
for th2=0:0.1:6*pi
a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)
b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
plot([0 l2*cos(th2)],[0 l2*sin(th2)],'o-','linewidth',2); hold on; %% grafica la
manivela
s1=l2*cos(th2)+sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s1 (primer
modo)
th31=atan2([e-l2*sin(th2)],[s1-l2*cos(th2)]); %% calcula el valor de Theta31
(primer modo)
plot([l2*cos(th2) l2*cos(th2)+l3*cos(th31)],[l2*sin(th2)
l2*sin(th2)+l3*sin(th31)],'o-','linewidth',2); hold off; %% <------- grafica la biela
(en función de th2 & th31)
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005)
end
for th2=0:0.1:3*pi
a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)
b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
s1=l2*cos(th2)+sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s1 (primer
modo)
th31=atan2([e-l2*sin(th2)],[s1-l2*cos(th2)]); %% calcula el valor de Theta31
(primer modo)
plot(l2*cos(th2),l2*sin(th2),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th2)+l3*cos(th31),l2*sin(th2)+l3*sin(th31),'o-','linewidth',2); hold
on; %% <------- grafica la biela (en función de th2 & th31)
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005);
end
elseif x==2
for th2=0:0.1:6*pi
a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)
b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
plot([0 l2*cos(th2)],[0 l2*sin(th2)],'o-','linewidth',2); hold on; %% grafica la
manivela
s2=l2*cos(th2)-sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s2 (segundo
modo)

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 8


TEMA 4 – Código de programación (Cinemática directa)
th32=atan2([e-l2*sin(th2)],[s2-l2*cos(th2)]); %% calcula el valor de Theta32
(segundo modo)
plot([l2*cos(th2) l2*cos(th2)+l3*cos(th32)],[l2*sin(th2)
l2*sin(th2)+l3*sin(th32)],'o-','linewidth',2); hold off; %% <------- grafica la biela
(en función de th2 & th32)
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005)
end
for th2=0:0.1:2*pi
a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)
b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
s2=l2*cos(th2)-sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s2 (segundo
modo)
th32=atan2([e-l2*sin(th2)],[s2-l2*cos(th2)]); %% calcula el valor de Theta32
(segundo modo)
plot(l2*cos(th2),l2*sin(th2),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th2)+l3*cos(th32),l2*sin(th2)+l3*sin(th32),'o-','linewidth',2); hold
on; %% <------- grafica la biela (en función de th2 & th32)
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005);
end
elseif x==3
hold off
th2=theta2*pi/180; %% <------- convertir grados a radianes [th2 <- theta2]

a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)


b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)

plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera


plot([0 l2*cos(th2)],[0 l2*sin(th2)],'o-','linewidth',2); hold on; %% grafica la
manivela
s1=l2*cos(th2)+sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s1 (primer
modo)
th31=atan2([e-l2*sin(th2)],[s1-l2*cos(th2)]); %% calcula el valor de Theta31
(primer modo)
plot([l2*cos(th2) l2*cos(th2)+l3*cos(th31)],[l2*sin(th2)
l2*sin(th2)+l3*sin(th31)],'o-','linewidth',2); hold off; %% <------- grafica la biela
(en función de th2 & th31)
axis([-20 20 -20 20]); %% delimita el area de graficación
P=[l2*cos(th2) l2*sin(th2)] %% <------- Determina el punto P (Par R manivela-biela)
(en función de th2)
Q=[l2*cos(th2)+l3*cos(th31) l2*sin(th2)+l3*sin(th31)] %% <------- Determina el
punto Q (Par R biela-corredera)(en función de th2 & th31)
theta31=th31*180/pi;

if theta31<0
theta31=theta31+360
else
theta31
end
else
hold off
th2=theta2*pi/180; %% <------- convertir grados a radianes [th2 <- theta2]

a=-2*l2*cos(th2); %% <------- defina el valor de a (en función de th2)


b=l2^2+e^2-l3^2-2*l2*e*sin(th2); %% <------- defina el valor de b (en función de
th2)
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
plot([0 l2*cos(th2)],[0 l2*sin(th2)],'o-','linewidth',2); hold on; %% grafica la
manivela

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 9


TEMA 4 – Código de programación (Cinemática directa)
s2=l2*cos(th2)-sqrt(l3^2-(l2*sin(th2)-e)^2); %% calcula el valor de s2 (segundo
modo)
th32=atan2([e-l2*sin(th2)],[s2-l2*cos(th2)]); %% calcula el valor de Theta32
(segundo modo)
plot([l2*cos(th2) l2*cos(th2)+l3*cos(th32)],[l2*sin(th2)
l2*sin(th2)+l3*sin(th32)],'o-','linewidth',2); hold off; %% <------- grafica la biela
(en función de th2 & th32)
axis([-20 20 -20 20]); %% delimita el area de graficación
P=[l2*cos(th2) l2*sin(th2)] %% <------- Determina el punto P (Par R manivela-biela)
(en función de th2)
Q=[l2*cos(th2)+l3*cos(th32) l2*sin(th2)+l3*sin(th32)] %% <------- Determina el
punto Q (Par R biela-corredera)(en función de th2 & th32)
theta32=th32*180/pi;

if theta32<0
theta32=theta32+360
else
theta32
end

end

%-----------------------------------------------------------------------

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 10


TEMA 5 - Código de programación (Cinemática inversa)
%-----------------------------------------------------------------------
% Cinemática inversa Grashof 3R1P Tipo I

% Limpiar variables
clc;
clear global;

x=2;%% 1 para primera solución curva de acoplador


%% 2 para segunda solución curva de acoplador
%% 3 para previsualizar 1 modo de ensamble
%% 4 para previsualizar 2 modo de ensamble

% Parámetros geométricos
s=15 %% Ingresar el valor del desplazamiento
e=3; %% desviación (offset)
l2=6; %% manivela
l3=10; %% biela

if x==1
for s=(sqrt((l3-l2)^2-e^2)):0.1:(sqrt((l3+l2)^2-e^2))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera

th21=2*atan2([a-sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta21 (primer


modo)
th31=atan2([e-l2*sin(th21)],[s-l2*cos(th21)]); %% calcula el valor de Theta31
(primer modo)
plot([0 l2*cos(th21)],[0 l2*sin(th21)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th21) l2*cos(th21)+l3*cos(th31)],[l2*sin(th21)
l2*sin(th21)+l3*sin(th31)],'o-','linewidth',2); hold off; %% <------- grafica la biela

axis([-20 20 -20 20]); %% delimita el area de graficación


pause(0.005)
end
for s=(sqrt((l3+l2)^2-e^2):-0.1:(sqrt((l3-l2)^2-e^2)))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera

th21=2*atan2([a-sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta21 (primer


modo)
th31=atan2([e-l2*sin(th21)],[s-l2*cos(th21)]); %% calcula el valor de Theta31
(primer modo)
plot([0 l2*cos(th21)],[0 l2*sin(th21)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th21) l2*cos(th21)+l3*cos(th31)],[l2*sin(th21)
l2*sin(th21)+l3*sin(th31)],'o-','linewidth',2); hold off; %% <------- grafica la biela

axis([-20 20 -20 20]); %% delimita el area de graficación


pause(0.005)
end
for s=(sqrt((l3-l2)^2-e^2)):1:(sqrt((l3+l2)^2-e^2))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 11


TEMA 5 - Código de programación (Cinemática inversa)
th21=2*atan2([a-sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta21 (primer
modo)
th31=atan2([e-l2*sin(th21)],[s-l2*cos(th21)]); %% calcula el valor de Theta31
(primer modo)
plot(l2*cos(th21),l2*sin(th21),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th21)+l3*cos(th31),l2*sin(th21)+l3*sin(th31),'o-','linewidth',2); hold
on; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.05);
end
for s=(sqrt((l3+l2)^2-e^2):-1:(sqrt((l3-l2)^2-e^2)))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);

th21=2*atan2([a-sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta21 (primer


modo)
th31=atan2([e-l2*sin(th21)],[s-l2*cos(th21)]); %% calcula el valor de Theta31
(primer modo)
plot(l2*cos(th21),l2*sin(th21),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th21)+l3*cos(th31),l2*sin(th21)+l3*sin(th31),'o-','linewidth',2); hold
on; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.05);
end
elseif x==2
for s=(sqrt((l3-l2)^2-e^2)):0.1:(sqrt((l3+l2)^2-e^2))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
th22=2*atan2([a+sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta22 (segundo
modo)
th32=atan2([e-l2*sin(th22)],[s-l2*cos(th22)]); %% calcula el valor de Theta32
(segundo modo)
plot([0 l2*cos(th22)],[0 l2*sin(th22)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th22) l2*cos(th22)+l3*cos(th32)],[l2*sin(th22)
l2*sin(th22)+l3*sin(th32)],'o-','linewidth',2); hold off; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005)
end
for s=(sqrt((l3+l2)^2-e^2):-0.1:(sqrt((l3-l2)^2-e^2)))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera
th22=2*atan2([a+sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta22 (segundo
modo)
th32=atan2([e-l2*sin(th22)],[s-l2*cos(th22)]); %% calcula el valor de Theta32
(segundo modo)
plot([0 l2*cos(th22)],[0 l2*sin(th22)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th22) l2*cos(th22)+l3*cos(th32)],[l2*sin(th22)
l2*sin(th22)+l3*sin(th32)],'o-','linewidth',2); hold off; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.005)
end
for s=(sqrt((l3-l2)^2-e^2)):1:(sqrt((l3+l2)^2-e^2))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
th22=2*atan2([a+sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta22 (segundo
modo)

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 12


TEMA 5 - Código de programación (Cinemática inversa)
th32=atan2([e-l2*sin(th22)],[s-l2*cos(th22)]); %% calcula el valor de Theta32
(segundo modo)
plot(l2*cos(th22),l2*sin(th22),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th22)+l3*cos(th32),l2*sin(th22)+l3*sin(th32),'o-','linewidth',2); hold
on; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.05);
end
for s=(sqrt((l3+l2)^2-e^2):-1:(sqrt((l3-l2)^2-e^2)))
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
th22=2*atan2([a+sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta22 (segundo
modo)
th32=atan2([e-l2*sin(th22)],[s-l2*cos(th22)]); %% calcula el valor de Theta32
(segundo modo)
plot(l2*cos(th22),l2*sin(th22),'o-','linewidth',2); hold on; %% grafica la manivela
plot(l2*cos(th22)+l3*cos(th32),l2*sin(th22)+l3*sin(th32),'o-','linewidth',2); hold
on; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
pause(0.05);
end
elseif x==3
hold off
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera

th21=2*atan2([a-sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta21 (primer


modo)
th31=atan2([e-l2*sin(th21)],[s-l2*cos(th21)]); %% calcula el valor de Theta31
(primer modo)
plot([0 l2*cos(th21)],[0 l2*sin(th21)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th21) l2*cos(th21)+l3*cos(th31)],[l2*sin(th21)
l2*sin(th21)+l3*sin(th31)],'o-','linewidth',2); hold off; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
P=[l2*cos(th21) l2*sin(th21)] %% <------- Determina el punto P (Par R manivela-
biela)
Q=[l2*cos(th21)+l3*cos(th31) l2*sin(th21)+l3*sin(th31)] %% <------- Determina el
punto Q (Par R biela-corredera)
theta21=th21*180/pi;
theta31=th31*180/pi;
if theta21<0
theta21=theta21+360
else
theta21
end

if theta31<0
theta31=theta31+360
else
theta31
end
else
hold off
a=e; %% <------- defina el valor de a
b=s; %% <------- defina el valor de b
c=(l2^2+s^2+e^2-l3^2)/(2*l2);
plot([-30 30],[e e],'o-','linewidth',2); hold on; %% grafica linea de la corredera

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 13


TEMA 5 - Código de programación (Cinemática inversa)
th22=2*atan2([a+sqrt(a^2+b^2-c^2)],(b+c)); %% calcula el valor de Theta22 (segundo
modo)
th32=atan2([e-l2*sin(th22)],[s-l2*cos(th22)]); %% calcula el valor de Theta32
(segundo modo)
plot([0 l2*cos(th22)],[0 l2*sin(th22)],'o-','linewidth',2); hold on; %% grafica la
manivela
plot([l2*cos(th22) l2*cos(th22)+l3*cos(th32)],[l2*sin(th22)
l2*sin(th22)+l3*sin(th32)],'o-','linewidth',2); hold off; %% <------- grafica la biela
axis([-20 20 -20 20]); %% delimita el area de graficación
P=[l2*cos(th22) l2*sin(th22)] %% <------- Determina el punto P (Par R manivela-
biela)
Q=[l2*cos(th22)+l3*cos(th32) l2*sin(th22)+l3*sin(th32)] %% <------- Determina el
punto Q (Par R biela-corredera)
theta22=th22*180/pi;
theta32=th32*180/pi;
if theta22<0
theta22=theta22+360
else
theta22
end

if theta32<0
theta32=theta32+360
else
theta32
end
end

%-----------------------------------------------------------------------

MECÁNICA DE MÁQUINAS / Mauricio Pedroza Torres – V20.01 (ptorres.pro@gmail.com) 14

También podría gustarte