0% encontró este documento útil (0 votos)
254 vistas25 páginas

Cálculo de Armaduras Planas en MATLAB

Este documento describe el análisis por elementos finitos de una armadura plana sometida a cargas. Se modela la armadura con 6 elementos finitos y 5 nodos. Se definen los grados de libertad, el vector de cargas aplicadas y las matrices de rigidez locales para cada elemento. El objetivo es calcular los esfuerzos en cada barra y las fuerzas de reacción en los apoyos mediante la resolución de las ecuaciones de rigidez.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
254 vistas25 páginas

Cálculo de Armaduras Planas en MATLAB

Este documento describe el análisis por elementos finitos de una armadura plana sometida a cargas. Se modela la armadura con 6 elementos finitos y 5 nodos. Se definen los grados de libertad, el vector de cargas aplicadas y las matrices de rigidez locales para cada elemento. El objetivo es calcular los esfuerzos en cada barra y las fuerzas de reacción en los apoyos mediante la resolución de las ecuaciones de rigidez.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE

INGENIERÍA
FACULTAD DE INGENIERÍA MECÁNICA
Especialidad de Ingeniería Mecánica-Eléctrica

CALCULO POR ELEMENTOS FINITOS


(MC516 - F)
Práctica N°3: Armaduras Planas
PRESENTADO POR:

Apellidos y nombres Código


Mayta Aliaga Diego José 20184029A

PROFESOR
Cueva Pacheco, Ronald
LIMA, 2021

Página | 0
INDICE

1. DESARROLLO DEL PROBLEMA ........................................................................2

1.1 Enunciado del problema ..........................................................................................2

1.2 Modelado del cuerpo................................................................................................3

1.3 Grados de libertad nodales .......................................................................................4

1.4 Vector carga .............................................................................................................4

1.5 Matrices de Rigidez Locales ....................................................................................5

1.6 Conectividad ............................................................................................................8

1.7 Matriz de Rigidez del Modelo .................................................................................8

1.8 Ecuación de Rigidez y condiciones de contorno .....................................................9

1.9 Cálculo de esfuerzos ..............................................................................................10

1.10 Resultados ............................................................................................................11

2. DIAGRAMA DE FLUJO DEL PROGRAMA ......................................................12

3. DIGITACIÓN Y EJECUCIÓN (MATLAB) .........................................................17

3.1 Código de Matlab ...................................................................................................17

3.2 Vista en el “Command Window”...........................................................................22

4. CONCLUSIONES ....................................................................................................24

Página | 1
1. DESARROLLO DEL PROBLEMA

1.1 Enunciado del problema


En la figura se muestra una viga en voladizo, conformada mediante una armadura plana.
Tiene dos apoyos (articulados) en la pared y está sometida a las fuerzas de servicio
indicadas.
DATOS:
ℎ = 1200 𝑚𝑚
∅ = 50 𝑚𝑚
𝑁
𝐸 = 3.20 ∙ 105
𝑚𝑚2
𝑃𝐴 = 5400 𝑁 𝑃𝐵 = 4000 𝑁 𝑃𝐶 = 2500 𝑁 𝑃𝐸 = 3000 𝑁

HALLAR:
• El esfuerzo en cada una de las barras de la armadura.
• Las fuerzas de reacción en los dos apoyos.

FIGURA:

𝑷𝑬
𝑷𝑨

𝟒𝟓°
𝒉 = 𝟏𝟐𝟎𝟎 𝐦𝐦

𝑷𝑩

𝟒𝟓° 𝟒𝟓°

𝟒𝟓°

𝑷𝑪

Página | 2
1.2 Modelado del cuerpo
En primer lugar, enumeraremos los elementos finitos y los nodos a estudiar. También
identificaremos los grados de libertad para cada nodo:
𝑸𝟏𝟎 𝑸𝟖 𝑸𝟔

(3) 𝑸𝟗 (4) 𝑸𝟕 (5) 𝑸𝟓


6 5

4 3 2

y
𝑸𝟐 𝑸𝟒
𝑸𝟏 𝑸𝟑
(2)
(1) 1
x

El modelo consta de 6 elementos finitos y 5 nodos. A continuación, se muestran las


coordenadas de cada nodo con respecto al origen en el nodo 1:

Nodo X (mm) Y(mm)


1 0 0
2 1200 0
3 -1200 1200
4 0 1200
5 1200 1200

