matlab para dinamica de estructuras

89
PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL Apuntes de MatLab para Dinámica de Estructuras   II Semestre 2012  USM Campus S antiago   RevB // Ricardo Bustamante H. UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA Apuntes de MatLab para Dinámica de Estructuras USM Campus Santiago II Semestre 2012

Upload: marianarenis

Post on 28-Feb-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Matlab Para Dinamica de Estructuras

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 

Page 3: Matlab Para Dinamica de Estructuras

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

Page 4: Matlab Para Dinamica de Estructuras

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

Page 5: Matlab Para Dinamica de Estructuras

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

Page 6: Matlab Para Dinamica de Estructuras

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

Page 7: Matlab Para Dinamica de Estructuras

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

Page 8: Matlab Para Dinamica de Estructuras

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 =

Page 9: Matlab Para Dinamica de Estructuras

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

Page 10: Matlab Para Dinamica de Estructuras

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

Page 11: Matlab Para Dinamica de Estructuras

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.

Page 12: Matlab Para Dinamica de Estructuras

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.

Page 13: Matlab Para Dinamica de Estructuras

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)');

Page 14: Matlab Para Dinamica de Estructuras

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

Page 15: Matlab Para Dinamica de Estructuras

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)

Page 16: Matlab Para Dinamica de Estructuras

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

Page 17: Matlab Para Dinamica de Estructuras

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 

Page 18: Matlab Para Dinamica de Estructuras

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.

Page 19: Matlab Para Dinamica de Estructuras

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

 

Page 20: Matlab Para Dinamica de Estructuras

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

Page 21: Matlab Para Dinamica de Estructuras

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];

Page 22: Matlab Para Dinamica de Estructuras

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.

Page 23: Matlab Para Dinamica de Estructuras

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 

Page 24: Matlab Para Dinamica de Estructuras

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 

Page 25: Matlab Para Dinamica de Estructuras

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

Page 26: Matlab Para Dinamica de Estructuras

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.

Page 27: Matlab Para Dinamica de Estructuras

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

Page 28: Matlab Para Dinamica de Estructuras

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

 

Page 29: Matlab Para Dinamica de Estructuras

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 

Page 30: Matlab Para Dinamica de Estructuras

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

 

Page 31: Matlab Para Dinamica de Estructuras

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.

Page 32: Matlab Para Dinamica de Estructuras

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  

Page 33: Matlab Para Dinamica de Estructuras

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') 

Page 34: Matlab Para Dinamica de Estructuras

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 

Page 35: Matlab Para Dinamica de Estructuras

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.

Page 36: Matlab Para Dinamica de Estructuras

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.

Page 37: Matlab Para Dinamica de Estructuras

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

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

t w

 st 

 

  

 

  

 

     2sin

12cos

2)(

2

 

ii) 

Respuesta en la fase de carga lineal creciented 

t t    

La solución es

 

  st 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.

Page 38: Matlab Para Dinamica de Estructuras

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

Page 39: Matlab Para Dinamica de Estructuras

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(

 

   

Page 40: Matlab Para Dinamica de Estructuras

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) 

Page 41: Matlab Para Dinamica de Estructuras

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 

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); 

Page 42: Matlab Para Dinamica de Estructuras

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]');

Page 43: Matlab Para Dinamica de Estructuras

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]

Page 44: Matlab Para Dinamica de Estructuras

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 

   

Page 45: Matlab Para Dinamica de Estructuras

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 

   

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:

Page 46: Matlab Para Dinamica de Estructuras

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 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

Page 47: Matlab Para Dinamica de Estructuras

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

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 u    

2

33

 

t ut u

t u

t u    

  366

4)  Calcular ü( t Δt ), u ( t Δt ), u( t Δt ): 

t ut ut t u      

t ut ut t u      

Page 48: Matlab Para Dinamica de Estructuras

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:

Page 49: Matlab Para Dinamica de Estructuras

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

  

   

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

 

Page 50: Matlab Para Dinamica de Estructuras

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

 

Page 51: Matlab Para Dinamica de Estructuras

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

 

Page 52: Matlab Para Dinamica de Estructuras

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; 

Page 53: Matlab Para Dinamica de Estructuras

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) 

Page 54: Matlab Para Dinamica de Estructuras

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:

Page 55: Matlab Para Dinamica de Estructuras

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 

   

      d ut ut t u

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:

Page 56: Matlab Para Dinamica de Estructuras

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: 

Page 57: Matlab Para Dinamica de Estructuras

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 u    

2

33

 

t ut u

t u

t u    

  366

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

 

  y s

 y s

 f  k t t ut t  f  

 f  k t t ut t  f  

 si

 sik t  K 

0

 

Page 58: Matlab Para Dinamica de Estructuras

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 u    

2

33

 

t ut u

t u

t u    

  366

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    

Page 59: Matlab Para Dinamica de Estructuras

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:

Page 60: Matlab Para Dinamica de Estructuras

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

  

   

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.

Page 61: Matlab Para Dinamica de Estructuras

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 

Page 62: Matlab Para Dinamica de Estructuras

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; 

Page 63: Matlab Para Dinamica de Estructuras

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 =

Page 64: Matlab Para Dinamica de Estructuras

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) 

Page 65: Matlab Para Dinamica de Estructuras

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”. 

Page 66: Matlab Para Dinamica de Estructuras

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

Page 67: Matlab Para Dinamica de Estructuras

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

Page 68: Matlab Para Dinamica de Estructuras

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 

Page 69: Matlab Para Dinamica de Estructuras

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

Page 70: Matlab Para Dinamica de Estructuras

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

 

Page 71: Matlab Para Dinamica de Estructuras

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

 

 

Page 72: Matlab Para Dinamica de Estructuras

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 

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);

Page 73: Matlab Para Dinamica de Estructuras

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 

Page 74: Matlab Para Dinamica de Estructuras

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;

Page 75: Matlab Para Dinamica de Estructuras

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

 

1i iq q q

 

1   2i iq q q

 

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;

Page 76: Matlab Para Dinamica de Estructuras

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

i i i

i i i i

i g i g i

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 

Page 77: Matlab Para Dinamica de Estructuras

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');

Page 78: Matlab Para Dinamica de Estructuras

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');

Page 79: Matlab Para Dinamica de Estructuras

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.

Page 80: Matlab Para Dinamica de Estructuras

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.

Page 81: Matlab Para Dinamica de Estructuras

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.

Page 82: Matlab Para Dinamica de Estructuras

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

Page 83: Matlab Para Dinamica de Estructuras

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  

Page 84: Matlab Para Dinamica de Estructuras

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

i i i

i i i i

i g i g i

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 

Page 85: Matlab Para Dinamica de Estructuras

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 

Page 86: Matlab Para Dinamica de Estructuras

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

 

Page 87: Matlab Para Dinamica de Estructuras

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;

Page 88: Matlab Para Dinamica de Estructuras

7/25/2019 Matlab Para Dinamica de Estructuras

http://slidepdf.com/reader/full/matlab-para-dinamica-de-estructuras 88/89

Page 89: Matlab Para Dinamica de Estructuras

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