Está en la página 1de 25

Contenido

Problema 1 ...................................................................................................................................... 3
Solución: ......................................................................................................................................... 3
Respuesta numérica a una condición inicial q(0)=0.1m (0<t<25 seg) ........................................ 3
Respuesta numérica a una excitación armónica sísmica a(t)=0.25*g*sen(2*pi*t/Ts) (0<t<25
seg) .............................................................................................................................................. 6
Discusión de resultados ................................................................................................................... 8
Problema 2 ...................................................................................................................................... 8
Solución: ......................................................................................................................................... 8
Anexo ............................................................................................................................................ 15
Problema 1 ................................................................................................................................ 15
Problema 2 ................................................................................................................................ 19
Problema 1
Implemente y compare 3 métodos de integración paso a paso: (a) integración modal de primer
orden con input constante en el intervalo (mantenedor de orden cero); (b) método de Newmark
(y=1/2, B=1/6). Para validar los códigos considere un vibrador de un grado de libertad con un
periodo fundamental Ts=0,6 s y factor de amortiguamiento E=0.03
i. Calcule la respuesta numérica a una condición inicial q(0)=0.1m (0<t<25 seg)
ii. Calcule la respuesta numérica a una excitación armónica sísmica a(t)=2*pi/Ts (0<t<25
seg)
Considere 3 pasos de integración dT=0.02 s, 0.10 S, 0.25 s. Compare además con la solución
exacta.

Solución:
En el problema se tiene un periodo fundamental de 𝑇 = 0,6 𝑠. Entonces se tiene la relación entre la
masa y rigidez.

𝐾 = 𝑤2 ∗ 𝑀
El vibrador de un grado de libertad posee un factor de amortiguamiento del 3%.
𝐶 =2∗𝜉∗𝑤∗𝑀
Finalmente se tiene la ecuación de movimiento dinámico
𝑀 ∗ 𝑦̈ + 𝐶 ∗ 𝑦̇ + 𝐾 ∗ 𝑦 = 𝑃(𝑡)
Respuesta numérica a una condición inicial q(0)=0.1m (0<t<25 seg)

Respuesta mediante integración modal de primer orden:


̈ + 𝐶 ∗ 𝑞(𝑡)
𝑀 ∗ 𝑞(𝑡) ̇ + 𝐾 ∗ 𝑞(𝑡) = 0

Se tiene la siguiente condición inicial: 𝑞(𝑡) = 0.1𝑚


El problema pide hacer la integración con 3 pasos de integración dT=0.02 s, 0.10 S, 0.25 s, para lo
cual se hace uso de la función integrado_ ZOH
Figura 1: Integración modal dt=0.02 s

Figura 2: Integración modal dt=0.10 s

Figura 3: Integración modal dt=0.25 s

Respuesta mediante el método de Newmark

𝐷 = 𝑀 + 𝛾 ∗ ℎ ∗ 𝐶 + 𝛽ℎ2 𝐾
Condiciones iniciales
̇ = 0,
𝑞(0) 𝑞(0) = 0,
El método de Newmark consiste en aplicar el algoritmo

𝑞̈ 𝑘+1 = 𝐷 −1 ∗ 𝑅𝑘+1 − 𝐾 ∗ 𝑞𝑘 − ℎ𝑘𝐶 ∗ 𝑞𝑘 − ((0.5 − 𝛽)ℎ2 𝑘̇ + (1 − 𝛾)ℎ𝐶) ∗ 𝑞𝑘̈


Figura 4: Desplazamiento por el método de Newmark dt=0.02 s

Figura 5: Desplazamiento por el método de Newmark dt=0.10 s

Figura 6: Desplazamiento por el método de Newmark dt=0.25 s

Respuesta mediante el método de Newmark ½ 1/6


Figura 7: Desplazamiento por el método de Newmark dt=0.02 s

Figura 8: Desplazamiento por el método de Newmark dt=0.10 s

Figura 9: Desplazamiento por el método de Newmark dt=0.25 s

Respuesta numérica a una excitación armónica sísmica a(t)=0.25*g*sen(2*pi*t/Ts) (0<t<25


seg)
Figura 10: Integración modal dt=0.02 s con excitación sísmica armónica

