ENUNCIADO EJEMPLO 12

        Placa cuadrada con un vertice fijo en el origen de coordenadas y un lado apoyado en el plano OXY.

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

> restart:

> with(linalg):

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

> with(plots):

Warning, the name changecoords has been redefined

> with(plottools):

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.

En este caso serán "theta" (giro del eje perpendicular a la barra en sentido positivo respecto al eje Z fijo o, lo que es lo mismo, rotación alrededor del eje relativo x ligado a la barra) y "phi" (giro del eje que se hace coincidir con el lado que permanece apoyado sobre el plano OXY y el eje X de la referencia fija, es decir, rotación alrededor del eje Z fijo).

> cg:=[theta,phi];

cg := [theta, phi]

   Paso 2. Definición mediante variables de los elementos que forman el sistema mecánico. Es decir, el aro, el disco y el muelle.

> rot1:=rota(phi,3):

> rot2:=rota(theta,1):

> rottot:=evalm(rot1&*rot2):

> cuadrado:=[rectangulo,[a/2*(cos(phi)-cos(theta)*sin(phi)),a/2*(sin(phi)+cos(theta)*cos(phi)),a/2*sin(theta)],rottot,m,a,a];

cuadrado := [rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a]

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

> ejeX:=[vector,[0,0,0],vector([3/2*a,0,0]),red]:

> ejeY:=[vector,[0,0,0],vector([0,3/2*a,0]),green]:

> ejeZ:=[vector,[0,0,0],vector([0,0,3/2*a]),blue]:

> ejex:=[vector,[0,0,0],vector([3/2*a*cos(phi),3/2*a*sin(phi),0]),red]:

> ejey:=[vector,[0,0,0],vector([-3/2*a*sin(phi)*cos(theta),3/2*a*cos(phi)*cos(theta),3/2*a*sin(theta)]),green]:

> ejez:=[vector,[0,0,0],vector([3/2*a*sin(theta)*sin(phi),-3/2*a*cos(phi)*sin(theta),3/2*a*cos(theta)]),blue]:

> a1:=[angulo,[1/2*a,0,0],[0,0,0],[1/2*a*cos(phi),1/2*a*sin(phi),0],1/2*a]:

> a2:=[angulo,[0,0,1/2*a],[0,0,0],[1/2*a*sin(theta)*sin(phi),-1/2*a*cos(phi)*sin(theta),1/2*a*cos(theta)],1/2*a]:

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

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

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

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

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

> sistema:=[cuadrado,ejeX,ejeY,ejeZ,ejex,ejey,ejez,a1,a2,TO,TX,TY,TZ];

