Você está na página 1de 49

E.P.

Ingeniería Civil

Catedra
Albañilería Estructural
Aporta los conocimientos necesarios en el análisis, diseño, construcción,
evaluación, reparación y reforzamiento de estructuras de albañilería.

Universidad Nacional de Huancavelica


Escuela Profesional de Ingeniería civil.
Trabajo de Investigación
Desarrollo del Método de Iteración Inversa para el Cálculo
U.N.H. 2018
de las Formas Modales .

Presentado por: Cristhian R. Huancavelica, Perú.

El presente trabajo tiene como finalidad dar la solución del problema de valores característicos y
vectores característicos que se presentan en dinámica estructural , aplicando el método de iteración
inversa.

Huancavelica, Julio 2018


Índice general

INTRODUCCIÓN ........................................... 5

OBJETIVOS ................................................ 6

1 MODELO DE UN GRADO DE LIBERTAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9


1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 9
1.1.1 Ecuación de Movimiento del Sistema Dinámico . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.2 Respuesta Libre de Sistemas no Amortiguados . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.3 Respuesta Libre de Sistemas Amortiguados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.4 Respuesta Sobreamortiguada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.1.5 Respuesta de Sistemas Sujetos a Excitaciones Armónicas . . . . . . . . . . . . . . . . . 17

2 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD . . . . . . . . . . . . . . . . . . . . 22


2.1 ANÁLISIS DINÁMICO DE SISTEMAS DE MÚLTIPLES GRADOS DE LIBERTAD 22
2.1.1 Matrices de las Propiedades Estructurales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 EIGENVALORES 25
2.2.1 Frecuencias y Modos Naturales de Vibración . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Matrices Modales y Espectral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3 Características de los Modos Naturales de Vibrar . . . . . . . . . . . . . . . . . . . . . . . 30

2.3 MÉTODOS DE SOLUCIÓN DE PROBLEMAS DE EIGENVALORES 32

3 MÉTODO DE ITERACIÓN INVERSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33


4 PROGRAMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Bibliografía 48
INTRODUCCIÓN

Las vibraciones mecánicas son un fenómeno muy presente en la vida diaria y más aún en la práctica
de la ingeniería. El estudio de este fenómeno es de mucha ayuda al momento de diseñar una
estructura sometida a impactos, excitaciones armónicas o cargas periódicas generales, también es
útil al momento de efectuar un análisis de fatiga o de falla. Las técnicas clásicas para el análisis
dinámico requieren que el problema estructural sea modelado cómo un sistema de grados de libertad
(GDL) finitos con masas concentradas, al aumentar el número de GDL del modelo matemático se
aproxima mejor el comportamiento real del fenómeno físico. La elaboración de estos modelos de
masas concentradas, resortes y amortiguadores demanda experiencia y una comprensión profunda
del fenómeno que se quiere modelar, todo esto hace que el análisis dinámico sea una tarea compleja.

En las ultimas décadas se ha generalizado el uso del Método de los Elementos Finitos (MEF)tanto
en el análisis estructural como en la mayor parte de los ámbitos científicos y tecnológicos, esto se
debe a su probada efectividad en la solución de muchos problemas prácticos de las mas diversas
áreas así como a la relativa sencillez con la que puede ser implantada en un programa computacional.
Sin embargo, la aplicación de este método da lugar, en la mayoría de los casos, a modelos de gran
complejidad, lo que trae como consecuencia un incremento en el esfuerzo computacional.

En problemas de dinámica estructural, la solución de la ecuación de movimiento mediante su-


perposición modal tiene como paso fundamental la determinación de los valores característicos
(eigenvalores)y sus correspondientes vectores característicos (eigenvectores), este proceso consume
la mayor parte del tiempo de computadora requerido para llevar a cabo la solución, por lo que es
muy importante, sobre todo cuando se tiene un gran número de grados de libertad, que los métodos
empleados para la obtención de estos valores se optimicen de forma tal que se reduzcan en lo posible
las necesidades de memoria y tiempo de ejecución.
OBJETIVOS

Objetivo General
• Desarrollar un procedimiento para el análisis dinámico de estructuras usando el método
de iteración inversa.
Objetivos Específicos
• Introducir los conceptos y parámetros más importantes para el análisis dinámico de
estructuras.
• Introducir conceptos y parámetros más importantes del método de iteración inversa.
ANÁLISIS DINÁMICO DE SISTEMAS DE UN
GRADO DE LIBERTAD
Ecuación de Movimiento del Sistema Di-
námico
Respuesta Libre de Sistemas no Amorti-
guados
Respuesta Libre de Sistemas Amortigua-
dos
Respuesta Sobreamortiguada
Respuesta de Sistemas Sujetos a Excita-
ciones Armónicas

1 — MODELO DE UN GRADO DE LIBERTAD

1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD


Se define un sistema de un grado de libertad (1GDL) como aquel sistema mecánico que solo posee
una coordenada generalizada, es decir, se necesita solo una coordenada para definir completamente
su estado dinámico.
Este trabajo se busca presentar los principales conceptos y parámetros para el análisis dinámico
de estructuras, como son: frecuencia natural, amplitud de oscilación, amortiguamiento, factor de
amortiguamiento, entre otros. Se sabe que todo sistema estructural con comportamiento elástico
lineal posee tres propiedades esenciales: masa, rigidez y algún mecanismo de disipación de energía.
El modelo de disipación de energía mas usado es el modelo viscoso y es el que se usara para la
deducción de las ecuaciones de movimiento. Se presentan las soluciones analíticas para el caso de
vibraciones libres amortiguadas y no amortiguadas, el caso de respuesta a excitaciones armónicas
también es abordado. Para condiciones de excitación mas complejas como son cargas periódicas o
impulsivas, no se presentaran soluciones analíticas. La solución a estos problemas se realizara por
medio de métodos numéricos.

1.1.1 Ecuación de Movimiento del Sistema Dinámico


Si se modela el sistema mecánico como un bloque sometido a la acción de una fuerza variable en el
tiempo p(t) , acoplado a un resorte lineal y un amortiguador viscoso, como se muestra en la figura
1.1, y se desplaza el bloque de su posición de equilibrio estático, el bloque recibirá la acción de las
fuerzas resistivas del resorte fS , del amortiguador fD y la fuerza inercial fI .

Ecuaci
ón1.1

fI + fD + fS = p(t)

Los términos a la izquierda de la ecuación 1.1 son funciones de la posición del bloque o de alguna de
10 MODELO DE UN GRADO DE LIBERTAD

sus derivadas, usando la segunda Ley de Newton relacionamos la fuerza inercial con la aceleración
mediante la medida de inercia m.

fI = mü

Figura 1.1: Sistema masa, resorte y amortiguador de 1GDL.

Al asumir un modelo de disipación de energía del tipo viscoso la fuerza fD será la derivada de la
posición u̇ veces una constante de amortiguamiento c.

fD = cu̇

En el caso de usar un modelo de rigidez elástico lineal, la fuerza elástica fS será el desplazamiento u
del bloque veces una rigidez constante k.

fS = ku

Introduciendo los términos definidos anteriormente dentro de la ecuación 1.1 se tiene

Ecuaci
ón1.2

mü + cu̇ + ku = p(t)

la ecuación 1.2 es una ecuación diferencial no homogénea lineal de segundo orden.

1.1.2 Respuesta Libre de Sistemas no Amortiguados


Cuando la fuerza externa aplicada p(t) es cero la ecuación 1.2 toma la forma de una ecuación
diferencial homogénea lineal de segundo orden.
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 11

Ecuaci
ón1.3

mü + cu̇ + ku = 0

La solución de esta ecuación diferencial tiene la forma:

Ecuaci
ón1.4

u(t) = G exp(st)

En donde G es una constante compleja. Luego de sustituir la solución posible 1.4 en 1.3 se llega a la
expresión:

