Diferencia entre revisiones de «Sistema de masas y muelles»

De MateWiki
Saltar a: navegación, buscar
(Método de Runge-Kutta)
Línea 14: Línea 14:
 
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.
 
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:
+
Sustituyendo ahora los valores dados arriba en las ecuaciones obtenemos las siguientes, con las cuales operaremos. Para aplicar el método reduciremos el sistema a uno de primer orden ayudándonos de las siguientes ecuaciones.
 
+
===Método de Euler Modificado===
+
===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>
 
<math>\dot x=u\\\dot y=v\\\dot z=w</math>
Línea 25: Línea 21:
  
 
<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>
 
<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>
 +
 +
===Método de Euler Modificado===
 +
{{matlab|codigo=
 +
 +
 +
===Método de Runge-Kutta===
  
 
El código de Matlab es:
 
El código de Matlab es:
Línea 30: Línea 32:
  
 
% Sistema de 3 masas y 4 muelles
 
% Sistema de 3 masas y 4 muelles
clear all
 
% Intervalo de tiempo
 
 
t0=0;
 
t0=0;
 
tN=10;
 
tN=10;
Línea 63: Línea 63:
 
   
 
   
 
% Metodo de Runge-Kutta
 
% Metodo de Runge-Kutta
 
 
 
 
for n=1:N
 
for n=1:N
 
     % Primera K
 
     % Primera K
Línea 83: Línea 80:
 
     k2w=k3/m3*(yy(n)+1/2*k1y*h)-((k4+k3)/m3)*(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
 
     % Tercera K
 
     k3x=uu(n)+1/2*h*k2u;
 
     k3x=uu(n)+1/2*h*k2u;
Línea 99: Línea 95:
 
     k4v=k2/m2*(xx(n)+h*k3x)-((k2+k3)/m2)*(yy(n)+k3y*h)+(k3/m2)*(zz(n)+k3z*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);
 
     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);
 
     xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);
Línea 109: Línea 104:
 
end
 
end
 
   
 
   
 +
e=t0:0.01:tN
 
t=t0:h:tN;
 
t=t0:h:tN;
 
axis([0,12,0,10])
 
axis([0,12,0,10])
 
hold on
 
hold on
 
title('Runge-Kutta')
 
title('Runge-Kutta')
plot(xx+2,t,'-')
+
plot(xx+2.5,t,'-')
 
plot(yy+4,t,'-r')
 
plot(yy+4,t,'-r')
 
plot(zz+8,t,'-k')
 
plot(zz+8,t,'-k')
plot(2,t,'-g')
+
plot(2.5,e,'-g')
plot(4,t,'-g')
+
plot(4,e,'-g')
plot(8,t,'-g')
+
plot(8,e,'-g')
 
legend('Masa m1','Masa m2','Masa m3','Posicion de equilibrio')
 
legend('Masa m1','Masa m2','Masa m3','Posicion de equilibrio')
 
hold off
 
hold off

Revisión del 16:30 5 mar 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.

Sistema formado por 3 masas y 4 muelles,anclado a las paredes laterales

[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. 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]

2.1 Método de Euler Modificado

{{matlab|codigo=


2.2 Método de Runge-Kutta

El código de Matlab es:

% Sistema de 3 masas y 4 muelles
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
 
e=t0:0.01:tN
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,e,'-g')
plot(4,e,'-g')
plot(8,e,'-g')
legend('Masa m1','Masa m2','Masa m3','Posicion de equilibrio')
hold off


Posición de cada masa respecto de la posición de equilibrio en intervalo (0,10)

3 Otras condiciones iniciales

Ahora vamos a imponer unas nuevas CI para representar dos nuevas situaciones. Dichas condiciones son:

[math]\left\{\begin{matrix}x(0)=0.5 \\\dot x(0)=1\\y(0)=1 \\\dot y(0)=1\\z(0)=-0.5 \\\dot z=-1\\\end{matrix}\right.[/math]

[math]\left\{\begin{matrix}x(0)=0.5 \\\dot x(0)=-1\\y(0)=1 \\\dot y(0)=0\\z(0)=-0.5 \\\dot z=0.5\\\end{matrix}\right.[/math]

3.1 Método del trapecio

3.2 Método de Euler Modificado

4 Estudio de un sistema en medio viscoso y con fuerza exterior

En muchos de los casos que estudian vibraciones es necesario tener en cuenta un amortiguador que va frenando las vibraciones. Vamos a estudiar el caso de una única masa (m=1kg), [math]\mu=c=1[/math] , k=4 y una fuerza exterior [math]f(t)=2·exp(-0.01t)·sin(2t)[/math]. Las condiciones iniciales son x(0)=0.3 v(0)=0.3 Aplicando las ecuaciones de Newton obtenemos la siguiente ecuación diferencial:

[math]\ddot x+\dot x +kx -2e^{(-0.01t)·sin(2t)}=0[/math]

Para resolver numericamente este problema aplicamos el método del trapecio. Necesitamos pasar de la ecuación de segundo orden a un sistema de dos ecuaciones de primer orden, el cual queda así:

[math]\left\{\begin{matrix}\dot v+v+4x-2e^{(-0.01t)·sin(2t)}=0\\\dot x=v\end{matrix}\right.[/math]

Si operamos el sistema aplicando la fórmula del trapecio y despejamos dejando como incógnita los términos en (n+1) resolvemos con el siguiente código:

a=0; b=10
N=100
h=(b-a)/N
t=a:h:b;
t0=a; x0=0.3; v0=0.3
x(1)=x0; v(1)=v0; E(1)=0.27

for n=1:N
A=[x(n)-h/2*v(n)+h/2*(2*exp(-0.01*t(n))*sin(2*t(n)))+2*exp(-0.01*t(n+1)*sin(2*t(n+1)));
    (1+h/2)*v(n)]
B=[1,3*h/2;-h/6,1]
rest=A\B;
x(n+1)=rest(1);
v(n+1)=rest(2);
E(n)=2*(x(n)^2)+(v(n)^2);
end

plot(t,E,'g')