Está en la página 1de 6

Guía de

Observación 3
Mecanismo de 4 barras.
Velocidad angular y
polígono de velocidad.

Integrantes:
1. Erick Abraham Alvarez Gutiérrez
2. Alan Arturo Sánchez Martín del Campo
3. Pedro Israel Almaguer García
4. Erick Omar Loyola Márquez
5. Edwin Giovanni Sánchez Meza

5° Semestre
Mecanismos “A”

21/09/2021
Mecanismo de 4 barras
Condiciones iniciales
𝑎=6 𝑏 = 10 𝑐=7 𝑑=4 𝜃2 = 88°

𝑤2 = −80

Formulas
𝑑 𝑑 𝑎2 − 𝑏 2 + 𝑐 2 + 𝑑 2 𝑑 𝑐 2 − 𝑑 2 − 𝑎2 − 𝑏 2
𝑘1 = 𝑘2 = 𝑘3 = 𝑘4 = 𝑘5 =
𝑎 𝑐 2𝑎𝑐 𝑏 2𝑎𝑏

𝐴 = cos 𝜃2 − 𝑘1 − 𝑘2 cos 𝜃2 + 𝑘3 −𝐸 + 𝐸 2 − 4𝐷𝐹


𝜃31 = 2 tan−1
2𝐷
𝐵 = −2𝑠𝑒𝑛 𝜃2
−𝐸 − 𝐸 2 − 4𝐷𝐹
𝐶 = 𝑘1 − 𝑘2 + 1 ∙ cos 𝜃2 + 𝑘3 𝜃32 = 2 tan−1
2𝐷

𝐷 = cos 𝜃2 − 𝑘1 + 𝑘4 ∙ cos 𝜃2 + k 5 −𝐵 + 𝐵2 − 4𝐴𝐶


𝜃41 = 2 tan−1
2𝐴
𝐸 = −2𝑠𝑒𝑛(𝜃2 )
−𝐵 − 𝐵2 − 4𝐴𝐶
𝐹 = 𝑘1 + 𝑘4 − 1 ∙ cos 𝜃2 + 𝑘5 𝜃42 = 2 tan−1
2𝐴

𝑎𝑤2 𝑠𝑒𝑛(𝜃4 − 𝜃2 )
𝑤3 = 𝑉𝐴 = 𝑎𝑤2 − sin 𝜃2 + 𝑗𝑐𝑜𝑠 𝜃2
𝑏𝑠𝑒𝑛(𝜃3 − 𝜃4 )
𝑉𝐵/𝐴 = 𝑏𝑤3 −𝑠𝑒𝑛 𝜃3 + 𝑗𝑐𝑜𝑠 𝜃3
𝑎𝑤2 𝑠𝑒𝑛(𝜃2 − 𝜃3 )
𝑤4 = 𝑉𝐵 = 𝑐𝑤4 − sin 𝜃4 + 𝑗𝑐𝑜𝑠 𝜃4
𝑐𝑠𝑒𝑛(𝜃4 − 𝜃3 )

𝑳𝒐𝒏𝒈𝒊𝒕𝒖𝒅 𝒅𝒆𝒍 𝒗𝒆𝒄𝒕𝒐𝒓 𝑨𝒏𝒈𝒖𝒍𝒐 𝒅𝒆𝒍 𝒗𝒆𝒄𝒕𝒐𝒓

𝐼
𝑉𝐴 = 𝑅2 + 𝐼2 𝜔 = tan−1
𝑅
𝑑𝑜𝑛𝑑𝑒 𝑅 = 𝐿𝑎 𝑝𝑎𝑟𝑡𝑒 𝑟𝑒𝑎𝑙 𝑑𝑒 𝑉𝐴
𝑑𝑜𝑛𝑑𝑒 𝑅 = 𝐿𝑎 𝑝𝑎𝑟𝑡𝑒 𝑟𝑒𝑎𝑙 𝑑𝑒 𝑉𝐴
𝑑𝑜𝑛𝑑𝑒 𝐼 = 𝐿𝑎 𝑝𝑎𝑟𝑡𝑒 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑖𝑎 𝑑𝑒 𝑉𝐴
𝑑𝑜𝑛𝑑𝑒 𝐼 = 𝐿𝑎 𝑝𝑎𝑟𝑡𝑒 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑖𝑎 𝑑𝑒 𝑉𝐴