Ecuaci
ón1.5

(ms2 + cs + k)G exp(st) = 0

Dividiendo la ecuación 1.5 por m y definiendo ω 2 como

Ecuaci
ón1.6

k
ω2 =
m
Se llega a
c
s2 + s + ω2 = 0
m

La solución a la ecuación 1.6 depende de el valor de c, que para el caso de vibraciones no amortigua-
das, es decir c = 0, presenta las soluciones

Ecuaci
ón1.7

s1,2 = ±iω

y en virtud de la linealidad de la ecuación 1.3, la respuesta total del sistema se expresa como la suma
de los dos términos del tipo 1.4

Ecuaci
ón1.8

u(t) = G1 exp(iωt) + G2 exp(−iωt)

La relacionando las partes reales e imaginarias de cada constante compleja G1 = G1R + iG1I y
G2 = G2R + iG2I llegamos a la expresión general
12 MODELO DE UN GRADO DE LIBERTAD

Ecuaci
ón1.9

u(t) = (G1R + G2R ) cos ωt − (G1I − G2I ) sin ωt + i[(G1I + G2I ) cos ωt + (G1R − G2R ) sin ωt]

la respuesta del sistema debe ser una expresión real por lo tanto la parcela imaginaria de la ecuación
1.9 debe ser igual a cero

Ecuaci
ón1.10

u(t) = (GR + iGI ) exp(iωt) + (GR − iGI ) exp(−iωt)

al analizar la ecuación 1.10 se cae en cuenta de que el termino (GR + iGI ) exp) es el complejo
conjugado de (GR − iGI ) exp(−iωt) por lo que la suma de las partes imaginarias se cancela y sólo
queda la suma de las partes reales, de la siguiente manera

Ecuaci
ón1.11

(GR + iGI ) exp(iωt) = Ḡ exp[i(ωt + θ )]

Ecuaci
ón1.12

ℜ(Ḡ exp[i(ωt + θ )]) = Ḡ cos(ωt + θ )

Sumando las partes reales de cada parcela de la ecuación 1.10

Ecuaci
ón1.13

u(t) = Ḡ cos(ωt + θ )

Aplicando las condiciones de contorno u0 y u̇0 en t = 0 para obtener la constante Ḡ, se llega a la
ecuación de movimiento de un sistema de 1GDL libre de amortiguamiento, la figura 1.2 muestra la
evolución en el tiempo del parámetro u

Ecuaci
ón1.14

u̇0
u(t) = u0 cos ωt + sin ωt
ω

la ecuación 1.14 también puede ser expresada como una función sinusoidal de amplitud y ángulo de
fase definidos por:
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 13

Ecuaci
ón1.15

u(t) = ρ cos(ωt + θ )

en donde

Ecuaci
ón1.16
s  2
2 −υ̇0
ρ= (u0 ) +
ω

Ecuaci
ón1.17
 
−1 −υ̇0
θ = tan
ω

El termino ω conocido como frecuencia natural depende sólo de las propiedades m y k del sistema y
tiene unidades de radianes por segundo, también es conocido como frecuencia circular. Para convertir
esta frecuencia a la frecuencia cíclica es necesario usar la siguiente expresión

Ecuaci
ón1.18

ω
f=

o usando la definición de periodo T que es el tiempo necesario para completar un ciclo. El periodo
se mide en s y la frecuencia en Hz

Ecuaci
ón1.19

1
T=
f
14 MODELO DE UN GRADO DE LIBERTAD

Figura 1.2: Respuesta libre no amortiguada. (Fuente: Adaptado de Clough, 2003).

1.1.3 Respuesta Libre de Sistemas Amortiguados


Si existe algún mecanismo de disipación de energía en el sistema mecánico, es decir, c 6= 0 la
solución de la ecuación 1.6 adopta la forma

Ecuaci
ón1.20
r 
c c 2
s1,2 = − ± + ω2
2m 2m

El tipo de respuesta del sistema dependerá del valor que tendrá el término dentro del radical en 1.20

Respuesta Críticamente Amortiguada


En este caso particular la expresión dentro del radical debe ser igual a cero, es decir ccrit = 2mω, la
solución de la ecuación 1.6 toma la forma.

Ecuaci
ón1.21
ccrit
s1 = s2 = − = −ω
2m

luego de aplicar el mismo método de solución usado en el caso no amortiguado se llega a la solución
para el caso de amortiguamiento crítico.

Ecuaci
ón1.22

u(t) = [u0 (1 − ωt) + u̇t] exp(−ωt)

Respuesta Subamortiguada
Si el amortiguamiento es menor que el amortiguamiento crítico la expresión dentro del radical de
la ecuación 1.20 será negativa. Para este análisis se define el factor de amortiguamiento ζ como la
relación entre el amortiguamiento actual c y el amortiguamiento crítico ccrit
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 15

Ecuaci
ón1.23
c c
ζ= =
ccrit 2mω

las dos soluciones de 1.20 usando ζ son

Ecuaci
ón1.24

s1,2 = −ζ ω ± iωD

En donde ωD es la frecuencia natural de vibración del sistema sub-amortiguado y se define como

Ecuaci
ón1.25
p
ωD = ω 1−ζ2

Al reemplazar los valores de s de 1.24 en 1.4 se llega a una solución del tipo

Ecuaci
ón1.26

u(t) = [G1 exp(iωDt) + G2 exp(−iωDt)] exp(−ζ ωt)

luego de trabajar con los componentes imaginarios y reales de cada una de las constantes complejas
G1 y G2 , como se hizo en el caso no amortiguado, se llega a la expresión

Ecuaci
ón1.27

u(t) = [A cos(ωDt) + B sin(ωDt)] exp(−ζ ωt)

Al analizar la ecuación 1.27 se observa que el término dentro de corchetes es igual a la solución para
el caso no amortiguado, mas en este caso la frecuencia de vibración es ωD y no ω. El término a la
derecha del corchete representa el decremento logarítmico de la amplitud de oscilación de respuesta
del sistema. Usando las condiciones iniciales para la determinación de las constantes A y B se llega a
la ecuación final

Ecuaci
ón1.28

u̇0 + u0 ζ ω
u(t) = [uo cos(ωDt) + ( )] exp(−ζ ωt)
ωD

expresando la ecuación 1.28 en términos de amplitud y ángulo de fase


16 MODELO DE UN GRADO DE LIBERTAD

Ecuaci
ón1.29

u(t) = ρ cos(ωD + θ ) exp(−ζ ωt)

con

Ecuaci
ón1.30
(  2 ) 12
u̇0 + u0 ζ ω
ρ= u20 +
ωD

Ecuaci
ón1.31
 
−1 u̇0 + u0 ζ ω
θ = − tan
ωD u0

La figura 1.3 muestra la evolución en el tiempo del desplazamiento u. Observar que debido a la
acción del amortiguamiento viscoso la amplitud va decreciendo de manera logarítmica.

Figura 1.3: Respuesta libre subamortiguada. (Fuente: Adaptado de Clough, 2003).

1.1.4 Respuesta Sobreamortiguada


El caso de vibración sobreamortiguada es menos común en el modelado de sistemas estructurales,
sin embargo es importante presentar su ecuación de movimiento. Siguiendo el mismo estilo usado
en los cálculos anteriores, se tiene para las raíces de la ecuación 1.20.

Ecuaci
ón1.32
p
u1,2 = −ζ ω ± ω ζ2 −1
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 17

Después de hacer las sustituciones necesarias la solución de la ecuación de movimiento adopta la


forma general.

Ecuaci
ón1.33

u(t) = [A sinh ω̂t + B cosh ω̂t] exp(−ζ ωt)

