Diferencia entre revisiones de «Sistema de masas y muelles»
| Línea 50: | Línea 50: | ||
w0=0 | w0=0 | ||
| − | N= | + | N=100; % Pasos |
h=(tN-t0)/N; % Intervalo | h=(tN-t0)/N; % Intervalo | ||
Revisión del 11:21 26 feb 2014
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Sistema de masas y muelles. Grupo 11-B |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2013-14 |
| Autores | Javier Mellado, Jacobo Campos, Javier Chamizo, Miguel García, Alfonso Ascanio |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Sistemas de muelles y masas. Estos sistemas son bastante útiles a la hora de estudiar vibraciones, consiguiendo traducirlo a un lenguaje matemático que sea fácil de estudiar e interpretar.
1 Introducción
En este artículo vamos a estudiar un sistema de 3 masas y 4 muelles en disposición horizontal, entre dos paredes rígidas. Empezaremos estudiándolo primero desde la posición de equilibrio en el caso de no haber rozamiento ni amortiguamiento, por lo que solo actúan las fuerzas restauradoras de los muelles. Tomamos como variables las posiciones de cada masa (x,y,z) en función del tiempo. A partir de ellas escribimos las ecuaciones diferenciales correspondientes a una interpretación según la mecánica de Newton.
[math]\left\{\begin{matrix}m_{1}\ddot x=-k_{1}x+k_{2}(y-x)\\m_{2}\ddot y=-k_{2}(y-x)+k_{3}(z-y)\\m_{3}\ddot z=-k_{3}(z-y)-k_{4}(z)\end{matrix}\right.[/math]
2 Condiciones iniciales y caso particular
Suponemos que en el instante t=0 las tres masas están desplazadas 0.5, 1 y 0.8 metros hacia la derecha de la posici ́on de equilibrio y se sueltan repentinamente, sin velocidad. Vamos a suponer que k1=4N/m, k2=2N/m, k3=1N/m, k4=3N/m, m1=2kg, m2=1kg, m3=3kg, que la distancia entre las paredes es de 12 metros y que en equilibrio las tres masas están en las posiciones 2.5, 4 y 8.Resolveremos el problema numéricamente utilizando los métodos de Euler modificado y Runge Kutta con pasos de h=0.1m y h=0.025m.
Sustituyendo ahora los valores dados arriba en las ecuaciones obtenemos las siguientes, con las cuales operaremos:
2.1 Método de Runge-Kutta
Para aplicar el método reduciremos el sistema a uno de primer orden ayudándonos de las siguientes ecuaciones.
[math]\dot x=u\\\dot y=v\\\dot z=w[/math]
Y lo juntamos con el ya existente para obtener:
[math]\left\{\begin{matrix}m_{1}\ddot x=-k_{1}x+k_{2}(y-x)\\m_{2}\ddot y=-k_{2}(y-x)+k_{3}(z-y)\\m_{3}\ddot z=-k_{3}(z-y)-k_{4}(z)\\\dot x=u\\\dot y=v\\\dot z=w\end{matrix}\right.[/math]
El código de Matlab es:
% Sistema de 3 masas y 4 muelles
clear all
% Intervalo de tiempo
t0=0;
tN=10;
% Datos
k1=4;
k2=2;
k3=1;
k4=3;
m1=2;
m2=1;
m3=3;
%Condiciones iniciales
x0=0.5;
y0=1;
z0=0.8;
u0=0;
v0=0;
w0=0
N=100; % Pasos
h=(tN-t0)/N; % Intervalo
% Primeros valores
xx(1)=x0;
yy(1)=y0;
zz(1)=z0;
uu(1)=u0;
vv(1)=v0;
ww(1)=w0;
% Metodo de Runge-Kutta
for n=1:N
% Primera K
k1x=uu(n);
k1y=vv(n);
k1z=ww(n);
k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);
k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n)+(k3/m2)*zz(n);
k1w=k3/m3*yy(n)-((k4+k3)/m3)*zz(n);
% Segunda K
k2x=uu(n)+1/2*h*k1u;
k2y=vv(n)+1/2*h*k1v;
k2z=ww(n)+1/2*h*k1w;
k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);
k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h)+(k3/m2)*(zz(n)+1/2*k1z*h);
k2w=k3/m3*(yy(n)+1/2*k1y*h)-((k4+k3)/m3)*(zz(n)+1/2*k1z*h);
% Tercera K
k3x=uu(n)+1/2*h*k2u;
k3y=vv(n)+1/2*h*k2v;
k3z=ww(n)+1/2*h*k2w;
k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);
k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h)+(k3/m2)*(zz(n)+1/2*k2z*h);
k3w=k3/m3*(yy(n)+1/2*k2y*h)-((k4+k3)/m3)*(zz(n)+1/2*k2z*h);
% Cuarta K
k4x=uu(n)+h*k3u;
k4y=vv(n)+h*k3v;
k4z=ww(n)+h*k3w;
k4u=-(k2+k1)/m1*(xx(n)+h*k3x)+k2/m1*(yy(n)+k3y*h);
k4v=k2/m2*(xx(n)+h*k3x)-((k2+k3)/m2)*(yy(n)+k3y*h)+(k3/m2)*(zz(n)+k3z*h);
k4w=k3/m3*(yy(n)+h*k3y)-((k4+k3)/m3)*(zz(n)+k3z*h);
xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);
yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);
zz(n+1)=zz(n)+(h/6)*(k1z+2*k2z+2*k3z+k4z);
uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);
vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);
ww(n+1)=ww(n)+(h/6)*(k1w+2*k2w+2*k3w+k4w);
end
t=t0:h:tN;
axis([0,12,0,10])
hold on
title('Runge-Kutta')
plot(xx+2.5,t,'-')
plot(yy+4,t,'-r')
plot(zz+8,t,'-k')
plot(2.5,t,'-g')
plot(4,t,'-g')
plot(8,t,'-g')
legend('Masa m1','Masa m2','Masa m3','Posicion de equilibrio')
hold off

