> | 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] ; |
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]; |
El segundo es el disco homogeneo.
> | d1 := [disco,[0,0,l],rota(phi,3),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]]: |
> | 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); |
Paso 6. Obtención de la energía cinética del sistema mediante fT asignándola a la variable T.
> | T := simplify(fT(sistema)); |
> | L := simplify(T-V) ; |
> | ecua := map(simplify,ec_lag()): |
> | g:=9.8: m:= 10 :l:=10 : |
> | 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}); |
> | odeplot(res,[psi(t),phi(t)],0..6,numpoints=1000); |
> | dibu3(1.1,70); |
> |