Después de aplicar las condiciones iniciales a la ecuación anterior se obtiene una solución general
muy parecida a la del caso críticamente amortiguado pero con un decremento mayor, es decir, se
llega al comportamiento asintótico más rápido.

1.1.5 Respuesta de Sistemas Sujetos a Excitaciones Armónicas


Para modelar el caso de excitación armónica la parte derecha de la ecuación 1.2, función de excitación,
debe ser una función sinusoidal del tiempo. Se espera también que la respuesta del sistema sea
sinusoidal, con diferente amplitud y cierto desfase entre la frecuencia de aplicación de la carga y
la respuesta. La función propuesta para la solución será la misma que se usó en el caso anterior de
vibración libre. En primer lugar se estudiaría el caso de respuesta no amortiguada para luego analizar
el caso amortiguado.

Respuesta no Amortiguada
La ecuación para el caso de un bloque de masa m y sujeto a una excitación del tipo sinusoidal es

Ecuaci
ón1.34

müt + ku(t) = p(t)

Ecuaci
ón1.35

p(t) = p0 sin ω̄t

La función de excitación armónica pt ) es modelada por una carga de amplitud p0 y una frecuencia de
oscilación ω̄. Se observa que la ecuación 1.34 es una ecuación diferencial lineal no homogénea por lo
tanto la solución estará compuesta por la superposición de las soluciones particular y complementaria.
La solución complementaria es la solución a la ecuación 1.34 como si esta fuese una ecuación
homogénea es decir p(t) = 0 y tiene la siguiente forma.

Ecuaci
ón1.36

uc = A cos ωt + B sin ωt

La solución particular depende de la función p(t) y se usa la siguiente función de prueba para la
solución.
18 MODELO DE UN GRADO DE LIBERTAD

Ecuaci
ón1.37

u p = C sin ω̄t

Al reemplazar 1.37 en 1.34 se obtiene la constante C.

Ecuaci
ón1.38
p0
C=
k − mω̄ 2

k
Usando ω 2 = m y definiendo β = ω̄
ω se llega a

Ecuaci
ón1.39
 
p0 1
C=
k 1−β

La solución general será la superposición de las soluciones particulares y complementarias y tiene la


siguiente forma

Ecuaci
ón1.40
 
p0 1
u(t) = A cos ωt + B sin ωt + sin ω̄t
k 1−β2

Para encontrar el valor de las constantes A y B se usan las condiciones iniciales, en el caso de partir
del reposo la solución final queda.

Ecuaci
ón1.41
 
p0 1
u(t) = (sin ω̄t − β sin ωt)
k 1−β2

Analizando la ecuación 1.41 el término pk0h representa


i el desplazamiento del bloque en caso la carga
1
fuese aplicada estáticamente. El término 1−β 2 se conoce como factor de amplificación dinámica
de la amplitud de oscilación. La función sin ω̄t representa la respuesta del bloque a la frecuencia de
la carga y β sin ωt representa la respuesta del sistema en su frecuencia natural.

Respuesta Amortiguada
Ahora se introducirá el efecto de amortiguación en la ecuación dinámica del sistema, de la misma
manera se requiere una solución complementaria y una solución particular a la ecuación.
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 19

Ecuaci
ón1.42
p0
ü(t) + 2ζ ω u̇(t) + ω 2 = sin ω̄t
m

Para la cual se propone una solución complementaria como la del caso de vibración libre amortiguada.

Ecuaci
ón1.43

uc = [A cos ωDt + B sin ωDt] exp(−ζ ωt)

la solución particular debe modelarse como la suma de funciones sinusoidales ya que se espera un
desfase entre la frecuencia de aplicación de la carga y la frecuencia de la respuesta del sistema.

Ecuaci
ón1.44

u p = G1 cos ω̄t + G2 sin ω̄t

Para obtener la solución a la ecuación diferencial en base a las soluciones propuestas se procede del
mismo modo que con el caso no amortiguado. La solución particular se introduce en la ecuación
1.42 y se obtienen los valores de las constantes G1 y G2 . Las constantes A y B procedentes de la
solución complementaria y presentes en la solución general serán calculadas usando las condiciones
iniciales del problema.

Ecuaci
ón1.45
" #
p0 1  2

ut = [A cos ωDt + B sin ωDt] exp(−ζ ωt) + (1 − β ) sin ω̄t − 2ζ β sin ωt
k (1 − β 2 )2 + (2ζ β )2

Como se explicó en el caso no amortiguado la solución complementaria depende de las condiciones


iniciales, por lo tanto, representa la respuesta transitoria del sistema y debido a que esta multiplicada
por una función exponencial negativa su efecto tiende a decaer rápidamente. En adelante nos
concentraremos en la solución estable de la ecuación 1.42 representada por el segundo sumando de
1.45.
20 MODELO DE UN GRADO DE LIBERTAD

Figura 1.4: Respuesta a excitación armónica de un oscilador mecánico. (Fuente: Adaptado de Clough, 2003).

La ecuación 1.45 puede reescribirse e interpretarse de la siguiente manera

Ecuaci
ón1.46

ut = u(din) + u(trans)

u(din) = Du(trans)

Lo que indica que la respuesta total de un sistema dinámico está compuesta por dos parcelas:
1. La respuesta dinámica u(din) , que se obtiene mediante la multiplicación de la respuesta estática
u(est) por el factor de amplificación dinámica D (solución particular).
2. La respuesta transitoria del sistema, u(trans) , que depende de las condiciones iniciales (solución
complementaria).
3. El amortiguamiento disminuye la amplitud de la respuesta en el tiempo para las dos parcelas.

Respuesta en estado estable


Al expresar la segunda parte de la ecuación 1.45, parcela de la ecuación que no decae en el tiempo,
en términos de una amplitud y un desfase se tiene.

Ecuaci
ón1.47

ut = ρ sin(ω̄t − β )

donde la amplitud ρ es

Ecuaci
ón1.48
" # 12
p0 1
ρ=
k (1 − β 2 )2 + (2ζ β )2
1.1 ANÁLISIS DINÁMICO DE SISTEMAS DE UN GRADO DE LIBERTAD 21

y el angulo de desfase entre la excitación y la respuesta del sistema β

Ecuaci
ón1.49
 
−1 2ζ β
β = tan
1−β2

Respuesta Resonante
En el caso de tener un sistema sin amortiguamiento el factor de amplificación D depende de β ,
cuando β = 1 el factor de amplificación tiende a infinito y la amplitud de oscilación se vuelve infinita.
En el caso de un sistema con amortiguamiento, el factor de amplificación máximo se obtiene al
diferenciar la expresión 1.50 en β , obteniendo el valor máximo β pico en

Ecuaci
ón1.50
" # 21
ρ 1
D= =
p0 k (1 − β 2 )2 + (2ζ β )2

Ecuaci
ón1.51
p
β pico = 1 − 2ζ 2

Ecuaci
ón1.52

1
Dmax = p
2ζ 1 − 2ζ 2
ANÁLISIS DINÁMICO DE SISTEMAS DE MÚLTI-
PLES GRADOS DE LIBERTAD
Matrices de las Propiedades Estructurales
EIGENVALORES
Frecuencias y Modos Naturales de Vibra-
ción
Matrices Modales y Espectral
Características de los Modos Naturales
de Vibrar
MÉTODOS DE SOLUCIÓN DE PROBLEMAS DE
EIGENVALORES

2 — MODELO DE MÚLTIPLES GRADOS DE LIBERTA

2.1 ANÁLISIS DINÁMICO DE SISTEMAS DE MÚLTIPLES GRADOS DE LIBERTAD


