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ÉCNICA FEDERICO SANTA MARÍA Apuntes de MatLab para Dinámica de Estructuras USM Campus Santiago II Semestre 2012

Matlab Para Dinamica de Estructuras RevB

Embed Size (px)

DESCRIPTION

matlab

Citation preview

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    UNIVERSIDAD TCNICA FEDERICO SANTA MARA

    Apuntes de MatLab para Dinmica de Estructuras

    USM Campus Santiago II Semestre 2012

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    NOCIONES BSICAS 3

    NOMENCLATURAS Y COMANDOS 3

    GRFICOS 11

    PROGRAMACIN 15

    DECLARACIN DE FUNCIN 15

    DECLARACIN DE FOR SIMPLE 15

    DECLARACIN DE FOR ANIDADA 16

    DECLARACIN DE WHILE 16

    DECLARACIN DE IF 17

    DECLARACIONES INTERACTUANDO 17

    ANLISIS ESTRUCTURAL 18

    CASO DE ANLISIS 18

    MATRIZ DE RIGIDEZ 18

    VIGAS 19

    COLUMNAS 20

    MATRIZ DE RIGIDEZ GLOBAL 20

    CONDENSACIN ESTTICA 26

    DINMICA ESTRUCTURAL 28

    SUBRUTINA ODE45 28

    FACTORES DE AMPLIFICACIN DINMICA (FAD) 31

    RESPUESTA ANTE CARGA RAMPA-ESCALN 37

    RESPUESTAS A PARTIR DE UN REGISTRO DE ACELERACIONES 39

    ESPECTRO LINEAL DE ACELERACIN 43

    ESPECTRO NO LINEAL DE ACELERACIN 54

    SUPERPOSICIN MODAL 65

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Nociones bsicas

    Nomenclaturas y comandos La interfaz al ejecutar MatLab es la que se detalla a continuacin.

    Se aprecia que aparece el indicador de comandos >>, el cual indica que el programa est listo para

    recibir instrucciones.

    MATLAB trabaja esencialmente con matrices numricas rectangulares. La manera ms fcil de

    entrar matrices pequeas es enumerando los elementos de sta de tal manera que:

    los elementos estn separados por blancos comas.

    los elementos estn cerrados entre corchetes, [ ].

    muestre el final de cada fila con ; (punto y coma).

    As, algunos caracteres especiales de MatLab son:

    [ ] Se utilizan para formar vectores y matrices

    ( ) Define precedencia en expresiones aritmticas. Encierra argumentos de funciones en

    forma usual

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    , Separador de elementos de una matriz, argumentos de funciones y declaraciones en

    lneas con declaraciones mltiples

    ; Termina filas de una matriz, separador de declaraciones

    % Permite agregar un comentario comentario

    Entonces un ejemplo sera ingresar una matriz de dimensiones 3x3, con nmeros correlativos, como: [ 1 2 3; 4 5 6; 7 8 9 ]. El resultado, como lo entrega el programa, se indica a continuacin:

    ans =

    1 2 3

    4 5 6

    7 8 9

    Ahora bien, se puede guardar esta matriz bajo un nombre. Para ello se tiene que ingresar el nombre de la variable seguida por una igualdad. As, la matriz queda como: A=[ 1 2 3; 4 5 6; 7 8 9 ]. El resultado que entrega el programa es

    A =

    1 2 3

    4 5 6

    7 8 9

    Usualmente no se requiere que el programa entregue los resultados. Para no presentar el valor de la variable que se cre, se debe agregar un punto y coma (;) al final del comando. Como alternativa se puede crear la matriz sin la necesidad de puntos y comas como separadores. As, la matriz A tambin se puede generar como:

    A = [1 2 3

    4 5 6

    7 8 9];

    Si se requiere una fila o columna de la matriz A, o tal vez un valor particular de la matriz o aadir una fila adicional, se realiza lo siguiente:

    se requiere el segundo vector columna: A(:,2) ans =

    2

    5

    8

    se requiere el primer vector fila: A(1,:) ans =

    1

    2

    3

    se requiere el valor del elemento en la fila 2 y columna 3: A(2,3) ans =

    8

    se requiere aadir una fila con los valores b=[ 10 11 12], redefiniendo A: A=[A;b]: A =

    1 2 3

    4 5 6

    7 8 9

    10 11 12

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Tambin se pueden generar vectores con instrucciones. Para ello, una alternativa es definir x=[1:5]. Esta instruccin permite generar un vector fila de 5 columnas. Tambin se puede omitir los parntesis cuadrados para simplificar el proceso. As, se obtiene:

    x =

    1 2 3 4 5

    El vector transpuesto se genera agregando el carcter apstrofe () a la variable, es decir, x ans =

    1

    2

    3

    4

    5

    Se pueden crear vectores generando una secuencia, con un punto de inicio y uno de trmino. Un ejemplo es definir un vector cuyo valor inicial sea 5 y que disminuya su valor en una unidad hasta llegar a 1. De esta manera, x=5:-1:1

    x =

    5 4 3 2 1

    Con anterioridad se evidenci la posibilidad de pedir valores especficos a la matriz. De igual manera, se pueden reasignar valores dentro de la matriz sin necesidad de cambiarla. Para ello se tienen las siguientes opciones:

    cambiar un valor en especfico de manera directa: A(3,3)=10 A = [1 2 3

    4 5 6

    7 8 10];

    cambiar un valor en especfico de manera directa: A(3, 3) = A(1, 3) + A(3, 1) A = [1 2 3

    4 5 6

    7 8 10];

    Ahora bien, un ndice tambin puede ser un vector. Si x y v son vectores, entonces x(v) es [x(v(1)),x(v(2)), ...,x(v(n))]. Para matrices, los ndices de vectores permiten acceso a submatrices contiguas y no contiguas. Por ejemplo, suponga que B es una matriz 12 por 12. Entonces B(1:5, 2) especifica la submatriz 5 x 1, vector columna, que consiste de los primeros cinco elementos en la segunda columna de B. De igual manera, B(1:5, 9:12) es la submatriz 5 x 4 de las primeras cinco filas y las ltimas cuatro columnas. Las operaciones suma (+) y resta (-) son definidas para las matrices siempre y cuando stas tengan la misma dimensin. El resultado de la operacin es por defecto almacenado en la variable ans, la cual se puede almacenar en otra variable. As, definiendo A=[1 2 3;4 5 6]; y B=[6 5 4; 3 2 1]; se puede originar C=A+B.

    C =

    7 7 7

    7 7 7

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    La operacin de multiplicacin de matrices (*) est definida siempre que el nmero de columnas de la primera matriz sea igual al nmero de filas de la segunda matriz. De esta manera, D=A*B slo es posible si D=A*B.

    D =

    18 13 8

    27 20 13

    36 27 18

    La operacin de multiplicacin de matriz con vector es un caso especial de la multiplicacin de

    matrices.

    En la operacin de divisin de matrices, si A es una matriz cuadrada no-singular, entonces A\B y B/A corresponden a la multiplicacin izquierda y derecha de B por el inverso de A, esto es, inv(A) * B y B * inv(A) respectivamente. As,

    X = A\B es una solucin a A * X = B

    X = B/A es una solucin a X * A = B

    >> A = [3,4,7;5,2,-9;-1,13,3]

    A =

    3 4 7

    5 2 -9

    -1 13 3

    >> B = [6;1;8]

    B =

    6

    1

    8

    >> x=A\B

    x =

    0.5123

    0.5848

    0.3034

    >> x=inv(A)*B

    x =

    0.5123

    0.5848

    0.3034

    Notar que A\B es definido cuando B tiene la misma cantidad de filas que A. Si A es cuadrada, el mtodo usado para su resolucin es la Eliminacin Gaussiana. El resultado es una matriz con las mismas dimensiones que B. Ahora bien, si A no es cuadrada, el procedimiento se factoriza utilizando la ortogonalizacin de Householder con pivoteo de columnas. Para dividir los valores de una matriz por un escalar se requiere utilizar un operador que le indique al arreglo que el denominador debe dividir cada valor. As, si A=[1 2;3 4] y se requiere dividir cada valor por 2, la operacin es: A=[1 2;3 4]./2

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    A =

    0.5000 1.0000

    1.5000 2.0000

    Para generar matrices o arreglos con valores aleatorios existe un comando llamado rand(). Los valores estn entre cero y uno. De esta manera se tiene:

    matriz de dimensiones 3x3 con rand(3) A =

    0.8235 0.9502 0.3816

    0.6948 0.0344 0.7655

    0.3171 0.4387 0.7952

    vector de dimensiones 3x1 con rand(3,1) A =

    0.1869

    0.4898

    0.4456

    matriz de nxn de ceros: zeros(n)

    >> A=zeros(4)

    A =

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    matriz de mxn de ceros: zeros(m,n)

    >> B=zeros(3,4)

    B =

    0 0 0 0

    0 0 0 0

    0 0 0 0

    regresa el nmero de filas y columnas de la matriz A B: size(A) size(B)

    >> size(A)

    ans =

    4 4

    >> size(B)

    ans =

    3 4

    >> [m,n]=size(B)

    m =

    3

    n =

    4

    matriz de nxn de unos: ones (n)

    >> C=ones(4)

    C =

    1 1 1 1

    1 1 1 1

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    1 1 1 1

    1 1 1 1

    matriz de mxn de unos: ones(m,n)

    >> D=ones(3,4)

    D =

    1 1 1 1

    1 1 1 1

    1 1 1 1

    matriz identidad de nxn: eye(n)

    >> E=eye(4)

    E =

    1 0 0 0

    0 1 0 0

    0 0 1 0

    0 0 0 1

    matriz identidad de mxn: eye(m,n)

    >> F=eye(3,4)

    F =

    1 0 0 0

    0 1 0 0

    0 0 1 0

    matriz transpuesta: transpose(A)

    >> A=rand(3)

    A =

    0.8147 0.9134 0.2785

    0.9058 0.6324 0.5469

    0.1270 0.0975 0.9575

    >> B=transpose(A)

    B =

    0.8147 0.9058 0.1270

    0.9134 0.6324 0.0975

    0.2785 0.5469 0.9575

    determinante de una matriz: det(A)

    >> det(A)

    ans =

    -0.2767

    inversa de una matriz: inv(A)

    >> inv(A)

    ans =

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    -1.9958 3.0630 -1.1690

    2.8839 -2.6919 0.6987

    -0.0291 -0.1320 1.1282

    valores propios de una matriz: eig(A)

    >> eig(A)

    ans =

    -0.1879

    1.7527

    0.8399

    vectores y valores propios de una matriz: [V,D]=eig(A)

    >> [V,D]=eig(A)

    V =

    0.6752 -0.7134 -0.5420

    -0.7375 -0.6727 -0.2587

    -0.0120 -0.1964 0.7996

    D =

    -0.1879 0 0

    0 1.7527 0

    0 0 0.8399

    obtiene la diagonal de una matriz: diag(D)

    >> diag(D)

    ans =

    -0.1879

    1.7527

    0.8399

    agrupar de forma creciente: sort(v)

    >> x=rand(5,1)

    x =

    0.6948

    0.3171

    0.9502

    0.0344

    0.4387

    >> v=sort(x)

    v =

    0.0344

    0.3171

    0.4387

    0.6948

    0.9502

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    obtener la suma de los trminos de un arreglo: sum(x)

    w=sum(x)

    w =

    2.4353

    obtener el mximo valor de un arreglo: max(x)

    y=max(x)

    y =

    0.9502

    obtener el mnimo valor de un arreglo: min(x)

    >> y=min(x)

    y =

    0.0344

    redondea los trminos: round(x)

    >> r=round(x) %redondea por defecto al entero ms cercano 0

    r =

    1

    0

    1

    0

    0

    >> r=round(10*x) %idem anterior pero ahora se multiplica el arreglo por 10

    r =

    7

    3

    10

    0

    4

    Los operadores relacionales son < menor que

    mayor que

    >= mayor o igual a

    == igual a

    =~ no igual a

    Comando de limpieza de variables - clear - clear all - clc

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Grficos La estructura bsica del grfico se compone por un comando que crea una grfica de vectores o columnas de matrices a travs de plot. Una vez ingresado el comando y los vectores a representar grficamente es posible agregar descripciones al grfico, a travs de ttulos, encabezamientos de ejes, lneas segmentadas o texto mediante etiquetas. De igual manera se puede asignar un color especfico al trazado y/o con algn estilo. Cabe destacar que por defecto el grfico tiene una lnea continua y de color azul. Para ello se enumeran las opciones disponibles:

    Colores

    y amarillo m magenta c cyan r rojo

    g verde b azul w blanco k negro

    Tipologa lnea

    . punto o circulo x cruz + signo '+'

    * estrella s cuadrado d diamante v triangulo

    - lnea solida : segmentado -. lnea - punto -- lnea - lnea

    Se considerar el siguiente ejemplo para ilustrar el uso de la funcin plot y sus etiquetas. Sea x=1:8; y=2.^x;

    plot(x)

    plot(y)

    Si x es un vector, plot(x) produce una grfica lineal de los elementos de x versus el ndice de estos. Si especifica dos vectores como argumentos, plot(x, y) produce una grfica de y versus x como se indica en la figura.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Para introducir las etiquetas es necesario colocar (,) despus del vector y abrir una llamado a la etiqueta, ingresando el llamado entre ()

    plot(y,m)

    plot(y,mx)

    El grfico de la izquierda grafica el vector y, agregndole color magenta a la lnea trazada. El grfico de la derecha mantiene el color magenta pero cambia la lnea por cruces; es decir, aade una caracterstica adicional insertando una nueva etiqueta de manera continua.

    plot(y,d)

    plot(y,k--)

    El grfico de la izquierda grafica el vector y, indicando slo los valores del vector con un smbolo de diamante. El grfico de la derecha segmenta el grfico y le cambia el color a negro.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Para agregar ttulos al grfico

    plot(y,'k.-'); title('Grfico y(x)');

    plot(y,'k.-'); title('Grfico y(x)'); xlabel('Eje X'); ylabel('Eje Y');

    De manera adicional se puede agregar cambios en los espesores de lnea. Algunas de las etiquetas son:

    ,'LineWidth',2, espesor de linea en 2

    ,'MarkerEdgeColor','r', dato en color rojo

    ,'MarkerSize',30, tamao dato

    As, se puede generar grficos como:

    plot(y,'k.','LineWidth',2,'MarkerEdgeColor','r','MarkerSize',15); title('Grfico y(x)');

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Para graficar de manera simultnea dos grficos se puede utilizar un comando que permita agregar tantas funciones cmo se requiera. Para ello se definir lo siguiente: >> x=0:6;

    >> y1=x.^2;

    >> y2=sqrt(x);

    >> y3=x;

    >> plot(y1); hold on

    >> plot(y2);

    >> plot(y3);

    >> hold off

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Programacin

    Declaracin de funcin

    La idea de es utilizar funciones predeterminadas y de uso recurrente agregando slo una lnea.

    Para los casos que se vern en Dinmica de Estructuras se implementarn para:

    Llamar una matriz de rigidez elemental de un elemento viga o columna

    Llamar un registro

    Llamar una funcin especfica previamente creada y guardada, por ejemplo, una funcin

    que resuelva la ecuacin diferencial de movimiento mediante la integracin directa con

    aceleracin constante

    Por ejemplo, si se crea un archivo .m a travs de una funcin (File->New->Function) se puede

    agregar una matriz de rigidez de un elemento viga en posicin horizontal con 6 grados de libertad,

    como se detalla a continuacin:

    function Kviga = Kviga(EA,EI,L) Kviga = [EA/L,0,0,-EA/L,0,0; 0,12*EI/L^3,6*EI/L^2,0,-12*EI/L^3,6*EI/L^2; 0,6*EI/L^2,4*EI/L,0,-6*EI/L^2,2*EI/L; -EA/L,0,0,EA/L,0,0; 0,-12*EI/L^3,-6*EI/L^2,0,12*EI/L^3,-6*EI/L^2; 0,6*EI/L^2,2*EI/L,0,-6*EI/L^2,4*EI/L]

    De esta manera se define una matriz de rigidez elemental para una viga horizontal de propiedades

    EA, EI y largo L. Para hacer uso de ella se debe llamar por el nombre Kviga, agregando las

    propiedades requeridas en su definicin. Definiendo EA, EI & L, se obtiene:

    >> EA=10000; %EA de la viga >> EI=500000; %EI de la viga >> L=500; %L de la viga >> Kviga(EA,EI,L)

    Kviga =

    1.0e+003 *

    0.0200 0 0 -0.0200 0 0

    0 0.0000 0.0120 0 -0.0000 0.0120

    0 0.0120 4.0000 0 -0.0120 2.0000

    -0.0200 0 0 0.0200 0 0

    0 -0.0000 -0.0120 0 0.0000 -0.0120

    0 0.0120 2.0000 0 -0.0120 4.0000

    Declaracin de FOR simple >> for i=1:101

    x(i)=2*pi*(i-1)/100;

    end

    >> y=sin(x)

    >> plot(x,y)

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Declaracin de FOR anidada

    Se utiliza cuando se posee ms de 1 parmetro al cual se requiere hacer un barrido. Por ejemplo,

    se puede crear una matriz de dimensiones mxn, creando cada trmino en funcin de las

    dimensiones de la matriz. As, si m=4 y n=5, se tiene

    >> for i = 1:m for j = 1:n

    A(i, j) = 1/(i+j- 1); end end A

    A = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250

    Declaracin de WHILE

    Este comando permite a una o ms instrucciones repetirse un nmero indefinido de veces, bajo el control de una condicin lgica. La ventaja radica en que WHILE tiene una condicin de parada definida, mientras que otros comandos, como IF, pueden no tener la condicin de parada, lo que implica que nunca deja de buscar. Como ejemplo, suponer se desea iterar para encontrar un nmero tal satisfaga una suma. As, >> e=1.0; while (1.0+e)>1.0001

    e=e/2.0; end >> e

    e = 6.1035e-005

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Declaracin de IF

    Permite establecer casos particulares en los cuales si se cumple una afirmacin se proceda a generar una rutina con el valor al caso que se cumple. if i==j

    rho=1; else

    rho=-1

    end

    Declaraciones interactuando

    Supongamos que se tienen las frecuencias de un marco de 5 pisos ordenadas como un vector columna llamado w, tal que

    w = 31.4159

    100.5183 183.8185 276.7465 360.8302

    Si se requiere realizar un anlisis CQC (Complete Quadratic Combination, para combinar los resultados modales por la tcnica de Combinacin Cuadrtica Completa descrita por Wilson, Der Kiureghian, y Bayo (1981)), se debe determinar el coeficiente de acoplamiento modal, cuya es expresin corresponde a

    2 3 3

    2 22 2 2

    8

    4

    i j i j

    ij

    i j i j i j

    La expresin obliga a ocupar los comandos anteriormente vistos para generar los coeficientes de acoplamiento modal. for i=1:5 for j=1:5 if i==j rho=1; else

    rho=(8*bi^2*(w(i)+w(j))*(w(i)^3*w(j)^3)^0.5)/((w(i)^2-

    w(j)^2)^2+4*bi^2*w(i)*w(j)*(w(i)+w(j))^2); end end

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Anlisis estructural

    Caso de anlisis Suponga que deben calcular el desplazamiento de un edificio de 5 pisos. Ese edificio tiene ciertas

    cualidades que se detallan abajo. Lo importante es que deben conocer el desplazamiento de techo

    y los desplazamientos de entrepiso (drifts), por lo cual les interesa saber los desplazamientos

    desde 1 a 5. Pero qu sucede? Hay ms grados de libertad que contribuyen a la rigidez del

    edificio. Detallando los grados de libertad del marco de 5 pisos, donde las vigas son axialmente

    indeformables, los grados de libertad a considerar son:

    Esa rigidez del edificio se puede expresar como una rigidez lateral (que es la que nos interesa

    porque es la que mueve toda la masa), una rigidez al giro y una rigidez a la deformacin vertical.

    Pues de esta forma se entiende que el problema a resolver no son los 25 grados de libertad, sino

    que los 5 que relacionan el problema que debo solucionar.

    As, sabiendo que tengo una matriz de grandes dimensiones, ordeno convenientemente los grados

    de libertad para luego aplicar condensacin a los grados de libertad requeridos. Qu significa

    eso? Que la matriz de 25x25 se reducir a 5x5, de los cuales se har una equivalencia en

    comportamiento dada su condicin esttica.

    Matriz de Rigidez Se requiere obtener la matriz de rigidez de un edificio de 5 pisos compuesto por columnas y vigas.

    Las vigas se considerarn flexurablemente deformables y las columnas axial-flexurablemente

    deformables.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Para mayor facilidad en el desarrollo se consideraran primero los grados de libertad que

    representan el desplazamiento lateral de cada piso, para luego considerar el resto. De esta forma

    los primero cinco trminos de la matriz de rigidez resultante sern los que se usarn para

    determinar la respuesta a nivel de piso debido al registro.

    La siguiente figura indica los grados de libertad globales considerados para el edificio de 5 pisos.

    Vigas

    La matriz de rigidez elemental de la viga considera slo los grados de libertad axiales, por lo que el

    elemento queda como lo indica la figura:

    Considerando la matriz elemental para una viga horizontal y tomando en cuenta slo los 4 grados

    de libertad locales indicados, la matriz de rigidez local del elemento viga se expresa como

    2 2

    3

    2 2

    6 3 6 3

    3 2 32

    6 3 6 3

    3 3 2

    c vv

    L L

    L L L LE Ik

    L LL

    L L L L

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Columnas

    En relacin a la matriz de rigidez de la columna, se consideran todos los grados de libertad de la

    matriz de rigidez elemental. De esta forma, se tiene que el elemento columna se expresa en

    coordenadas locales como:

    Considerando los grados de libertad locales de la columna, la matriz de rigidez local del elemento

    columna se expresa como

    3 2 3 2

    2 2

    3 2 3 2

    2 2

    12 0 6 12 0 6

    0 0 0 0

    6 0 4 6 0 2

    12 0 6 12 0 6

    0 0 0 0

    6 0 2 6 0 4

    c c c c c c c c

    i i i i

    c c c c

    i i

    c c c c c c c c

    i i i i

    c

    c c c c c c c c

    i i i i

    c c c c

    i i

    c c c c c c c c

    i i i i

    E I E I E I E I

    h h h h

    E A E A

    h h

    E I E I E I E I

    h h h hk

    E I E I E I E I

    h h h h

    E A E A

    h h

    E I E I E I E I

    h h h h

    Se debe hacer la diferencia sobre la altura del primer piso con la del resto de los pisos, para lo cual

    se generarn matrices de rigidez para el primer piso y para el resto. Todas las vigas tienen las

    mismas propiedades, por lo cual no se har diferencia con las matrices de rigidez de stas.

    Los valores a utilizar son

    22038.902 29000ctonf

    E ksicm

    412250vI cm 750vL cm

    262cA cm 49230cI cm

    400 ,

    350 ,i

    cm parael primer pisoh

    cm parael restodelos pisos

    Matriz de rigidez global Realizado lo anterior, ser necesario establecer la relacin entre los grados de libertad locales y

    globales. Para ello se enumeran los elementos, con la finalidad de establecer los vectores de

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    conectividad que permitan ensamblar la matriz de rigidez del sistema. La figura que se indica a

    continuacin establece la numeracin de los elementos. Se requieren 5 vectores de conectividad

    para las 5 vigas y 10 vectores de conectividad para las 10 columnas.

    Utilizando lo visto en el captulo 1, se definirn 2 funciones para llamar las matrices de rigidez de la

    viga y de la columna. As, creando un nuevo archivo de extensin .m, se tiene

    Matriz de rigidez elemental viga 4x4

    function kviga4x4 = kviga4x4(Ec,Iv,L)

    kviga_ad4x4=Ec*Iv/L^3*[12 6*L -12 6*L;

    6*L 4*L^2 -6*L 2*L^2;

    -12 -6*L 12 -6*L;

    6*L 2*L^2 -6*L 4*L^2];

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Matriz de rigidez elemental columna

    function kcol = kcol(EI,EA,h)

    kcol = [12*EI/h^3,0,6*EI/h^2,-12*EI/h^3,0,6*EI/h^2;

    0,EA/h,0,0,-EA/h,0;

    6*EI/h^2,0,4*EI/h,-6*EI/h^2,0,2*EI/h;

    -12*EI/h^3,0,-6*EI/h^2,12*EI/h^3,0,-6*EI/h^2;

    0,-EA/h,0,0,EA/h,0;

    6*EI/h^2,0,2*EI/h,-6*EI/h^2,0,4*EI/h];

    Notar que se consideran los parmetros Ec, Iv & L como los datos de entrada cuando se llame a la

    matriz de rigidez de la viga, mientras que para la columna los datos de entrada son EI, EA & h.

    La idea ser generar que la matriz de rigidez global de la estructura se armar con las matrices de

    rigidez de cada elemento (mtodo de rigidez directa). Esto se implementar mediante vectores

    que relacionarn el grado de libertad de cada elemento con una ubicacin dentro de la matriz de

    rigidez global, de dimensiones 25x25.

    Si la viga 1 tiene los grados de libertad 6, 7, 8 & 9, el vector ser p=[6:9]' y lo que har ser

    vincular, en el orden especfico en el cual se ingresan los valores en el vector, la matriz de 4x4 de la

    viga del primer piso y ubicarla dentro de la matriz de dimensiones 25x25 entre las filas 6 y 9, y las

    columnas 6 y 9.

    Para las columnas se procede de la misma forma, salvo las columnas del primer piso, que

    requieren que se aadan grados de libertad adicionales. Esto sucede porque la matriz a la cual se

    llama tiene dimensiones de 6x6 y el vector p=[0;0;0;1;6;7] tendra slo 3 grados de libertad, lo que

    genera un problema de dimensiones al generar la matriz. De esta forma, la manera ms simple de

    generar una solucin es aadiendo 5 grados de libertad en la base. De esta forma, se tienen 30

    grados de libertad.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    As,

    Kg=zeros(30); %definicin de una matriz de 25x25 para ir completando

    %Para el primer piso

    p=[6:9]'; %posicion de los GL de la viga

    Kg(p,p)=Kv+Kg(p,p); %aporte de la primer piso

    p=[26;27;28;1;6;7]; %posicin de la columna izquierda

    Kg(p,p)=Kcp1+Kg(p,p); %aporte de la columna izquierda

    p=[26;29;30;1;8;9]; %posicin de la columna derecha

    Kg(p,p)=Kcp1+Kg(p,p); %aporte de la columna derecha

    %Para el segundo piso

    p=[10:13]'; %posicion de los GL de la viga

    Kg(p,p)=Kv+Kg(p,p); %aporte del segundo piso

    p=[1;6;7;2;10;11]; %posicin de la columna izquierda

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda

    p=[1;8;9;2;12;13]; %posicin de la columna derecha

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha

    %Para el tercer piso

    p=[14:17]'; %posicion de los GL de la viga

    Kg(p,p)=Kv+Kg(p,p); %aporte del tercer piso

    p=[2;10;11;3;14;15]; %posicin de la columna izquierda

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda

    p=[2;12;13;3;16;17]; %posicin de la columna derecha

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha

    %Para el cuarto piso

    p=[18:21]'; %posicion de los GL de la viga

    Kg(p,p)=Kv+Kg(p,p); %aporte del cuarto piso

    p=[3;14;15;4;18;19]; %posicin de la columna izquierda

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda

    p=[3;16;17;4;20;21]; %posicin de la columna derecha

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha

    %Para el quinto piso

    p=[22:25]'; %posicion de los GL de la viga

    Kg(p,p)=Kv+Kg(p,p); %aporte del quinto piso

    p=[4;18;19;5;22;23]; %posicin de la columna izquierda

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna izquierda

    p=[4;20;21;5;24;25]; %posicin de la columna derecha

    Kg(p,p)=Kcp2+Kg(p,p); %aporte de la columna derecha

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Matriz de rigidez global Kg queda como se indica la figura

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Condensacin esttica Ahora bien, mediante condensacin estticamente se debe reducir la matriz a los grados de

    libertad asociados al desplazamiento horizontal del marco. En este caso se condensarn los

    asociados al desplazamiento lateral del marco.

    0

    aa ab

    ba bb

    K K u F

    K K

    Con u=grados de libertad activos (desplazamientos laterales) y el resto de los grados de libertad.

    De esta manera,

    0aa ab

    ba bb

    K u K F

    K u K

    Finalmente la rigidez lateral queda expresada como

    1

    aa ab bb baK K K K K

    Se condensar para la submatriz de dimensiones 25x25, considerando que slo se agregaron estos

    trminos para determinar un procedimientos de ensamble de la matriz de rigidez global eficiente.

    Truncado los ltimos 5 GL, se tiene

    a=[1:5]; % GL activos

    b=[6:25]; % GL pasivos

    K=Kg(a,a)-Kg(a,b)*inv(Kg(b,b))*Kg(b,a) %condensacion a GL laterales

    K =

    14.7948 -9.8816 2.6659 -0.4655 0.0756 -9.8816 15.4632 -10.0323 2.6500 -0.3583 2.6659 -10.0323 15.4597 -9.8125 2.0987 -0.4655 2.6500 -9.8125 14.1538 -6.5904 0.0756 -0.3583 2.0987 -6.5904 4.7790

    Una alternativa al procedimiento anterior consiste en generar los vectores de conectividad de

    manera individual. El problema radica en la lentitud en relacin al procedimiento anterior.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    % vigas

    Kv=kviga4x4(Es,Iv,L);

    % columnas

    EA=Es*Ac;

    EI=Es*Ic;

    Kcp1=kcol(EI,EA,hp1);

    Kcp2=kcol(EI,EA,hp2);

    % Matrices de compatibilidad para cada barra

    % vigas

    a1=zeros(4,25); a1(1,6)=1; a1(2,7)=1; a1(3,8)=1; a1(4,9)=1;

    a2=zeros(4,25); a2(1,10)=1; a2(2,11)=1; a2(3,12)=1; a2(4,13)=1;

    a3=zeros(4,25); a3(1,14)=1; a3(2,15)=1; a3(3,16)=1; a3(4,17)=1;

    a4=zeros(4,25); a4(1,18)=1; a4(2,19)=1; a4(3,20)=1; a4(4,21)=1;

    a5=zeros(4,25); a5(1,22)=1; a5(2,23)=1; a5(3,24)=1; a5(4,25)=1;

    % columnas

    a6=zeros(6,25); a6(4,1)=-1; a6(5,6)=1; a6(6,7)=1;

    a7=zeros(6,25); a7(4,1)=-1; a7(5,8)=1; a7(6,9)=1;

    a8=zeros(6,25); a8(1,1)=-1; a8(2,6)=1; a8(3,7)=1; a8(4,2)=-1; a8(5,10)=1; a8(6,11)=1;

    a9=zeros(6,25); a9(1,1)=-1; a9(2,8)=1; a9(3,9)=1; a9(4,2)=-1; a9(5,12)=1; a9(6,13)=1;

    a10=zeros(6,25); a10(1,2)=-1; a10(2,10)=1; a10(3,11)=1; a10(4,3)=-1; a10(5,14)=1; a10(6,15)=1;

    a11=zeros(6,25); a11(1,2)=-1; a11(2,12)=1; a11(3,13)=1; a11(4,3)=-1; a11(5,16)=1; a11(6,17)=1;

    a12=zeros(6,25); a12(1,3)=-1; a12(2,14)=1; a12(3,15)=1; a12(4,4)=-1; a12(5,18)=1; a12(6,19)=1;

    a13=zeros(6,25); a13(1,3)=-1; a13(2,16)=1; a13(3,17)=1; a13(4,4)=-1; a13(5,20)=1; a13(6,21)=1;

    a14=zeros(6,25); a14(1,4)=-1; a14(2,18)=1; a14(3,19)=1; a14(4,5)=-1; a14(5,22)=1; a14(6,23)=1;

    a15=zeros(6,25); a15(1,4)=-1; a15(2,20)=1; a15(3,21)=1; a15(4,5)=-1; a15(5,24)=1; a15(6,25)=1;

    % Matriz de rigidez

    Kvigas=a1'*Kv*a1 + a2'*Kv*a2 + a3'*Kv*a3 + a4'*Kv*a4 + a5'*Kv*a5; %aporte de las vigas

    Kcolumnas=a6'*Kcp1*a6 + a7'*Kcp1*a7 + a8'*Kcp2*a8 + a9'*Kcp2*a9 + a10'*Kcp2*a10 + a11'*Kcp2*a11 + a12'*Kcp2*a12 +

    a13'*Kcp2*a13 + a14'*Kcp2*a14 + a15'*Kcp2*a15; %aporte de las columnas

    Kt=Kvigas+Kcolumnas; %matriz de rigidez completa

    a=[1:5]; %grados de libertad horizontales

    b=[6:25]; %resto de los grados de libertad del sistema

    Kaa=Kt(a,a);

    Kab=Kt(a,b);

    Kba=Kt(b,a);

    Kbb=Kt(b,b);

    K=Kaa-Kab*inv(Kbb)*Kba; %matriz de rigidez condensada a grados de libertad laterales con masa asociada

    Kt=Kv+Kc; %matriz de rigidez completa

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Dinmica estructural

    Subrutina ode45 ode45 corresponde a un mtodo adaptativo; es una combinacin de un mtodo Runge-Kutta de

    ordenes cuatro y cinco de cinco y seis evaluaciones respectivamente. La combinacin de estos

    mtodos permite estimar el error en la aproximacin numrica en cada paso y as la subrutina

    puede ajustar el largo de paso "h" en forma dinmica para mantener el error global menor de una

    tolerancia especificada por el usuario. Requiere del nombre de la funcin f, los tiempos inicial y

    final, la condicin inicial, la tolerancia para cada iteracin, y un indicador si la rutina imprime o no

    los resultados calculados. Normalmente este indicador se toma como cero que es su valor por

    omisin.

    A continuacin se detalla un ejemplo que permite visualizar su uso. En especfico, se resolver la

    ecuacin general de movimiento para un caso particular.

    Sea la ecuacin del movimiento:

    100,sin)()()( 0 ttFtkxtxctxm

    Considerar el siguiente caso:

    m = 10; c = 0,05; k = 50; Fo = 5

    Las condiciones iniciales sern las siguientes:

    0)0( x

    0)0( x

    Para usar ode45 con ecuaciones de 2do orden, como es el caso de la ecuacin general de

    movimiento:

    10

    00

    )(

    )(

    )(

    xtx

    xtx

    tFkxxcxm

    se debe convertir la ecuacin en un sistema equivalente de primer orden, haciendo y1 = x, y2 = x:

    m

    tFycyky

    yy

    )(

    '

    212

    21

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Con

    102

    001

    )(

    )(

    xty

    xty

    Luego se debe crear y guardar un archivo .m que retornar una funcin evaluada en cada t.

    Para el caso del ejemplo, se procedera de la siguiente forma:

    function dy = dfun(t,y) Fo=5; A=Fo*sin(pi*t); c=0.05; k=50; m=10; dy=zeros(2,1); dy(1)=y(2); dy(2)=(A-c*y(2)-k*y(1))/m; end

    Notar que el sistema est descrito en las dos ltimas filas antes de end y lo anterior es para definir los coeficientes del sistema. Este archivo se guardar como dfun.m.

    Finalmente, para obtener los resultados, se tiene que ingresar lo siguiente:

    [t,x]=ode45(@nombre del archivo.m,[to tf],[x(0) x(0)]);

    t0 y tf son el tiempo inicial y final del anlisis y x(0) y x(0) las condiciones iniciales.

    Reemplazando en el caso ejemplo, queda:

    [t,x]=ode45(@dfun,[0 10],[0 1]);

    t ser el vector de los instantes de tiempo en que se efectu el clculo segn el criterio de error de este proceso, x ser una matriz de dos columnas, de las cuales, la primera ir definiendo la posicin y la segunda la velocidad segn el vector t. Con lo cual, si se desea mostrar el resultado en un grfico, se implementar el siguiente cdigo:

    hold on plot(t,w(:,1),'b') plot(t,w(:,2),'r') xlabel('tiempo') ylabel('Posicin y Velocidad') title('Solucin EDO') legend('Posicin','Velocidad',3) grid on hold off

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Y el resultado por pantalla ser el siguiente:

    0 1 2 3 4 5 6 7 8 9 10-2

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    tiempo

    Posic

    in y

    Velo

    cid

    ad

    Solucin EDO

    Posicin

    Velocidad

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Factores de Amplificacin Dinmica (FAD)

    En el anlisis de sistemas dinmicos, un punto que importa conocer es la amplificacin que sufre la

    respuesta del sistema ante solicitaciones con respecto a la respuesta esttica. De esta manera, se

    define el Factor de amplificacin dinmico de un sistema, para una cierta razn de

    amortiguamiento, como el cociente entre la amplitud de la respuesta (para una cierta excitacin)

    y el desplazamiento (velocidad, aceleracin) esttico. Para poder definir este parmetro, es

    necesario conocer la frecuencia que posee la excitacin a la cual se esta sometiendo el sistema.

    Conocida esta, es posible analizar lo que ocurre con la respuesta del sistema para diferentes

    excitaciones, y a su vez, analizar el comportamiento para un determinado amortiguamiento. Para

    un mejor entendimiento, veamos un ejemplo:

    Sea la EDM:

    tpFtkutuctum sin)()()( 0

    Rescrita en forma cannica:

    tpm

    Ftututu sin)()(2)( 02

    La solucin a esta ecuacin diferencial de segundo orden, esta dada por una parte homognea y

    otra particular. Resolviendo, se obtiene la siguiente solucin para un sistema amortiguado de un

    grado de libertad:

    tp

    w

    ppm

    Ftu sin

    21

    1)(

    22

    22

    0

    2

    1

    1

    2

    tan

    p

    p

    Donde:

    : Razn de amortiguamiento crtico.

    :0F Amplitud de la carga.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    :p Frecuencia angular de la carga.

    :stu Desplazamiento esttico del sistema.

    Luego, el factor de amplificacin dinmica para desplazamiento se define numricamente de la

    siguiente manera:

    22

    2

    21

    1

    w

    pp

    FADu

    Es posible conocer tambin, los factores de amplificacin dinmica para la velocidad y la

    aceleracin:

    Diferenciando la respuesta del sistema, se tiene que la velocidad es de la forma:

    tp

    w

    pp

    p

    m

    Ftu cos

    21

    )(2

    22

    0

    De esta manera, el FAD para velocidad es:

    22

    2

    21

    w

    pp

    p

    FADv

    La aceleracin:

    tp

    w

    pp

    p

    m

    Ftu sin

    21

    )(2

    22

    2

    0

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    De esta manera, el FAD para aceleracin es:

    22

    2

    2

    21

    w

    pp

    p

    FADa

    Por ejemplo, sea: m=100 [kg],

    m

    Nk 3102.5

    Se realiza un barrido de la frecuencia de la carga desde 0 hasta 100 [rad/s] y un barrido de la razn

    de amortiguamiento crtico comenzando en 0.1 hasta 1.1. Implementando el siguiente cdigo en

    MATLAB se obtiene la grfica que ilustra el FAD para desplazamiento, velocidad y aceleracin:

    %FACTORES DE RESPUESTA DINMICA (FAD)

    %Para una excitacin conocida de la forma: F(t)=Fo*sin(p*t) tic clear all clc %Para un oscilador de 1 Grado de Libertad con distintos niveles de

    amortiguamiento... %Sea m=100;%[kg] k=5.2*10^3;%[N/m] w=(k/m)^(1/2);%[rad/s] p=(0:.5:100);%Frecuencias de la carga aplicada al sistema. beta=[0.1 0.2 0.4 0.5 0.7 0.9 1 1.1];%razones de amortiguamiento aux1=size(p,2); aux2=size(beta,2); FADu=zeros(aux1,aux2); FADv=zeros(aux1,aux2); FADa=zeros(aux1,aux2);

    for j=1:1:aux2 for i=1:1:aux1 aux3=((1-(p(i)/w)^2)^2+(2*beta(j)*(p(i)/w))^2)^(1/2); FADu(i,j)=1/aux3; FADv(i,j)=(p(i)/w)/aux3; FADa(i,j)=((p(i)/w)^2)/aux3; end end p_w=p/w;

    figure(1) hold on plot(p_w,FADu(:,1),'-k') plot(p_w,FADu(:,2),'-r')

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    plot(p_w,FADu(:,4),'-b') plot(p_w,FADu(:,5),'-g') plot(p_w,FADu(:,6),'-m') plot(p_w,FADu(:,7),'-y') legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta

    =1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD DESPLAZAMIENTO OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid on

    figure(2) hold on plot(p_w,FADv(:,1),'-k') plot(p_w,FADv(:,2),'-r') plot(p_w,FADv(:,4),'-b') plot(p_w,FADv(:,5),'-g') plot(p_w,FADv(:,6),'-m') plot(p_w,FADv(:,7),'-y') legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta

    =1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD VELOCIDAD OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid on

    figure(3) hold on plot(p_w,FADa(:,1),'-k') plot(p_w,FADa(:,2),'-r') plot(p_w,FADa(:,4),'-b') plot(p_w,FADa(:,5),'-g') plot(p_w,FADa(:,6),'-m') plot(p_w,FADa(:,7),'-y') legend('\beta=0.1','\beta=0.2','\beta=0.5','\beta=0.7','\beta=0.9','\beta

    =1') hold off xlabel('p/\omega') ylabel('FAD') title('FAD ACELERACION OSCILADOR SIMPLE AMORTIGUADO-CARGA SINUSOIDAL') grid on

    toc

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Respuesta ante carga Rampa-Escaln

    Considerando que se tiene una excitacin como

    stparakN

    stparakNttF

    5.0100

    5.0200)(

    Considerando un sistema de 1 GL, se tiene que la EDM es

    sttpara

    sttparatttkutuctum

    d

    d

    d

    100

    100

    )()()(

    La respuesta por tanto debe separarse en 2 tramos.

    i) Respuesta en la fase de carga lineal creciente dtt

    La solucin es

    ttte

    t

    utu d

    d

    d

    tw

    d

    st

    2sin12

    cos2

    )(

    2

    ii) Respuesta en la fase de carga lineal creciente dtt

    La solucin es

    stddd

    stddddstd

    ttwutt

    utututtutuetu d

    sin

    )()(cos)()(

    Donde )(),( dd tutu corresponde a las condiciones iniciales provistas por la fase anterior.

    De esta manera, se obtiene la respuesta, que de manera grfica, permite apreciar que en la fase

    de carga creciente la respuesta del sistema crece linealmente hasta la posicin de equilibrio

    esttico, siendo igual para distintas razones de amortiguamiento. Luego, oscila en torno a ella

    hasta mantenerse en dicha posicin.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    %RESPUESTA OSCILACIONES FORZADAS %Para una excitacin tipo rampa-escalon

    m=5000;%[kg] a=.3;%[m] I=(a^4)/12;%[m^4] E=2.94*10^(10);%[N/m^2] K=768*E*I/875;%[N/m] d=0.05;

    Fo=100000;%[N]

    i=0; tr=.5; H=@(t)(((Fo*t/tr)*(t>=0 & ttr & t

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Respuestas a partir de un registro de aceleraciones

    Considerando que se tiene un sistema como el mostrado en la figura, donde )(tug representa la

    aceleracin basal discretizada en pasos de st , se requiere resolver el problema utilizando el mtodo de Newmark con aceleracin lineal (es una alternativa). Esto permite determinar el la

    relacin tiempo-historia de la estructura, tanto a nivel de desplazamientos, como de velocidad y

    aceleracin.

    La EDM es

    )()()(2)(

    )()()()(

    0)()()()(

    2 tutututu

    tmutkutuctum

    tkutuctutum

    g

    g

    g

    Ahora bien, implementando Newmark con aceleracin lineal, se tiene

    )(3)(

    6)(

    2)(3

    632

    tutut

    mtut

    tucFumt

    ct

    K

    Con condiciones iniciales

    0)0(

    0)0(

    u

    u

    m

    uKucFu

    )0()0()0()0(

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    De esta forma, para un sistema de perodo T=0.1 (s) y razn de amortiguamiento de 02.0 , se

    obtiene el grfico para el desplazamiento lateral u(t).

    %Time-History para SDOF mediante Newmark con aceleracin lineal

    %Se carga el registro de aceleraciones. dato=load('aceleraciones.dat'); dato1=dato*9.81; dt=0.02;%Incremento de tiempo del registro [s].

    n=length(dato); tmax=(n-1)*dt; t=(0:dt:tmax)'; d=zeros(n,1); v=zeros(n,1); a=zeros(n,1);

    %Condiciones iniciales. d(1)=0;%Desplazamiento inicial nulo. v(1)=0;%Velocidad inicial nula. a(1)=(dato1(1)-c*v(1)-K*d(1))/m;%Aceleracin inicial . K_eq=K+(3*c/dt)+(6*m/(dt*dt));%Masa equivalente. dd=d(1); vv=v(1); aa=a(1); for i=1:1:(n-1)

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    delta_F=(dato1(i+1)-dato1(i))+c*(3*vv+(dt*aa/2))+m*((6*vv/dt)+3*aa); du=delta_F/K_eq; dv=(3*du/dt)-3*vv-(dt*aa/2); da=(6*du/(dt^2))-(6*vv/dt)-3*aa; d(i+1)=dd+du; v(i+1)=vv+dv; a(i+1)=aa+da; dd=d(i+1); vv=v(i+1); aa=a(i+1); end SD=max(abs(d*100)); SV=max(abs(v*100)); SA=max(abs(a))/9.81; figure(1) subplot(2,1,1); plot(t,dato,'r'); title('Acelerograma'); xlabel('Tiempo [s]'); ylabel('Aceleracin [g]'); subplot(2,1,2); plot(t,d*100,'b'); legend('T= 0.1 [s], \xi=0.02') xlabel('Tiempo [s]'); ylabel('Deformacin u(t) [cm]');

    El espectro de respuesta para un registro se calcula para un barrido de perodos en un oscilador de

    un grado de libertad y para una razn de amortiguamiento fija. Los espectros se definen de la

    siguiente manera:

    max)(tuSd

    dv ST

    S

    2

    da ST

    S

    22

    %Espectro de Respuesta Lineal para SDOF mediante Newmark con aceleracin

    lineal

    %Se carga el registro de aceleraciones. dato=load('aceleraciones.dat'); dato1=dato*9.81; dt=0.02;%Incremento de tiempo del registro [s].

    n=length(dato); tmax=(n-1)*dt; t=(0:dt:tmax)'; d=zeros(n,1); v=zeros(n,1); a=zeros(n,1);

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    T=(0.01:0.01:7)'; z=length(T); Sd=zeros(z,1); Sv=zeros(z,1); Sa=zeros(z,1); for j=1:1:z wn=2*pi/T(j); K=m*wn^2;%Rigidez del sistema en [N/m]. c=2*sqrt(m*K)*p;%Viscosidad en [N*s/m].

    %Condiciones iniciales. d(1)=0;%Desplazamiento inicial nulo. v(1)=0;%Velocidad inicial nula. a(1)=(dato1(1)-c*v(1)-K*d(1))/m;%Aceleracin inicial . K_eq=K+(3*c/dt)+(6*m/(dt*dt));%Masa equivalente. dd=d(1); vv=v(1); aa=a(1); for i=1:1:(n-1) delta_F=(dato1(i+1)-dato1(i))+c*(3*vv+(dt*aa/2))+m*((6*vv/dt)+3*aa); du=delta_F/K_eq; dv=(3*du/dt)-3*vv-(dt*aa/2); da=(6*du/(dt^2))-(6*vv/dt)-3*aa; d(i+1)=dd+du; v(i+1)=vv+dv; a(i+1)=aa+da; dd=d(i+1); vv=v(i+1); aa=a(i+1); end Sd(j,1)=max(abs(d)); Sv(j,1)=(2*pi/T(j))*Sd(j,1); Sa(j,1)=((2*pi/T(j))^2)*Sd(j,1); end

    figure(1) plot(T,Sd*100) title('Espectro de Respuesta SDOFS \beta=0.02') xlabel('Periodo T_n [s]'); ylabel('Sa [cm]');

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Espectro Lineal de Aceleracin

    Obtener el Espectro Lineal de Aceleracin, utilizando un algoritmo de Newmark, para una estructura de un grado de libertad, entre los periodos de T = 0 a T = 3 *s+, del registro n del terremoto del 27 de Febrero de 2010, considerando los amortiguamientos = *0,a,b+% (n = 1: Constitucin E-O; n = 2: Concepcin N-S; n = 3: Angol E-O; n=4: Curic E-O) El .txt del registro, contiene un vector con las aceleraciones en *g+, separadas por un intervalo t. A continuacin, se indican las especificaciones y condiciones iniciales de los registros:

    Registro t [s] N datos Desplazamiento Inicial

    Acelergrafo [cm]

    Velocidad Inicial

    Acelergrafo [cm/s]

    Constitucin E-O 0,005 28.657 -0,011 -0,144

    Concepcin N-S 0,005 28.338 -0,035 1,641

    Angol E-O 0,01 18.001 -0,003 0,099

    Curic E-O 0,01 18.001 0,011 0,036

    Para obtener el Espectro Lineal de Aceleracin se modela un sistema de un grado de libertad de la siguiente forma:

    Con la ecuacin diferencial de este problema como:

    tFtutKtutctutm

    donde:

    m: Masa del sistema en el tiempo t en [kg]

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    ( t): Aceleracin del sistema en el tiempo t en [m/s2] c: Viscosidad del sistema en el tiempo t en [Ns/m] u (t): Velocidad del sistema en el tiempo t en [m/s] K: Rigidez del sistema en el tiempo t en [N/m] u(t): Posicin del sistema en el tiempo t en [m] F(t): Fuerza externa sobre el sistema en el tiempo t en [N]

    Si se evala el sistema en un tiempo t + t:

    ttFttutKttutcttutm

    Notar que se consideran las propiedades masa, viscosidad y rigidez, constantes durante el intervalo t, tomndose para el anlisis, el valor de ellas en el tiempo t (principio del intervalo). Y luego se resta la expresin anterior con la ecuacin para el tiempo t, donde:

    tuttutu tuttutu tuttutu tFttFtF

    La ecuacin de equilibrio incremental se obtiene para el intervalo de tiempo t:

    tFtutKtutctutm

    donde: m(t): Masa del sistema al inicio del intervalo en [kg] (t): Incremento de la aceleracin del sistema en el intervalo en [m/s2] c(t): Viscosidad del sistema al inicio del intervalo en [Ns/m]

    u (t): Incremento de la velocidad del sistema en el intervalo en [m/s] K(t): Rigidez del sistema al inicio del intervalo en [N/m] u(t): Incremento de la posicin del sistema en el intervalo en *m+ F(t): Incremento de la fuerza externa sobre el sistema en el intervalo en *N+ La anterior ecuacin ser la que se resolver para cada intervalo t, para ella se conocen los

    siguientes datos provenientes de la resolucin del intervalo anterior: m(t), c(t), K(t), (t), u (t), u(t); adems de ser dato F(t), ya que son datos F(t) y F(t + t). Quedando como incgnitas ( t ),

    u (t) y u(t), o sea (t + t), u (t + t), u(t + t). En cada paso t la solucin realizando una integracin directa es:

    dututtutt

    t

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    dututtutt

    t

    Dado que no se conoce como cambia la aceleracin ni la velocidad durante el intervalo, se supone un tipo de variacin, usndose para este ejemplo, la de Aceleracin Lineal con = 1/6 del Mtodo de Newmark:

    Realizando los reemplazos respectivos:

    tuttutu tuttutu tuttutu

    Se obtiene:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Si de despejan u (t) y (t) en funcin de u(t), quedan las siguientes expresiones:

    tut

    tutut

    tu

    2

    33

    tutut

    tut

    tu

    366

    2

    Reemplazando en la ecuacin de equilibrio incremental:

    tFtutKtut

    tutut

    tctutut

    tut

    tm

    23

    33

    662

    Ordenando:

    tctut

    tutmtutut

    tFtutKtct

    tmt

    233

    6362

    Con:

    tKtct

    tmt

    tK

    36

    2 como la rigidez efectiva

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    tctut

    tutmtutut

    tFtF

    233

    6 como el incremento de fuerza

    efectiva

    Se obtiene el valor para u(t):

    tKtF

    tu

    Algoritmo Mtodo = 1/6 de Newmark:

    1) Se conocen las condiciones iniciales del problema: m(0), c(0), K(0), u (0), u(0), F(0), con

    ello se despeja (0) de la ecuacin de diferencial del problema:

    0

    000000

    m

    uKucFu

    2) Una vez conocidas las condiciones iniciales del problema o los datos finales del intervalo

    anterior: m(t), c(t), K(t), (t), u (t), u(t), F(t), se calculan K y F

    tKtct

    tmt

    tK

    36

    2

    tctut

    tutmtutut

    tFtF

    233

    6

    3) Calcular u( t ) y con ello se calculan u (t) y (t)

    tKtF

    tu

    tut

    tutut

    tu

    2

    33

    tutut

    tut

    tu

    366

    2

    4) Calcular ( t + t ), u ( t + t ), u( t + t ):

    tututtu tututtu

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    tututtu

    5) 5) Repetir desde el paso 2, ocupando (t + t), u (t + t), u(t + t) como los (t), u (t), u(t)

    del siguiente intervalo.

    El mtodo de Newmark, tiene lmites de convergencia y estabilidad, segn el t y el periodo T de la estructura:

    Lmite de convergencia: 39,0

    39,0t

    TTt

    Lmite de estabilidad: 55,0

    55,0t

    TTt

    Dado el t en el problema, debera considerarse el lmite de convergencia como criterio de eleccin del periodo ms pequeo a evaluar. En el caso del problema la fuerza externa se puede expresar en funcin de la aceleracin del registro g( t ), que viene con sus datos en [g], por lo cual, la fuerza externa se define como:

    81,9 tumtF g

    Como el problema es un sistema lineal, las propiedades de ste son constantes en todo momento:

    mtm

    ktK

    mktc 2 , con amortiguamiento del sistema

    Se debe realizar el Mtodo = 1/6 de Newmark para cada periodo. Luego se obtiene el mayor

    valor absoluto de aceleracin para cada periodo y con estos datos se construye el grfico Espectro

    v/s Periodo de la respuesta.

    Los espectros de respuesta normalmente entregan el espectro en unidades de [g], por lo cual, se

    debera dividir la mxima aceleracin absoluta, por 9,81.

    Notar que el Mtodo = 1/6 de Newmark tiene criterio de convergencia, por lo cual, el mnimo

    periodo a evaluar, debiese ser 39,0

    tT

    , luego asignar un paso ojal menor igual a 0,05 [s] en

    incrementacin del periodo, hasta evaluar T = 3 [s].

    A continuacin, se presentan los periodos mnimos a usar para cada registro y las condiciones

    iniciales del problema:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Registro t [s] T mnimo a

    usar[s]

    Desplazamiento Inicial

    Acelergrafo [m]

    Velocidad Inicial

    Acelergrafo [m/s]

    Constitucin E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144

    Concepcin N-S 0,005 0,05 > 0,0128 -0,00035 0,01641

    Angol E-O 0,01 0,05 > 0,0256 -0,00003 0,00099

    Curic E-O 0,01 0,05 > 0,0256 0,00011 0,00036

    Ya que el dato a evaluar es el periodo, el sistema se puede definir con una masa cualquiera y la

    rigidez del sistema quedar en funcin de m y T:

    22

    Tmk

    Todo lo anterior, hay que hacerlo para = 0%; = a% y = b%.

    Alguno de los espectros de respuesta se adjuntan a continuacin, con T = 0,005:

    0 0.5 1 1.5 2 2.5 30

    2

    4

    6

    8

    10

    12

    14

    16

    18

    20

    Sa (

    g)

    Periodo (s)

    Espectro Registro Constitucin Direccin E-O

    = 0

    = 0.03

    = 0.055

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    0 0.5 1 1.5 2 2.5 30

    1

    2

    3

    4

    5

    6

    7

    8

    Sa (

    g)

    Periodo (s)

    Espectro Registro Concepcin Direccin N-S

    = 0

    = 0.03

    = 0.055

    0 0.5 1 1.5 2 2.5 30

    5

    10

    15

    20

    25

    Sa (

    g)

    Periodo (s)

    Espectro Registro Angol Direccin E-O

    = 0

    = 0.03

    = 0.055

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    0 0.5 1 1.5 2 2.5 30

    2

    4

    6

    8

    10

    12

    14

    Sa (

    g)

    Periodo (s)

    Espectro Registro Curic Direccin E-O

    = 0

    = 0.03

    = 0.055

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    %ESPECTRO LINEAL DE ACELERACION DF=11;%Dgito Verificador dT=0.005;%Intervalo de periodos

    %Constitucin E-O %dt=0,005 Datos=28657 %di = -0,011 cm %vi = -0,144 cm/s

    %Angol E-O %dt=0,01 Datos=18001 %di = -0,003 cm %vi = 0,099 cm/s

    %Concepcin N-S %dt=0,005 Datos=28338 %di = -0,035 cm %vi = 1,641 cm/s

    %Curic E-O %dt=0,01 Datos=18001 %di = 0,011 cm %vi = 0,036 cm/s

    %fid=fopen('Constitucin.txt'); %registro=fscanf(fid,'%f',[28657,1]);

    % fid=fopen('Concepcin N-S.txt'); % registro=fscanf(fid,'%f',[18001,1])/981; % fclose(fid); % fid=fopen('Concepcin.txt','wt'); % fprintf(fid,'%f\n',registro); % fclose(fid);

    registro=load('Constitucin.txt'); x=length(registro); color=['b','r','k']; ddd=[0,(DF+5)/200,(DF+10)/200]; m=1000; df=m*(registro(2:x,:)-registro(1:x-1))*9.81; dt=0.005; T=0.05:dT:3;

    for j=1:length(ddd); k=m*(2*pi./T).^2; c=2*ddd(j)*(2*pi./T)*m; K=k+3/dt*c+6/dt^2*m*ones(1,length(T)); d=zeros(length(registro),length(T)); v=d; a=v; d(1,:)=-0.011/100; v(1,:)=-0.144/100; a(1,:)=(m*registro(1)*ones(1,length(T))*9.81-c.*v(1,:)-k.*d(1,:))/m; for i=1:x-1;

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    dF=df(i)*ones(1,length(T))+c.*(3*v(i,:)+dt/2*a(i,:))+m*(6/dt*v(i,:)

    +3*a(i,:)); dd=dF./K; dv=3/dt*dd-3*v(i,:)-dt/2*a(i,:); da=6/dt^2*dd-6/dt*v(i,:)-3*a(i,:);

    a(i+1,:)=a(i,:)+da; v(i+1,:)=v(i,:)+dv; d(i+1,:)=d(i,:)+dd;

    end

    Sa=max(abs(a)); figure(1) hold on plot(T,Sa/9.81,color(j))

    end ylabel('Sa (g)') xlabel('Periodo (s)') title('Espectro Registro Constitucin Direccin E-O') legend('\xi = 0',char(['\xi = ',num2str(ddd(2))]),char(['\xi =

    ',num2str(ddd(3))]),1)

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Espectro No Lineal de Aceleracin

    Se modela el mismo sistema del ejemplo anterior, consistente de un grado de libertad de la

    siguiente forma:

    La ecuacin diferencial de este problema es la siguiente:

    tFtftutctutm s Donde:

    m: Masa del sistema en el tiempo t en [kg]

    ( t ): Aceleracin del sistema en el tiempo t en [m/s2]

    c: Viscosidad del sistema en el tiempo t en [Ns/m]

    u ( t ): Velocidad del sistema en el tiempo t en [m/s]

    fs( t ): Fuerza interna del sistema en el tiempo t en [N]

    F( t ): Fuerza externa sobre el sistema en el tiempo t en [N]

    La fuerza interna se define:

    y

    y

    y

    y

    ys

    fktu

    fktu

    fktu

    si

    si

    si

    f

    f

    ktu

    tf

    donde:

    k: Rigidez del sistema en [N/m]

    fy: Tensin de fluencia en [N]

    Si se evala el sistema en un tiempo t + t:

    ttFttfttutcttutm s * Se consideran las propiedades masa, viscosidad y rigidez, constantes durante el intervalo t,

    tomndose para el anlisis, el valor de ellas en el tiempo t (principio del intervalo).

    Y luego se resta la expresin anterior con la ecuacin para el tiempo t:

    donde:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    tuttutu tuttutu

    tfttftutK ss

    tFttFtF

    Se obtiene la ecuacin de equilibrio incremental para el intervalo de tiempo t:

    tFtutKtutctutm con:

    m(t): Masa del sistema al inicio del intervalo en [kg]

    (t): Incremento de la aceleracin del sistema en el intervalo en *m/s2]

    c(t): Viscosidad del sistema al inicio del intervalo en [Ns/m]

    u (t): Incremento de la velocidad del sistema en el intervalo en [m/s]

    K(t): Rigidez segn ley elastoplstica en el instante t en [N/m]

    u(t): Incremento de la posicin del sistema en el intervalo en *m+

    F(t): Incremento de la fuerza externa sobre el sistema en el intervalo en [N]

    La anterior ecuacin ser la que se resolver para cada intervalo t, para ella se conocen los

    siguientes datos provenientes de la resolucin del intervalo anterior: m(t), c(t), K(t), (t), u (t), u(t); adems de ser dato F(t), ya que son datos F(t) y F(t + t). Quedando como incgnitas ( t ),

    u (t) y u(t), o sea (t + t), u (t + t), u(t + t).

    En cada paso t, la solucin realizando una integracin directa es:

    dututtutt

    t

    dututtutt

    t

    Dado que no se conoce como cambia la aceleracin ni la velocidad durante el intervalo, se supone

    un tipo de variacin, usndose para este ejemplo, la de Aceleracin Lineal con = 1/6 del Mtodo

    de Newmark:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Realizando los reemplazos respectivos:

    tuttutu tuttutu tuttutu

    Se obtiene:

    Si de despejan u (t) y t) en funcin de u (t), quedan las siguientes expresiones:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    tut

    tutut

    tu

    2

    33

    tutut

    tut

    tu

    366

    2

    Reemplazando en la ecuacin de equilibrio incremental:

    tFtutKtut

    tutut

    tctutut

    tut

    tm

    23

    33

    662

    Ordenando:

    tctut

    tutmtutut

    tFtutKtct

    tmt

    233

    6362

    Con:

    tKtct

    tmt

    tK

    36

    2; Rigidez efectiva

    tctut

    tutmtutut

    tFtF

    233

    6; Incremento de fuerza efectivo

    Se obtiene el valor para u( t ):

    tKtF

    tu

    Algoritmo Mtodo = 1/6 de Newmark:

    1) Se conocen las condiciones iniciales del problema: m( 0 ), c( 0 ), K( 0 ), u ( 0 ), u( 0 ), F( 0 ), con

    ello se despeja ( 0 ) de la ecuacin de diferencial del problema, tambin con ello, se obtienen la

    fuerza interna fs:

    0

    000000

    m

    uKucFu

    000 uKf s

    2) Una vez conocidas las condiciones iniciales del problema o los datos finales del intervalo

    anterior: m( t ), c( t ), K( t ), ( t ), u ( t ), u( t ), F( t ), fs( t - t ), se calculan fs( t ), F , K en el

    siguiente orden:

    tctut

    tutmtutut

    tFtF

    233

    6

    ys

    ys

    fkttuttf

    fkttuttf

    si

    siktK

    0

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    ys

    ys

    ys

    y

    ys

    fkttuttf

    fkttuttf

    fkttuttf

    si

    si

    si

    f

    f

    kttuttf

    tf

    tKtct

    tmt

    tK

    36

    2

    3) Calcular u( t ) y con ello se calculan u ( t ) y ( t ).

    tKtF

    tu

    tut

    tutut

    tu

    2

    33

    tutut

    tut

    tu

    366

    2

    4) Calcular ( t + t ), u ( t + t ), u( t + t ):

    tututtu tututtu tututtu

    5) Repetir desde el paso 2, ocupando (t + t), u (t + t), u(t + t), fs(t) como los (t), u (t), u(t),

    fs(t - t) del siguiente intervalo.

    El mtodo de Newmark, tiene lmites de convergencia y estabilidad, segn el t y el periodo T de

    la estructura:

    Lmite de convergencia: 39,0

    39,0t

    TTt

    Lmite de estabilidad: 55,0

    55,0t

    TTt

    Dado el t en el problema, debera considerarse el lmite de convergencia como criterio de

    eleccin del periodo ms pequeo a evaluar.

    En el caso del ejemplo, la fuerza externa se puede expresar en funcin de la aceleracin del

    registro g (t), que viene con sus datos en [g], por lo cual, la fuerza externa se define como:

    81,9 tumtF g

    Al ser este un sistema elastoplstico, las propiedades del sistema son las siguientes:

    mtm

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    ys

    ys

    fkttuttf

    fkttuttf

    si

    siktK

    0

    mktc 2

    ys

    ys

    ys

    y

    ys

    fkttuttf

    fkttuttf

    fkttuttf

    si

    si

    si

    f

    f

    kttuttf

    tf

    Con Amortiguamiento del sistema y fy, la tensin de fluencia:

    Dado que se pide el espectro no lineal de aceleracin, se debe realizar el Mtodo = 1/6 de

    Newmark para cada periodo, luego se obtiene el mayor valor absoluto de aceleracin para cada

    periodo, con estos datos, se construye el grfico Espectro v/s Periodo de la respuesta.

    Los espectros de respuesta normalmente entregan el espectro en unidades de [g], por lo cual, se

    debera dividir la mxima aceleracin absoluta, por 9,81.

    Notar que el Mtodo = 1/6 de Newmark tiene criterio de convergencia, por lo cual, el mnimo

    periodo a evaluar, debiese ser 39,0

    tT

    , luego asignar un paso ojal menor igual a 0,05 [s] en

    incrementacin del periodo, hasta evaluar T = 3 [s].

    A continuacin, se presentan los periodos mnimos a usar para cada registro y las condiciones

    iniciales del problema:

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Registro t [s] T mnimo a

    usar[s]

    Desplazamiento Inicial

    Acelergrafo [m]

    Velocidad Inicial

    Acelergrafo [m/s]

    Constitucin E-O 0,005 0,05 > 0,0128 -0,00011 -0,00144

    Concepcin N-S 0,005 0,05 > 0,0128 -0,00035 0,01641

    Angol E-O 0,01 0,05 > 0,0256 -0,00003 0,00099

    Curic E-O 0,01 0,05 > 0,0256 0,00011 0,00036

    Ya que el dato a evaluar es el periodo, el sistema se puede definir con una masa cualquiera y la

    rigidez del sistema quedar en funcin de m y T: 2

    2

    Tmk

    La obtencin del espectro para el ejemplo se realiza para cada tensin de fluencia desde

    fy = 0,2 * W, con un paso de B * W, hasta la tensin de fluencia con la que el sistema se comporte

    en forma lineal, es decir, hasta que en todos los puntos evaluados fs < fy.

    El resultado para el registro de Constitucin se presenta en el grfico adjunto. No se parte de

    perodos bajos puesto que la respuesta para intervalos de mucha rigidez distorsiona la

    visualizacin de la respuesta para el rango de anlisis usual.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    %ESPECTRO LINEAL DE ACELERACION

    %Resetea todas las variables

    DF=1; %Dgito Verificador dT=0.1;%Intervalo de periodos

    ddd=2*DF/100; %Amortiguamiento dfy=0.2; %Paso deltaFy = dfy*W

    %Se ingresa vector con distintos colores dados por las propiedades RGB,

    que no estn definidos por defecto con una letra en MATLAB, con el fin de

    graficar colores=[0.5 0.5 0.5;0.5 0 0.5;0 0.5 0.5;1 0.5 0;0.5 0.25 0;0.5 0 0;0 0.5

    0];

    %Se ingresa vector con los colores definidos por una letra en MATLAB,

    para graficar color=['y';'b';'k';'m';'c';'r';'g'];

    m=1000; %Masa del sistema (Este puede tomar cualquier valor >= 0 ) T=0.4:dT:3; %Rango de periodos para evaluar el espectro k=m*(2*pi./T).^2; %Clculo de la rigidez para cada periodo c=2*ddd*(2*pi./T)*m; %Clculo de la viscosidad para cada periodo

    %Carga de los datos del acelerograma del registro de Constitucin registro=load('Constitucin.txt');

    %El registro se encuentra en [g], se pasa a [m/s^2] registro=registro*9.81;

    %Se mide el largo de datos del registro x=length(registro);

    %Se obtiene el incremento de fuerza del registro, restando cada punto del

    registro con su anterior dato, y todo ello multiplicado por la masa df=m*(-registro(2:x,:)+registro(1:x-1)); %deltaF = - m * g(t)

    dt=0.005; %Paso de tiempo del registro para Constitucin

    %Clculo de la rigidez efectiva, se crea un vector del mismo tamao que

    la cantidad de periodos a evaluar K=k+3/dt*c+6/dt^2*m*ones(1,length(T));

    %Valores iniciales para ingresar al while fs=0.2*m*9.8; %Valor dado para poder ingresar al while fy=0.2*m*9.8*ones(1,length(T)); %Fluencia inicial de 0,2*W j=0;%Iniciacin del contador

    %Se crea un proceso repetitivo while, que seguir funcionando mientras algn fs alcance el valor de fluencia en algn punto del registro de la respuesta

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    while sum(max(abs(fs))~=fy)~=length(T); %Solo se saldr del while, si

    todos los valores de fs en valor absoluto, son menores a la fluencia

    evaluada

    j=j+1; %Contador %Para la primera iteracin, la fluencia fue iniciada afuera del while if j~=1; fy=fy+dfy*m*9.8*ones(1,length(T)); %Incrementar Fy en 0,2*W end

    %Iniciacin de matrices de posicin, velocidad, aceleracin y fs, en que cada columna representa un periodo y cada fila representa un instante de tiempo de la respuesta d=zeros(length(registro),length(T)); v=d; a=v; fs=a; %Condiciones iniciales del acelergrafo d(1,:)=-0.011/100; v(1,:)=-0.144/100; %Clculo de la aceleracin inicial del acelergrafo a(1,:)=(-m*registro(1)*ones(1,length(T))-c.*v(1,:)-k.*d(1,:))/m; %fs inicial fs(1,:)=0; %Primer fs con las condiciones iniciales fs(2,:)=k.*d(1,:);

    %Newmark inelstico for i=1:x-1;%Ir recorriendo cada instante delta t %Clculo del incremento de fuerza dF=df(i)+c.*(3*v(i,:)+dt/2*a(i,:))+m*(6/dt*v(i,:)+3*a(i,:));

    %El fs inicial es dado segn las condiciones iniciales, fuera del

    for, los siguientes se calculan, segn las condiciones del paso anterior if i~=1; %Funcin por tramos, si fs + k*du en valor absoluto, es menor a la fluencia, el nuevo fs ser fs + k*du, sino, tomar el valor de fy si fs + k*du es positivo o -fy si es negativo

    fs(i+1,:)=(fs(i,:)+k.*dd).*(abs(fs(i,:)+k.*dd)fy(j))-fy(j)*(fs(i,:)+k.*dd

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    end %Se obtiene el mximo valor de posicin en valor absoluto para cada

    periodo Sd=max(abs(d));

    %Clculo del Pseudo Espectro de Aceleracin PSa=Sd.*((2*pi)./T).^2;

    %Grfica PSa v/s T para cada fluencia, de tal manera que cada curva,

    quede con un %color distinto y/o grosor de lnea distinto. Notar que los espectros %se dividen por g, para que queden en unidades de [g] figure(1) if j=14 && j=7 && j=21 && j=28 && j=35 && j=42 && j

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    ',num2str(0.2+7*dfy)]),char(['Fy/W = ',num2str(0.2+8*dfy)]),char(['Fy/W =

    ',num2str(0.2+9*dfy)]),char(['Fy/W = ',num2str(0.2+10*dfy)]),char(['Fy/W

    = ',num2str(0.2+11*dfy)]),char(['Fy/W =

    ',num2str(0.2+12*dfy)]),char(['Fy/W = ',num2str(0.2+13*dfy)]),char(['Fy/W

    = ',num2str(0.2+14*dfy)]),char(['Fy/W =

    ',num2str(0.2+15*dfy)]),char(['Fy/W = ',num2str(0.2+16*dfy)]),char(['Fy/W

    = ',num2str(0.2+17*dfy)]),char(['Fy/W =

    ',num2str(0.2+18*dfy)]),char(['Fy/W = ',num2str(0.2+19*dfy)]),char(['Fy/W

    = ',num2str(0.2+20*dfy)]),char(['Fy/W =

    ',num2str(0.2+21*dfy)]),char(['Fy/W = ',num2str(0.2+22*dfy)]),char(['Fy/W

    = ',num2str(0.2+23*dfy)]),char(['Fy/W =

    ',num2str(0.2+24*dfy)]),char(['Fy/W = ',num2str(0.2+25*dfy)]),char(['Fy/W

    = ',num2str(0.2+26*dfy)]),char(['Fy/W =

    ',num2str(0.2+27*dfy)]),char(['Fy/W = ',num2str(0.2+28*dfy)]),char(['Fy/W

    = ',num2str(0.2+29*dfy)]),char(['Fy/W =

    ',num2str(0.2+30*dfy)]),char(['Fy/W = ',num2str(0.2+31*dfy)]),char(['Fy/W

    = ',num2str(0.2+32*dfy)]),char(['Fy/W =

    ',num2str(0.2+33*dfy)]),char(['Fy/W = ',num2str(0.2+34*dfy)]),char(['Fy/W

    = ',num2str(0.2+35*dfy)]),char(['Fy/W =

    ',num2str(0.2+36*dfy)]),char(['Fy/W = ',num2str(0.2+37*dfy)]),char(['Fy/W

    = ',num2str(0.2+38*dfy)]),char(['Fy/W =

    ',num2str(0.2+39*dfy)]),char(['Fy/W = ',num2str(0.2+40*dfy)]),char(['Fy/W

    = ',num2str(0.2+41*dfy)]),char(['Fy/W =

    ',num2str(0.2+42*dfy)]),char(['Fy/W = ',num2str(0.2+43*dfy)]),char(['Fy/W

    = ',num2str(0.2+44*dfy)]),char(['Fy/W =

    ',num2str(0.2+45*dfy)]),char(['Fy/W = ',num2str(0.2+46*dfy)]),char(['Fy/W

    = ',num2str(0.2+47*dfy)]),char(['Fy/W =

    ',num2str(0.2+48*dfy)]),char(['Fy/W = ',num2str(0.2+49*dfy)]),char(['Fy/W

    = ',num2str(0.2+50*dfy)]),char(['Fy/W =

    ',num2str(0.2+51*dfy)]),char(['Fy/W = ',num2str(0.2+52*dfy)]),char(['Fy/W

    = ',num2str(0.2+53*dfy)]),char(['Fy/W = ',num2str(0.2+54*dfy)]),1)

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    Superposicin modal

    Plantear las ecuaciones del movimiento del marco de acero de un vano y cinco pisos analizado en clase, pero considerando las vigas flexuralmente deformables y columnas axial-flexuralmente deformables; suponer que todas las columnas tienen el mismo momento de inercia I=9230cm4 y rea 62cm2, y las vigas un momento de inercia I=12250cm4 mayor, que el primer piso es de 4m de altura y los restantes de 3.5m de altura; y que el vano es de 7.5m de luz. Las masas de los pisos, excepto el ltimo, son todas iguales, la del ltimo es solo el 65% de una de ellas, y se supone que estn concentradas a nivel de cada piso. Plantear la ecuacin condensando los grados de libertad no asociados a masas (los grados de libertad inerciales son solamente los 5 desplazamientos laterales de los pisos).

    a) Determinar las formas modales, y calibrar la razn entre rigidez y masas de modo que el primer modo tenga un perodo 0.2s. Determinar la matriz de amortiguamiento de manera que este sea clsico, con 5% de amortiguamiento en todos los modos.

    b) Obtener la respuesta a la excitacin de la componente ux del registro de Melipilla del

    terremoto de 1985 (obtenerla del archivo Melip.m) a) integrando directamente con ode23 b) integrando directamente con aceleracin constante c) mediante superposicin modal con 2, 3 y 5 modos (integrando cada modo independientemente en la forma que quiera)

    c) Determinar la estimacin CQC del mximo momento flector en la base de columna del primer piso, el mximo del esfuerzo axial de la columna, y el mximo de una combinacin lineal del momento y el esfuerzo axial (los mismos valores de los coeficientes de la combinacin).

    d) Integrar la ecuacin:

    22 gy y y u

    considerando gu como el ux del registro de Melipilla del terremoto de 1985 del archivo

    rec_melip.mat, y para los 5 valores de correspondientes a las frecuencias modales del marco de un vano y cinco pisos y obtener de esas respuestas los mximos que deberan ser valores de las correspondientes ordenadas espectrales. Aplicar superposicin modal espectral CQC para estimar los mximos de: a) El desplazamiento del primer piso b) El desplazamiento del quinto piso c) El desplazamiento relativo de entrepiso del tercer piso d) El corte basal e) El corte del tercer entrepiso

    Comparar con los resultados de usar las coordenadas modales obtenidas para calcular los mximos exactos.

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    a) Matriz de Rigidez

    Se requiere obtener la matriz de rigidez de un edificio de 5 pisos compuesto por columnas y vigas.

    Las vigas se considerarn flexurablemente deformables y las columnas axial-flexurablemente

    deformables. De esta manera los grados axiales de las vigas no se consideraran, utilizando una

    matriz de rigidez reducida para vigas en posicin horizontal que no incluye los trminos axiales,

    mientras que la matriz de rigidez de cada columna contiene todos los trminos.

    Para mayor facilidad en el desarrollo se consideraran primero los grados de libertad que

    representan el desplazamiento lateral de cada piso, para luego considerar el resto. De esta forma

    los primero cinco trminos de la matriz de rigidez resultante sern los que se usarn para

    determinar la respuesta a nivel de piso debido al registro.

    La siguiente figura indica los grados de libertad globales considerados para el edificio de 5 pisos.

    Vigas

    La matriz de rigidez local se obtiene no considera los grados de libertad axiales, por lo que el

    elemento queda como lo indica la figura:

    Considerando la matriz elemental para una viga horizontal y tomando en cuenta slo los 4 grados

    de libertad locales indicados, la matriz de rigidez local del elemento viga se expresa como

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    2 2

    3

    2 2

    6 3 6 3

    3 2 32

    6 3 6 3

    3 3 2

    c vv

    L L

    L L L LE Ik

    L LL

    L L L L

    Columnas

    En relacin a la matriz de rigidez de la columna, se consideran todos los grados de libertad de la

    matriz de rigidez elemental. De esta forma, se tiene que el elemento columna se expresa en

    coordenadas locales como:

    Considerando los grados de libertad locales de la columna, la matriz de rigidez local del elemento

    columna se expresa como

    3 2 3 2

    2 2

    3 2 3 2

    2 2

    12 0 6 12 0 6

    0 0 0 0

    6 0 4 6 0 2

    12 0 6 12 0 6

    0 0 0 0

    6 0 2 6 0 4

    c c c c c c c c

    i i i i

    c c c c

    i i

    c c c c c c c c

    i i i i

    c

    c c c c c c c c

    i i i i

    c c c c

    i i

    c c c c c c c c

    i i i i

    E I E I E I E I

    h h h h

    E A E A

    h h

    E I E I E I E I

    h h h hk

    E I E I E I E I

    h h h h

    E A E A

    h h

    E I E I E I E I

    h h h h

    Se debe hacer la diferencia sobre la altura del primer piso con la del resto de los pisos, para lo cual

    se generarn matrices de rigidez para el primer piso y para el resto. Todas las vigas tienen las

    mismas propiedades, por lo cual no se har diferencia con las matrices de rigidez de stas.

    Los valores a utilizar son

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    22038.902 29000ctonf

    E ksicm

    412250vI cm 750vL cm

    262cA cm 49230cI cm

    400 ,

    350 ,i

    cm parael primer pisoh

    cm parael restodelos pisos

    0.05i

    Una vez realizado lo anterior, es necesario establecer la relacin entre los grados de libertad

    locales y globales. Para ello se enumeran los elementos, con la finalidad de establecer los vectores

    de conectividad que permitan ensamblar la matriz de rigidez del sistema. La figura que se indica a

    continuacin establece la numeracin de los elementos. Se requieren 5 vectores de conectividad

    para las 5 vigas y 10 vectores de conectividad para las 10 columnas.

    El procedimiento descrito a continuacin se puede estandarizar utilizando indexacin, como

    aparece en el Captulo de Anlisis Estructural del tutorial, pgina 23. Resolucin respuestas a la

    excitacin de la componente ux del registro de Melipilla

  • PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL

    Apuntes de MatLab para Dinmica de Estructuras II Semestre 2012 USM Campus Santiago RevB // Ricardo Bustamante H.

    % Matrices de rigidez barras

    % vigas

    kv=2*Ec*Iv/L^3*[6 3*L -6 3*L;

    3*L 2*L^2 -3*L L^2;

    -6 -3*L 6 -3*L;

    3*L L^2 -3*L 2*L^2];

    % columnas

    EA=Ec*Ac; EI=Ec*Ic;

    Kcp1 = [12*EI/hp1^3,0,-6*EI/hp1^2,-12*EI/hp1^3,0,-6*EI/hp1^2;

    0,EA/hp1,0,0,-EA/hp1,0;

    -6*EI/hp1^2,0,4*EI/hp1,6*EI/hp1^2,0,2*EI/hp1;

    -12*EI/hp1^3,0,6*EI/hp1^2,12*EI/hp1^3,0,6*EI/hp1^2;

    0,-EA/hp1,0,0,EA/hp1,0;

    -6*EI/hp1^2,0,2*EI/hp1,6*EI/hp1^2,0,4*EI/hp1];

    Kcp2 = [12*EI/hp2^3,0,-6*EI/hp2^2,-12*EI/hp2^3,0,-6*EI/hp2^2;

    0,EA/hp2,0,0,-EA/hp2,0;

    -6*EI/hp2^2,0,4*EI/hp2,6*EI/hp2^2,0,2*EI/hp2;

    -12*EI/hp2^3,0,6*EI/hp2^2,12*EI/hp2^3,0,6*EI/hp2^2;

    0,-EA/hp2,0,0,EA/hp2,0;

    -6*EI/hp2^2,0,2*EI/hp2,6*EI/hp2^2,0,4*EI/hp2];

    % Matrices de compatibilidad para cada barra

    % vigas

    a1=zeros(4,25); a1(1,6)=1; a1(2,7)=1; a1(3,8)=1; a1(4,9)=1;

    a2=zeros(4,25); a2(1,10)=1; a2(2,11)=1; a2(3,12)=1; a2(4,13)=1;

    a3=zeros(4,25); a3(1,14)=1; a3(2,15)=1; a3(3,16)=1; a3(4,17)=1;

    a4=zeros(4,25); a4(1,18)=1; a4(2,19)=1; a4(3,20)=1; a4(4,21)=1;

    a5=zeros(4,25); a5(1,22)=1; a5(2,23)=1; a5(3,24)=1; a5(4,25)=1;

    % columnas

    a6=zeros(6,25); a6(4,1)=-1; a6(5,6)=1; a6(6,7)=1;

    a7=zeros(6,25); a7(4,1)=-1; a7(5,8)=1; a7(6,9)=1;

    a8=zeros(6,25); a8(1,1)=-1; a8(2,6)=1; a8(3,7)=1; a8(4,2)=-1; a8(5,10)=1; a8(6,11)=1;

    a9=zeros(6,25); a9(1,1)=-1; a9(2,8)=1; a9(3,9)=1; a9(4,2)=-1; a9(5,12)=1; a9(6,13)=1;

    a10=zeros(6,25); a10(1,2)=-1; a10(2,10)=1; a10(3,11)=1; a10(4,3)=-1; a10(5,14)=1; a10(6,15)=1;

    a11=zeros(6,25); a11(1,2)=-1; a11(2,12)=1; a11(3,13)=1; a11(4,3)=-1; a11(5,16)=1; a11(6,17)=1;

    a12=zeros(6,25); a12(1,3)=-1; a12(2,14)=1; a12(3,15)=1; a12(4,4)=-1; a12(5,18)=1; a12(6,19)=1;

    a13=zeros(6,25); a13(1,3)=-1; a13(2,16)=1; a13(3,17)=1; a13(4,4)=-1; a13(5,20)=1; a13(6,21)=1;

    a14=zeros(6,25); a14(1,4)=-1; a14(2,18)=1; a14(3,19)=1; a14(4,5)=-1; a14(5,22)=1; a14(