Figura 11: Integración modal dt=0.10 s con excitación sísmica armónica

Figura 12: Integración modal dt=0.25 s con excitación sísmica armónica


Discusión de resultados
De las gráficas se puede observar que mientras el tiempo de paso sea menor, la integración será más
eficiente y por lo tanto se tendrá mejores resultados.
De la comparación entre los métodos de Integración modal y el método de Newmark, se puede
encontrar que se tiene mejores resultados en el método de Newmark.

Problema 2

Solución:
En el problema se tiene una edificación de un piso, para lo cual se determinará la matriz de rigidez
considerando tres grados de libertad en su planta

Cálculo de la matriz de rigidez:


2𝑘 + 1.5𝑘 3.5𝑘
𝐹1 = [ 0 ]=[ 0 ]
2𝑘 ∗ 4 − 1.5𝑘 ∗ 4 2𝑘
0 0
𝐹2 = [ 𝑘+𝑘+𝑘 ] = [3𝑘 ]
4∗𝑘+8∗𝑘−8∗𝑘 4𝑘
2𝑘 2𝑘
𝐹3 = [ 4𝑘 ] = [ 4𝑘 ]
8𝑘 + 6𝑘 + 4𝑘 + 8𝑘 + 8𝑘 34𝑘
Entonces se tiene como matriz de rigidez 𝐾𝑟𝑖𝑔 = [𝐹1 𝐹2 𝐹3 ], donde k=10^8 KN/m

De la tarea 1 se tiene la matriz de masa

𝑀 0 0
𝑀 = [0 𝑀 0 ]
0 0 36𝑀
Donde M= 733775.393 kgf
El valor de M se calcula por medio de iteraciones al comando eig
El problema pide calcular la respuesta para los sismos de Maule, en el cual se tiene pasos de 0.01
segundos.
Finalmente, se tendrá la siguiente ecuación
𝑀 ∗ 𝑦̈ + 𝐶 ∗ 𝑦̇ + 𝐾 ∗ 𝑦 = 𝑀 ∗ 𝑒 ∗ 𝑐ℎ𝑦
Donde chy es el registro de aceleraciones
Desplazamientos

Figura 13: Desplazamiento Nodal 1


Figura 14: Desplazamiento Nodal 2

Figura 15: Desplazamiento Nodal 3

CORTANTE BASAL
Figura 16: Cortante Basal 1

Figura 17: Cortante Basal 2


Figura 18: Cortante Basal 3

Las aceleraciones del sismo de Michoacan fueron extraídas de la página web


https://aplicaciones.iingen.unam.mx/AcelerogramasRSM/Consultas/Filtro.aspx

Al igual que el sismo de Maule, se procederá a realizar la integración modal con pasos de 0.02
segundos para el sismo de Michoacan 1985.

Figura 19: Desplazamiento Nodal 1


Figura 20: Desplazamiento Nodal 2

Figura 21: Desplazamiento Nodal 3

CORTANTE BASAL
Figura 22: Cortante basal 1

Figura 23: Cortante basal 2


Figura 24: Cortante basal 3

Anexo
Problema 1
%% Ingresamos datos
close all; clear; clc;
dT=[0.02;0.1;0.25];%s
dT1=0.02;%s
dT2=0.10; %s
dT3=0.25; %s
N=25./dT;
uxy1=zeros(1,N(1,1));
uxy2=zeros(1,N(2,1));
uxy3=zeros(1,N(3,1));
Tn=0.6;
Wn=2*pi/Tn;
M=1000;
Kr=M*Wn^2;
%% Calculo del amortiguamiento
xhi = 0.03; % Amortiguamiento
Cs = 2*xhi*Wn*M;
%% Integracion
xpo=0; % Condiciones iniciales para veolocidad
xo=0.1; % Condiciones iniciales para desplazamiento
[x1,xp1,xpp1,t1]=integrador_ZOH(M,Cs,Kr,M*uxy1,dT(1,1),xo,xpo);
[x2,xp2,xpp2,t2]=integrador_ZOH(M,Cs,Kr,M*uxy2,dT(2,1),xo,xpo);
[x3,xp3,xpp3,t3]=integrador_ZOH(M,Cs,Kr,M*uxy3,dT(3,1),xo,xpo);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',x1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])