La dinámica estructural tiene como fin encontrar la respuesta en el tiempo de una estructura sometida
a cargas variables en el tiempo. El problema de la dinámica de estructuras es bastante antiguo
y actualmente se dispone de varios métodos de solución de las ecuaciones dinámicas, cada uno
depende del tipo de resultado que se desea obtener. Existen métodos que son más demandantes
computacionalmente que otros por lo que se debe realizar un balance entre el costo computacional y
la precision de los resultados esperados.
Para efectuar el análisis dinámico se presupone que ya se cuenta con una matriz de rigidez, una
matriz de amortiguamiento y una matriz de masa. Estas matrices pueden ser obtenidas por distintos
métodos.

2.1.1 Matrices de las Propiedades Estructurales


Es necesario definir tres propiedades estructurales para el análisis dinámico, las cuales son: masa,
amortiguamiento y rigidez. Estas propiedades son definidas en forma matricial para un modelo con
número finito de grados de libertad.

Matriz de Masa
La matriz de masa es la representación discreta de la distribución continua de la masa de un sistema.
Al igual que con el caso del vector de cargas nodales externas, es posible discretizar una carga o
parámetro distribuido de dos diferentes modos: distribuyendo el parámetro sobre cada nodo (lumped)
o usando las funciones de forma (consistent).

Matriz de masa agrupada (Lumped Mass Matrix).


Esta matriz de masa se caracteriza por ser diagonal. En el caso de un elemento triangular o cua-
drangular se distribuye la tercera o cuarta parte, según sea el caso, de la masa sobre cada nodo. Los
efectos inerciales asociados a cada GDL translacional son tomados en cuenta, sin embargo, los GDL
rotacionales asociados a cada elemento no son considerados. La ventaja de esta matriz está en su
2.1 ANÁLISIS DINÁMICO DE SISTEMAS DE MÚLTIPLES GRADOS DE LIBERTAD 23

naturaleza diagonal, que la hace mucho más rápida de invertir en el análisis modal o de integración
directa.

Matriz de masa consistente (Consistent Mass Matrix).


En este tipo de distribución se usan las funciones de forma del elemento para hallar la matriz de
masa. Las funciones de forma aproximan el campo de desplazamientos como

Ecuaci
ón2.1

ū = NU Ū˙ = NU̇ Ū¨ = NÜ

Las cargas inerciales son fuerzas distribuidas en todo el volumen del cuerpo en análisis. Las cargas
de cuerpo se pueden distribuir como

Ecuaci
ón2.2
Z Z
N T f b dV = N T (ρ ü)dV
V V

usando las aproximaciones de 2.1 en 2.2

Ecuaci
ón2.3
Z 
T
ρN NdV Ü
V

se llega a la matriz de masa M

Ecuaci
ón2.4
Z
M=ρ N T NdV
V

La matriz de masa consistente sí toma en cuenta los efectos inerciales debido a los grados de libertad
rotacionales, es decir, es más exacta. La desventaja radica en que no es más diagonal y su inversión
se hace más cara en tiempo y espacio de almacenamiento desde un punto de vista computacional.
Las matrices presentadas producen errores apreciables al momento de analizar modos de vibración
altos, quinto o sexto modo, para estos análisis es necesario recurrir a otras formulaciones como son:
combinación de los dos métodos anteriores, agrupamiento HRZ, etc.

Matriz de Amortiguamiento
Se conoce como amortiguamiento al fenómeno por el cual se disipa la energía, de tal manera que la
amplitud de oscilación decrece. El amortiguamiento presente en la dinámica de estructuras puede ser;
de tipo viscoso, que depende de la velocidad u̇ ; de histeresis, debido a las deformaciones plásticas a
nivel microscópico y de Coulumb, asociado a la fricción.
24 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD

En general la matriz de amortiguamiento global del sistema no se genera del proceso de ensamble
de las matrices de amortiguamiento de los elementos, como es el caso de la matriz de masa o de
rigidez. La matriz de amortiguamiento representa la disipación de energía global del sistema. El
mecanismo más común usado en el análisis de estructuras es el mecanismo de amortiguamiento
proporcional (Proportional Damping) o Amortiguamiento de Rayleigh. Este modelo relaciona las
matrices globales M y K con C de la siguiente manera:

Ecuaci
ón2.5

M + βK
C = αM K

Para determinar las constantes α y β es necesario definir el espectro de análisis, siendo ω1 la primera
frecuencia natural y ω2 máxima frecuencia de interés, usando

Ecuaci
ón2.6
 
ζ1 ω2 − ζ2 ω1
α = 2ω1 ω2
ω2 2 − ω1 2

Ecuaci
ón2.7
 
ζ2 ω2 − ζ1 ω1
β =2
ω2 2 − ω1 2

Se observa que la matriz C es función de M y K , y dependiendo del fenómeno a ser analizado se


puede usar sólo el primer o segundo término de la ecuación 2.5 ya que cada término amortigua
diferentes modos de vibración. El término αM amortigua mejor los modos de vibración bajos.
El término β K amortigua los modos de vibración más altos que son de poca importancia para la
dinámica estructural ya que es considerado ruido.
La figura 1.12 muestra la composición de la matriz de amortiguamiento por medio de una función
lineal, proporcional a la rigidez, y una función recíproca, proporcional a la masa, cada función
amortigua modos de vibración diferentes.

Figura 2.1: Amortiguamiento proporcional o de Rayleigh. (Fuente: Cook, 1989).


2.2 EIGENVALORES 25

2.2 EIGENVALORES
2.2.1 Frecuencias y Modos Naturales de Vibración
Las ecuaciones de equilibrio dinámico de una estructura de varios grados de libertad, representada
en la figura 2.2, sujeta a la acción de fuerzas dinámicas como son: sismo, vientos, vibraciones de
maquinarias,etc., se establecen mediante la ecuación de movimiento:

Ecuaci
ón2.8

[M] {ü} + [C] {u̇} + [K] {u} = {p(t)}

La cual representa un sistema de N ecuaciones diferenciales lineales generalmente acopladas de


segundo orden, donde [M], [C] Y [K] son las matrices de masa, amortiguamiento y rigidez respecti-
vamente de la estructura, {ü}, {u̇} y {u} los vectores de aceleración, velocidad y desplazamiento
asociados a los grados de libertad de la estructura y {p(t)} simboliza las fuerzas actuales sobre el
sistema asociadas al vector desplazamiento.

Figura 2.2: Estructura sujeta a cargas dinémicas.

De acuerdo con el método de superposición modal, el vector de desplazamiento {u} puede ser
obtenido sumando la contribución de los vectores modales, que se obtienen al efectuar el producto
de los modos naturales de vibrar {φn } por sus respectivas amplitudes modales yn es decir.

Ecuaci
ón2.9

N
{u} = {φ1 }y1 + {φ2 }y2 + {φ3 }y3 + . . . + {φN }yN = ∑ {φn }yn
n=1

expresado en forma matricial:

Ecuaci
ón2.10

{u} = [φ ]{y}

donde N es el numero de grados de libertad que tenga la estructura, [φ ] la matriz modal integrada
por los modos naturales de vibrar y {y} el vector de coordenadas generalizadas formado por las
amplitudes modales.
26 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD

Ahora bien, la matriz modal se obtiene al resolver la ecuación de movimiento para el caso de
vibración libre sin amortiguamiento; por otra parte, las componentes del vector {y} se calculan al
desacoplar la ecuación (2.8), para ello se sustituye 2.10 en esta ecuación, se premultiplican ambos
miembros de la ecuación por el vector {φnT } y, después de aplicar las condiciones de ortogonalidad,se
obtiene N ecuaciones,establecidas en (2.11),que puedan ser resueltas en forma individual como
ecuaciones de un grado de libertad.
Una vez obtenidos la matriz [φ ] y el vector {y}, se sustituyen en la ecuación 2.10 para obtener
los vectores de desplazamiento, velocidad y aceleración asociados a los grados de libertad de la
estructura en estudio.

Ecuaci
ón2.11

