Вы находитесь на странице: 1из 10

Métodos de calculo de Modos de Vibración

Daniel Juan De Dios Ochoa1 , Henry Maldonado1


1
Universidad Nacional De San Cristobal De Huamanga
Facultad De Ingenieria de Minas Geología y Civil
Escuela Profesional de Ingeniería Civil
LATEX

Metodos de Iteración Matricial-Metodo de Jacobi

Resumen
Conocido también como método de diagonalización por rotaciones sucesivas, este procedimiento permite
determinar, simultáneamente, todas las frecuencias y modos de sistemas complejos de hasta 200 grados de
libertad. Consiste esencialmente, en diagonalizar la matriz dinámica o su inversa con el objeto de obtener,
en la ecuación matricial característica, una serie de expresiones independientes, fáciles de resolver.

1. MÉTODO DE JACOBI
Un método clásico para encontrar los valores y vectores propios de una matriz simétrica es el Método de
Jacobi. Los teoremas fundamentales en que se basa el método son:

1.1. Teorema 1
Dos matrices A y B se dicen que son semejantes si existe una matriz que admite inversa P, tal que:

B = P .−1 AP

1.2. Teorema 2
Si A y B son dos matrices semejantes, entonces tienen los mismos valores propios.

1.3. Teorema 3
Si una matriz es diagonal. Entonces los valores propios son los elementos de la diagonal.

1.4. Teorema 4
Toda matriz simétrica es diagonalizable en una base de vectores propios.
Definición de Matriz Ortogonal. Una matriz H se dice que es ortogonal, si:

HH t = I ⇒ H .−1 = H t

La idea básica del Método de Jacobi es construir una serie de matrices que son semejantes a la original, para lo
cual se emplea una matriz de paso P que es ortogonal. Las matrices semejantes que se van obteniendo tienden
a ser diagonales.
El procedimiento es iterativo y termina estrictamente cuando se llega a una matriz diagonal.
El procedimiento termina cuando en la última matriz encontrada, la suma de los elementos fuera de la
diagonal en valor absoluto es menor a una tolerancia prefijada. La matriz final es semejante a la matriz original
y además se considera diagonal. Por lo tanto los valores propios son las cantidades de la diagonal.
Existe las siguientes posibilidades para hacer cero a los elementos fuera de la diagonal:

1
Hacer ceros por filas.
Hacer ceros por columnas.
Hacer cero al mayor elemento fuera de la diagonal en valor absoluto.

Una combinación de los casos anotados.

2. Desarrollo del Método


Sea ap,q , el elemento de la fila p y columna q, de una matriz A, que se desea hacer cero, p 6= q , el elemento
se encuentra en la matriz triangular inferior en el ciclo k. La matriz P, con la cual se construirá la matriz
semejante y con la cual se logrará el objetivo propuesto tiene la siguiente forma:

En la ecuación anterior se han indicado los elementos no nulos de la matriz P. En general ésta matriz se
determina de la siguiente manera.

En la diagonal principal todos los elementos son 1 a excepción de dos términos que valen cos θ . Estos
términos corresponden a los ubicados en la fila p y columna p; y al ubicado en la fila q y columna q.
El elemento ap,q , de la matriz triangular inferior tiene por valor sin θ , su simétrico vale -sin θ

La matriz P, indicada en la ecuación es ortogonal. En consecuencia se cumple que la inversa de la matriz P


no es más que la transpuesta. A esta matriz se la conoce también con el nombre de matriz de rotación. La base
del método consiste en evaluar θ de tal manera que el elemento ap,q , correspondiente a la matriz k + 1 A sea
nulo. El valor de θ se obtiene a partir de la siguiente ecuación:
2ap,q
tg2θ =
ap,p − aq,q

3. Procedimiento de cálculo
El procedimiento de cálculo para encontrar los valores y vectores propios de una matriz A simétrica es como
sigue:
Se construye la matriz A1 semejante a la matriz A

A1 = P .−1 AP1

Pero P1−1 = P1t , luego:


A1 = P1t AP1
Se obtiene la matriz A2 semejante a A1 , etc.

A2 = P2t A1 P2

2
A3 = P3t A2 P3

A4 = P4t A3 P4

...........................

