Está en la página 1de 66

Capitulo de Estudiantes ACI-UNH

“Creada el 20 de Julio de 2020”

Directorio de Investigación
Always Advancing

ANÁLISIS ESTRUCTURAL DEL PÓRTICO ESTÁTICO E


HIPERESTÁTICO MEDIANTE EL MÉTODO DE RIGIDEZ
APLICADO EN C++

HUANCAVELICA-ENERO-2021
Índice General

1. Pórtico 3
1.1. Intruduccion: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Objetivo: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1. Objetivos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Justificación: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Análisis Estructural de un Pórtico Mediante el Método Rigidez Directa 5


2.1. Tipos de Pórticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Procedimiento de Solución . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1. Nodos y Elementos: . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. Componentes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Datos de Ingreso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1. Datos de Elementos (Esto para todos los casos de pórticos presen-
tados ): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2. Datos de Nodo para Caso A: . . . . . . . . . . . . . . . . . . . . . . 10
2.3.3. Datos de Momento de Empotramiento Perfecto de Pórtico Caso A: 11

3. Proceso de Calculo General 12


3.1. Matriz Rigidez del Pórtico Caso A . . . . . . . . . . . . . . . . . . . . . . . 12
3.2. Momento de Empotramiento Perfecto del Pórtico Caso A . . . . . . . . . . 17
3.3. Giros y Desplazamientos (Calculados) del Pórtico Caso A . . . . . . . . . . 17
3.4. Reacciones y Momentos en los Apoyos (Calculados) del Pórtico Caso A . . 18
3.5. Fuerzas Internas del Pórtico Caso A . . . . . . . . . . . . . . . . . . . . . . 19
3.6. Diagramas de Fuerza Axial, Cortante y Momento Flector del Pórtico Caso
A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4. Resultados Compilado en C++ 23

5. Validación de Resultados Con SAP2000 vs C++ 29

6. Resultados de Porticos de Caso B, C, D, E, F 35

7. Anexo-(Solución de un Pórtico Avanzado (Viga -Columna)) 45


7.1. Datos de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Directorio de Investigación 1 / 56 ACI-UNH


1
Pórtico

1.1 Intruduccion:
El presente informe presenta la solución del pórtico por método matricial aplicando el uso
de lenguaje de programación C++.

El método matricial es el método más aplicativo para la solución de ejercicios de es-


tructuras hiperestáticas como: pórticos, armaduras, vigas. El presente trabajo incluye el
programa desarrollado en C++, por lo que también se presenta el manejo de instrucciones
del programa. Así mismo se trata un tema que hace verdaderamente poderoso al C++
que es la facilidad de realizar otras operaciones como en vectores, matrices, etc. También
así mismo el programa calcula los desplazamientos horizontales, verticales y giros en cada
NODO de la estructura; como también las reacciones y momentos en los apoyos y fuerzas
internas para cada elemento

Directorio de Investigación 3 / 56 ACI-UNH


1.2 Objetivo:
1.2.1 Objetivos Generales
El propósito por el cual se realizó este informe, es la determinación de desplaza-
mientos laterales por el método clásico y método de matricial de rigideces de un
pórtico hiperestático.

1.2.2 Objetivos Específicos


Saber cómo realizar el método matricial paso a paso para la determinación de des-
plazamientos horizontales, verticales y giros en cada NODO.

Analizar los pórticos sus desplazamientos generados por el sismo que estos son cargas
laterales; según el caso que se presenta por el método adecuado.

Comparar los resultados obtenidos con un programa de Ingeniería como el SAP


2000, Etabs,Robot Structural etc.

1.3 Justificación:
Se prende en esta informe, conocer el método de matricial de rigidez para la obten-
ción directa los desplazamientos horizontales, verticales, giros, reacciones, fuerzas
internas; realizando un programa adecuado para su utilización.

Directorio de Investigación 4 / 56 ACI-UNH


2
Análisis Estructural de un Pórtico
Mediante el Método Rigidez Directa

Se resolverá los siguientes pórticos hiperestático, mediante el método de método rigidez


directa.

2.1 Tipos de Pórticos


1 Caso A (Pórtico Hiperestático): Considerando las cargas distribuidas perpen-
dicular al elemento o viga.2.1

W=4
.0
Tn/
m

/m
0 Tn
W=4.

CASO a

Figura 2.1: Pórtico Hiperestático, caso A.

2 Caso B (Pórtico Hiperestático): Considerando las carga distribuidas perpendi-


cular al elemento o viga y con cargas puntuales en los nodos, las cuales representan
cargas de sismo y viento.2.2

Directorio de Investigación 5 / 56 ACI-UNH


W=4
.0
Tn/
m
P=1Tn
P=2Tn
/m P=3Tn
0 Tn
W=4. P=2Tn

P=5Tn
CASO b

Figura 2.2: Pórtico Hiperestático, caso B.

3 Caso C (Pórtico Hiperestático): Considerando las cargas distribuidas perpendi-


cular al elemento o viga, y también considerando las cargas puntuales en el elemento,
cargas triangulares en el elemento y cargas puntuales en los nodos, las cuales repre-
sentan cargas de sismo y viento.2.3

W=4
.0
Tn/
m
P=1Tn
P=2Tn
P=2Tn
/m P=3Tn
0 Tn
W=4. P=2Tn

P=5Tn
W=2 Tn/m
CASO C
W=2 Tn/m

Figura 2.3: Pórtico Hiperestático, caso C.

4 Caso D (Pórtico Hiperestático): Considerando las cargas distribuidas perpen-


dicular en el sentido de la gravedad.2.4

Directorio de Investigación 6 / 56 ACI-UNH


W=4
.0
Tn/
m

0 Tn/m
W=4.

CASO d

Figura 2.4: Pórtico Hiperestático, caso D.

5 Caso E (Pórtico Hiperestático): Considerando las cargas distribuidas perpen-


dicular en el sentido de la gravedad y con cargas puntuales en los nodos, las cuales
representan cargas de sismo y viento.2.5

W=4
.0
Tn/
m
P=1Tn
P=2Tn
/m P=3Tn
0 Tn
W=4. P=2Tn

P=5Tn

CASO e

Figura 2.5: Pórtico Hiperestático, caso E.

6 Caso F (Pórtico Hiperestático): Considerando las cargas distribuidas perpen-


dicular al elemento o viga y además se considerara las cargas de momento de volteo
o cortante basal (Cargas sísmicas).2.6

Directorio de Investigación 7 / 56 ACI-UNH


W=4
.0
Tn/
m
P=1Tn
P=2Tn
/m P=3Tn
0 Tn
W=4. P=2Tn

P=5Tn
CASO f

P=1Tn
M=3Tn-m.
P=5Tn M=2 Tn-m.
P=3Tn
P=2Tn

Figura 2.6: Pórtico Hiperestático, caso F.

2.2 Procedimiento de Solución


Los siguientes procedimientos son necesarios, para utilizar este rutina en C++, para el
cálculo de desplazamientos, giros, reacciones y momentos en la base y la fuerzas internas
que representan (fuerza axial, fuerza cortante y momento flector).

2.2.1 Nodos y Elementos:

06
05
03

04 05
04

03
02
01

01 02

Figura 2.7: Nodos y Elementos del Pórtico Hiperestático

1 Número de Nodos = {1, 2, 3, 4, 5 y 6}


 
2 Número de Elmentos o Barras = ~1 , ~2 , ~3 , ~4 y ~5

Directorio de Investigación 8 / 56 ACI-UNH


2.2.2 Componentes:
1 Componentes de reacciones y momentos: Estos componentes representan a reaccio-
nes y momentos en los apoyos, y a la vez representa asentamientos y giros en los
apoyos en general. Visualizar la figura 2.8.

{R − M } = {1, 2, 3, 4, 5 y 6}

2 Componentes de desplazamientos y giros desconocidos: Estos componentes repre-


sentan a fuerzas y momentos en los nodos, y a la vez representa desplazamientos y
giros en los nodos en general. Visualizar la figura 2.8.

{δx , δy , θ} = {7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 y 18}

16 18

17

10 12 13 15

11 14

07 09

08

01 03 04 06

02 05

Figura 2.8: Componentes en cada nodo

2.3 Datos de Ingreso


2.3.1 Datos de Elementos (Esto para todos los casos de pórticos presentados ):

Elemento Ni Nf L (m) A (m2) I (m4) E(Tn/m2)