p∗n (t)
ÿn (t) + 2ξn ωn ẏn (t) + ω 2 n yn (t) = n = 1, 2, . . . , N
m∗n

en donde:

Ecuaci
ón2.12

p∗n (t) = {φn }T {p(t)}


m∗n (t) = {φn }T [M]{phin }
kn∗ (t) = {φn }T [K]{phin }
c∗n (t) = {φn }T [C]{phin }
c∗n
ξn =
2ωn mn
kn
ωn2 =
mn

De lo anterior se establece la necesidad de obtener las configuraciones modales o modos naturales de


vibración de la estructura, para lo cual primeramente se procede a identificar este comportamiento.
Si se analiza el comportamiento de una estructura sometica a vibración libre sin amortiguamiento, a
la cual se desplaza de su posición de equilibrio estático, se observa que esta oscila alrededor de esta
posición. El tiempo que tarda en describir una oscilación completa se le denomina periodo natural
de vibración (T ), el numero de oscilaciones que ocurren en una unidad de tiempo es conocido
como frecuencia natural cíclica ( f ) y a la velocidad angular del movimiento se le nombra como
(ω) o frecuencia natural circular. El termino “natural” se usa para enfatizar el hecho de que estas
características dependen únicamente de la masa y rigidez de la estructura sin la intervención de
ninguna fuerza externa.
2.2 EIGENVALORES 27

Ecuaci
ón2.13

1 2π
f= , ω=
T T

El edificio, al ser desplazado de su posición de equilibrio estático, adopta distintas configuraciones


denominadas modos. El modo en el cual las masas pasan totalmente de un lado a otro se le conoce
como modo fundamental o primer modo de vibración. Si en la configuración aparece un punto de
desplazamiento nulo, se le llama segundo modo de vibrar, si se presentan dos puntos se llama tercer
modo de vibrar y así sucesivamente presentándose tantos modos de vibrar, como grados de libertad
tenga la estructura. Los períodos de los modos inferiores son mayores que los correspondientes a los
modos superiores.
Consideremos una estructura idealizada a cuatro grados de libertad para ilustrar los conceptos
anteriores.

Figura 2.3: Configuraciones modales (masas concentradas).

Como se menciono con anterioridad, las frecuencias naturales y sus correspondientes configuraciones
modales, requeridas para llevar acabo el método de superposición modal, se obtienen al analizar la
estructura de interés, sometida a vibración libre sin amortiguamiento.
La ecuación de movimiento de la estructura así establecida es:
28 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD

Ecuaci
ón2.14

[M] {ü} + [K] {u} = 0

Se conoce que al someter un sistema con estas características a un desplazamiento y/o velocidad
inicial, se produce un movimiento armónico de duración infinita, cuya solución se expresa como:

Ecuaci
ón2.15

{u(t)} = {a} sin(ωt + θ )

en la cual {a} representa la configuración del sistema desplazado, este vector es independiente del
tiempo y ω es la frecuencia natural del sistema. Derivando dos veces se obtiene:

Ecuaci
ón2.16

{ü(t)} = −ω 2 {a} sin(ωt + θ ) = −ω 2 {u(t)}

al sustituir (2.15) y (2.16) se obtiene:

Ecuaci
ón2.17

−ω 2 [M]{u(t)} + [K]{u(t)} = 0

si se efectúa una factorización resulta:

Ecuaci
ón2.18

([K] − ω 2 [M]){u(t)} = 0

lo cual representa un sistema de ecuaciones lineales homogéneo; dado que {u(t)} 6= 0 es la condición
necesaria para que el sistema tenga solución diferente de la trivial, se requiere que el determinante
del sistema sea nulo:

Ecuaci
ón2.19

det. [K] − ω 2 [M] = 0


A esta ecuación se le conoce como ecuación característica del sistema.


Dado que [K] y [M] son matrices simétricas y al menos una de ellas positiva definida y la otra
positiva semidefinida, la solución de (2.19) proporciona N raíces reales positivas que son los
valores característicos, las raíces cuadradas de ellas nos determinaran las frecuencias naturales
ω. Sustituyendo para cada valor de la frecuencia ωn en (2.18) y la ecuación matricial, obtenemos
2.2 EIGENVALORES 29

los N vectores característicos {un } asociados ωn . Seleccionando arbitrariamente alguno de los


componentes de {un } se obtienen los valores relativos entre los componentes del modo, estos valores
los llamaremos {φn }.

2.2.2 Matrices Modales y Espectral


Comúnmente se representa a ω 2 como λ , planteándose la ecuación característica siguiente:

Ecuaci
ón2.20

[K]{φ } = λ [M]{φ }
λ1 . . . λN = Eigenvalores.
{φ }1 . . . {φ }N = Eigenvalores.

La configuracion modal natural {φn } correspondiente a la frecuencia natural ωn contiene los elemen-
tos φ jn donde j indica el grado de libertad al cual se refiere. Los N eigenvectores pueden presentarse
entonces en una matriz, en la que cada columna representa un modo natural. A estas matriz se le
conoce como matriz modal de (2.20).

Ecuaci
ón2.21

 
φ11 . . . φ1n
[φ ] = [φ jn ] =  ... .. .. 

. . 
φn1 . . . φnn

Los N eigenvalores λ1 , λ1 . . . λN se ensamblan en una matriz diagonal que designaremos [Λ] conocida
como matriz espectral.

Ecuaci
ón2.22

 
λ1
[Λ] = 
 .. 
. 
λN

Mediante las ecuaciones (2.20), (2.21) y ((2.22) se establece la siguiente relación:

Ecuaci
ón2.23

[K][φ ] = [Λ][M][φ ]
30 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD

2.2.3 Características de los Modos Naturales de Vibrar


Los modos naturales de vibrar presentan tres características fundamentales:
Ortogonalidad
Normalización
Expansión modal de los desplazamientos
Estas propiedades son muy importantes para la aplicación del método que se desarrollara.

Ortogonalidad de los Modos


Las siguientes propiedades de Ortogonalidad están fundamentadas en la simetría de las matrices [K]
y [M], ademas al menos una de ellas debe ser positiva definida.
1. Ortogonalidad con respecto a la matriz de masa.

Ecuaci
ón2.24

{φ j }T [M]{φm } = 0 cuando j 6= m

2. Ortogonalidad con respecto a la matriz de rigidez.

Ecuaci
ón2.25

{φ j }T [K]{φm } = 0 cuando j 6= m

Demostración:

Sustituyendo en (2.20) para los eigenpares j-ésimo y m-ésimo se obtiene las siguientes ecuaciones
respectivamente:

Ecuaci
ón2.26

[K]{φ j } = λ j [M]{φ j }

Ecuaci
ón2.27

[K]{φm } = λm [M]{φm }

al premultiplicar (2.26) por {φm }T y (2.27) por {φ j }T resulta:

Ecuaci
ón2.28

{φm }T [K]{φ j } = λ j {φm }T [M]{φ j }


2.2 EIGENVALORES 31

Ecuaci
ón2.29

{φ j }T [K]{φm } = λm {φ j }T [M]{φm }

la transpuesta de la ecuación (2.29)

Ecuaci
ón2.30

{φm }T [K]T {φ j } = λm {φm }T [M]T {φ j }

al efectuar (2.28) − (2.30) y tomando en cuenta la simetría de las matrices [K] = [K]T y [M] = [M]T
se obtiene:

Ecuaci
ón2.31

0 = (λ j − λm ){φm }T [M]{φ j }

por lo que para j 6= m

Ecuaci
ón2.32

{φm }T [M]{φ j } = 0

La ecuación (2.32) comprueba la ecuación (2.24). Sustituyendo (2.32) en (2.28) se verifica (2.25)
La Ortogonalidad de los modos implica que los siguientes productos matriciales generen matrices
diagonales:

Ecuaci
ón2.33

[K ∗ ] = [φ ]T [K][φ ]

Ecuaci
ón2.34

[M ∗ ] = [φ ]T [M][φ ]

Normalización de los Modos


La magnitud de los componentes de cada configuración modal no se encuentran definidas, únicamente
lo están las relaciones entre ellas. Generalmente se aplica un factor de escala para estandarizar las
amplitudes de todas las configuraciones modales; a este proceso se le conoce como normalización.
En algunos casos se normaliza de tal forma, que el mayor elemento de cada eigenvector sea unitario;
sin embargo, al implantar el uso de las computadoras en el análisis dinámico, se ha generalizado el
use de la normalización con respecto a la matriz [M ∗ ]. De tal forma que:
32 MODELO DE MÚLTIPLES GRADOS DE LIBERTAD

m∗ j = {φ j }T [M]{φ j } = 1

con esta normalización se obtiene:

Ecuaci
ón2.35

[M ∗ ] = [φ ]T [M][φ ] = [I]

Cuando los modos son normalizados de esta manera se dice que son ortonormales. Anélogamente
podemos normalizar con respecto a la matriz de rigideces. obteniéndose:

k∗ j = {φ j }T [M]{φ j } = λ j m∗ j = λ j

deforma analoga a la ecuación (2.35) resulta:

Ecuaci
ón2.36

[K ∗ ] = [φ ]T [K][φ ] = [Λ]

Expansión Modal de los Desplazamientos


Cualquier conjunto de N vectores independientes puede ser usado como una base para representar
otro vector de orden N. Por tanto, el total de configuraciones modales puede ser usados como base
para representar el vector de desplazamiento {u}.

Ecuaci
ón2.37

N 
{u(t)} = ∑ φ j y j = [φ ]{y}
j=1

2.3 MÉTODOS DE SOLUCIÓN DE PROBLEMAS DE EIGENVALORES


Para la solución de la ecuación característica (2.20) se puede desarrollar el determinante señalado en
la ecuación (2.19) y obtener de este los eigenvalores para, posteriormente, sustituirlos en (2.20) y
calcular los eigenvectores correspondientes; sin embargo este procedimiento se vuelve poco práctico
cuando el número de grados de libertad es mayor a cuatro, además de estar propenso a generar
grandes errores.
En la actualidad existe una gran variedad de técnicas para la solución de la (2.20)), como son los
métodos de transformación, los de iteración vectorial, etc.
3 — MÉTODO DE ITERACIÓN INVERSA

