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

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA CIVIL

INTRODUCCIÓN A LOS MÉTODOS COMPUTACIONALES

INFORME DE TA3

“DESARROLLO DE UN CASO PRÁCTICO DE ESTÁTICA USANDO LA INTERFAZ


GUIDE DEL SOFTWARE MATLAB”

Alumno: Gutierrez Li, Humber Aldair

Código de alumno: U20181A754

Código: CI 171

Sección: CS61

Profesor: Lizbeth Mónica Cuba Samaniego

2019 - 01

Fecha: 8 de mayo del 2019


ÍNDICE
1. INTRODUCCIÓN ........................................................................................................................ 1
2. RESUMEN..................................................................................................................................... 2
3. OBJETIVOS.................................................................................................................................. 3
3.1 Objetivo principal ................................................................................................................. 3
3.2 Objetivos específicos ............................................................................................................. 3
4. PRESENTACIÓN DEL CASO.................................................................................................... 4
5. METODOLOGÍA ......................................................................................................................... 5
5.1 Ecuaciones de equilibrio ....................................................................................................... 5
5.2 Análisis de una armadura por el método de los nodos ...................................................... 5
6. ANÁLISIS DEL CASO ................................................................................................................ 6
6.1 Diagrama de cuerpo libre ..................................................................................................... 6
6.2 Desarrollo de ecuaciones por el método de los nodos ........................................................ 7
6.2.1 Nodo A................................................................................................................................... 7
6.2.2 Nodo H .................................................................................................................................. 7
6.2.3 Nodo B ................................................................................................................................... 8
6.2.4 Nodo C................................................................................................................................... 8
6.2.5 Nodo G .................................................................................................................................. 9
6.2.6 Nodo D................................................................................................................................... 9
6.2.7 Nodo E ................................................................................................................................. 10
6.2.8 Nodo F ................................................................................................................................. 10
6.3 Determinación de la matriz ...................................................................................................... 12
7. PROGRAMACIÓN EN MATLAB (GUIDE) .......................................................................... 13
7.1 Elaboración de una interfaz gráfica .................................................................................. 13
7.2 Funciones ............................................................................................................................. 20
7.3 Comandos del programa .................................................................................................... 29
8. RESULTADOS ........................................................................................................................... 36
8.1 Interfaz gráfica Guide .............................................................................................................. 36
8.2 Tabla de resultados ................................................................................................................... 36
9. SOLUCIÓN ANALÍTICA POR EL MÉTODO DE NODOS ..................................................... 37
9.1 Nodo A........................................................................................................................................ 38
9.2 Nodo H ....................................................................................................................................... 38
9.3 Nodo B .......................................................................................................................................... 2
9.4 Nodo C.......................................................................................................................................... 2
9. DISCUSIONES Y CONCLUSIONES ......................................................................................... 2
TRABAJO PARCIAL 1 1

1. INTRODUCCIÓN

Para determinar el valor de una fuerza no conocida se pueden utilizar las 3 ecuaciones de

equilibrio de la Estática de un cuerpo rígido siempre y cuando la estructura (viga, armadura o

pórtico) sea isostática, es decir, que el número de fuerzas desconocidas no sea mayor al número

de ecuaciones de equilibrio. Las ecuaciones de equilibrio son 3: La suma de las fuerzas

horizontales debe ser igual a cero, la suma de las fuerzas verticales debe ser igual a cero y la

suma de los momentos respecto a un punto fijo debe ser igual a cero. Para resolver las fuerzas

internas en las barras de una armadura se puede usar el método de los nodos o el método de las

secciones. El caso presentado se desarrollará mediante el método de nodos, en el cual se analiza

cada nodo de la armadura usando equilibrio en los ejes X y Y.

En este trabajo, se desarrollará una interfaz gráfica para desarrollar armaduras isostáticas de

tipo Howe. La estructura de la armadura, consiste en 13 barras unidas por 8 nodos y dos apoyos.

El programa debe calcular la reacción en el apoyo fijo, el apoyo móvil, cada fuerza que se

ejerce en cada barra de la armadura, también debe determinar si la barra se encuentra sometida

a tracción o compresión. Para ello, se debe considerar la acción de 3 fuerzas verticales y hacia

abajo aplicadas en los 3 nodos centrales e inferiores de la armadura 2D.

El programa resolverá la armadura mediante el método de la matriz inversa. Para ello, se

plantearán 2 matrices, la primera a la izquierda será cuadrada y contendrá los coeficientes de

las variables a hallar y la segunda a la derecha será vertical y contendrá los datos conocidos en

igualdad.

1
TRABAJO PARCIAL 1 1

2. RESUMEN

En este trabajo académico, desarrollaremos una interfaz gráfica de Guide en el programa

Matlab que pueda calcular los valores de las reacciones en los apoyos de una armadura de tipo

Howe, las fuerzas internas de cada una de las barras que conforman la armadura, y si estas se

encuentran en tracción o compresión.

En primer lugar, plantearemos las ecuaciones de equilibrio en cada nodo de la armadura

para obtener las relaciones que tienen las fuerzas internas y las reacciones con las fuerzas a las

que está sometida la armadura. Los datos de entrada para la interfaz “Armadura” serán los

valores de las cargas externas verticales hacia abajo que son aplicadas a la armadura.

En segundo lugar, plantearemos las matrices a partir de las ecuaciones resultantes en cada