Tabla de Conectividad preliminar


A partir del gráfico anterior, elaboramos una primera tabla de conectividad del sistema
(los valores de l y m se calcularán luego):
Grados de Libertad le Ae
e Nodos E (Mpa)
(GDL) (mm) (mm2)
1 1 2 Q1 Q2 Q3 Q4 1200 1963.4954 3.2x105
2 1 5 Q1 Q2 Q5 Q6 1697.0563 1963.4954 3.2x105
3 1 4 Q1 Q2 Q4 Q8 1200 1963.4954 3.2x105
4 1 3 Q1 Q2 Q9 Q10 1697.0563 1963.4954 3.2x105
5 4 5 Q7 Q8 Q5 Q6 1200 1963.4954 3.2x105

6 3 4 Q9 Q10 Q7 Q8 1200 1963.4954 3.2x105

Página | 3
1.3 Grados de libertad nodales (Vector Desplazamiento)
En base a la figura anterior, se obtiene el vector de desplazamientos:
𝑸𝟏
𝑸𝟐
𝑸𝟑
𝑸𝟒
𝑸𝟓
𝑸= 𝒎𝒎
𝑸𝟔
𝑸𝟕
𝑸𝟖
𝑸𝟗
[𝑸𝟏𝟎 ]
Donde Q3 = Q4 =Q5 = Q6 =0 puesto que la viga está empotrada en los nodos 2 y 5. Los
desplazamientos en los demás nodos serán las variables a calcular.

1.4 Vector Carga


En el siguiente gráfico, se muestran los vectores de carga en cada nodo:

𝑭𝟏𝟎 𝑭𝟖 𝑭𝟔

(3) 𝑭𝟗 (4) 𝑭𝟕 (5) 𝑭𝟓


6 5
𝟓𝟒𝟎𝟎 𝑵 𝑹𝟓

𝟑𝟎𝟎𝟎 𝑵 𝑹𝟔
𝟒𝟎𝟎𝟎 𝑵

4 3 2

𝑭𝟐 𝑭𝟒
𝑭𝟏 (2) 𝑭𝟑
(1) 1
x 𝑹𝟑

𝟐𝟓𝟎𝟎 𝑵 𝑹𝟒

Del gráfico anterior, concluimos lo siguiente:

𝑭𝟐 = −𝟐𝟓𝟎𝟎 𝑭𝟑 = 𝑹𝟑 𝑭𝟒 = 𝑹𝟒 𝑭𝟗 = −𝟓𝟒𝟎𝟎
𝑭𝟖 = −𝟑𝟎𝟎𝟎 𝑭𝟓 = 𝑹𝟓 𝑭𝟔 = 𝑹𝟔 𝑭𝟏𝟎 = −𝟒𝟎𝟎𝟎
𝑭𝟏 = 𝟎 𝑭𝟕 = 𝟎𝑭𝟕 = 𝟎

Página | 4
Como no consideramos el peso de las barras y no presenta variación de temperatura, solo
se toman en cuenta las reacciones y las fuerzas puntuales para el vector de cargas:
𝑭𝟏 𝟎
𝑭𝟐 −𝟐𝟓𝟎𝟎
𝑭𝟑 𝑹𝟑
𝑭𝟒 𝑹𝟒
𝑭𝟓 𝑹𝟓
𝑭= = 𝑵
𝑭𝟔 𝑹𝟔
𝑭𝟕 𝟎
𝑭𝟖 −𝟑𝟎𝟎𝟎
𝑭𝟗 −𝟓𝟒𝟎𝟎
[𝑭𝟏𝟎 ] [−𝟒𝟎𝟎𝟎]

1.5 Matrices de Rigidez Locales


a) En las coordenadas del elemento finito (X’):


𝐸𝐴 𝑒 1 −1
𝑘𝑡𝜔 =( ) ∙[ ]
𝑙𝑒 −1 1

b) En las coordenadas del modelo (X, Y)


Rotación de la diádica:

𝑘𝑠𝑟 = 𝐿𝑠𝑟 ∙ (𝑘𝑡𝜔 ) ∙ 𝐿𝑤𝑠
Desarrollando resulta:

𝑒
𝑙2 𝑙𝑚 −𝑙 2 −𝑙𝑚
𝐸𝐴 𝑚2 −𝑚2 ]
𝑒
𝑘𝑠𝑟 = ( ) ∙ [ 𝑙𝑚2 −𝑙𝑚
𝑙𝑒 −𝑙 −𝑙𝑚 𝑙2 𝑙𝑚
−𝑙𝑚 −𝑚2 𝑙𝑚 𝑚2

Ahora hallaremos la matriz de rigidez de cada elemento en las coordenadas del modelo,
cabe resaltar que los valores de l y m se calcularán en base a las coordenadas definidas en
secciones anteriores:

Elemento finito 1
𝑸𝟐 𝑸𝟒 𝒙 𝟐 − 𝒙𝟏
𝒍𝟏 = =𝟏
𝒍𝒆

𝑸𝟏 ′ 𝑸𝟏 𝑸𝟐 ′ 𝑸𝟑 𝒚 𝟐 − 𝒚𝟏
𝒎𝟏 = =𝟎
𝒍𝒆
(1) (2)

𝟏 𝟎 −𝟏 𝟎
𝟎 𝟎 𝟎 𝟎
𝒌𝟏 = 𝟓𝟐𝟑𝟓𝟗𝟖. 𝟕𝟕𝟓𝟔 ∙ [ ]
−𝟏 𝟎 𝟏 𝟎
𝟎 𝟎 𝟎 𝟎

Página | 5
Elemento finito 2
𝑸𝟔

𝑸𝟓 ′
𝒙 𝟓 − 𝒙𝟏 𝟏
(5) 𝒍𝟐 = =
𝒍𝒆 √𝟐
𝑸𝟓
𝒚 𝟓 − 𝒚𝟏 𝟏
𝒎𝟏 = =
𝒍𝒆 √𝟐

𝟎. 𝟓 𝟎. 𝟓 −𝟎. 𝟓 −𝟎. 𝟓
𝑸𝟐 𝟎. 𝟓 𝟎. 𝟓 −𝟎. 𝟓 −𝟎. 𝟓
𝒌𝟐 = 𝟑𝟕𝟎𝟐𝟒𝟎. 𝟐𝟒𝟒𝟖 ∙ [ ]
−𝟎. 𝟓 −𝟎. 𝟓 𝟎. 𝟓 𝟎. 𝟓
𝑸𝟏 ′
−𝟎. 𝟓 −𝟎. 𝟓 𝟎. 𝟓 𝟎. 𝟓

(1) 𝑸𝟏

Elemento finito 3

𝑸𝟖

𝑸𝟒 ′ 𝒙 𝟒 − 𝒙𝟏
𝒍𝟐 = =𝟎
(4) 𝒍𝒆
𝑸𝟕
𝒚𝟒 − 𝒚𝟏
𝒎𝟏 = =𝟏
𝒍𝒆

𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 −𝟏
𝒌𝟑 = 𝟓𝟐𝟑𝟓𝟗𝟖. 𝟕𝟕𝟓𝟔 ∙ [ ]
𝟎 𝟎 𝟎 𝟎
𝟎 −𝟏 𝟎 𝟏
𝑸𝟐

𝑸𝟏 ′

(1) 𝑸𝟏

Página | 6
Elemento finito 4 𝑸𝟏𝟎
𝑸𝟑 ′
𝒙 𝟑 − 𝒙𝟏 𝟏
𝒍𝟐 = =−
𝒍𝒆 √𝟐 (3)
𝑸𝟗
𝒚𝟑 − 𝒚𝟏 𝟏
𝒎𝟏 = =
𝒍𝒆 √𝟐

𝟎. 𝟓 −𝟎. 𝟓 −𝟎. 𝟓 𝟎. 𝟓 𝑸𝟐
−𝟎. 𝟓 𝟎. 𝟓 𝟎. 𝟓 −𝟎. 𝟓 𝑸𝟏 ′
𝒌𝟒 = 𝟑𝟕𝟎𝟐𝟒𝟎. 𝟐𝟒𝟒𝟖 ∙ [ ]
−𝟎. 𝟓 𝟎. 𝟓 𝟎. 𝟓 −𝟎. 𝟓
𝟎. 𝟓 −𝟎. 𝟓 −𝟎. 𝟓 𝟎. 𝟓

(1) 𝑸𝟏

Elemento finito 5
𝑸𝟖 𝑸𝟔 𝒙 𝟓 − 𝒙𝟒
𝒍𝟏 = =𝟏
𝒍𝒆

𝑸𝟒 ′ 𝑸𝟕 𝑸𝟓 ′ 𝑸𝟓 𝒚 𝟓 − 𝒚𝟒
𝒎𝟏 = =𝟎
𝒍𝒆
(4) (5)

𝟏 𝟎 −𝟏 𝟎
𝟎 𝟎 𝟎 𝟎
𝒌𝟓 = 𝟓𝟐𝟑𝟓𝟗𝟖. 𝟕𝟕𝟓𝟔 ∙ [ ]
−𝟏 𝟎 𝟏 𝟎
𝟎 𝟎 𝟎 𝟎

Elemento finito 6
𝑸𝟏𝟎 𝑸𝟖 𝒙 𝟒 − 𝒙𝟑
𝒍𝟏 = =𝟏
𝒍𝒆

𝑸𝟑 ′ 𝑸𝟗 𝑸𝟒 ′ 𝑸𝟕 𝒚 𝟒 − 𝒚𝟑
𝒎𝟏 = =𝟎
𝒍𝒆
(3) (4)

𝟏 𝟎 −𝟏 𝟎
𝟎 𝟎 𝟎 𝟎
𝒌𝟔 = 𝟓𝟐𝟑𝟓𝟗𝟖. 𝟕𝟕𝟓𝟔 ∙ [ ]
−𝟏 𝟎 𝟏 𝟎
𝟎 𝟎 𝟎 𝟎

Página | 7
1.6 Conectividad (ensamblaje del modelo)
A continuación, se muestra la tabla de conectividad completa del modelo:

Grados de Libertad le Ae
e Nodos E (Mpa) l m
(GDL) (mm) (mm2)

1 1 2 Q1 Q2 Q3 Q4 1200 1963.4954 3.2x105 1 0

1 1
2 1 5 Q1 Q2 Q5 Q6 1697.0563 1963.4954 3.2x105
√2 √2

3 1 4 Q1 Q2 Q4 Q8 1200 1963.4954 3.2x105 0 1

1 1
4 1 3 Q1 Q2 Q9 Q10 1697.0563 1963.4954 3.2x105 −
√2 √2

5 4 5 Q7 Q8 Q5 Q6 1200 1963.4954 3.2x105 1 0

6 3 4 Q9 Q10 Q7 Q8 1200 1963.4954 3.2x105 1 0

1.7 Matriz de Rigidez del Modelo (global)


Una vez calculadas las matrices, calculamos la matriz de rigidez global según la siguiente
relación:

𝑲𝒊𝒋 = ∑ 𝒌𝒆𝒔𝒓
𝒆

Entonces, la matriz de rigidez para el modelo estudiado es:

𝑲 = 𝒌𝟏 + 𝒌𝟐 + 𝒌𝟑 + 𝒌𝟒 + 𝒌𝟓 + 𝒌 𝟔

893839 0 −523599 0 −185120 −185120 0 0 −185120 185120


0 893839 0 0 −185120 −185120 0 −523599 185120 −185120
−523599 0 523599 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
−185120 −185120 0 0 708719 185120 −523599 0 0 0
𝐊=
−185120 −185120 0 0 185120 185120 0 0 0 0
0 0 0 0 −523599 0 1047198 0 −523599 0
0 −523599 0 0 0 0 0 523599 0 0
−185120 185120 0 0 0 0 −523599 0 708719 −185120
[ 185120 −185120 0 0 0 0 0 0 −185120 185120 ]

Página | 8
1.8 Ecuación de Rigidez y condiciones de contorno
La ecuación de rigidez está determinada por la siguiente ecuación:

𝑭𝒊 = 𝑲𝒊𝒋 ∙ 𝑸𝒋

Entonces:
0 893839 0 −523599 0 −185120 −185120 0 0 −185120 185120 𝑸𝟏
−2500 0 893839 0 0 −185120 −185120 0 −523599 185120 −185120 𝑸𝟐
𝑹𝟑 −523599 0 523599 0 0 0 0 0 0 0 𝟎
𝑹𝟒 0 0 0 0 0 0 0 0 0 0 𝟎
𝑹𝟓 −185120 −185120 0 0 708719 185120 −523599 0 0 0 𝟎
= ∙
𝑹𝟔 −185120 −185120 0 0 185120 185120 0 0 0 0 𝟎
0 0 0 0 0 −523599 0 1047198 0 −523599 0 𝑸𝟕
−3000 0 −523599 0 0 0 0 0 523599 0 0 𝑸𝟖
−5400 −185120 185120 0 0 0 0 −523599 0 708719 −185120 𝑸𝟗
[−4000] [ 185120 −185120 0 0 0 0 0 0 −185120 185120 ] [𝑸𝟏𝟎 ]

Si reescribimos el sistema para llevar todas las variables a un solo vector, se tiene:

0 893839 0 0 0 0 0 0 0 −185120 185120 𝑸𝟏


−2500 0 893839 0 0 0 0 0 −523599 185120 −185120 𝑸𝟐
0 −523599 0 −1 0 0 0 0 0 0 0 𝑹𝟑
0 0 0 0 −1 0 0 0 0 0 0 𝑹𝟒
0 −185120 −185120 0 0 −1 0 −523599 0 0 0 𝑹
= ∙ 𝟓
0 −185120 −185120 0 0 0 −1 0 0 0 0 𝑹𝟔
0 0 0 0 0 0 0 1047198 0 −523599 0 𝑸𝟕
−3000 0 −523599 0 0 0 0 0 523599 0 0 𝑸𝟖
−5400 −185120 185120 0 0 0 0 −523599 0 708719 −185120 𝑸𝟗
[−4000] [ 185120 −185120 0 0 0 0 0 0 −185120 185120 ] [𝑸𝟏𝟎]

Resolviendo el sistema de ecuaciones, se hallan los desplazamientos:

𝑸𝟏 = 𝟎. 𝟎𝟐𝟓𝟕𝟖𝟑𝟏 𝒎𝒎 𝑸𝟖 = −𝟎. 𝟎𝟖𝟐𝟖𝟑𝟎𝟕 𝒎𝒎


𝑸𝟐 = −𝟎. 𝟎𝟕𝟕𝟏𝟎𝟏 𝒎𝒎 𝑸𝟗 = −𝟎. 𝟎𝟑𝟓𝟗𝟎𝟓 𝒎𝒎
𝑸𝟕 = −𝟎. 𝟎𝟏𝟕𝟗𝟓𝟑 𝒎𝒎 𝑸𝟏𝟎 = −𝟎. 𝟏𝟔𝟎𝟑𝟗𝟕 𝒎𝒎

Y las reacciones en los apoyos:

𝑹𝟑 = −𝟏𝟑𝟓𝟎𝟎 𝑵
𝑹𝟒 = 𝟎 𝑵
𝑹𝟓 = 𝟏𝟖𝟗𝟎𝟎 𝑵
𝑹𝟔 = 𝟗𝟓𝟎𝟎 𝑵

Página | 9
1.9 Cálculo de esfuerzos
Para calcular los valores de los esfuerzos por elemento finito, aplicamos la siguiente
relación:
𝒒𝟏
𝒆
𝑬 𝒒𝟐
𝝈𝒆 = ( ) [−𝒍 −𝒎 𝒍 𝒎] [𝒒 ]
𝒍𝒆 𝟑
𝒒𝟒
Se obtiene:

0.0257831
5
3.2 × 10 −0.077101 𝑵
𝝈𝟏 = ( ) [−1 0 1 0] [ ] = −𝟔. 𝟖𝟕𝟓𝟒𝟗𝟑𝟓𝟒
1200 0 𝒎𝒎𝟐
0

0.0257831
3.2 × 105 1 1 1 1 −0.077101 𝑵
𝝈𝟐 = ( ) [− − ][ ] = 𝟔. 𝟖𝟒𝟐𝟒𝟎𝟒𝟎
1200 ∙ √2 √2 √2 √2 √2 0 𝒎𝒎𝟐
0

0.0257831
5
3.2 × 10 −0.077101 𝑵
𝝈𝟑 = ( ) [0 −1 0 1] [ ] = −𝟏. 𝟓𝟐𝟕𝟖𝟖𝟕𝟓
1200 −0.017953 𝒎𝒎𝟐
−0.082831

0.0257831
3.2 × 105 1 1 1 1 −0.077101 𝑵
𝝈𝟒 = ( )[ − − ][ ] = −𝟐. 𝟖𝟖𝟏𝟎𝟏𝟐𝟐
1200 ∙ √2 √2 √2 √2 √2 −0.035905 𝒎𝒎𝟐
−0.160397

−0.017953
3.2 × 105 −0.082831 𝑵
𝝈𝟓 = ( ) [−1 0 1 0] [ ] = 𝟒. 𝟕𝟖𝟕𝟑𝟖𝟎𝟕
1200 0 𝒎𝒎𝟐
0

−0.035905
3.2 × 105 −0.160397 𝑵
𝝈𝟔 = ( ) [−1 0 1 0] [ ] = 𝟒. 𝟕𝟖𝟕𝟑𝟖𝟎𝟕
1200 −0.017953 𝒎𝒎𝟐
−0.082831

Página | 10
1.10 Resultados

𝑵
𝝈𝟏 = −𝟔. 𝟖𝟕𝟓𝟒𝟗𝟑𝟓𝟒
𝒎𝒎𝟐

𝑵
𝝈𝟐 = 𝟔. 𝟖𝟒𝟐𝟒𝟎𝟒𝟎𝟎𝟐
𝒎𝒎𝟐

𝑵
𝝈𝟑 = −𝟏. 𝟓𝟐𝟕𝟖𝟖𝟕𝟒𝟓
𝒎𝒎𝟐
a.
𝑵
𝝈𝟒 = −𝟐. 𝟖𝟖𝟏𝟎𝟏𝟐𝟐𝟏
𝒎𝒎𝟐

𝑵
𝝈𝟓 = 𝟒. 𝟕𝟖𝟕𝟑𝟖𝟎𝟕𝟎𝟏
𝒎𝒎𝟐

𝑵
𝝈𝟔 = 𝟒. 𝟕𝟖𝟕𝟑𝟖𝟎𝟕𝟎𝟏
𝒎𝒎𝟐

𝑹𝟑 = −𝟏𝟑𝟓𝟎𝟎 𝑵

𝑹𝟒 = 𝟎 𝑵
b.
𝑹𝟓 = 𝟏𝟖𝟗𝟎𝟎 𝑵

𝑹𝟔 = 𝟗𝟓𝟎𝟎 𝑵

Página | 11
2. DIAGRAMA DE FLUJO DEL PROGRAMA

Página | 12
Página | 13
Página | 14
Página | 15
Página | 16
3. DIGITACIÓN Y EJECUCIÓN (MATLAB)

3.1 Código de Matlab


clc
clear all

disp('................................................................
.............')
disp(' INGRESO DE DATOS')
disp('----------------------------------------------------------------
-------------')

E=input('Ingrese el valor del Módulo de elasticidad en MPa: ');


d=input('Ingrese diámetro de la seccion de cada barra(mm): ');
PA=input('Ingrese el valor de la fuerza PA (N): ');
PB=input('Ingrese el valor de la fuerza PB (N): ');
PC=input('Ingrese el valor de la fuerza PC (N): ');
PE=input('Ingrese el valor de la fuerza PE (N); ');
n=input('Ingrese el número de nodos:');
k=input('Ingrese el número de elementos finitos:');

% DEFINIMOS LAS VARIABLES QUE UTILIZAREMOS MÁS ADELANTE

A=(pi*d^2)/4;
x=zeros(1,n);
y=zeros(1,n);
vertical=zeros(1,n);
horizontal=zeros(1,n);
a=zeros(1,k);
b=zeros(1,k);
longitudes=zeros(1,k);
l=zeros(1,k);
m=zeros(1,k);
desplazamientos=zeros(1,2*n);
fuerzas=zeros(1,2*n);
Mglobal=zeros(2*n);
H=zeros(1,4*k);
REACCIONES=zeros(4,1);
ESFUERZOS=zeros(k,1);
temp=0;
z=1;
acu=[];

% INGRESO DE COORDENADAS

fprintf('\n')
disp('................................................................
.............')
fprintf(' Ingreso de Coordenadas de los Nodos:\n')
for i=1:n
fprintf('\nIngrese las coordenadas del nodo %d\n',i)
x(i)=input('x: ');
y(i)=input('y: ');
end
fprintf('\n')

Página | 17
%ASIGNE UN NÚMERO AL DESPLAZAMIENTO/FUERZA VERTICAL Y HORIZONTAL DE
CADA NODO:
disp('................................................................
.............')
fprintf('Asigne un número al desplazamiento/fuerza vertical y
horizontal de cada nodo:\n')
for i=1:n
fprintf('\nAsigne números a los desplazamientos/fuerzas del nodo
%d\n',i)
horizontal(i)=input('Desplazamiento/fuerza horizontal: ');
vertical(i)=input('Desplazamiento/fuerza vertical: ');
end
fprintf('\n')

%INGRESO DE NODOS CORRESPONDIENTES A CADA ELEMENTO:

disp('................................................................
.............')
fprintf(' Ingrese el nodo correspondiente al inicio y final de cada
elemento finito:\n')
for i=1:k
fprintf('\nIngrese los nodos del elemento %d\n',i)
a(i)=input('Nodo inicial : ');
b(i)=input('Nodo final: ');
end
fprintf('\n')

%INGRESO DE LOS NODOS DONDE ACTÚAN LAS FUERZAS

disp('................................................................
.............')
fprintf(' Ingrese los nodos donde actúan las
fuerzas:\n')
fprintf('\n')
nodo_PA_PB=input('Ingrese el nodo donde actúan PA y PB: ');
nodo_PC=input('Ingrese el nodo donde actúa PC : ');
nodo_PE=input('Ingrese el nodo donde actúa PE : ');
nodo_apoyo1=input('Ingrese el nodo donde se encuentra el primer apoyo
: ');
nodo_apoyo2=input('Ingrese el nodo donde se encuentra el segundo apoyo
: ');

%HALLAMOS LA LONGITUD DE CADA ELEMENTO

for i=1:k;
longitud(i)=((((y(b(i))-y(a(i)))^2)+((x(b(i))-x(a(i)))^2))^0.5);
end

longitud; %Vector que contiene las longitudes de cada elemento

%HALLAMOS LOS COSENOS DIRECTORES

for i=1:k;
l(i)=(x(b(i))-x(a(i)))/longitud(i);
m(i)=(y(b(i))-y(a(i)))/longitud(i);
end

l; %Vector que contiene los valores de l para cada elemento


m; %Vector que contiene los valores de m para cada elemento

Página | 18
%HALLAMOS LA MATRIZ DE RIGIDEZ LOCAL DE CADA ELEMENTO

for i=1:k;
M=(E*A/longitud(i))*[l(i)^2 l(i)*m(i) -l(i)^2 -l(i)*m(i);
l(i)*m(i) m(i)*m(i) -l(i)*m(i) -m(i)*m(i); -l(i)^2 -l(i)*m(i) l(i)^2
l(i)*m(i); -l(i)*m(i) -m(i)*m(i) l(i)*m(i) m(i)*m(i)];
acu=[acu M];
end
acu; %matriz que contiene todas las matrices de rigidez locales de
cada elemento

%HALLAMOS LA MATRIZ DE RIGIDEZ GLOBAL

for i=1:4:4*k;
H(i)=horizontal(a(z));
H(i+1)=vertical(a(z));
H(i+2)=horizontal(b(z));
H(i+3)=vertical(b(z));
z=z+1;
end
acu=[H; acu];
wacu=acu';

for j=1:2*n
for r=1:2*n
for i=1:k
for w=4*i-3:4*i
if wacu(w,1)==j
for z=4*i-3:4*i
if acu(1,z)==r
temp=temp+acu(w-4*(i-1)+1,z);
end
end
end
end
end
Mglobal(j,r)=temp;
temp=0;
end
end

Mglobal; %Matriz de rigidez global del sistema

%HALLAMOS EL VECTOR DE FUERZAS (SIN INCLUIR LAS REACCIONES)

for i=1:n
if nodo_PA_PB==i
fuerzas(horizontal(i))=-PA;
fuerzas(vertical(i))=-PB;
elseif nodo_PC==i
fuerzas(horizontal(i))=0;
fuerzas(vertical(i))=-PC;
elseif nodo_PE==i
fuerzas(horizontal(i))=0;
fuerzas(vertical(i))=-PE;
else
fuerzas(horizontal(i))=0;
fuerzas(vertical(i))=0;

end

Página | 19
end
fuerzas'; %vector columna que contiene las fuerzas en la armadura en
cada nodo

%RESOLUCIÓN DE LA ECUACIÓN DE RIGIDEZ

%Primero reescribimos el sistema para agrupar las variables en un solo


%vector

Mglobal(:,horizontal(nodo_apoyo1))=0;
Mglobal(:,vertical(nodo_apoyo1))=0;
Mglobal(horizontal(nodo_apoyo1),horizontal(nodo_apoyo1))=-1;
Mglobal(vertical(nodo_apoyo1),vertical(nodo_apoyo1))=-1;

Mglobal(:,horizontal(nodo_apoyo2))=0;
Mglobal(:,vertical(nodo_apoyo2))=0;
Mglobal(horizontal(nodo_apoyo2),horizontal(nodo_apoyo2))=-1;
Mglobal(vertical(nodo_apoyo2),vertical(nodo_apoyo2))=-1;

%Se resuelve la ecuación para todas las variables

RESULTADOS=inv(Mglobal)*fuerzas';

%HALLAMOS EL VECTOR DE DESPLAZAMIENTOS

DESPLAZAMIENTOS=RESULTADOS;

DESPLAZAMIENTOS(horizontal(nodo_apoyo1))=0;
DESPLAZAMIENTOS(vertical(nodo_apoyo1))=0;
DESPLAZAMIENTOS(horizontal(nodo_apoyo2))=0;
DESPLAZAMIENTOS(vertical(nodo_apoyo2))=0;

DESPLAZAMIENTOS; %Vector columna que contiene los desplazamientos


horizontales y verticales de cada nodo

%HALLAMOS EL VECTOR DE REACCIONES

REACCIONES(1)=RESULTADOS(horizontal(nodo_apoyo1));
REACCIONES(2)=RESULTADOS(vertical(nodo_apoyo1));
REACCIONES(3)=RESULTADOS(horizontal(nodo_apoyo2));
REACCIONES(4)=RESULTADOS(vertical(nodo_apoyo2));

REACCIONES'; %Vector columna que contiene las reacciones horizontales


y verticales en los 2 apoyos

%HALLAMOS EL VECTOR DE ESFUERZOS

for i=1:k
ESFUERZOS(i)=(E/longitud(i))*[-l(i) -m(i) l(i)
m(i)]*[DESPLAZAMIENTOS(horizontal(a(i)));DESPLAZAMIENTOS(vertical(a(i)
));DESPLAZAMIENTOS(horizontal(b(i)));DESPLAZAMIENTOS(vertical(b(i)))];
end

ESFUERZOS; %Vector columna que contiene los esfuerzos en cada elemento

Página | 20
%RESULTADOS

disp('................................................................
.............')
disp(' RESULTADOS')
disp('----------------------------------------------------------------
-------------')

disp('El vector de desplazamientos en mm:')


disp(DESPLAZAMIENTOS)

disp('El vector de esfuerzos en MPa:')


disp(ESFUERZOS)

disp('La reacciones en los dos apoyos: ')


disp(REACCIONES)

Página | 21
3.2 Vista en el “Command Window”

<<

Página | 22
Página | 23
4. CONCLUSIONES

• Notamos que la reacción vertical del apoyo en el nodo 2 es igual a 0, es decir, la barra
1 solo ejerce fuerza normal sobre la pared. Esto tiene sentido puesto que la barra, al
ser un elemento de dos fuerzas, solo presenta fuerzas en la dirección de la misma barra
(en este caso el eje x).

• De los resultados obtenidos, notamos que solo los elementos 2,5 y 6 presentan
esfuerzos positivos. Esto significa que dichas barras son las únicas sometidas a
tracción; en contraste, las barras 1,3 y 4 están sometidas a compresión.

• La mayoría de los desplazamientos verticales y horizontales calculados tienen valores


negativos. Esto significa que los nodos tienden a moverse en una dirección contraria
a los ejes x e y definidos inicialmente.

• Para la aplicación de este tipo de métodos en la resolución de problemas de


estructuras, se puede decir que es imprescindible la utilización de algún software para
el cálculo (en este caso el Matlab). Por ejemplo, para el estudio de esta armadura
simple de 5 nodos, se llegó a trabajar con una matriz de rigidez de 10x10; de haberse
hecho los cálculos manualmente el trabajo habría sido demasiado engorroso y
probablemente se hubiesen cometido algunos errores.

• Los valores calculados para las reacciones con el Método de los Elementos Finitos y
con la aplicación de la Estática fueron iguales. Esto habla muy bien del método; no
obstante, lo normal es que existiera una pequeña diferencia entre esos dos resultados
dada la ligera pérdida de exactitud que implica trabajar con métodos iterativos en
softwares, en este caso el Matlab.

Página | 24

También podría gustarte