> | 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:=[phi,theta,s]; |
Paso 2. Definición mediante variables de los elementos que forman el sistema mecánico.
> | rotula:=[punto,s*cos(phi),s*sin(phi),0,m]: |
> | punt:=[punto,(s+l*sin(theta))*cos(phi),(s+l*sin(theta))*sin(phi),-l*cos(theta),m]: |
> | xg:=[0,0,0]: |
> | roti:=rota(phi,3): |
> | disc:=[disco,xg,roti,M,R]: |
Paso 3. Definición de los elementos gráficos que definiran nuestro sistema de ejes.
> | aphi:=[angulo,[1,0,0],[0,0,0],[cos(phi),sin(phi),0],1]: |
> | atheta:=[angulo,[s*cos(phi),s*sin(phi),-1],[s*cos(phi),s*sin(phi),0],[(s+sin(theta))*cos(phi),(s+sin(theta))*sin(phi),-cos(theta)],1]: |
> | aca:=[segmento,[0,0,0],[R*cos(phi),R*sin(phi),0],black]: |
> | var:=[segmento,[s*cos(phi),s*sin(phi),0],[(s+l*sin(theta))*cos(phi),(s+l*sin(theta))*sin(phi),-l*cos(theta)],red]: |
> | ejeX:=[vector,[0,0,0],[R+2,0,0],red]: |
> | ejeY:=[vector,[0,0,0],[0,R+2,0],green]: |
> | ejeZ:=[vector,[0,0,0],[0,0,R+2],blue]: |
> | TO := [texto,[0,1,0],"O"]: |
> | TX := [texto,[R+3,0,0],"X"]: |
> | TY := [texto,[0,R+3,0],"Y"]: |
> | TZ := [texto,[0,0,R+3],"Z"]: |
Paso 4. Definición de la variable sistema que agrupa en una lista todos los elementos anteriores.
> | sistema:=[punt,rotula,disc,aca,var,atheta,aphi,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.
> | T:=fT(sistema); |
Paso 6. Obtención de la energía potencial del sistema mediante fV asignándola a la variable V.
> | V:=fV(sistema); |
> | L:=simplify(T-V); |
> | ecua:=ec_lag(); |
> | R:=3: l:=2 :m:=5: M:=10: g:=9.8: |
> | res:=fint([1.0,evalf(Pi/8),1.0,1.0,0.0,0]): |
> | res(0.1): |
Paso 11. Representación gráfica de las evoluciones temporales de z mediante odeplot.
> | odeplot(res,[t,theta(t)],0..3); |
> | odeplot(res,[t,phi(t)],0..3); |
> | odeplot(res,[t,s(t)],0..3); |
> | dibu3(2,50); |
> |