1 1 3 3.000 0.1500 0.003125 2846049.89
2 2 5 5.000 0.1500 0.003125 2846049.89
3 4 6 2.000 0.1500 0.003125 2846049.89
4 3 4 6.324 0.1650 0.004159 2846049.89
5 6 5 5.385 0.1650 0.004159 2846049.89

Cuadro 2.1: Resumen da datos de entrada

Directorio de Investigación 9 / 56 ACI-UNH


Donde:

1 Columna: Elemento.

2 Columna: Nodo Inicial

3 Columna: Nodo Final

4 Columna: Longitud de elemento (m)

5 Columna: Área de elemento (m2 )

6 Columna: Inercia del elemento (m4 )

7 Columna: Elasticidad (T n/m2 )

2.3.2 Datos de Nodo para Caso A:


1 Los asentamientos y giros en el apoyo, están en función de componentes de reacciones
y momentos {R − M }.  
1  0.000  m
2  0.000  m
 
 
3 0.000 rad
 
 
Dk =  
4 0.000 m
 
 
 
5 0.000 m
 
 
 
6 0.000 rad

2 Las fuerzas conocidos en los NODOS están en función de componentes de despla-


zamientos y giros desconocidos:
 
7 0.000 Tn
 
8 0.000 Tn
 
 
 
9 0.000 T n.m
 
 
 
10 0.000 Tn
 
 
 
11 0.000 Tn
 
 
 
12 0.000 T n.m
 
 
Fz =  
13 0.000 Tn
 
 
 
14 0.000 Tn
 
 
 
15 0.000 T n.m
 
 
 
16 0.000 Tn
 
 
 
17 0.000 Tn
 
 
 
18 0.000 T n.m

Directorio de Investigación 10 / 56 ACI-UNH


3 Las fuerzas en los apoyos están en función de {R − M }, que generalmente represen-
tas a momento de volteo y cortante basal.
 
1  0.000  Tn
2  0.000  Tn
 
 
3 0.000 T n.m
 
 
FApoyos =  
4 0.000 Tn
 
 
 
5 0.000 Tn
 
 
 
6 0.000 T n.m

2.3.3 Datos de Momento de Empotramiento Perfecto de Pórtico Caso A:

Elem. Rxi Ryi Mi Rxj Ryj Mj


1 0.000 0.000 0.000 0.000 0.000 0.000
2 0.000 0.000 0.000 0.000 0.000 0.000
3 0.000 0.000 0.000 0.000 0.000 0.000
4 -4.000 12.000 13.331 -4.00 12.000 -13.331
5 4.000 10.000 9.667 4.000 10.000 -9.667

Cuadro 2.2: Momento de Empotramiento Perfecto

Directorio de Investigación 11 / 56 ACI-UNH


3
Proceso de Calculo General

3.1 Matriz Rigidez del Pórtico Caso A


258
Los Curso
resultados son iguales para todos los casos de pórticos presentados de análisis estructural
anteriormente.

 Ac 2
+
12 Is
2
Asc

12 Isc

6 Is

Ac
2

12 Is
2

Asc
+
12 Isc

"#
6 Is
L #
3 3 2 3 3 2
L L L L L L L L L
6 Ic #
#
2 2 2 2
Asc 12 Isc As 12 Ic 6 Ic Asc 12 Isc As 12 Ic
L #
− 3
+ 3 2
− + 3
− − 3 2

2I #
L L L L L L L L L


6 Is 6 Ic 4I 6 Is

6 Ic
L #
#
#
2 2 2 2
L L L L L
KG = E (7.67)
6 Is #
2 2 2 2
Ac 12 Is Asc 12 Isc 6 Is Ac 12 Is Asc 12 Isc
L #
− − − + + −
L3 L3 L2 L3 L3
#
2
L L L L
6 Ic #
2 2 2 2

L #
Asc 12 Isc As 12 Ic 6 Ic Asc 12 Isc As 12 Ic
− + − − − − + −
#
3 3 2 3 3 2
L L L L L L L L L
4I #
! −
6 Is
L
2
6 Ic
L
2
2I
L
6 Is
L
2

6 Ic
2
L L $
#
siendo c=cosα s=sinα. Matriz rigidez local del pórtico
Se observa nuevamente que está formada por cuatro submatrices de tamaño 3x3, que
Siendo c = coseno y s= seno.
son la proyección al sistema general de cada una de las matrices correspondientes en el
sistema local.número
1 Elemento De forma
01: compacta la ecuación de equilibrio se puede poner:

1

3952.847 %K F (K
0.000
IX ∆ IX
−5929.271 −3952.847 %K (K 0.000 −5929.2710

KK FM KK K KK ∆θ KK
 
2  0.000 142302.515 0.000 0.000IY −142302.515 0.0000 

&KF )K = !K "#&



 IY 

)K
 −5929.271
3  0.000 11858.542
K 5929.2710 0.000 5929.271 
E1 = I GII GIJ I

$ K∆ (7.68)
 
 −3952.847
7  0.000 5929.271 3952.847 0.000 5929.271 
K GJJ
KKF KK KK∆ KK

 JX GJI JX 
8 
 0.000 −142302.515 0.000 0.000 142302.515 0.000 

9 −5929.271 JY
0.000 5929.271 5929.271
JY 0.000 11858.542
'M * J 'θ J *
K GIJ = T T K LIJ T (7.69)
En la práctica son muy frecuentes las vigas situadas en posición horizontal o
vertical, y para ellas es posible obtener una expresión sencilla de su ecuación de equilibrio
Directorio de Investigación 12 / 56 ACI-UNH
en el sistema general.
2 Elemento número 02:
 
4 853.815 0.000 −2134.537 −853.815 0.000 −2134.537
 
5 
 0.000 85381.507 0.000 0.000 −85381.507 0.000 

 
 −2134.537
6  0.000 7115.125 2134.537 0.000 3557.562 
E2 =

 
13 
 −853.815 0.000 2134.537 853.815 0.000 2134.537 

 
14 
 0.000 −85381.507 0.000 0.000 85381.507 0.000 

15 −2134.537 0.000 3557.562 2134.537 0.000 7115.125

3 Elemento número 03:


 
10 13340.859 0.000 −13340.859 −13340.859 0.000 −13340.859
 
11 
 0.000 213453.765 0.000 0.000 −213453.765 0.0000 

 
 −13340.859
12  0.000 17787.812 13340.859 0.000 8893.906 
E3 =

 
 −13340.859
16  0.000 13340.859 13340.859 0.000 13340.859 

 
17 
 0.000 −213453.765 0.000 0.000 213453.765 0.000 

18 −13340.859 0.000 8893.906 13340.859 0.000 17787.812

4 Elemento número 04:


 
7 66881.148 22106.563 −561.465 −66881.148 −22106.563 −561.465
 
8 
 22106.563 7930.319 1684.395 −22106.563 −7930.319 1684.394 

 
9  −561.465 1684.395 7486.198 561.465 −1684.395 3743.099 
E4 =
 
 
 −66881.148 −22106.563
10  561.465 66881.148 22106.563 561.465 

 
 −22106.563 −7930.319 −1684.395
11  22106.563 7930.3188 −1684.395 

12 −561.465 1684.395 3743.099 561.465 −1684.395 7486.200

5 Elemento número 05:


 
16 75299.773 −29756.097 909.527 −75299.773 29756.097 909.5271
 
 −29756.097
17  12811.965 2273.817 29756.097 −12811.965 2273.817


 
18  909.527 2273.817 8792.095 −909.527 −2273.817 4396.047 
E5 =
 
 
 −75299.773 29756.097
13  −909.527 75299.773 −29756.097 −909.527 
 
14  29756.097 −12811.965 −2273.817
 −29756.097 12811.965 −2273.817 

15 909.527 2273.817 4396.047 −909.527 −2273.817 8792.0957

Directorio de Investigación 13 / 56 ACI-UNH


1
6

 
7  70833.992 22106.563 ··· ··· ··· ··· ··· · · · 0.000 0.000

 
8  22106.563 150232.828 ··· ··· ··· ··· ··· · · · 0.000 0.000 
 
 
9  5367.806 1684.395 ··· ··· ··· ··· ··· · · · 0.000 0.000 
 
 
10  −66881.148 −22106.563 ··· ··· ··· ··· ··· · · · 0.000 0.000 

Directorio de Investigación
 
 
11  −22106.563 −7930.319 ··· ··· ··· ··· ··· · · · 0.000 0.000 
 
 
12 