uno de los 8 nodos. El programa resolverá la armadura mediante el método de la matriz inversa.

Finalmente, haremos un análisis comparativo de los resultados de resolver la armadura

analíticamente por el método de nodos y los resultados que muestra el programa en la interfaz

gráfica.

2
TRABAJO PARCIAL 1 1

3. OBJETIVOS

3.1 Objetivo principal

El objetivo principal de este informe es desarrollar una interfaz Guide en Matlab, llamada

“Armadura”, que nos permita resolver una armadura isostática con el ingreso de datos de los

valores de las 3 cargas verticales y hacia abajo a las que está sometida la armadura.

3.2 Objetivos específicos

 Desarrollar una interfaz sencilla y entendible.

 Determinar las reacciones en los apoyos de la armadura simplemente apoyada

sometida a 3 cargas externas verticales y hacia abajo.

 Determinar las fuerzas internas de la armadura simplemente apoyada sometida a 3

cargas externas verticales y hacia abajo.

 Resolver la armadura por el método de nodos.

 Determinar las ecuaciones en cada nodo y plantear el sistema de ecuaciones lineales

en forma matricial.

 Comparar los resultados por el método de nodos y por la interfaz guide.

3
TRABAJO PARCIAL 1 1

4. PRESENTACIÓN DEL CASO

El caso de aplicación consiste en una armadura sometida a 3 cargas verticales y hacia abajo

en sus nodos B, C y D; en la cual tenemos que determinar la fuerza interna en cada elemento e

indicar si está en tracción o en compresión. Además, hallar las reacciones en el apoyo fijo A y

en el apoyo móvil E.

Figura 1: Las barras inclinadas forman un ángulo de 45o.

A continuación, explicaremos los teoremas y métodos que utilizamos para plantear la solución

del caso presentado y despejar las reacciones en los apoyos. Además, desarrollaremos la matriz

a insertar en el programa Matlab.

4
TRABAJO PARCIAL 1 1
5. METODOLOGÍA

5.1 Ecuaciones de equilibrio

Un cuerpo se encuentra en reposo o en equilibrio cuando se cumplen las 3 ecuaciones de

equilibrio en todos sus puntos. Un sistema está en equilibrio mecánico cuando la suma de

fuerzas y momentos, sobre cada partícula del sistema es cero.

∑ 𝐹𝑋 = 0 (La suma de fuerzas en el eje X es cero)

∑ 𝐹𝑌 = 0 (La suma de fuerzas en el eje Y es cero)

∑ 𝑀𝑂 = 0 (La suma de momentos en un punto es cero)

5.2 Análisis de una armadura por el método de los nodos

El método de los nodos nos permite determinar las fuerzas en los distintos elementos de una

armadura simple. Consiste en obtener las reacciones en los apoyos a partir del diagrama de

cuerpo libre de la armadura completa y determinar las fuerzas en cada uno de los elementos

haciendo el DCL de cada uno de los nodos o uniones. Se recomienda empezar analizando

aquellos nodos que tengan no más de dos incógnitas.

Si la fuerza ejercida por un elemento sobre un perno está dirigida hacia el perno, dicho

elemento está en compresión; si la fuerza ejercida por un elemento sobre el perno está dirigida

hacia fuera de éste, dicho elemento está en tensión. En este caso, consideraremos todas las

fuerzas en tensión, si el resultado del programa resulta negativo, significa que está en

compresión.

5
TRABAJO PARCIAL 1 1
6. ANÁLISIS DEL CASO

6.1 Diagrama de cuerpo libre

La armadura está simplemente apoyada. Las reacciones en el apoyo fijo A son la reacción

vertical Ay y ya reacción horizontal Ax. La reacción en el apoyo móvil E es la reacción vertical

Ey. Las reacciones están representadas en color celeste.

La armadura está compuesta por 13 barras: AB, AH, HB, HG, BG, BC, CG, CD, GD, GF,

FE, FD y ED. Las fuerzas internas en cada barra están representadas en color azul. Las barras

están unidas mediante 8 nodos (A, B, C, D, E, F, G y H). En los nodos B, C y D están siendo

aplicadas las cargas verticales y hacia abajo C1, C2 y C3, representadas en color rojo.

Figura 2: Diagrama de cuerpo libre de la armadura.

Las tres cargas aplicadas son las que definirán la magnitud de las reacciones y de las fuerzas

internas en cada barra. Para la comprobación del caso, definiremos los siguientes valores para

las cargas.

𝑪𝟏 = 𝟔𝟎𝟎 𝑵
𝑪𝟐 = 𝟖𝟎𝟎 𝑵
𝑪𝟑 = 𝟔𝟎𝟎 𝑵

6
TRABAJO PARCIAL 1 1
6.2 Desarrollo de ecuaciones por el método de los nodos

Se considerarán todas las barras en tracción, si el resultado es negativo, significa que están

en compresión.

6.2.1 Nodo A

→ + ∑ 𝐹𝑋 = 0

𝐴𝑋 + 𝐴𝐵 + 𝐴𝐻 ∗ 𝑐𝑜𝑠(45) = 0
𝐴𝐻
𝐴𝑋 + 𝐴𝐵 + =0
√2

↑ + ∑ 𝐹𝑌 = 0

𝐴𝑌 + 𝐴𝐻 ∗ 𝑠𝑒𝑛(45) = 0
𝐴𝐻
𝐴𝑌 + =0
√2

6.2.2 Nodo H

