ENUNCIADO DEL EJEMPLO 11
    

   Un giroscopo se compone de un disco de masa homogenea m y radio R que gira sobre un eje perpendicular a dicho disco compuesto de una varilla de masa despreciable y longitud l. La inercia y la masa del elemento se hayan reforzadas por medio de un cuerpo toroidal que se encuentra adosado a la periferia del disco.  

   Paso 0. Reiniciación de las variables del sistema y llamada a los paquetes linalg, plots y plottools.

> restart;

> with (linalg):with(plots):with(plottools):                                                                                                                                                      

Warning, the protected names norm and trace have been redefined and unprotected

Warning, the name changecoords has been redefined

Warning, the name arrow has been redefined

> libname:="C:/",libname:

> with (mecapac3d):

   Paso 1. Definimos las coordenadas generalizadas del sistema en una lista que se denominará cg.

> cg := [psi,theta,phi] ;

cg := [psi, theta, phi]

   Paso 2. Definición mediante variables de los elementos que forman el sistema mecánico.

El primer elemento es la varilla de masa despreciable.

> v1 := [varilla,[0,0,l/2],rota(0,1),0,l];

v1 := [varilla, [0, 0, 1/2*l], matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]), 0, l]

El segundo es el disco homogeneo.

> d1 := [disco,[0,0,l],rota(phi,3),m,R];

d1 := [disco, [0, 0, l], matrix([[cos(phi), -sin(phi), 0], [sin(phi), cos(phi), 0], [0, 0, 1]]), m, R]

> R:= 10:

> graf := tubeplot([R*cos(t),R*sin(t),0],t=0..2*Pi,radius=0.5):

> gr1 := [grafico,[0,0,l],rota(phi,3),graf]:

   Paso 3. Definición de los elementos gráficos que definiran nuestro sistema de ejes.

> ejex:=[vector,[0,0,0],[10,0,0],red]:

> ejey:=[vector,[0,0,0],[0,10,0],green]:

> ejez:=[vector,[0,0,0],[0,0,10],blue]:

> TO := [texto,[0,0,-1],"O"]:

> TX := [texto,[10,0,-1],"X"]:

> TY := [texto,[0,10,-1],"Y"]:

> TZ := [texto,[0,0,11],"Z"]:

   Paso 4. Definición de la variable sistema que agrupa en una lista todos los elementos anteriores.

Por un lado definimos el sistema no inercial.

> s1 := [subsistema2,[0,0,0],evalm(rota(psi,3)&*rota(theta,1)),[v1,d1,gr1]]:

Y ahora el sistema total.

> sistema := [s1,ejex,ejey,ejez,TO,TX,TY,TZ] :

   Paso 5. Obtención de la energía potencial del sistema mediante fV asignándola a la variable V.

> V := fV(sistema);

V := m*g*cos(theta)*l

   Paso 6. Obtención de la energía cinética del sistema mediante fT asignándola a la variable T.

> T := simplify(fT(sistema));

T := 1/2*m*(psi1^2*l^2-psi1^2*l^2*cos(theta)^2+theta1^2*l^2+25*psi1^2+25*psi1^2*cos(theta)^2+25*theta1^2+100*psi1*cos(theta)*phi1+50*phi1^2)

   Paso 7. Obtención de la lagrangiana como diferencia de energías entre la energía cinética y la potencial.

> L := simplify(T-V) ;

L := 1/2*m*(psi1^2*l^2-psi1^2*l^2*cos(theta)^2+theta1^2*l^2+25*psi1^2+25*psi1^2*cos(theta)^2+25*theta1^2+100*psi1*cos(theta)*phi1+50*phi1^2-2*g*cos(theta)*l)

   Paso 8. Obtención de las ecuaciones de lagrange para las dos coordenadas generalizadas mediante el operador Ec_lag

> ecua := map(simplify,ec_lag()):

   Paso 9. Asignación de valores numéricos a los parámetros que queden sun asignar para poder proceder a la integración numérica.

> g:=9.8: m:= 10 :l:=10 :

   Paso 10. Integración numérica del problema mediante la función fint asignando el resultado a la variable res.

> res := fint([0.1,2.1,.8,0.2,0,6.]):

   Paso 11. Representación gráfica de las evoluciones temporales theta, phi y psi mediante odeplot.

> p1:=odeplot(res,[t,theta(t)],0..6,color=red,numpoints=1000):

> p2:=odeplot(res,[t,phi(t)],0..6,color=green,numpoints=1000):

> p3:=odeplot(res,[t,psi(t)],0..6,color=blue,numpoints=1000):

> display({p1,p2,p3});

[Plot]

> odeplot(res,[psi(t),phi(t)],0..6,numpoints=1000);

[Plot]

   Paso 12. Procedemos a realizar una animación del movimiento del conjunto por medio de la función dibu3.

> dibu3(1.1,70);

[Plot]

>