Anda di halaman 1dari 7

UNIVERSIDAD AUSTRAL DE CHILE

FACULTAD DE CIENCIAS DE LA INGENIERÍA


INSTITUTO DE OBRAS CIVILES
ESCUELA DE INGENIERÍA CIVIL EN OBRAS CIVILES.

Desarrollo e implementación
del método de Stodola.

Cálculo de autovalores y autovectores

Estos apuntes son entregados a los alumnos que cursan la asignatura de Computación para
Ingeniería Estructural (IOCC 281), para la Carrera de Ingeniería Civil en Obras Civiles de
la Universidad Austral de Chile.

El método de Stodola se caracteriza por ser una técnica de carácter iterativo, utilizada en la
determinación de autovalores y autovectores, dentro de lo que se conoce comúnmente
como Eigenproblems. En una primera instancia será descrita la forma en que el vector
solución converge hacia el primer modo, posteriormente detallando el procedimiento para
obtener convergencia hacia otros modos. A diferencia de otros métodos, tales como el de
Jacobi, el método de Stodola posibilita el cálculo de apenas unos pocos autovectores y
autovectores, sin la necesidad de determinar todos y cada uno de ellos.

Pablo E. Oyarzún H.
Ing. Civil en Obras Civiles
Universidad Austral de Chile
1. Metodología de desarrollo para el método de Stodola.

En el área de dinámica de estructuras, se hace muchas veces


necesaria la obtención de las frecuencias naturales y modos normales de vibración; esto
mediante transformación del problema de resolver un sistema de “n” grados de
libertad (desacoplamiento de las ecuaciones), en resolver “n” problemas de un
grado de libertad.
Una vez determinados las frecuencias y modos, éstos volverán a ser
utilizados para obtener una estimación de la respuesta, sean desplazamientos y/o
esfuerzos máximos para cada grado de libertad, utilizando alguno de los métodos
existentes con tal de efectuar un procedimiento de superposición conocido como
combinación modal.
Matemáticamente estas frecuencias naturales y modos normales de
vibración corresponden a encontrar, respectivamente, los valores propios λ
(Eigenvalues) y vectores propios x (Eigenvectors) de un problema de la forma
A x = λ x.
Uno de los métodos que permite obtener en forma iterativa los
valores y vectores propios es el método de Stodola, o también referido como método de la
potencia, que consiste en proporcionar un vector x1( 0) en la ecuación anterior y
obtenerse, como se ha demostrado al analizar su convergencia, λ1(1) y x1(1) ; esto es
una primera aproximación para el primer valor propio y el primer vector propio. Tras
repetir el proceso con tal de obtenerse λ1( 2) , λ1(3) , … , λ1( k ) . así como también
x1( ) , x1( ) , … , x1( ) , se podrá detener el proceso así que se logre convergencia
2 3 k

hacia una aproximación lo suficientemente precisa, de acuerdo a una tolerancia


especificada, para el primer valor propio y el primer vector propio.
Para que esta metodología converja al segundo valor propio y segundo
vector propio, al vector inicial x'2( 0) debe sustraérsele la base correspondiente al
primer vector propio o, en otras palabras, hacer que el vector x 2( 0) sea linealmente
independiente del primer vector propio x1( k ) previamente obtenido; esto se logra pre-
multiplicando el vector inicial x'2( 0) por la matriz de barrido S , tal como será
descrito a continuación.
Como primera aproximación del vector propio “k” (o sea, de x k ( 0) ), la
matriz de barrido debe considerar la sustracción de las bases primera, segunda,
hasta la “ k − 1 ”-ésima, con tal que el proceso pueda converger al “ k ”-ésimo vector
propio.

2. Convergencia al primer modo de vibración libre.

Dada la ecuación dinámica en su versión homogénea, para solución


armónica se tiene

M ( −ω 2 x ) + K x =
0 ó (1)

M ω2 x = K x (2)

donde M es matriz de masa y K matriz de rigidez; al ser K invertible puede la


ecuación escribirse en la forma

K −1
 M ω2 x = x (3)
D

en la cual D se conoce como matriz dinámica. Si en uno de los miembros se


ingresa con un vector inicial x1( 0) , podrá obtenerse una primera aproximación
x1(1) del primer modo haciendo uso de la ecuación anterior, o sea:

1
x1( ) = D x1(
0)
1
(4)
ω 2

1 (1)
Debido a que ω no se conoce, y x1(1) = x1 resulta en una mejor
ω2

aproximación para el primer vector propio que x1( 0) , podría usarse, en lugar de (4),

x1( ) = D x1(
0)
1
y en consecuencia (5)

x1( ) = D x1( )
2 1

x1( ) = D x1(
3 2)

........
x1( ) = D x1(
k −1)
k
(6)
Cuando exista suficiente proporcionalidad entre x1( k −1) y x1( k ) se
tendrá una buena aproximación para el primer vector propio y, por ende, a partir de
las ecuaciones (4) y (6) podrá obtenerse una estimación para la frecuencia
correspondiente al primer valor propio, como siendo

x1k −1 ( i )
ω1 = 2
(7)
x 1
k
(i ) 2

