Vous êtes sur la page 1sur 16

In[121]:= 

Out[121]= 

In[122]:= Funciones
Out[122]= Funciones

In[123]:= (*Nombre[argumento] := Codigo;*)


(*Matriz de rotacion*)
Rz[α_] := {{Cos[α], - Sin[α], 0}, {Sin[α], Cos[α], 0}, {0, 0, 1}};
coseno seno seno coseno
(*Hacer grafica de colores*)
Grafica[tabla_, RGB_, X_, Y_] :=
ListPlot[tabla, ImageSize → 900, BaseStyle → {24, FontFamily → "Arial"},
representación de lista tamaño de imagen estilo base familia de tipo de letra
Joined → True, PlotStyle → {Thickness[0.01], RGB},
unido verd⋯ estilo de represe⋯ grosor
Frame → True, GridLines → Automatic, FrameLabel → {X, Y}];
marco verda⋯ parrilla de líneas automático etiqueta de marco
(*Convertir vector 3D a 2D*)
deriva deriva
T2D[R_] := {R[[1]], R[[2]]};

In[126]:=

In[127]:= Rz[60 * Degree] // MatrixForm


grado forma de matriz
T2D[{1, 2, 3}]
Out[127]//MatrixForm=
1 3
2
- 2
0
3 1
2 2
0
0 0 1

Out[128]= {1, 2}

In[129]:= Datos
Out[129]= Datos
2 Analisis de mecanismos 1.nb

In[130]:= x2 = 0.04; (*Longitud eslabon 2*)


x3 = 0.28;(*Longitud eslabon 3*)
x3p = 0.26;
x3pp = 0.04;
x4 = 0.4;
x4p = 0.328;
x1 = 0.26;
y1 = 0.04;
β3 = 290 * Degree;
grado
β4 = 37.56 * Degree;
grado

In[140]:= Ecuaciones cinematicas


Out[140]= cinematicas Ecuaciones
Analisis de mecanismos 1.nb 3

In[141]:= Clear[θ2, θ3, θ4, ω2, ω3, ω4, α2, α3, α4];
borra
(*Posicion*)
r2 = {x2, 0, 0};
r3 = {x3, 0, 0};
r4 = {x4, 0, 0};

R2 = Rz[θ2].r2;
R3 = Rz[θ3].r3;
R4 = Rz[θ4].r4;
R1 = {- x1, y1, 0};

(*Velocidad*)
omega2 = {0, 0, ω2};
omega3 = {0, 0, ω3};
omega4 = {0, 0, ω4};

V2 = omega2 ⨯ R2;
V3 = omega3 ⨯ R3;
V4 = omega4 ⨯ R4;
V1 = {0, 0, 0};

(*Aceleracion*)

alfa2 = {0, 0, α2};


alfa3 = {0, 0, α3};
alfa4 = {0, 0, α4};

A2 = alfa2 ⨯ R2 - ω22 * R2;


A3 = alfa3 ⨯ R3 - ω32 * R3;
A4 = alfa4 ⨯ R4 - ω42 * R4;
A1 = {0, 0, 0};
(*Ecuaciones vectoriales*)
Pos = R2 + R3 - R4 + R1;
Vel = V2 + V3 - V4 + V1;
Acel = A2 + A3 - A4 + A1;

Pos // MatrixForm
forma de matriz
Vel // MatrixForm
forma de matriz
Acel // MatrixForm
forma de matriz
4 Analisis de mecanismos 1.nb

