Sei sulla pagina 1di 24

MANUAL DEL PROGRAMA

ANLISIS SSMICO CON


VIBRACIONES MECNICAS

PALOMINO TORRES, Richard


Jhonatan
Estudiante de la UNIVERSIDAD
NACIONAL SAN CRISTBAL DE
HUAMANGA de la carrera profesional
de INGENIERA CIVIL.
Curso de programacin digital IC-246
NDICE
INTRODUCCIN

CARACTRISTICAS BSICAS
INGRESO AL PROGRAMA

USO DEL PROGRAMA


PROGRAMACION EN MATLAB
OPERACIONES

PROGRAMACION EN MATLAB

DIAGRAMA DE FLUJO

SEUDOCDIGOS
CODIGOFUENTE

APLICACIN DEL PROGRAMA


EJEMPLOS
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

INTRODUCCIN

En las ltimas dcadas los problemas que aquejan a los ingenieros han incrementado y son
ms difciles, porque requieren con mayor exactitud y aproximacin de los resultados. Que
ayuden a solucionar problemas y prevenir situaciones ms crticas como: derrumbes de
edificios, de puentes, etc. Pues los resultados numricos son ms crebles y pronostican el
futuro.
Los programas cada vez ms ayudan aliviar esos problemas, facilitan los clculos de forma
rpida y fcil, los programadores hacen que el programa trabaje y interacte de manera fcil
y rpida con el usuario, para ello innovan sus programas con capacidades cada vez superiores.
El objetivo de este trabajo es dar un programa con la capacidad de analizar el comportamiento
de las estructuras de un edificio ante una fuerza armnica externa, como tambin hallar
problemas de vibraciones mecnicas. Se har viendo primeramente las caractersticas bsicas
y luego se programara en el MATLAB, para el cual se realizara el seudocdigo y el cdigo
fuente para el mejor entendimiento del programa.
El programa aplicada a la ingeniera civil y siendo bsico, ayuda a comprender el
comportamiento del edificio cuando estara en movimiento, para ello se adapt los
conocimientos de la dinmica estructural y vibraciones mecnicas.
El usuario encontrara en este trabajo el uso del programa y las preguntas que desea hacer de
manera bsico al curso de estructuras.
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

CARACTERISTICAS BSICAS
El programa presenta dos subprogramas en su interior, cada cual se encarga de resolver
problemas en diferentes sistemas.
Los botones que se muestran abre ventanas en el sistema que deseamos trabajar, es decir, uno
puede escoger el sistema en donde trabajara, si es un sistema de movimiento de un grado de
liberta o n grados de libertad.

El programa no almacena datos en el workspace. Para limpiar los datos que anteriormente

fueron trabajados se pica en el botn ; si deseamos volver a la ventana de inicio

y cerrar la ventana, basta con picar en .

Si se desea llamara el programa desde el command window se estribe el nombre de


ANALISIS_SISMICO.

INGRESO AL PROGRAMA
Pasos a seguir:
1. Abra el archivo del programa ANALISIS_SISMICO.fig

2. Elegir el sistema a trabajar.

3. Para un PISO.
a. Ventana principal para el sistema de movimiento de un grado de libertad
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

4. Para N PISOS
a. Ventana principal para el sistema de movimiento de N grados de libertad.

USO DEL PROGRAMA

Para UN PISO
1. Los datos se ingresan en los casilleros y son:

Masa (kg): m
Constante de rigidez (N/m):K
Posicin inicial (m):Uo
Velocidad inicial (m/s): U'o
Tiempo (s): t
Constante de amortiguamiento (N-s/m):C
Fuerza externa mxima (N):Fo
Frecuencia circular externa (rad/s):Wext

2. Despus de haber llenado los datos se pica el botn .


3. Los resultados esperados son:
Posicin para un tiempo dado :u(t)
Periodo :T
Frecuencia natural :
Coeficiente de amortiguamiento crtico:
Razn de amortiguamiento :
Frecuencia de amortiguamiento:
Periodo de amortiguamiento:
Desplazamiento mximo : Umax
Frecuencia de resonancia:
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Desplazamiento esttico: Uest


Factor de magnificacin dinmica: Rd
Angulo de fase: AngFase
Relacin de frecuencias : RFrec
Grfica los sistemas de vibraciones libres de un grado de libertad

Para N PISOS
1. Primeramente para el ingreso de datos, designar con cuanto grados o nmero de pisos
trabajaremos, eso dimensionara las matrices.

2. Luego piquemos el botn