Por medio de esta técnica se obtiene el primer eigenvalor y su correspondiente eigenvalor. Para
poder hacer uso de este método se requiere que [K] sea definida positiva, en caso de ser semidefinida
deberá aplicarse un desplazamiento de origen o corrimiento.
Procedimiento:
Se inicia la iteración proponiendo una configuración vectorial para le primer eigenvector,
digamos {x1 }, y haciendo λ = 1.
De la ecuación (2.20) se obtiene una nueva aproximacion del eigenvector denominada {x̄ p+1 }
con p = 1, 2, 3, . . .

Ecuaci
ón3.1

[K]{x̄ p+1 } = [M]{x p }

Con fin de garantizar que la nueva aproximación cumpla la condición de ortonormalidad con
respecto a la matriz de masa [M] se aplica:

Ecuaci
ón3.2

{x̄ p+1 }
{x p+1 } = 1
({x̄ p+1 }T [M]{x̄ p+1 }) 2

De esta forma {x p+1 } se aproxima a {φ1 } al tener p a ∞. Siempre y cuando el vector propuesto {x1 }
no sea ortogonal al verdadero eigenvector {φ1 } con respecto a la matriz de masa [M].
Con el fin de implementar este método en programas de computadoras, se modifica levemente el
proceso anterior, procediendo como sigue:
Asumiendo que {y1 } = [M]{x1 }, se evalua para p = 1, 2, . . .
34 MÉTODO DE ITERACIÓN INVERSA

Ecuaci
ón3.3

[K]{x̄ p+1 } = {y p }

Ecuaci
ón3.4

{ȳ p+1 } = [M]{x̄ p+1 }

Ecuaci
ón3.5

{ȳ p+1 }
{ȳ p+1 } = 1
({x̄ p+1 }T {ȳ p+1 }) 2

El valor de λ se obtiene aplicando el cociente de Rayleigh:

Ecuaci
ón3.6

{x̄ p+1 }T {y p }
ρ ({x̄ p+1 }) =
{x̄ p+1 }T {ȳ p+1 }

Siempre y cuando {y1 }T {φ1 } 6= 0:

Cuando p → ∞ entonces {y p+1 } → [M]{φ1 } y ρ({x̄ p+1 }) → λ1

Sea r es el numero de dígitos de precision requeridos en el eigenvector, la convergencia se lograra


cuando se cumple:

Ecuaci
ón3.7

|ρ ({x̄ p+1 }) − ρ ({x̄ p })|


≤ 10−2r
ρ ({x̄ p+1 })

obteniéndose 2r dígitos de precision en el eigenvalor.


Sea L la ultima iteración, entonces el primer eigenpar esta definido por:

Ecuaci
ón3.8

{λ1 } = ρ ({x̄L+1 })
35

Ecuaci
ón3.9

{x̄L+1 }
{φ 1} = 1
({x̄L+1 }T {ȳL+1 }) 2

A continuación se tratara sobre las propiedades de convergencia del método de iteración inversa.
Para esto es conveniente cambiar la base de las coordenadas del elemento finito a la base de los
eigenvectores.

Ecuaci
ón3.10

{x p } = [φ ]{z p }

donde [φ ] es la matriz de eigenvectores [φ ] = [{φ1 }, . . . , {φn }]. La ecuación fundamental de la


iteración vectorial(3.1)(sin escalamiento) es:

Ecuaci
ón3.11

[K]{x p+1 } = [M]{x p }

Aplicación (3.10) a {x p } y {x p+1 }, sustituyendo en (3.11), premultiplicando por {φ } y usando las


relaciones de ortogonalidad [φ ]T [K][φ ] = [Λ] y [φ ]T [M][φ ] = [I], se obtiene:

Ecuaci
ón3.12

[Λ]{z p+1 } = {z p }

donde [Λ] = diag.(λi ). Comparando (3.12) con (3. 11) se encuentra que las iteraciones son del
mismo tipo con [K] = [Λ] y [M] = [I], por lo tanto teóricamente son equivalentes así como sus
correspondientes propiedades de convergencia. Pero las características de convergencia de (3.12)
son relativamente fáciles de investigar, puesto que los eigenvalores son los elementos de la diagonal
de [Λ] y los eigenvectores son los vectores unitarios {ei }.
donde:

Ecuaci
ón3.13

iesima posición
{ei }T = {0 . . . 0 1 0 . . . 0}

En el algoritmo de la iteración inversa el vector inicial de iteración {x1 } no debe ser ortogonal a {φ }.
Equivalentemente, en (3. 12) el vector de iteración {z1 } debería ser no ortogonal a {e1 } .Asumiendo
que:
36 MÉTODO DE ITERACIÓN INVERSA

Ecuaci
ón3.14

{z1 }T = {1 1 1 . . .}

y usando (3. 12) para p = 1, ldots, L, se obtiene

Ecuaci
ón3.15
( L  L  L )
1 1 1
{zL+1 }T = ...
λ1 λ2 λn

con λ1 < λ2 . Para demostrar que {zL+1 } converge a un múltiplo de {e1 } cuando L → ∞, se multiplica
{zL+1 } en (3. 15) por (λ1 )L para obtener:

Ecuaci
ón3.16

 

 1 

 (λ1 /λ2 )
 

{z̄L+1 } = ..


 . 


(λ1 /λn )
 

