ENUNCIADO DEL EJEMPLO 4
    

   Un pendulo formado por una masa puntual de valor m y un segmento de masa despreciable se encuentra ligado a un punto del perimetro de un disco homogeneo de masa m2 y radio R. Dicho disco se haya ensartado en un eje vertical en su punto central. Los unicos movimientos permitidos para el disco son la rotacion a traves de su eje y una translacion vertical.

El disco posee una velocidad de rotacion constante y se encuentra unido con el origen de coordenadas por medio de un resorte lineal.

   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;

libname :=

> with(mecapac3d):

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

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

cg := [theta, phi, z]

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

> m1:=[punto,(R+l*sin(theta))*cos(phi),(R+l*sin(theta))*sin(phi),-(z+l*cos(theta)),m];

m1 := [punto, (R+l*sin(theta))*cos(phi), (R+l*sin(theta))*sin(phi), -z-l*cos(theta), m]

> d1:=[disco,[0,0,-z],rota(phi,3),m2,R];

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

> l1:=[segmento,[R*cos(phi),R*sin(phi),-z],[(R+l*sin(theta))*cos(phi),(R+l*sin(theta))*sin(phi),-(z+l*cos(theta))],red];

l1 := [segmento, [R*cos(phi), R*sin(phi), -z], [(R+l*sin(theta))*cos(phi), (R+l*sin(theta))*sin(phi), -z-l*cos(theta)], red]

> muelle1:=[muelle,[0,0,0],[0,0,-z],k,l0];

muelle1 := [muelle, [0, 0, 0], [0, 0, -z], k, l0]

   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,10],"Z"]:

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

> sistema:=[m1,d1,l1,muelle1,ejex,ejey,ejez,TO,TX,TY,TZ]:

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

> V:=fV(sistema);

V := m*g*(-z-l*cos(theta))-m2*g*z+1/2*k*((z^2)^(1/2)-l0)^2

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

> T:=fT(sistema);

T := 1/2*m*((l*cos(theta)*theta1*cos(phi)-(R+l*sin(theta))*sin(phi)*phi1)^2+(l*cos(theta)*theta1*sin(phi)+(R+l*sin(theta))*cos(phi)*phi1)^2+(-z1+l*sin(theta)*theta1)^2)+1/2*m2*z1^2+1/4*phi1^2*m2*R^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 := m*phi1^2*R*l*sin(theta)+m2*g*z-1/2*k*z^2+1/2*m*phi1^2*R^2-1/2*m*phi1^2*l^2*cos(theta)^2+1/2*m*l^2*theta1^2+1/2*m*phi1^2*l^2+m*g*l*cos(theta)+1/2*m*z1^2-1/2*k*l0^2+1/2*m2*z1^2-m*z1*l*sin(theta)*th...

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

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

ecua := [m*l*(l*diff(theta(t), `$`(t, 2))-diff(z(t), `$`(t, 2))*sin(theta(t))-diff(phi(t), t)^2*R*cos(theta(t))-diff(phi(t), t)^2*l*cos(theta(t))*sin(theta(t))+g*sin(theta(t))), 2*m*diff(phi(t), `$`(t...ecua := [m*l*(l*diff(theta(t), `$`(t, 2))-diff(z(t), `$`(t, 2))*sin(theta(t))-diff(phi(t), t)^2*R*cos(theta(t))-diff(phi(t), t)^2*l*cos(theta(t))*sin(theta(t))+g*sin(theta(t))), 2*m*diff(phi(t), `$`(t...ecua := [m*l*(l*diff(theta(t), `$`(t, 2))-diff(z(t), `$`(t, 2))*sin(theta(t))-diff(phi(t), t)^2*R*cos(theta(t))-diff(phi(t), t)^2*l*cos(theta(t))*sin(theta(t))+g*sin(theta(t))), 2*m*diff(phi(t), `$`(t...

   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.

> R:=6:l:=3:m:=4:m2:=4:g:=9.8:k:=50:l0:=0:

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

> res:=fint([0,10,0,10,0,10]):

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

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

[Plot]

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

[Plot]

> odeplot(res,[t,z(t)],0..3,color=blue,numpoints=100);

[Plot]

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

> dibu3(3,70);

[Plot]

>