3. Los datos se ingresan en forma de matriz en los casilleros y los datos a utilizarse son:
Nmero de pisos : n
Masas en forma de matriz columna (Kg): MASAS
Rigidez en forma de matriz de orden n (N/m): RIGIDEZ
Matriz amortiguamiento en forma de matriz de orden n(N-
s/m):AMORTIGUAMIENTO
Posicin-Velocidad, en forma de matriz columna, el primero posicin y el segundo
velocidad (m-m/s) :Uo - U'o
4. Luego piquemos .
5. Los resultados esperados son
Periodos: T
Modos de vibracin
Frecuencias naturales:
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Grfica el desplazamiento en sistema amortiguado el ltimo piso del edificio, del


sistema de vibracin de n grados de libertad.

6. Piquemos , para graficar el movimiento del ltimo piso.

PROGRAMACION EN MATLAB

OPERACIONES

Las funciones que se utiliz en el MATLAB:

if.
for
plot
else
str2num(get(handles.))
get(handles.)
axes (handles.)

En la operacin se utiliz valores propios y vectores propios con comandos de


MATLAB.
Ejemplo de la Matriz de frecuencia natural
>>[V,D]=eig(K,M)
>>Wn=sqrt(D);
>>W=diag(Wn);

Las operaciones se vern mejor en el seudocdigo.


PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

DIAGRAMA DE FLUJO
Para UN PISO:

, , , ,
, , ,

2
= , =

1
= , =


= 2 , =

1
= = , = [(1 2 ) + (2 )2]2

2
= atan [ ], = 1 2
1 2

= , =
1 2

, , , , , , ,
, , , ,

=0

amortiguamiento
>0 supercrtico

amortiguamiento
sub-crtico
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Para N PISOS

CALCULO:
[]{ } + [ ]{ } = 0
[]{ } + [ ]{ } + []{} = 0
:
[], [] , []

GRFICA DEL
[], [] , [] LTIMO PISO
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

SEUDOCDIGO
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Para N PISOS
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

CODIGOFUENTE

Para UN PISO

masa=str2num(get(handles.MASA,'string'));
Kr=str2num(get(handles.CONST_RIG,'string'));
%-----------calculos----------
%calculo de Wn frecuencia natural
Wn=sqrt(Kr/masa)
%calculo deL PERIODO
T=2*pi/Wn
set(handles.PERIODO,'String',T);
%calculo de la frecuencia de la estructura
f=Wn/(2*pi)