t
Ak+1 = Pk+1 Ak Pk+1
Se puede decir que Ak+1 = Dk+1 + Ek+1 Donde Dk+1 es una matriz diagonal y Ek+1 lo que está fuera de la
diagonal. Entonces.

Por el teorema 2, los valores propios λ de A son los valores propios de Ak+1 . Por otra parte el test de
P jk+1
parada deberá verificar que ai,j < ε. La sumatoria en valor absoluto de los elementos fuera de la diagonal
es menor que una cantidad muy pequeña ε.

4. Cálculo de los Vectores Propios


Al desarrollar el procedimiento indicado en el apartado anterior, se tiene:

A1 = P1t AP1

A2 = P2t A1 P2 = P2t P1t AP1 P2

A3 = P3t P2t P1t AP1 P2 P3

A4 = P4t P3t P2t P1t AP1 P2 P3 P4

.......................

t
Ak+1 = Pk+1 Pkt Pk−1
t
...t4 P3t P2t P1t AP1 P2 P3 P4 ...Pk−1 Pk Pk+1
El producto de las matrices P transpuesta converge a P t y el producto de las matrices P de ( 6.21 ) converge
a P, que es matriz ortogonal. Luego se tiene que:

Ak+1 = P t AP

Por lo tanto por el teorema 4, las columnas de la matriz P de ( 6.22 ) son los vectores propios de A.

5. Ejemplo de aplicación
Encontrar los valores Y vectores propios de una estructura, cuyas matrices de rigidez y de masas, son las
siguientes:

3
   
400 −200 0 0,4077 0 0
K =  −200 280 −80  M = 0 0,4077 0 
0 −80 80 0 0 0,2039

Calculo de Matriz Diagonal Inferior [L], tal que M = IL.

 √   
M11 √0 0 0,639 0 0
L= 0 M22 √0
 L= 0 0,639 0 
0 0 M33 0 0 0,452

Calculo de Matriz Dinámica [D]

D = L−1 K(L−1 )T
 
981,114 −490,557 0
D =  −490,557 686,779 −277,467 
0 −277,467 392,349
Ciclos de rotación:
{1, 2, 3} = p, q{{1, 2}, {1, 3}, {2, 3}}

5.1. Primera iteración


Primera Rotación Los ciclos de rotación se inician eliminando , por ejemplo el termino d1,2 (p = 1, q = 2);
así tenemos:
2D(p,q)
Tan2θ =
(D(p,p) − D(q,q) )
2D(p,q)
θ = 0,5a tan( )
(D(p,p) − D(q,q) )

D1,1 = 981,114
D1,2 = −490,557
D2,2 = 686,779

2D(1,2)
θ1 = 0,5a tan( )
(D(1,1) − D(2,2) )

s = sin(θ1 ) = −0,597
θ1 = −0, 64 ⇒
c = cos(θ1 ) = 0,802
   
c −s 0 0,802 0,597 0
R1 =  s c 0  =  −0,597 0,802 0 
0 0 1 0 0 1
Luego el triple producto escalar resulta ser: D1 = R1T DR1
 
1346,103 0 165,628
D1 = R1T DR1 =  −0 321,79 −222,61 
165,628 −222,61 392,349
Segunda Rotación En forma similar para el termino d1,3 (p = 1, q = 3); así tenemos:

D1,1 = 1346,103

D1,3 = 165,628
D3,3 = 392,349

2D(1,3)
θ2 = 0,5a tan( )
(D(1,1) − D(3,3) )

4

s = sin(θ2 ) = −0,166
θ2 = 0, 167 ⇒
c = cos(θ2 ) = 0,986
   
c 0 −s 0,986 0 −0,166
R2 =  0 1 0 = 0 1 0 
s 0 c 0,166 0 0,986
Luego el triple producto escalar resulta ser: D2 = R2T D1 R2
 
1374,047 −37,034 0
D2 = R2T D1 R2 =  −37,034 321,79 −219,507 
−0 −219,507 364,405
Tercera Rotación En forma similar para el termino d2,3 (p = 2, q = 3); así tenemos:

D2,3 = −219,507

D3,3 = 364,405
D2,2 = 321,79

2D(2,3)
θ3 = 0,5a tan( )
(D(3,3) − D(2,2) )

