Matlab Para Dinamica de Estructuras
-
Upload
marianarenis -
Category
Documents
-
view
245 -
download
0
Transcript of Matlab Para Dinamica de Estructuras
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 1/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
UNIVERSIDAD TÉCNICAFEDERICO SANTA MARÍA
Apuntes de MatLab para Dinámica de Estructuras
USM Campus Santiago
II Semestre 2012
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 2/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
NOCIONES BÁSICAS 3
NOMENCLATURAS Y COMANDOS 3 GRÁFICOS 11
PROGRAMACIÓN 15
DECLARACIÓN DE FUNCIÓN 15
DECLARACIÓN DE FOR SIMPLE 15
DECLARACIÓN DE FOR ANIDADA 16
DECLARACIÓN DE WHILE 16
DECLARACIÓN DE IF 17
DECLARACIONES INTERACTUANDO 17
ANÁLISIS ESTRUCTURAL 18
CASO DE ANÁLISIS 18
MATRIZ DE RIGIDEZ 18
VIGAS 19
COLUMNAS 20
MATRIZ DE RIGIDEZ GLOBAL 20
CONDENSACIÓN ESTÁTICA 26
DINÁMICA ESTRUCTURAL 28
SUBRUTINA ‘ODE45’ 28
FACTORES DE AMPLIFICACIÓN DINÁMICA (FAD) 31
RESPUESTA ANTE CARGA “RAMPA-ESCALÓN” 37
RESPUESTAS A PARTIR DE UN REGISTRO DE ACELERACIONES 39
ESPECTRO LINEAL DE ACELERACIÓN 43
ESPECTRO NO LINEAL DE ACELERACIÓN 54
SUPERPOSICIÓN MODAL 65
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 3/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Nociones básicas
Nomenclaturas y comandos
La interfaz al ejecutar MatLab es la que se detalla a continuación.
Se aprecia que aparece el indicador de comandos >>, el cual indica que el programa está listo para
recibir instrucciones.
MATLAB trabaja esencialmente con matrices numéricas rectangulares. La manera más fácil de
entrar matrices pequeñas es enumerando los elementos de ésta de tal manera que:
los elementos estén separados por blancos ó comas.
los elementos estén 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 aritméticas. Encierra argumentos de funciones en
forma usual
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 4/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
, Separador de elementos de una matriz, argumentos de funciones y declaraciones en
líneas con declaraciones múltiples
; Termina filas de una matriz, separador de declaraciones
% Permite agregar un comentario comentario
Entonces un ejemplo sería ingresar una matriz de dimensiones 3x3, con números correlativos,como: [ 1 2 3; 4 5 6; 7 8 9 ]. El resultado, como lo entrega el programa, se indica a continuación:
ans =1 2 34 5 67 8 9
Ahora bien, se puede guardar esta matriz bajo un nombre. Para ello se tiene que ingresar elnombre 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 34 5 6
7 8 9
Usualmente no se requiere que el programa entregue los resultados. Para no presentar el valor dela 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 también se puede generar como:
A = [1 2 34 5 67 8 9];
Si se requiere una fila o columna de la matriz A, o tal vez un valor particular de la matriz o añadiruna fila adicional, se realiza lo siguiente:
se requiere el segundo vector columna: A(:,2)ans =
258
se requiere el primer vector fila: A(1,:)ans =
123
se requiere el valor del elemento en la fila 2 y columna 3: A(2,3)ans =
8
se requiere añadir una fila con los valores b=[ 10 11 12], redefiniendo A: A=[A;b]:A =
1 2 34 5 67 8 910 11 12
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 5/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
También se pueden generar vectores con instrucciones. Para ello, una alternativa es definirx=[1:5]. Esta instrucción permite generar un vector fila de 5 columnas. También se puede omitirlos paréntesis cuadrados para simplificar el proceso. Así, se obtiene:
x =1 2 3 4 5
El vector transpuesto se genera agregando el carácter apóstrofe (‘) a la variable, es decir, x’ ans =12345
Se pueden crear vectores generando una secuencia, con un punto de inicio y uno de término. Unejemplo es definir un vector cuyo valor inicial sea 5 y que disminuya su valor en una unidad hastallegar a 1. De esta manera, x=5:-1:1
x =5 4 3 2 1
Con anterioridad se evidenció la posibilidad de pedir valores específicos a la matriz. De igualmanera, se pueden reasignar valores dentro de la matriz sin necesidad de cambiarla. Para ello setienen las siguientes opciones:
cambiar un valor en específico de manera directa: A(3,3)=10A = [1 2 3
4 5 67 8 10];
cambiar un valor en específico de manera directa: A(3, 3) = A(1, 3) + A(3, 1)A = [1 2 3
4 5 67 8 10];
Ahora bien, un índice también 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 submatricescontiguas y no contiguas.
Por ejemplo, suponga que B es una matriz 12 por 12. Entonces B(1:5, 2) especifica la submatriz 5 x1, ó 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 cuatrocolumnas.
Las operaciones suma (+) y resta (-) son definidas para las matrices siempre y cuando éstas tenganla misma dimensión. El resultado de la operación es por defecto almacenado en la variable ans, lacual se puede almacenar en otra variable. Así, definiendo A=[1 2 3;4 5 6]; y B=[6 5 4; 3 2 1]; sepuede originar C=A+B.
C =7 7 77 7 7
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 6/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
La operación de multiplicación de matrices (*) está definida siempre que el número de columnasde la primera matriz sea igual al número de filas de la segunda matriz. De esta manera, D=A*B sóloes posible si D=A’B.
D =18 13 827 20 1336 27 18
La operación de multiplicación de matriz con vector es un caso especial de la multiplicación de
matrices.
En la operación de división de matrices, si A es una matriz cuadrada no-singular, entonces A\B yB/A corresponden a la multiplicación 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 solución a A * X = B
X = B/A es una solución a X * A = B
>> A = [3,4,7;5,2,-9;-1,13,3]A =
3 4 75 2 -9
-1 13 3
>> B = [6;1;8]B =
618
>> x=A\B x =0.51230.58480.3034
>> x=inv(A)*Bx =
0.51230.58480.3034
Notar que A\B es definido cuando B tiene la misma cantidad de filas que A. Si A es cuadrada, elmétodo usado para su resolución es la Eliminación Gaussiana. El resultado es una matriz con las
mismas dimensiones que B. Ahora bien, si A no es cuadrada, el procedimiento se factorizautilizando la ortogonalización de Householder con pivoteo de columnas.
Para dividir los valores de una matriz por un escalar se requiere utilizar un operador que le indiqueal arreglo que el denominador debe dividir cada valor. Así, si A=[1 2;3 4] y se requiere dividir cadavalor por 2, la operación es: A=[1 2;3 4]./2
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 7/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
A =0.5000 1.00001.5000 2.0000
Para generar matrices o arreglos con valores aleatorios existe un comando llamado rand(). Losvalores están entre cero y uno. De esta manera se tiene:
matriz de dimensiones 3x3 con rand(3)A =0.8235 0.9502 0.38160.6948 0.0344 0.76550.3171 0.4387 0.7952
vector de dimensiones 3x1 con rand(3,1)A =
0.18690.48980.4456
matriz de nxn de ceros: zeros(n)
>> A=zeros(4)A =
0 0 0 00 0 0 00 0 0 00 0 0 0
matriz de mxn de ceros: zeros(m,n)
>> B=zeros(3,4)B =
0 0 0 0
0 0 0 00 0 0 0
regresa el número 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 =
3n =
4
matriz de nxn de unos: ones (n)
>> C=ones(4)C =
1 1 1 11 1 1 1
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 8/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
1 1 1 11 1 1 1
matriz de mxn de unos: ones(m,n)
>> D=ones(3,4)D =
1 1 1 11 1 1 11 1 1 1
matriz identidad de nxn: eye(n)
>> E=eye(4)E =
1 0 0 00 1 0 0
0 0 1 00 0 0 1
matriz identidad de mxn: eye(m,n)
>> F=eye(3,4)F =
1 0 0 00 1 0 00 0 1 0
matriz transpuesta: transpose(A)
>> A=rand(3)A =
0.8147 0.9134 0.27850.9058 0.6324 0.54690.1270 0.0975 0.9575
>> B=transpose(A)B =
0.8147 0.9058 0.12700.9134 0.6324 0.09750.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 =
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 9/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
-1.9958 3.0630 -1.16902.8839 -2.6919 0.6987
-0.0291 -0.1320 1.1282
valores propios de una matriz: eig(A)
>> eig(A)ans =
-0.18791.75270.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 00 1.7527 00 0 0.8399
obtiene la diagonal de una matriz: diag(D)
>> diag(D)ans =
-0.18791.7527
0.8399
agrupar de forma creciente: sort(v)
>> x=rand(5,1)x =
0.69480.31710.95020.03440.4387
>> v=sort(x)
v = 0.03440.31710.43870.69480.9502
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 10/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
obtener la suma de los términos de un arreglo: sum(x)
w=sum(x)w =
2.4353
obtener el máximo valor de un arreglo: max(x)
y=max(x)y =
0.9502
obtener el mínimo valor de un arreglo: min(x)
>> y=min(x)y =
0.0344
redondea los términos: round(x)
>> r=round(x) %redondea por defecto al entero más cercano ó 0 r =
10100
>> r=round(10*x) %idem anterior pero ahora se multiplica el arreglo por 10 r =
73
1004
Los operadores relacionales son< menor que<= menor o igual a> mayor que>= mayor o igual a== igual a=~ no igual a
Comando de limpieza de variables-
clear
-
clear all-
clc
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 11/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Gráficos
La estructura básica del gráfico se compone por un comando que crea una gráfica de vectores ocolumnas de matrices a través de ‘plot’. Una vez ingresado el comando y los vectores a
representar gráficamente es posible agregar descripciones al gráfico, a través de títulos,encabezamientos de ejes, líneas segmentadas o texto mediante etiquetas. De igual manera sepuede asignar un color específico al trazado y/o con algún estilo. Cabe destacar que por defecto elgráfico tiene una línea 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
Tipología línea
. punto o circulo x cruz + signo '+'
* estrella s cuadrado d diamante v triangulo
- línea solida : segmentado -. línea - punto -- línea - línea
Se considerará el siguiente ejemplo para ilustrar el uso de la función plot y sus etiquetas. Seax=1:8;y=2.^x;
plot(x) plot(y)
Si x es un vector, plot(x) produce una gráfica lineal de los elementos de x versus el índice de estos.Si especifica dos vectores como argumentos, plot(x, y) produce una gráfica de y versus x como seindica en la figura.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 12/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Para introducir las etiquetas es necesario colocar (,) después del vector y abrir una llamado a laetiqueta, ingresando el llamado entre (‘’) plot(y,’m’) plot(y,’mx’)
El gráfico de la izquierda grafica el vector ‘y’, agregándole color magenta a la línea trazada. El
gráfico de la derecha mantiene el color magenta pero cambia la línea por cruces; es decir, añadeuna característica adicional insertando una nueva etiqueta de manera continua.
plot(y,’d’) plot(y,’k--’)
El gráfico de la izquierda grafica el vector ‘y’, indicando sólo los valores del vector con un símbolo
de diamante. El gráfico de la derecha segmenta el gráfico y le cambia el color a negro.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 13/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Para agregar títulos al gráfico
plot(y,'k.-'); title('Gráfico y(x)'); plot(y,'k.-'); title('Gráfico y(x)'); xlabel('Eje X');ylabel('Eje Y');
De manera adicional se puede agregar cambios en los espesores de línea. Algunas de las etiquetasson:
,'LineWidth',2, espesor de linea en 2
,'MarkerEdgeColor','r', dato en color rojo
,'MarkerSize',30, tamaño dato
Así, se puede generar gráficos como:
plot(y,'k.','LineWidth',2,'MarkerEdgeColor','r','MarkerSize',15); title('Gráfico y(x)');
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 14/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Para graficar de manera simultánea dos gráficos se puede utilizar un comando que permitaagregar tantas funciones cómo 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
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 15/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Programación
Declaración de función
La idea de es utilizar funciones predeterminadas y de uso recurrente agregando sólo una línea.
Para los casos que se verán en Dinámica de Estructuras se implementarán para:
Llamar una matriz de rigidez elemental de un elemento viga o columna
Llamar un registro
Llamar una función específica previamente creada y guardada, por ejemplo, una función
que resuelva la ecuación diferencial de movimiento mediante la integración directa con
aceleración constante
Por ejemplo, si se crea un archivo .m a través de una función (File->New->Function) se puede
agregar una matriz de rigidez de un elemento viga en posición horizontal con 6 grados de libertad,como se detalla a continuación:
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 definición. 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 00 0.0000 0.0120 0 -0.0000 0.01200 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.01200 0.0120 2.0000 0 -0.0120 4.0000
Declaración de FOR simple>> for i=1:101
x(i)=2*pi*(i-1)/100;end
>> y=sin(x)>> plot(x,y)
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 16/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Declaración de FOR anidada
Se utiliza cuando se posee más de 1 parámetro al cual se requiere hacer un barrido. Por ejemplo,
se puede crear una matriz de dimensiones ‘mxn’, creando cada término en función de las
dimensiones de la matriz. Así, si m=4 y n=5, se tiene
>> for i = 1:mfor j = 1:n
A(i, j) = 1/(i+j- 1);end
endA
A =1.0000 0.5000 0.3333 0.2500 0.20000.5000 0.3333 0.2500 0.2000 0.16670.3333 0.2500 0.2000 0.1667 0.14290.2500 0.2000 0.1667 0.1429 0.1250
Declaración de WHILE
Este comando permite a una o más instrucciones repetirse un número indefinido de veces, bajo elcontrol de una condición lógica. La ventaja radica en que WHILE tiene una condición de paradadefinida, mientras que otros comandos, como IF, pueden no tener la condición de parada, lo queimplica que nunca deja de buscar. Como ejemplo, suponer se desea iterar para encontrar unnúmero tal satisfaga una suma. Así,>> e=1.0;
while (1.0+e)>1.0001e=e/2.0;
end>> e
e =6.1035e-005
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 17/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Declaración de IF
Permite establecer casos particulares en los cuales si se cumple una afirmación se proceda agenerar una rutina con el valor al caso que se cumple.
if i==j rho=1;
elserho=-1end
Declaraciones interactuando
Supongamos que se tienen las frecuencias de un marco de 5 pisos ordenadas como un vectorcolumna llamado w, tal que
w =31.4159
100.5183183.8185276.7465360.8302
Si se requiere realizar un análisis CQC (Complete Quadratic Combination, para combinar losresultados modales por la técnica de Combinación Cuadrática Completa descrita por Wilson, DerKiureghian, y Bayo (1981)), se debe determinar el coeficiente de acoplamiento modal, cuya esexpresión corresponde a
2 3 3
2 22 2 2
8
4
i j i j
ij
i j i j i j
La expresión obliga a ocupar los comandos anteriormente vistos para generar los coeficientes deacoplamiento 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
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 18/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Análisis estructural
Caso de análisis
Suponga que deben calcular el desplazamiento de un edificio de 5 pisos. Ese edificio tiene ciertascualidades 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 más 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 deformación 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 condensación 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 condición estática.
Matriz de Rigidez
Se requiere obtener la matriz de rigidez de un edificio de 5 pisos compuesto por columnas y vigas.
Las vigas se considerarán flexurablemente deformables y las columnas axial-flexurablemente
deformables.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 19/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 términos de la matriz de rigidez resultante serán los que se usarán 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 sólo 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 sólo 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 v
v
L L
L L L L E I k
L L L
L L L L
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 20/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Columnas
En relación 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 generarán 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
2
2038.902 29000c
tonf E ksi
cm
412250v I cm 750v
L cm
2
62c A cm 4
9230c I cm
400 ,
350 ,i
cm parael primer pisoh cm parael resto delos pisos
Matriz de rigidez global
Realizado lo anterior, será necesario establecer la relación entre los grados de libertad locales y
globales. Para ello se enumeran los elementos, con la finalidad de establecer los vectores de
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 21/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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
continuación establece la numeración 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 capítulo 1, se definirán 2 funciones para llamar las matrices de rigidez de la
viga y de la columna. Así, creando un nuevo archivo de extensión .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];
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 22/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 parámetros 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 (método de rigidez directa). Esto se implementará mediante vectores
que relacionarán el grado de libertad de cada elemento con una ubicación 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 específico 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 añadan 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] tendría sólo 3 grados de libertad, lo que
genera un problema de dimensiones al generar la matriz. De esta forma, la manera más simple degenerar una solución es añadiendo 5 grados de libertad en la base. De esta forma, se tienen 30
grados de libertad.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 23/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Así,
Kg=zeros(30); %definición de una matriz de 25x25 para ir completando
%Para el primer pisop=[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]; %posición de la columna izquierdaKg(p,p)=Kcp1+Kg(p,p); %aporte de la columna izquierda p=[26;29;30;1;8;9]; %posición de la columna derecha Kg(p,p)=Kcp1+Kg(p,p); %aporte de la columna derecha
%Para el segundo pisop=[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]; %posición de la columna izquierda Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierdap=[1;8;9;2;12;13]; %posición de la columna derecha Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
%Para el tercer pisop=[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]; %posición de la columna izquierda Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda p=[2;12;13;3;16;17]; %posición 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]; %posición de la columna izquierda Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda p=[3;16;17;4;20;21]; %posición de la columna derecha Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
%Para el quinto pisop=[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]; %posición de la columna izquierda
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 24/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierdap=[4;20;21;5;24;25]; %posición de la columna derecha Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 25/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Matriz de rigidez global Kg queda como se indica la figura
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 26/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Condensación estática
Ahora bien, mediante condensación estáticamente se debe reducir la matriz a los grados de
libertad asociados al desplazamiento horizontal del marco. En este caso se condensarán 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 ba K K K K K
Se condensará para la submatriz de dimensiones 25x25, considerando que sólo se agregaron estos
términos 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.35832.6659 -10.0323 15.4597 -9.8125 2.0987-0.4655 2.6500 -9.8125 14.1538 -6.59040.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 relación al procedimiento anterior.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 27/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 28/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Dinámica estructural
Subrutina ‘ode45’ ‘ode45’ corresponde a un método adaptativo; es una combinación de un método Runge-Kutta de
ordenes cuatro y cinco de cinco y seis evaluaciones respectivamente. La combinación de estos
métodos permite estimar el error en la aproximación numérica en cada paso y así la subrutina
puede ajustar el largo de paso "h" en forma dinámica para mantener el error global menor de una
tolerancia especificada por el usuario. Requiere del nombre de la función ‘f ’, los tiempos inicial y
final, la condición inicial, la tolerancia para cada iteración, y un indicador si la rutina imprime o no
los resultados calculados. Normalmente este indicador se toma como cero que es su valor por
omisión.
A continuación se detalla un ejemplo que permite visualizar su uso. En específico, se resolverá la
ecuación general de movimiento para un caso particular.
Sea la ecuación del movimiento:
100,sin)()()( 0 t t F t kxt xct xm
Considerar el siguiente caso:
m = 10; c = 0,05; k = 50; Fo = 5
Las condiciones iniciales serán las siguientes:
0)0( x
0)0( x
Para usar ode45 con ecuaciones de 2do orden, como es el caso de la ecuación general de
movimiento:
10
00
)(
)(
)(
xt x
xt x
t F kx xc xm
se debe convertir la ecuación en un sistema equivalente de primer orden, haciendo y1 = x, y2 = x’:
m
t F yc yk y
y y
)(
'
212
21
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 29/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Con
102
001
)(
)(
xt y
xt y
Luego se debe crear y guardar un archivo .m que retornará una función evaluada en cada t.
Para el caso del ejemplo, se procedería 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 definirlos 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 análisis 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 cálculo según el criterio de error deeste proceso, x será una matriz de dos columnas, de las cuales, la primera irá definiendo laposición y la segunda la velocidad según el vector t.
Con lo cual, si se desea mostrar el resultado en un gráfico, se implementará el siguiente código:
hold on plot(t,w(:,1),'b') plot(t,w(:,2),'r') xlabel('tiempo') ylabel('Posición y Velocidad') title('Solución EDO') legend('Posición','Velocidad',3) grid on hold off
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 30/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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
Posición
y
Velocidad
Solución EDO
Posición
Velocidad
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 31/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Factores de Amplificación Dinámica (FAD)
En el análisis de sistemas dinámicos, un punto que importa conocer es la amplificación que sufre la
respuesta del sistema ante solicitaciones con respecto a la respuesta estática. De esta manera, se
define el Factor de amplificación dinámico de un sistema, para una cierta razón de
amortiguamiento, como el cociente entre la amplitud de la respuesta (para una cierta excitación)
y el desplazamiento (velocidad, aceleración) estático. Para poder definir este parámetro, es
necesario conocer la frecuencia que posee la excitación 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:
t p F t kut uct um sin)()()( 0
Rescrita en forma canónica:
t pm
F t ut ut u sin)()(2)( 02
La solución a esta ecuación diferencial de segundo orden, esta dada por una parte homogénea y
otra particular. Resolviendo, se obtiene la siguiente solución para un sistema amortiguado de un
grado de libertad:
t p
w
p pm
F t u sin
21
1)(
22
22
0
2
1
1
2
tan
p
p
Donde:
: Razón de amortiguamiento crítico.
:0 F Amplitud de la carga.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 32/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
: p Frecuencia angular de la carga.
: st
u Desplazamiento estático del sistema.
Luego, el factor de amplificación dinámica para desplazamiento se define numéricamente de lasiguiente manera:
22
2
21
1
w
p p
FADu
Es posible conocer también, los factores de amplificación dinámica para la velocidad y la
aceleración:
Diferenciando la respuesta del sistema, se tiene que la velocidad es de la forma:
t p
w
p p
p
m
F t u cos
21
)(2
22
0
De esta manera, el FAD para velocidad es:
22
2
21
w
p p
p
FADv
La aceleración:
t p
w
p p
p
m
F t u sin
21
)(
2
2
2
2
0
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 33/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
De esta manera, el FAD para aceleración es:
222
2
21
w
p p
p
FADa
Por ejemplo, sea: m=100 [kg],
m
N k
3102.5
Se realiza un barrido de la frecuencia de la carga desde 0 hasta 100 [rad/s] y un barrido de la razón
de amortiguamiento crítico comenzando en 0.1 hasta 1.1. Implementando el siguiente código en
MATLAB se obtiene la gráfica que ilustra el FAD para desplazamiento, velocidad y aceleración:
%FACTORES DE RESPUESTA DINÁMICA (FAD)
%Para una excitación 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 deamortiguamiento... %Seam=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')
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 34/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 35/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 36/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 37/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Respuesta ante carga “Rampa-Escalón”
Considerando que se tiene una excitación como
st parakN
st parakN t t F
5.0100
5.0200)(
Considerando un sistema de 1 GL, se tiene que la EDM es
st t para
st t parat t t kut uct um
d
d
d
100
100
)()()(
La respuesta por tanto debe separarse en 2 tramos.
i)
Respuesta en la fase de carga lineal creciented
t t
La solución es
t t t et
ut u
d
d
d
t w
d
st
2sin
12cos
2)(
2
ii)
Respuesta en la fase de carga lineal creciented
t t
La solución es
st d d
d
st d d
d d st d
t t wut t
ut ut ut t ut uet u d
sin
)()(cos)()(
Donde )(),(d d
t ut u corresponde a las condiciones iniciales provistas por la fase anterior.
De esta manera, se obtiene la respuesta, que de manera gráfica, permite apreciar que en la fasede carga creciente la respuesta del sistema crece linealmente hasta la posición de equilibrio
estático, siendo igual para distintas razones de amortiguamiento. Luego, oscila en torno a ella
hasta mantenerse en dicha posición.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 38/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
%RESPUESTA OSCILACIONES FORZADAS %Para una excitación 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 & t<=tr))+(Fo*(t>tr & t<=inf))); ho=@(t)(H(t)/m); for T=0.1:0.01:20;
wn=2*pi/T; xst=Fo/(m*wn^2); y=@(t,y)([y(2);ho(t)-2*d*wn*y(2)-wn^2*y(1)]); i=i+1; [t,w]=ode45(y,[0 20],[0 0]); TT(i)=T; xmax(i)=max(abs(w(:,1)))/xst;
figure(1) plot(0.5./TT,xmax,'g') title('Espectro de Respuesta, \xi=0.05') xlabel('t_d/T') ylabel('R_d=u_m_á_x/u_s_t') legend('Rampa-Escalón') grid on
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 39/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 )(t u g
representa la
aceleración basal discretizada en pasos de st , se requiere resolver el problema utilizando elmétodo de Newmark con aceleración lineal (es una alternativa). Esto permite determinar el la
relación “tiempo-historia” de la estructura, tanto a nivel de desplazamientos, como de velocidad y
aceleración.
La EDM es
)()()(2)()()()()(
0)()()()(
2 t ut ut ut ut mut kut uct um
t kut uct ut um
g
g
g
Ahora bien, implementando “Newmark con aceleración lineal”, se tiene
)(3)(
6)(
2)(3
632
t ut ut
mt ut
t uc F umt
ct
K
Con condiciones iniciales
0)0(
0)0(
u
u
m
u K uc F u
)0()0()0()0(
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 40/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
De esta forma, para un sistema de período T=0.1 (s) y razón de amortiguamiento de 02.0 , se
obtiene el gráfico para el desplazamiento lateral u(t).
%Time-History para SDOF mediante Newmark con aceleración 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;%Aceleración 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)
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 41/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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('Aceleración [g]');
subplot(2,1,2); plot(t,d*100,'b'); legend('T= 0.1 [s], \xi=0.02') xlabel('Tiempo [s]'); ylabel('Deformación u(t) [cm]');
El espectro de respuesta para un registro se calcula para un barrido de períodos en un oscilador de
un grado de libertad y para una razón de amortiguamiento fija. Los espectros se definen de la
siguiente manera:
max)(t uS d
d v
S T
S
2
d a S T
S
22
%Espectro de Respuesta Lineal para SDOF mediante Newmark con aceleraciónlineal
%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);
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 42/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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;%Aceleración 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]');
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 43/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Espectro Lineal de Aceleración
Obtener el Espectro Lineal de Aceleración, utilizando un algoritmo de Newmark, para unaestructura 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: Constitución E-O; n = 2: Concepción 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 continuación, se indican las especificaciones y condiciones iniciales de los registros:
Registro Δt [s] N° datosDesplazamiento Inicial
Acelerógrafo [cm]
Velocidad Inicial
Acelerógrafo [cm/s]
Constitución E-O 0,005 28.657 -0,011 -0,144
Concepción 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 Aceleración se modela un sistema de un grado de libertad de la
siguiente forma:
Con la ecuación diferencial de este problema como:
t F t ut K t ut ct ut m
donde:
m: Masa del sistema en el tiempo t en [kg]
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 44/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
ü( t): Aceleración del sistema en el tiempo t en [m/s2]c: Viscosidad del sistema en el tiempo t en [N·s/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): Posición del sistema en el tiempo t en [m]F(t): Fuerza externa sobre el sistema en el tiempo t en [N]
Si se evalúa el sistema en un tiempo t Δt:
t t F t t ut K t t ut ct t ut m
Notar que se consideran las propiedades masa, viscosidad y rigidez, constantes durante elintervalo Δt, tomándose para el análisis, el valor de ellas en el tiempo t (principio del intervalo).
Y luego se resta la expresión anterior con la ecuación para el tiempo t, donde:
t ut t ut u
t ut t ut u
t ut t ut u
t F t t F t F
La ecuación de equilibrio incremental se obtiene para el intervalo de tiempo Δt:
t F t ut K t ut ct ut m
donde:m(t): Masa del sistema al inicio del intervalo en [kg]Δü (t): Incremento de la aceleración del sistema en el intervalo en [m/s2]c(t): Viscosidad del sistema al inicio del intervalo en [N·s/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 posición del sistema en el intervalo en *m+ ΔF(t): Incremento de la fuerza externa sobre el sistema en el intervalo en *N+
La anterior ecuación será la que se resolverá para cada intervalo Δt, para ella se conocen los
siguientes datos provenientes de la resolución del intervalo anterior: m(t), c(t), K(t), ü(t), u (t), u(t);
además de ser dato ΔF(t), ya que son datos F(t) y F(t Δt). Quedando como incógnitas Δü( t ),Δu (t) y Δu(t), o sea ü(t Δt), u (t Δt), u(t Δt).
En cada paso Δt la solución realizando una integración directa es:
d ut ut t u
t t
t
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 45/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
d ut ut t u
t t
t
Dado que no se conoce como cambia la aceleración ni la velocidad durante el intervalo, se suponeun tipo de variación, usándose para este ejemplo, la de Aceleración Lineal con β = 1/6 del Método
de Newmark:
Realizando los reemplazos respectivos:
t ut t ut u
t ut t ut u
t ut t ut u
Se obtiene:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 46/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Si de despejan Δu (t) y Δü(t) en función de Δu(t), quedan las siguientes expresiones:
t ut
t ut u
t
t u
2
33
t ut ut
t ut
t u 3
66
2
Reemplazando en la ecuación de equilibrio incremental:
t F t ut K t ut
t ut ut
t ct ut ut
t ut
t m
23
33
66
2
Ordenando:
t ct ut
t ut mt ut ut
t F t ut K t ct
t mt
233
6362
Con:
t K t ct
t mt
t K
36
2 como la rigidez efectiva
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 47/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
t ct ut
t ut mt ut ut
t F t F
233
6 como el incremento de fuerza
efectiva
Se obtiene el valor para Δu(t):
t K
t F t u
Algoritmo Método β = 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 ecuación de diferencial del problema:
000000
0m
u K uc F u
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
t K t ct
t mt
t K
36
2
t ct ut
t ut mt ut ut
t F t F
233
6
3)
Calcular Δu( t ) y con ello se calculan Δu (t) y Δü(t)
t K
t F t u
t ut
t ut u
t
t u
2
33
t ut u
t
t u
t
t u
366
2
4) Calcular ü( t Δt ), u ( t Δt ), u( t Δt ):
t ut ut t u
t ut ut t u
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 48/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
t ut ut t u
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 método de Newmark, tiene límites de convergencia y estabilidad, según el Δt y el periodo T de
la estructura:
Límite de convergencia:39,0
39,0 t
T T t
Límite de estabilidad:55,0
55,0 t
T T t
Dado el Δt en el problema, debería considerarse el límite de convergencia como criterio deelección del periodo más pequeño a evaluar.
En el caso del problema la fuerza externa se puede expresar en función de la aceleración delregistro üg( t ), que viene con sus datos en [g], por lo cual, la fuerza externa se define como:
81,9 t umt F g
Como el problema es un sistema lineal, las propiedades de éste son constantes en todo momento:
mt m
k t K
mk t c
2
, con ξ amortiguamiento del sistema
Se debe realizar el Método β = 1/6 de Newmark para cada periodo. Luego se obtiene el mayor
valor absoluto de aceleración para cada periodo y con estos datos se construye el gráfico Espectro
v/s Periodo de la respuesta.
Los espectros de respuesta normalmente entregan el espectro en unidades de [g], por lo cual, se
debería dividir la máxima aceleración absoluta, por 9,81.
Notar que el Método β = 1/6 de Newmark tiene criterio de convergencia, por lo cual, el mínimo
periodo a evaluar, debiese ser39,0t T , luego asignar un paso ojalá menor igual a 0,05 [s] en
incrementación del periodo, hasta evaluar T = 3 [s].
A continuación, se presentan los periodos mínimos a usar para cada registro y las condiciones
iniciales del problema:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 49/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Registro Δt [s] T mínimo a
usar[s]
Desplazamiento Inicial
Acelerógrafo [m]
Velocidad Inicial
Acelerógrafo [m/s]
Constitución E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144
Concepción 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 función de m y T:2
2
T mk
Todo lo anterior, hay que hacerlo para ξ = 0%; ξ = a% y ξ = b%.
Alguno de los espectros de respuesta se adjuntan a continuación, 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 Constitución Dirección E-O
= 0
= 0.03
= 0.055
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 50/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
0 0.5 1 1.5 2 2.5 3
0
1
2
3
4
5
6
7
8
Sa
(g)
Periodo (s)
Espectro Registro Concepción Dirección 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 Dirección E-O
= 0
= 0.03
= 0.055
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 51/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
0 0.5 1 1.5 2 2.5 3
0
2
4
6
8
10
12
14
Sa
(g)
Periodo (s)
Espectro Registro Curicó Dirección E-O
= 0
= 0.03
= 0.055
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 52/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
%ESPECTRO LINEAL DE ACELERACION DF=11;%Dígito Verificador dT=0.005;%Intervalo de periodos
%Constitución 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
%Concepción 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('Constitución.txt'); %registro=fscanf(fid,'%f',[28657,1]);
% fid=fopen('Concepción N-S.txt'); % registro=fscanf(fid,'%f',[18001,1])/981; % fclose(fid); % fid=fopen('Concepción.txt','wt'); % fprintf(fid,'%f\n',registro); % fclose(fid);
registro=load('Constitución.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;
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 53/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 Constitución Dirección E-O') legend('\xi = 0',char(['\xi = ',num2str(ddd(2))]),char(['\xi =',num2str(ddd(3))]),1)
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 54/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Espectro No Lineal de Aceleración
Se modela el mismo sistema del ejemplo anterior, consistente de un grado de libertad de la
siguiente forma:
La ecuación diferencial de este problema es la siguiente:
t F t f t ut ct ut m s
Donde:
m: Masa del sistema en el tiempo t en [kg]ü( t ): Aceleración del sistema en el tiempo t en [m/s2]
c: Viscosidad del sistema en el tiempo t en [N·s/m]
u ( t ): Velocidad del sistema en el tiempo t en [m/s]
f s( 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
y s
f k t u f k t u
f k t u
si si
si
f f
k t u
t f
donde:
k: Rigidez del sistema en [N/m]
fy: Tensión de fluencia en [N]
Si se evalúa el sistema en un tiempo t Δt:
t t F t t f t t ut ct t ut m s
* Se consideran las propiedades masa, viscosidad y rigidez, constantes durante el intervalo Δt,
tomándose para el análisis, el valor de ellas en el tiempo t (principio del intervalo).
Y luego se resta la expresión anterior con la ecuación para el tiempo t:
donde:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 55/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
t ut t ut u
t ut t ut u
t f t t f t ut K s s
t F t t F t F
Se obtiene la ecuación de equilibrio incremental para el intervalo de tiempo Δt:
t F t ut K t ut ct ut m
con:
m(t): Masa del sistema al inicio del intervalo en [kg]
Δü(t): Incremento de la aceleración del sistema en el intervalo en *m/s2]
c(t): Viscosidad del sistema al inicio del intervalo en [N·s/m]
Δu (t): Incremento de la velocidad del sistema en el intervalo en [m/s]
K(t): Rigidez según ley elastoplástica en el instante t en [N/m]
Δu(t): Incremento de la posición del sistema en el intervalo en *m+ ΔF(t): Incremento de la fuerza externa sobre el sistema en el intervalo en [N]
La anterior ecuación será la que se resolverá para cada intervalo Δt, para ella se conocen los
siguientes datos provenientes de la resolución del intervalo anterior: m(t), c(t), K(t), ü(t), u (t), u(t);además de ser dato ΔF(t), ya que son datos F(t) y F(t Δt). Quedando como incógnitas Δü( t ),
Δu (t) y Δu(t), o sea ü(t Δt), u (t Δt), u(t Δt).
En cada paso Δt, la solución realizando una integración directa es:
d ut ut t u
t t
t
d ut ut t u
t t
t
Dado que no se conoce como cambia la aceleración ni la velocidad durante el intervalo, se supone
un tipo de variación, usándose para este ejemplo, la de Aceleración Lineal con β = 1/6 del Método
de Newmark:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 56/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Realizando los reemplazos respectivos:
t ut t ut u
t ut t ut u
t ut t ut u
Se obtiene:
Si de despejan Δu (t) y Δü t) en función de Δu (t), quedan las siguientes expresiones:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 57/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
t ut
t ut u
t
t u
2
33
t ut u
t
t u
t
t u
366
2
Reemplazando en la ecuación de equilibrio incremental:
t F t ut K t ut
t ut ut
t ct ut ut
t ut
t m
23
33
66
2
Ordenando:
t ct ut
t ut mt ut ut
t F t ut K t ct
t mt
233
636
2
Con:
t K t ct t mt t K
36
2 ; Rigidez efectiva
t ct ut
t ut mt ut ut
t F t F
233
6; Incremento de fuerza efectivo
Se obtiene el valor para Δu( t ):
t K
t F t u
Algoritmo Método β = 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 ecuación de diferencial del problema, también con ello, se obtienen la
fuerza interna f s:
000000
0m
u K uc F u
000 u K f 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 ), f s( t - Δt ), se calculan f s( t ), F , K en el
siguiente orden:
t ct ut
t ut mt ut ut
t F t F
233
6
y s
y s
f k t t ut t f
f k t t ut t f
si
sik t K
0
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 58/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
y s
y s
y s
y
y s
f k t t ut t f
f k t t ut t f
f k t t ut t f
si
si
si
f
f
k t t ut t f
t f
t K t c
t t m
t t K
36
2
3) Calcular Δu( t ) y con ello se calculan Δ u ( t ) y Δü( t ).
t K
t F t u
t ut
t ut u
t
t u
2
33
t ut u
t
t u
t
t u
366
2
4) Calcular ü( t Δt ), u ( t Δt ), u( t Δt ):
t ut ut t u
t ut ut t u
t ut ut t u
5) Repetir desde el paso 2, ocupando ü(t Δt), u (t Δt), u(t Δt), f s(t) como los ü(t), u (t), u(t),
f s(t - Δt) del siguiente intervalo.
El método de Newmark, tiene límites de convergencia y estabilidad, según el Δt y el periodo T de
la estructura:
Límite de convergencia:39,0
39,0 t
T T t
Límite de estabilidad:55,0
55,0 t
T T t
Dado el Δt en el problema, debería considerarse el límite de convergencia como criterio de
elección del periodo más pequeño a evaluar.
En el caso del ejemplo, la fuerza externa se puede expresar en función de la aceleración del
registro üg (t), que viene con sus datos en [g], por lo cual, la fuerza externa se define como:
81,9 t umt F g
Al ser este un sistema elastoplástico, las propiedades del sistema son las siguientes:
mt m
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 59/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
y s
y s
f k t t ut t f
f k t t ut t f
si
sik t K
0
mk t c 2
y s
y s
y s
y
y s
f k t t ut t f
f k t t ut t f
f k t t ut t f
si
si
si
f
f
k t t ut t f
t f
Con ξ Amortiguamiento del sistema y f y, la tensión de fluencia:
Dado que se pide el espectro no lineal de aceleración, se debe realizar el Método β = 1/6 de
Newmark para cada periodo, luego se obtiene el mayor valor absoluto de aceleración para cadaperiodo, con estos datos, se construye el gráfico Espectro v/s Periodo de la respuesta.
Los espectros de respuesta normalmente entregan el espectro en unidades de [g], por lo cual, se
debería dividir la máxima aceleración absoluta, por 9,81.
Notar que el Método β = 1/6 de Newmark tiene criterio de convergencia, por lo cual, el mínimo
periodo a evaluar, debiese ser39,0
t T
, luego asignar un paso ojalá menor igual a 0,05 [s] en
incrementación del periodo, hasta evaluar T = 3 [s].
A continuación, se presentan los periodos mínimos a usar para cada registro y las condiciones
iniciales del problema:
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 60/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Registro Δt [s] T mínimo a
usar[s]
Desplazamiento Inicial
Acelerógrafo [m]
Velocidad Inicial
Acelerógrafo [m/s]
Constitución E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144
Concepción 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 función de m y T:2
2
T mk
La obtención del espectro para el ejemplo se realiza para cada tensión de fluencia desde
f y = 0,2 * W, con un paso de B * W, hasta la tensión de fluencia con la que el sistema se comporteen forma lineal, es decir, hasta que en todos los puntos evaluados f s < f y.
El resultado para el registro de Constitución se presenta en el gráfico adjunto. No se parte de
períodos bajos puesto que la respuesta para intervalos de mucha rigidez distorsiona la
visualización de la respuesta para el rango de análisis usual.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 61/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
%ESPECTRO LINEAL DE ACELERACION
%Resetea todas las variables
DF=1; %Dígito 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 están definidos por defecto con una letra en MATLAB, con el fin degraficar 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.50];
%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; %Cálculo de la rigidez para cada periodo c=2*ddd*(2*pi./T)*m; %Cálculo de la viscosidad para cada periodo
%Carga de los datos del acelerograma del registro de Constitución registro=load('Constitución.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 delregistro 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 Constitución
%Cálculo de la rigidez efectiva, se crea un vector del mismo tamaño quela 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;%Iniciación del contador
%Se crea un proceso repetitivo while, que seguirá funcionando mientras algún fs alcance el valor de fluencia en algún punto del registro de la respuesta
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 62/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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, sitodos los valores de fs en valor absoluto, son menores a la fluenciaevaluada
j=j+1; %Contador %Para la primera iteración, 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
%Iniciación de matrices de posición, velocidad, aceleración 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 acelerógrafo d(1,:)=-0.011/100; v(1,:)=-0.144/100; %Cálculo de la aceleración inicial del acelerógrafo 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 inelástico for i=1:x-1;%Irá recorriendo cada instante delta t
%Cálculo 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 según las condiciones iniciales, fuera del
for, los siguientes se calculan, según las condiciones del paso anterior if i~=1;
%Función 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>fy(j))-fy(j)*(fs(i,:)+k.*dd<-fy(j));
end
%Cálculo del incremento de u, o sea, du dd=dF./(K-k.*(abs(fs(i+1,:))==fy(j))); %Cálculo del incremento de v, o sea, dv
dv=3/dt*dd-3*v(i,:)-dt/2*a(i,:); %Cálculo del incremento de a, o sea, da da=6/dt^2*dd-6/dt*v(i,:)-3*a(i,:);
%Cálculo de las condiciones para el siguiente paso a(i+1,:)=a(i,:)+da; v(i+1,:)=v(i,:)+dv; d(i+1,:)=d(i,:)+dd;
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 63/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
end %Se obtiene el máximo valor de posición en valor absoluto para cada
periodo Sd=max(abs(d));
%Cálculo del Pseudo Espectro de Aceleración PSa=Sd.*((2*pi)./T).^2;
%Gráfica PSa v/s T para cada fluencia, de tal manera que cada curva,
quede con un %color distinto y/o grosor de línea distinto. Notar que los espectros %se dividen por g, para que queden en unidades de [g] figure(1) if j<=6;
plot(T,PSa/9.81,color(j+1))% Curvas con líneas de coloresdefinidos en MATLAB y con grosor de línea estándar = 1
elseif j>=14 && j<=20; plot(T,PSa/9.81,color(j-13),'LineWidth',2)% Curvas con líneas de
colores definidos en MATLAB y con grosor de línea = 2 elseif j>=7 && j<=13;
plot(T,PSa/9.81,'Color',colores(j-6,:))% Curvas con líneas decolores definidos por usuario y con grosor de línea estándar = 1
elseif j>=21 && j<=27; plot(T,PSa/9.81,'Color',colores(j-20,:),'LineWidth',2)% Curvas
con líneas de colores definidos por usuario y con grosor de línea = 2 elseif j>=28 && j<=34;
plot(T,PSa/9.81,color(j-27),'LineWidth',2.5)% Curvas con líneasde colores definidos en MATLAB y con grosor de línea = 2,5
elseif j>=35 && j<=41; plot(T,PSa/9.81,'Color',colores(j-34,:),'LineWidth',2.5)% Curvas
con líneas de colores definidos por usuario y con grosor de línea = 2,5 elseif j>=42 && j<=48;
plot(T,PSa/9.81,color(j-41),'LineWidth',3)% Curvas con líneas de
colores definidos en MATLAB y con grosor de línea = 3 else plot(T,PSa/9.81,'Color',colores(j-48,:),'LineWidth',3)% Curvas
con líneas de colores definidos por usuario y con grosor de línea = 3 end %Comando para que las gráficas se superpongan en el mismo gráfico y
no se borren cada vez que se grafica encima hold on
end % Se introduce reseña para el eje y ylabel('PSa (g)') % Se introduce reseña para el eje x xlabel('Periodo (s)') % Se introduce el título, acá se pueden pasar variables numéricas a
texto: % Ej: char(['texto',num2str(variable numérica),'texto']) title(char(['Pseudoespectro Constitución Dirección E-O para distintastensiones de fluencia, con \xi = ',num2str(ddd*100),'%'])) %Leyenda que determina formato de línea para cada fluencia legend(char(['Fy/W = ',num2str(0.2)]),char(['Fy/W =',num2str(0.2+1*dfy)]),char(['Fy/W = ',num2str(0.2+2*dfy)]),char(['Fy/W =',num2str(0.2+3*dfy)]),char(['Fy/W = ',num2str(0.2+4*dfy)]),char(['Fy/W =',num2str(0.2+5*dfy)]),char(['Fy/W = ',num2str(0.2+6*dfy)]),char(['Fy/W =
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 64/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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)
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 65/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Superposición modal
Plantear las ecuaciones del movimiento del marco de acero de un vano y cinco pisos analizado enclase, pero considerando las vigas flexuralmente deformables y columnas axial-flexuralmentedeformables; 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 dealtura 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 deellas, y se supone que están concentradas a nivel de cada piso.
Plantear la ecuación condensando los grados de libertad no asociados a masas (los grados delibertad inerciales son solamente los 5 desplazamientos laterales de los pisos).
a)
Determinar las formas modales, y calibrar la razón entre rigidez y masas de modo que elprimer modo tenga un período 0.2s. Determinar la matriz de amortiguamiento de manera
que este sea clásico, con 5% de amortiguamiento en todos los modos.
b)
Obtener la respuesta a la excitación de la componente ux del registro de Melipilla delterremoto de 1985 (obtenerla del archivo Melip.m)a) integrando directamente con ode23b) integrando directamente con aceleración constantec) mediante superposición modal con 2, 3 y 5 modos (integrando cada modoindependientemente en la forma que quiera)
c) Determinar la estimación CQC del máximo momento flector en la base de columna delprimer piso, el máximo del esfuerzo axial de la columna, y el máximo de una combinación
lineal del momento y el esfuerzo axial (los mismos valores de los coeficientes de lacombinación).
d)
Integrar la ecuación:22 g y y y u
considerando g
u 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 máximos que deberíanser valores de las correspondientes ordenadas espectrales. Aplicar superposición modalespectral CQC para estimar los máximos de:a)
El desplazamiento del primer piso
b)
El desplazamiento del quinto pisoc)
El desplazamiento relativo de entrepiso del tercer pisod)
El corte basale)
El corte del tercer entrepiso
Comparar con los resultados de usar las coordenadas modales obtenidas para calcular losmáximos “exactos”.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 66/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 considerarán 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 posición horizontal que no incluye los términos axiales,
mientras que la matriz de rigidez de cada columna contiene todos los términos.
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 términos de la matriz de rigidez resultante serán los que se usarán 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 sólo los 4 grados
de libertad locales indicados, la matriz de rigidez local del elemento viga se expresa como
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 67/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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 L E I k
L L L
L L L L
Columnas
En relación 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 cualse generarán 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
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 68/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
2
2038.902 29000c
tonf E ksi
cm
412250v I cm 750v
L cm
262c A cm 4
9230c
I cm
400 ,
350 ,i
cm parael primer pisoh
cm parael resto delos pisos
0.05i
Una vez realizado lo anterior, es necesario establecer la relación 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
continuación establece la numeración 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 continuación se puede estandarizar utilizando indexación, como
aparece en el Capítulo de Análisis Estructural del tutorial, página 23. Resolución respuestas a la
excitación de la componente ‘ux’ del registro de Melipilla
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 69/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica 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(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 Kv=a1'*kv*a1 + a2'*kv*a2 + a3'*kv*a3 + a4'*kv*a4 + a5'*kv*a5; %aporte de las vigas Kc=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=Kv+Kc; %matriz de rigidez completa
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 70/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Ahora bien, se debe condensar estáticamente la matriz para reducirla a los grados de libertadasociados al desplazamiento horizontal del modelo. La idea es que los grados de libertad dentrode la matriz de rigidez se pueden separar entre sí. En este caso se ‘aislarán’ los asociados al
desplazamiento lateral del modelo.
0aa ab
ba bb
K K u F K K
0aa ab
ba bb
K u K F
K u K
La rigidez lateral queda expresada como
1
aa ab bb ba K K K K K
K =
14.7948 -9.8816 2.6659 -0.4655 0.0756-9.8816 15.4632 -10.0323 2.6500 -0.35832.6659 -10.0323 15.4597 -9.8125 2.0987-0.4655 2.6500 -9.8125 14.1538 -6.59040.0756 -0.3583 2.0987 -6.5904 4.7790
a=[1:5]; %grados de libertad horizontales b=[6:15]; %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 libertadlaterales con masa asociada
Matriz de Masa
Se requiere determinar la matriz de masa tal que el período fundamental sea igual a 2T seg .
Las masas están concentradas a nivel de piso y son iguales a ‘m’, salvo en el techo, en la cual es
igual a ‘0.65m’. De esta forma la matriz de masa es
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 0.65
M m
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 71/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
La ecuación de movimiento en coordenadas generalizadas permite determinar las frecuencias del
edificio. Resolviendo la ecuación, se tiene
..
..
..
2
12
0 , ( )
( ) ( ) 0
( )0
( )
( ) ( ) 0
M q K q con q f t v
M f t v K f t v
f t M v K v
f t
m G f t y f t K y
m y G K y
Los valores propios aparecen multiplicados por m al resolver la ecuación 12m y G K y
.
Se debe imponer que el periodo sea 2T seg , lo que en términos de la frecuencia equivale a
10w . Es decir, al resolver para 1
G K
, el valor de la primera frecuencia es1 10w m .
Como se busca determinar la masa, se debe resolver para m=1 y reemplazar1w resultante en la
expresión determinada con anterioridad.
2
1
10
w
m
% Matriz M
G=eye(5);G(5,5)=0.65;[V,D]=eig(G\K);w=sqrt(diag(D));T=2*pi./w;[T,p]=sortT(T);V=V(:,p);w=w(p);m=(0.1*w(1)/pi)^2;M=m*G;G(5,5)=1/0.65;
invM=G/m;
Lo anterior permite determinar la masa, con2
-4 s2.6711·10 tonf
cmm
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 72/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
M =1.0e-003 *0.2671 0 0 0 0
0 0.2671 0 0 00 0 0.2671 0 00 0 0 0.2671 00 0 0 0 0.1736
Matriz de Amortiguamiento
Se sabe que* T
T
C V C V
I V M V
Lo anterior permite determinar la matriz de amortiguamiento
* T C M V C V M
Con * 2 i iC
Resolución de frecuencias y modos de vibración
Teniendo todo lo anterior se procede a resolver para las frecuencias y modos de vibración del
edificio. De esta forma, se tiene:
[V,D]=eig(K,M);w=sqrt(diag(D));T=2*pi./w;[T,p] = sortT(T);V=V(:,p);w=w(p);Mm=V'*M*V;for i=1:5
norm=(1/Mm(i,i))^0.5;
V(:,i)=norm*V(:,i);end Km=V'*K*V;Cm=diag(2*bi*w);C=M*V*Cm*V'*M;e1=ones(5,1);vMasapormodo=(V'*M*e1).*(V'*M*e1)/(e1'*M*e1);
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 73/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
T =0.20000.06250.03420.02270.0174
w =31.4159100.5183183.8185276.7465360.8302
V =9.2713 -25.8557 35.7330 -34.9753 22.1162
20.2458 -37.3297 13.1592 25.0694 -33.744329.7331 -19.7283 -32.5955 11.7072 35.650136.4124 14.2420 -16.9718 -34.9833 -26.516939.9604 40.9438 38.0930 28.5840 14.7720
Mm =1.0e-003 *
0.6262 -0.0000 -0.0000 0.0000 0.0000-0.0000 0.5965 0.0000 0.0000 -0.0000-0.0000 0.0000 0.6891 0.0000 -0.00000.0000 0.0000 0.0000 0.8171 -0.0000
0.0000 -0.0000 -0.0000 -0.0000 0.7868
Km =1.0e+005 *
0.0099 -0.0000 -0.0000 0.0000 0.0000-0.0000 0.1010 0.0000 0.0000 -0.00000. 0000 0.0000 0.3379 0.0000 -0.00000.0000 0.0000 0.0000 0.7659 -0.00000.0000 -0.0000 -0.0000 -0.0000 1.3020
Masapormodo =
0.84990.10160.03330.01220.0029
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 74/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
b)
Respuesta del registro
a)
Integrando directamente con ‘ode23’
Para la resolución mediante la función ‘ode23’ se utiliza el procedimiento visto en clases,
consistente en reducir el grado de la ecuación diferencial para luego, de manera matricial,
resolver el problema.
1
2
( ) ( )( )
( ) ( )
x t q t x t
x t q t
tal que
1 1
1 1 2( ) ( ) ( ) x t M C x t M K x t
Se re-escribe la ecuación como
( ) x t A x b
1 1
( )00
g u e M C M K
x t x I
A=[-invM*C -invM*K; eye(5) zeros(5)];
B=[-ones(5,1) ; zeros(5,1)];xo=zeros(10,1); t1=0; t2=160; %cond. iniciales y tiempo integración registro tsp=[t1; t2];[t_ode,x_ode]=ode23('shearbuilding',tsp,xo);
La funcion Shearbuilding corresponde a:
function xdot = shearbuilding(t,x)global A B S DT Nd = t/DT; i = floor(d)+1;if i < Ns = S(i)*(i-d)+S(i+1)*(1+d-i);else s = 0;end xdot = A*x + B*s;
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 75/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
b)
Integrando directamente con aceleración constante
El procedimiento de aceleración constante consiste en expresar la ecuación diferencial de
movimiento en pasos asociados al registro. Así, se tiene que la ecuación
i i i i
g M q C q K q u M e
Se puede re-escribir como
K q Q
Con
2
2 4 K K C M
t t
4
2 2i i
g Q u M e M q M C q
t
1i iq q q
1 2i iq q q
t
1
2
4 2i i iq q q q
t t
[t_ac,x_ac,xd_ac,xdd_ac] = consacc(K,M,C,e1,S,DT,t2);
La función Consacc corresponde a:
function [t,q,qd,qdd] = consacc(K,M,C,e1,ug,dt,tt)n = size(K,1); m = length(ug);K = K + 2*C/dt + 4*M/dt^2; R = chol(K);Cm = 2*C + 4*M/dt; Me = M*e1;if tt>m*dtm = tt/dt;
ug(m) = 0;end t = zeros(1,m);q = zeros(n,m); qd = zeros(n,m); qdd = zeros(n,m);for i=1:m-1dQ =-(ug(i+1)-ug(i))*Me + 2*M*qdd(:,i) + Cm*qd(:,i);z = R'\dQ; dq = R\z;
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 76/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
t(i+1) = dt + t(i);q(:,i+1) = dq + q(:,i);qd(:,i+1) = 2*dq/dt - qd(:,i);qdd(:,i+1) = 4*dq/dt^2 -4*qd(:,i)/dt - qdd(:,i);end
c)
mediante superposición modal con 2, 3 y 5 modos
El procedimiento de superposición modal supone encontrar soluciones ligadas a las formas
de vibrar, por lo que se puede encontrar para cada modo ‘i’ lo siguiente:
:i
V vector propio del modo ‘i’
:i
frecuencia de vibración del modo ‘i’
:i
amortiguamiento del modo ‘i’
*
* 2
*
*
1
2
T
i i i
T
i i i i
T
i g i g i
T
i i i i i
M v M v
K v K v
Q u L u v M e
C v M v
Lo anterior se reemplaza en la ecuación diferencial de movimiento para el modo ‘i’ como:
T T T T i i i i i i g iv M v y v C v y v K v y u v M e
22
i i i g i y y y u L
Para obtener la respuesta completa se requiere la combinación modal sumando todos los
modos ‘i’. De esta forma,
1
( ) ( )n
i
i
q t y t V
for i=1:5[t_sm,y_sm(i,:),yd_sm(i,:),ydd_sm(i,:)] =consacc(Km(i,i),1,Cm(i,i),fi(:,i)'*M*e1,S,DT,t2);end
x_sm_2modo=fi(:,1:2)*y_sm(1:2,:);% con 2 modos x_sm_3modo=fi(:,1:3)*y_sm(1:3,:);% con 3 modos x_sm_5modo=fi(:,1:5)*y_sm(1:5,:);% con 5 modos
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 77/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Resolución gráfica de respuestas a la excitación de la componente ‘ux’ del registro de Melipilla
Para el contraste de las soluciones se determinará el desplazamiento del último piso para el
registro de Melipilla, para luego contrastarlos entre sí utilizando colores para diferenciar losdesplazamientos obtenidos por los distintos métodos.
Los gráficos indican el desplazamiento del último piso (piso 5), en la ordenada del gráfico, en el
tiempo, en la abscisa del gráfico.
Integrando directamente con ‘ode23’ figure; plot(t_ode,x_ode(:,10), 'g'); title('ode23');
Integrando directamente con aceleración constante figure(2); plot(t_ac,x_ac(5,:), 'c'); title('aceleracionconstante');
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 78/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Mediante superposición modal con 2 modos
figure(3); plot(t_sm,x_sm_2modo(5,:), 'k'); title('sp 2 modos');
Mediante superposición modal con 3 modosfigure(4); plot(t_sm,x_sm_3modo(5,:), 'b'); title('sp 3 modos');
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 79/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 80/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Mediante superposición modal con 5 modosfigure(5); plot(t_sm,x_sm_5modo(5,:), 'r'); title('sp 5 modos');
Contraste entre los métodos
En el gráfico que se indica a continuación se bosquejan todas las soluciones enumeradas con
anterioridad, superpuestas en un solo gráfico.
Por inspección se aprecia que no hay diferencia notable en la comparación de los métodos, por loque se puede aseverar que existen diferencias numéricas muy menores entre los métodos.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 81/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
c)
Valores por CQC
Se requiere determinar los desplazamientos modales que son los valores de entrada para realizarel CQC. Los desplazamientos modales se definen como la multiplicación entre la forma modal ‘i’,
expresada como vector, por el valor del máximo desplazamiento producto de un registro dadopara el período (o frecuencia) asociada a la forma modal, expresada como un escalar. De estaforma se tienen que determinar los valores del espectro de desplazamiento asociados a lasfrecuencias (períodos) de las formas modales.
El espectro de desplazamiento se obtiene a partir de un oscilador de un grado de libertad, del cualse requerirá el máximo desplazamiento para una frecuencia dada del oscilador. Así, se tiene que
1 1
( )( ,1) (:, ) ( )
( ( ))
n n
i d
i i
L i x a V i S i
abs L i
Donde
( ,1) : x a desplazamiento modal máximo asociado a los grados de libertad activos ‘a’ del modo ‘i’
(:,1) :V vector de vectores propios
( ) :d
S i desplazamiento obtenido del espectro de desplazamiento asociado al modo ‘i’
( ):
( ( ))
L i
abs L i
inclusión del signo de las masas modales consideradas en la integración de la respuesta
Ahora bien, se hace alusión a los grados activos. Esto se refiere a que se debe condensar
estáticamente la matriz para reducirla a los grados de libertad asociados de los desplazamientos
horizontales del modelo.
0
aa ab
ba bb
K K a F
K K b
0aa ab
ba bb
K a K b F
K a K b
La rigidez asociada a los términos no activos queda expresada como
1
b bb ba K K K
1
1 1( ,1) ( ,1)
n n
i bb ba ii i
x b K K x a
De esta manera se pueden determinar los esfuerzos requeridos al multiplicar los términos de lamatriz de rigidez local del elemento por los desplazamientos modales correspondientes. Basta conasociar los desplazamientos de los grados de libertad al vector de desplazamientos modales.
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 82/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
a=[1:5];b=[6:25];for i=1:5
x=zeros(25,1);L(i)=V(:,i)'*M*e1;Sd(i)= max(abs(y_sm(i,:)))*L(i)/abs(L(i));x(a,1)=-V(:,i)*Sd(i); %desplaz. laterales maximos de cada forma modal x(b,1)=inv(Kbb)*Kba*x(a,1); %desplaz. laterales maximos de cada forma modal vi=[1;6;7];Fzas_izq(:,i)=Kcp1*[zeros(3,1);x(vi,1)];vd=[1;8;9];Fzas_der(:,i)=Kcp1*[zeros(3,1);x(vd,1)];
end
Notar que hay un signo menos en los desplazamientos laterales máximos de cada forma modalpuesto que la definición del elemento columna se definió en sentido contrario al supuesto para el
desplazamiento, por lo que los desplazamientos son en sentido contrario y requieren de un signomenos.
Con lo anterior se debe aplicar la combinación CQC. Esta se hace para un esfuerzo en particular, esdecir, si se requiere conocer el momento en la base de la columna izquierda se obtienen losmomentos de en la base de la columna izquierda asociados a cada modo ‘i’ para luego aplicar el
operadorij
, definido el coeficiente de acoplamiento modal, cuya es expresión corresponde a
2 3 3
2 22 2 2
8
4
i j i j
ij
i j i j i j
El valor requerido se desprende de la ecuación:
2
1 1
n n
ij i j
i j
r r r
Donde
:ir corresponde al valor del esfuerzo mediante CQC. Notar que se debe aplicar la raíz cuadrada.
:ir corresponde al valor del esfuerzo para el modo i, a combinar con el coeficiente de
acoplamiento modal.
Mizq_cqc=0;Mder_cqc=0;Nizq_cqc=0;Nder_cqc=0;N_Mizq_cqc=0;N_Mder_cqc=0;for i=1:5
for j=1:5
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 83/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
if i==jrho=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
Mizq_cqc=Mizq_cqc+rho*Fzas_izq(3,i)*Fzas_izq(3,j);% Momento en la base columna izquierdaprimer piso Mder_cqc=Mder_cqc+rho*Fzas_der(3,i)*Fzas_der(3,j);% Momento en la base columna derechaprimer piso Nizq_cqc=Nizq_cqc+rho*Fzas_izq(2,i)*Fzas_izq(2,j);% Carga axial en la base columna izquierdaprimer piso Nder_cqc=Nder_cqc+rho*Fzas_der(2,i)*Fzas_der(2,j);% Carga axial en la base columna derechaprimer piso N_Mizq_cqc=N_Mizq_cqc+rho*Fzas_izq(3,i)*Fzas_izq(2,j);% Interaccion N-M en la base columna
izquierda primer piso N_Mder_cqc=N_Mder_cqc+rho*Fzas_der(3,i)*Fzas_der(2,j);% Interaccion N-M en la base columnaizquierda primer piso end end Mizq_cqc=Mizq_cqc^0.5;Mder_cqc=Mder_cqc^0.5;Nizq_cqc=Nizq_cqc^0.5;Nder_cqc=Nder_cqc^0.5;
De esta manera, los esfuerzos solicitados son
Columna izquierda
247.3253 · M Tf cm
2.3730 N Tf
2580.8136 · N M Tf cm
Columna derecha
247.3253 · M Tf cm
2.3730
N Tf
2580.8136 · N M Tf cm
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 84/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
d)
Superposición modal para la respuesta
Mediante superposición modal se puede obtener la respuesta para cada modo. Esto induce a
pensar que también se puede obtener la respuesta completa sumando la respuesta de cada modo.
El procedimiento de superposición modal supone encontrar soluciones ligadas a las formas de
vibrar, por lo que se puede encontrar para cada modo ‘i’ lo siguiente:
:i
V vector propio del modo ‘i’
:i
frecuencia de vibración del modo ‘i’
:i
amortiguamiento del modo ‘i’
*
* 2
*
*
1
2
T
i i i
T
i i i i
T
i g i g i
T
i i i i i
M v M v
K v K v
Q u L u v M e
C v M v
Lo anterior se reemplaza en la ecuación diferencial de movimiento para el modo ‘i’ como:
T T T T
i i i i i i g iv M v y v C v y v K v y u v M e
22
i i i g i y y y u L
Para obtener la respuesta completa se requiere la combinación modal sumando todos los modos
‘i’. De esta forma,
1
( ) ( )n
i
i
x t y t V
ti=0; tf=160; % tiempo integración registro for i=1:5
[t_sm,y_sm(i,:),yd_sm(i,:),ydd_sm(i,:)]=consacc(Km(i,i),1,Cm(i,i),1,S,DT,tf);L(i)=V(:,i)'*M*e1;
end
x_modo1=V(:,1)*y_sm(1,:); % respuesta modo 1 x_modo2=V(:,2)*y_sm(2,:); % respuesta modo 2 x_modo3=V(:,3)*y_sm(3,:); % respuesta modo 3 x_modo4=V(:,4)*y_sm(4,:); % respuesta modo 4 x_modo5=V(:,5)*y_sm(5,:); % respuesta modo 5
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 85/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
x_sm=x_modo1+x_modo2+x_modo3+x_modo4+x_modo5;% superposicion
d1_th=0;d1_max=0;d5_th=0;d5_max=0;drift3_th=0;drift3_max=0;Vb_th=0;Vb_max=0;V3_th=0;V3_max=0;
a=[1:5];b=[6:25];fin_reg=size(x_sm,2);
for i=1:fin_regx_th=zeros(25,1);x_th(a,1)=x_sm(:,i); %desplazamientos laterales maximos de cada forma modal x_th(b,1)=-inv(Kbb)*Kba*x_th(a,1);%desplazamientos pasivos maximos de cada forma modal Ftot=Kt*x_th;d1_th=x_th(1,1);if (abs(d1_max)<abs(d1_th))
d1_max=d1_th;end d5_th=x_th(5,1);if (abs(d5_max)<abs(d5_th))
d5_max=d5_th;end drift3_th=x_th(3,1)-x_th(2,1);if (abs(drift3_max)<abs(drift3_th))
drift3_max=drift3_th;end Fcp1=Kcp1*[0 0 0 -x_th(1,1) x_th(6,1) x_th(7,1)]';Fcp2=Kcp1*[0 0 0 -x_th(1,1) x_th(8,1) x_th(9,1)]';Vb_th=Fcp1(1,1)+Fcp2(1,1);if (abs(Vb_max)<abs(Vb_th))
Vb_max=Vb_th;end
Fcp3=Kcp2*[-x_th(2,1) x_th(10,1) x_th(11,1) -x_th(3,1) x_th(14,1) x_th(15,1)]';Fcp4=Kcp2*[-x_th(2,1) x_th(12,1) x_th(13,1) -x_th(3,1) x_th(16,1) x_th(17,1)]';V3_th=Fcp3(1,1)+Fcp4(1,1);if (abs(V3_max)<abs(V3_th))
V3_max=V3_th;end
end
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 86/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
Notar que como no se consideraron los grados de libertad en la base de las columnas por saberque son nulos, se tuvo que confeccionar el vector de desplazamientos de las columnas del primerpiso para luego multiplicarlo por la matriz de rigidez local de cada columna. Al realizar esto seobtienen las fuerzas y momentos sobre el elemento.
Ahora bien, para estimar por CQC el desplazamiento del primer y quinto piso, el drift del piso 3 ylos cortes basales y del tercer piso se requiere hacer una estimación mediante una combinación.Para esto se requiere determinar los desplazamientos modales que son los valores de entradapara realizar el CQC. Los desplazamientos modales se definen como la multiplicación entre laforma modal ‘i’, expresada como vector, por el valor del máximo desplazamiento producto de un
registro dado para el período (o frecuencia) asociada a la forma modal, expresada como unescalar. De esta forma se tienen que determinar los valores del espectro de desplazamientoasociados a las frecuencias (períodos) de las formas modales.
El espectro de desplazamiento se obtiene a partir de un oscilador de un grado de libertad, del cualse requerirá el máximo desplazamiento para una frecuencia dada del oscilador. Así, se tiene que
1 1
( ,1) (:, ) ( ) ( )n n
i d
i i
x a V i S i L i
Donde
( ,1) : x a desplazamiento modal máximo asociado a los grados de libertad activos ‘a’ del modo ‘i’
(:,1) :V vector de vectores propios
( ) :d
S i desplazamiento obtenido del espectro de desplazamiento asociado al modo ‘i’
( ) : L i la masa modal considerada en la integración de la respuesta
Ahora bien, se hace alusión a los grados activos. Esto se refiere a que se debe condensar
estáticamente la matriz para reducirla a los grados de libertad asociados de los desplazamientos
horizontales del modelo.
0
aa ab
ba bb
K K a F
K K b
0
aa ab
ba bb
K a K b F
K a K b
La rigidez asociada a los términos no activos queda expresada como
1
b bb ba K K K
1
1 1
( ,1) ( ,1)n n
i bb ba i
i i
x b K K x a
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 87/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Apuntes de MatLab para Dinámica de Estructuras – II Semestre 2012 – USM Campus Santiago – RevB // Ricardo Bustamante H.
De esta manera se pueden determinar los esfuerzos requeridos al multiplicar los términos de lamatriz de rigidez local del elemento por los desplazamientos modales correspondientes. Basta conasociar los desplazamientos de los grados de libertad al vector de desplazamientos modales.
a=[1:5];b=[6:25];for i=1:5
x_cqc=zeros(25,1);Sd(i)= max(abs(y_sm(i,:)));x_cqc(a,1)=-V(:,i)*Sd(i)*L(i);%desp laterales maximos de cada forma modal x_cqc(b,1)=inv(Kbb)*Kba*x_cqc(a,1);%desp pasivos maximos de cada forma modal d1(i)=x_cqc(1,1);d5(i)=x_cqc(5,1);drift3(i)=x_cqc(3,1)-x_cqc(2,1);Vb(i)=Sd(i)*(L(i)*w(i))^2;Fcp1=Kcp2*[x_cqc(2,1) x_cqc(10,1) x_cqc(11,1) x_cqc(3,1) x_cqc(14,1) x_cqc(15,1)]';
Fcp2=Kcp2*[x_cqc(2,1) x_cqc(12,1) x_cqc(13,1) x_cqc(3,1) x_cqc(16,1) x_cqc(17,1)]';V3(i)=Fcp1(1,1)+Fcp2(1,1);
end d1_cqc=0;d5_cqc=0;drift3_cqc=0;Vb_cqc=0;V3_cqc=0;
for i=1:5for j=1:5
if i==jrho=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
d1_cqc=d1_cqc+rho*d1(i)*d1(j);% desplazamiento primer piso d5_cqc=d5_cqc+rho*d5(i)*d5(j);% desplazamiento quinto piso drift3_cqc=drift3_cqc+rho*drift3(i)*drift3(j);% drift tercer piso Vb_cqc=Vb_cqc+rho*Vb(i)*Vb(j);% Carga axial en la base columna derecha primer piso V3_cqc=V3_cqc+rho*V3(i)*V3(j);% Interaccion N-M en la base columna izquierda primer piso
end end
d1_cqc=d1_cqc^0.5;d5_cqc=d5_cqc^0.5;drift3_cqc=drift3_cqc^0.5;
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 88/89
7/25/2019 Matlab Para Dinamica de Estructuras
http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 89/89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Error corte basal
error_corte_basal=(Vb_max-Vb_cqc)/Vb_max*1005.2934
Error corte tercer piso
error_corte_tercer_piso=(V3_max-V3_cqc)/V3_max*1000.1842