→ + ∑ 𝐹𝑋 = 0

−𝐴𝐻 ∗ cos(45) + 𝐻𝐺 = 0
𝐴𝐻
− + 𝐻𝐺 = 0
√2

↑ + ∑ 𝐹𝑌 = 0

−𝐴𝐻 ∗ 𝑠𝑒𝑛(45) − 𝐻𝐵 = 0
𝐴𝐻
− − 𝐻𝐵 = 0
√2

7
TRABAJO PARCIAL 1 1

6.2.3 Nodo B

↑ + ∑ 𝐹𝑌 = 0

𝐻𝐵 + 𝐵𝐺 ∗ sen(45) − 𝐶1 = 0
𝐵𝐺
+ 𝐻𝐵 = 𝐶1
√2

→ + ∑ 𝐹𝑋 = 0

−𝐴𝐵 + 𝐵𝐺 ∗ cos(45) + 𝐵𝐶 = 0
𝐵𝐺
−𝐴𝐵 + + 𝐵𝐶 = 0
√2

6.2.4 Nodo C

→ + ∑ 𝐹𝑋 = 0

−𝐵𝐶 + 𝐶𝐷 = 0

↑ + ∑ 𝐹𝑌 = 0

𝐶𝐺 − 𝐶2 = 0
𝐶𝐺 = 𝐶2

8
TRABAJO PARCIAL 1 1

6.2.5 Nodo G

↑ + ∑ 𝐹𝑌 = 0

−𝐶𝐺 − 𝐵𝐺 ∗ 𝑠𝑒𝑛(45) − 𝐺𝐷 ∗ 𝑠𝑒𝑛(45) = 0


𝐵𝐺 𝐺𝐷
−𝐶𝐺 − − =0
√2 √2

→ + ∑ 𝐹𝑋 = 0

−𝐻𝐺 − 𝐵𝐺 ∗ 𝑐𝑜𝑠(45) + 𝐺𝐷 ∗ 𝑐𝑜𝑠(45) + 𝐺𝐹


=0
𝐵𝐺 𝐺𝐷
−𝐻𝐺 − + + 𝐺𝐹 = 0
√2 √2

6.2.6 Nodo D

↑ + ∑ 𝐹𝑌 = 0

𝐺𝐷 ∗ 𝑠𝑒𝑛(45) + 𝐹𝐷 − 𝐶3 = 0
𝐺𝐷
+ 𝐹𝐷 = 𝐶3
√2

→ + ∑ 𝐹𝑋 = 0

−𝐶𝐷 − 𝐺𝐷 ∗ cos(45) + 𝐸𝐷 = 0
𝐺𝐷
−𝐶𝐷 − + 𝐸𝐷 = 0
√2

9
TRABAJO PARCIAL 1 1

6.2.7 Nodo E

↑ + ∑ 𝐹𝑌 = 0

𝐹𝐸 ∗ 𝑠𝑒𝑛(45) + 𝐸𝑌 = 0
𝐹𝐸
+ 𝐸𝑌 = 0
√2

→ + ∑ 𝐹𝑋 = 0

−𝐹𝐸 ∗ cos(45) − 𝐸𝐷 = 0
𝐹𝐸
− − 𝐸𝐷 = 0
√2

6.2.8 Nodo F

↑ + ∑ 𝐹𝑌 = 0

−𝐹𝐸 ∗ 𝑠𝑒𝑛(45) − 𝐹𝐷 = 0
𝐹𝐸
− − 𝐹𝐷 = 0
√2

→ + ∑ 𝐹𝑋 = 0

−𝐺𝐹 + 𝐹𝐸 ∗ 𝑐𝑜𝑠(45) = 0
𝐹𝐸
− 𝐺𝐹 = 0
√2

10
TRABAJO PARCIAL 1 1

El resumen de las ecuaciones determinadas:


1
𝐴𝑋 (1) + 𝐴𝐵 (1) + 𝐴𝐻 ( ) = 0
√2
1
𝐴𝑌 (1) + 𝐴𝐻 ( )=0
√2
1
𝐴𝐻 (− ) + 𝐻𝐺 (1) = 0
√2
1
𝐴𝐻 (− ) + 𝐻𝐵 (1) = 0
√2
1
𝐵𝐺 ( ) + 𝐻𝐵 (1) = 𝐶1
√2
1
𝐴𝐵 (−1) + 𝐵𝐺 ( ) + 𝐵𝐶 (1) = 0
√2
𝐵𝐶 (−1) + 𝐶𝐷 (1) = 0
𝐶𝐺 (1) = 𝐶2
1 1
𝐶𝐺 (−1) + 𝐵𝐺 (− ) + 𝐺𝐷 (− )=0
√2 √2
1 1
𝐻𝐺 (−1) + 𝐵𝐺 (− ) + 𝐺𝐷 ( ) + 𝐺𝐹 (1) = 0
√2 √2
1
𝐺𝐷 ( ) + 𝐹𝐷 (1) = 𝐶3
√2
1
𝐶𝐷 (−1) + 𝐺𝐷 (− ) + 𝐸𝐷 (1) = 0
√2
1
𝐹𝐸 ( ) + 𝐸𝑌 (1) = 0
√2
1
𝐹𝐸 (− ) + 𝐸𝐷 (−1) = 0
√2
1
𝐹𝐸 (− ) + 𝐹𝐷 (−1) = 0
√2
1
𝐹𝐸 ( ) + 𝐺𝐹 (−1) = 0
√2

