ENUNCIADO DEL EJEMPLO 17
    

   Un aro vertical homogeneo de masa M y radio R puede girar segun su centro por medio de una articulacion fija. Sobre un punto del disco se inserta un muelle de constante K que se encuentra unido a una masa puntual de valor m.

   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:=[theta,y,phi];

cg := [theta, y, phi]

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

> rot1:=rota(Pi/2,2):

> rot2:=rota(theta,1):

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

> d1:=[aro,[0,0,0],rottot,M,R];

d1 := [aro, [0, 0, 0], rottot, M, R]

> m1:=[muelle,[0,-R*cos(theta),-R*sin(theta)],[0,y*cos(phi),y*sin(phi)],K,0];

m1 := [muelle, [0, -R*cos(theta), -R*sin(theta)], [0, y*cos(phi), y*sin(phi)], K, 0]

> p1:=[punto,0,y*cos(phi),y*sin(phi),m];

p1 := [punto, 0, y*cos(phi), y*sin(phi), m]

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

> a1:=[angulo,[0,-R,0],[0,0,0],[0,-R*cos(theta),-R*sin(theta)],1.5]:

> ejeY:=[vector,[0,0,0],[0,4,0],green]:

> ejeZ:=[vector,[0,0,0],[0,0,4],blue]:

> seg1:=[segmento,[0,0,0],[0,-R*cos(theta),-R*sin(theta)],blue]:

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

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

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

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

> sistema:=[d1,m1,p1];

sistema := [[aro, [0, 0, 0], rottot, M, R], [muelle, [0, -R*cos(theta), -R*sin(theta)], [0, y*cos(phi), y*sin(phi)], K, 0], [punto, 0, y*cos(phi), y*sin(phi), m]]

   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*theta1^2*M*R^2+1/2*m*((y1*cos(phi)-y*sin(phi)*phi1)^2+(y1*sin(phi)+y*cos(phi)*phi1)^2)

   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*K*((y*cos(phi)+R*cos(theta))^2+(y*sin(phi)+R*sin(theta))^2)+m*g*y*sin(phi)

   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*theta1^2*M*R^2+1/2*m*y^2*phi1^2+1/2*m*y1^2-K*y*cos(phi)*R*cos(theta)-1/2*K*y^2-K*y*sin(phi)*R*sin(theta)-1/2*K*R^2-m*g*y*sin(phi)

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

> ecua:=ec_lag();

ecua := [diff(theta(t), `$`(t, 2))*M*R^2-K*y(t)*cos(phi(t))*R*sin(theta(t))+K*y(t)*sin(phi(t))*R*cos(theta(t)), m*diff(y(t), `$`(t, 2))-m*y(t)*diff(phi(t), t)^2+K*cos(phi(t))*R*cos(theta(t))+K*y(t)+K*...ecua := [diff(theta(t), `$`(t, 2))*M*R^2-K*y(t)*cos(phi(t))*R*sin(theta(t))+K*y(t)*sin(phi(t))*R*cos(theta(t)), m*diff(y(t), `$`(t, 2))-m*y(t)*diff(phi(t), t)^2+K*cos(phi(t))*R*cos(theta(t))+K*y(t)+K*...

   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.

> M:=2:m:=1:K:=10:R:=1:g:=9.8:

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

> res:=fint([0,0,-1,0,0,0]):

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

> pl1:=odeplot(res,[t,theta(t)],0..2.,numpoints=100,color=green):

> pl2:=odeplot(res,[t,y(t)],0..2.,numpoints=100,color=magenta):

> pl3:=odeplot(res,[t,phi(t)],0..2.,numpoints=100,color=red):

> display(pl1,pl2,pl3);

[Plot]

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

> dibu3(2.1,50);

[Plot]

>