-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
UNIVERSIDAD TCNICA FEDERICO SANTA MARA
Apuntes de MatLab para Dinmica de Estructuras
USM Campus Santiago II Semestre 2012
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
NOCIONES BSICAS 3
NOMENCLATURAS Y COMANDOS 3
GRFICOS 11
PROGRAMACIN 15
DECLARACIN DE FUNCIN 15
DECLARACIN DE FOR SIMPLE 15
DECLARACIN DE FOR ANIDADA 16
DECLARACIN DE WHILE 16
DECLARACIN DE IF 17
DECLARACIONES INTERACTUANDO 17
ANLISIS ESTRUCTURAL 18
CASO DE ANLISIS 18
MATRIZ DE RIGIDEZ 18
VIGAS 19
COLUMNAS 20
MATRIZ DE RIGIDEZ GLOBAL 20
CONDENSACIN ESTTICA 26
DINMICA ESTRUCTURAL 28
SUBRUTINA ODE45 28
FACTORES DE AMPLIFICACIN DINMICA (FAD) 31
RESPUESTA ANTE CARGA RAMPA-ESCALN 37
RESPUESTAS A PARTIR DE UN REGISTRO DE ACELERACIONES 39
ESPECTRO LINEAL DE ACELERACIN 43
ESPECTRO NO LINEAL DE ACELERACIN 54
SUPERPOSICIN MODAL 65
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Nociones bsicas
Nomenclaturas y comandos La interfaz al ejecutar MatLab es la
que se detalla a continuacin.
Se aprecia que aparece el indicador de comandos >>, el
cual indica que el programa est listo para
recibir instrucciones.
MATLAB trabaja esencialmente con matrices numricas
rectangulares. La manera ms fcil de
entrar matrices pequeas es enumerando los elementos de sta de
tal manera que:
los elementos estn separados por blancos comas.
los elementos estn cerrados entre corchetes, [ ].
muestre el final de cada fila con ; (punto y coma).
As, algunos caracteres especiales de MatLab son:
[ ] Se utilizan para formar vectores y matrices
( ) Define precedencia en expresiones aritmticas. Encierra
argumentos de funciones en
forma usual
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
, Separador de elementos de una matriz, argumentos de funciones
y declaraciones en
lneas con declaraciones mltiples
; Termina filas de una matriz, separador de declaraciones
% Permite agregar un comentario comentario
Entonces un ejemplo sera ingresar una matriz de dimensiones 3x3,
con nmeros correlativos, como: [ 1 2 3; 4 5 6; 7 8 9 ]. El
resultado, como lo entrega el programa, se indica a
continuacin:
ans =
1 2 3
4 5 6
7 8 9
Ahora bien, se puede guardar esta matriz bajo un nombre. Para
ello se tiene que ingresar el nombre de la variable seguida por una
igualdad. As, la matriz queda como: A=[ 1 2 3; 4 5 6; 7 8 9 ]. El
resultado que entrega el programa es
A =
1 2 3
4 5 6
7 8 9
Usualmente no se requiere que el programa entregue los
resultados. Para no presentar el valor de la variable que se cre,
se debe agregar un punto y coma (;) al final del comando. Como
alternativa se puede crear la matriz sin la necesidad de puntos y
comas como separadores. As, la matriz A tambin se puede generar
como:
A = [1 2 3
4 5 6
7 8 9];
Si se requiere una fila o columna de la matriz A, o tal vez un
valor particular de la matriz o aadir una fila adicional, se
realiza lo siguiente:
se requiere el segundo vector columna: A(:,2) ans =
2
5
8
se requiere el primer vector fila: A(1,:) ans =
1
2
3
se requiere el valor del elemento en la fila 2 y columna 3:
A(2,3) ans =
8
se requiere aadir una fila con los valores b=[ 10 11 12],
redefiniendo A: A=[A;b]: A =
1 2 3
4 5 6
7 8 9
10 11 12
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Tambin se pueden generar vectores con instrucciones. Para ello,
una alternativa es definir x=[1:5]. Esta instruccin permite generar
un vector fila de 5 columnas. Tambin se puede omitir los parntesis
cuadrados para simplificar el proceso. As, se obtiene:
x =
1 2 3 4 5
El vector transpuesto se genera agregando el carcter apstrofe ()
a la variable, es decir, x ans =
1
2
3
4
5
Se pueden crear vectores generando una secuencia, con un punto
de inicio y uno de trmino. Un ejemplo es definir un vector cuyo
valor inicial sea 5 y que disminuya su valor en una unidad hasta
llegar a 1. De esta manera, x=5:-1:1
x =
5 4 3 2 1
Con anterioridad se evidenci la posibilidad de pedir valores
especficos a la matriz. De igual manera, se pueden reasignar
valores dentro de la matriz sin necesidad de cambiarla. Para ello
se tienen las siguientes opciones:
cambiar un valor en especfico de manera directa: A(3,3)=10 A =
[1 2 3
4 5 6
7 8 10];
cambiar un valor en especfico de manera directa: A(3, 3) = A(1,
3) + A(3, 1) A = [1 2 3
4 5 6
7 8 10];
Ahora bien, un ndice tambin puede ser un vector. Si x y v son
vectores, entonces x(v) es [x(v(1)),x(v(2)), ...,x(v(n))]. Para
matrices, los ndices de vectores permiten acceso a submatrices
contiguas y no contiguas. Por ejemplo, suponga que B es una matriz
12 por 12. Entonces B(1:5, 2) especifica la submatriz 5 x 1, vector
columna, que consiste de los primeros cinco elementos en la segunda
columna de B. De igual manera, B(1:5, 9:12) es la submatriz 5 x 4
de las primeras cinco filas y las ltimas cuatro columnas. Las
operaciones suma (+) y resta (-) son definidas para las matrices
siempre y cuando stas tengan la misma dimensin. El resultado de la
operacin es por defecto almacenado en la variable ans, la cual se
puede almacenar en otra variable. As, definiendo A=[1 2 3;4 5 6]; y
B=[6 5 4; 3 2 1]; se puede originar C=A+B.
C =
7 7 7
7 7 7
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
La operacin de multiplicacin de matrices (*) est definida
siempre que el nmero de columnas de la primera matriz sea igual al
nmero de filas de la segunda matriz. De esta manera, D=A*B slo es
posible si D=A*B.
D =
18 13 8
27 20 13
36 27 18
La operacin de multiplicacin de matriz con vector es un caso
especial de la multiplicacin de
matrices.
En la operacin de divisin de matrices, si A es una matriz
cuadrada no-singular, entonces A\B y B/A corresponden a la
multiplicacin izquierda y derecha de B por el inverso de A, esto
es, inv(A) * B y B * inv(A) respectivamente. As,
X = A\B es una solucin a A * X = B
X = B/A es una solucin a X * A = B
>> A = [3,4,7;5,2,-9;-1,13,3]
A =
3 4 7
5 2 -9
-1 13 3
>> B = [6;1;8]
B =
6
1
8
>> x=A\B
x =
0.5123
0.5848
0.3034
>> x=inv(A)*B
x =
0.5123
0.5848
0.3034
Notar que A\B es definido cuando B tiene la misma cantidad de
filas que A. Si A es cuadrada, el mtodo usado para su resolucin es
la Eliminacin Gaussiana. El resultado es una matriz con las mismas
dimensiones que B. Ahora bien, si A no es cuadrada, el
procedimiento se factoriza utilizando la ortogonalizacin de
Householder con pivoteo de columnas. Para dividir los valores de
una matriz por un escalar se requiere utilizar un operador que le
indique al arreglo que el denominador debe dividir cada valor. As,
si A=[1 2;3 4] y se requiere dividir cada valor por 2, la operacin
es: A=[1 2;3 4]./2
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
A =
0.5000 1.0000
1.5000 2.0000
Para generar matrices o arreglos con valores aleatorios existe
un comando llamado rand(). Los valores estn entre cero y uno. De
esta manera se tiene:
matriz de dimensiones 3x3 con rand(3) A =
0.8235 0.9502 0.3816
0.6948 0.0344 0.7655
0.3171 0.4387 0.7952
vector de dimensiones 3x1 con rand(3,1) A =
0.1869
0.4898
0.4456
matriz de nxn de ceros: zeros(n)
>> A=zeros(4)
A =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
matriz de mxn de ceros: zeros(m,n)
>> B=zeros(3,4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
regresa el nmero de filas y columnas de la matriz A B: size(A)
size(B)
>> size(A)
ans =
4 4
>> size(B)
ans =
3 4
>> [m,n]=size(B)
m =
3
n =
4
matriz de nxn de unos: ones (n)
>> C=ones(4)
C =
1 1 1 1
1 1 1 1
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
1 1 1 1
1 1 1 1
matriz de mxn de unos: ones(m,n)
>> D=ones(3,4)
D =
1 1 1 1
1 1 1 1
1 1 1 1
matriz identidad de nxn: eye(n)
>> E=eye(4)
E =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
matriz identidad de mxn: eye(m,n)
>> F=eye(3,4)
F =
1 0 0 0
0 1 0 0
0 0 1 0
matriz transpuesta: transpose(A)
>> A=rand(3)
A =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> B=transpose(A)
B =
0.8147 0.9058 0.1270
0.9134 0.6324 0.0975
0.2785 0.5469 0.9575
determinante de una matriz: det(A)
>> det(A)
ans =
-0.2767
inversa de una matriz: inv(A)
>> inv(A)
ans =
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
-1.9958 3.0630 -1.1690
2.8839 -2.6919 0.6987
-0.0291 -0.1320 1.1282
valores propios de una matriz: eig(A)
>> eig(A)
ans =
-0.1879
1.7527
0.8399
vectores y valores propios de una matriz: [V,D]=eig(A)
>> [V,D]=eig(A)
V =
0.6752 -0.7134 -0.5420
-0.7375 -0.6727 -0.2587
-0.0120 -0.1964 0.7996
D =
-0.1879 0 0
0 1.7527 0
0 0 0.8399
obtiene la diagonal de una matriz: diag(D)
>> diag(D)
ans =
-0.1879
1.7527
0.8399
agrupar de forma creciente: sort(v)
>> x=rand(5,1)
x =
0.6948
0.3171
0.9502
0.0344
0.4387
>> v=sort(x)
v =
0.0344
0.3171
0.4387
0.6948
0.9502
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
obtener la suma de los trminos de un arreglo: sum(x)
w=sum(x)
w =
2.4353
obtener el mximo valor de un arreglo: max(x)
y=max(x)
y =
0.9502
obtener el mnimo valor de un arreglo: min(x)
>> y=min(x)
y =
0.0344
redondea los trminos: round(x)
>> r=round(x) %redondea por defecto al entero ms cercano
0
r =
1
0
1
0
0
>> r=round(10*x) %idem anterior pero ahora se multiplica
el arreglo por 10
r =
7
3
10
0
4
Los operadores relacionales son < menor que
mayor que
>= mayor o igual a
== igual a
=~ no igual a
Comando de limpieza de variables - clear - clear all - clc
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Grficos La estructura bsica del grfico se compone por un comando
que crea una grfica de vectores o columnas de matrices a travs de
plot. Una vez ingresado el comando y los vectores a representar
grficamente es posible agregar descripciones al grfico, a travs de
ttulos, encabezamientos de ejes, lneas segmentadas o texto mediante
etiquetas. De igual manera se puede asignar un color especfico al
trazado y/o con algn estilo. Cabe destacar que por defecto el
grfico tiene una lnea continua y de color azul. Para ello se
enumeran las opciones disponibles:
Colores
y amarillo m magenta c cyan r rojo
g verde b azul w blanco k negro
Tipologa lnea
. punto o circulo x cruz + signo '+'
* estrella s cuadrado d diamante v triangulo
- lnea solida : segmentado -. lnea - punto -- lnea - lnea
Se considerar el siguiente ejemplo para ilustrar el uso de la
funcin plot y sus etiquetas. Sea x=1:8; y=2.^x;
plot(x)
plot(y)
Si x es un vector, plot(x) produce una grfica lineal de los
elementos de x versus el ndice de estos. Si especifica dos vectores
como argumentos, plot(x, y) produce una grfica de y versus x como
se indica en la figura.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Para introducir las etiquetas es necesario colocar (,) despus
del vector y abrir una llamado a la etiqueta, ingresando el llamado
entre ()
plot(y,m)
plot(y,mx)
El grfico de la izquierda grafica el vector y, agregndole color
magenta a la lnea trazada. El grfico de la derecha mantiene el
color magenta pero cambia la lnea por cruces; es decir, aade una
caracterstica adicional insertando una nueva etiqueta de manera
continua.
plot(y,d)
plot(y,k--)
El grfico de la izquierda grafica el vector y, indicando slo los
valores del vector con un smbolo de diamante. El grfico de la
derecha segmenta el grfico y le cambia el color a negro.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Para agregar ttulos al grfico
plot(y,'k.-'); title('Grfico y(x)');
plot(y,'k.-'); title('Grfico y(x)'); xlabel('Eje X');
ylabel('Eje Y');
De manera adicional se puede agregar cambios en los espesores de
lnea. Algunas de las etiquetas son:
,'LineWidth',2, espesor de linea en 2
,'MarkerEdgeColor','r', dato en color rojo
,'MarkerSize',30, tamao dato
As, se puede generar grficos como:
plot(y,'k.','LineWidth',2,'MarkerEdgeColor','r','MarkerSize',15);
title('Grfico y(x)');
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Para graficar de manera simultnea dos grficos se puede utilizar
un comando que permita agregar tantas funciones cmo se requiera.
Para ello se definir lo siguiente: >> x=0:6;
>> y1=x.^2;
>> y2=sqrt(x);
>> y3=x;
>> plot(y1); hold on
>> plot(y2);
>> plot(y3);
>> hold off
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Programacin
Declaracin de funcin
La idea de es utilizar funciones predeterminadas y de uso
recurrente agregando slo una lnea.
Para los casos que se vern en Dinmica de Estructuras se
implementarn para:
Llamar una matriz de rigidez elemental de un elemento viga o
columna
Llamar un registro
Llamar una funcin especfica previamente creada y guardada, por
ejemplo, una funcin
que resuelva la ecuacin diferencial de movimiento mediante la
integracin directa con
aceleracin constante
Por ejemplo, si se crea un archivo .m a travs de una funcin
(File->New->Function) se puede
agregar una matriz de rigidez de un elemento viga en posicin
horizontal con 6 grados de libertad,
como se detalla a continuacin:
function Kviga = Kviga(EA,EI,L) Kviga = [EA/L,0,0,-EA/L,0,0;
0,12*EI/L^3,6*EI/L^2,0,-12*EI/L^3,6*EI/L^2;
0,6*EI/L^2,4*EI/L,0,-6*EI/L^2,2*EI/L; -EA/L,0,0,EA/L,0,0;
0,-12*EI/L^3,-6*EI/L^2,0,12*EI/L^3,-6*EI/L^2;
0,6*EI/L^2,2*EI/L,0,-6*EI/L^2,4*EI/L]
De esta manera se define una matriz de rigidez elemental para
una viga horizontal de propiedades
EA, EI y largo L. Para hacer uso de ella se debe llamar por el
nombre Kviga, agregando las
propiedades requeridas en su definicin. Definiendo EA, EI &
L, se obtiene:
>> EA=10000; %EA de la viga >> EI=500000; %EI de la
viga >> L=500; %L de la viga >> Kviga(EA,EI,L)
Kviga =
1.0e+003 *
0.0200 0 0 -0.0200 0 0
0 0.0000 0.0120 0 -0.0000 0.0120
0 0.0120 4.0000 0 -0.0120 2.0000
-0.0200 0 0 0.0200 0 0
0 -0.0000 -0.0120 0 0.0000 -0.0120
0 0.0120 2.0000 0 -0.0120 4.0000
Declaracin de FOR simple >> for i=1:101
x(i)=2*pi*(i-1)/100;
end
>> y=sin(x)
>> plot(x,y)
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Declaracin de FOR anidada
Se utiliza cuando se posee ms de 1 parmetro al cual se requiere
hacer un barrido. Por ejemplo,
se puede crear una matriz de dimensiones mxn, creando cada
trmino en funcin de las
dimensiones de la matriz. As, si m=4 y n=5, se tiene
>> for i = 1:m for j = 1:n
A(i, j) = 1/(i+j- 1); end end A
A = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500
0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000
0.1667 0.1429 0.1250
Declaracin de WHILE
Este comando permite a una o ms instrucciones repetirse un nmero
indefinido de veces, bajo el control de una condicin lgica. La
ventaja radica en que WHILE tiene una condicin de parada definida,
mientras que otros comandos, como IF, pueden no tener la condicin
de parada, lo que implica que nunca deja de buscar. Como ejemplo,
suponer se desea iterar para encontrar un nmero tal satisfaga una
suma. As, >> e=1.0; while (1.0+e)>1.0001
e=e/2.0; end >> e
e = 6.1035e-005
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Declaracin de IF
Permite establecer casos particulares en los cuales si se cumple
una afirmacin se proceda a generar una rutina con el valor al caso
que se cumple. if i==j
rho=1; else
rho=-1
end
Declaraciones interactuando
Supongamos que se tienen las frecuencias de un marco de 5 pisos
ordenadas como un vector columna llamado w, tal que
w = 31.4159
100.5183 183.8185 276.7465 360.8302
Si se requiere realizar un anlisis CQC (Complete Quadratic
Combination, para combinar los resultados modales por la tcnica de
Combinacin Cuadrtica Completa descrita por Wilson, Der Kiureghian,
y Bayo (1981)), se debe determinar el coeficiente de acoplamiento
modal, cuya es expresin corresponde a
2 3 3
2 22 2 2
8
4
i j i j
ij
i j i j i j
La expresin obliga a ocupar los comandos anteriormente vistos
para generar los coeficientes de acoplamiento modal. for i=1:5 for
j=1:5 if i==j rho=1; else
rho=(8*bi^2*(w(i)+w(j))*(w(i)^3*w(j)^3)^0.5)/((w(i)^2-
w(j)^2)^2+4*bi^2*w(i)*w(j)*(w(i)+w(j))^2); end end
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Anlisis estructural
Caso de anlisis Suponga que deben calcular el desplazamiento de
un edificio de 5 pisos. Ese edificio tiene ciertas
cualidades que se detallan abajo. Lo importante es que deben
conocer el desplazamiento de techo
y los desplazamientos de entrepiso (drifts), por lo cual les
interesa saber los desplazamientos
desde 1 a 5. Pero qu sucede? Hay ms grados de libertad que
contribuyen a la rigidez del
edificio. Detallando los grados de libertad del marco de 5
pisos, donde las vigas son axialmente
indeformables, los grados de libertad a considerar son:
Esa rigidez del edificio se puede expresar como una rigidez
lateral (que es la que nos interesa
porque es la que mueve toda la masa), una rigidez al giro y una
rigidez a la deformacin vertical.
Pues de esta forma se entiende que el problema a resolver no son
los 25 grados de libertad, sino
que los 5 que relacionan el problema que debo solucionar.
As, sabiendo que tengo una matriz de grandes dimensiones, ordeno
convenientemente los grados
de libertad para luego aplicar condensacin a los grados de
libertad requeridos. Qu significa
eso? Que la matriz de 25x25 se reducir a 5x5, de los cuales se
har una equivalencia en
comportamiento dada su condicin esttica.
Matriz de Rigidez Se requiere obtener la matriz de rigidez de un
edificio de 5 pisos compuesto por columnas y vigas.
Las vigas se considerarn flexurablemente deformables y las
columnas axial-flexurablemente
deformables.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Para mayor facilidad en el desarrollo se consideraran primero
los grados de libertad que
representan el desplazamiento lateral de cada piso, para luego
considerar el resto. De esta forma
los primero cinco trminos de la matriz de rigidez resultante
sern los que se usarn para
determinar la respuesta a nivel de piso debido al registro.
La siguiente figura indica los grados de libertad globales
considerados para el edificio de 5 pisos.
Vigas
La matriz de rigidez elemental de la viga considera slo los
grados de libertad axiales, por lo que el
elemento queda como lo indica la figura:
Considerando la matriz elemental para una viga horizontal y
tomando en cuenta slo los 4 grados
de libertad locales indicados, la matriz de rigidez local del
elemento viga se expresa como
2 2
3
2 2
6 3 6 3
3 2 32
6 3 6 3
3 3 2
c vv
L L
L L L LE Ik
L LL
L L L L
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Columnas
En relacin a la matriz de rigidez de la columna, se consideran
todos los grados de libertad de la
matriz de rigidez elemental. De esta forma, se tiene que el
elemento columna se expresa en
coordenadas locales como:
Considerando los grados de libertad locales de la columna, la
matriz de rigidez local del elemento
columna se expresa como
3 2 3 2
2 2
3 2 3 2
2 2
12 0 6 12 0 6
0 0 0 0
6 0 4 6 0 2
12 0 6 12 0 6
0 0 0 0
6 0 2 6 0 4
c c c c c c c c
i i i i
c c c c
i i
c c c c c c c c
i i i i
c
c c c c c c c c
i i i i
c c c c
i i
c c c c c c c c
i i i i
E I E I E I E I
h h h h
E A E A
h h
E I E I E I E I
h h h hk
E I E I E I E I
h h h h
E A E A
h h
E I E I E I E I
h h h h
Se debe hacer la diferencia sobre la altura del primer piso con
la del resto de los pisos, para lo cual
se generarn matrices de rigidez para el primer piso y para el
resto. Todas las vigas tienen las
mismas propiedades, por lo cual no se har diferencia con las
matrices de rigidez de stas.
Los valores a utilizar son
22038.902 29000ctonf
E ksicm
412250vI cm 750vL cm
262cA cm 49230cI cm
400 ,
350 ,i
cm parael primer pisoh
cm parael restodelos pisos
Matriz de rigidez global Realizado lo anterior, ser necesario
establecer la relacin entre los grados de libertad locales y
globales. Para ello se enumeran los elementos, con la finalidad
de establecer los vectores de
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
conectividad que permitan ensamblar la matriz de rigidez del
sistema. La figura que se indica a
continuacin establece la numeracin de los elementos. Se
requieren 5 vectores de conectividad
para las 5 vigas y 10 vectores de conectividad para las 10
columnas.
Utilizando lo visto en el captulo 1, se definirn 2 funciones
para llamar las matrices de rigidez de la
viga y de la columna. As, creando un nuevo archivo de extensin
.m, se tiene
Matriz de rigidez elemental viga 4x4
function kviga4x4 = kviga4x4(Ec,Iv,L)
kviga_ad4x4=Ec*Iv/L^3*[12 6*L -12 6*L;
6*L 4*L^2 -6*L 2*L^2;
-12 -6*L 12 -6*L;
6*L 2*L^2 -6*L 4*L^2];
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Matriz de rigidez elemental columna
function kcol = kcol(EI,EA,h)
kcol = [12*EI/h^3,0,6*EI/h^2,-12*EI/h^3,0,6*EI/h^2;
0,EA/h,0,0,-EA/h,0;
6*EI/h^2,0,4*EI/h,-6*EI/h^2,0,2*EI/h;
-12*EI/h^3,0,-6*EI/h^2,12*EI/h^3,0,-6*EI/h^2;
0,-EA/h,0,0,EA/h,0;
6*EI/h^2,0,2*EI/h,-6*EI/h^2,0,4*EI/h];
Notar que se consideran los parmetros Ec, Iv & L como los
datos de entrada cuando se llame a la
matriz de rigidez de la viga, mientras que para la columna los
datos de entrada son EI, EA & h.
La idea ser generar que la matriz de rigidez global de la
estructura se armar con las matrices de
rigidez de cada elemento (mtodo de rigidez directa). Esto se
implementar mediante vectores
que relacionarn el grado de libertad de cada elemento con una
ubicacin dentro de la matriz de
rigidez global, de dimensiones 25x25.
Si la viga 1 tiene los grados de libertad 6, 7, 8 & 9, el
vector ser p=[6:9]' y lo que har ser
vincular, en el orden especfico en el cual se ingresan los
valores en el vector, la matriz de 4x4 de la
viga del primer piso y ubicarla dentro de la matriz de
dimensiones 25x25 entre las filas 6 y 9, y las
columnas 6 y 9.
Para las columnas se procede de la misma forma, salvo las
columnas del primer piso, que
requieren que se aadan grados de libertad adicionales. Esto
sucede porque la matriz a la cual se
llama tiene dimensiones de 6x6 y el vector p=[0;0;0;1;6;7]
tendra slo 3 grados de libertad, lo que
genera un problema de dimensiones al generar la matriz. De esta
forma, la manera ms simple de
generar una solucin es aadiendo 5 grados de libertad en la base.
De esta forma, se tienen 30
grados de libertad.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
As,
Kg=zeros(30); %definicin de una matriz de 25x25 para ir
completando
%Para el primer piso
p=[6:9]'; %posicion de los GL de la viga
Kg(p,p)=Kv+Kg(p,p); %aporte de la primer piso
p=[26;27;28;1;6;7]; %posicin de la columna izquierda
Kg(p,p)=Kcp1+Kg(p,p); %aporte de la columna izquierda
p=[26;29;30;1;8;9]; %posicin de la columna derecha
Kg(p,p)=Kcp1+Kg(p,p); %aporte de la columna derecha
%Para el segundo piso
p=[10:13]'; %posicion de los GL de la viga
Kg(p,p)=Kv+Kg(p,p); %aporte del segundo piso
p=[1;6;7;2;10;11]; %posicin de la columna izquierda
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda
p=[1;8;9;2;12;13]; %posicin de la columna derecha
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
%Para el tercer piso
p=[14:17]'; %posicion de los GL de la viga
Kg(p,p)=Kv+Kg(p,p); %aporte del tercer piso
p=[2;10;11;3;14;15]; %posicin de la columna izquierda
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda
p=[2;12;13;3;16;17]; %posicin de la columna derecha
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
%Para el cuarto piso
p=[18:21]'; %posicion de los GL de la viga
Kg(p,p)=Kv+Kg(p,p); %aporte del cuarto piso
p=[3;14;15;4;18;19]; %posicin de la columna izquierda
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda
p=[3;16;17;4;20;21]; %posicin de la columna derecha
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
%Para el quinto piso
p=[22:25]'; %posicion de los GL de la viga
Kg(p,p)=Kv+Kg(p,p); %aporte del quinto piso
p=[4;18;19;5;22;23]; %posicin de la columna izquierda
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda
p=[4;20;21;5;24;25]; %posicin de la columna derecha
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Matriz de rigidez global Kg queda como se indica la figura
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Condensacin esttica Ahora bien, mediante condensacin
estticamente se debe reducir la matriz a los grados de
libertad asociados al desplazamiento horizontal del marco. En
este caso se condensarn los
asociados al desplazamiento lateral del marco.
0
aa ab
ba bb
K K u F
K K
Con u=grados de libertad activos (desplazamientos laterales) y
el resto de los grados de libertad.
De esta manera,
0aa ab
ba bb
K u K F
K u K
Finalmente la rigidez lateral queda expresada como
1
aa ab bb baK K K K K
Se condensar para la submatriz de dimensiones 25x25,
considerando que slo se agregaron estos
trminos para determinar un procedimientos de ensamble de la
matriz de rigidez global eficiente.
Truncado los ltimos 5 GL, se tiene
a=[1:5]; % GL activos
b=[6:25]; % GL pasivos
K=Kg(a,a)-Kg(a,b)*inv(Kg(b,b))*Kg(b,a) %condensacion a GL
laterales
K =
14.7948 -9.8816 2.6659 -0.4655 0.0756 -9.8816 15.4632 -10.0323
2.6500 -0.3583 2.6659 -10.0323 15.4597 -9.8125 2.0987 -0.4655
2.6500 -9.8125 14.1538 -6.5904 0.0756 -0.3583 2.0987 -6.5904
4.7790
Una alternativa al procedimiento anterior consiste en generar
los vectores de conectividad de
manera individual. El problema radica en la lentitud en relacin
al procedimiento anterior.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
% vigas
Kv=kviga4x4(Es,Iv,L);
% columnas
EA=Es*Ac;
EI=Es*Ic;
Kcp1=kcol(EI,EA,hp1);
Kcp2=kcol(EI,EA,hp2);
% Matrices de compatibilidad para cada barra
% vigas
a1=zeros(4,25); a1(1,6)=1; a1(2,7)=1; a1(3,8)=1; a1(4,9)=1;
a2=zeros(4,25); a2(1,10)=1; a2(2,11)=1; a2(3,12)=1;
a2(4,13)=1;
a3=zeros(4,25); a3(1,14)=1; a3(2,15)=1; a3(3,16)=1;
a3(4,17)=1;
a4=zeros(4,25); a4(1,18)=1; a4(2,19)=1; a4(3,20)=1;
a4(4,21)=1;
a5=zeros(4,25); a5(1,22)=1; a5(2,23)=1; a5(3,24)=1;
a5(4,25)=1;
% columnas
a6=zeros(6,25); a6(4,1)=-1; a6(5,6)=1; a6(6,7)=1;
a7=zeros(6,25); a7(4,1)=-1; a7(5,8)=1; a7(6,9)=1;
a8=zeros(6,25); a8(1,1)=-1; a8(2,6)=1; a8(3,7)=1; a8(4,2)=-1;
a8(5,10)=1; a8(6,11)=1;
a9=zeros(6,25); a9(1,1)=-1; a9(2,8)=1; a9(3,9)=1; a9(4,2)=-1;
a9(5,12)=1; a9(6,13)=1;
a10=zeros(6,25); a10(1,2)=-1; a10(2,10)=1; a10(3,11)=1;
a10(4,3)=-1; a10(5,14)=1; a10(6,15)=1;
a11=zeros(6,25); a11(1,2)=-1; a11(2,12)=1; a11(3,13)=1;
a11(4,3)=-1; a11(5,16)=1; a11(6,17)=1;
a12=zeros(6,25); a12(1,3)=-1; a12(2,14)=1; a12(3,15)=1;
a12(4,4)=-1; a12(5,18)=1; a12(6,19)=1;
a13=zeros(6,25); a13(1,3)=-1; a13(2,16)=1; a13(3,17)=1;
a13(4,4)=-1; a13(5,20)=1; a13(6,21)=1;
a14=zeros(6,25); a14(1,4)=-1; a14(2,18)=1; a14(3,19)=1;
a14(4,5)=-1; a14(5,22)=1; a14(6,23)=1;
a15=zeros(6,25); a15(1,4)=-1; a15(2,20)=1; a15(3,21)=1;
a15(4,5)=-1; a15(5,24)=1; a15(6,25)=1;
% Matriz de rigidez
Kvigas=a1'*Kv*a1 + a2'*Kv*a2 + a3'*Kv*a3 + a4'*Kv*a4 +
a5'*Kv*a5; %aporte de las vigas
Kcolumnas=a6'*Kcp1*a6 + a7'*Kcp1*a7 + a8'*Kcp2*a8 + a9'*Kcp2*a9
+ a10'*Kcp2*a10 + a11'*Kcp2*a11 + a12'*Kcp2*a12 +
a13'*Kcp2*a13 + a14'*Kcp2*a14 + a15'*Kcp2*a15; %aporte de las
columnas
Kt=Kvigas+Kcolumnas; %matriz de rigidez completa
a=[1:5]; %grados de libertad horizontales
b=[6:25]; %resto de los grados de libertad del sistema
Kaa=Kt(a,a);
Kab=Kt(a,b);
Kba=Kt(b,a);
Kbb=Kt(b,b);
K=Kaa-Kab*inv(Kbb)*Kba; %matriz de rigidez condensada a grados
de libertad laterales con masa asociada
Kt=Kv+Kc; %matriz de rigidez completa
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Dinmica estructural
Subrutina ode45 ode45 corresponde a un mtodo adaptativo; es una
combinacin de un mtodo Runge-Kutta de
ordenes cuatro y cinco de cinco y seis evaluaciones
respectivamente. La combinacin de estos
mtodos permite estimar el error en la aproximacin numrica en
cada paso y as la subrutina
puede ajustar el largo de paso "h" en forma dinmica para
mantener el error global menor de una
tolerancia especificada por el usuario. Requiere del nombre de
la funcin f, los tiempos inicial y
final, la condicin inicial, la tolerancia para cada iteracin, y
un indicador si la rutina imprime o no
los resultados calculados. Normalmente este indicador se toma
como cero que es su valor por
omisin.
A continuacin se detalla un ejemplo que permite visualizar su
uso. En especfico, se resolver la
ecuacin general de movimiento para un caso particular.
Sea la ecuacin del movimiento:
100,sin)()()( 0 ttFtkxtxctxm
Considerar el siguiente caso:
m = 10; c = 0,05; k = 50; Fo = 5
Las condiciones iniciales sern las siguientes:
0)0( x
0)0( x
Para usar ode45 con ecuaciones de 2do orden, como es el caso de
la ecuacin general de
movimiento:
10
00
)(
)(
)(
xtx
xtx
tFkxxcxm
se debe convertir la ecuacin en un sistema equivalente de primer
orden, haciendo y1 = x, y2 = x:
m
tFycyky
yy
)(
'
212
21
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Con
102
001
)(
)(
xty
xty
Luego se debe crear y guardar un archivo .m que retornar una
funcin evaluada en cada t.
Para el caso del ejemplo, se procedera de la siguiente
forma:
function dy = dfun(t,y) Fo=5; A=Fo*sin(pi*t); c=0.05; k=50;
m=10; dy=zeros(2,1); dy(1)=y(2); dy(2)=(A-c*y(2)-k*y(1))/m; end
Notar que el sistema est descrito en las dos ltimas filas antes
de end y lo anterior es para definir los coeficientes del sistema.
Este archivo se guardar como dfun.m.
Finalmente, para obtener los resultados, se tiene que ingresar
lo siguiente:
[t,x]=ode45(@nombre del archivo.m,[to tf],[x(0) x(0)]);
t0 y tf son el tiempo inicial y final del anlisis y x(0) y x(0)
las condiciones iniciales.
Reemplazando en el caso ejemplo, queda:
[t,x]=ode45(@dfun,[0 10],[0 1]);
t ser el vector de los instantes de tiempo en que se efectu el
clculo segn el criterio de error de este proceso, x ser una matriz
de dos columnas, de las cuales, la primera ir definiendo la posicin
y la segunda la velocidad segn el vector t. Con lo cual, si se
desea mostrar el resultado en un grfico, se implementar el
siguiente cdigo:
hold on plot(t,w(:,1),'b') plot(t,w(:,2),'r') xlabel('tiempo')
ylabel('Posicin y Velocidad') title('Solucin EDO')
legend('Posicin','Velocidad',3) grid on hold off
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Y el resultado por pantalla ser el siguiente:
0 1 2 3 4 5 6 7 8 9 10-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
tiempo
Posic
in y
Velo
cid
ad
Solucin EDO
Posicin
Velocidad
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Factores de Amplificacin Dinmica (FAD)
En el anlisis de sistemas dinmicos, un punto que importa conocer
es la amplificacin que sufre la
respuesta del sistema ante solicitaciones con respecto a la
respuesta esttica. De esta manera, se
define el Factor de amplificacin dinmico de un sistema, para una
cierta razn de
amortiguamiento, como el cociente entre la amplitud de la
respuesta (para una cierta excitacin)
y el desplazamiento (velocidad, aceleracin) esttico. Para poder
definir este parmetro, es
necesario conocer la frecuencia que posee la excitacin a la cual
se esta sometiendo el sistema.
Conocida esta, es posible analizar lo que ocurre con la
respuesta del sistema para diferentes
excitaciones, y a su vez, analizar el comportamiento para un
determinado amortiguamiento. Para
un mejor entendimiento, veamos un ejemplo:
Sea la EDM:
tpFtkutuctum sin)()()( 0
Rescrita en forma cannica:
tpm
Ftututu sin)()(2)( 02
La solucin a esta ecuacin diferencial de segundo orden, esta
dada por una parte homognea y
otra particular. Resolviendo, se obtiene la siguiente solucin
para un sistema amortiguado de un
grado de libertad:
tp
w
ppm
Ftu sin
21
1)(
22
22
0
2
1
1
2
tan
p
p
Donde:
: Razn de amortiguamiento crtico.
:0F Amplitud de la carga.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
:p Frecuencia angular de la carga.
:stu Desplazamiento esttico del sistema.
Luego, el factor de amplificacin dinmica para desplazamiento se
define numricamente de la
siguiente manera:
22
2
21
1
w
pp
FADu
Es posible conocer tambin, los factores de amplificacin dinmica
para la velocidad y la
aceleracin:
Diferenciando la respuesta del sistema, se tiene que la
velocidad es de la forma:
tp
w
pp
p
m
Ftu cos
21
)(2
22
0
De esta manera, el FAD para velocidad es:
22
2
21
w
pp
p
FADv
La aceleracin:
tp
w
pp
p
m
Ftu sin
21
)(2
22
2
0
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
De esta manera, el FAD para aceleracin es:
22
2
2
21
w
pp
p
FADa
Por ejemplo, sea: m=100 [kg],
m
Nk 3102.5
Se realiza un barrido de la frecuencia de la carga desde 0 hasta
100 [rad/s] y un barrido de la razn
de amortiguamiento crtico comenzando en 0.1 hasta 1.1.
Implementando el siguiente cdigo en
MATLAB se obtiene la grfica que ilustra el FAD para
desplazamiento, velocidad y aceleracin:
%FACTORES DE RESPUESTA DINMICA (FAD)
%Para una excitacin conocida de la forma: F(t)=Fo*sin(p*t) tic
clear all clc %Para un oscilador de 1 Grado de Libertad con
distintos niveles de
amortiguamiento... %Sea m=100;%[kg] k=5.2*10^3;%[N/m]
w=(k/m)^(1/2);%[rad/s] p=(0:.5:100);%Frecuencias de la carga
aplicada al sistema. beta=[0.1 0.2 0.4 0.5 0.7 0.9 1 1.1];%razones
de amortiguamiento aux1=size(p,2); aux2=size(beta,2);
FADu=zeros(aux1,aux2); FADv=zeros(aux1,aux2);
FADa=zeros(aux1,aux2);
for j=1:1:aux2 for i=1:1:aux1
aux3=((1-(p(i)/w)^2)^2+(2*beta(j)*(p(i)/w))^2)^(1/2);
FADu(i,j)=1/aux3; FADv(i,j)=(p(i)/w)/aux3;
FADa(i,j)=((p(i)/w)^2)/aux3; end end p_w=p/w;
figure(1) hold on plot(p_w,FADu(:,1),'-k')
plot(p_w,FADu(:,2),'-r')
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
plot(p_w,FADu(:,4),'-b') plot(p_w,FADu(:,5),'-g')
plot(p_w,FADu(:,6),'-m') plot(p_w,FADu(:,7),'-y')
legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta
=1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD
DESPLAZAMIENTO OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid
on
figure(2) hold on plot(p_w,FADv(:,1),'-k')
plot(p_w,FADv(:,2),'-r') plot(p_w,FADv(:,4),'-b')
plot(p_w,FADv(:,5),'-g') plot(p_w,FADv(:,6),'-m')
plot(p_w,FADv(:,7),'-y')
legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta
=1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD
VELOCIDAD OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid
on
figure(3) hold on plot(p_w,FADa(:,1),'-k')
plot(p_w,FADa(:,2),'-r') plot(p_w,FADa(:,4),'-b')
plot(p_w,FADa(:,5),'-g') plot(p_w,FADa(:,6),'-m')
plot(p_w,FADa(:,7),'-y')
legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta
=1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD
ACELERACION OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid
on
toc
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Respuesta ante carga Rampa-Escaln
Considerando que se tiene una excitacin como
stparakN
stparakNttF
5.0100
5.0200)(
Considerando un sistema de 1 GL, se tiene que la EDM es
sttpara
sttparatttkutuctum
d
d
d
100
100
)()()(
La respuesta por tanto debe separarse en 2 tramos.
i) Respuesta en la fase de carga lineal creciente dtt
La solucin es
ttte
t
utu d
d
d
tw
d
st
2sin12
cos2
)(
2
ii) Respuesta en la fase de carga lineal creciente dtt
La solucin es
stddd
stddddstd
ttwutt
utututtutuetu d
sin
)()(cos)()(
Donde )(),( dd tutu corresponde a las condiciones iniciales
provistas por la fase anterior.
De esta manera, se obtiene la respuesta, que de manera grfica,
permite apreciar que en la fase
de carga creciente la respuesta del sistema crece linealmente
hasta la posicin de equilibrio
esttico, siendo igual para distintas razones de amortiguamiento.
Luego, oscila en torno a ella
hasta mantenerse en dicha posicin.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
%RESPUESTA OSCILACIONES FORZADAS %Para una excitacin tipo
rampa-escalon
m=5000;%[kg] a=.3;%[m] I=(a^4)/12;%[m^4] E=2.94*10^(10);%[N/m^2]
K=768*E*I/875;%[N/m] d=0.05;
Fo=100000;%[N]
i=0; tr=.5; H=@(t)(((Fo*t/tr)*(t>=0 & ttr & t
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Respuestas a partir de un registro de aceleraciones
Considerando que se tiene un sistema como el mostrado en la
figura, donde )(tug representa la
aceleracin basal discretizada en pasos de st , se requiere
resolver el problema utilizando el mtodo de Newmark con aceleracin
lineal (es una alternativa). Esto permite determinar el la
relacin tiempo-historia de la estructura, tanto a nivel de
desplazamientos, como de velocidad y
aceleracin.
La EDM es
)()()(2)(
)()()()(
0)()()()(
2 tutututu
tmutkutuctum
tkutuctutum
g
g
g
Ahora bien, implementando Newmark con aceleracin lineal, se
tiene
)(3)(
6)(
2)(3
632
tutut
mtut
tucFumt
ct
K
Con condiciones iniciales
0)0(
0)0(
u
u
m
uKucFu
)0()0()0()0(
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
De esta forma, para un sistema de perodo T=0.1 (s) y razn de
amortiguamiento de 02.0 , se
obtiene el grfico para el desplazamiento lateral u(t).
%Time-History para SDOF mediante Newmark con aceleracin
lineal
%Se carga el registro de aceleraciones.
dato=load('aceleraciones.dat'); dato1=dato*9.81;
dt=0.02;%Incremento de tiempo del registro [s].
n=length(dato); tmax=(n-1)*dt; t=(0:dt:tmax)'; d=zeros(n,1);
v=zeros(n,1); a=zeros(n,1);
%Condiciones iniciales. d(1)=0;%Desplazamiento inicial nulo.
v(1)=0;%Velocidad inicial nula.
a(1)=(dato1(1)-c*v(1)-K*d(1))/m;%Aceleracin inicial .
K_eq=K+(3*c/dt)+(6*m/(dt*dt));%Masa equivalente. dd=d(1); vv=v(1);
aa=a(1); for i=1:1:(n-1)
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
delta_F=(dato1(i+1)-dato1(i))+c*(3*vv+(dt*aa/2))+m*((6*vv/dt)+3*aa);
du=delta_F/K_eq; dv=(3*du/dt)-3*vv-(dt*aa/2);
da=(6*du/(dt^2))-(6*vv/dt)-3*aa; d(i+1)=dd+du; v(i+1)=vv+dv;
a(i+1)=aa+da; dd=d(i+1); vv=v(i+1); aa=a(i+1); end
SD=max(abs(d*100)); SV=max(abs(v*100)); SA=max(abs(a))/9.81;
figure(1) subplot(2,1,1); plot(t,dato,'r'); title('Acelerograma');
xlabel('Tiempo [s]'); ylabel('Aceleracin [g]'); subplot(2,1,2);
plot(t,d*100,'b'); legend('T= 0.1 [s], \xi=0.02') xlabel('Tiempo
[s]'); ylabel('Deformacin u(t) [cm]');
El espectro de respuesta para un registro se calcula para un
barrido de perodos en un oscilador de
un grado de libertad y para una razn de amortiguamiento fija.
Los espectros se definen de la
siguiente manera:
max)(tuSd
dv ST
S
2
da ST
S
22
%Espectro de Respuesta Lineal para SDOF mediante Newmark con
aceleracin
lineal
%Se carga el registro de aceleraciones.
dato=load('aceleraciones.dat'); dato1=dato*9.81;
dt=0.02;%Incremento de tiempo del registro [s].
n=length(dato); tmax=(n-1)*dt; t=(0:dt:tmax)'; d=zeros(n,1);
v=zeros(n,1); a=zeros(n,1);
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
T=(0.01:0.01:7)'; z=length(T); Sd=zeros(z,1); Sv=zeros(z,1);
Sa=zeros(z,1); for j=1:1:z wn=2*pi/T(j); K=m*wn^2;%Rigidez del
sistema en [N/m]. c=2*sqrt(m*K)*p;%Viscosidad en [N*s/m].
%Condiciones iniciales. d(1)=0;%Desplazamiento inicial nulo.
v(1)=0;%Velocidad inicial nula.
a(1)=(dato1(1)-c*v(1)-K*d(1))/m;%Aceleracin inicial .
K_eq=K+(3*c/dt)+(6*m/(dt*dt));%Masa equivalente. dd=d(1); vv=v(1);
aa=a(1); for i=1:1:(n-1)
delta_F=(dato1(i+1)-dato1(i))+c*(3*vv+(dt*aa/2))+m*((6*vv/dt)+3*aa);
du=delta_F/K_eq; dv=(3*du/dt)-3*vv-(dt*aa/2);
da=(6*du/(dt^2))-(6*vv/dt)-3*aa; d(i+1)=dd+du; v(i+1)=vv+dv;
a(i+1)=aa+da; dd=d(i+1); vv=v(i+1); aa=a(i+1); end
Sd(j,1)=max(abs(d)); Sv(j,1)=(2*pi/T(j))*Sd(j,1);
Sa(j,1)=((2*pi/T(j))^2)*Sd(j,1); end
figure(1) plot(T,Sd*100) title('Espectro de Respuesta SDOFS
\beta=0.02') xlabel('Periodo T_n [s]'); ylabel('Sa [cm]');
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Espectro Lineal de Aceleracin
Obtener el Espectro Lineal de Aceleracin, utilizando un
algoritmo de Newmark, para una estructura de un grado de libertad,
entre los periodos de T = 0 a T = 3 *s+, del registro n del
terremoto del 27 de Febrero de 2010, considerando los
amortiguamientos = *0,a,b+% (n = 1: Constitucin E-O; n = 2:
Concepcin N-S; n = 3: Angol E-O; n=4: Curic E-O) El .txt del
registro, contiene un vector con las aceleraciones en *g+,
separadas por un intervalo t. A continuacin, se indican las
especificaciones y condiciones iniciales de los registros:
Registro t [s] N datos Desplazamiento Inicial
Acelergrafo [cm]
Velocidad Inicial
Acelergrafo [cm/s]
Constitucin E-O 0,005 28.657 -0,011 -0,144
Concepcin N-S 0,005 28.338 -0,035 1,641
Angol E-O 0,01 18.001 -0,003 0,099
Curic E-O 0,01 18.001 0,011 0,036
Para obtener el Espectro Lineal de Aceleracin se modela un
sistema de un grado de libertad de la siguiente forma:
Con la ecuacin diferencial de este problema como:
tFtutKtutctutm
donde:
m: Masa del sistema en el tiempo t en [kg]
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
( t): Aceleracin del sistema en el tiempo t en [m/s2] c:
Viscosidad del sistema en el tiempo t en [Ns/m] u (t): Velocidad
del sistema en el tiempo t en [m/s] K: Rigidez del sistema en el
tiempo t en [N/m] u(t): Posicin del sistema en el tiempo t en [m]
F(t): Fuerza externa sobre el sistema en el tiempo t en [N]
Si se evala el sistema en un tiempo t + t:
ttFttutKttutcttutm
Notar que se consideran las propiedades masa, viscosidad y
rigidez, constantes durante el intervalo t, tomndose para el
anlisis, el valor de ellas en el tiempo t (principio del
intervalo). Y luego se resta la expresin anterior con la ecuacin
para el tiempo t, donde:
tuttutu tuttutu tuttutu tFttFtF
La ecuacin de equilibrio incremental se obtiene para el
intervalo de tiempo t:
tFtutKtutctutm
donde: m(t): Masa del sistema al inicio del intervalo en [kg]
(t): Incremento de la aceleracin del sistema en el intervalo en
[m/s2] c(t): Viscosidad del sistema al inicio del intervalo en
[Ns/m]
u (t): Incremento de la velocidad del sistema en el intervalo en
[m/s] K(t): Rigidez del sistema al inicio del intervalo en [N/m]
u(t): Incremento de la posicin del sistema en el intervalo en *m+
F(t): Incremento de la fuerza externa sobre el sistema en el
intervalo en *N+ La anterior ecuacin ser la que se resolver para
cada intervalo t, para ella se conocen los
siguientes datos provenientes de la resolucin del intervalo
anterior: m(t), c(t), K(t), (t), u (t), u(t); adems de ser dato
F(t), ya que son datos F(t) y F(t + t). Quedando como incgnitas ( t
),
u (t) y u(t), o sea (t + t), u (t + t), u(t + t). En cada paso t
la solucin realizando una integracin directa es:
dututtutt
t
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
dututtutt
t
Dado que no se conoce como cambia la aceleracin ni la velocidad
durante el intervalo, se supone un tipo de variacin, usndose para
este ejemplo, la de Aceleracin Lineal con = 1/6 del Mtodo de
Newmark:
Realizando los reemplazos respectivos:
tuttutu tuttutu tuttutu
Se obtiene:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Si de despejan u (t) y (t) en funcin de u(t), quedan las
siguientes expresiones:
tut
tutut
tu
2
33
tutut
tut
tu
366
2
Reemplazando en la ecuacin de equilibrio incremental:
tFtutKtut
tutut
tctutut
tut
tm
23
33
662
Ordenando:
tctut
tutmtutut
tFtutKtct
tmt
233
6362
Con:
tKtct
tmt
tK
36
2 como la rigidez efectiva
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
tctut
tutmtutut
tFtF
233
6 como el incremento de fuerza
efectiva
Se obtiene el valor para u(t):
tKtF
tu
Algoritmo Mtodo = 1/6 de Newmark:
1) Se conocen las condiciones iniciales del problema: m(0),
c(0), K(0), u (0), u(0), F(0), con
ello se despeja (0) de la ecuacin de diferencial del
problema:
0
000000
m
uKucFu
2) Una vez conocidas las condiciones iniciales del problema o
los datos finales del intervalo
anterior: m(t), c(t), K(t), (t), u (t), u(t), F(t), se calculan
K y F
tKtct
tmt
tK
36
2
tctut
tutmtutut
tFtF
233
6
3) Calcular u( t ) y con ello se calculan u (t) y (t)
tKtF
tu
tut
tutut
tu
2
33
tutut
tut
tu
366
2
4) Calcular ( t + t ), u ( t + t ), u( t + t ):
tututtu tututtu
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
tututtu
5) 5) Repetir desde el paso 2, ocupando (t + t), u (t + t), u(t
+ t) como los (t), u (t), u(t)
del siguiente intervalo.
El mtodo de Newmark, tiene lmites de convergencia y estabilidad,
segn el t y el periodo T de la estructura:
Lmite de convergencia: 39,0
39,0t
TTt
Lmite de estabilidad: 55,0
55,0t
TTt
Dado el t en el problema, debera considerarse el lmite de
convergencia como criterio de eleccin del periodo ms pequeo a
evaluar. En el caso del problema la fuerza externa se puede
expresar en funcin de la aceleracin del registro g( t ), que viene
con sus datos en [g], por lo cual, la fuerza externa se define
como:
81,9 tumtF g
Como el problema es un sistema lineal, las propiedades de ste
son constantes en todo momento:
mtm
ktK
mktc 2 , con amortiguamiento del sistema
Se debe realizar el Mtodo = 1/6 de Newmark para cada periodo.
Luego se obtiene el mayor
valor absoluto de aceleracin para cada periodo y con estos datos
se construye el grfico Espectro
v/s Periodo de la respuesta.
Los espectros de respuesta normalmente entregan el espectro en
unidades de [g], por lo cual, se
debera dividir la mxima aceleracin absoluta, por 9,81.
Notar que el Mtodo = 1/6 de Newmark tiene criterio de
convergencia, por lo cual, el mnimo
periodo a evaluar, debiese ser 39,0
tT
, luego asignar un paso ojal menor igual a 0,05 [s] en
incrementacin del periodo, hasta evaluar T = 3 [s].
A continuacin, se presentan los periodos mnimos a usar para cada
registro y las condiciones
iniciales del problema:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Registro t [s] T mnimo a
usar[s]
Desplazamiento Inicial
Acelergrafo [m]
Velocidad Inicial
Acelergrafo [m/s]
Constitucin E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144
Concepcin N-S 0,005 0,05 > 0,0128 -0,00035 0,01641
Angol E-O 0,01 0,05 > 0,0256 -0,00003 0,00099
Curic E-O 0,01 0,05 > 0,0256 0,00011 0,00036
Ya que el dato a evaluar es el periodo, el sistema se puede
definir con una masa cualquiera y la
rigidez del sistema quedar en funcin de m y T:
22
Tmk
Todo lo anterior, hay que hacerlo para = 0%; = a% y = b%.
Alguno de los espectros de respuesta se adjuntan a continuacin,
con T = 0,005:
0 0.5 1 1.5 2 2.5 30
2
4
6
8
10
12
14
16
18
20
Sa (
g)
Periodo (s)
Espectro Registro Constitucin Direccin E-O
= 0
= 0.03
= 0.055
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
0 0.5 1 1.5 2 2.5 30
1
2
3
4
5
6
7
8
Sa (
g)
Periodo (s)
Espectro Registro Concepcin Direccin N-S
= 0
= 0.03
= 0.055
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Sa (
g)
Periodo (s)
Espectro Registro Angol Direccin E-O
= 0
= 0.03
= 0.055
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
0 0.5 1 1.5 2 2.5 30
2
4
6
8
10
12
14
Sa (
g)
Periodo (s)
Espectro Registro Curic Direccin E-O
= 0
= 0.03
= 0.055
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
%ESPECTRO LINEAL DE ACELERACION DF=11;%Dgito Verificador
dT=0.005;%Intervalo de periodos
%Constitucin E-O %dt=0,005 Datos=28657 %di = -0,011 cm %vi =
-0,144 cm/s
%Angol E-O %dt=0,01 Datos=18001 %di = -0,003 cm %vi = 0,099
cm/s
%Concepcin N-S %dt=0,005 Datos=28338 %di = -0,035 cm %vi = 1,641
cm/s
%Curic E-O %dt=0,01 Datos=18001 %di = 0,011 cm %vi = 0,036
cm/s
%fid=fopen('Constitucin.txt');
%registro=fscanf(fid,'%f',[28657,1]);
% fid=fopen('Concepcin N-S.txt'); %
registro=fscanf(fid,'%f',[18001,1])/981; % fclose(fid); %
fid=fopen('Concepcin.txt','wt'); % fprintf(fid,'%f\n',registro); %
fclose(fid);
registro=load('Constitucin.txt'); x=length(registro);
color=['b','r','k']; ddd=[0,(DF+5)/200,(DF+10)/200]; m=1000;
df=m*(registro(2:x,:)-registro(1:x-1))*9.81; dt=0.005;
T=0.05:dT:3;
for j=1:length(ddd); k=m*(2*pi./T).^2; c=2*ddd(j)*(2*pi./T)*m;
K=k+3/dt*c+6/dt^2*m*ones(1,length(T));
d=zeros(length(registro),length(T)); v=d; a=v; d(1,:)=-0.011/100;
v(1,:)=-0.144/100;
a(1,:)=(m*registro(1)*ones(1,length(T))*9.81-c.*v(1,:)-k.*d(1,:))/m;
for i=1:x-1;
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
dF=df(i)*ones(1,length(T))+c.*(3*v(i,:)+dt/2*a(i,:))+m*(6/dt*v(i,:)
+3*a(i,:)); dd=dF./K; dv=3/dt*dd-3*v(i,:)-dt/2*a(i,:);
da=6/dt^2*dd-6/dt*v(i,:)-3*a(i,:);
a(i+1,:)=a(i,:)+da; v(i+1,:)=v(i,:)+dv; d(i+1,:)=d(i,:)+dd;
end
Sa=max(abs(a)); figure(1) hold on plot(T,Sa/9.81,color(j))
end ylabel('Sa (g)') xlabel('Periodo (s)') title('Espectro
Registro Constitucin Direccin E-O') legend('\xi = 0',char(['\xi =
',num2str(ddd(2))]),char(['\xi =
',num2str(ddd(3))]),1)
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Espectro No Lineal de Aceleracin
Se modela el mismo sistema del ejemplo anterior, consistente de
un grado de libertad de la
siguiente forma:
La ecuacin diferencial de este problema es la siguiente:
tFtftutctutm s Donde:
m: Masa del sistema en el tiempo t en [kg]
( t ): Aceleracin del sistema en el tiempo t en [m/s2]
c: Viscosidad del sistema en el tiempo t en [Ns/m]
u ( t ): Velocidad del sistema en el tiempo t en [m/s]
fs( t ): Fuerza interna del sistema en el tiempo t en [N]
F( t ): Fuerza externa sobre el sistema en el tiempo t en
[N]
La fuerza interna se define:
y
y
y
y
ys
fktu
fktu
fktu
si
si
si
f
f
ktu
tf
donde:
k: Rigidez del sistema en [N/m]
fy: Tensin de fluencia en [N]
Si se evala el sistema en un tiempo t + t:
ttFttfttutcttutm s * Se consideran las propiedades masa,
viscosidad y rigidez, constantes durante el intervalo t,
tomndose para el anlisis, el valor de ellas en el tiempo t
(principio del intervalo).
Y luego se resta la expresin anterior con la ecuacin para el
tiempo t:
donde:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
tuttutu tuttutu
tfttftutK ss
tFttFtF
Se obtiene la ecuacin de equilibrio incremental para el
intervalo de tiempo t:
tFtutKtutctutm con:
m(t): Masa del sistema al inicio del intervalo en [kg]
(t): Incremento de la aceleracin del sistema en el intervalo en
*m/s2]
c(t): Viscosidad del sistema al inicio del intervalo en
[Ns/m]
u (t): Incremento de la velocidad del sistema en el intervalo en
[m/s]
K(t): Rigidez segn ley elastoplstica en el instante t en
[N/m]
u(t): Incremento de la posicin del sistema en el intervalo en
*m+
F(t): Incremento de la fuerza externa sobre el sistema en el
intervalo en [N]
La anterior ecuacin ser la que se resolver para cada intervalo
t, para ella se conocen los
siguientes datos provenientes de la resolucin del intervalo
anterior: m(t), c(t), K(t), (t), u (t), u(t); adems de ser dato
F(t), ya que son datos F(t) y F(t + t). Quedando como incgnitas ( t
),
u (t) y u(t), o sea (t + t), u (t + t), u(t + t).
En cada paso t, la solucin realizando una integracin directa
es:
dututtutt
t
dututtutt
t
Dado que no se conoce como cambia la aceleracin ni la velocidad
durante el intervalo, se supone
un tipo de variacin, usndose para este ejemplo, la de Aceleracin
Lineal con = 1/6 del Mtodo
de Newmark:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Realizando los reemplazos respectivos:
tuttutu tuttutu tuttutu
Se obtiene:
Si de despejan u (t) y t) en funcin de u (t), quedan las
siguientes expresiones:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
tut
tutut
tu
2
33
tutut
tut
tu
366
2
Reemplazando en la ecuacin de equilibrio incremental:
tFtutKtut
tutut
tctutut
tut
tm
23
33
662
Ordenando:
tctut
tutmtutut
tFtutKtct
tmt
233
6362
Con:
tKtct
tmt
tK
36
2; Rigidez efectiva
tctut
tutmtutut
tFtF
233
6; Incremento de fuerza efectivo
Se obtiene el valor para u( t ):
tKtF
tu
Algoritmo Mtodo = 1/6 de Newmark:
1) Se conocen las condiciones iniciales del problema: m( 0 ), c(
0 ), K( 0 ), u ( 0 ), u( 0 ), F( 0 ), con
ello se despeja ( 0 ) de la ecuacin de diferencial del problema,
tambin con ello, se obtienen la
fuerza interna fs:
0
000000
m
uKucFu
000 uKf s
2) Una vez conocidas las condiciones iniciales del problema o
los datos finales del intervalo
anterior: m( t ), c( t ), K( t ), ( t ), u ( t ), u( t ), F( t
), fs( t - t ), se calculan fs( t ), F , K en el
siguiente orden:
tctut
tutmtutut
tFtF
233
6
ys
ys
fkttuttf
fkttuttf
si
siktK
0
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
ys
ys
ys
y
ys
fkttuttf
fkttuttf
fkttuttf
si
si
si
f
f
kttuttf
tf
tKtct
tmt
tK
36
2
3) Calcular u( t ) y con ello se calculan u ( t ) y ( t ).
tKtF
tu
tut
tutut
tu
2
33
tutut
tut
tu
366
2
4) Calcular ( t + t ), u ( t + t ), u( t + t ):
tututtu tututtu tututtu
5) Repetir desde el paso 2, ocupando (t + t), u (t + t), u(t +
t), fs(t) como los (t), u (t), u(t),
fs(t - t) del siguiente intervalo.
El mtodo de Newmark, tiene lmites de convergencia y estabilidad,
segn el t y el periodo T de
la estructura:
Lmite de convergencia: 39,0
39,0t
TTt
Lmite de estabilidad: 55,0
55,0t
TTt
Dado el t en el problema, debera considerarse el lmite de
convergencia como criterio de
eleccin del periodo ms pequeo a evaluar.
En el caso del ejemplo, la fuerza externa se puede expresar en
funcin de la aceleracin del
registro g (t), que viene con sus datos en [g], por lo cual, la
fuerza externa se define como:
81,9 tumtF g
Al ser este un sistema elastoplstico, las propiedades del
sistema son las siguientes:
mtm
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
ys
ys
fkttuttf
fkttuttf
si
siktK
0
mktc 2
ys
ys
ys
y
ys
fkttuttf
fkttuttf
fkttuttf
si
si
si
f
f
kttuttf
tf
Con Amortiguamiento del sistema y fy, la tensin de fluencia:
Dado que se pide el espectro no lineal de aceleracin, se debe
realizar el Mtodo = 1/6 de
Newmark para cada periodo, luego se obtiene el mayor valor
absoluto de aceleracin para cada
periodo, con estos datos, se construye el grfico Espectro v/s
Periodo de la respuesta.
Los espectros de respuesta normalmente entregan el espectro en
unidades de [g], por lo cual, se
debera dividir la mxima aceleracin absoluta, por 9,81.
Notar que el Mtodo = 1/6 de Newmark tiene criterio de
convergencia, por lo cual, el mnimo
periodo a evaluar, debiese ser 39,0
tT
, luego asignar un paso ojal menor igual a 0,05 [s] en
incrementacin del periodo, hasta evaluar T = 3 [s].
A continuacin, se presentan los periodos mnimos a usar para cada
registro y las condiciones
iniciales del problema:
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Registro t [s] T mnimo a
usar[s]
Desplazamiento Inicial
Acelergrafo [m]
Velocidad Inicial
Acelergrafo [m/s]
Constitucin E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144
Concepcin N-S 0,005 0,05 > 0,0128 -0,00035 0,01641
Angol E-O 0,01 0,05 > 0,0256 -0,00003 0,00099
Curic E-O 0,01 0,05 > 0,0256 0,00011 0,00036
Ya que el dato a evaluar es el periodo, el sistema se puede
definir con una masa cualquiera y la
rigidez del sistema quedar en funcin de m y T: 2
2
Tmk
La obtencin del espectro para el ejemplo se realiza para cada
tensin de fluencia desde
fy = 0,2 * W, con un paso de B * W, hasta la tensin de fluencia
con la que el sistema se comporte
en forma lineal, es decir, hasta que en todos los puntos
evaluados fs < fy.
El resultado para el registro de Constitucin se presenta en el
grfico adjunto. No se parte de
perodos bajos puesto que la respuesta para intervalos de mucha
rigidez distorsiona la
visualizacin de la respuesta para el rango de anlisis usual.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
%ESPECTRO LINEAL DE ACELERACION
%Resetea todas las variables
DF=1; %Dgito Verificador dT=0.1;%Intervalo de periodos
ddd=2*DF/100; %Amortiguamiento dfy=0.2; %Paso deltaFy =
dfy*W
%Se ingresa vector con distintos colores dados por las
propiedades RGB,
que no estn definidos por defecto con una letra en MATLAB, con
el fin de
graficar colores=[0.5 0.5 0.5;0.5 0 0.5;0 0.5 0.5;1 0.5 0;0.5
0.25 0;0.5 0 0;0 0.5
0];
%Se ingresa vector con los colores definidos por una letra en
MATLAB,
para graficar color=['y';'b';'k';'m';'c';'r';'g'];
m=1000; %Masa del sistema (Este puede tomar cualquier valor
>= 0 ) T=0.4:dT:3; %Rango de periodos para evaluar el espectro
k=m*(2*pi./T).^2; %Clculo de la rigidez para cada periodo
c=2*ddd*(2*pi./T)*m; %Clculo de la viscosidad para cada periodo
%Carga de los datos del acelerograma del registro de Constitucin
registro=load('Constitucin.txt');
%El registro se encuentra en [g], se pasa a [m/s^2]
registro=registro*9.81;
%Se mide el largo de datos del registro x=length(registro);
%Se obtiene el incremento de fuerza del registro, restando cada
punto del
registro con su anterior dato, y todo ello multiplicado por la
masa df=m*(-registro(2:x,:)+registro(1:x-1)); %deltaF = - m *
g(t)
dt=0.005; %Paso de tiempo del registro para Constitucin
%Clculo de la rigidez efectiva, se crea un vector del mismo
tamao que
la cantidad de periodos a evaluar
K=k+3/dt*c+6/dt^2*m*ones(1,length(T));
%Valores iniciales para ingresar al while fs=0.2*m*9.8; %Valor
dado para poder ingresar al while fy=0.2*m*9.8*ones(1,length(T));
%Fluencia inicial de 0,2*W j=0;%Iniciacin del contador
%Se crea un proceso repetitivo while, que seguir funcionando
mientras algn fs alcance el valor de fluencia en algn punto del
registro de la respuesta
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
while sum(max(abs(fs))~=fy)~=length(T); %Solo se saldr del
while, si
todos los valores de fs en valor absoluto, son menores a la
fluencia
evaluada
j=j+1; %Contador %Para la primera iteracin, la fluencia fue
iniciada afuera del while if j~=1;
fy=fy+dfy*m*9.8*ones(1,length(T)); %Incrementar Fy en 0,2*W end
%Iniciacin de matrices de posicin, velocidad, aceleracin y fs,
en que cada columna representa un periodo y cada fila representa un
instante de tiempo de la respuesta
d=zeros(length(registro),length(T)); v=d; a=v; fs=a; %Condiciones
iniciales del acelergrafo d(1,:)=-0.011/100; v(1,:)=-0.144/100;
%Clculo de la aceleracin inicial del acelergrafo
a(1,:)=(-m*registro(1)*ones(1,length(T))-c.*v(1,:)-k.*d(1,:))/m;
%fs inicial fs(1,:)=0; %Primer fs con las condiciones iniciales
fs(2,:)=k.*d(1,:);
%Newmark inelstico for i=1:x-1;%Ir recorriendo cada instante
delta t %Clculo del incremento de fuerza
dF=df(i)+c.*(3*v(i,:)+dt/2*a(i,:))+m*(6/dt*v(i,:)+3*a(i,:));
%El fs inicial es dado segn las condiciones iniciales, fuera
del
for, los siguientes se calculan, segn las condiciones del paso
anterior if i~=1; %Funcin por tramos, si fs + k*du en valor
absoluto, es menor a la fluencia, el nuevo fs ser fs + k*du, sino,
tomar el valor de fy si fs + k*du es positivo o -fy si es
negativo
fs(i+1,:)=(fs(i,:)+k.*dd).*(abs(fs(i,:)+k.*dd)fy(j))-fy(j)*(fs(i,:)+k.*dd
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
end %Se obtiene el mximo valor de posicin en valor absoluto para
cada
periodo Sd=max(abs(d));
%Clculo del Pseudo Espectro de Aceleracin
PSa=Sd.*((2*pi)./T).^2;
%Grfica PSa v/s T para cada fluencia, de tal manera que cada
curva,
quede con un %color distinto y/o grosor de lnea distinto. Notar
que los espectros %se dividen por g, para que queden en unidades de
[g] figure(1) if j=14 && j=7 && j=21 &&
j=28 && j=35 && j=42 && j
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
',num2str(0.2+7*dfy)]),char(['Fy/W =
',num2str(0.2+8*dfy)]),char(['Fy/W =
',num2str(0.2+9*dfy)]),char(['Fy/W =
',num2str(0.2+10*dfy)]),char(['Fy/W
= ',num2str(0.2+11*dfy)]),char(['Fy/W =
',num2str(0.2+12*dfy)]),char(['Fy/W =
',num2str(0.2+13*dfy)]),char(['Fy/W
= ',num2str(0.2+14*dfy)]),char(['Fy/W =
',num2str(0.2+15*dfy)]),char(['Fy/W =
',num2str(0.2+16*dfy)]),char(['Fy/W
= ',num2str(0.2+17*dfy)]),char(['Fy/W =
',num2str(0.2+18*dfy)]),char(['Fy/W =
',num2str(0.2+19*dfy)]),char(['Fy/W
= ',num2str(0.2+20*dfy)]),char(['Fy/W =
',num2str(0.2+21*dfy)]),char(['Fy/W =
',num2str(0.2+22*dfy)]),char(['Fy/W
= ',num2str(0.2+23*dfy)]),char(['Fy/W =
',num2str(0.2+24*dfy)]),char(['Fy/W =
',num2str(0.2+25*dfy)]),char(['Fy/W
= ',num2str(0.2+26*dfy)]),char(['Fy/W =
',num2str(0.2+27*dfy)]),char(['Fy/W =
',num2str(0.2+28*dfy)]),char(['Fy/W
= ',num2str(0.2+29*dfy)]),char(['Fy/W =
',num2str(0.2+30*dfy)]),char(['Fy/W =
',num2str(0.2+31*dfy)]),char(['Fy/W
= ',num2str(0.2+32*dfy)]),char(['Fy/W =
',num2str(0.2+33*dfy)]),char(['Fy/W =
',num2str(0.2+34*dfy)]),char(['Fy/W
= ',num2str(0.2+35*dfy)]),char(['Fy/W =
',num2str(0.2+36*dfy)]),char(['Fy/W =
',num2str(0.2+37*dfy)]),char(['Fy/W
= ',num2str(0.2+38*dfy)]),char(['Fy/W =
',num2str(0.2+39*dfy)]),char(['Fy/W =
',num2str(0.2+40*dfy)]),char(['Fy/W
= ',num2str(0.2+41*dfy)]),char(['Fy/W =
',num2str(0.2+42*dfy)]),char(['Fy/W =
',num2str(0.2+43*dfy)]),char(['Fy/W
= ',num2str(0.2+44*dfy)]),char(['Fy/W =
',num2str(0.2+45*dfy)]),char(['Fy/W =
',num2str(0.2+46*dfy)]),char(['Fy/W
= ',num2str(0.2+47*dfy)]),char(['Fy/W =
',num2str(0.2+48*dfy)]),char(['Fy/W =
',num2str(0.2+49*dfy)]),char(['Fy/W
= ',num2str(0.2+50*dfy)]),char(['Fy/W =
',num2str(0.2+51*dfy)]),char(['Fy/W =
',num2str(0.2+52*dfy)]),char(['Fy/W
= ',num2str(0.2+53*dfy)]),char(['Fy/W =
',num2str(0.2+54*dfy)]),1)
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
Superposicin modal
Plantear las ecuaciones del movimiento del marco de acero de un
vano y cinco pisos analizado en clase, pero considerando las vigas
flexuralmente deformables y columnas axial-flexuralmente
deformables; suponer que todas las columnas tienen el mismo momento
de inercia I=9230cm4 y rea 62cm2, y las vigas un momento de inercia
I=12250cm4 mayor, que el primer piso es de 4m de altura y los
restantes de 3.5m de altura; y que el vano es de 7.5m de luz. Las
masas de los pisos, excepto el ltimo, son todas iguales, la del
ltimo es solo el 65% de una de ellas, y se supone que estn
concentradas a nivel de cada piso. Plantear la ecuacin condensando
los grados de libertad no asociados a masas (los grados de libertad
inerciales son solamente los 5 desplazamientos laterales de los
pisos).
a) Determinar las formas modales, y calibrar la razn entre
rigidez y masas de modo que el primer modo tenga un perodo 0.2s.
Determinar la matriz de amortiguamiento de manera que este sea
clsico, con 5% de amortiguamiento en todos los modos.
b) Obtener la respuesta a la excitacin de la componente ux del
registro de Melipilla del
terremoto de 1985 (obtenerla del archivo Melip.m) a) integrando
directamente con ode23 b) integrando directamente con aceleracin
constante c) mediante superposicin modal con 2, 3 y 5 modos
(integrando cada modo independientemente en la forma que
quiera)
c) Determinar la estimacin CQC del mximo momento flector en la
base de columna del primer piso, el mximo del esfuerzo axial de la
columna, y el mximo de una combinacin lineal del momento y el
esfuerzo axial (los mismos valores de los coeficientes de la
combinacin).
d) Integrar la ecuacin:
22 gy y y u
considerando gu como el ux del registro de Melipilla del
terremoto de 1985 del archivo
rec_melip.mat, y para los 5 valores de correspondientes a las
frecuencias modales del marco de un vano y cinco pisos y obtener de
esas respuestas los mximos que deberan ser valores de las
correspondientes ordenadas espectrales. Aplicar superposicin modal
espectral CQC para estimar los mximos de: a) El desplazamiento del
primer piso b) El desplazamiento del quinto piso c) El
desplazamiento relativo de entrepiso del tercer piso d) El corte
basal e) El corte del tercer entrepiso
Comparar con los resultados de usar las coordenadas modales
obtenidas para calcular los mximos exactos.
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
a) Matriz de Rigidez
Se requiere obtener la matriz de rigidez de un edificio de 5
pisos compuesto por columnas y vigas.
Las vigas se considerarn flexurablemente deformables y las
columnas axial-flexurablemente
deformables. De esta manera los grados axiales de las vigas no
se consideraran, utilizando una
matriz de rigidez reducida para vigas en posicin horizontal que
no incluye los trminos axiales,
mientras que la matriz de rigidez de cada columna contiene todos
los trminos.
Para mayor facilidad en el desarrollo se consideraran primero
los grados de libertad que
representan el desplazamiento lateral de cada piso, para luego
considerar el resto. De esta forma
los primero cinco trminos de la matriz de rigidez resultante
sern los que se usarn para
determinar la respuesta a nivel de piso debido al registro.
La siguiente figura indica los grados de libertad globales
considerados para el edificio de 5 pisos.
Vigas
La matriz de rigidez local se obtiene no considera los grados de
libertad axiales, por lo que el
elemento queda como lo indica la figura:
Considerando la matriz elemental para una viga horizontal y
tomando en cuenta slo los 4 grados
de libertad locales indicados, la matriz de rigidez local del
elemento viga se expresa como
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
2 2
3
2 2
6 3 6 3
3 2 32
6 3 6 3
3 3 2
c vv
L L
L L L LE Ik
L LL
L L L L
Columnas
En relacin a la matriz de rigidez de la columna, se consideran
todos los grados de libertad de la
matriz de rigidez elemental. De esta forma, se tiene que el
elemento columna se expresa en
coordenadas locales como:
Considerando los grados de libertad locales de la columna, la
matriz de rigidez local del elemento
columna se expresa como
3 2 3 2
2 2
3 2 3 2
2 2
12 0 6 12 0 6
0 0 0 0
6 0 4 6 0 2
12 0 6 12 0 6
0 0 0 0
6 0 2 6 0 4
c c c c c c c c
i i i i
c c c c
i i
c c c c c c c c
i i i i
c
c c c c c c c c
i i i i
c c c c
i i
c c c c c c c c
i i i i
E I E I E I E I
h h h h
E A E A
h h
E I E I E I E I
h h h hk
E I E I E I E I
h h h h
E A E A
h h
E I E I E I E I
h h h h
Se debe hacer la diferencia sobre la altura del primer piso con
la del resto de los pisos, para lo cual
se generarn matrices de rigidez para el primer piso y para el
resto. Todas las vigas tienen las
mismas propiedades, por lo cual no se har diferencia con las
matrices de rigidez de stas.
Los valores a utilizar son
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
22038.902 29000ctonf
E ksicm
412250vI cm 750vL cm
262cA cm 49230cI cm
400 ,
350 ,i
cm parael primer pisoh
cm parael restodelos pisos
0.05i
Una vez realizado lo anterior, es necesario establecer la
relacin entre los grados de libertad
locales y globales. Para ello se enumeran los elementos, con la
finalidad de establecer los vectores
de conectividad que permitan ensamblar la matriz de rigidez del
sistema. La figura que se indica a
continuacin establece la numeracin de los elementos. Se
requieren 5 vectores de conectividad
para las 5 vigas y 10 vectores de conectividad para las 10
columnas.
El procedimiento descrito a continuacin se puede estandarizar
utilizando indexacin, como
aparece en el Captulo de Anlisis Estructural del tutorial, pgina
23. Resolucin respuestas a la
excitacin de la componente ux del registro de Melipilla
-
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012
USM Campus Santiago RevB // Ricardo Bustamante H.
% Matrices de rigidez barras
% vigas
kv=2*Ec*Iv/L^3*[6 3*L -6 3*L;
3*L 2*L^2 -3*L L^2;
-6 -3*L 6 -3*L;
3*L L^2 -3*L 2*L^2];
% columnas
EA=Ec*Ac; EI=Ec*Ic;
Kcp1 =
[12*EI/hp1^3,0,-6*EI/hp1^2,-12*EI/hp1^3,0,-6*EI/hp1^2;
0,EA/hp1,0,0,-EA/hp1,0;
-6*EI/hp1^2,0,4*EI/hp1,6*EI/hp1^2,0,2*EI/hp1;
-12*EI/hp1^3,0,6*EI/hp1^2,12*EI/hp1^3,0,6*EI/hp1^2;
0,-EA/hp1,0,0,EA/hp1,0;
-6*EI/hp1^2,0,2*EI/hp1,6*EI/hp1^2,0,4*EI/hp1];
Kcp2 =
[12*EI/hp2^3,0,-6*EI/hp2^2,-12*EI/hp2^3,0,-6*EI/hp2^2;
0,EA/hp2,0,0,-EA/hp2,0;
-6*EI/hp2^2,0,4*EI/hp2,6*EI/hp2^2,0,2*EI/hp2;
-12*EI/hp2^3,0,6*EI/hp2^2,12*EI/hp2^3,0,6*EI/hp2^2;
0,-EA/hp2,0,0,EA/hp2,0;
-6*EI/hp2^2,0,2*EI/hp2,6*EI/hp2^2,0,4*EI/hp2];
% Matrices de compatibilidad para cada barra
% vigas
a1=zeros(4,25); a1(1,6)=1; a1(2,7)=1; a1(3,8)=1; a1(4,9)=1;
a2=zeros(4,25); a2(1,10)=1; a2(2,11)=1; a2(3,12)=1;
a2(4,13)=1;
a3=zeros(4,25); a3(1,14)=1; a3(2,15)=1; a3(3,16)=1;
a3(4,17)=1;
a4=zeros(4,25); a4(1,18)=1; a4(2,19)=1; a4(3,20)=1;
a4(4,21)=1;
a5=zeros(4,25); a5(1,22)=1; a5(2,23)=1; a5(3,24)=1;
a5(4,25)=1;
% columnas
a6=zeros(6,25); a6(4,1)=-1; a6(5,6)=1; a6(6,7)=1;
a7=zeros(6,25); a7(4,1)=-1; a7(5,8)=1; a7(6,9)=1;
a8=zeros(6,25); a8(1,1)=-1; a8(2,6)=1; a8(3,7)=1; a8(4,2)=-1;
a8(5,10)=1; a8(6,11)=1;
a9=zeros(6,25); a9(1,1)=-1; a9(2,8)=1; a9(3,9)=1; a9(4,2)=-1;
a9(5,12)=1; a9(6,13)=1;
a10=zeros(6,25); a10(1,2)=-1; a10(2,10)=1; a10(3,11)=1;
a10(4,3)=-1; a10(5,14)=1; a10(6,15)=1;
a11=zeros(6,25); a11(1,2)=-1; a11(2,12)=1; a11(3,13)=1;
a11(4,3)=-1; a11(5,16)=1; a11(6,17)=1;
a12=zeros(6,25); a12(1,3)=-1; a12(2,14)=1; a12(3,15)=1;
a12(4,4)=-1; a12(5,18)=1; a12(6,19)=1;
a13=zeros(6,25); a13(1,3)=-1; a13(2,16)=1; a13(3,17)=1;
a13(4,4)=-1; a13(5,20)=1; a13(6,21)=1;
a14=zeros(6,25); a14(1,4)=-1; a14(2,18)=1; a14(3,19)=1;
a14(4,5)=-1; a14(5,22)=1; a14(