11
TRABAJO PARCIAL 1 1

6.3 Determinación de la matriz

1 0 1 1/sqrt(2) 0 0 0 0 0 0 0 0 0 0 0 0 Ax 0
0 1 0 1/sqrt(2) 0 0 0 0 0 0 0 0 0 0 0 0 Ay 0
0 0 0 -1/sqrt(2) 0 1 0 0 0 0 0 0 0 0 0 0 AB 0
0 0 0 -1/sqrt(2) -1 0 0 0 0 0 0 0 0 0 0 0 AH 0
0 0 0 0 1 0 1/sqrt(2) 0 0 0 0 0 0 0 0 0 HB C1
0 0 -1 0 0 0 1/sqrt(2) 1 0 0 0 0 0 0 0 0 HG 0
0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 BG 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 x BC = C2
0 0 0 0 0 0 -1/sqrt(2) 0 -1 0 -1/sqrt(2) 0 0 0 0 0 CG 0
0 0 0 0 0 -1 -1/sqrt(2) 0 0 0 1/sqrt(2) 1 0 0 0 0 CD 0
0 0 0 0 0 0 0 0 0 0 1/sqrt(2) 0 1 0 0 0 GD C3
0 0 0 0 0 0 0 0 0 -1 -1/sqrt(2) 0 0 0 1 0 GF 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1/sqrt(2) 0 1 FD 0
0 0 0 0 0 0 0 0 0 0 0 0 0 -1/sqrt(2) -1 0 FE 0
0 0 0 0 0 0 0 0 0 0 0 0 -1 -1/sqrt(2) 0 0 ED 0
0 0 0 0 0 0 0 0 0 0 0 -1 0 1/sqrt(2) 0 0 Ey 0

A = [1 0 1 1/sqrt(2) 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 1/sqrt(2) 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 -1/sqrt(2) 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 0 -1/sqrt(2) -1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 1/sqrt(2) 0 0 0 0 0 0 0 0 0;
0 0 -1 0 0 0 1/sqrt(2) 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 0 -1/sqrt(2) 0 -1 0 -1/sqrt(2) 0 0 0 0 0;
0 0 0 0 0 -1 -1/sqrt(2) 0 0 0 1/sqrt(2) 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 1/sqrt(2) 0 1 0 0 0;
0 0 0 0 0 0 0 0 0 -1 -1/sqrt(2) 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 1/sqrt(2) 0 1;
0 0 0 0 0 0 0 0 0 0 0 0 0 -1/sqrt(2) -1 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 -1/sqrt(2) 0 0;
0 0 0 0 0 0 0 0 0 0 0 -1 0 1/sqrt(2) 0 0];

B = [0;0;0;0;Carga1;0;0;Carga2;0;0;Carga3;0;0;0;0;0];

12
TRABAJO PARCIAL 1 1

7. PROGRAMACIÓN EN MATLAB (GUIDE)

7.1 Elaboración de una interfaz gráfica

Abrir el software Matlab. Escribir en la ventana de comandos, el comando Guide y ejecutar.

Se abrirá la ventana de edición.

Figura 3: Creación del GUI.

Nos aparecerá la siguiente ventana de diálogo.

Figura 4: Ventana de nuevo GUIDE.

Esta ventana nos ofrece 4 opciones para la creación de la interfaz la primera es una hoja en

blanco en la cual el usuario puede definir de manera personalizada la forma del GUI.

Utilizaremos la primera opción. Nos aparecerá la ventana de edición del GUI.

13
TRABAJO PARCIAL 1 1

Figura 4: Ventana de edición del GUDE.

En la hoja en blanco de edición del GUIDE, comenzaremos añadiendo el título de nuestra

interfaz gráfica “Armadura howe”, para ello seleccionamos el ícono de static text.

Figura 4: Ícono de static text.

y lo posicionamos en el lugar deseado.

14
TRABAJO PARCIAL 1 1

Figura 4: Ícono de static text.

Para editar el texto hacemos doble clic en el Static Text, en el menú que nos aparece

buscamos el campo String y hacemos clic en el cuadro pequeño al lado izquierdo de Static

Text.

15
TRABAJO PARCIAL 1 1
Figura 5: Edición de static text.

Nos aparecerá el siguiente cuadro en el cual editamos el texto de su interior, luego clic en

OK.

Figura 6: Edición de static text.

Figura 7: Se observa que el título de string cambió.

El tamaño y el color del texto, así como también el color del fondo se editan en el menú

inspector. El tamaño se edita en Font Size.

Figura 8: Editar en background color para cambiar el color de fondo del texto.

16
TRABAJO PARCIAL 1 1

Figura 9: Se elige el color que se desee para resaltar el título.

Figura 10: Se elige el color blanco para el título.

17
TRABAJO PARCIAL 1 1

Cambiamos el tamaño a 25 puntos y la fuente a “Times new roman” para una mejor

apreciación.

Figura 11: Inclinamos a un ángulo con “Italic”.

Ahora, el título se visualiza de la siguiente manera:

Figura 12: Armadura tipo howe.

Luego colocaremos la imagen de la armadura que se va a analizar en el GUIDE para ello

la imagen debe de estar en DIRECTORIO en el cual se encuentra el programa.

Figura 13: La imagen está en “png”.

18
TRABAJO PARCIAL 1 1
Ahora procedemos a elaborar los comandos para la visualización de la imagen, primero