El mecanismo para proporcionar un vector inicial {x ( )}


2
0
que

produzca convergencia, esta vez al segundo vector propio, consiste en extraer la base
del primer vector propio de la forma que se describe a continuación. Sea

x '2( =
)
φ 1 α1 + φ 2 α 2 +  + φ 2 α n (8)
0

ecuación en la cual φ i son los vectores propios buscados y α i corresponden a


constantes. Si ambos miembros de (8) son pre-multiplicados por el primer vector
propio (cuyo valor ya ha sido hallado) en su forma traspuesta, junto a la matriz de
masa, debido a la propiedad de ortogonalidad que poseen los vectores propios
respecto a la matriz de masa, se tiene

( ) 0 0
φ=T
1 M x '2
0
φ 1T M φ 1 α1 + φ 1T M φ 2 α 2 +  + φ 1T M φ 1 α n (9)

y por lo tanto

φ 1T M x '2( )
0
α1 = (10)
φ 1T M φ 1

De esta forma, si dentro de la ecuación

x 2( ) = D x 2(
0)
1
(11)

se sustituye el siguiente vector (haciendo uso de (9)):

( )
x= x '2( ) − φ 1 α1
0 0
2
φ 1T M x '2( )
0
(0)
= x '2 − φ1
φ 1T M φ 1

 φ φ T M  ( 0)
=  I − 1T 1  x '2 (12)
 φ1 M φ1 

S1

donde [ S1 ] se conoce como matriz de barrido para el primer vector propio, podrá el
proceso converger hacia el segundo vector propio.

3. Convergencia a los modos más altos.

De forma análoga a la obtención de ω1 , tras reiterar el proceso


descrito de (5) a (7), puede obtenerse esta vez ω2 .
Así, para el “k”-ésimo vector propio, la matriz de barrido deberá tomar
en consideración la extracción de las bases del primer, segundo, tercer, hasta el
“ k − 1 ”-ésimo vector propio, a partir del vector inicial, que esta vez será x k ( 0) , o sea:

x k ( ) = S k −1 x 'k (
0)
0
(13)

con

 φ φ T M φ 2 φ 2T M φ φ T M
S k −1 =  I − 1T 1 − T −  − k −1T k −1  (14)
 φ1 M φ1 φ 2 M φ 2 φ k −1 M φ k −1 

El “k”-ésimo valor propio ωk se obtiene de la forma usual.

4. Implementación de algoritmo.

Basándose en el procedimiento anteriormente descrito, puede


elaborarse un algoritmo para el cálculo por computador. El programa
Stodola.exe, escrito en código FORTRAN, representa un ejemplo de conjunto de
rutinas basado en el algoritmo que será prontamente descrito. Dicho programa
está constituido por:
Programa “Stodola”;

Programa principal, encargado de efectuar el llamado a otras


subrutinas, además de ser el encargado de ciertas tareas; tales como lectura de los
datos, obtención de matriz dinámica, hacer las veces de subrutina de control para
el loop o ciclo consistente en cálculos para cada modo, impresión de resultados.

Subrutina “iteraciones”;

Unidad de programa que forma parte del loop de cálculos para cada
modo, multiplicación de la matriz dinámica por la matriz de barrido, efectúa una
estimación del error y la evalúa en relación a la tolerancia previamente definida.

Subrutina “barrido”;

Determina la matriz de barrido, la cual posibilita la convergencia


durante las iteraciones hacia el modo deseado.

Otras subrutinas;

Encargadas de ciertos cálculos puntuales, tales como la


determinación de la inversa de una matriz cuadrada (subrutina “inversa”),
multiplicación entre matrices (subrutina “matmat”), multiplicación matriz vector
(subrutina “matvec”) y producto escalar entre vectores (subrutina “vecvec”).

El algoritmo en el cual se basó la elaboración del programa puede


constatarse de acuerdo a lo que sigue:

1. Lectura de parámetros generales (dimensión de matrices, tolerancia al


error, etc.) y de los coeficientes de las matrices de rigidez “SK” y masa
“SM”.
2. Cálculo de la inversa de la matriz de rigidez y producto de esta inversa
por la matriz de masa “SM”, resultado conocido como matriz dinámica
“D”. Matriz de barrido inicial “S” es igual a la matriz identidad.
3. Loop para cada modo:
3.1. Llamada a subrutina “iteraciones”; encargada de
multiplicar la matriz dinámica por la matriz de barrido y,
dentro del loop iterativo, multiplicar dicho resultado por el
vector de entrada (proveniente de la iteración anterior),
almacenar las cotas para estimar el autovalor
correspondiente al modo actual, así como también evaluar
el error en la aproximación de acuerdo a la tolerancia
previamente especificada (caso que se alcance la precisión
deseada, el programa sale del loop para cada modo);
3.2. Normaliza el valor de salida respecto a su módulo;
3.3. Llamada a subrutina “barrido”; supeditada al cálculo del
cociente comprendido entre φ i φ iT M y φ iT M φ i , para el
modo “i”, restándoselo a la matriz de barrido de la
iteración anterior;
4. Impresión. de resultados.

Anda mungkin juga menyukai