figure, hold on, grid on, box on


plot(t2',x2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])
figure, hold on, grid on, box on
plot(t3',x3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEWMARK 1/2 1/4
%%%%%%%%%%%%%%%%%
xpo=0; % Condiciones iniciales para veolocidad
xo=0.1; % Condiciones iniciales para desplazamiento
[u1,du1,ddu1] = NewmarkLineal(M,Cs,Kr,M*uxy1,dT(1,1),xo,xpo,1/2,1/4);
[u2,du2,ddu2] = NewmarkLineal(M,Cs,Kr,M*uxy2,dT(2,1),xo,xpo,1/2,1/4);
[u3,du3,ddu3] = NewmarkLineal(M,Cs,Kr,M*uxy3,dT(3,1),xo,xpo,1/2,1/4);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',u1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])

figure, hold on, grid on, box on


plot(t2',u2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])
figure, hold on, grid on, box on
plot(t3',u3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEWMARK 1/2 1/6


%%%%%%%%%%%%%%%%%
[uu1,duu1,dduu1] =
NewmarkLineal(M,Cs,Kr,M*uxy1,dT(1,1),xo,xpo,1/2,1/6);
[uu2,duu2,dduu2] =
NewmarkLineal(M,Cs,Kr,M*uxy2,dT(2,1),xo,xpo,1/2,1/6);
[uu3,duu3,dduu3] =
NewmarkLineal(M,Cs,Kr,M*uxy3,dT(3,1),xo,xpo,1/2,1/6);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',uu1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])

figure, hold on, grid on, box on


plot(t2',uu2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])
figure, hold on, grid on, box on
plot(t3',uu3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.11 0.11])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EXCITACIÓN ARMÓNICA
%%%%%%%%%%%%%%%%%
axy1=0.25*9.81*sin(2*pi*t1'/Tn).*ones(N(1,1),1);
axy2=0.25*9.81*sin(2*pi*t2'/Tn).*ones(N(2,1),1);
axy3=0.25*9.81*sin(2*pi*t3'/Tn).*ones(N(3,1),1);
%% Integracion
xpo=0; % Condiciones iniciales para veolocidad
xo=0; % Condiciones iniciales para desplazamiento
[xx1,xp1,xpp1,t1]=integrador_ZOH(M,Cs,Kr,M*axy1',dT(1,1),xo,xpo);
[xx2,xp2,xpp2,t2]=integrador_ZOH(M,Cs,Kr,M*axy2',dT(2,1),xo,xpo);
[xx3,xp3,xpp3,t3]=integrador_ZOH(M,Cs,Kr,M*axy3',dT(3,1),xo,xpo);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',xx1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])

figure, hold on, grid on, box on


plot(t2',xx2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])
figure, hold on, grid on, box on
plot(t3',xx3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEWMARK 1/2 1/4


%%%%%%%%%%%%%%%%%
xpo=0; % Condiciones iniciales para veolocidad
xo=0.1; % Condiciones iniciales para desplazamiento
[u1,du1,ddu1] = NewmarkLineal(M,Cs,Kr,M*axy1',dT(1,1),xo,xpo,1/2,1/4);
[u2,du2,ddu2] = NewmarkLineal(M,Cs,Kr,M*axy2',dT(2,1),xo,xpo,1/2,1/4);
[u3,du3,ddu3] = NewmarkLineal(M,Cs,Kr,M*axy3',dT(3,1),xo,xpo,1/2,1/4);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',u1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])

figure, hold on, grid on, box on


plot(t2',u2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])
figure, hold on, grid on, box on
plot(t3',u3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEWMARK 1/2 1/6


%%%%%%%%%%%%%%%%%
[uu1,duu1,dduu1] =
NewmarkLineal(M,Cs,Kr,M*axy1',dT(1,1),xo,xpo,1/2,1/6);
[uu2,duu2,dduu2] =
NewmarkLineal(M,Cs,Kr,M*axy2',dT(2,1),xo,xpo,1/2,1/6);
[uu3,duu3,dduu3] =
NewmarkLineal(M,Cs,Kr,M*axy3',dT(3,1),xo,xpo,1/2,1/6);
%% Desplazamientos
figure, hold on, grid on, box on
plot(t1',uu1','r');
title({['Historia de Desplazamiento dT=0.02 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])
figure, hold on, grid on, box on
plot(t2',uu2','r');
title({['Historia de Desplazamiento dT=0.10 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])
figure, hold on, grid on, box on
plot(t3',uu3','r');
title({['Historia de Desplazamiento dT=0.25 s']},'FontSize', 14)
xlabel('Tiempo [s]');
ylabel('Desplazamiento [m]');
grid on;grid minor;
ylim([-0.4 0.4])

Problema 2

Ingresamos datos
close all; clear; clc;
load Concepcion_SanPedro100227 %registro sismo de Maule
dt = dt ; % Intervalo de tiempo
N = length(chy); % Cantidad de valores del registro
N_pisos=1;
m=1;%kg
h=4;%m
g=9.81;%m/s^2
mas=m/g;%kgf*s^2/m
k=10^8/g;%kgf/m
kx=3.5*k;
ky=3*k;

Armando Matriz de rigidez


F1=[3.5;0;2]*k;
F2=[0;3;4]*k;
F3=[2;4;34]*k;
Kr=[F1,F2,F3];

Matriz de masa
mas0=5000000000; % valor inicial
M0=[1 0 0
0 1 0
0 0 36];
M=M0*mas0;
f=1;
dk=1/1000000000; %constante que se utiliza para iterar
indicador=0;
while indicador ==0
f=f-dk;
M=(f)*M;
[phi_s,w2_s] = eig(Kr,M);
[w2_s,ind_s] = sort(diag(w2_s));
phi_s = phi_s(:,ind_s);
Wn_s = w2_s.^0.5; % Frecuencia Natural
W_s = diag(w2_s); % Matriz w^2

Calculo de las frecuencias


fn_s = zeros(length(Kr),1);
for i = 1:length(Kr)
fn_s(i,1) = Wn_s(i,1)/(2*pi);
end
Tn_s = 1./fn_s;
if Tn_s(1)<=2
indicador=1;
end
end
mas1=M(1,1)/M0(1,1);
Calculo de los M* y K*
M_ast1 = phi_s'*M*phi_s; % Masa modal
K_ast1 = phi_s'*Kr*phi_s; % Rigidez modal

Participación modal
e = ones(3,1) ; % Vector de incidencia
Ln = phi_s'*M*e ; % Masa participante
Pmod = 1\Ln; % Participacion modal

Calculo del amortiguamiento


m_ast1 = diag(M_ast1);
xhi = ones(1,3)*0.03; % Amortiguamiento critico para todos los modos (sin
amortiguamiento x0)
C_ast1 = zeros(1); % Amortiguamiento modal
for i=1:length(M_ast1)
C_ast1(i,i)=2*xhi(i)*m_ast1(i)*Wn_s(i);
end
Cs = inv(phi_s')*C_ast1*inv(phi_s);

Integracion
ru=zeros(3,1); % Condiciones iniciales para desplazamiento
dru=zeros(3,1); % Condiciones iniciales para velocidades
[x,xp,xpp,t]=integrador_ZOH(M,Cs,Kr,M*e*chy,dt,zeros(3,1),zeros(3,1));
x=x';
t=t';

Desplazamientos
for i=1:3
figure, hold on, grid on, box on
[Max_u,t_s1]=max(x(:,i));
Time_u1 = t(t_s1);
[Min_u,t_s2]=min(x(:,i));
Time_u2 = t(t_s2);
plot(Time_u1,Max_u,'ro','MarkerSize',3,'LineWidth',2.5);
plot(Time_u2,Min_u,'bo','MarkerSize',3,'LineWidth',2.5);
plot(t,x(:,i),'r');
title({['Historia de Desplazamiento-Maule ']},'FontSize', 14)
legend(['d(t)_M_a_x = ',num2str(round(Max_u,3)),' cm',' , t_M_a_x =
',num2str(round(Time_u1,3)),' seg'],...
['d(t)_M_i_n = ',num2str(round(Min_u,3)),' cm',' , t_M_i_n =
',num2str(round(Time_u2,3)),' seg'],'Location','SouthEast')
xlabel('Tiempo [s]');
ylabel('Desplazamiento [cm]');
grid on;grid minor;
ylim([1.2*Min_u 1.2*Max_u])
end

Corte Basal
Fb = Kr*x'/10^5;
for i= 1:3
figure, hold on, grid on, box on
[Max_u,t_s1]=max(Fb(i,:));
Time_u1 = t(t_s1);
[Min_u,t_s2]=min(Fb(i,:));
Time_u2 = t(t_s2);

plot(Time_u1,Max_u,'ro','MarkerSize',3,'LineWidth',2.5);
plot(Time_u2,Min_u,'bo','MarkerSize',3,'LineWidth',2.5);
plot(t,Fb(i,:));
title({['Fuerza cortante Basal-Maule'];'Eje y'},'FontSize', 14)
legend(['V(t)_M_a_x = ',num2str(round(Max_u,3)),' tonf',' , t_M_a_x =
',num2str(round(Time_u1,3)),' seg'],...
['V(t)_M_i_n = ',num2str(round(Min_u,3)),' tonf',' , t_M_i_n =
',num2str(round(Time_u2,3)),' seg'],'Location','SouthEast')

xlabel('Tiempo [s]');
ylabel('Fuerza Cortante [tonf]');
grid on;grid minor;
ylim([1.2*Min_u 1.2*Max_u])
end

load michoacan %registro sismo de Michoacan

Integracion
acy=acy';
ru=zeros(3,1); % Condiciones iniciales para desplazamiento
dru=zeros(3,1); % Condiciones iniciales para velocidades
[x,xp,xpp,t]=integrador_ZOH(M,Cs,Kr,M*e*acy,dT,zeros(3,1),zeros(3,1));
x=x';
t=t';

Desplazamientos
for i=1:3
figure, hold on, grid on, box on
[Max_u,t_s1]=max(x(:,i));
Time_u1 = t(t_s1);
[Min_u,t_s2]=min(x(:,i));
Time_u2 = t(t_s2);
plot(Time_u1,Max_u,'ro','MarkerSize',3,'LineWidth',2.5);
plot(Time_u2,Min_u,'bo','MarkerSize',3,'LineWidth',2.5);
plot(t,x(:,i),'r');
title({['Historia de Desplazamiento Sismo de Michoacan ']},'FontSize',
14)
legend(['d(t)_M_a_x = ',num2str(round(Max_u,3)),' cm',' , t_M_a_x =
',num2str(round(Time_u1,3)),' seg'],...
['d(t)_M_i_n = ',num2str(round(Min_u,3)),' cm',' , t_M_i_n =
',num2str(round(Time_u2,3)),' seg'],'Location','SouthEast')
xlabel('Tiempo [s]');
ylabel('Desplazamiento [cm]');
grid on;grid minor;
ylim([1.2*Min_u 1.2*Max_u])
end

Corte Basal
Fb = Kr*x'/10^5;
for i= 1:3
figure, hold on, grid on, box on
[Max_u,t_s1]=max(Fb(i,:));
Time_u1 = t(t_s1);
[Min_u,t_s2]=min(Fb(i,:));
Time_u2 = t(t_s2);

plot(Time_u1,Max_u,'ro','MarkerSize',3,'LineWidth',2.5);
plot(Time_u2,Min_u,'bo','MarkerSize',3,'LineWidth',2.5);
plot(t,Fb(i,:));
title({['Fuerza cortante Basal-Michoacan']},'FontSize', 14)

legend(['V(t)_M_a_x = ',num2str(round(Max_u,3)),' tonf',' , t_M_a_x =


',num2str(round(Time_u1,3)),' seg'],...
['V(t)_M_i_n = ',num2str(round(Min_u,3)),' tonf',' , t_M_i_n =
',num2str(round(Time_u2,3)),' seg'],'Location','SouthEast')
xlabel('Tiempo [s]');
ylabel('Fuerza Cortante [tonf]');
grid on;grid minor;
ylim([1.2*Min_u 1.2*Max_u])
end

También podría gustarte