s = sin(θ3 ) = −0,672
θ3 = −0, 737 ⇒
c = cos(θ2 ) = 0,740
   
1 0 0 1 0 0
R3 =  0 c s  =  0 0,740 −0,672 
0 −s c 0 0,672 0,740
Luego el triple producto escalar resulta ser: D3 = R3T D2 R3
 
1374,047 −27,423 24,89
D3 = R3T D2 R3 =  −27,423 122,528 −0 
24,89 0 563,637

5.2. Segunda iteración


Cuarta Rotación Los ciclos de rotación se inician eliminando , por ejemplo el termino d1,2 (p = 1, q = 2);
así tenemos:
D1,1 = 1374,047
D1,2 = −27,423
D2,2 = 122,558

2D(1,2)
θ4 = 0,5a tan( )
(D(1,1) − D(2,2) )

s = sin(θ4 ) = −0,022
θ4 = −0,022 ⇒
c = cos(θ4 ) = 1,00
   
c −s 0 1 0,022 0
R4 =  s c 0  =  −0,022 1 0 
0 0 1 0 0 1
Luego el triple producto escalar resulta ser: D4 = R4T D3 R4
 
1374,648 −0 24,884
D4 = R4T D3 R4 =  −0 121,958 0,545 
24,884 0,545 563,637
Quinta Rotación En forma similar para el termino d1,3 (p = 1, q = 3); así tenemos:

D1,1 = 1374,648

5
D1,3 = 24,884
D3,3 = 563,637

2D(1,3)
θ5 = 0,5a tan( )
(D(1,1) − D(3,3) )

s = sin(θ5 ) = 0,031
θ5 = 0,031 ⇒
c = cos(θ5 ) = 1
   
c 0 −s 1 0 −0,031
R5 =  0 1 0 = 0 1 0 
s 0 c 0,031 0 1
Luego el triple producto escalar resulta ser: D5 = R5T D4 R5
 
1375,41 0,017 0
D5 = R5T D4 R5 =  0,017 121,958 0,545 
−0 0,545 562,874
Sexta Rotación En forma similar para el termino d2,3 (p = 2, q = 3); así tenemos:

D2,3 = 0,545
D3,3 = 562,874
D2,2 = 121,958

2D(2,3)
θ6 = 0,5a tan( )
(D(3,3) − D(2,2) )

s = sin(θ6 ) = 0,001236
θ6 = 0,001236 ⇒
c = cos(θ6 ) = 1
   
1 0 0 1 0 0
R6 =  0 c s = 0 1 0,001236 
0 −s c 0 −0,001236 1
Luego el triple producto escalar resulta ser: D6 = R6T D5 R6
 
1375,41 0,017 0
D6 = R6T D5 R6 =  0,017 121,957 −0 
0 0 562,875
Se puede observar que se obtenido la matriz diagonalizada, con la precisión esperada, por lo tanto se culmina
el proceso de rotaciones

FRECUENCIAS PERIODOS

q
W1 = D6(1,1) = 37,087 T1 = = 0,169....(3ro )
W1
q 2π
W2 = D6(2,2) = 11,043 T2 = = 0,569....(1ro )
W2
q 2π
W3 = D6(3,3) = 23,725 T3 = = 0,265....(2do )
W3

6
5.3. Modos de vibración
Estos modos de vibración son resultados normalizados con respecto a la matriz masa.

U = R1 R2 R3 R4 R5 R6
 
0,77 0,37 −0,52
U =  −0,62 0,65 −0,45 
0, 17 0,67 0,73
Modos de vibración:
D = (L−1 )T U
 
1,202 0,58 −0,82
D =  −0,966 1,015 −0, 699 
0,386 1,473 1,608
Modos de vibración normalizados a 1:

   
1,202 1,000
d1
d1 = di,1 =  −0,966  φ1 = =  −0,804  ...(3ro )
D1,1
0,386 0,321
   
0,58 1,000
d2
d2 = di,2 =  1,015  φ2 = =  1,751  ...(1ro )
D1,2
1,473 2,541
   
−0,82 1,000
d3
d3 = di,3 =  −0,699  φ3 = =  0,853  ...(2ro )
D1,3
1,608 −1,962

6. CÓDIGO FUENTE EN HP PRIME

