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; |
> | with(mecapac3d): |
Paso 1. Definimos las coordenadas generalizadas del sistema en una lista que se denominará cg.
> | 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]; |
> | d1:=[disco,[0,0,-z],rota(phi,3),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]; |
> | 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); |
Paso 6. Obtención de la energía potencial del sistema mediante fV asignándola a la variable V.
> | T:=fT(sistema); |
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); |
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.
> | 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); |
> | odeplot(res,[t,phi(t)],0..3,color=green,numpoints=100); |
> | odeplot(res,[t,z(t)],0..3,color=blue,numpoints=100); |
Paso 12. Procedemos a realizar una animación del movimiento del conjunto por medio de la función dibu3.
> | dibu3(3,70); |
> |