Application Center - Maplesoft

App Preview:

Principio de Mínima Acción - Cilindro Rueda por un plano inclinado

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Image 

PRINCIPIO DE M?NIMA ACCI?N.Cilindro rueda por un plano inclinado.
Sebasti?n Varas Kittel,
Ingenier?a Civil Industrial,
Universidad Adolfo Ib??ez.
sebastian.varask2006@alumnos.uai.cl 

Descripci?n: 

Usaremos el principio de m?nima acci?n para derivar las ecuaciones diferenciales del movimiento del sistema descrito en la foto, para posteriormente resolver estas ecuaciones y as? poder representar el movimiento del cilindro a trav?s de gr?ficos y animaciones.  

Packages: 

> restart:
with(plots):
with(VariationalCalculus):
 

Energ?as: 

Energ?a Cin?tica: 

La energ?a cin?tica de un cilindro que se desplaza rotando est? constituida por dos partes. Una parte es la energ?a producida por la velocidad con que se desplaza el centro de masa del cilindro, la otra parte es la energ?a que se produce por la velocidad de rotaci?n del cilindro entorno a su centro de masa: 

> E[k]:=t->1/2*m*diff(S(t),t)^2+1/2*INERCIA(t)*diff(theta(t),t)^2:
 

> INERCIA:=t->1/2*m*R^2:
 

> E[k](t);
 

`+`(`*`(`/`(1, 2), `*`(m, `*`(`^`(diff(S(t), t), 2)))), `*`(`/`(1, 4), `*`(m, `*`(`^`(R, 2), `*`(`^`(diff(theta(t), t), 2)))))) (1)
 

Energ?a Potencial: 

La energ?a potencial de un cilindro est? dada por la altura, con respecto al eje de referencia tomado, a la que se encuentra su centro de masa:  

> E[p]:=t->-m*g*S(t)*sin(alpha):
E[p](t);
 

`+`(`-`(`*`(m, `*`(g, `*`(S(t), `*`(sin(alpha))))))) (2)
 

Coordenadas: 

Podemos ver que S(t) se relaciona directamente con  de la siguiente forma: 

> S:=t->R*theta(t):
 

Funcional: 

El funcional que debemos minimizar es formado por la diferencia entre la Energ?a Cin?tica y la Energ?a Potencial total del sistema. 

> L:=t->E[k](t)-E[p](t):
L(t);
 

`+`(`*`(`/`(3, 4), `*`(m, `*`(`^`(R, 2), `*`(`^`(diff(theta(t), t), 2))))), `*`(m, `*`(g, `*`(R, `*`(theta(t), `*`(sin(alpha))))))) (3)
 

Euler-Lagrange: 

Para minimizar el funcional L(t) recurriremos a las ecuaciones de Euler-Lagrange: . Para facilidad nuestra, existe un comando de Maple, llamado EulerLagrange, que nos da estas ecuaciones: 

> EDO:=EulerLagrange(L(t),t,theta(t))[1]=0;
 

`+`(`*`(m, `*`(g, `*`(R, `*`(sin(alpha))))), `-`(`*`(`/`(3, 2), `*`(m, `*`(`^`(R, 2), `*`(diff(diff(theta(t), t), t))))))) = 0 (4)
 

Funci?n del Movimiento: 

Con solo ver la ecuaci?n diferencial para la funci?n  identificaremos que se trata de un polinomio de segundo grado. Podr?amos resolver esta EDO integrando de forma directa, pero en este caso usaremos el comando Dsolve: 

> dsolve(EDO,theta(t));
 

theta(t) = `+`(`/`(`*`(`/`(1, 3), `*`(g, `*`(sin(alpha), `*`(`^`(t, 2))))), `*`(R)), `*`(_C1, `*`(t)), _C2) (5)
 

> theta:=t->1/3*g/R*sin(alpha)*t^2+_C1*t+_C2:
 

Valores y Condiciones Iniciales: 

Para poder realizar un an?lisis gr?fico del movimiento del cilindro asignaremos valores num?ricos a las constantes presentes en el planteamiento del problema. Por otra parte, supondremos que el cilindro parte del reposo: 

> m:=10:R:=2:alpha:=Pi/6:g:=10:
CI:=[theta(0)=0,D(theta)(0)=0]:
 

Aplicando las condicions iniciales: 

> solve(CI,[_C1,_C2]);
 

[[_C1 = 0, _C2 = 0]] (6)
 

> _C1:=0:_C2:=0:
 

Gr?ficos: 

Energ?a Cin?tica: 

> plot(E[k](t),t=0..8,color=blue,thickness=2);
 

Plot_2d
 

Energ?a Potencial: 

> plot(E[p](t),t=0..8,color=red,thickness=2);
 

Plot_2d
 

?ngulo: 

> plot(theta(t),t=0..8,color=green,thickness=2);
 

Plot_2d
 

> plot([[theta(t),D(theta)(t),t=0..8]],color=red,labels=[theta(t),D(theta)(t)]);
 

Plot_2d
 

Funcional: 

> plot(L(t),t=0..8,color=black,thickness=2);
 

Plot_2d
 

Simulaci?n del Movimiento: 

A continuaci?n realizaremos dos animaciones que nos mostrar?n el movimiento del cilindro mientras cae por el plano inclinado.   

> a:=plot(-x*tan(alpha)-2/cos(alpha),x=-2..40,scaling=constrained,thickness=2,color=black):
b:=animate(implicitplot,[(x-S(t)*cos(alpha))^2+(y+S(t)*sin(alpha))^2=4,x=-2..40,y=-25..2,thickness=2,color=blue,grid=[100,100]],t=0..5,frames=200):
c:=animate(plot,[[[S(t)*cos(alpha),-S(t)*sin(alpha)],[S(t)*cos(alpha)-2*sin(theta(t)+alpha),-S(t)*sin(alpha)-2*cos(theta(t)+alpha)]],color=black],t=0..5,frames=200):
 

> display(a,b,c,axes=none);
 

Plot_2d
 

> d:=animatecurve([S(t)*cos(alpha)-2*sin(theta(t)+alpha),-S(t)*sin(alpha)-2*cos(theta(t)+alpha),t=0..5],numpoints=200,frames=200,color=green):
e:=animatecurve([S(t)*cos(alpha),-S(t)*sin(alpha),t=0..5],numpoints=200,frames=200,color=yellow):
 

> display(a,b,c,d,e,axes=none);
 

Plot_2d
 

 

Legal Notice: ? Maplesoft, a division of Waterloo Maple Inc. 2008. Maplesoft and Maple are trademarks of Waterloo Maple Inc. Neither Maplesoft nor the authors are responsible for any errors contained within and are not liable for any damages resulting from the use of this material.  This application is intended for non-commercial, non-profit use only. Contact the authors for permission if you wish to use this application in for-profit activities.