Listing 1: Código fuente para para calcular los modos de vibración mediante Metodos de Iteración Matricial-
Metodo de Jacobi
1
2 % UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA
3 % INGENIERIA CIVIL
4 % BY: DANIEL JDD OCHOA
5 % ANALISIS SISMICO
6
7 //=================================CODIGO FUENTE ===========================
8 //=================================
9 CC1;
10 k;ii;aai;
11 AA;nn,n;
12 Niter:=2;
13 //=========================================
14 KK:=[[400,-200,0],[-200,280,-80],[0,-80,80]];
15 MM:=[[0.4077,0,0],[0,0.4077,0],[0,0,0.2039]];
16 //KK:=[[1243.5,-492.6],[-492.6,317.9]];
17 //MM:=[[1.0102,0],[0,1.0102]];
18
19 lis1:={};lis3:={};
20 LL;DD;Evp;Evp1;Res1;EiV;
21 GG;UU;
22 Tet;
23 R1;R2;RN;
24 D1;D2;MMod;ModNorm;MMod1;
25 MatW;lis2:={};

7
26 Suma;Signo;Designar;Unos;SumaMat;EIGENMAT;
27 UU1;ZZ1;SS1;Tp;Tl;Mord:={3,1,2};TT;CC;RR:=8;Sad;bb;
28 Pl;Pl1;
29
30
31
32 EXPORT HPModal()
33 BEGIN
34 PRINT();
35 KK:=EDITMAT(KK,{"Matriz de rigidez",{},{}});
36 MM:=EDITMAT(MM,{"Matriz masa",{},{}});
37 INPUT({{Niter,[0],{50,20,4}}},"METODO JACOBI",{" N de Iter :"},{"Ingrese numero de ←-
iteraciones"});
38
39 LL:=MAKEMAT(0,rowDim(MM),rowDim(MM));
40 FOR k FROM 1 TO rowDim(MM) DO
41 LL(k,k):=SQRT(MM(k,k));
42 END;
43 DD:=inv(LL)*KK*TRN((inv(LL)));
44 DD:=EDITMAT(DD,{"Matriz Dinamica",{},{}});
45
46 Evp:=EIGENVAL(DD);
47 Evp1:=Evp;
48 FOR k FROM 1 TO rowDim(MM) DO
49 lis1(k):=Evp1(k);
50 END;
51 lis1:=SORT(lis1);
52 Res1:=MAKEMAT(0,rowDim(MM),1);
53 FOR k FROM 1 TO rowDim(MM) DO
54 Res1(k,1):=lis1(k);
55 END;
56 //Res1:=EDITMAT(Res1,{"VALORES PROPIOS",{},{}});
57
58 n:=rowDim(MM);
59 CC1:=MAKEMAT(0,1,n);
60 FOR k FROM 1 TO n DO
61 CC1(1,k):=k;
62 END;
63 aai:=MAKEMAT(0,COMB(n,2),2);
64 nn:=0;
65
66 FOR ii FROM 1 TO n-1 DO
67 FOR k FROM 2 TO n DO
68 IF i i k AND ii<k THEN
69 nn:=nn+1;
70 aai(nn,1):=ii;aai(nn,2):=CC1(1,k);
71 END;
72 END;
73 END;
74 //aai:=EDITMAT(aai,{"ANALISIS COMBINATORIO",{},{}});
75 aai:=aai;
76 R1:=IDENMAT(rowDim(MM));
77 UU:=IDENMAT(rowDim(MM));
78 FOR ii FROM 1 TO Niter DO
79 MSGBOX(ii+" ITERACION");
80 FOR k FROM 1 TO rowDim(aai) DO
81 GG:=DD;
82 R1:=R1;
83 Tet:=0.5*ATAN((2*DD(aai(k,1),aai(k,2)))/(DD(aai(k,1),aai(k,1))-DD(aai(k,2),aai(k←-
,2))));
84 R1(aai(k,1),aai(k,1)):=COS(Tet);

8
85 R1(aai(k,1),aai(k,2)):=-SIN(Tet);
86 R1(aai(k,2),aai(k,1)):=SIN(Tet);
87 R1(aai(k,2),aai(k,2)):=COS(Tet);
88 R1:=EDITMAT(R1,{"Matriz De Rotacion R"+k,{},{}});
89 D1:=TRN(R1)*DD*R1;
90 D1:=EDITMAT(D1,{"Matriz D"+k,{},{}});
91 RN:=R1;
92 DD:=D1;
93 UU:=UU*R1;
94 R1:=IDENMAT(rowDim(MM));
95 END;
96 END;
97 DD:=DD;
98 DD:=EDITMAT(DD,{"Matriz D final",{},{}});
99 Res1:=EDITMAT(Res1,{"VALORES PROPIOS",{},{}});
100 //UU:=EDITMAT(UU,{"Matriz UU",{},{}});
101 FOR k FROM 1 TO rowDim(MM) DO
102 lis2(k):=SQRT(DD(k,k));
103 END;
104 lis3:=SORT(lis2);
105 MatW:=MAKEMAT(0,rowDim(MM),4);
106 FOR k FROM 1 TO rowDim(MM) DO
107 MatW(k,1):=lis2(k);
108 MatW(k,2):=lis3(k);
109 MatW(k,3):=ROUND(2*PI/lis3(k),4);
110 MatW(k,4):=ROUND(1/MatW(k,3),4);
111 END;
112 MatW:=EDITMAT(MatW,{"Matriz DE FRECUENCIA",{},{"Wn","Wn ord","T","f"}});
113
114 TT:=MAKEMAT(0,rowDim(MM),1);
115 FOR k FROM 1 TO rowDim(MM) DO
116 TT(k,1):=MatW(k,3);
117 END;
118 TT:=EDITMAT(TT,{"PERIODOS DE VIBRACION",{},{"TT"}});
119 UU:=EDITMAT(UU,{"Matriz U",{},{}});
120 UU:=UU;
121 MMod:=TRN(inv(LL))*UU;
122 MMod:=EDITMAT(MMod,{"Modos de vibracion",{},{}});
123 Designar:=MAKEMAT(0,rowDim(MM),1);
124 Unos:=MAKEMAT(1,rowDim(MM),1);
125 FOR J FROM 1 TO rowDim(MM) DO
126 Suma:=0;
127 FOR L FROM 1 TO rowDim(MM)-1 DO
128 Signo:=SIGN((MMod(L,J))/(MMod(L+1,J)));
129 IF Signo==-1 THEN
130 Suma:=Suma+1;
131 END;
132 IF Signo==1 THEN
133 Suma:=Suma+0;
134 END;
135 END;
136 Designar(J,1):=Suma;
137 END;
138 SumaMat:=Designar+Unos;
139 EIGENMAT:=MAKEMAT(0,rowDim(MM),colDim(MM));
140 FOR J FROM 1 TO rowDim(MM) DO
141 FOR L FROM 1 TO rowDim(MM) DO
142 EIGENMAT(L,SumaMat(J,1)):=MMod(L,J);
143 END;
144 END;
145 EIGENMAT:=EIGENMAT;

9
146 ModNorm:=MAKEMAT(0,rowDim(MM),rowDim(MM));
147 FOR k FROM 1 TO rowDim(MM) DO
148 FOR ii FROM 1 TO rowDim(MM) DO
149 ModNorm(ii,k):=(EIGENMAT(ii,k)/EIGENMAT(1,k));
150 END;
151 END;
152 EIGENMAT:=EDITMAT(EIGENMAT,{"MODOS DE VIBRACION norm a la masa",{},{"Mod1","Mod2","Mod3←-
","Mod4","Mod5","Mod6"}});
153 ModNorm:=EDITMAT(ModNorm,{"Modos de vibraci n normal a 1",{},{"Mod1","Mod2","Mod3","←-
Mod4"}});
154
155
156
157 MSGBOX("BY:JDD 8A");
158 END;

Referencias
[1] R. A. Falconi. Dinámica de Estructuras con Matlab. Primera edition, 2006.
[2] R. A. Falconi. Análisis Sísmico de Edificios. Primera edition, 2008.

[3] L. E. Garcia Reyes. Dinámica Estructural Aplicada al Diseño Sísmico. Primera edition, 1998.
[4] R. S. Tapia. INGENIERÍA ANTISÍSMICA, Principios Básicos y Aplicaciones. Primera edition, 2013.
[5] https://es.scribd.com/document/74039507/Metodo-Jacobi Metodo-Jacobi.

10

Вам также может понравиться