Вы находитесь на странице: 1из 11
Pontificia Universidad Católica de Chile Departamento Ingeniería Mecánica y Metalurgia ICM3352 Mecánica Computacional

Pontificia Universidad Católica de Chile Departamento Ingeniería Mecánica y Metalurgia ICM3352 Mecánica Computacional

Informe Tarea 5

ICM3823 Vibraciones Mecánicas

Benjamín A. Lagos B.

Profesor: Hector Jensen V.

Fecha: 03-10-2013

Enunciado

Una barra uniforme de masa

y longitud

se encuentra pivoteada en el punto A y sujeta a cinco resortes

tal como se muestra en la figura. Utilizar los métodos numéricos de diferencia central y Newmark (con

acelaración lineal y aceleración constante) con intervalos de tiempo:

Donde

primeros 10 ciclos de vibración si las condiciones del sistema son:

corresponde al periodo del sistema. Comparar estos resultados con la solución exacta en los

Condiciones iniciales

 

(

)

̇ (

)

Masa:

[

]

Longitud barra:

 

[

]

Propiedades elásticas:

 

[

]

[

]

( ) Masa: [ ] Longitud barra:   [ ] Propiedades elásticas:   [ ] [

Desarrollo

El momento de inercia de una barra desde su centro de masas es:

Usando el teorema de los ejes paralelos encontramos el momento de inercia de la barra pivoteada a 1/3 de su extremo:

(

)

Haciendo sumatoria de momentos en torno al punto pivote tenemos:

̈

( ) ( ) ̈ ( ) ̈ Usando la aproximación de ángulos pequeños (
(
)
(
)
̈
(
)
̈
Usando la aproximación de ángulos pequeños
(
)
̈
(
)
[
]
La frecuencia natural del sistema es:
[
]
El periodo natural del sistema es:
[
]
Método de diferencia central
El método para este caso, según los apuntes del curso, queda:
(
)
(
)
(
)
̇
̈
̇
̈
Se implementó un código matlab para graficar los datos, disponible en el anexo.

El valor Data 6 corresponde a la solución exacta calculada por un modelo de Simulink.

Diferencia Central

0.2 0.15 0.1 0.05 0 -0.05 -0.1 data1 data2 -0.15 data3 data4 data5 data6 -0.2
0.2
0.15
0.1
0.05
0
-0.05
-0.1
data1
data2
-0.15
data3
data4
data5
data6
-0.2
0
0.1
0.2
0.3
0.4
0.5
0.6
tiempo
Los primeros dos valores (
para
) divergen ya que no cumplen la condición:
. De hecho
y
para
.
theta

Se aprecia claramente la consistencia del método ya que al disminuir el periodo de discretización, esta mejora bastante.

Método de Newmark

El método para este caso, según los apuntes del curso, queda:

̈

(

̇

(

̇

)

(

((

)

̇

Para el caso Aceleración Lineal los parámetros son

)

Para el caso Aceleración Constante 1 los parámetros son

̇

̈

̈

̇

̈

.

(

(

)

.

)

)

̈

̈

)

1 En la literatura en inglés se refiere a este método como Average Accelerationo Constant Average Acceleration.

El valor Data 6 corresponde a la solución exacta calculada por un modelo de Simulink.

Newmark Aceleración Lineal

data1 data2 data3 0.15 data4 data5 data6 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 0
data1
data2
data3
0.15
data4
data5
data6
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
0
0.1
0.2
0.3
0.4
0.5
0.6
tiempo
El primer valor (
) diverge ya que no cumple la condición:
. De hecho
. Nuevamente se aprecia la consistencia
theta

del método para valores decrecientes del periodo de discretización.

El valor Data 6 corresponde a la solución exacta calculada por un modelo de Simulink.

Newmark Aceleración Constante

0.2

 

data1

data2

data3

0.15

data4

data5

data6

0.1

0.05

0

0.05

-0.1

0.15

-0.2

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Aquí se demuestra gráficamente la convergencia incondicional del método, a pesar de usar un periodo de discretización igual al periodo natural del sistema a aproximar. También se observa la consistencia del método.

Conclusiones

En general vemos que los tres métodos son buenas aproximaciones para el sistema analizado a partir de

. Claramente el método más ventajoso es el de Newmark con Aceleración Constante, ya que

presenta incondicionalidad en su convergencia sin tener un error tan grande (apreciado por comparación entre los gráficos). Una desventaja de los métodos de Newmark analizados es que la frecuencia de la solución va disminuyendo a medida que avanza el tiempo, lo que implica un error creciente en el tiempo. Da la impresión de que la tasa de crecimiento del error para los métodos de Newmark es mucho más importante que la que se observa en el caso del método de diferencia central.

Anexos

A.- Simulink

Modelo Simulink ('modelo_tarea_5.slx')usado para encontrar la solución exacta:

usado para encontrar la solución exacta: La ganancia es igual a . Las condiciones iniciales se

La ganancia es igual a

. Las condiciones iniciales se consideran en los bloques integradores.

B.- Script de Matlab

%Tarea 5 Mecánica Computacional clear all; close all; m=10; %[Kg] l=5; %[m]

I=m*l^2/9;

k=2000; %[N/m]

kt=1000;%[Nm/rad]

k_eq=10/9*k*l^2+kt;

omega_n=sqrt(k_eq/I);

T=2*pi/omega_n;

stop_time=5*T; %los primeros 5 ciclos

%solución real cte=k_eq/I;

open_system('modelo_tarea_5.slx');

options = simset('SrcWorkspace','current'); sim(gcs,[],options); %Simulamos para obtener los datos sim(gcs,stop_time);

%Recuperamos los datos guardados y el tiempo de simulación correspondiente. theta_data=logsout.get('theta').Values.Data; theta_time=logsout.get('theta').Values.Time; %condiciones iniciales

theta_0=0.2;

theta_0_punto=0;

theta_0_dos_puntos=-cte*theta_0;

%Periodos de discretización a comparar dt=[T T/2 T/5 T/10 T/20];

j_max=5;

for j=1:1:j_max largo(j)=ceil(stop_time/dt(j)); %aproxima hacia el entero superior

theta_menos_1=theta_0-

dt(j)*theta_0_punto+dt(j)^2/2*theta_0_dos_puntos; %theta(n=-1)

theta_dif_central(1,j)=theta_0;%theta(n=0);

time(1)=0;

'Estabilidad si dt(j)*omega_n<2' ['dt(' num2str(j) ')*omega_n=' num2str(dt(j)*omega_n)] color(j,:)=[rand(1,1) rand(1,1) rand(1,1)]; for i=2:1:largo(j) if i==2

theta_dif_central(i,j)=(2-k_eq/(I/dt(j)^2))*theta_dif_central(i-1,j)-

theta_menos_1;

time(i,j)=(i-1)*dt(j);

else

theta_dif_central(i,j)=(2-k_eq/(I/dt(j)^2))*theta_dif_central(i-1,j)-

theta_dif_central(i-2,j);

time(i,j)=(i-1)*dt(j);

end

end

end %Graficamos

figure1=figure;

axes1 = axes('Parent',figure1); color(1,:)=[rand(1,1) rand(1,1) rand(1,1)]; color(2,:)=[rand(1,1) rand(1,1) rand(1,1)]; xlabel('tiempo') ylabel('theta') for j=1:1:j_max

plot(time(1:largo(j),j),theta_dif_central(1:largo(j),j),'Color',color(j,:),'Pare

nt',axes1)

hold on end plot(theta_time,theta_data,'r')

legend(axes1,'show');

xlabel('tiempo') ylabel('theta') title('Diferencia Central')

%Metodos de Newmark de Aceleración Lineal (AL) y Aceleración Constante (AC)

theta_0_dos_puntos=-cte*theta_0;

beta_AL=1/6;

gamma_AL=1/2;

beta_AC=1/4;

gamma_AC=1/2;

for j=1:1:j_max largo(j)=stop_time/dt(j); %aproxima hacia el entero superior

theta_newmark_AL(1,j)=theta_0;%theta(n=0);

theta_punto_newmark_AL(1,j)=theta_0_punto;

theta_dos_puntos_newmark_AL(1,j)=theta_0_dos_puntos;

theta_newmark_AC(1,j)=theta_0;%theta(n=0);

theta_punto_newmark_AC(1,j)=theta_0_punto;

theta_dos_puntos_newmark_AC(1,j)=theta_0_dos_puntos;

['Estabilidad si dt(j)<' num2str(0.55*T)] ['dt(' num2str(j) ')=' num2str(dt(j))]

for i=2:1:largo(j)

A1=(I/(dt(j)^2))/(I/(dt(j)^2)+beta_AL*k_eq);

A2=(I/dt(j))/(I/(dt(j)^2)+beta_AL*k_eq);

A3=((1/2-beta_AL)*I)/(I/(dt(j)^2)+beta_AL*k_eq);

theta_newmark_AL(i,j)=A1*theta_newmark_AL(i-1,j)+

A2*theta_punto_newmark_AL(i-1,j)+A3*theta_dos_puntos_newmark_AL(i-1,j);

theta_dos_puntos_newmark_AL(i,j)=

1/(beta_AL*(dt(j)^2))*(theta_newmark_AL(i,j)-theta_newmark_AL(i-1,j))

-1/(beta_AL*dt(j))*theta_punto_newmark_AL(i-1,j)

-(1/(2*beta_AL)-1)*theta_dos_puntos_newmark_AL(i-1,j);

theta_punto_newmark_AL(i,j)=theta_punto_newmark_AL(i-1,j)

+((1-gamma_AL)*theta_dos_puntos_newmark_AL(i-1,j)

+gamma_AL*theta_dos_puntos_newmark_AL(i,j))*dt(j);

B1=(I/(dt(j)^2))/(I/(dt(j)^2)+beta_AC*k_eq);

B2=(I/dt(j))/(I/(dt(j)^2)+beta_AC*k_eq);

B3=((1/2-beta_AC)*I)/(I/(dt(j)^2)+beta_AC*k_eq);

theta_newmark_AC(i,j)=B1*theta_newmark_AC(i-1,j)

+B2*theta_punto_newmark_AC(i-1,j)+B3*theta_dos_puntos_newmark_AC(i-1,j);

theta_dos_puntos_newmark_AC(i,j)=

1/(beta_AC*(dt(j)^2))*(theta_newmark_AC(i,j)

-theta_newmark_AC(i-1,j))

-1/(beta_AC*dt(j))*theta_punto_newmark_AC(i-1,j)

-(1/(2*beta_AC)-1)*theta_dos_puntos_newmark_AC(i-1,j);

theta_punto_newmark_AC(i,j)=theta_punto_newmark_AC(i-1,j)

+((1-gamma_AC)*theta_dos_puntos_newmark_AC(i-1,j)

+gamma_AC*theta_dos_puntos_newmark_AC(i,j))*dt(j);

end

end %Graficamos Newmark Aceleración Lineal

figure2=figure;

for j=1:1:j_max

plot(time(1:largo(j),j),theta_newmark_AL(1:largo(j),j),'Color',color(j,:))

hold on end plot(theta_time,theta_data,'r') xlabel('tiempo') ylabel('theta')

legend(axes2,'show');

title('Newmark Aceleración Lineal') %Graficamos Newmark Aceleración Constante

figure3=figure;

for j=1:1:j_max

plot(time(1:largo(j),j),theta_newmark_AC(1:largo(j),j),'Color',color(j,:))

hold on end plot(theta_time,theta_data,'r') xlabel('tiempo') ylabel('theta')

legend(axes3,'show');

title('Newmark Aceleración Constante')