jalamos dos Axes y los posicionamos debajo de nuestro Static Text, y lo ampliamos a

nuestro gusto. Axes 1 es para la imagen del caso y Axes 2 para su Diagrama de cuerpo libre.

Figura 14: Visualización de la interfaz.

Ahora nos dirigiremos al archivo M-FILE que se genera en paralelo con la edición del

GUIDE, para ello hacemos clic en el botón M-File Editor.

Figura 15: Guardar como “ArmaduraHowe”.

19
TRABAJO PARCIAL 1 1
7.2 Funciones

Lo cual nos conduce al archivo M-File, en el cual las funciones que se generan lo hace de forma

automática según se va editando el GUIDE.

Figura 16: Comandos.

Las letras de color verde que aparecen son las indicaciones que le programa nos recomienda

para el uso correcto de las funciones. Estas pueden ser eliminadas sin ocasionar ningún

problema al programa que se está elaborando. Una vez eliminadas, procedemos a ubicar las

funciones iníciales que nos presenta MATLAB de forma automática.

Figura 17: Comando que ejecuta al inicio del programa ósea son las funciones iníciales.
20
TRABAJO PARCIAL 1 1
Dentro de esta función escribimos los siguientes comandos:

scrsz=get(0,'screensize');
pa=get(gcf,'position');
xr=scrsz(3)-pa(3);
xp=round(xr/2);
yr=scrsz(4)-pa(4);
yp=round(yr/2);
set(gcf,'position',[xp yp pa(3) pa(4)]);

%Comandos para la visualización de imágenes


LOGO1=imread('Armadura.png');
axes(handles.axes1);
imshow(LOGO1);

LOGO2=imread('Armadura 2.png');
axes(handles.axes2);
imshow(LOGO2);

Figura 18: Comandos de visualización de imágenes.

21
TRABAJO PARCIAL 1 1

Figura 19: Al ejecutar el programa, se pueden ver las imágenes.

Figura 20: Oscurecemos el color de fondo de la interfaz para que contraste.

Figura 21: Interfaz.

22
TRABAJO PARCIAL 1 1
Colocamos los Edit Text en forma que coincidan con la imagen de la armadura que se va a resolver.

También se debe borrar el contenido de los Edit Text

Figura 22: Podremos ingresar las cotas y cargas en los edit text.

Ahora añadimos los paneles “Sistema de ecuaciones” y “Resultados”.

Figura 23: Paneles.

23
TRABAJO PARCIAL 1 1

Figura 24: Tablas.

Cambiamos el tag del button3 a Salir. Hacemos clic en el botón SALIR – View Callbacks –

Callback. lo cual nos conduce al archivo M-File, en el programaremos la función de este comando

que es de cerrar el programa para ello escribiremos en su función el comando CLOSE.

Figura 25: Button Salir.

function Salir_Callback(hObject, eventdata, handles)


close(ArmaduraHowe)

24
TRABAJO PARCIAL 1 1
Ejecutamos el programa hacemos clic en salir y vemos que cierra la interfaz grafica. Hacemos lo

mismo para el botón EJECUTAR y colocamos en su función los siguientes comandos. Los cuales

son para leer el valor que se introduzca en los Edit Text y convertirlo en un formato de doble cadena

que MTALAB recién puede operar.

function Ejecutar_Callback(hObject, eventdata, handles)


Carga1=str2double(get(handles.C1,'string'));
Carga2=str2double(get(handles.C2,'string'));
Carga3=str2double(get(handles.C3,'string'));

a=str2double(get(handles.A,'string'));
b=str2double(get(handles.B,'string'));
c=str2double(get(handles.C,'string'));
d=str2double(get(handles.D,'string'));
e=str2double(get(handles.E,'string'));

set(handles.C11,'string',Carga1);
set(handles.C22,'string',Carga2);
set(handles.C33,'string',Carga3);

mtz=zeros(16);
mtz(1,1)=1;
mtz(1,3)=1;
mtz(1,4)=a/sqrt(a^2+e^2);
mtz(2,2)=1;
mtz(2,4)=e/sqrt(a^2+e^2);
mtz(3,4)=-a/sqrt(a^2+e^2);
mtz(3,6)=1;
mtz(4,4)=-e/sqrt(a^2+e^2);
mtz(4,5)=-1;
mtz(5,5)=1;
mtz(5,7)=e/sqrt(b^2+e^2);
mtz(6,3)=-1;
mtz(6,7)=b/sqrt(b^2+e^2);
mtz(6,8)=1;
mtz(7,8)=-1;
mtz(7,10)=1;
mtz(8,9)=1;

mtz(9,7)=-e/sqrt(b^2+e^2);
mtz(9,9)=-1;
mtz(9,11)=-e/sqrt(c^2+e^2);
mtz(10,6)=-1;
25
TRABAJO PARCIAL 1 1
mtz(10,7)=-b/sqrt(b^2+e^2);
mtz(10,11)=c/sqrt(c^2+e^2);
mtz(10,12)=1;
mtz(11,11)=e/sqrt(c^2+e^2);
mtz(11,13)=1;
mtz(12,10)=-1;
mtz(12,11)=-c/sqrt(c^2+e^2);
mtz(12,15)=1;
mtz(13,14)=e/sqrt(d^2+e^2);
mtz(13,16)=1;
mtz(14,14)=-d/sqrt(d^2+e^2);
mtz(14,15)=-1;
mtz(15,13)=-1;
mtz(15,14)=-e/sqrt(d^2+e^2);
mtz(16,12)=-1;
mtz(16,14)=d/sqrt(d^2+e^2);

