Programación Vibración en 1 Grado Libertad en MATLAB
Programación Vibración en 1 Grado Libertad en MATLAB
Programación Vibración en 1 Grado Libertad en MATLAB
Facultad de Ingeniera
Departamento de Ingeniera Mecnica
LABORATORIO N1
Vibraciones en sistemas de 1 grado de
libertad
Alumno:
Gonzalo
de
la
Cuadra.
Profesora:
Dr.
Marcela
Cruchaga.
Ayudante: Felipe Gonzlez.
Asignatura: Tpicos III
Slidos.
Carrera:
Mecnica.
Grupo: 3
Ingeniera
Civil
Fecha
de
entrega:
17/04/15.
Contenido
1.
Resumen....................................................................................................... 3
2.
Objetivos de la experiencia...........................................................................3
3.
4.
2.1
Objetivo general..................................................................................... 3
2.2
Objetivos especficos.............................................................................. 3
3.2
3.3
Vibracin forzada.................................................................................... 6
3.3.1
Sistema no amortiguado..................................................................6
3.3.2
Sistema amortiguado.......................................................................6
Desarrollo..................................................................................................... 7
4.1
4.2
4.3
4.4
Vibracin forzada.................................................................................... 8
5.
Anlisis de resultados................................................................................. 10
6.
Conclusiones............................................................................................... 10
7.
Apndice..................................................................................................... 11
7.1
8.
7.1.1
Solucin numrica..........................................................................11
7.1.2
7.1.3
7.1.4
Vibracin forzada........................................................................... 14
Bibliografa.................................................................................................. 16
1. Resumen
El presente informe trata sobre el anlisis de respuesta de un sistema
vibratorio compuesto por masa-resorte-amortiguador para diferentes casos. El
primero de ellos corresponde a un problema libre de amortiguacin con una
serie de valores de constante de rigidez, seguido despus de un sistema con
amortiguacin, y luego se estudia el comportamiento un caso de vibracin
forzada.
Para ello, se elabora un programa computacional hecho en MATLAB para
obtener las respuestas de posicin y velocidad en cada uno de los casos en
estudio utilizando tanto mtodos analticos como el algoritmo numrico de
Runge- Kutta de cuarto orden.
Los resultados demuestran que el uso de programacin ayuda a la una mejor
interpretacin de los grficos generados por el software.
2. Objetivos de la experiencia
2.1 Objetivo general
Obtener los grficos las soluciones de posicin y tiempo para los casos
de vibracin considerados.
Usar herramientas de clculo para resolver la ecuacin de movimiento.
Hacer una comparacin, a partir de los resultados generados, entre el
mtodo analtico y el numrico.
m x +kx =0
Cuya solucin sujeta a las condiciones iniciales es:
w
w
x
( n t)+ o sin( n t)
wn
x ( t )=x o cos
Adems:
w
w
( n t )+ xo cos( nt )
x (t)=x o wn sin
m x +c x + kx=0
Para cualquier sistema amortiguado, la relacin de amortiguamiento
se
c
2 m wn
x ( t )=C 1 e s t +C 2 e s t
1
s 1,2=( 1 ) wn
2
=0
y se analiza tres
s2
casos.
Caso 1: Sistema sub-amortiguado (
21
En esta condicin,
< 1).
s1
se expresan
como:
s 1=( + i 1 2) wn
s 2=( i 1 ) w n
2
x ( t )=X o e w t sin ( 1 2 w n t + o )
n
Xo
x
=
wn2 + xo2+ 2 x o xo wn
o=tan 1
1 2 w n
xo + x o w n
x o wn 1 2 w n
(1 2 wn t+ o )+ 1 2 wn X o e w t cos (1 2 w n t +o )
n
x (t)=wn X o e w t sin
n
s1
s2
= 1).
se expresan como:
s 1=s2=wn
Dando la siguiente solucin
wn t
x ( t )=[ x o + ( xo + wn x o ) t ] e
x (t)=( xo + wn x o ) e
w n t
w nt
w n [ x o + ( xo + wn xo ) t ] e
> 1).
s 1=( + 1 ) w n
2
s 2=( 2 1 ) wn
C1 =
C2 =
x o w n ( + 21 ) + xo
2 wn ( 2 1 )
x o wn ( 21 ) xo
2 w n ( 21 )
x ( t )=C 1 e s t +C 2 e s t
1
x (t)=s1 C1 e s t + s2 C2 e s t
1
Las
ecuaciones
muestran
que
el
movimiento
es
aperidico
independientemente de las condiciones iniciales impuestas en el sistema.
Como las races s1 y s2 son negativas, el movimiento se reduce
exponencialmente con el tiempo.
m x +c x + kx=F o sin ( wf t )
Si wf/wn < 1 entonces la solucin es:
q
sin ( w f t )
wn w f 2
2
C1 =xo ; C 2=
q wf
w n2w f 2
cos ( w f t )
xo q wf w n
wn w n2w f 2
x ( t )=
q
(wntcos ( w n t )sin ( wn t ))
2
2 wn
x (t)=
q
(w ncos ( wn t ) w n2tsin ( wn t ) w ncos ( wn t ))
2
2 wn
q 2 n wf
q( wn2w f 2)
x p ( t )= 2 2
sin ( w f t ) + 2 2
cos ( w f t )
4 n wf +(w n2w f 2 )
4 n w f +( wn2wf 2)
x p( t )=
q 2 n wf2
q w f ( wn2wf 2)
cos
w
t
sin ( w f t )
( f )
4 n2 wf 2+(w n2w f 2 )
4 n2 wf 2+(w n2w f 2 )
x ( t )=x p ( t ) + x h (t )
4. Desarrollo
4.1 Planteamiento del problema
Ecuacin de movimiento:
M x +2 n x + Kx=0
M =m 1+ m2+
Io
r
; n=
c
2M
K=k 1+ k 2
( )
a a
K
+
; wn =
r r2
M
Ilustracin 2. Respuestas de posicin y velocidad para una constante de rigidez de 1500 (azul),
4500 (amarillo) y 300 (verde).
10
Ilustracin 6 c = 200 y wf = 20
Ilustracin 7 c =1 200 y wf = 20
5. Anlisis de resultados
A partir del anlisis de los grficos en los dos primeros casos se puede apreciar
que no existe una diferencia entre la solucin analtica y numrica en la
obtencin de las respuestas para posicin y velocidad. Una explicacin a esto
sera que el mtodo de Runge Kutta presenta una mayor estabilidad y
convergencia. Mientras que la vibracin forzada surge diferencias en las
ilustraciones 4, 6 y 7, mostrando que la solucin numrica se encuentra
desfasada de la curva analtica.
Para el primer caso, se puede observar que mientras menor sea el coeficiente
de rigidez k2, la amplitud aumenta y la frecuencia disminuye, dando origen a
una mayor disipacin energtica.
11
6. Conclusiones
Se evalu la respuesta en un sistema compuesto por una masa-discoamortiguador con un grado de libertad para diversos casos de vibraciones.
Se identific mediante grficos las diversas respuestas que experimentaban el
sistema al variar el coeficiente de amortiguacin y las constantes de rigidez en
los dos primeros casos.
El uso de software computacional result ser muy efectivo para el anlisis del
sistema.
12
7. Apndice
7.1 Cdigos de programacin en MATLAB
7.1.1 Solucin numrica
Para todos los casos analizados se ha implementado el algoritmo de Runge
Kutta de cuarto orden para ecuaciones diferenciales de orden superior [2].
function [t,x,v] = rk_2(f,ta,tb,xo,vo,N)
h = (tb-ta)/N;
t = ta:h:tb;
x = zeros(N+1,1); %reserva memoria para n+1 elementos del vector x
v = zeros(N+1,1);
x(1) = xo; v(1) = vo;
for i=1:N
k1=h*v(i);
l1=h*f(t(i),x(i),v(i));
k2=h*(v(i)+l1/2);
l2=h*f(t(i)+h/2,x(i)+k1/2,v(i)+l1/2);
k3=h*(v(i)+l2/2);
l3=h*f(t(i)+h/2,x(i)+k2/2,v(i)+l2/2);
k4=h*(v(i)+l3);
l4=h*f(t(i)+h,x(i)+k3,v(i)+l3);
end
x(i+1)=x(i)+(k1+2*k2+2*k3+k4)/6;
v(i+1)=v(i)+(l1+2*l2+2*l3+l4)/6;
end
13
end
N = 320;
hold on
% Solucin numrica
[t,x,v] = rk_2(f,ta,tb,xo,vo,N);
subplot(2,1,1)
plot(t,x,'*')
hold on
subplot(2,1,2)
plot(t,v,'*')
% Solucin analtica
hold on
x = xo*cos(wn*t)+vo/wn*sin(wn*t);
subplot(2,1,1)
plot(t,x,'-')
hold on
v = vo*cos(wn*t)-xo*wn*sin(wn*t);
subplot(2,1,2)
plot(t,v,'-')
% Determinacin posicin
% Determinacin velocidad
subplot(2,1,1)
grid on
xlabel('t')
ylabel('x');
legend('aproximado','exacto')
title('Posicin')
gtext('k2 = 1500','Color','b')
gtext('k2 = 4500','Color','y')
gtext('k2 = 300','Color','g')
subplot(2,1,2)
grid on
xlabel('t')
ylabel('x^.(t)');
legend('aproximado','exacto')
title('Velocidad')
gtext('k2 = 1500','Color','b')
gtext('k2 = 4500','Color','y')
gtext('k2 = 300','Color','g')
14
for j = 1:3
c = C(j);
n = c/(2*(m1+m2+Io/r^2));
f=@(t,x,v) -2*n*v-wn*wn*x+Mo/(r*M)*sin(wn*t); % Ecuacin de
movimiento
% Relacin de amortiguamiento
e = c/(2*(m1+m2+Io/r^2)*wn);
% Tiempo
ta = 0;
tb = 2;
N = 320;
hold on
% Solucin numrica
[t,x,v] = rk_2(f,ta,tb,xo,vo,N);
subplot(2,1,1)
plot(t,x,'.')
hold on
subplot(2,1,2)
plot(t,v,'.')
% Solucin analtica
if e < 1 % Sistema subamortiguado
Xo = sqrt(xo^2*wn^2+vo^2+2*xo*vo*e*wn)/(sqrt(1-e^2)*wn);
PHIo = atan((xo*wn*sqrt(1-e^2))/(vo+wn*xo*e));
hold on
x = Xo*exp(-e*wn*t).*sin(sqrt(1-e^2)*wn*t+PHIo);
subplot(2,1,1)
plot(t,x,'-')
hold on
v = -Xo*e*wn*exp(-e*wn*t).*sin(sqrt(1-e^2)*wn*t+PHIo)+...
Xo*exp(-e*wn*t)*sqrt(1-e^2)*wn.*cos(sqrt(1-e^2)*wn*t+PHIo);
subplot(2,1,2)
plot(t,v,'-')
elseif e == 1 % Sistema crticamente amortiguado
hold on
x = (xo+(vo+wn*xo)*t).*exp(-wn*t);
subplot(2,1,1)
plot(t,x,'-')
hold on
v = (vo+wn*xo).*exp(-wn*t)-(xo+(vo+wn*xo)*t)*wn.*exp(-wn*t);
subplot(2,1,2)
plot(t,v,'-')
else % Sistema sobreamortiguado
s1 = (-e+sqrt(e^2-1))*wn;
s2 = (-e-sqrt(e^2-1))*wn;
C1 = (xo*wn*(e+sqrt(e^2-1)+vo))/(2*wn*sqrt(e^2-1));
C2 = (-xo*wn*(e+sqrt(e^2-1)-vo))/(2*wn*sqrt(e^2-1));
hold on
x = C1*exp(s1*t)+C2*exp(s2*t);
subplot(2,1,1)
plot(t,x,'-')
hold on
v = C1*s1*exp(s1*t)+C2*s2*exp(s2*t);
subplot(2,1,2)
plot(t,v,'-')
end
end
15
subplot(2,1,1)
grid on
xlabel('t')
ylabel('x');
legend('aproximado','exacto')
title('Posicin')
gtext('c = 1200','Color','b')
gtext('c = 2400','Color','y')
gtext('c = 200','Color','c')
subplot(2,1,2)
grid on
xlabel('t')
ylabel('x^.(t)');
legend('aproximado','exacto')
title('Velocidad')
gtext('c = 1200','Color','b')
gtext('c = 2400','Color','y')
gtext('c = 200','Color','c')
16
% Para c = 0 y wf = 10
C1 = xo;
C2 = vo/wn-(q*wf/wn)/(wn^2-wf^2);
hold on
x = C1*cos(wn*t)+C2*sin(wn*t)+q/(wn^2+wf^2)*sin(wf*t);
subplot(2,1,1)
plot(t,x,'-')
hold on
v = -C1*wn*sin(wn*t)+C2*wn*cos(wn*t)+q*wf/(wn^2+wf^2)*cos(wf*t);
subplot(2,1,2)
plot(t,v,'-')
% Para c = 0 y wf = 20
% Resonancia
hold on
x = -q/(2*wn^2)*(wn*t.*cos(wn*t)-sin(wn*t));
subplot(2,1,1)
plot(t,x,'-')
hold on
v = -q/(2*wn^2)*(wn.*cos(wn*t)-wn^2*t.*sin(wn*t)-wn*cos(wn*t));
subplot(2,1,2)
plot(t,v,'-')
% Para c = 200 y wf = 20
Xo = sqrt(xo^2*wn^2+vo^2+2*xo*vo*e*wn)/(sqrt(1-e^2)*wn);
PHIo = atan(xo*wn*sqrt(1-e^2))/(vo+wn*xo*e);
hold on
xh = Xo*exp(-e*wn*t).*sin(sqrt(1-e^2)*wn*t+PHIo);
xp = q*2*n*wf*sin(wf*t)/(4*n^2*wf^2+(wn^2-wf^2))+q*(wn^2wf^2)*cos(wf*t)...
/(4*n^2*wf^2+(wn^2-wf^2));
x = xh+xp;
subplot(2,1,1)
plot(t,x,'-')
hold on
vh = -Xo*e*wn*exp(-e*wn*t).*sin(sqrt(1-e^2)*wn*t+PHIo)+...
Xo*exp(-e*wn*t)*sqrt(1-e^2)*wn.*cos(sqrt(1-e^2)*wn*t+PHIo);
vp = q*2*n*wf^2*cos(wf*t)/(4*n^2*wf^2+(wn^2-wf^2))-...
q*wf*(wn^2-wf^2)*sin(wf*t)/(4*n^2*wf^2+(wn^2-wf^2));
v = vh + vp;
subplot(2,1,2)
plot(t,v,'-')
% Para c = 1200 y wf = 20
hold on
xh = (xo+(vo+wn*xo)*t).*exp(-wn*t);
xp = q*2*n*wf*sin(wf*t)/(4*n^2*wf^2+(wn^2-wf^2))+q*(wn^2wf^2)*cos(wf*t)...
/(4*n^2*wf^2+(wn^2-wf^2));
x = xh+xp;
subplot(2,1,1)
plot(t,x,'-')
hold on
vh = (vo+wn*xo).*exp(-wn*t)-(xo+(vo+wn*xo)*t)*wn.*exp(-wn*t);
vp = q*2*n*wf^2*cos(wf*t)/(4*n^2*wf^2+(wn^2-wf^2))-...
17
q*wf*(wn^2-wf^2)*sin(wf*t)/(4*n^2*wf^2+(wn^2-wf^2));
v = vh + vp;
subplot(2,1,2)
plot(t,v,'-')
subplot(2,1,1)
grid on
xlabel('t')
ylabel('x');
legend('aproximado','exacto')
title('Posicin')
subplot(2,1,2)
grid on
xlabel('t')
ylabel('x^.(t)');
legend('aproximado','exacto')
title('Velocidad')
8. Bibliografa
18