𝑆𝑖 𝑅 < 0 𝑦 𝐼 < 0 𝑟𝑒𝑠𝑡𝑎𝑟 180° 𝑜 𝜋 𝑟𝑎𝑑𝑖𝑎𝑛𝑒𝑠 𝑎𝑙 á𝑛𝑔𝑢𝑙𝑜 𝑜𝑏𝑡𝑒𝑛𝑖𝑑𝑜

𝑆𝑖 𝑅 < 0 𝑦 𝐼 > 0 𝑠𝑢𝑚𝑎𝑟 180° 𝑜 𝜋 𝑟𝑎𝑑𝑖𝑎𝑛𝑒𝑠 𝑎𝑙 á𝑛𝑔𝑢𝑙𝑜 𝑜𝑏𝑡𝑒𝑛𝑖𝑑𝑜

Operaciones
− −1.998782 + −1.998782 2 − 4 −1.476141 −0.212606 180
𝜃30 = 2 tan−1 ∙ = −102.126586°
2 −1.476141 𝜋

− −1.998782 − −1.998782 2 − 4 −1.476141 −0.212606 180


𝜃31 = 2 tan−1 ∙ = −13.275174°
2 −1.476141 𝜋

− −1.998782 + −1.998782 2 − 4 −0.639805 0.623729 180


𝜃40 = 2 tan−1 ∙ = −147.311365°
2 −0.639805 𝜋

− −1.998782 + −1.998782 2 − 4 −0.639805 0.623729 180


𝜃41 = 2 tan−1 ∙ = 31.909605°
2 −0.639805 𝜋

6 −80 𝑠𝑒𝑛 −147.311365 − 88


𝑤31 = = −55.637511𝑟𝑎𝑑/𝑠
10 𝑠𝑒𝑛(−102.126586 + 147.311365)

6 −80 𝑠𝑒𝑛(88 + 102.126586)


𝑤41 = = −16.995702𝑟𝑎𝑑/𝑠
7 𝑠𝑒𝑛(−147.311365 + 102.126586)

6 −80 𝑠𝑒𝑛(31.909605 − 88)


𝑤32 = = −56.155943𝑟𝑎𝑑/𝑠
10 𝑠𝑒𝑛(𝜃3 − 31.909605)

6 −80 𝑠𝑒𝑛(88 + 13.275174)


𝑤42 = = −94.797752𝑟𝑎𝑑/𝑠
7 𝑠𝑒𝑛(31.909605 + 13.275174)

𝑉𝐴1 = 6 −80 − sin 88 + 𝑗𝑐𝑜𝑠 88 = 479.707597 − 𝑗 16.751758

𝑉𝐵/𝐴1 = 10 −55.637511 −𝑠𝑒𝑛 −102.126586 + 𝑗𝑐𝑜𝑠 −102.126586 = −543.960081 + 𝑗 116.878971

𝑉𝐵1 = 7 −16.995702 − sin −147.311365 + 𝑗𝑐𝑜𝑠 −147.311365 = −64.252484 + 𝑗 100.127212

𝑉𝐴2 = 6 −88 − sin 88 + 𝑗𝑐𝑜𝑠 88 = 479.707597 − 𝑗 16.751758

𝑉𝐵/𝐴2 = 10 −56.155943 −𝑠𝑒𝑛 −13.275174 + 𝑗𝑐𝑜𝑠 −13.275174 = −128.949791 − 𝑗 546.553702

𝑉𝐵2 = 7 −94.797752 − sin 31.909605 + 𝑗𝑐𝑜𝑠 31.909605 = 350.757806 − 𝑗 563.305460