rstl=zeros(16,1);
rstl(1,1)=0;
rstl(2,1)=0;
rstl(3,1)=0;
rstl(4,1)=0;
rstl(5,1)=Carga1;
rstl(6,1)=0;
rstl(7,1)=0;
rstl(8,1)=Carga2;
rstl(9,1)=0;
rstl(10,1)=0;
rstl(11,1)=Carga3;
rstl(12,1)=0;
rstl(13,1)=0;
rstl(14,1)=0;
rstl(15,1)=0;
rstl(16,1)=0;

Una vez generada las dos matrices estas serán colocadas en las tablas para su visualización en la

interfaz grafica. Para ello colocaremos los siguientes comandos en el archivo M-File para que

podamos manejar las tablas. Primero sacamos el tamaño de la matriz mtz, luego almacenamos el

valor de sus dimensiones en la variables m y n, luego damos la MATLAB APLICADO A LA

INGENIERIA CIVIL CAPITULO VI PROGRAMACION EN GUIDE CARDENAS ALARCON,

26
TRABAJO PARCIAL 1 1
Max Junior Página 64 dimensión de la celda con el valor de la variable n, como no queremos que

se muestre ningún valor en los casilleros se coloca los apostrofes, luego manejamos la tabla

insertando en esta la matriz mtz. Para ello colocamos los siguientes comandos.