sistema := [[rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a], [vector, [0, 0, 0], vector([3/2*a, 0, 0]), red], [vector, [0,...sistema := [[rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a], [vector, [0, 0, 0], vector([3/2*a, 0, 0]), red], [vector, [0,...sistema := [[rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a], [vector, [0, 0, 0], vector([3/2*a, 0, 0]), red], [vector, [0,...sistema := [[rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a], [vector, [0, 0, 0], vector([3/2*a, 0, 0]), red], [vector, [0,...sistema := [[rectangulo, [1/2*a*(cos(phi)-sin(phi)*cos(theta)), 1/2*a*(sin(phi)+cos(phi)*cos(theta)), 1/2*a*sin(theta)], rottot, m, a, a], [vector, [0, 0, 0], vector([3/2*a, 0, 0]), red], [vector, [0,...

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

> T:=fT(sistema);

T := 1/2*m*(1/4*a^2*(-sin(phi)*phi1-cos(phi)*phi1*cos(theta)+sin(phi)*sin(theta)*theta1)^2+1/4*a^2*(cos(phi)*phi1-sin(phi)*phi1*cos(theta)-cos(phi)*sin(theta)*theta1)^2+1/4*a^2*cos(theta)^2*theta1^2)+...

Observamos que en la Energía Cinética aparecen dos términos diferenciados, el primero es debido a la traslación del centro de gravedad de la placa y el segundo a la rotación alrededor de este mismo.

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

> V:=fV(sistema);

V := 1/2*m*g*a*sin(theta)

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

> L:=T-V;

L := 1/2*m*(1/4*a^2*(-sin(phi)*phi1-cos(phi)*phi1*cos(theta)+sin(phi)*sin(theta)*theta1)^2+1/4*a^2*(cos(phi)*phi1-sin(phi)*phi1*cos(theta)-cos(phi)*sin(theta)*theta1)^2+1/4*a^2*cos(theta)^2*theta1^2)+...L := 1/2*m*(1/4*a^2*(-sin(phi)*phi1-cos(phi)*phi1*cos(theta)+sin(phi)*sin(theta)*theta1)^2+1/4*a^2*(cos(phi)*phi1-sin(phi)*phi1*cos(theta)-cos(phi)*sin(theta)*theta1)^2+1/4*a^2*cos(theta)^2*theta1^2)+...

> L:=simplify(L);

L := -1/12*m*a*(-2*a*phi1^2+3*a*phi1*sin(theta)*theta1-2*theta1^2*a-2*cos(theta)^2*phi1^2*a+6*g*sin(theta))

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

> ecua:=ec_lag();

ecua := [-1/12*m*a*(3*a*diff(phi(t), `$`(t, 2))*sin(theta(t))+3*a*diff(phi(t), t)*cos(theta(t))*diff(theta(t), t)-4*diff(theta(t), `$`(t, 2))*a)+1/12*m*a*(3*a*diff(phi(t), t)*cos(theta(t))*diff(theta(...ecua := [-1/12*m*a*(3*a*diff(phi(t), `$`(t, 2))*sin(theta(t))+3*a*diff(phi(t), t)*cos(theta(t))*diff(theta(t), t)-4*diff(theta(t), `$`(t, 2))*a)+1/12*m*a*(3*a*diff(phi(t), t)*cos(theta(t))*diff(theta(...

   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.

> a:=10:g:=9.8:m:=10:

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

> res:=fint([Pi/3,0,0,0.6]):

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

> odeplot(res,[t,theta(t)],0..15.,numpoints=100);

[Plot]

Observamos  que theta evoluciona respecto del tiempo armonicamente entre el ángulo inicial (Pi/3) y su simétrico (2*Pi-Pi/3). Esto es debido a que las únicas fuerzas que producen trabajo sobre el sistema son conservativas, a que en el estado inicial la derivada de theta respecto del tiempo es nula y a que las reacciones producidas por el giro phi no producen momentos respecto al eje x de la referencia relativa.

> odeplot(res,[t,phi(t)],0..15.,numpoints=100);

[Plot]

> odeplot(res,[phi(t),theta(t)],0..15.,numpoints=100);

[Plot]

Al analizar la evolución temporal de phi observamos que, en general, crece en el tiempo y que además lo hace siguiendo unas pauta periodica pero que en ciertos tramos decrece. Si comparamos estos resultados por los mostrados en la grafica que nos muestra theta respecto a phi apreciamos que ese crecimiento y decrecimiento está relacionado con su el ángulo theta y ademas comparando el gráfico 1 con el 2 con su evolución temporal. Esto es así por el momento que se produce alrededor del eje Z por las fuerza de inercia que genera el giro theta.

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

> dibu3(15,50);

[Plot]

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

Si resolvemos este mismo problema para una condiciones iniciales en las que la velocidad de rotación phi1 inicial sea nula apreciaremos mejor este efecto.

> res:=fint([Pi/3,0,0,0]):

   Paso 11 bis. Representación gráfica de las evoluciones temporales de las variables mediante odeplot.

> odeplot(res,[t,phi(t)],0..15.,numpoints=100);

[Plot]

> odeplot(res,[phi(t),theta(t)],0..15.,numpoints=100);

[Plot]

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

> dibu3(15,50);

[Plot]

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

Finalmente en un caso general, con velocidades iniciales de rotación segun ambos ejes.

> res:=fint([Pi/3,0.8,0,0.6]):

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

> dibu3(15,50);

[Plot]

>