𝑉𝐴1 = 479.707597 2 + 16.751758 2 = 20

𝑉𝐵/𝐴1 = −543.960081 2 + 116.878971 2 = 41.936760

𝑉𝐵1 = −64.252484 2 + 100.127212 2 = 35.925613

𝑉𝐴2 = 479.707597 2 + 16.751758 2 = 20.000000

𝑉𝐵/𝐴2 = −128.949791 2 + 546.553702 2 = 4.636464

𝑉𝐵2 = 350.757806 2 + 563.305460 2 = 23.954246

−16.751758
𝜔11 = tan−1 = −2 °
479.707597

116.878971
𝜔21 = tan−1 + 180° = 167.873414°
−543.960081

100.127212
𝜔31 = tan−1 + 180° = 122.688635°
−64.252484

−16.751758
𝜔1 2 = tan−1 = −2°
479.707597

−546.553702
𝜔2 2 = tan−1 − 180° = −103.275174°
−128.949791

−563.305460
𝜔3 2 = tan−1 − 180° = − 238.090395°
350.757806

Soluciones
𝑠𝑒𝑔𝑢𝑛𝑑𝑎 𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛
𝑝𝑟𝑖𝑚𝑒𝑟𝑎 𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛

𝜃2 = 88° 𝜃2 = 88°

𝜃31 = −13.275° 𝜃32 = −102.126°

𝜃41 = 31.909° 𝜃42 = −147.311°

𝑤32 = −56.155943 𝑟𝑎𝑑/𝑠


𝑤31 = −55.637511 𝑟𝑎𝑑/𝑠
𝑤42 = −94.797752 𝑟𝑎𝑑/𝑠
𝑤41 = −16.995702 𝑟𝑎𝑑/𝑠

𝑉𝐴1 = 479.707597 − 𝑗 16.751758 𝑉𝐴2 = 479.707597 − 𝑗 16.751758

𝑉𝐵/𝐴1 = −543.960081 + 𝑗 116.878971 𝑉𝐵/𝐴2 = −128.949791 − 𝑗 546.553702

𝑉𝐵1 = −64.252484 + 𝑗 100.127212 𝑉𝐵2 = 350.757806 − 𝑗 563.305460

𝑝𝑜𝑙í𝑔𝑜𝑛𝑜 𝑑𝑒 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑝𝑜𝑙í𝑔𝑜𝑛𝑜 𝑑𝑒 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑


Código

#include <stdio.h>#include <math.h>


#include <windows.h>

#define PI 3.14159265359