%para t=0,
X0=str2num(get(handles.POSI_INIC,'string')); %PI=posicion
inicial
V0=str2num(get(handles.VEL_INIC,'string')); %VI=velocidad
inicial
t=str2num(get(handles.TIEMPO,'string')); %TIEMPO COMO
CONDICION INICIAL
A=X0
B=V0/Wn
u=A*cosd(Wn*t*180/pi)+ B*sind(Wn*t*180/pi)
set(handles.SALIDA,'string',u) % la posicin evaluada para
cierto t.
t1=0:0.1:t;
x=A*cosd(Wn*t1*180/pi)+ B*sind(Wn*t1*180/pi);
axes(handles.PLOT);
plot(t1,x,'--b','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('RESPUESTA','color','b'),grid on;

%-------------amortigudo--------------
x1=str2num(get(handles.POSI_INIC,'string'));
time=str2num(get(handles.TIEMPO,'string'));
t2=0:0.01:time;
m=str2num(get(handles.MASA,'string'));
k=str2num(get(handles.CONST_RIG,'string'));
v1=str2num(get(handles.VEL_INIC,'string'));
c=str2num(get(handles.CONST_AMOR,'string'));

%calculos

b=c/(2*m)
zz=b.^2-k/m
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

z=round(zz) %redondeo al valor mas proximo


p1=-b + sqrt(z)
p2=-b - sqrt(z)

%------------------
cr=2*m*Wn
e=c/cr
Td=T/(sqrt(1-e.^2))
Wd=Wn*sqrt(1-e.^2)
%------------------
if (z==0)
%mov critico
c1=x1
c2=v1-c1*p1
tmax=(c1.*p1+c2)/(-c2.*p2);
x=(c1.*exp(p1.*t2))+(c2.*t2.*exp(p2.*t2)); % solucion
general
xmax=((c1.*exp(p1.*tmax))+(c2.*tmax*exp(p2.*tmax)))+1;
axes(handles.axes2);
if(xmax>0)
plot(t2,x,'--b','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('AMORTIGUAMIENTO CRTICO','color','b'),grid on;
else
plot(t2,x,'--b','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('AMORTIGUAMIENTO CRTICO','color','b'),grid on;
end
set(handles.edit17,'string','');
set(handles.edit14,'string','');
elseif (z>0)
%movimineto sobreamortiguado
c2=(v1-x1*p1)/(p2-p1)
c1=x1-c2
x=(c1.*exp(p1.*t2))+(c2.*exp(p2.*t2));
tmax=log((-c2.*p2)/(c1.*p1));
xmax=((c1.*exp(p1.*tmax))+(c2.*exp(p2.*tmax)))+1;
axes(handles.axes2);
plot(t2,x,'--c','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('AMORTIGUAMIENTO SUPERCRITICO','color','b'),grid
on;
set(handles.edit17,'string','');
set(handles.edit14,'string','');
elseif (z<0)
A1=x1
B1=(v1+x1.*e.*Wn)/Wd
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

x=((B1.*sin(Wd.*t2))+(A1.*cos(Wd.*t2))).*(exp(-b.*t2));
xmax=x./sin(Wd.*t2);
set(handles.edit17,'string',Td);
set(handles.edit14,'string',Wd);
if(x1>0);
axes(handles.axes2);
plot(t2,x,'--r','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('AMORTIGUAMIENTO SUBCRITICO','color','b'),grid on;
else
axes(handles.axes2);
plot(t2,x,'--r','linewidth',3),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title('AMORTIGUAMIENTO SUBCRITICO','color','b'),grid on;
end
end

%--------------AMORTIGUAMIENTO EXITADO---------------
x1=str2num(get(handles.POSI_INIC,'string'));
ti=str2num(get(handles.TIEMPO,'string'));
t3=0:0.01:ti;
m=str2num(get(handles.MASA,'string'));
k=str2num(get(handles.CONST_RIG,'string'));
P0=str2num(get(handles.FUERZA_P0,'string'));
v1=str2num(get(handles.VEL_INIC,'string'));
c=str2num(get(handles.CONST_AMOR,'string'));
Wext=str2num(get(handles.FREC_EXT,'string'));

bt=Wn*(Wext).^(-1) %relacione frecuencias


d=P0/k %razon de fuerza extrena y contante de rigides
%representa el desplazamiento que se produce en la estructura
n=1-(bt).^2 %uno menos el cuadrado de la beta
cc=2*m*Wn % coeficiente de amortiguamiento critico
e=c/cc % relacion de amortiguamiento
s=2*e*bt

Umax=d*(n.^2-s.^2).^(-1/2)
alf=atan(s/n)
U=Umax.*sin(Wext*t3-alf);
axes(handles.axes3);
plot(t3,U,'m','linewidth',1),xlabel('tiempo
s','color','r'),ylabel('Desplazamiento','color','r'),axis
auto,title(' DESPLAZAMIENTO INDUCIDO POR FUERZA
ARMNICA','color','b'),grid on;

fi=alf/Wext %el tiempo de retraso de la respuesta con


respecto a la excitacin
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

% t==0
Uest=d %el desplazamiento esttico
Rd=(n.^2+s.^2).^(-1/2) % Rd =factor de magnificacin
dinmica
Umax1=Uest*Rd
U1=Umax1*sin(-alf) %

% resonancia
Wres=Wn*sqrt(1-2*e) %frecuencia de resonancia
Rd_res=1/(2*e) %amplificacin dinmica
%...........salida para vibracion libre..............
set(handles.edit26,'string',Wn);
%...........salida para vibracion amortiguada..............

set(handles.edit15,'string',e);
set(handles.edit16,'string',cr);

%...........salida para vibracion exitada..............


set(handles.edit20,'string',Umax);
set(handles.edit18,'string',bt);
set(handles.edit21,'string',Rd);
set(handles.edit22,'string',Wres);
set(handles.edit23,'string',Uest);
set(handles.edit24,'string',alf);
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Para N pisos
Calculo de modos, periodo y frecuencias naturales
NP=str2double(get(handles.Npisos,'string'));
ms=str2double(get(handles.masas,'data'));
K=str2double(get(handles.CONST_RIG,'data'));
M=ms';
M12=sqrt(M);
for i=1:NP
M12(i)=1.0/M12(i);
end
MINV=zeros(NP,NP); MINV=diag(M12); Ko=MINV*K*MINV;
[V,D]=eig(Ko); Modos= MINV*V; Wn=sqrt(D); T=diag(Wn);
for i=1:NP
T(i)=2*pi/T(i);
end
T
Modos
set(handles.periodo,'data',T)
set(handles.modos,'data',Modos)
%calculo de la frecuencia
Masa=zeros(NP,NP);
%Matriz de masas
for i=1:NP
Masa(i,i)=ms(i);
end
Masa

%Matriz de frecuencia natural


[V,D]=eig(K,Masa);
Wn=sqrt(D);
W=diag(Wn)
set(handles.frec_nat,'data',W)

Calculo para graficar el ltimo piso a partir de la frecuencia natural y condiciones


iniciales.

NP=str2double(get(handles.Npisos,'string'));
ms=str2double(get(handles.masas,'data'));
K=str2double(get(handles.CONST_RIG,'data'));
C=str2double(get(handles.CONST_AMOR,'data'));
x=str2double(get(handles.posi_vel,'data'));
dt=0.02; n=100;

M=zeros(NP,NP);
%Matriz de masas
for i=1:NP
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

M(i,i)=ms(i);
end
M;

%Matriz de frecuencia natural


[V,D]=eig(K,M);
Wn=sqrt(D);
W=diag(Wn);

%matriz de posicion y velocidad


nn=2*NP; % el cuatro indica el nmero de fila
Xo=zeros(nn,1);
for i=1:nn
Xo(i,1)= x(i);

end
Xo

%matriz F
CERO= zeros(NP,NP); IDENT=eye(NP,NP); MIK=(-1)*inv(M)*K;
MIC=(-1)*inv(M)*C;
F=[CERO IDENT; MIK MIC];
% valores propios de F
[V,D]=eig(F);
%repuesta en el tiempo
for j=1:n
t=j*2*dt; E=expm(F*t); EE=real(E); q=EE*Xo;
tt(j)=t; des(j)=q(NP);
end
%dibujo para la respuesta en el tiempo del ltimo piso

axes(handles.axes1)
plot(tt,des,'--b','linewidth',3)
xlabel('Tiempo(s)','color','r'); ylabel('Desplazamiento del
ultimo piso','color','r');
title('Vibracion libre considerado
amortiguamiento','color','r');

APLICACIN DEL PROGRAMA

Las aplicaciones que se da a este programa es:


Analizar conceptos bsicos de movimiento de estructuras de edificios de un grado y
N grados de libertad.
Resolver problemas de vibraciones mecnicas.
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

EJEMPLOS
RESPUESTA DE UN SISTEMA AMORTIGUADO SOMETIDO A FUERZA
ARMNICA
PROBLEMA DE VIBRACIONES MECANICAS-
RAO, SINGIRESU S. Quinta edicin. Mxico, 2012

Evaluaremos para un tiempo de 10s.


1. Incorporacin de datos

2. Picar en CALCULAR

3. RESPUESTA
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

Calculo de la frecuencia externa:


2 2
= = = 1.7952 /
3.5
Evaluaremos para un tiempo de 10s.

1. Incorporar datos

2. Picar en CALCULAR

3. RESPUESTA
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

MODOS, FRECUENCIA Y RESPUESTA


DINMICA DE ESTRUCTURAS.
Roberto Aguiar Falconi.Quito,agosto 2006.
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

SOLUCIN.
CASO I.
0.01 0
[ 0 0] = [0.02 0]
0.03 0
1. Dimensionar el sistema

2. Incorporar DATOS

3. Picamos CALCULAR

4. Ahora hallemos la matriz de AMORTIGUAMIENTO


= 2 =
= 0.05
Entonces:
Para
1 = 9.0790 = 1.633

= 29.6520 1 = 1.48260
Para
2 = 29.4267 = 1.633

= 96.10760 2 = 4.80538
Para
3 = 51.4775 = 1.633
PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

= 168.1255 3 = 8.40628
La matriz de AMORTIGUAMIENTO ES:
6.38798 4.80538 0
C=[4.80538 13.21166 8.40628]
0 8.40628 8.40628

5. Incorporamos la matriz AMORTIGUAMIENTO y POSICIN-VELOCIDAD

6. RESPUESTA PARA EL ULTIMO PISO


PROGRAMACIN DIGITAL MANUAL DE ANALISIS SISMICO

CASO II.

Se tiene:
0 0 6.38798 4.80538 0
[ 0 0] = [0.03 0] y C=[4.80538 13.21166 8.40628]
0 0 0 8.40628 8.40628
1. Seguimos los mispos pasos anteriores.
2. Incorporamos la matriz AMORTIGUAMINETO hallada anteriorme y
POSICIN-VELOCIDAD para este caso.

3. RESPUESTA

Potrebbero piacerti anche