−561.465 1684.395 ··· ··· ··· ··· ··· · · · 0.000 0.000 

 
13  0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 2134.537 
nodo [(N ExN D )] x [(N ExN D )].

 
 
14 

0.000 0.000 · · · · · · · · · · · · · · · · · · − 85381.5078 0.000 

 
15  0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 3557.563 
M atrizEnsamblado =

 

nentes y desplazamientos desconocidos.


ME =  
16 

0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 0.000 

ii+1

 
17 

0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 0.000 


 
Matriz Ensamblado de [(N ExN D )] x [(N ExN D )]:

18 

0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 0.000 

 
1  

 −3952.847 0.000 ··· ··· ··· ··· ··· · · · 0.000 0.000 

2  

14 / 56

 0.000 −142302.515 · · · · · · · · · · · · · · · · · · 0.000 0.000 

3  
5929.271 0.000 ··· ··· ··· ··· ··· · · · 0.000 0.000
[K21] [K22]

 
 
4  

i1  [K11] [K12] 


 0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 −2134.537 

5  

 0.000 0.000 ··· ··· ··· ··· ··· · · · 85381.507 0.000 

6 0.000 0.000 ··· ··· ··· ··· ··· · · · 0.000 7115.125

ACI-UNH
La matriz de K11 siempre es una matriz cuadrada que esta en función de compo-
Matriz rigidez ensamblado del pórtico de tamaño numero de elementos por numero de
Directorio de Investigación
 
7 70833.992 22106.562 5367.806 −66881.148 −22106.562 −561.465 0.000 0.000 0.000 0.000 0.000 0.000
8  22106.562 150232.828 1684.394 −22106.562 −7930.318 1684.394 0.000 0.000 0.000 0.000 0.000 0.000 
 
9  5367.806 1684.394 19344.742 561.465 −1684.394 3743.099 0.000 0.000 0.000 0.000 0.000 0.000 
 
10  −66881.148 −22106.562 561.465 80222.007 22106.562 −12779.394 0.000 0.000 0.000 −13340.859 0.000 −13340.859 
 
11  −22106.562 −7930.318 −1684.394 22106.562 221384.078 −1684.394 0.000 0.000 0.000 0.000 −213453.765 0.000 
 
12  −561.465 1684.394 3743.099 −12779.394 −1684.394 25274.011 0.000 0.000 0.000 13340.859 0.000 8893.906 
K11 =  
13  0.000 0.000 0.000 0.000 0.000 0.000 76153.585 −29756.097 1225.0105 −75299.7734 29756.0977 −909.5272 
 
14  0.000 0.000 0.000 0.000 0.000 0.000 −29756.097 98193.476 −2273.817 29756.097 −12811.965 −2273.817 
 
15  0.000 0.000 0.000 0.000 0.000 0.000 1225.010 −2273.817 15907.2207 909.5272 2273.8179 4396.0479 
16
 0.000 0.000 0.000 −13340.859 0.000 13340.859 −75299.773 29756.097 909.527 88640.632 −29756.097 14250.386

 
17 0.000 0.000 0.000 0.000 −213453.765 0.000 29756.097 −12811.9658 2273.8179 −29756.0977 226265.7344 2273.8179
 
18 0.000 0.000 0.000 −13340.859 0.000 8893.906 −909.527 −2273.817 4396.047 14250.386 2273.817 26579.908

15 / 56
ACI-UNH
La matriz K12 no siempre es una matriz cuadrada.
 
7 −3952.847 0.000 5929.271 0.000 0.000 0.000
 
8  0.000 −142302.515 0.000 0.000 0.000 0.000
 

 
9  −5929.271 0.000 5929.271 0.000 0.000 0.000
 

 
10 0.000 0.000 0.000 0.000 0.000 0.000
 
 
 
11 0.000 0.000 0.000 0.000 0.000 0.000
 
 
 
12 0.000 0.000 0.000 0.000 0.000 0.000
 
 
K12 =  
13 0.000 0.000 0.000 −853.815 0.000 2134.537
 
 
 
14 0.000 0.000 0.000 0.000 −85381.507 0.000
 
 
 
15 0.000 0.000 0.000 −2134.537 0.000 3557.562
 
 
 
16 0.000 0.000 0.000 0.000 0.000 0.000
 
 
 
17 0.000 0.000 0.000 0.000 0.000 0.000
 
 
 
18 0.000 0.000 0.000 0.000 0.000 0.000

De la misma manera la matriz 21 no siempre es cuadrática.

 K12 = 
1 −3952.847 0.000 −5929.271 0.000 0.000 0.000 0.000 ....
 
2 
 0.000 −142302.516 0.000 0.000 0.000 0.000 0.000 .... 

 
3 
 5929.271 0.000 5929.271 0.000 0.000 0.000 0.000 .... 

 
4 
 0.000 0.000 0.000 0.000 0.000 0.000 −853.815 .... 

 
5 
 0.000 0.000 0.000 0.000 0.000 0.000 0.000 .... 

6 0.000 0.000 0.000 0.000 0.000 0.000 2134.538 ....
 
1 .... 0.000 0.000 0.000 0.000 0.000
 
2 
 .... 0.000 0.000 0.000 0.000 0.000 

 
3 
 .... 0.000 0.000 0.000 0.000 0.000 
K12 =

 
4 
 .... −2134.538 0.000 0.000 0.000 
0.000 
 
5 
 .... −85381.508 0.000 0.000 0.000 0.000 

6 .... 0.000 3557.563 0.000 0.000 0.000

2 La matriz K22 siempre es cuadrática que esta en función de componentes de reac-


ciones y momentos.
 
1  3952.8472 0.0000 −5929.2710 0.0000 0.0000 0.0000 
2  0.0000 142302.5156 0.0000 0.0000 0.0000 0.0000
 

 
3  −5929.2710 0.0000 11858.5420 0.0000 0.0000 0.0000
 

K22 =  
4 0.0000 0.0000 0.0000 853.8150 0.0000 −2134.5376
 
 
 
5 0.0000 0.0000 0.0000 0.0000 85381.5078 0.0000
 
 
 
6 0.0000 0.0000 0.0000 −2134.5376 0.0000 7115.1250

Directorio de Investigación 16 / 56 ACI-UNH


3.2 Momento de Empotramiento Perfecto del Pórtico Caso A
1 Este matriz de momento y empotramiento perfecto de tipo columna que se presenta,
ya son procesados, calculados y ubicados en sus respectivos componentes.
 
1 0.000 Tn
 
2 
 0.000 
 Tn
 
3 
 0.000 
 T n.m
 
4 
 0.000 
 Tn
 
5 0.000 Tn
 
 
 
6 0.000 T n.m
 
 
 
7 −4.000 Tn
 
 
 
8 12.000 Tn
 
 
 
9 13.331 T n.m
 
 
M EP =  
10 −4.000 Tn
 
 
 
11 12.000 Tn
 
 
 
12 −13.331 T n.m
 
 
 
13 4.000 Tn
 
 
 
14 10.000 Tn
 
 
 
15 −9.667 T n.m
 
 
 
16 4.000 Tn
 
 
 
17 10.000 Tn
 
 
 
18 9.667 T n.m

3.3 Giros y Desplazamientos (Calculados) del Pórtico Caso A


1 Este matriz de tipo columna presenta los desplazamientos y giros en los nodos y con
sus respectivos componentes, calculado con la ecuación 3.1.

D = K11−1 (Fz − Femp − K12.DK ) (3.1)


 
7  −4.000  m
8  12.000  m
 
 
9 13.331 rad
 
 
 
10 −4.000 m
 
 
 
11 12.000 m
 
 
Femp =  
12 −13.331 rad
 
 
 
13 4.000 m
 
 
 
14 10.000 m
 
 
 
15 −9.667 rad
 
 
 
16 4.000 m

Directorio de Investigación 17 / 56 ACI-UNH


 
17  10.000  m
18 9.667 rad

 
7 0.00387705 m
 
8 −0.00017736 m
 
 
 
9 −0.00417680 rad
 
 
 
10 0.00971423 m
 
 
 
11 −0.01841022 m
 
 
 
12 0.00280284 rad
 
 
Du =  
13 0.00795917 mts
 
 
 
14 −0.00021974 m
 
 
 
15 0.00123884 rad
 
 
 
16 0.00087498 m
 
 
 
17 −0.01841602 m
 
 
 