%Matriz de resultados
[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
set(handles.uitable1,'Data',celda);
set(handles.uitable1,'ColumnEditable',true(1,n));

set(handles.uitable1,'Data',rstl);
set(handles.uitable1,'visible','on');

%solucion del sistema de ecuaciones


respuesta=mtz\rstl;
%matriz final
[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
set(handles.uitable3,'Data',celda);
set(handles.uitable3,'ColumnEditable',true(1,n));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(handles.uitable3,'Data',respuesta);
set(handles.uitable3,'visible','on');

Para ejecutar el botón “Nuevo” colocamos debajo el comando:

Figura 25: Button Nuevo.

27
TRABAJO PARCIAL 1 1
De esta forma de determina las fuerzas en las barras, para etiquetar la tabla de los resultados como

se v en la figura se procede de la siguiente forma. Primero hacemos doble clic en la tabla de edición

del GUIDE.

Figura 26: Tabla de edición.

Como vemos nos aparece el inspector de propiedades en el ubicamos la opción DATA hacemos clic

en el cuadro de su costado. Hacemos clic en ROWS. Hacemos clic en INSERT para aumentar el

número de filas de la tabla, hasta llegar en nuestro caso al nuero 16, luego al costado de cada número

de fila editamos para qué se pueda ver en la tabla de la interfaz grafica

Figura 26: Cambiamos los no,bres a Fuerza AB, HB, etc.

28
TRABAJO PARCIAL 1 1
7.3 Comandos del programa

function varargout = ArmaduraHowe(varargin)


% ARMADURAHOWE Código MATLAB para ArmaduraHowe.fig
% Última modificación por GUIDE v2.5 21-May-2019 22:28:25

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@ArmaduraHowe_OpeningFcn, ...
'gui_OutputFcn',
@ArmaduraHowe_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

function ArmaduraHowe_OpeningFcn(hObject, eventdata,


handles, varargin)
%Comandos para la ubicaciòn de imágenes

scrsz=get(0,'screensize');
pa=get(gcf,'position');
xr=scrsz(3)-pa(3);
xp=round(xr/2);
yr=scrsz(4)-pa(4);
yp=round(yr/2);
set(gcf,'position',[xp yp pa(3) pa(4)]);

%Comandos para la visualización de imágenes


LOGO1=imread('Armadura.png');
axes(handles.axes1);
imshow(LOGO1);

LOGO2=imread('Armadura 2.png');
axes(handles.axes2);
imshow(LOGO2);

handles.output = hObject;

29
TRABAJO PARCIAL 1 1

guidata(hObject, handles);

function varargout = ArmaduraHowe_OutputFcn(hObject,


eventdata, handles)

varargout{1} = handles.output;

function C1_Callback(hObject, eventdata, handles)


function C1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function C3_Callback(hObject, eventdata, handles)


function C3_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function C2_Callback(hObject, eventdata, handles)


function C2_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit12_Callback(hObject, eventdata, handles)


function edit12_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

30
TRABAJO PARCIAL 1 1

function edit18_Callback(hObject, eventdata, handles)


function edit18_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit19_Callback(hObject, eventdata, handles)


function edit19_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit20_Callback(hObject, eventdata, handles)


function edit20_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function F_Callback(hObject, eventdata, handles)


function F_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit22_Callback(hObject, eventdata, handles)


function edit22_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

31
TRABAJO PARCIAL 1 1

function G_Callback(hObject, eventdata, handles)


function G_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function B_Callback(hObject, eventdata, handles)


function B_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function C_Callback(hObject, eventdata, handles)


function C_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function A_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function A_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function D_Callback(hObject, eventdata, handles)


function D_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
32
TRABAJO PARCIAL 1 1
set(hObject,'BackgroundColor','white');
end

function E_Callback(hObject, eventdata, handles)


function E_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function Ejecutar_Callback(hObject, eventdata, handles)


Carga1=str2double(get(handles.C1,'string'));
Carga2=str2double(get(handles.C2,'string'));
Carga3=str2double(get(handles.C3,'string'));

a=str2double(get(handles.A,'string'));
b=str2double(get(handles.B,'string'));
c=str2double(get(handles.C,'string'));
d=str2double(get(handles.D,'string'));
e=str2double(get(handles.E,'string'));

set(handles.C11,'string',Carga1);
set(handles.C22,'string',Carga2);
set(handles.C33,'string',Carga3);

mtz=zeros(16);
mtz(1,1)=1;
mtz(1,3)=1;
mtz(1,4)=a/sqrt(a^2+e^2);
mtz(2,2)=1;
mtz(2,4)=e/sqrt(a^2+e^2);
mtz(3,4)=-a/sqrt(a^2+e^2);
mtz(3,6)=1;
mtz(4,4)=-e/sqrt(a^2+e^2);
mtz(4,5)=-1;
mtz(5,5)=1;
mtz(5,7)=e/sqrt(b^2+e^2);
mtz(6,3)=-1;
mtz(6,7)=b/sqrt(b^2+e^2);
mtz(6,8)=1;
mtz(7,8)=-1;
mtz(7,10)=1;
mtz(8,9)=1;

mtz(9,7)=-e/sqrt(b^2+e^2);
mtz(9,9)=-1;
33
TRABAJO PARCIAL 1 1
mtz(9,11)=-e/sqrt(c^2+e^2);
mtz(10,6)=-1;
mtz(10,7)=-b/sqrt(b^2+e^2);
mtz(10,11)=c/sqrt(c^2+e^2);
mtz(10,12)=1;
mtz(11,11)=e/sqrt(c^2+e^2);
mtz(11,13)=1;
mtz(12,10)=-1;
mtz(12,11)=-c/sqrt(c^2+e^2);
mtz(12,15)=1;
mtz(13,14)=e/sqrt(d^2+e^2);
mtz(13,16)=1;
mtz(14,14)=-d/sqrt(d^2+e^2);
mtz(14,15)=-1;
mtz(15,13)=-1;
mtz(15,14)=-e/sqrt(d^2+e^2);
mtz(16,12)=-1;
mtz(16,14)=d/sqrt(d^2+e^2);

rstl=zeros(16,1);
rstl(1,1)=0;
rstl(2,1)=0;
rstl(3,1)=0;
rstl(4,1)=0;
rstl(5,1)=Carga1;
rstl(6,1)=0;
rstl(7,1)=0;
rstl(8,1)=Carga2;
rstl(9,1)=0;
rstl(10,1)=0;
rstl(11,1)=Carga3;
rstl(12,1)=0;
rstl(13,1)=0;
rstl(14,1)=0;
rstl(15,1)=0;
rstl(16,1)=0;

%Comandos para la visualización de matrices

[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
set(handles.uitable1,'Data',celda);
set(handles.uitable1,'ColumnEditable',true(1,n));

%Matriz de coeficientes
[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
34
TRABAJO PARCIAL 1 1
set(handles.uitable2,'Data',celda);
set(handles.uitable2,'ColumnEditable',true(1,n));

set(handles.uitable2,'Data',mtz);
set(handles.uitable2,'visible','on');

%Matriz de resultados
[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
set(handles.uitable1,'Data',celda);
set(handles.uitable1,'ColumnEditable',true(1,n));

set(handles.uitable1,'Data',rstl);
set(handles.uitable1,'visible','on');

%solucion del sistema de ecuaciones


respuesta=mtz\rstl;
%matriz final
[m n]=size(mtz);
celda=cell(n,n);
celda(:,:)={''};
set(handles.uitable3,'Data',celda);
set(handles.uitable3,'ColumnEditable',true(1,n));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(handles.uitable3,'Data',respuesta);
set(handles.uitable3,'visible','on');

function Nuevo_Callback(hObject, eventdata, handles)

%limpiar textboxs
set(handles.C1,'string','');
set(handles.C2,'string','');
set(handles.C3,'string','');
set(handles.A,'string','');
set(handles.B,'string','');
set(handles.C,'string','');
set(handles.D,'string','');
set(handles.E,'string','');

% --- Executes on button press in Salir.


function Salir_Callback(hObject, eventdata, handles)
close(ArmaduraHowe)

35
TRABAJO PARCIAL 1 1
8. RESULTADOS

8.1 Interfaz gráfica Guide

Ejecutamos el programa y veremos en la interfaz gráfica el cambio.. Finalmente, colocamos los

datos de entrada: C1= 600N, C2=800N, C3=600N, a=1m, b=1m, c=1m, d=1m y e=1m

Figura 27: Funcionamiento de la interfaz.

8.2 Tabla de resultados

Ax 0.00 N
Reacciones Ay 1000.00 N
Ey 1000.00 N
F AB 1000.00 N
F AH -1414.21 N
F HB 1000.00 N
F HG -1000.00 N
F BG -565.69 N
F BC 1400.00 N
Fuerzas
F CG 800.00 N
internas
F CD 1400.00 N
F GD -565.69 N
F GF -1000.00 N
F FD 1000.00 N
F FE -1414.21 N
F ED 1000.00 N

36
TRABAJO PARCIAL 1 1
9. SOLUCIÓN ANALÍTICA POR EL MÉTODO DE NODOS

Para 𝐶1 = 600 𝑁, 𝐶2 = 800 𝑁 y 𝐶3 = 600 𝑁. Ya que los ángulos de inclinación de

las barras son 45 grados, las distancias entre nodos son las mismas. Asumiremos el valor de x.

Hallar las reacciones en los apoyos:

∑ 𝑀𝐴 = 0

(4𝑥)(𝐸𝑌 ) − (3𝑥)(600𝑁) − (2𝑥)(800𝑁) − (𝑥)(600𝑁) = 0

(4𝑥)(𝐸𝑌 ) = (4000𝑥)𝑁

𝐸𝑌 = 1000𝑁

↑ + ∑ 𝐹𝑌 = 0

𝐴𝑌 + 𝐸𝑌 − 600𝑁 − 800𝑁 − 600𝑁 = 0

𝐴𝑌 + 1000𝑁 = 2000𝑁

𝐴𝑌 = 1000𝑁

→ + ∑ 𝐹𝑋 = 0

𝐴𝑋 = 0𝑁

37
TRABAJO PARCIAL 1 1
Por el método de los nodos:

9.1 Nodo A

↑ + ∑ 𝐹𝑌 = 0 → + ∑ 𝐹𝑋 = 0

1000𝑁 + 𝐴𝐻 ∗ 𝑠𝑒𝑛(45) = 0 0 + 𝐴𝐵 − 1000√2 ∗ 𝑐𝑜𝑠(45) = 0


𝐴𝐻 = −1000√2 𝑁 𝐴𝐵 = 1000 𝑁 (𝑇𝑒𝑛𝑠𝑖ó𝑛)
𝐴𝐻 = 1414.21 𝑁 (𝐶𝑜𝑚𝑝𝑟𝑒𝑠𝑖ó𝑛)

9.2 Nodo H

→ + ∑ 𝐹𝑋 = 0

−𝐴𝐻 ∗ cos(45) + 𝐻𝐺 = 0 ↑ + ∑ 𝐹𝑌 = 0

(−1000√2) −𝐴𝐻 ∗ 𝑠𝑒𝑛(45) − 𝐻𝐵 = 0


− + 𝐻𝐺 = 0
√2 (−1000√2)
− − 𝐻𝐵 = 0
𝐻𝐺 = −1000 𝑁 √2
𝐻𝐺 = 1000 𝑁 (𝐶𝑜𝑚𝑝𝑟𝑒𝑠𝑖ó𝑛) 𝐻𝐵 = 1000 𝑁 (𝑇𝑒𝑛𝑠𝑖ó𝑛)

38
TRABAJO PARCIAL 1 1
9.3 Nodo B

↑ + ∑ 𝐹𝑌 = 0

𝐻𝐵 + 𝐵𝐺 ∗ sen(45) − 600𝑁 = 0 → + ∑ 𝐹𝑋 = 0

𝐵𝐺 −𝐴𝐵 + 𝐵𝐺 ∗ cos(45) + 𝐵𝐶 = 0
+ 1000𝑁 = 6000𝑁
√2
(−400√2)
𝐵𝐺 = −565.69𝑁 −100 + + 𝐵𝐶 = 0
√2
𝐵𝐺 = 565.69𝑁 (𝐶𝑜𝑚𝑝𝑟𝑒𝑠𝑖ó𝑛) 𝐵𝐶 = 1400𝑁 (𝑇𝑒𝑛𝑠𝑖ó𝑛)

9.4 Nodo C

→ + ∑ 𝐹𝑋 = 0 ↑ + ∑ 𝐹𝑌 = 0

−𝐵𝐶 + 𝐶𝐷 = 0 𝐶𝐺 − 800 𝑁 = 0
𝐶𝐷 = 1400 𝑁 (𝑇𝑒𝑛𝑠𝑖ó𝑛) 𝐶𝐺 = 800 𝑁 (𝑇𝑒𝑛𝑠𝑖ó𝑛)

2
TRABAJO PARCIAL 1 1
Como la armadura es simétrica, las demás barras tienen las mismas fuerzas internas en forma
de espejo en la barra GC:

Ax 0.00 N

Reacciones Ay 1000.00 N

Ey 1000.00 N

F AB 1000.00 N Tracción
F AH 1414.21 N Tracción
F HB 1000.00 N Tracción
F HG 1000.00 N Compresión
F BG 565.69 N Compresión
F BC 1400.00 N Tracción
Fuerzas
F CG 800.00 N Tracción
internas
F CD 1400.00 N Tracción
F GD 565.69 N Compresión
F GF 1000.00 N Compresión
F FD 1000.00 N Tracción
F FE 1414.21 N Tracción
F ED 1000.00 N Tracción

1
TRABAJO PARCIAL 1 1
9. DISCUSIONES Y CONCLUSIONES

 El programa resultó muy eficaz al momento de plantear la solución, no solamente del

caso aplicado, sino de variables en las cotas y cargas aplicadas, ya que planteamos las

matrices en función a los datos de entrada.

 Las barras en tracción son: AB, AH, HB, BC, CG, CD, FD, FE y ED.

 Las barras en compresión son: HG, BG, GD y GF.

 Ya que la armadura es simétrica, las barras de la izquerda tienen las mismas fuerzas

internas a las de las barras de la derecha siempre y cuando las cargas C1 y C2 son

iguales.

 Demostramos el funcionamiento de los botones: Ejecutar, Salir y Nuevo, el cual elimina

los datos de entrada para volver a insertar los datos.

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