You are on page 1of 4

Doble Pendulo

Compartamiento caotico
---------------- Proyecto 1 -----------------
En este trabajo se estudia el caso de un pendulo doble, este es un sistema que puede presentar un comportamiento
semicatico y completamente catico. Para obtener las ecuaciones diferenciales de movimientos asociadas a los
ngulos 1 y 2 respectivos a los pendulos 1 y 2, se utiliza el formalismo de Lagrange, planteando la energia cinetica y
la energia potencial asociada a los dos angulos, tomando consideraciones geometricas para las coordenadas X y Y.
Estas ecuaciones diferenciales que resultan ser ordinarias de segundo orden no lineales y acopladas, se pueden resolver
numricamente utilizando Mathematica.
Se desarrolla un cdigo que nos permite representar el movimiento del sistema mediante una grafica en el espacio real,
con lo cual se logra analizar y describir directamente el comportamiento del sistema en trminos de los parmetros
relevantes que son las masas, las longitudes de los pndulos, la gravedad y las condiciones iniciales. Para cada caso
investigado se presentan los grficos que dan cuenta del comportamiento en el espacio de coordenadas y algunos casos
de cmo se comportan los ngulos 1 y 2 en funcin del tiempo.
Las figuras que se presentan y que corresponden a las animaciones durante un tiempo de 30 segundos, muestran las
trayectorias reales seguidas por cada uno de los pndulos, observndose que stos ltimos pueden realizan tanto
movimientos rotatorios como oscilatorios, dando cuenta de esta forma de la complejidad del movimiento. Tambin en
estas figuras se observa el evidente cambio que se produce en el comportamiento del sistema al cambiar los valores de
las masas, de las longitudes pero sobre todo de las condiciones iniciales para cada ngulo. En todas las grficas se
muestra un esquema de los pendulos en su posicion inicial.
------ Codigo del programa ------
(Parametros del sistema; masas, largos de la varilla, constante gravitacional)
m1 5;
m2 1;
L1 1;
L2 1.5;
g 9.8;
( Ecuaciones derivadas del lagrangiano del sistema )
Equations ]
(m1 m2) L1 1''[t] m2 L2 2''[t] Cos[1[t] 2[t]]
(2'[t])
2
L2 m2 Sin[1[t] 2[t]] g (m1 m2) Sin[1[t]] 0,
m2 L2 2''[t] m2 L1 1''[t] Cos[1[t] 2[t]]
(1'[t])
2
L1 m2 Sin[1[t] 2[t]] m2 g Sin[2[t]] 0);
In[769]:= (condiciones iniciales de los ngulos en rad. [1,1])
1 0.25;
2 1;
desf2 0.01;
( Solucion de las ecuaciones diferenciales parciales )
In[773]:= Solucion NDSolve[{Equations,
1'[0] 0,
2'[0] 0,
1[0] 1 ,
2[0] 2 desf2},
{1[t], 2[t]}, {t, 0, 10000}]
NDSolve::mxst : Maximum number of 10000 steps reached at the point t 130.0201054375858`.
Out[773]= 1t InterpolatingFunction0., 130.02, t,
2t InterpolatingFunction0., 130.02, t
( asignacion de coordenadas )
In[775]:= {1[t_], 2[t_], x1[t_], y1[t_], x2[t_], y2[t_]}
{1[t], 2[t], L1 Sin[1[t]], L1 Cos[1[t]],
L1 Sin[1[t]] L2 Sin[2[t]], L1 Cos[1[t]] L2 Cos[2[t]]} /. Solucion[[1]];
( graficas en el espacio de coordenadas )
In[777]:= trayecto2 ParametricPlot[{x2[t], y2[t]},
{t, 0, 30}, PlotRange All(, PlotStyle {Dashed,Thick}) ];
In[778]:= trayecto1
ParametricPlot[{x1[t], y1[t]}, {t, 0, 30}, PlotRange All, PlotStyle {Gray, Dashed} ];
In[779]:= pendulo1 Graphics[ {Red, Line[{{0, 0}, {L1 Sin[1 ], L1 Cos[1 ]}}],
Red, Disk[{L1 Sin[1 ], L1 Cos[1 ]}, 0.05]}];
In[780]:= pendulo2 Graphics[ {Green, Line[{{L1 Sin[1 ], L1 Cos[1 ]},
{L1 Sin[1 ] L2 Sin[2 desf2], L1 Cos[1 ] L2 Cos[2 desf2]}}], Green,
Disk[{L1 Sin[1 ] L2 Sin[2 desf2], L1 Cos[1 ] L2 Cos[2 desf2]}, 0.05]}];
In[781]:= Show[trayecto1, trayecto2, pendulo1, pendulo2, AxesLabel {x, y},
PlotLabel Style["Pendulo 2 en el espacio de coordenadas", 15],
LabelStyle Directive[Italic, FontFamily "Optima" ]]
Out[781]=
2 1 1 2
x
2.5
2.0
1.5
0.5
0.0
0.5
y
Pendulo 2 en el espacio de coordenadas
In[782]:=
2 pendulo_doble3.nb
In[783]:=
In[784]:= ( Grafica de los angulos en el tiempo)
In[785]:= Plot__
1[t]
180
,
2[t]
180
_, {t, 0, 50}_
Out[785]=
10 20 30 40 50
0.25
0.20
0.15
0.10
0.05
0.05
( animacion para variar las condiciones iniciales de los ngulos )
( esta parte del codigo tiene un error que no permite usar facilmente el "manipulate")
pendulo_doble3.nb 3
Manipulate]]g 10; m1 1; m2 1; L1 1; L2 1;
Solucion NDSolve]]]
(m1 m2) L1 1''[t] m2 L2 2''[t] Cos[1[t] 2[t]]
(2'[t])
2
L2 m2 Sin[1[t] 2[t]] g (m1 m2) Sin[1[t]] 0,
m2 L2 2''[t] m2 L1 1''[t] Cos[1[t] 2[t]]
(1'[t])
2
L1 m2 Sin[1[t] 2[t]] m2 g Sin[2[t]] 0),
1'[0] 0,
2'[0] 0,
1[0] a ,
2[0] b 0.1),
{1[t], 2[t]}, {t, 0, 500}; {x2[t_], y2[t_]}
{ L1 Sin[1[t]] L2 Sin[2[t]], L1 Cos[1[t]] L2 Cos[2[t]]} /. Solucion1];
ParametricPlot[{x2[t], y2[t]}, {t, 0, 50}]), {a, 1, 1}, {b, 0.8, 1}
Out[788]=
a
b

2 1 1 2
2
1
1

Camilo Alejandro Rojas Pacheco


Cod. 133388
4 pendulo_doble3.nb

You might also like