18 0.00472915 rad

3.4 Reacciones y Momentos en los Apoyos (Calculados) del Pórtico Caso A


1 Este matriz de tipo columna representa las reacciones y momentos en los apoyos
calculados con sus respectivos componentes.

RyM = K21 ∗ Du + K22.Dk + Femp − Fapoy (3.2)

Donde:

Dk = Asentamiento, en el ejercicio es cero.

Femp = Fuerzas de empotramientos perfectos.

Fapoy = Fuerzas de empotramientos perfectos

 
1  9.440  T n.
2  25.238  T n.
 
 
3  −1.77  T n − m.
 
RyM =  
4  −9.440  T n.
 
 
5  18.762 T n.
 

 
6 21.396 T n − m.

Directorio de Investigación 18 / 56 ACI-UNH


3.5 Fuerzas Internas del Pórtico Caso A

Fuerzas Internas 1

Este matriz de tipo columna representa las fuerzas internas del elemento (Columna
o Viga.)  
3i − 2  F uerza Axial 
3i − 1  F uerza Cortante
 

 
3i  M omento f lector
 

F uerza Interna =  
3j − 2  F uerza Axial
 

 
3j − 1 F uerza Cortante
 
 
 
3j M omento f lector

Además la fuerza axial siempre es igual en magnitud pero de signo contrario.

El componente i representa al nodo inicial del elemento y la j al nodo final del


elemento.

Fi = RT (KG .Du + Femp ) (3.3)

Donde:

Fi = Fuerzas internas de cada elemento.

RT = Matriz de Rotación.

Du = Desplazamiento y Giros de cada elemento.

Femp = Fuerzas de empotramiento de cada elemento .

Matriz de Rotación

 

Cos(θ ) Sen(θ ) 0 0 0 0 
−Sen(θ ) Cos(θ ) 0 0 0 0 
 

 
0 0 1 0 0 0 
 

RT = 
0 0 0 Cos(θ )
Sen(θ ) 0 
 

 
0 0 0 −Sen(θ ) Cos(θ ) 0 
 

 
0 0 0 0 0 1

Directorio de Investigación 19 / 56 ACI-UNH


1 Elemento número 01:
 
1  25.238  Tn (F uerza Axial )
2  −9.439  T n (F uerza Cortante)
 
 
3  −1.777  T n − m (M omento F lector )
 
F i1 =  
7  −25.238  Tn (F uerza Axial )
 
 
8  9.439 T n (F uerza Cortante)
 

 
9 −26.542 T n − m (M omento F lector )

2 Elemento número 02:


 
4  18.761  Tn (F uerza Axial )
5  9.440  Tn (F uerza Cortante)
 
 
6 21.396 Tn − m (M omento F lector )
 
 
F i2 =  
13 −18.761 Tn (F uerza Axial )
 
 
 
14 −9.440 Tn (F uerza Cortante)
 
 
 
15 25.803 Tn − m (M omento F lector )

3 Elemento número 03:


 
10  1.238  Tn (F uerza Axial )
11  −17.439  T n (F uerza Cortante)
 
 
12  −26.006  T n − m (M omento F lector )
 
F i3 =  
16  −1.238  Tn (F uerza Axial )
 
 
17  17.439 T n (F uerza Cortante)
 

 
18 −8.873 T n − m (M omento F lector )

4 Elemento número 04:


 
7  16.936  Tn (F uerza Axial )
8  20.957  Tn (F uerza Cortante)
 
 
9 26.542 Tn − m (M omento F lector )
 
 
F i4 =  
10 −16.936 Tn (F uerza Axial )
 
 
 
11 4.340 Tn (F uerza Cortante)
 
 
 
12 26.006 Tn − m (M omento F lector )

5 Elemento número 05:


 
16  15.732  Tn (F uerza Axial )
17  7.626  Tn (F uerza Cortante)
 
 
18 8.873 Tn − m (M omento F lector )
 
 
F i5 =  
13 −15.733 Tn (F uerza Axial )
 
 
 
14 13.914 Tn (F uerza Cortante)
 
 
 
15 −25.803 Tn − m (M omento F lector )

Directorio de Investigación 20 / 56 ACI-UNH


3.6 Diagramas de Fuerza Axial, Cortante y Momento Flector del Pórtico Caso A
1 Diagrama de Fuerza Axial:

Figura 3.1: Diagrama de Fuerza Axial del Pórtico Caso A

2 Diagrama de Fuerza cortante:

Figura 3.2: Diagrama de Fuerza Cortante del Pórtico Caso A

Directorio de Investigación 21 / 56 ACI-UNH


3 Diagrama de Momento Flector:

Figura 3.3: Diagrama de Momento Flector del Pórtico Caso A

Directorio de Investigación 22 / 56 ACI-UNH


4
Resultados Compilado en C++

A continuación se muestra el avance de programación en C++ del pórtico mostrado en


la figura 3.1:

1 Ingreso de datos:

2 Momento de empotramiento perfecto.

Directorio de Investigación 23 / 56 ACI-UNH


3 Matriz Rigidez 01.

4 Matriz Rigidez 02.

5 Matriz Rigidez 03.

6 Matriz Rigidez 04.

7 Matriz Rigidez 05.

Directorio de Investigación 24 / 56 ACI-UNH


8 Matriz Rigidez Ensamblado.

9 Matriz K11:

10 Matriz K12.

Directorio de Investigación 25 / 56 ACI-UNH


11 Matriz K21.

12 Matriz K22.

13 Momento de empotramiento Perfecto.

14 Desplazamientos y giros.

Directorio de Investigación 26 / 56 ACI-UNH


15 Reacciones y momentos en los apoyos.

16 Fuerzas Internas.

Directorio de Investigación 27 / 56 ACI-UNH


Directorio de Investigación 28 / 56 ACI-UNH
5
Validación de Resultados Con
SAP2000 vs C++

1 Desplazamientos y giros.

C++.

SAP2000

Directorio de Investigación 29 / 56 ACI-UNH


Directorio de Investigación 30 / 56 ACI-UNH
Directorio de Investigación 31 / 56 ACI-UNH
2 Reacciones y momentos en los apoyos.

C++.

SAP2000

Directorio de Investigación 32 / 56 ACI-UNH


3 Fuerzas Internas

C++.

SAP2000

Directorio de Investigación 33 / 56 ACI-UNH


Directorio de Investigación 34 / 56 ACI-UNH
6
Resultados de Porticos de Caso B,
C, D, E, F

1 Desplazamientos y Giros del Pórtico Caso B.

2 Reacciones y Momentos del Pórtico Caso B.

3 Fuerzas internas del Pórtico Caso B.

Directorio de Investigación 35 / 56 ACI-UNH


4 Fuerzas internas del Pórtico Caso B.

Directorio de Investigación 36 / 56 ACI-UNH


1 Desplazamientos y Giros del Pórtico Caso C.

2 Reacciones y Momentos del Pórtico Caso C.

3 Fuerzas internas del Pórtico Caso C.

Directorio de Investigación 37 / 56 ACI-UNH


4 Fuerzas internas del Pórtico Caso C.

1 Desplazamientos y Giros del Pórtico Caso D.

Directorio de Investigación 38 / 56 ACI-UNH


2 Reacciones y Momentos del Pórtico Caso D.

3 Fuerzas internas del Pórtico Caso D.

Directorio de Investigación 39 / 56 ACI-UNH


1 Desplazamientos y Giros del Pórtico Caso E.

Directorio de Investigación 40 / 56 ACI-UNH


2 Reacciones y Momentos del Pórtico Caso E.

3 Fuerzas internas del Pórtico Caso E.

Directorio de Investigación 41 / 56 ACI-UNH


1 Desplazamientos y Giros del Pórtico Caso F.

Directorio de Investigación 42 / 56 ACI-UNH


2 Reacciones y Momentos del Pórtico Caso F.

3 Fuerzas internas del Pórtico Caso F.

Directorio de Investigación 43 / 56 ACI-UNH


Directorio de Investigación 44 / 56 ACI-UNH
7
Anexo-(Solución de un Pórtico
Avanzado (Viga -Columna))

1 Pórtico hiperestático real de una Edificación:

w=1.76 Tn/m

w=2.88 Tn/m

w=2.88 Tn/m

Figura 7.1: Pórtico Hiperestático, de una Edificación Real de Tres Niveles

2 Elementos del Pórtico hiperestático real de una Edificación:

3 Nodos del Pórtico hiperestático real de una Edificación:

Directorio de Investigación 45 / 56 ACI-UNH


21 22 23 24

09

10

11

12
17 18 19 20
05

06

07

08
13 14 15 16
01

02

03

04
Figura 7.2: Elementos del Pórtico Hiperestático, de una Edificación Real de Tres Niveles

15 16 17 18 19

10 11 12 13 14

05 06 07 08 09

01 02 03 04

Figura 7.3: Nodos del Pórtico Hiperestático, de una Edificación Real de Tres Niveles

4 Componentes del Pórtico hiperestático real de una Edificación:

Directorio de Investigación 46 / 56 ACI-UNH


43 45 46 48 49 51 52 54 55 57

44 47 50 53 56

28 30 31 33 34 36 37 39 40 42

29 32 35 38 41

13 15 16 18 19 21 22 24 25 27

14 17 20 23 26

01 03 04 06 07 09 10 12

02 05 08 11

Figura 7.4: Componentes del Pórtico Hiperestático, de una Edificación Real de Tres Niveles

7.1 Datos de Entrada

Directorio de Investigación 47 / 56 ACI-UNH


7.2 Resultados
Reacciones y Momentos:

Desplazamientos y Giros:

Fuerzas Internas:

Directorio de Investigación 48 / 56 ACI-UNH