Out[166]//MatrixForm=
- 0.26 + 0.04 Cos[θ2] + 0.28 Cos[θ3] - 0.4 Cos[θ4]
0.04 + 0.04 Sin[θ2] + 0.28 Sin[θ3] - 0.4 Sin[θ4]
0.
Out[167]//MatrixForm=
0. - 0.04 ω2 Sin[θ2] - 0.28 ω3 Sin[θ3] + 0.4 ω4 Sin[θ4]
0. + 0.04 ω2 Cos[θ2] + 0.28 ω3 Cos[θ3] - 0.4 ω4 Cos[θ4]
0.
Out[168]//MatrixForm=
0. - 0.04 ω22 Cos[θ2] - 0.28 ω32 Cos[θ3] + 0.4 ω42 Cos[θ4] - 0.04 α2 Sin[θ2] - 0.28 α3 Sin[θ
0. + 0.04 α2 Cos[θ2] + 0.28 α3 Cos[θ3] - 0.4 α4 Cos[θ4] - 0.04 ω22 Sin[θ2] - 0.28 ω32 Sin[θ3
0.

In[169]:= Solucion de la posicion


Out[169]= de la posicion Solucion

In[170]:= Solucion inicial


Out[170]= inicial Solucion

In[171]:=

Clear[θ2, θ3, θ4, ω2, ω3, ω4, α2, α3, α4];


borra
θ2 = 0 * Degree;
grado
PosInicial = FindRoot[{Pos[[1]] == 0, Pos[[2]] ⩵ 0},
encuentra raíz
{θ3, 120 * Degree}, {θ4, 140 * Degree}, MaxIterations → 15];
grado grado máximo de iteraciones
θ3 /. PosInicial  Degree
grado
(θ4 /. PosInicial) / Degree
grado

Out[174]= 94.3121

Out[175]= 127.059

In[176]:=

In[177]:= Solucion total


Out[177]= Solucion total
Analisis de mecanismos 1.nb 5

In[178]:= Clear[θ2, θ3, θ4, ω2, ω3, ω4, α2, α3, α4];
borra
θ3i = θ3 /. PosInicial;
θ4i = θ4 /. PosInicial;
For[i = 0, i ≤ 360, i += 1,
para cada
θ2 = i * Degree;
grado
SolPos[i] = FindRoot[{Pos[[1]] == 0, Pos[[2]] ⩵ 0},
encuentra raíz
{θ3, θ3i}, {θ4, θ4i}, MaxIterations → 15];
máximo de iteraciones
θ3i = θ3 /. SolPos[i];
θ4i = θ4 /. SolPos[i];
];
θ3 /. SolPos[90]
θ4 /. SolPos[90]

Out[182]= 1.32221

Out[183]= 2.06892

In[184]:=

In[185]:= Graficacion de la posicion


Out[185]= de Graficacion la posicion

In[186]:=

In[187]:= tabla1 = Tablei, θ3 /. SolPos[i]  Degree, {i, 0, 360, 1};


tabla grado
tabla2 = Table[{i, (θ4 /. SolPos[i]) / Degree}, {i, 0, 360, 1}];
tabla grado
fig1 = Grafica[tabla1, RGBColor[0, 1, 1], "θ2", "θ3"]
color RGB
fig2 = Grafica[tabla2, RGBColor[1, 0, 0], "θ2", "θ4"]
color RGB
6 Analisis de mecanismos 1.nb

100

95

90
θ3

Out[189]=
85

80

75

0 50 100 150 200 250


θ2
Analisis de mecanismos 1.nb 7

135

130
θ4

Out[190]=

125

120

0 50 100 150 200 250


θ2

In[191]:= Solucion de la velocidad


Out[191]= de la Solucion velocidad

In[192]:= Vel /. SolPos[0] // MatrixForm


forma de matriz
Out[192]//MatrixForm=
0. - 0.279207 ω3 + 0.319207 ω4
0. + 0.04 ω2 - 0.0210532 ω3 + 0.241053 ω4
0.
8 Analisis de mecanismos 1.nb

In[193]:= Clear[θ2, θ3, θ4, ω2, ω3, ω4, α2, α3, α4];
borra
ω2 = 2 π  1;(*1 rev 1 seg*)
For[i = 0, i ≤ 360, i += 1,
para cada
θ2 = i * Degree ;
grado
SolVel[i] =
Solve[{Vel[[1]] ⩵ 0, Vel[[2]] ⩵ 0} /. SolPos[i], {ω3, ω4}] // Flatten;
resuelve aplana
];
SolVel[40]

Out[196]= {ω3 → - 1.5104, ω4 → - 0.753348}

In[197]:= Graficacion de la velocidad


Out[197]= de Graficacion la velocidad
Analisis de mecanismos 1.nb 9

In[198]:= tabla3 = Tablei, ω3 /. SolVel[i], {i, 0, 360, 1};


tabla
tabla4 = Table[{i, (ω4 /. SolVel[i])}, {i, 0, 360, 1}];
tabla
fig3 = Grafica[tabla3, RGBColor[0, 1, 1], "θ2", "ω"];
color RGB
fig4 = Grafica[tabla4, RGBColor[1, 1, 0], "θ2", "ω"];
color RGB
Show[fig3, fig4, Graphics[Text["ω3", {120, - 0.4}]],
muestra gráfico texto
Graphics[Text["ω4", {90, 0.6}]]]
gráfico texto

1.0

ω4
0.5

0.0
ω

Out[202]=
ω3
-0.5

-1.0

-1.5

0 50 100 150 200 250


θ2

In[203]:= Solucion de la aceleracion


Out[203]= aceleracion de la Solucion
10 Analisis de mecanismos 1.nb

In[204]:= Acel /. SolPos[0] /. SolVel[0] // MatrixForm


forma de matriz
Out[204]//MatrixForm=
- 1.86562 - 0.279207 α3 + 0.319207 α4
- 0.0613523 + 0.04 α2 - 0.0210532 α3 + 0.241053 α4
0.

In[205]:= Clear[θ2, θ3, θ4, ω2, ω3, ω4, α2, α3, α4];
borra
ω2 = 2 π  1;(*1 rev 1 seg*)
α2 = 0;(*Porque la velocidad es constante = 0 rad/s al cuadrado*)
For[i = 0, i ≤ 360, i += 1,
para cada
θ2 = i * Degree ;
grado
SolAcel[i] =
Solve[{Acel[[1]] ⩵ 0, Acel[[2]] ⩵ 0} /. SolPos[i] /. SolVel[i], {α3, α4}] //
resuelve
Flatten;
aplana
];
SolAcel[300]

Out[209]= {α3 → - 9.35207, α4 → - 6.25176}

In[210]:= Graficacion de la Aceleracion


Out[210]= Aceleracion de Graficacion la
Analisis de mecanismos 1.nb 11

In[211]:= tabla5 = Tablei, α3 /. SolAcel[i], {i, 0, 360, 1};


tabla
tabla6 = Table[{i, (α4 /. SolAcel[i])}, {i, 0, 360, 1}];
tabla
fig5 = Grafica[tabla5, RGBColor[0, 0, 1], "θ2", "α"];
color RGB
fig6 = Grafica[tabla6, RGBColor[1, 1, 0], "θ2", "α"];
color RGB
Show[fig5, fig6, Graphics[Text["α3", {190, 4.5}]],
muestra gráfico texto
Graphics[Text["α4", {140, 0.5}]]]
gráfico texto

5 α3

0 α4
α

Out[215]=

-5

-10

0 50 100 150 200 250


θ2

In[216]:= Trayectoria
Out[216]= Trayectoria
12 Analisis de mecanismos 1.nb

In[217]:= Clear[θ2, θ3, θ4];


borra
r3p = {x3p, 0, 0}; (*Vectores Locales*)
r3pp = {x3pp, 0, 0};
r4p = {x4p, 0, 0};

R3P = Rz[θ3 + β3].r3p; (*Vecotores Globales*)


R3pp = Rz[θ3 + β3 + 90 °].r3pp;
R4p = Rz[θ4 - β4].r4p;

RR1 = T2D[R1];
RR2 = T2D[R2];
RR3 = T2D[R3];
RR3p = T2D[R3P];
RR3pp = T2D[R3pp];
RR4 = T2D[R4];
RR4p = T2D[R4p]

Tray1 = RR2 + RR3 + RR3p - RR3pp;


Tray2 = - RR1 + RR4p;

tabla7 = Table[Tray1 /. SolPos[i] /. θ2 → i * Degree, {i, 0, 360, 1}];


tabla grado
tabla8 = Table[Tray2 /. SolPos[i] /. θ2 → i * Degree, {i, 0, 360, 1}];
tabla grado
trayectoria1 =
ListPlot[tabla7, ImageSize → 700, PlotStyle → Thickness[0.01], Joined → True]
representación de lista tamaño de imagen estilo de repre⋯ grosor unido verdadero
trayectoria2 = ListPlot[tabla8, ImageSize → 700,
representación de lista tamaño de imagen
PlotStyle → Thickness[0.01], Joined → True]
estilo de repre⋯ grosor unido verdadero

Out[230]= {0.328 Cos[0.655546 - θ4], - 0.328 Sin[0.655546 - θ4]}


Analisis de mecanismos 1.nb 13

0.34

0.32

Out[235]=

0.30

0.28

0.24 0.26 0.28 0.30 0.32

0.288

0.287

0.286
Out[236]=

0.285

0.284

0.22 0.24 0.26 0.28 0.30

In[237]:= Animacion
Out[237]= Animacion
14 Analisis de mecanismos 1.nb

In[238]:= Animate[
anima
θ2 = i * Degree;
grado
cero = {0, 0};
linea2 = Line[{cero, RR2}];
línea
linea3 = Line[{RR2, RR2 + RR3}] /. SolPos[i];
línea
linea3p = Line[{RR2 + RR3, RR2 + RR3 + RR3p}] /. SolPos[i];
línea
linea3pp = Line[{RR2 + RR3 + RR3p, RR2 + RR3 + RR3p - RR3pp}] /. SolPos[i];
línea
linea4 = Line[{RR2 + RR3, - RR1}] /. SolPos[i];
línea
linea4p = Line[{- RR1, - RR1 + RR4p}] /. SolPos[i];
línea

punto1 = Point[cero];
punto
punto2 = Point[RR2];
punto
punto3 = Point[RR2 + RR3] /. SolPos[i];
punto
punto4 = Point[- RR1];
punto
(*Se definen los colores de las barras*)
barra2 = Graphics[{Thickness[0.03], RGBColor[0, 1, 0], linea2}];
gráfico grosor color RGB
barra3 = Graphics[{Thickness[0.03], RGBColor[0, 0, 1], linea3}];
gráfico grosor color RGB
barra3p = Graphics[{Thickness[0.03], RGBColor[0, 0, 1], linea3p}];
gráfico grosor color RGB
barra3pp = Graphics[{Thickness[0.03], RGBColor[0, 0, 1], linea3pp}];
gráfico grosor color RGB
barra4 = Graphics[{Thickness[0.03], RGBColor[1, 0, 0], linea4}];
gráfico grosor color RGB
barra4p = Graphics[{Thickness[0.03], RGBColor[1, 0, 0], linea4p}];
gráfico grosor color RGB

perno1 = Graphics[{PointSize[0.05], punto1}];


gráfico tamaño de punto
perno2 = Graphics[{PointSize[0.05], punto2}];
gráfico tamaño de punto
perno3 = Graphics[{PointSize[0.05], punto3}];
gráfico tamaño de punto
perno4 = Graphics[{PointSize[0.05], punto4}];
gráfico tamaño de punto
Analisis de mecanismos 1.nb 15

gráfico tamaño de punto


Show[barra2, perno1, barra3, barra3p, barra3pp, barra4, barra4p, perno2,
muestra
perno3, perno4, trayectoria1, trayectoria2, ImageSize → 800, Frame → True,
tamaño de imagen marco verdadero
BaseStyle → {30, FontFamily → "Arial"}, PlotRange → {{- 0.1, 0.4}, {- 0.1, 0.5}}],
estilo base familia de tipo de letra rango de representación
{i, 0, 360, 1}, ControlPlacement → Top]
posicionamiento de control arriba

0.5

0.4

0.3

Out[238]=
0.2

0.1
16 Analisis de mecanismos 1.nb

0.0

-0.1
-0.1 0.0 0.1 0.2

In[239]:=

In[240]:=

Vous aimerez peut-être aussi