160 likes | 267 Views
Computación 1:. Rotación de una lata medio llena. Descripción .
E N D
Computación 1: Rotación de una lata medio llena.
Descripción • El proyecto consiste en una lata que recorre libremente una curva en forma de semicircunferencia y que contiene un líquido en su interior. A partir un tiempo t , del lagrangiano y de unas condiciones iniciales, calculamos su ángulo de rotación con respecto a la vertical y a su rotación interna ,sus velocidades angulares y sus aceleraciones angulares; además se incluye una representación gráfica de la situación para comprobar los resultados.
Motivación • En este proyecto, quisimos presentar una situación ordinaria de una manera más formal, comprobando así que hasta las situaciones más ordinarias son también extraordinarias. Además; las cosas que podrían parecer cotidianas a veces presentan un alto grado de complejidad cuando realizamos un estudio exhaustivo de ellas, tal como ocurre en este proyecto, que si bien lo hemos enfocado de la manera más real posible, para su cálculo hemos hecho algunas simplificaciones.
Simplificaciones • Como hemos dicho antes hemos considerado una serie de simplificaciones para facilitar los cálculos: - Hemos despreciado el rozamiento -Hemos considerado que el líquido no tiene turbulencias y que actúa como un sólido rígido
Resolución del problema • Para llegar a los resultados obtenidos usamos la mecánica lagrangiana que utilizamos para hallar una expresión analítica de la situación. Este es uno de los fundamentos del proyecto y para ello en primer lugar identificamos los grados de libertad de la situación que son los dos ángulos, phi y theta (los ángulos de rotación interna de la lata y el ángulo que describe la posición de la lata con respecto a la vertical) y escribimos la ecuación del movimiento a traves del lagragiano que corresponde a la formula:
Resolución del problema • Calculamos además el centro de masas que era una de las dificultades añadidas cuando introducimos el líquido, dado que es variable. Una vez realizado este cálculo debíamos encontrar una función que resolviera ecuaciones diferenciales para resolver la ecuación del movimiento que obtuvimos aplicando la formula explicada anteriormente, usamos ode23 que resuelve ecuaciones diferenciales ordinarias. De esta manera ya podíamos calcular la velocidad y aceleración angular. • Por último para comprobar los resultados y ver gráficamente la situación encontramos la función movie.
Resultados • Tomando como origen de energía potencial la altura del centro del cuenco, las energías potencial y cinética de la lata, son, respectivamente: • Epl = -Mtg(R-r)sen(θ) Ecl = ½ Mtv2 + ½ It w2= ¼ Mt ((2L+r+2r2(L+r))/L+r)w2 • Epf = -Mfg [(R-r)sen(θ )-4r/3p sen(ϕ)] Ecf = ½ Mfvf2 + ½ It wf2= ½ Mf( ½r2 - L2/12 )wf2
Resultados • Entonces, el lagrangiano es: • L = Ec – Ep = Ecl + Ecf – Epl – Epf = ¼ Mt (2L+r+2r2(L+r))/L+r)w2 + ½ Mf( ½r2 - L2/12 )wf2 + Mtg(R-r)sen(θ) + Mfg [(R-r)sen(θ)-4r/3p sen(ϕ)]
Estructura del proyecto El proyecto tiene 2 funciones: Bowls: Se encargar de definir el lagrangiano de thetha y phi que son el angulo de oscilación de la lata(siendo su punto inicial la vertical que hace simétrica la semicircunferencia) y el ángulo de rotación interna de la misma respectivamente. En ella se define la matriz "y" que consiste en cuatro columnas, con los valores de theta, dtheta/dt, phi y dphi/dt respectivamente. Además se define la ecuación diferencial que llamaremos con ode23 para que la resuelva y se introducen las constantes que usa la función .
Estructura del proyecto • La segunda función es halfFullCan: HalfFullCan: En primer lugar define las constantes con las que vamos a trabajar, resuelve las ecuaciones diferenciales llamando con ode23 a bowls y finalmente hace un plot animado con movie que describe la situación y nos permite comprobar los resultados. Define además el segmento que representa el líquido, la circunferencia de la lata y la semicircunferencia por la cual rueda.
Funciones • Usamos dos funciones principales, ode23 y movie -Ode23: como hemos dicho resuelve la ecuación diferencial ordinaria. Tenemos que definir un vector Y cuya primera columna sea la variable que estamos analizando y la segunda el diferencial de la misma (dy/dt). Tenemos que definir también un vector T que nos dará el numero de resultados; así como los intervalos de integración y las condiciones iniciales. La sintaxis sería: [T,Y]=ode23(@(function(variables of the function)),(integration interval), (initial conditions))
FUNCIONES • En nuestro caso ode23 quedó: [T,Y] = ode23( @(t,y)bowls(t,y, Mt,Mf ,L ,R ,r), [t0,tmax] , y0 ) Al tener dos grados de libertad, definimos en la misma matriz "Y" las dos variables theta y phi en cuatro columnas, según lo especificando anteriormente. Por último, la función Movie que usamos para representar la situación.
Funciones • Para usar movie hay que tomar el "plot" de la función y hacer un bucle con él. a continuación definimos una matriz que tome los resultados del bucle con getframe y eso se lo damos a Movie para que lo reproduzca. en nuestro caso quedó: • for i=1:l • % Define the circunference for every theta value • x=r*0.01*cos(angle)+xcm(i); • y=r*0.01*sin(angle)+ycm(i); • % Define the segment that represents the fluid. • if cos(phi(i))== 0 • y2 = (tan(phi(i)))*x2-tan(phi(i))*xcm(i)+ycm(i); • x2 = xcm(i)*ones(1,length(y2));
Funciones • elseif phi(i)~=0 • x2 = xcm(i)-r0*cos(phi(i)):0.001:xcm(i)+r0*cos(phi(i)); • y2 = (tan(phi(i)))*x2-tan(phi(i))*xcm(i)+ycm(i); • else • x2= xcm(i)-r0*cos(phi(i)):0.001:xcm(i)+r0*cos(phi(i)); • y2 = ycm(i)*ones(1,length(x2)) • end • plot(x,y, x1, y1, x2, y2) • axis equal • title 'Rotation of the can' • F(i)= getframe; % Keeps every plot in a matrix. • end • movie(F); % Plays the animation.