Directorio de Investigación 49 / 56 ACI-UNH
Directorio de Investigación 50 / 56 ACI-UNH
Directorio de Investigación 51 / 56 ACI-UNH
Directorio de Investigación 52 / 56 ACI-UNH
Directorio de Investigación 53 / 56 ACI-UNH
Directorio de Investigación 54 / 56 ACI-UNH
Directorio de Investigación 55 / 56 ACI-UNH
Directorio de Investigación 56 / 56 ACI-UNH
1: /* DESARRALLODO POR : SEDANO SALAZAR, Bacilio
2: UNIVERSIDAD : UNIVERSIDAD NACIONAL DE HUANCAVELICA
3: ESCUELA : ESTUDIANTE DE INGENERIA CIVIL - HVCA
4: */
5: #include<iostream>
6: #include<cmath>
7: #include<iomanip>
8: #include<fstream>
9: #include<cstdlib>
10: #include<conio.h>
11:
12: using namespace std;
13:
14: #define pi 3.14159265358979323846
15: #define l(x) (sizeof(x)/sizeof(x[0]))
16:
17:
18: int main(void){
19:
20: printf("\n\t\t------------------------------------------------");
21: printf ("\n\t\t\t\t ACI - UNH ");
22: printf ("\n\t\t\t METODO MATRICIAL DE PORTICOS ");
23: printf("\n\t\t------------------------------------------------\n\n");
24:
25: //------------------------------------------------------------------------------
26: // DATOS INICIALES PARA EL CÁLCULO
27: //------------------------------------------------------------------------------
28:
29: // DATOS DE ELEMENTOS
30: int N_inic[] = {1,2,4,3,6}; // Nodo Inicial
31: int N_fin [] = {3,5,6,4,5}; // Nodo Final
32: float A [] = {.15,.15,.15,.165,.165}; // Área [m2]
33: float I [] = {.003125,.003125,.003125,.004159,.004159}; // Inercia [m4]
34: float E [] = {2846049.89,2846049.89,2846049.89,2846049.89,2846049.89}; // M-Elasticidad [Tn/m2
35:
36: // DATOS DE NODO
37: int RM [] = {1,2,3,4,5,6}; // Componente de Reacciones y Mom.
38: float Dk [] = {0,0,0,0,0,0}; // Vector de despl. y giros conocidos.
39: float Fapo [] = {0,0,0,0,0,0}; // Vector de fuerzas y momentos en la
40: int Dgd [] = {7,8,9,10,11,12,13,14,15,16,17,18}; // Componentes de despl. y giros desco
41: float Fz [] = {0,0,0,0,0,0,0,0,0,0,0,0}; // Vector de fuerzas conocidas.
42:
43: // DATOS DE LA COOORDENADA
44: float Nx [] = {0.00,11.00,0.00,6.00,11.00,6.00}; // Coordenada X[m].
45: float Ny [] = {0.00,0.00,3.00,5.00,5.00,7.00}; // Coordebada Y[m].
46:
47: //------------------------------------------------------------------------------
48: // PROCESO DEL CÁLCULO
49: //------------------------------------------------------------------------------
50: int ND = l(Nx); // Número de Nodos
51: int NE = l(A); // Número de Elementos
52:
53: // CÁLCULO DE LONGITUD Y COSENOS DIRECTORES
54: float L [NE];
55: float Cx[NE];
56: float Sy[NE];
57:
58: // DEFINIENDO LA MATRIZ GENERAL DEL PÓRTICO
59: float KT[ND*3][ND*3];
60:
61: for(int i=0;i<NE;i++){
62: L [i]=sqrt(pow(Nx[int(N_fin[i]-1)]-Nx[int(N_inic[i]-1)],2)+
63: pow(Ny[int(N_fin[i]-1)]-Ny[int(N_inic[i]-1)],2));
64: Sy[i]=(Ny[int(N_fin[i]-1)]-Ny[int(N_inic[i]-1)])/L[i];
65: Cx[i]=(Nx[int(N_fin[i]-1)]-Nx[int(N_inic[i]-1)])/L[i];
66: }
67:
68: // CÁLCULO DE COMPONENTES DEL ELEMENTO
69: int comp[NE][6];
70:
71: for(int i=0;i<NE;i++){
72: comp[i][0]=3*N_inic[i]-2;comp[i][1]=3*N_inic[i]-1;comp[i][2]=3*N_inic[i];
73: comp[i
74: }
75:
76: // CÁLCULO DE MATRIZ RIGIDEZ LOCAL
77: float Kg[ND*NE][ND*NE],Kr[NE][36],sun[ND*NE][ND*NE];
78:
79: // GENERANDO LA MATRIZ CON CEROS
80: for(int i=0;i<NE*ND;i++){
81: for (int j=0;j<NE*ND;j++){
82: Kg[i][j] =0;
83: }
84: }
85:
86: // CÁLCULO DE MATRÍZ LOCAL DEL PÓRTICO PARA CADA ELEMENTO
87: for(int i=0;i<NE;i++){
88: Kr[i][0]=((A[i]*E[i]*pow(Cx[i],2))/L[i] + (12*E[i]*I[i]*pow(Sy[i],2))/pow(L[i],3));
89: Kr[i][1]=((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
90: Kr[i][2]=(-6*E[i]*I[i]*Sy[i])/pow(L[i],2);
91: Kr[i][3]=-((A[i]*E[i]*pow(Cx[i],2))/L[i] + (12*E[i]*I[i]*pow(Sy[i],2))/pow(L[i],3));
92: Kr[i][4]=-((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
93: Kr[i][5]=(-6*E[i]*I[i]*Sy[i])/pow(L[i],2);
94:
95: Kr[i][6]=((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
96: Kr[i][7]=((A[i]*E[i]*pow(Sy[i],2))/L[i] + (12*E[i]*I[i]*pow(Cx[i],2))/pow(L[i],3));
97: Kr[i][8]=(6*E[i]*I[i]*Cx[i])/pow(L[i],2);
98: Kr[i][9]=-((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
99: Kr[i][10]=-((A[i]*E[i]*pow(Sy[i],2))/L[i] + (12*E[i]*I[i]*pow(Cx[i],2))/pow(L[i],3));
100: Kr[i][11]=(6*E[i]*I[i]*Cx[i])/pow(L[i],2);
101:
102: Kr[i][12]=-6*E[i]*I[i]*Sy[i]/pow(L[i],2);
103: Kr[i][13]=6*E[i]*I[i]*Cx[i]/pow(L[i],2);
104: Kr[i][14]=4*E[i]*I[i]/L[i];
105: Kr[i][15]=6*E[i]*I[i]*Sy[i]/pow(L[i],2);
106: Kr[i][16]=-6*E[i]*I[i]*Cx[i]/pow(L[i],2);
107: Kr[i][17]=4*E[i]*I[i]/(2*L[i]);
108:
109: Kr[i][18]=-((A[i]*E[i]*pow(Cx[i],2))/L[i] + (12*E[i]*I[i]*pow(Sy[i],2))/pow(L[i],3));
110: Kr[i][19]=-((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
111: Kr[i][20]= (6*E[i]*I[i]*Sy[i])/pow(L[i],2);
112: Kr[i][21]=((A[i]*E[i]*pow(Cx[i],2))/L[i] + (12*E[i]*I[i]*pow(Sy[i],2))/pow(L[i],3));
113: Kr[i][22]=((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
114: Kr[i][23]= (6*E[i]*I[i]*Sy[i])/pow(L[i],2);
115:
116: Kr[i][24]=-((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
117: Kr[i][25]=-((A[i]*E[i]*pow(Sy[i],2))/L[i] + (12*E[i]*I[i]*pow(Cx[i],2))/pow(L[i],3));
118: Kr[i][26]=-(6*E[i]*I[i]*Cx[i])/pow(L[i],2);
119: Kr[i][27]=((A[i]*E[i]/L[i]) - (12*E[i]*I[i])/pow(L[i],3))*Sy[i]*Cx[i];
120: Kr[i][28]=((A[i]*E[i]*pow(Sy[i],2))/L[i] + (12*E[i]*I[i]*pow(Cx[i],2))/pow(L[i],3));
121: Kr[i][29]=-(6*E[i]*I[i]*Cx[i])/pow(L[i],2);
122:
123: Kr[i][30]=-6*E[i]*I[i]*Sy[i]/pow(L[i],2);
124: Kr[i][31]=6*E[i]*I[i]*Cx[i]/pow(L[i],2);
125: Kr[i][32]=4*E[i]*I[i]/(2*L[i]);
126: Kr[i][33]=6*E[i]*I[i]*Sy[i]/pow(L[i],2);
127: Kr[i][34]=-6*E[i]*I[i]*Cx[i]/pow(L[i],2);
128: Kr[i][35]=4*E[i]*I[i]/(L[i]);
129: }
130:
131: // CONVIERTIENDO EN UNA MATRIZ DE TAMAÑO 6X6
132: float Kl[6][6];
133:
134: for(int i=0;i<NE;i++){
135: Kl[0][0]=Kr[i][0]; Kl[0][1]=Kr[i][1]; Kl[0][2]=Kr[i][2];
136: Kl[0][3]=Kr[i][3]; Kl[0][4]=Kr[i][4]; Kl[0][5]=Kr[i][5];
137: Kl[1][0]=Kr[i][6]; Kl[1][1]=Kr[i][7]; Kl[1][2]=Kr[i][8];
138: Kl[1][3]=Kr[i][9]; Kl[1][4]=Kr[i][10];Kl[1][5]=Kr[i][11];
139: Kl[2][0]=Kr[i][12];Kl[2][1]=Kr[i][13];Kl[2][2]=Kr[i][14];
140: Kl[2][3]=Kr[i][15];Kl[2][4]=Kr[i][16];Kl[2][5]=Kr[i][17];
141: Kl[3][0]=Kr[i][18];Kl[3][1]=Kr[i][19];Kl[3][2]=Kr[i][20];
142: Kl[3][3]=Kr[i][21];Kl[3][4]=Kr[i][22];Kl[3][5]=Kr[i][23];
143: Kl[4][0]=Kr[i][24];Kl[4][1]=Kr[i][25];Kl[4][2]=Kr[i][26];
144: Kl[4][3]=Kr[i][27];Kl[4][4]=Kr[i][28];Kl[4][5]=Kr[i][29];
145: Kl[5][0]=Kr[i][30];Kl[5][1]=Kr[i][31];Kl[5][2]=Kr[i][32];
146: Kl[5][3]=Kr[i][33];Kl[5][4]=Kr[i][34];Kl[5][5]=Kr[i][35];
147:
148: cout<<"\n \t\t MATRIZ RIGIDEZ CON SUS RESPECTIVOS COMPONENTES DEL ELEMENTO No: "<<i+1<<"\n"<<e
149: for(int l=0;l<6;l++){
150: printf(" %3.0i | ",comp[i][l]);
151: for (int s=0;s<6;s++){
152: printf("% 16.3f ",Kl[l][s]);
153: }
154: printf("|\n");
155: }
156:
157: float reog;
158:
159: for(int ii=0;ii<NE*ND;ii++){
160: for (int jj=0;jj<NE*ND;jj++){
161: sun[ii][jj] =0;
162: }
163: }
164:
165: for(int j = 0;j<6;j++){
166: for(int s=0;s<6;s++){
167: reog=Kl[j][s];sun[(comp[i][j]-1)][(comp[i][s]-1)]=reog;
168: }
169: }
170: printf("\n");
171:
172: for(int ii=0;ii<NE*ND;ii++){
173: for(int jj=0; jj<NE*ND;jj++){
174: Kg[ii][jj] += sun[ii][jj];
175: }
176: }
177: }
178:
179: // ENSAMBLANDO LA MATRIZ RIGIDEZ DEL PÓRTICO
180: float Ktotal[ND*NE][ND*NE];
181:
182: for(int i=0;i<NE*ND;i++){
183: for (int j=0;j<NE*ND;j++){
184: Ktotal[i][j] =Kg[i][j];
185: }
186: }
187:
188: int nDD = l(Dgd); // Componentes de desplazamientos y giros desconoc
189: int nRM = l(RM); // Componente de Reacciones y Momentos.
190:
191: int COMP[nDD+nRM],e=0;
192:
193: for(int i=0;i<nDD;i++){
194: COMP[e]=Dgd[i];
195: e++;
196: }
197:
198: for(int i=0;i<nRM;i++){
199: COMP[e]=RM[i];
200: e++;
201: }
202:
203: float Reog,Kensamblada[ND*NE][ND*NE];
204:
205: for(int i=0;i<NE*ND;i++){
206: for (int j=0;j<NE*ND;j++){
207: Kensamblada[i][j] =0;
208: }
209: }
210:
211: for(int i=0;i<3*ND;i++){
212: for(int j=0;j<3*ND;j++){
213: Reog=Ktotal[COMP[i]-1][COMP[j]-1];
214: Kensamblada[i][j]=Reog;
215: }
216: }
217: printf("\n\n\t\t -------------------------------------------------------------");
218: cout<<"\n\t\t\t LA MATRIZ RIGIDEZ DEL PORTICO GENERAL ENSAMBLADO"<<endl;
219: printf("\t\t -------------------------------------------------------------\n\n");
220:
221: for(int ii=0;ii<3*ND;ii++){
222: printf(" %3.0i| ",COMP[ii]);
223: for(int jj=0;jj<3*ND;jj++){
224: printf("% 16.3f ",Kensamblada[ii][jj]);
225: }
226: printf("|\n");
227: }
228:
229: // CÁLCULO Y OBTENCIÓN DE SUB-MATRICES DE K11, K12, K21 Y K22.
230: // CÁLCULO DE LA MATRIZ K11.
231: float K11[l(Dgd)][l(Dgd)];
232:
233: for(int i=0;i<l(Dgd);i++){
234: for (int j=0;j<l(Dgd);j++){
235: K11[i][j] =0;
236: }
237: }
238:
239: for(int i=0;i<l(Dgd);i++){
240: for (int j=0;j<l(Dgd);j++){
241: K11[i][j] =Kensamblada[i][j];
242: }
243: }
244:
245: cout<<"\n\n\t\tMATRIZ RIGIDEZ K11\n"<<endl;
246:
247: for(int ii=0;ii<l(Dgd);ii++){
248: printf(" %3.0i| ",Dgd[ii]);
249: for(int jj=0;jj<l(Dgd);jj++){
250: printf("% 16.3f ",K11[ii][jj]);
251: }
252: printf("|\n");
253: }
254:
255: // CÁLCULO DE LA MATRIZ K12.
256: float K12[l(Dgd)][l(RM)];
257:
258: for(int i=0;i<l(Dgd);i++){
259: for (int j=0;j<l(RM);j++){
260: K12[i][j] =0;
261: }
262: }
263:
264: for(int i=0;i<l(Dgd);i++){
265: for (int j=0;j<l(RM);j++){
266: K12[i][j] =Kensamblada[i][j+l(Dgd)];
267: }
268: }
269: cout<<"\n\n\t\tMATRIZ RIGIDEZ K12\n"<<endl;
270:
271: for(int ii=0;ii<l(Dgd);ii++){
272: printf(" %3.0i| ",Dgd[ii]);
273: for(int jj=0;jj<l(RM);jj++){
274: printf("% 16.3f ",K12[ii][jj]);
275: }
276: printf("|\n");
277: }
278:
279: // CÁLCULO DE LA MATRIZ K21.
280: float K21[l(RM)][l(Dgd)];
281:
282: for(int i=0;i<l(RM);i++){
283: for (int j=0;j<l(Dgd);j++){
284: K21[i][j] =0;
285: }
286: }
287:
288: for(int i=0;i<l(RM);i++){
289: for (int j=0;j<l(Dgd);j++){
290: K21[i][j] =Kensamblada[i+l(Dgd)][j];
291: }
292: }
293: cout<<"\n\n\t\tMATRIZ RIGIDEZ K21\n"<<endl;
294:
295: for(int ii=0;ii<l(RM);ii++){
296: printf(" %3.0i| ",RM[ii]);
297: for(int jj=0;jj<l(Dgd);jj++){
298: printf("% 16.3f ",K21[ii][jj]);
299: }
300: printf("|\n");
301: }
302:
303: // CÁLCULO DE LA MATRIZ K22.
304: float K22[l(RM)][l(RM)];
305:
306: for(int i=0;i<l(RM);i++){
307: for (int j=0;j<l(RM);j++){
308: K22[i][j] =0;
309: }
310: }
311:
312: for(int i=0;i<l(RM);i++){
313: for (int j=0;j<l(RM);j++){
314: K22[i][j] =Kensamblada[i+l(Dgd)][j+l(Dgd)];
315: }
316: }
317: cout<<"\n\n\t\tMATRIZ RIGIDEZ K22\n"<<endl;
318:
319: for(int ii=0;ii<l(RM);ii++){
320: printf(" %3.0i| ",RM[ii]);
321: for(int jj=0;jj<l(RM);jj++){
322: printf("% 16.3f ",K22[ii][jj]);
323: }
324: printf("|\n");
325: }
326:
327: // DATOS DEL MOMENTO DE EMPOTRAMIENTO PERFECTO
328: float MEP[NE][6]={{0.,0.,0.,0.,0.,0.},
329: {0.,0.,0.,0.,0.,0.},
330: {0.,0.,0.,0.,0.,0.},
331: {-4.,12.,13.331,-4.,12.,-13.331 },
332: { 4.,10.,9.667,4.,10.,-9.667}};
333:
334: float Rmep[ND*3][1],Rmep_d[l(Dgd)][1],Rmep_r[l(RM)][1];
335:
336: for(int i=0;i<ND*3;i++){
337: for (int j=0;j<1;j++){
338: Rmep[i][j] =0;
339: }
340: }
341:
342: for(int i=0;i<NE;i++){
343: for(int j=0;j<6;j++){
344: Rmep[(comp[i][j])-1][0]+=MEP[i][j];
345: }
346: }
347: cout<<"\n\n\tMOMENTO DE EMPOTRAMIENTO PERFECTO\n"<<endl;
348: for(int ii=0;ii<ND*3;ii++){
349: printf(" %3.0i|",ii+1);
350: for(int jj=0;jj<1;jj++){
351: printf("% 12.3f ",Rmep[ii][jj]);
352: }
353: if((ii+1)%3==0){
354: printf("|Tn-m\n");
355: }else{
356: printf("|Tn\n");
357: }
358: }
359:
360: for(int i=0;i<l(Dgd);i++){
361: Rmep_d[i][0]=Rmep[Dgd[i]-1][0];
362: }
363:
364: for(int i=0;i<l(RM);i++){
365: Rmep_r[i][0]=Rmep[RM[i]-1][0];
366: }
367:
368: // CÁLCULO DE DESPLAZAMIENTOS DESCONOCIDOS
369: // CÁLCULO DE MATRIZ INVERSA DE K11
370: int Nf =l(Dgd);
371:
372: //DESARROLLANDO LA INVERSA
373: double InvA[500][500],ListCoef[500];
374:
375: for (int i = 0;i<Nf;i++){
376: for (int j = 0; j<Nf;j++){
377: InvA[i][j] = K11[i][j];
378: }
379: }
380:
381: // ********************************************************
382: for (int i = 0;i<Nf;i++){
383: for (int j = Nf;j<2 * (Nf);j++){
384: if (i == j - (Nf)){
385: InvA[i][j] = 1;
386: }
387: else
388: {
389: InvA[i][j] = 0;
390: }
391: }
392: }
393: // ********************************************************
394: //Realizando las iteraciones de gauus-jordan:
395: float factorm, factors;
396:
397: for (int i = 0;i<Nf;i++) // Control de filas i-esima
398: {
399: factorm = InvA[i][i]; // Elemento de la diagonal de la matriz que se multiplicara;
400:
401: //1ro: Multilplicacion para obtener 1 en la diagonal principal:
402: //el factor (1/factorm) se multiplicara a todos los elementos de la fila i;
403: for (int j = 0;j < 2 * (Nf);j++) //el valor de k se debe cmabiar en chino;
404: {
405: InvA[i][j] = InvA[i][j] * (1 / factorm);
406: }
407: //2do: Suma a las filas restantes se debe sumar un factors*fi para obtener 0;
408: for (int s = 0; s<Nf; s++)
409: {
410: //control de filas para no operar en la fila de analisis o fila i-esima:
411: if (i != s)
412: {
413: //Calculo de factor que hara 0 al elemeto evaluado, en la fila s-esima, columna i-esim
414: factors = InvA[s][i];
415: //Calculo de coeficientes que se sumaran a la fila s-esima:
416: for (int j = 0; j < 2 * (Nf); j++)
417: {
418: ListCoef[j] = InvA[i][j] * (-1 * factors);
419: }
420: for (int j = 0; j < 2 * (Nf); j++)
421: {
422: InvA[s][j] = InvA[s][j] + ListCoef[j];
423: }
424: }
425: }
426: }
427:
428: //EXTRAYENDO MATRIZ INVERSA DE K11
429: float InvK11[100][100];
430: for( int i=0;i<Nf;i++){
431: for( int j=Nf;j<2*Nf;j++){
432: InvK11[i][j-Nf]=InvA[i][j];
433: }
434: }
435: printf("\n\n\n");
436:
437: // CÁLCULO DE DESPLAZAMIENTOS DESCONOCIDOS
438: float Du[l(Dgd)][1],Fz_T[l(Dgd)][1],Dk_T[l(RM)][1];
439:
440: for(int i=0;i<l(Dgd);i++){
441: for (int j=0;j<1;j++){
442: Du[i][j] =0;
443: }
444: }
445:
446: for(int i=0;i<l(Dgd);i++){
447: Fz_T[i][0]=Fz[i];
448: }
449:
450: for(int i=0;i<l(RM);i++){
451: Dk_T[i][0]=Dk[i];
452: }
453:
454: // VARIABLES TEMPORALES PARA EL CALCULO DE DESPLAZAMIENTO
455: float IK12[l(Dgd)][1],iK12[l(Dgd)][1];
456:
457: for(int i=0;i<l(Dgd);i++){
458: for (int j=0;j<1;j++){
459: IK12[i][j] =0;
460: iK12[i][j] =0;
461: }
462: }
463:
464: for(int i=0;i<l(Dgd);i++){
465: for(int j=0;j<l(RM);j++){
466: for(int z=0;z<l(RM);z++){
467: IK12[i][j]+=K12[i][z]*Dk_T[z][j];
468: }
469: }
470: }
471:
472: for(int i=0;i<l(Dgd);i++){
473: iK12[i][0]=Fz_T[i][0]-Rmep_d[i][0]-IK12[i][0];
474: }
475:
476: for(int i=0;i<l(Dgd);i++){
477: for(int j=0;j<l(Dgd);j++){
478: Du[i][0]+=InvK11[i][j]*iK12[j][0];
479: }
480: }
481:
482: printf ("\n\t GIROS Y DESPLAZAMIENTOS DEL PORTICO");
483: printf ("\n\t-------------------------------------\n\n" );
484:
485: for(int i=0;i<l(Dgd);i++){
486: printf(" %3.0i| ",Dgd[i]);
487: for(int j=0;j<1;j++){
488: printf("%12.5f ",Du[i][j]);
489: }
490: if((i+1)%3==0){
491: printf("|rad\n");
492: }else{
493: printf("|m\n");
494: }
495: }
496:
497: // CÁLCULO DE REACCIONES Y MOMENTOS DESCONOCIDOS
498: float Qu[l(RM)][1];
499:
500: for(int i=0;i<l(Dgd);i++){
501: for (int j=0;j<1;j++){
502: Qu[i][j] =0;
503: }
504: }
505:
506: for(int i=0;i<l(RM);i++){
507: for(int j=0;j<l(Dgd);j++){
508: Qu[i][0]+=K21[i][j]*Du[j][0];
509: }
510: }
511:
512: for(int i=0;i<l(RM);i++){
513: for(int j=0;j<l(RM);j++){
514: Qu[i][0]+=K22[i][j]*Dk[j]+Rmep_r[i][0]-Fapo[i];
515: }
516: }
517:
518: printf( "\n\n\t REACCIONES Y MOMENTOS DEL PORTICO");
519: printf("\n\t----------------------------------\n\n");
520:
521: for(int i=0;i<l(RM);i++){
522: printf(" %3.0i| ",RM[i]);
523: for(int j=0;j<1;j++){
524: printf("%12.3f ",Qu[i][j]);
525: }
526: if((i+1)%3==0){
527: printf("|Tn-m\n");
528: }else{
529: printf("|Tn\n");
530: }
531: }
532:
533: // CÁLCULO DE FUERZAS INTERNAS DEL PÓRTICO
534: float maTrans[NE][36],mTrans[6][6],D[ND*3]={},Ds[6]={},Fi[6][1],F[6][1],MEPi[6]={},Kl1[6][6];
535:
536: for(int i=0;i<l(Dgd);i++){
537: D[Dgd[i]-1]=Du[i][0];
538: }
539:
540: for(int i=0;i<l(RM);i++){
541: D[RM[i]-1]=Dk[i];
542: }
543:
544: for(int i=0;i<NE;i++){
545: maTrans[i][0] =Cx[i];maTrans[i][1]=Sy[i];maTrans[i][2]=0;
546: maTrans[i][3]=0;maTrans[i][4]=0;maTrans[i][5]=0;
547: maTrans[i][6] =Sy[i]*-1;maTrans[i][7]=Cx[i];maTrans[i][8]=0;
548: maTrans[i][9]=0;maTrans[i][10]=0;maTrans[i][11]=0;
549: maTrans[i][12]=0;maTrans[i][13]=0;maTrans[i][14]=1;
550: maTrans[i][15]=0;maTrans[i][16]=0;maTrans[i][17]=0;
551: maTrans[i][18]=0;maTrans[i][19]=0;maTrans[i][20]=0;
552: maTrans[i][21]=Cx[i];maTrans[i][22]=Sy[i];maTrans[i][23]=0;
553: maTrans[i][24]=0;maTrans[i][25]=0;maTrans[i][26]=0;
554: maTrans[i][27]=Sy[i]*-1;maTrans[i][28]=Cx[i];maTrans[i][29]=0;
555: maTrans[i][30]=0;maTrans[i][31]=0;maTrans[i][32]=0;
556: maTrans[i][33]=0;maTrans[i][34]=0;maTrans[i][35]=1;
557: }
558:
559: for(int i=0;i<NE;i++){
560: mTrans[0][0]=maTrans[i][0]; mTrans[0][1]=maTrans[i][1];
561: mTrans[0][2]=maTrans[i][2]; mTrans[0][3]=maTrans[i][3];
562: mTrans[0][4]=maTrans[i][4]; mTrans[0][5]=maTrans[i][5];
563: mTrans[1][0]=maTrans[i][6]; mTrans[1][1]=maTrans[i][7];
564: mTrans[1][2]=maTrans[i][8]; mTrans[1][3]=maTrans[i][9];
565: mTrans[1][4]=maTrans[i][10];mTrans[1][5]=maTrans[i][11];
566: mTrans[2][0]=maTrans[i][12];mTrans[2][1]=maTrans[i][13];
567: mTrans[2][2]=maTrans[i][14];mTrans[2][3]=maTrans[i][15];
568: mTrans[2][4]=maTrans[i][16];mTrans[2][5]=maTrans[i][17];
569: mTrans[3][0]=maTrans[i][18];mTrans[3][1]=maTrans[i][19];
570: mTrans[3][2]=maTrans[i][20];mTrans[3][3]=maTrans[i][21];
571: mTrans[3][4]=maTrans[i][22];mTrans[3][5]=maTrans[i][23];
572: mTrans[4][0]=maTrans[i][24];mTrans[4][1]=maTrans[i][25];
573: mTrans[4][2]=maTrans[i][26];mTrans[4][3]=maTrans[i][27];
574: mTrans[4][4]=maTrans[i][28];mTrans[4][5]=maTrans[i][29];
575: mTrans[5][0]=maTrans[i][30];mTrans[5][1]=maTrans[i][31];
576: mTrans[5][2]=maTrans[i][32];mTrans[5][3]=maTrans[i][33];
577: mTrans[5][4]=maTrans[i][34];mTrans[5][5]=maTrans[i][35];
578:
579: Kl1[0][0]=Kr[i][0]; Kl1[0][1]=Kr[i][1]; Kl1[0][2]=Kr[i][2];
580: Kl1[0][3]=Kr[i][3]; Kl1[0][4]=Kr[i][4]; Kl1[0][5]=Kr[i][5];
581: Kl1[1][0]=Kr[i][6]; Kl1[1][1]=Kr[i][7]; Kl1[1][2]=Kr[i][8];
582: Kl1[1][3]=Kr[i][9]; Kl1[1][4]=Kr[i][10];Kl1[1][5]=Kr[i][11];
583: Kl1[2][0]=Kr[i][12];Kl1[2][1]=Kr[i][13];Kl1[2][2]=Kr[i][14];
584: Kl1[2][3]=Kr[i][15];Kl1[2][4]=Kr[i][16];Kl1[2][5]=Kr[i][17];
585: Kl1[3][0]=Kr[i][18];Kl1[3][1]=Kr[i][19];Kl1[3][2]=Kr[i][20];
586: Kl1[3][3]=Kr[i][21];Kl1[3][4]=Kr[i][22];Kl1[3][5]=Kr[i][23];
587: Kl1[4][0]=Kr[i][24];Kl1[4][1]=Kr[i][25];Kl1[4][2]=Kr[i][26];
588: Kl1[4][3]=Kr[i][27];Kl1[4][4]=Kr[i][28];Kl1[4][5]=Kr[i][29];
589: Kl1[5][0]=Kr[i][30];Kl1[5][1]=Kr[i][31];Kl1[5][2]=Kr[i][32];
590: Kl1[5][3]=Kr[i][33];Kl1[5][4]=Kr[i][34];Kl1[5][5]=Kr[i][35];
591:
592: for(int j=0;j<6;j++){
593: Ds [j]=D[comp[i][j]-1];
594: MEPi[j]=MEP[i][j];
595: }
596: for(int ii=0;ii<6;ii++){
597: for (int j=0;j<1;j++){
598: F [ii][j]=0;
599: Fi[ii][j]=0;
600: }
601: }
602:
603: for(int ii=0;ii<6;ii++){
604: for(int j=0;j<6;j++){
605: F[ii][0]+=Kl1[ii][j]*Ds[j];
606: }
607: }
608:
609: for(int ii=0;ii<6;ii++){
610: F[ii][0]=F[ii][0]+MEPi[ii];
611: }
612:
613: for(int ii=0;ii<6;ii++){
614: for(int j=0;j<6;j++){
615: Fi[ii][0]+=mTrans[ii][j]*F[j][0];
616: }
617: }
618:
619: cout<<"\n\n\t FUERZA INTERNA DE ELEMENTO No: "<<i+1<<endl;
620: printf("\t----------------------------------\n\n");
621: for(int ii=0;ii<6;ii++){
622: printf(" %3.0i| ",comp[i][ii]);
623: for(int j=0;j<1;j++){
624: printf("%12.3f ",Fi[ii][j]);
625: }
626: if(ii==0){
627: printf("|Tn ( Fuerza Axial )\n");
628: }
629: else if(ii==1){
630: printf("|Tn ( Fuerza Cortante )\n");
631: }
632: else if(ii==2){
633: printf("|Tn-m ( Momento Flector )\n");
634: }
635: else if(ii==3){
636: printf("|Tn ( Fuerza Axial )\n");
637: }
638: else if(ii==4){
639: printf("|Tn ( Fuerza Cortante )\n");
640: }
641: else if(ii==5){
642: printf("|Tn-m ( Momento Flector )\n");
643: }
644: }
645: }
646: return 0;
647: }

También podría gustarte