de donde se observa que {z̄L+1 } converge {e1 } a medida en que L → ∞. Por lo tanto {zL+1 } converge
un multiplo de {e1 } cuando L → ∞. Para evaluar el orden y la razon de convergencia en la presente
iteración se aplica:

Ecuaci
ón3.17

k{z̄L+1 } − {e1 }k2 λ1


lı́m =
L→∞ k{z̄L } − {e1 }k2 λ2

Donde :
k{x}k2 = Modulo de vector {x}

Se observa que la convergencia es lineal y la razón de convergencia es λ1 , λ2 . De acuerdo a esto, si


λ1 < λ2 la relación entre λ1 y λ2 determina la rapidez de convergencia del vector iterado hacia el
eigenvector {φ1 }.
En el caso de que existan eigenvalorcs múltiples, λ1 = λ2 = . . . = λw , la razón de convergencia será
dada por λ1 y el siguiente eigenva1or diferente λw .
Aplicando el cociente de Rayleigh a (2.20) se tiene:
37

Ecuaci
ón3.18

{z p }T {z p }
ρ({z p+1 }) =
{z − p + 1}T {z p+1 }

Si se considera la ultima iteracón con p = L. Sustituyendo para {zL } y {zL+1 } de (3.15) en (3.18),
entonces.

Ecuaci
ón3.19

λ1 ∑ni=1 (λ1 /λi )2L−1


ρ({zL+1 }) = 2L
∑ni=1 (λ1 /λi )

por lo tanto:

Cuando L → ∞, entoces ρ({zL+1 }) → λ1

Por tanto, la convergencia es lineal como una razón igual a (λ1 /λw )2 . A partir de la ultima razón de
convergencia, se deduce que si un eigenvector es conocido con un error ε, entonces el cociente de
Rayleigh producirá una aproximación al correspondiente eigenvalor con un error de ε 2 .
4 — PROGRAMA

Código de programación - PYTHON (Extensión para desarrollar operaciones con matrices)

########################
# MATRIX v 1.0 #
# #
########################

def check _ matrix (m 1, m 2):


"""
Check matrix equal dimensions
: param m 1: Matrix 1
: param m 2: Matrix 2
: return : Bool
"""
if len ( m 1) == len (m 2):
cond = True
for i in range ( len ( m 1)):
if len ( m 1[ i ]) == len (m 2[ i ]):
cond = cond and True
else :
cond = cond and False
return cond
else :
return False
39

def matrix _ solve _ matrix (m , m 2):


m_ f = [[ i *0 for i in j ] for j in m 2]
m3 = Matrix ([[ i for i in j] for j in m 2]). T
l_ c = []
for i in range ( len ( m 3)):
l_ c. append ( Matrix ([ m 3[ i ]]). T)
l_ r = []
for i in range ( len ( l_c )):
column = matrix _ solve (m , l _c[ i ])
l_ r. append ( column )
for i in range ( len ( m_f )):
for j in range ( len ( m_f [0])):
m_ f[i ][ j ] = l _r[ j ][ i ][0]
return Matrix (m _f)

def trn ( self ):