int main() {
///Estética del sistema.
system("COLOR 0A");

///Declaración de funciones.
///Separadas por grupos para estética del sistema.
double a,b,c,d;
double A,B,C,D,E,F;
double A_dif[2], B_dif[2], C_dif[2], D_dif[2], E_dif[2], F_dif[2];
double alpha_2,alpha_3[2],alpha_4[2];
double k_1,k_2,k_3,k_4,k_5;
double theta_2, theta_3[2], theta_4[2];
double w_2,w_3[2],w_4[2];
double V_Ar[2], V_Br[2], V_BAr[2], V_Ai[2], V_Bi[2], V_BAi[2];
double A_Ar[2],A_BAr[2],A_Br[2],A_Ai[2],A_BAi[2],A_Bi[2];
double rad, grad;
double z_1[2],z_2[2],z_3[2],z_ang1[2],z_ang2[2],z_ang3[2];

//6,10,7,4,88,-80
///Ingreso manual de las condiciones iniciales:
///Se podría implementar durante el programa para mayor
///versatilidad.

///-------------------------------------------------///
//link 2
a=6;
//link 3
b=10;
//link 4
c=7;
//link 1
d=4;
//theta_2
grad=88;
//vel. angular
w_2=-80;
//alpha_2
alpha_2=0;

///-------------------------------------------------///

///Conversión de grados a radianes.


///Las funciones de math.h trabajan con radianes.
rad=grad * ( PI / 180 );

theta_2=rad;

///Calculando constantes "k"


k_1=( d / a );
k_2=( d / c );
//K_3 Tiene un signo - en vez de un signo + (el termino b^2 es negativo?)
//en los apuntes de clase. VERIFICAR
k_3=( ( pow(a,2) - pow(b,2) + pow(c,2) + pow(d,2) ) / ( 2 * a * c ) );
k_4=( d / b );
k_5=( ( pow(c,2) - pow(d,2) - pow(a,2) - pow(b,2) ) / ( 2 * a * b ) );

///Calculando constantes A,B,C,D,E,F


A=cos(theta_2) - k_1 - ( k_2 * cos(theta_2) ) + k_3;
B=( -2 ) * sin(theta_2);
C=k_1 - ( k_2 + 1 ) * cos(theta_2) + k_3;
D=cos(theta_2) - k_1 + k_4 * cos(theta_2) + k_5;
E=B;
F=k_1 + ( k_4 - 1 ) * cos(theta_2) + k_5;

///Calculando ángulos 3 y 4 ambos casos


theta_3[0]=(2*atan((-E+sqrt((pow(E,2))-(4*D*F)))/(2*D)));
theta_3[1]=(2*atan((-E-sqrt((pow(E,2))-(4*D*F)))/(2*D)));

theta_4[0]=(2*atan((-B+sqrt((pow(B,2))-(4*A*C)))/(2*A)));
theta_4[1]=(2*atan((-B-sqrt((pow(B,2))-(4*A*C)))/(2*A)));

///Calculado vel. angular


w_3[0]=( ( a*w_2*sin(theta_4[0]-theta_2) ) / ( b*sin(theta_3[0]-
theta_4[0]) ) );
w_3[1]=( ( a*w_2*sin(theta_4[1]-theta_2) ) / ( b*sin(theta_3[1]-
theta_4[1]) ) );

w_4[0]=( ( a*w_2*sin(theta_2-theta_3[0]) ) / ( c*sin(theta_4[0]-


theta_3[0]) ) );
w_4[1]=( ( a*w_2*sin(theta_2-theta_3[1]) ) / ( c*sin(theta_4[1]-
theta_3[1]) ) );

///Calculando vel.
V_Ar[0]=a*w_2*(-sin(theta_2));
V_BAr[0]=b*w_3[0]*(-sin(theta_3[0]));
V_Br[0]=c*w_4[0]*(-sin(theta_4[0]));

V_Ai[0]=a*w_2*(cos(theta_2));
V_BAi[0]=b*w_3[0]*(cos(theta_3[0]));
V_Bi[0]=c*w_4[0]*(cos(theta_4[0]));

V_Ar[1]=a*w_2*(-sin(theta_2));
V_BAr[1]=b*w_3[1]*(-sin(theta_3[1]));
V_Br[1]=c*w_4[1]*(-sin(theta_4[1]));

V_Ai[1]=a*w_2*(cos(theta_2));
V_BAi[1]=b*w_3[1]*(cos(theta_3[1]));
V_Bi[1]=c*w_4[1]*(cos(theta_4[1]));

///Calculando dif. aceleracion


///falta formula alpha_2

A_dif[0]=c*sin(theta_4[0]);
B_dif[0]=b*sin(theta_3[0]);
C_dif[0]=(a*alpha_2*sin(theta_2))+(a*pow(w_2,2)*cos(theta_2))+(b*pow(w_3[
0],2)*cos(theta_3[0]))-(c*pow(w_4[0],2)*cos(theta_4[0]));
D_dif[0]=c*cos(theta_4[0]);
E_dif[0]=b*cos(theta_3[0]);
F_dif[0]=(a*alpha_2*cos(theta_2))-(a*pow(w_2,2)*sin(theta_2))-
(b*pow(w_3[0],2)*sin(theta_3[0]))+(c*pow(w_4[0],2)*sin(theta_4[0]));

A_dif[1]=c*sin(theta_4[1]);
B_dif[1]=b*sin(theta_3[1]);
C_dif[1]=(a*alpha_2*sin(theta_2))+(a*pow(w_2,2)*cos(theta_2))+(b*pow(w_3[
1],2)*cos(theta_3[1]))-(c*pow(w_4[1],2)*cos(theta_4[1]));
D_dif[1]=c*cos(theta_4[1]);
E_dif[1]=b*cos(theta_3[1]);
F_dif[1]=(a*alpha_2*cos(theta_2))-(a*pow(w_2,2)*sin(theta_2))-
(b*pow(w_3[1],2)*sin(theta_3[1]))+(c*pow(w_4[1],2)*sin(theta_4[1]));
///Calculando alpha
alpha_3[0]=( ( (C_dif[0]*D_dif[0])-(A_dif[0]*F_dif[0]) ) / (
(A_dif[0]*E_dif[0])-(B_dif[0]*D_dif[0]) ) );
alpha_4[0]=( ( (C_dif[0]*E_dif[0])-(B_dif[0]*F_dif[0]) ) / (
(A_dif[0]*E_dif[0])-(B_dif[0]*D_dif[0]) ) );

alpha_3[1]=( ( (C_dif[1]*D_dif[1])-(A_dif[1]*F_dif[1]) ) / (
(A_dif[1]*E_dif[1])-(B_dif[1]*D_dif[1]) ) );
alpha_4[1]=( ( (C_dif[1]*E_dif[1])-(B_dif[1]*F_dif[1]) ) / (
(A_dif[1]*E_dif[1])-(B_dif[1]*D_dif[1]) ) );

///Calculando aceleraciones
//double A_Ar[2],A_BAr[2],A_Br[2],A_Ai[2],A_BAi[2],A_Bi[2];

A_Ar[0]=( (a*alpha_2)*(-sin(theta_2)) ) - ( (a*pow(w_2,2))*(cos(theta_2)


));
A_BAr[0]=( (b*alpha_3[0])*(-sin(theta_3[0])) ) - (
(b*pow(w_3[0],2))*(cos(theta_3[0]) ));
A_Br[0]=( (c*alpha_4[0])*(-sin(theta_4[0])) ) - (
(c*pow(w_4[0],2))*(cos(theta_4[0]) ));

A_Ai[0]=( (a*alpha_2)*(cos(theta_2)) ) - ( (a*pow(w_2,2))*(sin(theta_2)


));
A_BAi[0]=( (b*alpha_3[0])*(cos(theta_3[0])) ) - (
(b*pow(w_3[0],2))*(sin(theta_3[0]) ));
A_Bi[0]=( (c*alpha_4[0])*(cos(theta_4[0])) ) - (
(c*pow(w_4[0],2))*(sin(theta_4[0]) ));

A_Ar[1]=( (a*alpha_2)*(-sin(theta_2)) ) - ( (a*pow(w_2,2))*(cos(theta_2)


));
A_BAr[1]=( (b*alpha_3[1])*(-sin(theta_3[1])) ) - (
(b*pow(w_3[1],2))*(cos(theta_3[1]) ));
A_Br[1]=( (c*alpha_4[1])*(-sin(theta_4[1])) ) - (
(c*pow(w_4[1],2))*(cos(theta_4[1]) ));

A_Ai[1]=( (a*alpha_2)*(cos(theta_2)) ) - ( (a*pow(w_2,2))*(sin(theta_2)


));
A_BAi[1]=( (b*alpha_3[1])*(cos(theta_3[1])) ) - (
(b*pow(w_3[1],2))*(sin(theta_3[1]) ));
A_Bi[1]=( (c*alpha_4[1])*(cos(theta_4[1])) ) - (
(c*pow(w_4[1],2))*(sin(theta_4[1]) ));

///Calculando vectores del poligono de velocidad

z_1[0]=sqrt( pow(V_Ar[0],2) + pow(V_Ai[0],2) );


z_2[0]=sqrt( pow(V_BAr[0],2) + pow(V_BAi[0],2) );
z_3[0]=sqrt( pow(V_Br[0],2) + pow(V_Bi[0],2) );

z_1[1]=sqrt( pow(V_Ar[1],2) + pow(V_Ai[1],2) );


z_2[1]=sqrt( pow(V_BAr[1],2) + pow(V_BAi[1],2) );
z_3[1]=sqrt( pow(V_Br[1],2) + pow(V_Bi[1],2) );

z_ang1[0]=atan(V_Ai[0]/V_Ar[0]);
z_ang2[0]=atan(V_BAi[0]/V_BAr[0]);
z_ang3[0]=atan(V_Bi[0]/V_Br[0]);

z_ang1[1]=atan(V_Ai[1]/V_Ar[1]);
z_ang2[1]=atan(V_BAi[1]/V_BAr[1]);
z_ang3[1]=atan(V_Bi[1]/V_Br[1]);

if(V_Ar[0]<0 && V_Ai[0]>0){


z_ang1[0]+=PI;
}else if(V_Ar[0]<0 && V_Ai[0]<0){
z_ang1[0]-=PI; }
if(V_BAr[0]<0 && V_BAi[0]>0){
z_ang2[0]+=PI;
}else if(V_BAr[0]<0 && V_BAi[0]<0){
z_ang2[0]-=PI; }
if(V_Br[0]<0 && V_Bi[0]>0){
z_ang3[0]+=PI;
}else if(V_BAr[0]<0 && V_BAi[0]<0){
z_ang3[0]-=PI; }

if(V_Ar[1]<0 && V_Ai[1]>0){


z_ang1[1]+=PI;
}else if(V_Ar[1]<0 && V_Ai[1]<0){
z_ang1[1]-=PI; }
if(V_BAr[1]<0 && V_BAi[1]>0){
z_ang2[1]+=PI;
}else if(V_BAr[1]<0 && V_BAi[1]<0){
z_ang2[1]-=PI; }
if(V_Br[1]<0 && V_Bi[1]>0){
z_ang3[1]+=PI;
}else if(V_BAr[1]<0 && V_BAi[1]<0){
z_ang3[1]-=PI; }
z_ang1[0]*=180/PI;
z_ang2[0]*=180/PI;
z_ang3[0]*=180/PI;

z_ang1[1]*=180/PI;
z_ang2[1]*=180/PI;
z_ang3[1]*=180/PI;

///Impresión de resultados
printf("a: %lf\n",a);
printf("b: %lf\n",b);
printf("c: %lf\n",c);
printf("d: %lf\n\n",d);

printf("A: %lf\n",A);
printf("B: %lf\n",B);
printf("C: %lf\n",C);
printf("D: %lf\n",D);
printf("E: %lf\n",E);
printf("F: %lf\n\n",F);

printf("k_1: %lf\n",k_1);
printf("k_2: %lf\n",k_2);
printf("k_3: %lf\n",k_3);
printf("k_4: %lf\n",k_4);
printf("k_5: %lf\n\n",k_5);

printf("theta_2: %lf°\n",theta_2*(180/PI));
printf("theta_3[1]: %lf°\n",theta_3[0]*(180/PI));
printf("theta_3[2]: %lf°\n",theta_3[1]*(180/PI));
printf("theta_4[1]: %lf°\n",theta_4[0]*(180/PI));
printf("theta_4[2]: %lf°\n\n",theta_4[1]*(180/PI));

printf("w_2: %lf\n",w_2);
printf("w_3[1]: %lf\n",w_3[0]);
printf("w_3[2]: %lf\n",w_3[1]);
printf("w_4[1]: %lf\n",w_4[0]);
printf("w_4[2]: %lf\n\n",w_4[1]);

return 0;

}
Resultados

También podría gustarte