"""
Function to calculate transpose of matrix
: param self : Class Matrix
: return : Transpose of Matrix
"""
m1 = [[0 * i * j for i in range ( len ( self .m ))] for j in range ( len ( self .m [0
for i in range ( len ( self .m )):
for j in range ( len ( self .m [i ])):
m 1[ j ][ i] = self . m[i ][ j ]
return Matrix (m 1)

def identity (m ):
"""
Create a identity matrix
: param m: Integer , size of matrix .
: return : Identity matrix
"""
return Matrix ([[1 if i == j else 0 for i in range ( m )] for j in range (m )])

def zeros ( height , width ):


"""
Create a zeros matrix
: param height : Integer , height of matrix
40 PROGRAMA

: param width : Integer , width of matrix


: return : Zeros Matrix of size width x height
"""
zero = []
for i in range ( height ):
zero 1 = []
for j in range ( width ):
zero 1. append (0.0)
zero . append ( zero 1)
return Matrix ( zero )

def matrix _ solve (m , column ):


"""
: param m: Matrix , system equation .
: param column : Column Matrix , system equation .
: return : Column matrix , result of system equation .
For L . Code by : Michael Halls - Moore """
n = len (m)
l _1 = zeros (n , n)
for i in range (n ):
for k in range (i + 1):
tmp _ sum = sum (l _1[ i ][ j ] * l _1[ k ][ j] for j in range ( k ))

if i == k:
l _1[ i ][ k ] = ( m[i ][ i ] - tmp _ sum ) ** 0.5
else :
l _1[ i ][ k ] = (1.0 / l _1[ k ][ k ] * (m[ i ][ k] - tmp _ sum ))
z = zeros (n , 1)
for i in range (n ):
sum 1 = 0
for k in range (i ):
sum 1 = sum 1 + l _1[ i ][ k] * z [k ][0]
z[ i ][0] = ( column [i ][0] - sum 1) / l _1[ i ][ i]
x = zeros (n , 1)
for i in range (n - 1, -1 , -1):
sum 1 = 0
for k in range (i + 1, n ):
sum 1 = sum 1 + l _1[ k ][ i] * x [k ][0]
x[ i ][0] = (z[ i ][0] - sum 1) / l _1[ i ][ i ]
return x
41

class Matrix :
def __ init __( self , m ):
cond = True
m1 = m [ -1]
for i in m :
if len ( m 1) == len (i ):
cond = cond and True
else :
cond = cond and False
if cond :
self . m = m
else :
msg = ' Invalid Dimension '
raise IndexError ( msg )

def __ str __( self ):


len _ str = []
for i in range ( len ( self .m )):
for j in range ( len ( self .m [i ])):
len _ str . append ( len ( str ( self .m[ i ][ j ])))
print _f = '['
for i in range ( len ( self .m )):
if i == 0:
print _f += '['
else :
print _f += ' ['
for j in range ( len ( self .m [0])):
print _f += ( str ( self .m[i ][ j ])). ljust ( max ( len _ str ))
if j == len ( self . m [0]) -1:
break
print _f += ' '
print _f += ']'
if i == len ( self . m ) -1:
break
else :
print _f += '\n '
print _f += ']'

return print _f

def __ add __( self , other ):


if check _ matrix ( self .m , other .m ):
m1 = [[0* i for i in j] for j in self . m]
42 PROGRAMA

for i in range ( len ( self .m )):


for j in range ( len ( self .m [0])):
m 1[ i ][ j] = self . m[i ][ j ] + other .m [i ][ j]
return Matrix (m 1)
else :
raise IndexError ( ' Invalid Dimension ')

def __ sub __( self , other ):


if len ( self .m ) == len ( other .m) and len ( self . m [0]) == len ( other .m [0]):
m1 = [[0 * i for i in j ] for j in self .m]
for i in range ( len ( self .m )):
for j in range ( len ( self .m [0])):
m 1[ i ][ j] = self . m[i ][ j ] - other .m [i ][ j]
return Matrix (m 1)
else :
raise IndexError ( ' Invalid Dimension ')

def __ mul __( self , other ):


if type ( other ) == Matrix :
if len ( self .m [0]) == len ( other .m ):
m1 = [[0* i *j for i in range ( len ( other .m [0]))] for j in range (
for i in range ( len ( self .m )):
for j in range ( len ( other . m [0])):
for k in range ( len ( other .m )):
m 1[ i ][ j] = m 1[ i ][ j] + self . m[i ][ k ] * other .m [k ][ j
return Matrix (m 1)
else :
raise IndexError ( ' Invalid Dimension ')
elif type ( other ) == int or type ( other ) == float :
return Matrix ([[ i* other for i in j] for j in self .m ])
else :
raise TypeError (' Invalid Type ')

def __ truediv __( self , other ):


if type ( other ) == Matrix :
if len ( self .m [0]) == len ( other .m ):
m1 = [[0* i *j for i in range ( len ( other .m [0]))] for j in range (
for i in range ( len ( self .m )):
for j in range ( len ( other . m [0])):
for k in range ( len ( other .m )):
m 1[ i ][ j] = m 1[ i ][ j] + self . m[i ][ k ] / other .m [k ][ j
return Matrix (m 1)
else :
43

raise IndexError ( ' Invalid Dimension ')


elif type ( other ) == int or type ( other ) == float :
return Matrix ([[ i/ other for i in j] for j in self .m ])
else :
raise TypeError (' Invalid Type ')

def __ eq __( self , other ):


if len ( self .m ) == len ( other .m) and len ( self . m [0]) == len ( other .m [0]):
cond = True
for i in range ( len ( self .m )):
for j in range ( len ( self .m [i ])):
if self .m[ i ][ j] == other .m[ i ][ j ]:
cond = cond and True
else :
cond = cond and False
return cond
else :
return False

def __ neg __( self ):


return Matrix ([[ i * -1 for i in j] for j in self .m ])

def __ pow __( self , other ):


if type ( other ) == int or type ( other ) == float :
if other == -1:
from numpy import matrix
m1 = matrix ( self .m )** other
return Matrix (m 1. tolist ())
elif other == 2:
if len ( self .m [0]) == 1:
return Matrix ([[ i **2 for i in j] for j in self .m ])

def __ abs __( self ):


return Matrix ([[ abs (i ) for i in j ] for j in self . m ])

def __ copy __( self ):


return Matrix ([[ i *1 for i in j ] for j in self .m ])

def __ round __( self , n =0):


return Matrix ([[ round (i , n) for i in j] for j in self .m ])

def __ getitem __( self , item ):


if type ( item ) == tuple :
44 PROGRAMA

return self . m[ item [0]][ item [1]]


elif type ( item ) == int :
return self . m[ item ]
else :
raise TypeError (' Invalid Item Type ')

def __ delitem __( self , key ):


return Matrix ( self .m. pop ( key ))

def __ len __( self ):


return len ( self .m)

@property
def norm ( self ):
if len ( self .m [0] == 1):
sum = 0
for i in self .m:
sum += i [0]**2
return sum **.5

@property
def det ( self ):
n = len ( self . m)
if n > 2:
i = 1
t = 0
sum = 0
while t <= n - 1:
d = {}
t1 = 1
while t 1 <= n - 1:
m = 0
d[ t 1] = []
while m <= n - 1:
if m == t:
u = 0
else :
d[ t 1]. append ( self . m[t 1][ m ])
m += 1
t1 += 1
l1 = [d [x] for x in d]
sum = sum + i * ( self .m [0][ t ]) * ( self . det (l 1))
i = i * ( -1)
45

t += 1
return sum
else :
return ( self .m [0][0] * self .m [1][1] - self . m [0][1] * self .m [1][0])

def s _m( self ):


e_ s = 0
for i in self .m:
s_ r = 0
for j in i :
s_ r += j
e_ s += s_r
return e_ s

def del _ cols ( self , l ):


m1 = [[ i for i in j ] for j in self .m]
l. sort ( reverse = True )
for i in l :
for j in range ( len ( m 1)):
m 1[ j ]. pop (i )
return Matrix (m 1)

def get _ cols ( self , l ):


m1 = [[0* i *j for j in range ( len (l ))] for i in range ( len ( self .m ))]
for i in range ( len ( self .m )):
for j in range ( len ( l )):
m 1[ i ][ j] = self . m[i ][ l [j ]]
return Matrix (m 1)

def del _ rows ( self , l ):


m1 = [[ i for i in j ] for j in self .m]
l. sort ( reverse = True )
for i in l :
m 1. pop (i )
return Matrix (m 1)

def get _ rows ( self , l ):


m1 = []
for i in l :
m 1. append ( self .m[i ])
return Matrix (m 1)

@property
46 PROGRAMA

def size ( self ):


return len ( self .m) , len ( self .m [0])

@property
def tolist ( self ):
return self . m

def to _ latex ( self ):


pass

T = property ( lambda self : trn ( self ), lambda self , v: None , lambda self : N
Código de programación - PYTHON (Método de Iteración Inversa)

from Matrix import *

def co _ rayleigh (x , y _1 , y _2): # CALCULO DEL COEFICIENTE DE RAYLEIGH


return (x .T* y _1)/( x.T *y _2)

def or _ gs (x: Matrix , m: Matrix , fi : Matrix ): # ORTOGONALIZACION DE GRAM - SCHMIDT


alpha = fi . T*m *x
return x - fi * alpha .s_m ()

def it _ inv (k , m , nn =4 , error =0.00001 , r =5):


# ITERACION INVERSA - COEFICIENTES DE RAYLEIGHT
n = len (k)
x _1 = Matrix ([[1]]* n)
y _1 = m*x _1
fi = x _1 / (( x _1. T * y _1)[0][0]) ** .5
x_ o _1 = or _ gs (x _1 , m , fi )
cont = 1

while cont < 6:


x_ o _2 = matrix _ solve (k , y _1)
y_ o _2 = m* x_o _2
y _2 = y _o _2/(( x_ o _2. T* y_o _2)[0][0])**.5
p_ x _1 = co _ rayleigh (x_ o _2 , y _1 , y _o _2)
p_ x = co _ rayleigh (x _o _1 , y _1 , y_o _2)
if ( abs (p_ x _1 - p_ x )/ p_x _1). norm <=10 E -8:
break
y _1 = y _2
47

cont += 1
lamb = co _ rayleigh ( x_o _2 , y _1 , y_ o _2)
fi = x_ o _2/(( x_o _2. T *y_ o _2)[0][0])**.5
return lamb , fi

K = Matrix ([[54.0 , -12.0 , 1.0 , 0.0] , [ -12.0 , 33.0 , -17.0 , 1.0] , [1.0 , -17.0 ,
M = Matrix ([[0.319162 , 0.0 , 0.0 , 0.0] ,[0.0 , 0.290574 , 0.0 , 0.0] ,[0.0 , 0.0 , 0.
print (" MATRIZ RIGIDEZ ". center (50 , "="))
print (K )
print ( '\n ')
print (" MATRIZ DE MASAS ". center (50 , "="))
print (M )
print ( '\n ')
print (" LAMBDA ". center (50 , "="))
it = it _ inv (K ,M)
print ( it [0])
print ( '\n ')
print (" EIGENPAR OBTENIDO ". center (50 , "="))
print ( it [1])
CONCLUSIONES

Se requieren los menores eigenpares del problema de valores característicos generales.


El procedimiento propuesto fue desarrollado para servir como una guía general para analizar la
respuesta de estructuras elásticas lineales sometidas a cargas variables en el tiempo mediante
el uso de métodos numéricos.
Los conceptos y parámetros presentados en el trabajo fueron integrados en el procedimiento
de los métodos a cada uno de los parámetros usados.
El proceso fundamental en el tipo de método es proponer un vector inicial tentativo del
eigenvector {φ }, mediante la ecuación (2.20) encontrar una mejor aproximación al mencio-
nado eigenvector y a partir de este vector, calcular nuevas aproximaciones repitiéndose el
proceso hasta que la diferencia entre las dos ultimas aproximaciones sea menor a un valor
preestablecido de tolerancia..
Se requieren los menores eigenpares del problema de valores característicos generales.
Bibliografía

[1] Hernandez, D. Métodos Numéricos para la Solución de Problemas de Valores Carac-


terísticos en Dinámica Estructural. Veracruz,México,1997.

[2] Enciso,F. A.Procedimiento para el Análisis Dinámico de Estructuras Usando el Méto-


do de los Elementos Finitos . Lima, Perú,2014.

[3] Singiresu, S. R.Vibraciones Mecánica. México, 2012.

Você também pode gostar