Universidad Centroccidental Lisandro Alvarado. Decanato de Ingeniería Civil. Departamento de Ingeniería Estructural. Análisis plano de estructuras mediante Macros de Microsoft Excel AUTOR Ing. Nelson López C.I.: 17.355.974 TUTOR Ing. Juan Vielma Octubre de 2012 Análisis plano de estructuras mediante Macros de Microsoft Excel ÍNDICE DE CONTENIDO INTRODUCCIÓN ....................................................................................................................... 7 PLANTEAMIENTO DEL PROBLEMA ......................................................................................... 8 JUSTIFICACIÓN ........................................................................................................................ 9 MARCO TEÓRICO ................................................................................................................... 10 1. ALGEBRA MATRICIAL: ..................................................................................................... 10 1.1. MATRIZ: ............................................................................................................................ 10 1.2. VECTOR COLUMNA O MATRIZ COLUMNA:..................................................................... 10 1.3. VECTOR FILA O MATRIZ FILA:......................................................................................... 11 1.4. TIPOS DE MATRICES: ...................................................................................................... 11 1.4.1.MATRIZ CUADRADA ...................................................................................................... 11 1.4.2.MATRIZ DIAGONAL ........................................................................................................ 11 1.4.3.MATRIZ IDENTIDAD [I] O UNITARIA: ............................................................................. 12 1.4.4.MATRIZ SIMÉTRICA: ...................................................................................................... 12 1.5. OPERACIONES MATRICIALES: ........................................................................................ 13 1.5.1.ADICIÓN Y SUBSTRACCIÓN DE MATRICES: ................................................................ 13 1.5.2.MULTIPLICACIÓN DE MATRICES: ................................................................................. 13 1.5.3.TRASPOSICIÓN DE MATRICES: .................................................................................... 14 1.5.4.INVERSA DE UNA MATRIZ: ........................................................................................... 15 2. FORMULACIÓN MATRICIAL POR EL MÉTODO DE RIGIDEZ DIRECTA: ......................... 15 2.1. SOLUCIÓN GENERAL POR EL MÉTODO DE LOS DESPLAZAMIENTOS: ....................... 16 2.2. MATRIZ DE RIGIDEZ DE UN ELEMENTO PÓRTICO PLANO, ARBITRARIAMENTE ORIENTADO...................................................................................................................... 17 3. DESARROLLO DE LA PROGRAMACIÓN EN MICROSOFT EXCEL.................................. 23 3.1. PROGRAMACIÓN DEL MACRO EN MICROSOFT EXCEL ................................................ 24 3.1.1.PROGRAMACIÓN DE LA HOJA “MATRIZ DE RIGIDEZ” ................................................ 24 Página | 2 Análisis plano de estructuras mediante Macros de Microsoft Excel 3.1.2.PROGRAMACIÓN DEL MACRO PARA ENSAMBLAR LA MATRIZ DE RIGIDEZ DE LA ESTRUCTURA: ................................................................................................................. 46 3.1.2.PROGRAMACIÓN DE LA HOJA “MATRIZ DE FUERZAS” .............................................. 57 3.1.3.PROGRAMACIÓN DE LA HOJA “CALCULOS”................................................................ 65 EJERCICIOS DE APLICACIÓN RESUELTOS CON EL MACRO .............................................. 75 CONCLUSIONES..................................................................................................................... 86 REFERENCIAS BIBLIOGRÁFICAS .......................................................................................... 95 Página | 3 Análisis plano de estructuras mediante Macros de Microsoft Excel ÍNDICE DE FIGURAS Figura Nº 1. Caso general de pórtico plano arbitrariamente orientado ............................ 17 Figura Nº 2. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con desplazamiento vertical unitario en el nodo i......................................................... 18 Figura Nº 3. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con desplazamiento vertical unitario en el nodo j......................................................... 19 Figura Nº 4. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con rotación unitaria en el nodo i ................................................................................... 19 Figura Nº 5. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con rotación unitaria en el nodo j ................................................................................... 20 Figura Nº 6. Superposición de efectos de fuerzas cortantes y momentos flectores con fuerzas axiales................................................................................................................. 21 Figura Nº 7. Entrada de datos en la hoja de Excel............................................................. 24 Figura Nº 8. Ejercicio propuesto (fuerzas en Tf y distancias en m) .................................. 26 Figura Nº 9. Numeración y nomenclatura de elementos y nodos ..................................... 26 Figura Nº 10. Datos del pórtico en estudio.......................................................................... 27 Figura Nº 11. Activando formularios de Visual Basic en Excel ......................................... 28 Figura Nº 12. Activando formularios de Visual Basic en Excel ......................................... 28 Figura Nº 13. Activando formularios de Visual Basic en Excel ......................................... 29 Figura Nº 14. Insertando casillas de verificación ................................................................ 29 Figura Nº 15. Asignando macro a la casilla de verificación ............................................... 30 Figura Nº 16. Asignando macro a la casilla de verificación ............................................... 30 Figura Nº 17. Seleccionando en la pestaña “Vista-Macros-Grabar macro” ..................... 33 Figura Nº 18. Ventana auxiliar para grabar macros ........................................................... 33 Figura Nº 19. Selección de las celdas cuyo contenido será borrado ............................... 35 Figura Nº 20. Selección de número de nodos y barras del sistema ................................. 37 Figura Nº 21. Programación del comando “Contar()”......................................................... 38 Figura Nº 22. Insertando un botón para ser programado. ................................................. 43 Figura Nº 23. Asignando el macro al botón programado ................................................... 43 Página | 4 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 24. Asignando el macro al botón programado ................................................... 44 Figura Nº 25. Vista general de la hoja de Excel de datos.................................................. 44 Figura Nº 26. Resultados de la matriz de rigidez para los elementos evaluados............ 45 Figura Nº 27. Resultados de la matriz de rigidez para el elemento 1............................... 45 Figura Nº 28. Matriz de Rigidez del elemento 2. ................................................................ 46 Figura Nº 29. Matriz de rigidez de cada elemento. ............................................................ 47 Figura Nº 30. Valores de subíndices copiados de la matriz de cada elemento a la matriz global de la estructura..................................................................................................... 48 Figura Nº 31. Subíndices de la matriz de rigidez de toda la estructura............................ 49 Figura Nº 32. Matriz de rigidez ensamblada ....................................................................... 57 Figura Nº 33. Fuerzas de empotramiento .......................................................................... 58 Figura Nº 34. Sentido de las fuerzas según cuadrante a donde apunte .......................... 58 Figura Nº 35. Celdas que deben llenarse con datos .......................................................... 59 Figura Nº 36. Vector de fuerzas de empotramiento y de desplazamientos en los nodos. ........ 64 Figura Nº 37. Matriz global de la estructura ........................................................................ 71 Figura Nº 38. En rojo los valores de la matriz a invertir ..................................................... 71 Figura Nº 39. Reacciones y desplazamientos calculados ................................................. 74 Figura Nº 40. Resultados del pórtico evaluado. Fuente J.U. Escamilla (año) ................. 74 Figura Nº 41. Pórtico para ejercicio de aplicación .............................................................. 75 Figura Nº 42. Numeración de los nodos.............................................................................. 76 Figura Nº 43. Datos geométricos para el pórtico evaluado ............................................... 76 Figura Nº 44. Matriz de rigidez de cada elemento. ............................................................ 77 Figura Nº 45. Matriz de rigidez de toda la estructura ......................................................... 77 Figura Nº 46. Matriz de fuerzas para el pórtico en estudio................................................ 78 Figura Nº 47. Matriz de fuerzas del pórtico en estudio ...................................................... 79 Figura Nº 48. Reacciones y desplazamientos calculados ................................................. 79 Figura Nº 49. Cercha para ejercicio de aplicación ............................................................. 80 Figura Nº 50. Datos de la cercha en estudio ...................................................................... 81 Figura Nº 51. Matriz de rigidez de cada elemento ............................................................. 82 Página | 5 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 52. Matriz de rigidez de toda la cercha .............................................................. 83 Figura Nº 53. Fuerzas aplicadas a la cercha. ..................................................................... 83 Figura Nº 54. Matriz de fuerzas y desplazamientos para la cercha en estudio ............... 84 Figura Nº 55. Reacciones y desplazamientos para la cercha en estudio ........................ 85 Figura Nº 56. Pórtico para ejercicio de aplicación .............................................................. 86 Figura Nº 57. Numeración de los nodos.............................................................................. 86 Figura Nº 58. Matriz de rigidez de cada elemento. ............................................................ 87 Figura Nº 59. Matriz de rigidez del elemento horizontal. (Fuente, J.U. Escamilla) ......... 88 Figura Nº 60. Matriz de rigidez de los elementos verticales. (Fuente, J.U. Escamilla) ... 88 Figura Nº 61. Matriz de rigidez global de la estructura ...................................................... 89 Figura Nº 62. Matriz de rigidez global de la estructura. (Fuente, J.U. Escamilla) ........... 89 Figura Nº 63. Fuerzas de empotramiento generadas con el macro. ................................ 90 Figura Nº 64. Fuerzas de empotramiento para el elemento horizontal. (Fuente, J.U. Escamilla)......................................................................................................................... 90 Figura Nº 65. Ecuación de equilibrio de la estructura expresada en forma matricial ...... 91 Figura Nº 66. Ecuación de equilibrio de la estructura. (Fuente, J.U. Escamilla) ............. 92 Figura Nº 67. Reacciones y desplazamientos calculados con el macro .......................... 92 Figura Nº 68. Resultados de reacciones y desplazamientos (Fuente, J.U. Escamilla) .. 93 Página | 6 Análisis plano de estructuras mediante Macros de Microsoft Excel INTRODUCCIÓN Actualmente, el uso de las herramientas informáticas para resolución de cálculos en cualquier área de estudio es esencial para reducir el tiempo en la realización de los mismos, que se puede traducir en la inversión de ese tiempo en realizar optimizaciones en los cálculos y en el análisis de un número “n” de soluciones al problema planteado, pudiendo así, realizar múltiples iteraciones hasta llegar a un resultado óptimo. El presente trabajo de ascenso, tiene como finalidad, hacer uso de una de las herramientas informáticas más sencillas en el mercado como lo es el programa Microsoft Excel para crear un código en Visual Basic que permita la resolución de pórticos en dos dimensiones, sometidos a fuerzas cortantes, fuerzas axiales y momentos flectores, calculando así, las reacciones y desplazamientos en los nodos de la estructura en estudio. El macro que se desarrollara a lo largo del presente trabajo, se basó en el análisis de estructuras con métodos matriciales, en donde se realizaran códigos para obtener la matriz de rigidez de cada elemento, la matriz de rigidez global de la estructura ensamblada a partir de la matriz de rigidez cada elemento, la matriz de fuerzas de empotramiento, la matriz de fuerzas nodales, y la matriz de desplazamientos de cada nodo, y cada una de las matrices se mostrara en una hoja de cálculo, de manera que para fines académicos, el alumno podrá visualizar cada una de las matrices. Página | 7 Análisis plano de estructuras mediante Macros de Microsoft Excel PLANTEAMIENTO DEL PROBLEMA La resolución de estructuras planas por métodos matriciales, resulta ser trabajosa conforme al número de elementos (barras y nodos) presentes en la estructura, lo que representa un gran número de cálculos por elemento que al trabajar de manera manual se pudiera incurrir en errores como el uso de pocos decimales para el cálculo, trasponer valores, trasponer índices matriciales que alterarían el orden de los coeficientes de la matriz de la estructura y por ende el cálculo erróneo de los valores de rigidez. Por ello, este trabajo de investigación se basa en la programación de macros en Microsoft Excel para el cálculo de estructuras planas, con un enfoque netamente académico basado en métodos matriciales, con la finalidad de que el alumno invierta más tiempo en analizar el problema que en resolver el problema, sin quitarle la importancia que tiene conocer y realizar los cálculos de manera manual. Página | 8 Análisis plano de estructuras mediante Macros de Microsoft Excel JUSTIFICACIÓN Es de conocer que los programas existentes utilizan los métodos de cálculo matriciales para resolver estructuras. Sin embargo, las matrices generadas por cada elemento no pueden ser visualizadas por el usuario, solo los resultados obtenidos de la resolución final, de manera que académicamente resulta difícil que el alumno posea un punto de comparación para chequear sus ejercicios, y a esto se le agrega que los software que se encuentran en el mercado poseen licencias de uso costosas y temporales, que probablemente no todos los alumnos posean, y además se requiere que el alumno posea conocimientos del uso del programas para poder manipularlo. Por ello, este trabajo se basa en desarrollar un macro en Microsoft Excel, que es un software de uso sencillo, que todos conocemos, y que se hará interactuar con otro software como lo es el Visual Basic, que se dicta el la asignatura Programación II en el 3er semestre del pensum actual (1994). Página | 9 Análisis plano de estructuras mediante Macros de Microsoft Excel MARCO TEÓRICO Para poder desarrollar un programa en cualquier lenguaje de programación, es necesario conocer la teoría de los métodos de cálculo a usar para la resolución de los problemas planteados. A continuación se muestran los basamentos teóricos para el cálculo de manera directa, ya que el enfoque del trabajo es la elaboración del macro para la resolución de las estructuras. 1. Algebra Matricial 1.1. Matriz Una matriz de orden mxn, o de dimensión m por n (escrita como m x n) es un conjunto de m x n elementos ordenados en m filas y n columnas. Por tanto, una matriz A de (m x n) puede expresarse como la Ecuación 1.1 Los elementos de la Matriz A pueden ser números reales o complejos, o bien funciones. 1.2. … … … … … … … … … (Ecuación 1. 1) Vector Columna o Matriz columna Es una matriz que consta de n filas y una sola una columna, es decir que tiene todos sus elementos colocados en una única columna (de orden nx1), tal como se muestra en la Ecuación 1.2 Página | 10 Análisis plano de estructuras mediante Macros de Microsoft Excel 1.3. (Ecuación 1. 2) Vector fila o Matriz fila Una matriz fila de orden 1xn, es una matriz que tiene solamente una fila y n columnas, como se muestra en la Ecuación 1.3 1.4. … (Ecuación 1. 3) Tipos de matrices 1.4.1. Matriz cuadrada Es una matriz con igual número de filas y columnas, es decir de orden nxn, como se muestra en el ejemplo 1. 8 6 8 3 2 9 5$ 7 4 (ejemplo 1) 1.4.2. Matriz diagonal Es una matriz cuadrada con todos los elementos nulos o iguales a cero, con excepción de los que se encuentran en la diagonal principal definida por los elementos a11, a22, …, ann. Es decir que: 0, '( ) * + * 0, '( ) + Un ejemplo de matriz diagonal se muestra en la Ecuación 1.4 Página | 11 Análisis plano de estructuras mediante Macros de Microsoft Excel 0 0 0 0 0 0 $ (Ecuación 1. 4) 1.4.3. Matriz identidad [I] o unitaria Es una matriz cuadrada en la cual los elementos en la diagonal principal son iguales a 1, y aquellos que no pertenecen a ella son iguales a cero, es decir que: 0, '( ) * + 1, '( ) + Un ejemplo de una matriz identidad se muestra en la Ecuación 1.5 1 0 0 0 1 0$ 0 0 1 (Ecuación 1. 5) 1.4.4. Matriz simétrica Es una matriz cuadrada en la cual los elementos de una matriz A cumplen la igualdad aij = aji, como se muestra en el ejemplo 2 2 1 1 2 7 3 7 3$ 2 (ejemplo 2) Página | 12 Análisis plano de estructuras mediante Macros de Microsoft Excel 1.5. Operaciones matriciales Las operaciones matriciales pueden ser: 1.5.1. Adición y substracción de matrices Si A y B son matrices del mismo orden, se define la adición de matrices como A + B = C, donde C es una matriz del mismo orden que las matrices A y B, y C se define con la expresión mostrada en la Ecuación 1.6 -./ ./ 0 1./ Para ) 1,2, … , 2; + 1,2, … , (Ecuación 1. 6) En el ejemplo 3 se muestra un ejemplo de la adición de matrices 2 3 4 34 5 6 7 8 134 5 1 0 72 0 5 6 9 71 3 6 1 5 (ejemplo 3) 3 3 3 8 -34 34 0 134 5 6 4 7 9 14 1.5.2. Multiplicación de matrices La multiplicación de A por B, que se denota 8. :, 8;:, 8<:, o simplemente AB, el resultado del producto es una nueva matriz C, como se muestra en la Ecuación 1.7 - 1 (Ecuación 1. 7) Donde cada elemento ci,j está definido como : Página | 13 Análisis plano de estructuras mediante Macros de Microsoft Excel = ∑?@ ? A? (Ecuación 1. 8) Y al desarrollar la Ecuación 1.8, se obtiene la Ecuación 1.9, que es el producto de las matrices. - 1 B A C D E.F C A I A 0 C 0 I A -F I A 0 C 0 I A C D C C AG D H C AG I AG 0 C 0 I AG H I AG 0 C 0 I AG (Ecuación 1. 9) 1.5.3. Trasposición de matrices Consiste en la creación de una nueva matriz a partir de una existente, intercambiando las filas de la matriz existente por columna en la nueva matriz traspuesta, es decir que el elemento aij será igual en la traspuesta al elemento aji. Cabe destacar que si el orden de la matriz original es de mxn, el orden de la matriz traspuesta será de mxn, como se muestra en el ejemplo 4. 8 3 3 6 9$ 8 7 8 J3 5 3 6 8 6 9 7 (ejemplo 4) Página | 14 Análisis plano de estructuras mediante Macros de Microsoft Excel 1.5.4. Inversa de una matriz La inversa de una matriz A-1 de una matriz cuadrada A se define mediante la Ecuación 1.10 . K L (Ecuación 1. 10) En donde I es la matriz identidad. Las condiciones necesarias para que la matriz A tenga inversa son las siguientes: • A debe ser una matriz cuadrada • El determinante de A debe ser distinto de cero (0) 2. Formulación Matricial por el método de rigidez directa Se basa en la relación de acción y respuesta de los elementos en base a sus propiedades geométricas, cargas aplicadas y desplazamientos, asemejando la estructura a un resorte con la siguiente expresión: En donde: {Q} MNO P I MQO 0 MNRO (Ecuación 2. 1) es un vector de fuerzas nodales externas, ya que el método solo considera fuerzas aplicadas en los nodos [K] es la matriz de rigidez de la estructura {D} es un vector de desplazamientos nodales {Qe} es un vector de fuerzas de empotramiento debido a cargas aplicadas en los miembros Página | 15 Análisis plano de estructuras mediante Macros de Microsoft Excel Análogamente, se puede expresar el cálculo de desplazamientos de manera matricial como: MQO PK I MNO 7 MNRO (Ecuación 2. 2) Donde [K-1] es la inversa de la matriz de rigidez o matriz de flexibilidad 2.1. Solución general por el método de los desplazamientos: Partiendo del planteamiento anterior, se realiza un ordenamiento de la matriz en base a fuerzas y desplazamientos conocidos y desconocidos, guardando la relación de que con fuerzas conocidas, se obtienen desplazamientos desconocidos y viceversa. El ordenamiento es el siguiente: Donde S N P UV NT PT PT Q WV W PTT QT (Ecuación 2. 3) Qn son las fuerzas externas nodales conocidas (cargas aplicadas a la estructura) Qa son las fuerzas externas nodales desconocidas (reacciones en apoyos) Dn Desplazamientos nodales desconocidos Da Desplazamientos nodales conocidos (generalmente desplazamientos en apoyos) Página | 16 Análisis plano de estructuras mediante Macros de Microsoft Excel 2.2. Matriz de rigidez de un elemento pórtico plano, arbitrariamente orientado En general, un elemento de pórtico plano está sometido en sus extremos a fuerzas axiales, cortantes y momentos flectores, y se encuentra arbitrariamente itrariamente orientado con respecto al eje x de la estructura. En ella, los ejes del elemento son ejes locales, mientras que los ejes de la estructura son ejes globales, y son ellos con respecto a los cuales se presentan los resultados finales. Figura Nº 1.. Caso general de pórtico plano arbitrariamente orientado La relación entre las fuerzas axiales y cortantes de ambos sistemas se puede expresar con la Ecuación 2.4: 2.4 Página | 17 Análisis plano de estructuras mediante Macros de Microsoft Excel Para poder deducir la matriz de rigidez de un elemento arbitrariamente orientado, es necesario obtener la matriz de rigidez de un elemento horizontal, sometido a fuerzas cortantes y momentos flectores, la cual se produce al generar los siguientes desplazamientos y rotaciones rotac en los extremos del mismo: • Desplazamiento vertical unitario en el nodo i del elemento y reacciones debido a ello, ello, representando la primera columna de la Matriz de Rigidez: Figura Nº 2.. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, flectore con desplazamiento vertical unitario en el nodo i • Desplazamiento vertical unitario en el nodo j del elemento y reacciones debido a ello, ello, representando la tercera columna de la Matriz de Rigidez: Página | 18 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 3.. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con desplazamiento vertical unitario en el nodo j • Rotación unitaria en el nodo i del elemento y reacciones debido a ello, ello representando la segunda columna de la Matriz de Rigidez: 6EI L² 4EI L 1.00 2EI L 6EI L² Figura Nº 4.. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con rotación unitaria en el nodo i • Rotación unitaria en el nodo i del elemento y reacciones debido a ello, ello representando la cuarta columna de la Matriz de d Rigidez: Página | 19 Análisis plano de estructuras mediante Macros de Microsoft Excel 6EI L² 1.00 2EI L 4EI L 6EI L² Figura Nº 5.. Elemento horizontal sometido a fuerzas cortantes y momentos flectores, con rotación unitaria en el nodo j Al unir estas ecuaciones, se obtiene tiene la matriz de rigidez de un elemento horizontal, sometido a fuerzas cortantes y momentos flectores, flectores como se muestra tra en la Ecuación 2.5 En esta matriz, se ha colocado en cada fila, las fuerzas cortantes y momentos flectores en cada nodo debido a la acción de desplazamientos unitarios como se muestra en las figuras N°2 a la N°5. Sin embargo, todos los cuerpos también están sometidos a fuerzas axiales, y es importante añadir adir a la matriz deducida anteriormente, este efecto efecto, como se aprecia en la Figura Nº 6. Página | 20 Análisis plano de estructuras mediante Macros de Microsoft Excel Mi Xi Mi Mj Xj Yi Mj = + Yi Yj Xj Xi Yj Figura Nº 6. Superposición de efectos de fuerzas cortantes y momentos flectores con fuerzas axiales La matriz de rigidez para un elemento sometido solo a cargas axiales se muestra en la Ecuación 2.6 X X Z Z 7 Z Y Y Z Z Z Z Z Z Z Z Z Z P X X 7 Z Z Z Y Y Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z (Ecuación 2.6) Al superponer estos efectos, se obtiene la Ecuación 2.7, que se define como la Matriz de rigidez para un elemento horizontal sometido a fuerzas cortantes, fuerzas axiales y momentos flectores. P X Y Z Z X 7 Y Z Z Z 3XL Y [XL Y3 7 Z Z [XL Y3 4XL Y Z 3XL [XL 7 3 Y Y [XL 3XL Y3 Y 7 X Y Z Z X Y Z Z Z 3XL Y [XL 7 3 Y 7 Z 3XL Y [XL 7 3 Y Z [XL Y3 3XL Y 7 Z [XL Y3 4XL Y (Ecuación 2.7) Página | 21 Análisis plano de estructuras mediante Macros de Microsoft Excel Para obtener la matriz de rigidez de un elemento arbitrariamente orientado se aplica la Ecuación 2.8. P J J \ J P (Ecuación 2.8) \ es Donde T es la matriz de transformación deducida en la Ecuación 2.4, y P la matriz de la Ecuación 2.7. La Ecuación 2.8 al operarse matricialmente se convierte en la Matriz de rigidez para un elemento arbitrariamente orientado con respecto al eje x mostrada en la Ecuación 2.9. 3 3 X]3 3XL^3 X 3XL X 3XL [XL X] 0 3XL^ 7b 0 7_ 7 ` ]μ c _ 7 ` ]μ 7 μ Y Y Y Y Y Y Y Y Y3 3 3 3 X 3XL X^ 3XL] [XL X 3XL X^ 3XL]3 _ 7 ` ]μ 0 ] 7_ 7 ` ]μ 7 b 0 c Y Y Y Y Y3 Y Y Y Y [XL [XL 4XL [XL [XL 7 3 μ ] μ 7 3 ] 3 Y3 Y Y Y Y P X 3XL X]3 3XL^3 [XL X]3 3XL^3 X 3XL 7 _ 7b 0 7 ` ]μ μ c 0 _ 7 ` ]μ Y Y Y Y Y3 Y Y Y Y 3 3 3 X^ 3XL] X 3XL X^ 3XL]3 X 3XL [XL 7 ` ]μ 7 b 0 7 ` ]μ 0 7_ c 7 3 ] _ Y Y Y Y Y Y Y Y Y [XL [XL [XL [XL 3XL μ 7 3 ] 7 3 μ ] Y3 Y Y Y3 Y [XL μ Y3 [XL ] Y3 3XL Y [XL μ Y3 [XL 7 3 ] Y 4XL Y 7 (Ecuación 2.9) Donde: A = área de la sección transversal E = Módulo de Elasticidad del material I = Inercia de la figura que contrarresta a la flexión L = Longitud del elemento λ= Cos φχ µ=Sen φχ Página | 22 Análisis plano de estructuras mediante Macros de Microsoft Excel 3. DESARROLLO DE LA PROGRAMACIÓN EN MICROSOFT EXCEL La programación de la hoja de cálculo se realizó con macros en Microsoft Excel. Un macro en Microsoft Excel se define como la interacción entre Microsoft Excel y Visual Basic en una misma hoja de cálculo, pudiendo realizar operaciones complejas en la hoja de cálculo de manera rápida y sencilla. Entre las ventajas de la utilización de macros en Microsoft Excel, podemos destacar las siguientes: • En el entorno de Visual Basic no se requiere la declaración de ninguna variable. • Se pueden utilizar botones desde la hoja de cálculo para ejecutar códigos escritos en Visual Basic. • Los programas realizados con macros en las hojas de Excel consumen poca memoria. • Se pueden tomar datos de celdas en Microsoft Excel, ejecutar un código en Visual Basic y devolver resultados a otras celdas, estáticas o dinámicas. • Permite realizar códigos con una programación sencilla en Visual Basic, que en Microsoft Excel seria compleja, como lo es el ensamble de la matriz de rigidez de una estructura, ya que el mismo requiere de ciclos iterativos de búsqueda que Microsoft Excel por sí mismo posee pero no con la complejidad requerida. • Se puede presentar los resultados de los cálculos en la hoja de Microsoft Excel de forma sencilla, que en el entorno Visual Basic resultaría compleja como lo es la impresión de resultados sin necesidad del comando “print” y sus extensiones. Página | 23 Análisis plano de estructuras mediante Macros de Microsoft Excel 3.1. PROGRAMACIÓN DEL MACRO EN MICROSOFT EXCEL El programa de ensamblaje consta de 4 hojas de Excel entrelazadas una con otras, en donde la primera se nombrará como “Matriz de rigidez”, y en ella se introducen los datos de geometría del pórtico en estudio para generar la matriz de rigidez de cada elemento y posteriormente ensamblar la matriz de rigidez del pórtico o estructura completa; otra hoja llamada “Matriz de Fuerzas”, en donde se calculan las fuerzas de empotramiento de los elementos, se introducen las fuerzas nodales y desplazamientos nodales conocidos; una hoja llamada “cálculos”, en donde se realizan las operaciones matriciales necesarias para calcular reacciones y desplazamientos. 3.1.1. PROGRAMACIÓN DE LA HOJA “MATRIZ DE RIGIDEZ” Para la resolución de las estructuras con el método matricial, se realizó códigos en Visual Basic desde el entorno de Microsoft Excel. Para ello es necesario conocer comandos de entradas de datos de visual Basic desde Excel; los valores de las celdas en Excel pueden ser llamados como entradas en visual Basic, pero antes se debe definir una hoja de Excel como hoja de entrada de datos, como la que se muestra a continuación: Figura Nº 7. Entrada de datos en la hoja de Excel Página | 24 Análisis plano de estructuras mediante Macros de Microsoft Excel En la hoja de entrada de datos, se solicitaran los datos de geometría y topología de la estructura en estudio, y los datos de entrada serán como se indica a continuación: Elemento: Es la identificación numérica del elemento en estudio Nodo i: Es el nodo inicial del elemento en estudio Nodo j: Es el nodo final del elemento en estudio L = Es la longitud del elemento en estudio Θ = Es el ángulo de inclinación del elemento con respecto a la horizontal, en sentido horario de valor negativo, y en sentido anti horario de valor positivo. Módulo de elasticidad: es el módulo de elasticidad del material del cual este compuesto el elemento en estudio. Para la sección del elemento, se consideró para la hoja de datos una sección rectangular de base y altura conocidas, esto para facilitar la programación en la hoja de Excel de la inercia de la figura y el área de la misma, sin embargo, de existir otro tipo de sección, bastara con introducir directamente el área y la inercia de la figura en sus respectivas celdas. 3.1.2. EJEMPLO Para mostrar el funcionamiento del macro en Excel, se realizó un ejercicio de aplicación, que se muestra en la Figura Nº 8 Página | 25 Análisis plano de estructuras mediante Macros de Microsoft Excel 120 Tf 40 Tf 0.30x0.30 m 0.30x0.40 m 4.00 20Tf/m 3.00 1.50 1.50 Figura Nº 8. Ejercicio propuesto (fuerzas en Tf y distancias en m) Para el pórtico mostrado, se pide calcular las reacciones en los apoyos y los desplazamientos en todos nodos. Para comenzar a calcular la estructura, es necesario indicar los datos en la hoja de Excel y colocar la numeración de los nodos y elementos. La nomenclatura de la estructura será como se muestra en la Figura Nº 9 1 2 3 Figura Nº 9. Numeración y nomenclatura de elementos y nodos Página | 26 Análisis plano de estructuras mediante Macros de Microsoft Excel En la hoja de Excel de datos, se introducen de la siguiente manera: Figura Nº 10. Datos del pórtico en estudio Nótese que en la tabla de datos se colocó la identificación del elemento, en este caso existen dos, el Nº1 y el Nº2; en la celda Nodo i, se colocó el nodo de inicio de cada elemento, en este caso, el elemento 1 (horizontal) tiene como nodo inicial (nodo i) al nodo 1, y el elemento 2 (inclinado) tiene como nodo inicial (nodo i) al nodo 3; en la celda nodo j, se colocó el nodo final de cada elemento, en este caso, para el elemento 1, el nodo final es el nodo 2, y para el elemento 2, el nodo final es el nodo 3. En esta etapa del macro en Excel, solo se ha programado el sistema de unidades a utilizar con elementos de checkbox. La programación de estos elementos consistió en crear un código que permitiera activar el sistema de unidades según la preferencia del usuario. La programación se realizó de la siguiente forma: • Se activan los formularios de Visual Basic haciendo click en el icono de Windows en la esquina superior derecha como se muestra en la . Página | 27 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 11.. Activando formularios de Visual Basic en Excel • Se desplega splega una ventana en donde se seleccionara el botón “Personalizar cinta de opciones”, y seleccionar “Programador” en el checkbox del mismo, y luego presionar aceptar. Figura Nº 12.. Activando formularios de Visual Basic en Excel Página | 28 Análisis plano de estructuras mediante Macros de Microsoft Excel • Después de realizar el procedimiento descrito, en la barra de herramientas de Excel, aparece la herramienta “Programador”. Figura Nº 13.. Activando formularios de Visual Basic en Excel • Entre las celdas A A1:A3,C1:C3 se colocaron tres (3) checkbox para seleccionar las unidades con las que se trabajará, trabajar , y se programaron de tal manera, que al seleccionar la casilla de verificación, las celdas E4, G4, H4, I4, J4, y K4 modifiquen su texto de acuerdo al sistema seleccionado. P Para ello, desde la barra de herramientas, se selecciona “programador”, y se selecciona el icono “insertar controles”, allí se desplegaran todas las herramientas como botones, checkbox, checklist, etc., que se utilizan en los formularios de Visual Basic. Figura Nº 14.. Insertando casillas de verificación Página | 29 Análisis plano de estructuras mediante Macros de Microsoft Excel • Una vez agregadas las 3 casillas de verificación con sus respectivos nombres, se procede a programa su selección de la siguiente manera manera: Seleccionar la casilla de verificación, hacer click con el botón derecho del ratón y seleccionar “asignar macro” Figura Nº 15.. Asignando macro a la casilla de verificación Al hacer click en “asignar macro”, se desplegara la ventana en donde se selecciona el nombre de la casilla con la cual se está programando, y al seleccionarla, presionar aceptar. Figura Nº 16.. Asignando macro a la casilla de verificación Página | 30 Análisis plano de estructuras mediante Macros de Microsoft Excel Al presionar “aceptar”, aparecerá el editor de Visual Basic en donde se escribirán los códigos para que se ejecute lo deseado al seleccionar la casilla de verificación Sub Casilladeverificación10_Haga_clic_en() Cells (4, 7) = "Modulo de elasticidad (Kg/m2)" Cells (4, 5) = "Longitud(m)" Cells (4, 8) = "Base (m)" Cells (4, 9) = "Altura (m)" Cells (4, 10) = "Area (m2)" Cells (4, 11) = "Inercia en x (m4)" End Sub Sub Casilladeverificación9_Haga_clic_en() ‘Casilladeverificación9_Haga_clic_en Macro Cells (4, 7) = "Modulo de elasticidad (N/m2)" Cells (4, 5) = "Longitud(m)" Cells (4, 8) = "Base (m)" Cells (4, 9) = "Altura (m)" Cells (4, 10) = "Area (m2)" Cells (4, 11) = "Inercia en x (m4)" End Sub Sub Casilladeverificación8_Haga_clic_en() ‘Casilladeverificación8_Haga_clic_en Macro Cells (4, 7) = "Modulo de elasticidad (Lb/ft2)" Cells (4, 5) = "Longitud (Ft)" Cells (4, 8) = "Base (ft)" Cells (4, 9) = "Altura (ft)" Cells (4, 10) = "Area (ft2)" Cells (4, 11) = "Inercia en x (ft4)" End Sub En el editor de Visual Basic aparecen los módulos la casilla de verificación (checkbox) seleccionada, y en ella, entre el inicio y final del “Sub - End Sub”, se colocará lo que se quiere que realice el macro al seleccionar la casilla; en este caso, se programará que al seleccionarla, cambien la unidades. Para ello es necesario indicar al macro, que al seleccionar la casilla, coloque los textos de entrada según el sistema. Para colocar valores numéricos o de tipo string, o alfa-numéricos, basta con escribir en el módulo que la celda en la posición (x,y), sea igual a lo que se quiere que aparezca Página | 31 Análisis plano de estructuras mediante Macros de Microsoft Excel en ella. La sintaxis para colocar valores en celdas desde Visual Basic a Excel es la siguiente: Cells (fila, columna) = valor (si es texto, se debe colocar comillas al inicio y al final del mismo) Dónde: Fila: Número de la fila en donde se desea colocar el valor Columna: Número de la columna se desea colocar el valor Las columnas en Excel están identificadas en letras, sin embargo, para poder utilizar el comando, es necesario llevar las letras de las columnas a números, esto es, la columna A, es la columna 1, la columna B, es la columna 2, y así sucesivamente. Se debe tener cuidado de no insertar ni eliminar filas o columnas nuevas, ya que el macro seguirá colocando los valores en donde se escribió inicialmente sin adicionar filas o columnas nuevas. Una vez introducidos los datos de geometría del pórtico o estructura, se procede a crear la matriz de rigidez de cada elemento por separado, de manera que desde el punto de vista académico, el usuario pueda comparar sus resultados con los del macro por cada elemento. La programación de la matriz de rigidez se hizo de la siguiente manera: 1. Se destinaron un grupo de celdas para la impresión de la matriz de cada elemento, que van desde la celda (6,O), hasta la celda (6,U), siempre las columnas serán estáticas, es decir, para esta matriz no se excederá de la letra “O” o la letra “U”, mientras que las filas si serán dinámicas, y dependerán del número de miembros que existan en el pórtico. 2. Para colocar los valores en estos rangos de celdas, es necesario asignar a las celdas en cuestión, los valores de la matriz de rigidez mostrada en la Figura Nº 17, y se debe llenar utilizando ciclos en Visual Basic, pero Página | 32 Análisis plano de estructuras mediante Macros de Microsoft Excel para ello se debe definir el número de iteraciones a realizar. En este caso, el número de matrices, corresponderá al número de barras o elementos existentes, mientras que las dimensiones de cada matriz matriz de cada elemento será de 6x6. 3. Para crear los códigos en Visual Basic, ir a la barra de herramientas y seleccionar “Vista-Macros Macros-Grabar macro” Figura Nº 17. 17 Seleccionando en la pestaña “Vista-Macros Macros-Grabar macro” Al seleccionar ionar grabar macro aparecerá la siguiente ventana Figura Nº 18.. Ventana auxiliar para grabar macros Página | 33 Análisis plano de estructuras mediante Macros de Microsoft Excel En la casilla “Nombre de la macro” colocar el nombre que se desea, en este caso se denomina “rigidezporticos”; en la casilla “Método abreviado”, se coloca una letra, de manera que se pueda ejecutar el macro presionando CTRL+”letra”, y esto es opcional, no es necesario colocarlo; en la casilla “Descripción”, se coloca una breve descripción de lo que realiza el macro, que también es opcional, se puede dejar en blanco. 4. Al seleccionar “Aceptar”, desaparecerá la ventana y se debe ir de nuevo a la herramienta “Vista-Macros-Detener grabación” 5. Al detener la grabación, se debe ir a “Vista-Macros-Ver macros”, y se desplegara el módulo en visual Basic, en donde se programaran los códigos para el cálculo de la matriz. En un inicio, se deben borrar todos los datos que puedan existir de matrices de otros elementos de otras corridas y para ello se usa el comando mostrado a continuación: Range("O6:U211").Select Selection.ClearContents Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Dónde: Range("O6:U211").Select: es Selection.ClearContents: el rango de filas y columnas que se desea borrar es el comando que borra el contenido de las celdas selecionadas anteriormente Página | 34 Análisis plano de estructuras mediante Macros de Microsoft Excel Selection.Borders(xlDiagonalDown).LineStyle = xlNone: son comandos que eliminan cualquier remarco de borde existentes en la selección. selección La obtención de este comando es muy sencilla, basta con grabar un macro adicional y luego copiar y pegar el código en el módulo de la generación de la matriz de rigidez. Para obtener este código hacer los siguientes pasos: 6. Ir a “Vista-Macros Macros-Grabar macro” 7. En la casilla “nombre de la macro” colocar cualquier nombre, en este caso “borrar”, y seleccionar en la hoja de datos, todos los datos entre las celdas (6,O) y (6,U) hasta las filas hacia abajo que desee desee. Figura Nº 19.. Selección de las celdas cuyo contenido será borrado Página | 35 Análisis plano de estructuras mediante Macros de Microsoft Excel • Una vez seleccionadas todas las celdas deseadas, presionar la tecla “Supr”, y colocar las celdas sin remarcado. Después de haber hecho esto, las celdas seleccionadas deben estar vacías y sin recuadros. Luego, ir a “VistaMacros-Detener grabación”, y aparecerá en el módulo de Visual Basic, todos y cada uno de los comando realizados para borrar celdas y quitar los recuadros de las mismas, ya que el macro automáticamente tradujo todo lo que se hizo en Excel en código de Visual Basic. Este código aparecerá en un módulo aparte, por lo que se copiara el mismo y se pegara en el módulo de “rigidezporticos” para que se ejecute cuando se corra dicho modulo. • Para el llenado de la Matriz de Rigidez desde Visual Basic hasta Excel, se establece entonces las dimensiones de la matriz, y la posición de cada elemento en las celdas de Excel con el siguiente código: For i = 1 To q Sheets("matriz coordenadas").Select cc = Cells(i + 4, 4) ss = Cells(i + 4, 5) coscos = Cells(i + 4, 6) sensen = Cells(i + 4, 7) cossen = Cells(i + 4, 8) Sheets("Matriz de Rigidez").Select 'Valores de la matriz de cada elemento E = Cells(i + 4, 7) l = Cells(i + 4, 5) G = Cells(i + 4, 11) a = Cells(i + 4, 10) Ñ = (12 * E * G / l / l / l) Z = (6 * E * G / l / l) n = (4 * E * G / l) m = (2 * E * G / l) x=x+7 w = 16 'Identificacion de nodo inicial y final nodoi = Cells(i + 4, 3) nodoj = Cells(i + 4, 4) 'Indices de la matriz Cells(x - 1, 15) = "Elemento " & i Cells(x - 1, 16) = "u" & nodoi Cells(x - 1, 17) = "v" & nodoi Cells(x - 1, 18) = "theta" & nodoi Cells(x - 1, 19) = "u" & nodoj Página | 36 Análisis plano de estructuras mediante Macros de Microsoft Excel Cells(x - 1, 20) = "v" & nodoj Cells(x - 1, 21) = "theta" & nodoj Cells(x, 15) = "Q" & nodoi & "x" Cells(x + 1, 15) = "Q" & nodoi & "y" Cells(x + 2, 15) = "M" & nodoi Cells(x + 3, 15) = "Q" & nodoj & "x" Cells(x + 4, 15) = "Q" & nodoj & "y" Cells(x + 5, 15) = "M" & nodoj Dónde: q: es la celda en la posición (5,14) de la hoja de datos “Matriz de rigidez” (Nº de barras),, que corresponde al número de veces que se realizara la matriz,, como se muestra en la Figura Nº 20 Figura Nº 20. 20 Selección de número de nodos y barras del sistema El comando para determinar el número de barras es el comando en Excel Contar() Página | 37 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 21.. Programación del comando “Contar()” El comando lee directamente los valores de la celda, si la celda está en blanco, toma el valor de cero (0), sino, toma el valor de uno (1) y va sumando de manera acumulativa de uno en uno hasta determinar el número de celdas que no están vacías; en este caso, son dos barras y esta celda asumirá el valor de 2, que a su vez, será el valor de la variable q. Definida ya la dimensión de la matriz de rigidez, se procede a realizar el llenado mediante ciclos For-Next. For Es necesario leer por cada elemento, los lo valores ores de inercia, área, longitud, módulo de elasticidad y ángulo de inclinación, los cuales se deben extraer dentro del ciclo a realizar. El ciclo será For i =1 to q,, y dentro de él se trabaja con dos hojas de Excel, la hoja “Matriz de Rigidez” y la hoja “Matriz “Matriz coordenadas”, y para hacer el llamado se utiliza el comando sheets (“nombre de la hoja”).select hoja”).select,, y debajo lo que se quiere extraer o imprimir de esa hoja. En este caso se extraen los valores de los cosenos y senos del ángulo de inclinación de las barras rras, para usarlas en los cálculos de la matriz. Las variables utilizadas: Página | 38 Análisis plano de estructuras mediante Macros de Microsoft Excel cc: Coseno del ángulo de inclinación de la barra con respecto a la horizontal ss: Seno del ángulo de inclinación de la barra con respecto a la horizontal coscos: Coseno cuadrado del ángulo de inclinación de la barra con respecto a la horizontal sensen: Seno cuadrado del ángulo de inclinación de la barra con respecto a la horizontal cossen: Coseno*seno del ángulo de inclinación de la barra con respecto a la horizontal x: es el valor de inicio para el llenado de las filas de las celdas, y aumentara de 7 en 7 su valor para el incremento del número de filas de la matriz w: es el valor de inicio para el llenado de las columnas de las celdas, y su valor es fijo, al cual se referirán los valores de las columnas de la matriz E: Módulo de elasticidad L: longitud de la barra G: Inercia de la sección de la barra a: Área de la sección de la barra Los índices de la matriz se colocan para poder identificar en la matriz global cada uno de los elementos que la formaran. Para concatenar valores variables, se utiliza el comando en Visual Basic “&”, para crear los subíndices de fuerzas ui, vi, θi, uj, vj, θj, Qxi, Qyi, Mi, Qxj, Qyj, Mj. Finalmente, se utilizan los valores de los elementos para crear la matriz de rigidez de cada uno de ellos, con los comando mostrados a continuación: 'Colocando indices en negrita Página | 39 Análisis plano de estructuras mediante Macros de Microsoft Excel Range(Cells(x - 1, 15), Cells(x - 1, 21)).Select Selection.Font.Bold = True Cells(x, 15).Select Selection.Font.Bold = True Cells(x + 1, 15).Select Selection.Font.Bold = True Range(Cells(x + 2, 15), Cells(x + 5, 15)).Select Selection.Font.Bold = True Cells(x, w) = E * a / l * coscos + 12 * E * G / l / l / l * sensen Cells(x, w + 1) = (E * a / l - 12 * E * G / l / l / l) * cossen Cells(x, w + 2) = -6 * E * G / l / l * ss Cells(x, w + 3) = -(E * a / l * coscos + 12 * E * G / l / l / l * sensen) Cells(x, w + 4) = -Cells(x, w + 1) Cells(x, w + 5) = Cells(x, w + 2) Cells(x + 1, w) = (E * a / l - 12 * E * G / l / l / l) * cossen Cells(x + 1, w + 1) = a * E / l * sensen + 12 * E * G / l / l / l * coscos Cells(x + 1, w + 2) = 6 * E * G / l / l * cc Cells(x + 1, w + 3) = -Cells(x + 1, w) Cells(x + 1, w + 4) = -Cells(x + 1, w + 1) Cells(x + 1, w + 5) = Cells(x + 1, w + 2) Cells(x + 2, w) = -6 * E * G / l / l * ss Cells(x + 2, w + 1) = 6 * E * G / l / l * cc Cells(x + 2, w + 2) = 4 * E * G / l Cells(x + 2, w + 3) = -Cells(x + 2, w) Cells(x + 2, w + 4) = -Cells(x + 2, w + 1) Cells(x + 2, w + 5) = 2 * E * G / l Cells(x + 3, w) = -(a * E / l * coscos + 12 * E * G / l / l / l * sensen) Cells(x + 3, w + 1) = -(a * E / l - 12 * E * G / l / l / l) * cossen Cells(x + 3, w + 2) = 6 * E * G / l / l * ss Cells(x + 3, w + 3) = -Cells(x + 3, w) Cells(x + 3, w + 4) = -Cells(x + 3, w + 1) Cells(x + 3, w + 5) = 6 * E * G / l / l * ss Cells(x + 4, w) = -Cells(x + 1, w) Cells(x + 4, w + 1) = -Cells(x + 1, w + 1) Cells(x + 4, w + 2) = -Cells(x + 1, w + 2) Cells(x + 4, w + 3) = -Cells(x + 1, w + 3) Cells(x + 4, w + 4) = a * E / l * sensen + 12 * E * G / l / l / l * coscos Cells(x + 4, w + 5) = -Cells(x + 1, w + 5) Cells(x + 5, w) = Cells(x, w + 5) Cells(x + 5, w + 1) = Cells(x + 2, w + 1) Cells(x + 5, w + 2) = 2 * E * G / l Cells(x + 5, w + 3) = Cells(x + 2, w + 3) Cells(x + 5, w + 4) = Cells(x + 2, w + 4) Cells(x + 5, w + 5) = 4 * E * G / l Se puede observar, que el ciclo usado, solo determina el número de veces que será realizado el cálculo de la matriz, por lo que las variables X y W son las que indican la posición del llenado de la misma. Página | 40 Análisis plano de estructuras mediante Macros de Microsoft Excel Una vez creados los códigos para el llenado de la matriz, se crearon los códigos para remarcar las celdas con recuadros y darle más vistosidad a la misma. Para seleccionar las celdas, se utilizó el comando en Excel llamado “Range”, que permite la selección de un rango de celdas con dos celdas límites, y su sintaxis es la siguiente: Range ( cells(xi,yi), cells(xj,yj) ) Donde: Xi: Fila de inicio Yi: Columna de inicio Xj: Fila final Yj: Columna final Para remarcar las celdas, se utiliza el código mostrado a continuación: 'remarcando celdas Range(Cells(x - 1, w - 1), Cells(x + 5, w + 5)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) Página | 41 Análisis plano de estructuras mediante Macros de Microsoft Excel .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Next i. Después del ciclo, se colocó una advertencia o “Msgbox”, de manera de indicar como se deben llenar las celdas destinadas a la matriz de rigidez global de la estructura, de la siguiente forma: MsgBox ("Coloque en la columna X, a partir de la celda 6,X las fuerzas como las desee en su matriz, y en la fila 5, a partir de la celda 5,Y los desplazamientos como los desee") End Sub Esta advertencia es para indicar al usuario en donde se ubicara la matriz de rigidez de toda la estructura. Una vez terminada la programación de la matriz, se asignó este macro a un botón para que al presionarlo, se ejecute. Esto se realizó de la siguiente manera: • Ir a “programador-insertar-Boton” Página | 42 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 22. Insertando un botón para ser programado. • Una vez seleccionado el botón, desplegarlo dejando el botón izquierdo del ratón presionado, y soltarlo hasta lograr el tamaño deseado. Luego hacer click con el botón derecho del ratón, y en el menú contextual, modificar el nombre del botón; en este caso “Crear Matriz de Rigidez de cada elemento” Figura Nº 23. Asignando el macro al botón programado • Una vez modificado el texto, se procede a asignar el macro creado para que se ejecute al presionar el botón. Para ello se hace click con el botón derecho del ratón sobre el botón, y en el menú contextual seleccionar “Asignar macro”, y aparecerá una ventana en donde aparecen los macros programados, y allí seleccionar el macro “rigidezporticos” Página | 43 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 24. Asignando el macro al botón programado • Una vez hecho lo anterior, la hoja de datos debe verse de la forma siguiente: Figura Nº 25. Vista general de la hoja de Excel de datos Página | 44 Análisis plano de estructuras mediante Macros de Microsoft Excel Y al presionar el botón creado, la matriz de rigidez de cada elemento en estudio debe aparecer entre las celdas O6 y U19, y a su vez, el Msgbox creado con las indicaciones de llenado de la matriz de rigidez global. Figura Nº 26.. Resultados de la matriz de rigidez para los elementos evaluados Según el texto de autor J.U J.U. Escamilla, la matriz de rigidez para el elemento 1 es: Figura Nº 27. Resultados de la matriz de rigidez para el elemento 1 Página | 45 Análisis plano de estructuras mediante Macros de Microsoft Excel Y la matriz de rigidez del elemento 2 es: Figura Nº 28. Matriz de Rigidez del elemento 2. Lo que indica que el macro se ejecuta con éxito, con discrepancias en decimales. Una vez creada la matriz de rigidez de cada elemento, es necesario realizar el ensamblaje para obtener la matriz de rigidez total de la e estructura. structura. 3.1.2. Programación del macro para ensamblar la matriz de rigidez de la estructura Una vez obtenida la matriz de rigidez de cada elemento, se procede a realizar el ensamble para la obtención de la matriz global de la estructura. Esto se realiza de manera sencilla sumando algebr algebraicamente aicamente los valores que tengan los mismos subíndices en la matriz de rigidez de cada elemento. Obsérvese la matriz siguiente: Página | 46 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 29. Matriz de rigidez de cada elemento. Nótese que el subíndice Q1x-U1 se encuentra repetido en los dos elementos, lo que indica que en la matriz de rigidez global, los valores de este subíndice deben sumarse algebraicamente, mientras que los valores que no estén con subíndices repetidos, conservaran su valor, y en este análisis se basa el macro para ensamblar la matriz global, en realizar un buscador para los subíndices y comparar valores repetidos. Al igual que la matriz de rigidez de cada elemento posee un espacio de celdas definido en su comienzo, y se incrementa de acuerdo al número de elementos, la matriz global tendrá un celda de inicio, y tendrá dimensiones de acuerdo a los grados de libertad de cada nodo, es decir, si la estructura posee dos nodos, entonces se tienen 6 grados de libertad, si es de 3 nodos, entonces de 9 grados de libertad, es decir, que la dimensión de la matriz será de numero de nodos x 3. La celda de inicio en este caso, será la celda (6,Y), a partir de ella se incrementaran las posiciones de las filas y columnas para el llenado de la Página | 47 Análisis plano de estructuras mediante Macros de Microsoft Excel matriz. Es necesario entonces crear otro macro de la forma que ya se mostró, e indicar su nombre como “matrizglobal”. Para poder ensamblar la matriz, se generaron múltiples ciclos dentro de un ciclo general For-Next, es decir, se realizó un ciclo que examinó los subíndices de cada barra y los valores de cada elemento de la matriz de cada elemento, y otro que recorre todos los subíndices de la matriz global y coloca los valores en ella. Para poder realizar estos ciclos, es necesario organizar los subíndices de la matriz de rigidez global, esto es, copiar los subíndices de la matriz de cada elemento en las celdas destinadas a ser los subíndices de la misma. En las figuras siguientes se muestra lo anteriormente planteado • Copiar los subíndices de la matriz de cada elemento en el orden que se desee, no necesariamente deben llevar orden correlativo, de esta forma se puede crear una matriz de acuerdo a la necesidad de cada usuario. Es recomendable colocar los subíndices de desplazamientos desconocidos primero, y luego los de desplazamientos conocidos. Figura Nº 30. Valores de subíndices copiados de la matriz de cada elemento a la matriz global de la estructura Página | 48 Análisis plano de estructuras mediante Macros de Microsoft Excel • Pegar los valores copiados a partir de la celda (X,6) hacia abajo para subíndices de fuerzas, y para subíndices de desplazamientos, a partir de la celda (Y,5) hacia la derecha. Figura Nº 31. Subíndices de la matriz de rigidez de toda la estructura Una vez organizados los subíndices, se puede comenzar la programación del macro. En el módulo del macro correspondiente, se escribe un ciclo (For i=1 to q), donde q es el número de barras extraído de la celda correspondiente, y dentro de este ciclo, se realizaran dos ciclos más de manera de recorrer la matriz de cada elemento y ensamblarla con la existente. Para facilitar la búsqueda, se debe copiar todo el macro para la matriz de cada elemento en este macro, y justo debajo de la línea que realiza el cálculo del elemento último, comenzar la programación, tal como se ve en los siguientes códigos: '1 For t = 1 To r Página | 49 Análisis plano de estructuras mediante Macros de Microsoft Excel For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w) End If Next j Next t '2 For t = 1 To r For j = 1 To r If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w + 1) End If Next j Next t '3 For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w + 2) End If Next j Next t '4 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w + 3) End If Next j Next t '5 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w + 4) End If Next j Next t '6 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x, w + 5) End If Next j Next t '7 For t = 1 To r For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w) Página | 50 Análisis plano de estructuras mediante Macros de Microsoft Excel End If Next j Next t '8 For t = 1 To r For j = 1 To r If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w + 1) End If Next j Next t '9 For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w + 2) End If Next j Next t '10 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w + 3) End If Next j Next t '11 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w + 4) End If Next j Next t '12 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x + 1, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 1, w + 5) End If Next j Next t '13 For t = 1 To r For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w) End If Next j Next t Página | 51 Análisis plano de estructuras mediante Macros de Microsoft Excel '14 For t = 1 To r For j = 1 To r If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w + 1) End If Next j Next t '15 For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w + 2) End If Next j Next t '16 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w + 3) End If Next j Next t '17 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w + 4) End If Next j Next t '18 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x + 2, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 2, w + 5) End If Next j Next t '19 For t = 1 To r For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w) End If Next j Next t '20 For t = 1 To r For j = 1 To r Página | 52 Análisis plano de estructuras mediante Macros de Microsoft Excel If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w + 1) End If Next j Next t '21 For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w + 2) End If Next j Next t '22 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w + 3) End If Next j Next t '23 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w + 4) End If Next j Next t '24 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x + 3, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 3, w + 5) End If Next j Next t '25 For t = 1 To r For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w) End If Next j Next t '26 For t = 1 To r For j = 1 To r If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w + 1) End If Página | 53 Análisis plano de estructuras mediante Macros de Microsoft Excel Next j Next t '27 For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w + 2) End If Next j Next t '28 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w + 3) End If Next j Next t '29 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w + 4) End If Next j Next t '30 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x + 4, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 4, w + 5) End If Next j Next t '31 For t = 1 To r For j = 1 To r If Cells(x - 1, 16) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w) End If Next j Next t '32 For t = 1 To r For j = 1 To r If Cells(x - 1, 17) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w + 1) End If Next j Next t '33 Página | 54 Análisis plano de estructuras mediante Macros de Microsoft Excel For t = 1 To r For j = 1 To r If Cells(x - 1, 18) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w + 2) End If Next j Next t '34 For t = 1 To r For j = 1 To r If Cells(x - 1, 19) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w + 3) End If Next j Next t '35 For t = 1 To r For j = 1 To r If Cells(x - 1, 20) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w + 4) End If Next j Next t '36 For t = 1 To r For j = 1 To r If Cells(x - 1, 21) = Cells(5, t + 24) And Cells(x + 5, 15) = Cells(j + 5, 24) Then Cells(j + 5, t + 24) = Cells(j + 5, t + 24) + Cells(x + 5, w + 5) End If Next j Next t Next i For t = 1 To r For j = 1 To r If Cells(j + 5, t + 24) = "" Then Cells(j + 5, t + 24) = 0 End If Next j Next t Para realizar el ensamble, se realizaron 2 ciclos más, uno dentro de otro, y se realizó una corrida para verificar su funcionamiento: r es el número de grados de libertad, extraído de las celdas correspondientes al multiplicar el número de nodos por 3. X=7, valor de inicio de filas W=16, valor de inicio de columnas For t = 1 To r Página | 55 Análisis plano de estructuras mediante Macros de Microsoft Excel For j = 1 To r If Cells(x - 1, 16) = Cells (5, t + 24) And Cells(x, 15) = Cells(j + 5, 24) Then Cells (j + 5, t + 24) = Cells (j + 5, t + 24) + Cells (x, w) End If Next j Next t Obsérvese que si x = 7, w = 16, t = 1, y j = 1, se tiene que: Cells ( x - 1,16 ) = u1 Cells ( 5 , t + 24 ) = u1 Cells ( x , 15 ) = Q1x Cells ( j + 5 , 24 ) = Q1x Cells ( j + 5, t + 24 ) = “” Cells ( x , w ) = 570000 Sustituyendo los valores el ciclo: If U1=U1 And Q1x = Q1x then “” = ”” + 570000 End if De manera que en la celda Cells (j + 5, t + 24), se ha introducido el valor de 570000. El ciclo se realizó para cada elemento de la matriz, desde Cells ( x , w ) hasta Cells ( x + 5 , w + 5 ). Realizado el macro, se creó un botón para su ejecución, de la forma anteriormente explicada, solo que se le coloco el nombre “Crear Matriz Global”, y al presionar dicho botón, se genera la matriz de rigidez de toda la estructura, que debe imprimirse en las celdas como se muestra en la Figura Nº 32 Página | 56 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 32. Matriz de rigidez ensamblada 3.1.2. PROGRAMACIÓN DE LA HOJA “MATRIZ DE FUERZAS” Esta hoja está destinada solo al cálculo de las fuerzas de empotramiento presentes en el elemento de acuerdo a sus solicitaciones y para indicar al macro cuales son las fuerzas incógnitas y cuáles son los desplazamientos incógnitas. Para ello se programó en la hoja de Excel, un menú que permite escoger el tipo de solicitación a la cual está sometido el elemento, como se muestra en la Figura Nº 33. Página | 57 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 33. Fuerzas de empotramiento En la columna denominada “Solicitación”, se ingresa el número correspondiente a la misma, y en las celdas siguientes, los l valores requeridos para el cálculo, solo los que aparecen en la imagen. 3.1.2.1. Consideraciones de signos para las cargas: Si la fuerza es inclinada, se debe colocar el cuadrante hacia donde apunta el sentido de la misma, como se muestra en la Figura Nº 34. 2do cuadrante 3er cuadrante 1er cuadrante 4to cuadrante Figura Nº 34.. Sentido de las fuerzas según cuadrante a donde apunte Página | 58 Análisis plano de estructuras mediante Macros de Microsoft Excel Si la fuerza es vertical hacia arriba, se puede colocar 1 o 4, sino, 2 o 3; si es horizontal a la derecha, se puede colocar 1 o 2, sino, 3 o 4. Los valores de los cuadrantes, de las cargas y datos de longitudes, se colocan en las celdas más oscuras de la hoja, las demás se llenan automáticamente (ver Figura Nº 35) Figura Nº 35. Celdas que deben completarse con datos Una vez ingresadas las fuerzas y longitudes, automáticamente se calculan las reacciones de empotramiento correspondientes en sus componentes horizontal y vertical. (Ver Figura Nº 35). Es necesario entonces crear el vector de fuerzas de empotramiento, que sólo organizará los valores de cada fuerza de empotramiento desde la celda actual hasta una nueva celda, colocándola en una sola columna y de acuerdo a los subíndices de cada elemento, y por supuesto, indicando en el código que para un mismo nodo, sume algebraicamente las fuerzas presentes en el a través de un macro. En este macro también se llenara el vector de fuerzas de empotramiento por elemento y el vector de desplazamientos para la matriz global. El código escrito en Visual Basic se muestra a continuación: Página | 59 Análisis plano de estructuras mediante Macros de Microsoft Excel Sub Matrizfuerzas() ' Matrizfuerzas Macro Sheets("Matriz de Rigidez").Select 'Nodos t = Cells(5, 13) 'Barras u = Cells(5, 14) m=u*7 'GDL r = 3 * Cells(5, 13) Sheets("Matriz de fuerzas").Select For i = 1 To r Sheets("Matriz de Rigidez").Select a = Cells(i + 5, 24) Sheets("Matriz de fuerzas").Select Cells(i + 17, 28) = a Next i 'llenando ID de desplazamientos Sheets("Matriz de fuerzas").Select For i = 1 To r Sheets("Matriz de Rigidez").Select a = Cells(5, i + 24) Sheets("Matriz de fuerzas").Select Cells(i + 17, 32) = a Next i Sheets("Matriz de fuerzas").Select x=1 For i = 1 To u nodoi = Cells(i + 18, 6) nodoj = Cells(i + 18, 7) Mnodoi = Cells(i + 18, 16) Qnodoix = Cells(i + 18, 20) Qnodoiy = Cells(i + 18, 21) Mnodoj = Cells(i + 18, 17) Qnodojx = Cells(i + 18, 22) Qnodojy = Cells(i + 18, 23) 'ID de fuerzas Cells(x + 16, 25) = "Elemento " & i Cells(x + 19, 25) = "M" & nodoi Cells(x + 17, 25) = "Q" & nodoi & "x" Cells(x + 18, 25) = "Q" & nodoi & "y" Cells(x + 20, 25) = "Q" & nodoj & "x" Cells(x + 21, 25) = "Q" & nodoj & "y" Cells(x + 22, 25) = "M" & nodoj 'Valores de fuerzas Cells(x + 19, 26) = Mnodoi Cells(x + 17, 26) = Qnodoix Cells(x + 18, 26) = Qnodoiy Cells(x + 20, 26) = Qnodojx Página | 60 Análisis plano de estructuras mediante Macros de Microsoft Excel Cells(x + 21, 26) = Qnodojy Cells(x + 22, 26) = Mnodoj x=x+7 Next i For i = 1 To r For j = 1 To m Cells(i + 17, 29) = 0 Next j Next i For i = 1 To r For j = 1 To m If Cells(i + 17, 28) = Cells(j + 16, 25) Then Cells(i + 17, 29) = Cells(i + 17, 29) + Cells(j + 16, 26) End If Next j Next i 'remarcando celdas Range(Cells(17, 25), Cells(16 + m, 26)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) Página | 61 Análisis plano de estructuras mediante Macros de Microsoft Excel .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Range(Cells(18, 32), Cells(17 + t * 3, 33)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Range(Cells(18, 28), Cells(17 + t * 3, 30)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 Página | 62 Análisis plano de estructuras mediante Macros de Microsoft Excel .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With End Sub Al realizar el código, es necesario, asignar el macro a un botón para que se ejecute. Para ello, se crea un botón denominado “Generar Matriz de Fuerzas y Desplazamientos” y se le asigna el macro creado para estas operaciones. Al presionar el botón, se debe crear el vector de fuerzas y desplazamientos desde la celda (17,Y), como se muestra en la Figura Nº 36 Página | 63 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 36. Vector de fuerzas de empotramiento y de desplazamientos en los nodos. En la Figura Nº 36 se observa que existen 3 vectores; el vector de fuerzas de empotramiento por cada elemento (remarcado en rojo) en donde se colocan las fuerzas de empotramiento por cada elemento; un vector de fuerzas de empotramiento ya con valores nodales superpuestos (remarcado en azul), que también se genera con el macro; un vector de fuerzas nodales que se encuentran aplicadas en la estructura (remarcada en amarillo) las cuales deben ser ingresadas de acuerdo a las fuerzas que estén aplicadas directamente en los nodos con su signo. Para este caso, existe una fuerza de 100000 N en la dirección x, 0 en la dirección y, y 0 para momento en el nodo 1. Si las fuerzas en el nodo correspondiente son desconocidas, se debe dejar en blanco la casilla, de manera de que en la hoja de Excel esto se lea como una incógnita; un vector para los desplazamientos, en donde al igual que el vector de fuerzas, se debe colocar el valor del desplazamiento conocido (en Página | 64 Análisis plano de estructuras mediante Macros de Microsoft Excel este caso 0 para los nodos 2 y 3 por ser empotrados) y se deja en blanco el desplazamiento desconocido. De esta forma se concluye la programación de esta hoja. 3.1.3. PROGRAMACIÓN DE LA HOJA “CALCULOS” La programación de esta hoja es necesaria para determinar los valores de reacciones y desplazamientos en nodos. Primeramente, se colocaron en esta hoja, los valores de la matriz de rigidez y los vectores de fuerzas y desplazamientos a través de un macro. El macro se debe crear con el nombre de “Generar Matriz de la estructura”, y en este se realizaran todas las operaciones necesarias para los cálculos. Para organizar las matrices en esta hoja, se realizó el código mostrado a continuación: Sub matrizestructura() ' ' matrizestructura Macro ' Sheets("Calculos").Select Range("A7:AT1220").Select Selection.ClearContents Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Sheets("Matriz de Rigidez").Select 'Nodos t = Cells(5, 13) 'Barras u = Cells(5, 14) m=u*7 'GDL r = 3 * Cells(5, 13) Página | 65 Análisis plano de estructuras mediante Macros de Microsoft Excel 'llenando matriz de rigidez Sheets("Calculos").Select Cells(9, 5) = "Matriz de Rigidez" Cells(9, 5).Select Selection.Font.Bold = True For i = 1 To r For j = 1 To r Sheets("Matriz de Rigidez").Select a = Cells(i + 5, 24 + j) Sheets("Calculos").Select Cells(i + 10, j + 4) = a Next j Next i 'Remarcando celdas Range(Cells(11, 5), Cells(10 + r, 4 + r)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 Página | 66 Análisis plano de estructuras mediante Macros de Microsoft Excel .Weight = xlThin End With 'llenando matriz de fuerzas o=0 Sheets("Calculos").Select Cells(9, 3) = "Matriz de Fuerzas" Cells(9, 3).Select Selection.Font.Bold = True For i = 1 To t * 3 Sheets("Matriz de fuerzas").Select a = Cells(i + 17, 30) If a = "" Then a = Cells(i + 17, 28) & "?" o=o+1 End If Sheets("Calculos").Select Cells(i + 10, 3) = a Next i 'Remarcando celdas Range(Cells(11, 3), Cells(10 + r, 3)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 Página | 67 Análisis plano de estructuras mediante Macros de Microsoft Excel .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Sheets("Calculos").Select 'numero de reacciones desconocidas Cells(3, 10) = o 'numero de desplazamientos desconocidos Cells(4, 10) = t * 3 - o v = Cells(4, 10) 'llenando matriz de desplazamientos Sheets("Calculos").Select Cells(9, r + 6) = "Matriz de desplazamientos" Cells(9, r + 6).Select Selection.Font.Bold = True For i = 1 To t * 3 Sheets("Matriz de fuerzas").Select a = Cells(i + 17, 33) If a = "" Then a = Cells(i + 17, 32) & "?" End If Sheets("Calculos").Select Cells(i + 10, r + 6) = a Next i 'remarcando celdas Range(Cells(11, r + 6), Cells(10 + r, r + 6)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 Página | 68 Análisis plano de estructuras mediante Macros de Microsoft Excel .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With 'Indices de la matriz Sheets("Calculos").Select For i = 1 To r Sheets("Matriz de Rigidez").Select a = Cells(5, i + 24) Sheets("Calculos").Select Cells(10, i + 4) = a Cells(10, i + 4).Select Selection.Font.Bold = True Next i Sheets("Calculos").Select For i = 1 To r Sheets("Matriz de Rigidez").Select a = Cells(5 + i, 24) Sheets("Calculos").Select Cells(i + 10, 2) = a Cells(i + 10, 2).Select Selection.Font.Bold = True Next i 'Matriz de fuerzas de empotramiento Sheets("Calculos").Select Cells(9, r + 8) = "Matriz de Fuerzas de empotramiento" Cells(9, r + 8).Select Selection.Font.Bold = True For i = 1 To t * 3 Sheets("Matriz de fuerzas").Select a = Cells(i + 17, 29) Sheets("Calculos").Select Página | 69 Análisis plano de estructuras mediante Macros de Microsoft Excel Cells(i + 10, r + 8) = a Next i 'remarcando celdas Range(Cells(11, r + 8), Cells(10 + r, r + 8)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With w=v-1 'inversion de matriz Cells(r + 13, 5) = "Matriz de rigidez inversa" Range(Cells(r + 14, 5), Cells(13 + r + v, v + 4)).Select Selection.FormulaArray = "=MINVERSE(R[" & (-3 - r) & "]C:R[" & (-3 - r + w) & "]C[" & (w) & "])" Página | 70 Análisis plano de estructuras mediante Macros de Microsoft Excel Con este código, la matriz total de la estructura, se debe ver así: Figura Nº 37. Matriz global de la estructura Se observa en la Figura Nº 37 que los valores calculados en las hojas anteriormente expuestas, han sido trasladados a esta hoja, esto para facilitar los cálculos en el macro. Lo primero que se debe hacer es calcular los desplazamientos desconocidos, en este caso son los del nodo 1, en el cual se conocen las fuerzas actuantes. Para ello debe invertirse la matriz correspondiente a este cálculo según la teoría. (Ver Figura Nº 38). Figura Nº 38. En rojo los valores de la matriz a invertir Página | 71 Análisis plano de estructuras mediante Macros de Microsoft Excel Debido a que la dimensión de la matriz inversa es dinámica, es necesario añadir esta operación al macro creado. El comando en visual Basic para invertir matrices es el siguiente: Selection.FormulaArray = "=MINVERSE(R C:R-n C-n)" Donde: Selection.FormulaArray: es la selección del espacio vectorial de la matriz inversa MINVERSE(R C:-R -C): es el comando que invierte la matriz para el espacio vectorial seleccionado, el cual se define por posiciones de filas y columnas. En este caso, las dos primeras celdas R C, corresponden a la celda de inicio en donde se colocara el primer elemento de la inversa, la cual será 3 filas por debajo del último elemento de la matriz de rigidez, para dejar un espacio entre ellas, mientras que R-i C-j, indican en cuantas filas y en cuantas columnas se resta a la celda inicial para encontrar el primer valor de la matriz a invertir. El código escrito en visual Basic para la inversión de la matriz es: 'inversion de matriz Cells(r + 13, 5) = "Matriz de rigidez inversa" Range(Cells(r + 14, 5), Cells(13 + r + v, v + 4)).Select Selection.FormulaArray = "=MINVERSE(R[" & (-3 - r) & "]C:R[" & (-3 - r + w) & "]C[" & (w) & "])" Donde r = número de filas o columnas presentes en la matriz de rigidez v = número de desplazamientos incógnita w = número de reacciones incógnita Luego de invertir la matriz, se multiplica la misma por el vector de fuerzas nodales y se obtienen los desplazamientos desconocidos, y al multiplicar Página | 72 Análisis plano de estructuras mediante Macros de Microsoft Excel estos desplazamientos, por la matriz de rigidez global se obtienen las reacciones. El código para operar matricialmente se muestra a continuación: Cells(r + 13, 3) = "Matriz de fuerzas nodales" For i = 1 To v Cells(i + r + 13, 3) = Cells(i + 10, 3) - Cells(i + 10, 4 + r + 4) Next i 'Multiplicando matriz inversa por la matriz de fuerza para obtener desplazamientos Cells(r + 13, v + 6) = "Desplazamientos calculados" For i = 1 To v u=0 p=1 For j = 1 To v u = Cells(j + r + 12 + p, 3) * Cells(i + r + 13, 4 + j) + u Next j Cells(i + r + 13, v + 6) = u p=p+1 Cells(i + r + 13, v + 7) = Cells(i + 10, r + 6) Next i 'multiplicando matriz de rigidez por los deplazamientos para encontrar reacciones Cells(r + 13, v + 6) = "Reacciones calculadas" For i = 1 To o u=0 p=1 For j = 1 To v u = Cells(10 + v + i, j + 4) * Cells(j + r + 13, v + 6) + u Next j Cells(i + r + v + 3 + 10, v + 6) = u + Cells(i + 10 + v, r + 8) p=p+1 Cells(i + r + v + 3 + 10, v + 7) = Cells(i + 10 + v, 3) Next i 'simbolos Cells(9, 4) = "=" Cells(9, 4 + r + 1) = "X" Cells(9, 4 + r + 3) = "+" End Sub Página | 73 Análisis plano de estructuras mediante Macros de Microsoft Excel Al presionar el botón previamente programado, se debe ver las reacciones y desplazamientos calculados, calculados como se muestra en la Figura Nº 39. Figura Nº 39.. Reacciones y desplazamientos calculados Si se compara con los resultados con los del libro J.U. Escamilla, se observa que los resultados del macro en Excel corresponden con los mismos. Figura Nº 40. Resultados del pórtico evaluado. Fuente J.U. Escamilla Escamill Página | 74 Análisis plano de estructuras mediante Macros de Microsoft Excel EJERCICIOS DE APLICACIÓN RESUELTOS CON EL MACRO Ejercicio Nº 1: Resolver el pórtico mostrado a continuación sabiendo que la viga posee dimensiones de 30x35 cm y la columna de 30x40 cm (E=19 Ton/mm2) 30 T/m 10 T/m Figura Nº 41. Pórtico para ejercicio de aplicación Solución: Se enumeran los nodos como se muestra en la Figura Nº 42 Página | 75 Análisis plano de estructuras mediante Macros de Microsoft Excel 1 3 2 Figura Nº 42. Numeración de los nodos Una vez enumerados los nodos, se introducen sus datos en la hoja de Excel, como se muestra en Figura Nº 43. Figura Nº 43.. Datos geométricos para el pórtico evaluado Al ingresar los datos, se presiona el botón “Crear “Crear Matriz de Rigidez de cada elemento”, ”, y se obtiene la matriz de rigidez de cada barra, como se muestra en la Figura Nº 44. Página | 76 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 44.. Matriz de rigidez de cada elemento. Una vez obtenida la matriz de rigidez de cada elemento, se procede a colocar los subíndices de la matriz de rigidez global para proceder al llenado de la misma, y se presiona el botón ““Crear Matriz Global”, ”, como se muestra en la Figura Nº 45 Figura Nº 45.. Matriz de rigidez de toda la estructura Página | 77 Análisis plano de estructuras mediante Macros de Microsoft Excel Una vez creada la matriz de rigidez de la estructura, se procede a introducir las cargas actuantes. Para ello es necesario ir a la hoja “Matriz de fuerzas” y completar los datos como se muestra en la Figura Nº 46. Figura Nº 46. Matriz de fuerzas para el pórtico en estudio Una vez completados los datos, se presiona el botón “Generar Matriz de Fuerzas y Desplazamientos”, y se obtiene la matriz de fuerzas de la estructura. En ella se coloca el valor de cero para las fuerzas actuantes en el nodo 1, ya que no existen fuerzas aplicadas en el mismo, y se deja en blanco las reacciones en los apoyos 2 y 3, mientras que para los nodos 2 y 3, se coloca cero a sus desplazamientos que son conocidos, y se dejan en blanco los desplazamientos del nodo 1, que son los que se calcularán, como se muestra en la Figura Nº 47 Página | 78 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 47. Matriz de fuerzas del pórtico en estudio Determinadas las fuerzas de empotramiento, las fuerzas actuantes, y establecidas las incógnitas, es necesario ir a la hoja “Cálculos”, la cual estará en blanco en inicio, con solo el botón “Calcular reacciones y desplazamientos”, y al presionar este botón se obtienen las reacciones en los apoyos 2 y 3 y los desplazamientos en el nodo 1, como se muestra en la Figura Nº 48. Figura Nº 48. Reacciones y desplazamientos calculados Página | 79 Análisis plano de estructuras mediante Macros de Microsoft Excel Si se quiere comprobar los resultados, basta con realizar las sumatorias de fuerzas pertinentes y verificar que las mismas sean iguales a cero (0). Por ejemplo, en el eje x, la carga distribuida posee un valor de 40 Ton, y se suman las fuerzas en x arrojadas por los cálculos del macro en Excel, se verifica que ambas apuntan hacia la izquierda, y suman 40 Ton. Ejercicio Nº 2: Calcular los desplazamientos y las reacciones de la cercha mostrada en la Figura N° 49. (E = 200 T/mm2) 100 Ton 50 Ton ² m m A= 50 00 m m ² 0 00 10 A= A=6000 mm² 50 Ton Figura Nº 49. Cercha para ejercicio de aplicación Página | 80 Análisis plano de estructuras mediante Macros de Microsoft Excel En este caso, a pesar de que es una estructura que funciona solo con cargas axiales, también es posible utilizar el macro para realizar los cálculos, solo se debe introducir la inercia de la sección igual a cero en todos los elementos para evitar que funcionen como elementos sometidos a flexión. Al igual que en el ejercicio anterior, se deben completar los datos de la cercha, como en la Figura Nº 50. Figura Nº 50. Datos de la cercha en estudio Una vez obtenida la matriz de rigidez de cada elemento, se procede a colocar los subíndices de la matriz de rigidez global para proceder al llenado de la misma, y se presiona el botón “Crear Matriz Global”, como se muestra en la Figura Nº 51 Página | 81 Análisis plano de estructuras mediante Macros de Microsoft Excel Nº de nodos Nº de barras 3 3 Crear Matriz de Rigidez de cada elemento Elemento 1 Q1x Q1y M1 Q2x Q2y M2 Elemento 2 Q2x Q2y M2 Q3x Q3y M3 Elemento 3 Q1x Q1y M1 Q3x Q3y M3 u1 144000 -192000 0 -144000 192000 0 u2 200000.00 0.00 0.00 -200000.00 0.00 0.00 u1 72000 96000 0 -72000 -96000 0 v1 -192000 256000 0 192000 -256000 0 v2 0.00 0.00 0.00 0.00 0.00 0.00 v1 96000 128000 0 -96000 -128000 0 theta1 0 0 0 0 0 0 theta2 0.00 0.00 0.00 0.00 0.00 0.00 theta1 0 0 0 0 0 0 u2 -144000 192000 0 144000 -192000 0 u3 -200000.00 0.00 0.00 200000.00 0.00 0.00 u3 -72000 -96000 0 72000 96000 0 v2 192000 -256000 0 -192000 256000 0 v3 0.00 0.00 0.00 0.00 0.00 0.00 v3 -96000 -128000 0 96000 128000 0 theta2 0 0 0 0 0 0 theta3 0.00 0.00 0.00 0.00 0.00 0.00 theta3 0 0 0 0 0.000E+00 0 Figura Nº 51. Matriz de rigidez de cada elemento Una vez obtenida la matriz de rigidez de cada elemento, se procede a colocar los subíndices de la matriz de rigidez global para proceder al llenado de la misma, y se presiona el botón “Crear Matriz Global”, como se muestra en la Figura Nº 52 Página | 82 Análisis plano de estructuras mediante Macros de Microsoft Excel Matriz global Crear Matriz Global u1 216000 -96000 -144000 192000 -72000 -96000 0 0 0 Q1x Q1y Q2x Q2y Q3x Q3y M1 M2 M3 v1 -96000 384000 192000 -256000 -96000 -128000 0 0 0 u2 -144000 192000 344000 -192000 -200000 0 0 0 0 v2 192000 -256000 -192000 256000 0 0 0 0 0 u3 -72000 -96000 -200000 0 272000 96000 0 0 0 v3 -96000 -128000 0 0 96000 128000 0 0 0 theta1 0 0 0 0 0 0 0 0 0 theta2 0 0 0 0 0 0 0 0 0 theta3 0 0 0 0 0 0 0 0 0 Figura Nº 52. Matriz de rigidez de toda la cercha Una vez creada la matriz de rigidez de la estructura, se procede a introducir las cargas actuantes, que son solo nodales, ya que las cerchas no funcionan como elementos sometidos a más de 2 fuerzas. Para ello es necesario ir a la hoja “Matriz de fuerzas” y completar los datos como se muestra en la Figura Nº 53 Solicitaciones Tipos de solicitaciones (momentos de empotramiento) 1 2 3 4 5 6 Reacciones de empotramiento (coordenadas locales) Reacciones de empotramiento (coordenadas globales) Cuadrante 4 1 Elemento Nodo i Nodo j L (m) θ (º) = Solicitación q (Kg/m) 1 2 1 2 2 3 5 6 306.87 180 5 5 c (m) 0 0 L/2 (m) 2 1 2.5 3 a (m) b (m) 3 1 3 1 M i (Kg.m) M j (Kg.m) Ri (kg) Rj (Kg) Rix (kg) Riy (Kg) Rjx (kg) Rjy (Kg) 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Figura Nº 53. Fuerzas aplicadas a la cercha. Página | 83 Análisis plano de estructuras mediante Macros de Microsoft Excel Una vez completados los datos, se presiona el botón “Generar Matriz de Fuerzas y Desplazamientos”, y se obtiene la matriz de fuerzas de la estructura como se muestra en la Figura Nº 54 Generar Matriz de Fuerzas y Desplazamientos Elemento 1 Q1x Q1y M1 Q2x Q2y M2 Elemento 2 Q2x Q2y M2 Q3x Q3y M3 Elemento 3 Q1x Q1y M1 Q3x Q3y M3 Matriz de desplazamientos Matriz de fuerzas aplicadas en la estructura 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Ingrese las fuerzas actuantes en Fuerzas de empotramiento nodos, si la fuerza es incognita, no rellene la celda No rellene la celda si el desplazamiento en el nodo es incognita. Si no lo es, ingrese su valor Q1x Q1y Q2x Q2y Q3x Q3y M1 M2 M3 u1 v1 u2 v2 u3 v3 theta1 theta2 theta3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 50000 -100000 20000 0 0 0 0.00 0.00 0.00 0.00 0.00 0.00 Figura Nº 54. Matriz de fuerzas y desplazamientos para la cercha en estudio Determinadas las fuerzas de empotramiento, las fuerzas actuantes, y establecidas las incógnitas, es necesario ir a la hoja “Cálculos”, la cual estará en blanco en desplazamientos”, inicio, y con como solo el resultado botón se “Calcular obtienen reacciones las fuerzas y y desplazamientos mostrados en la Figura Nº 55 Página | 84 Análisis plano de estructuras mediante Macros de Microsoft Excel Reacciones desconocidas Desplazamientos desconocidos Calcular reacciones y desplazamientos Matriz de Fuerzas Q1x Q1y Q2x Q2y Q3x Q3y M1 M2 M3 = u1 216000.00 -96000.00 -144000.00 192000.00 -72000.00 -96000.00 0.00 0.00 0.00 50000 -100000 20000 Q2y? Q3x? Q3y? M1? M2? M3? Matriz de fuerzas nodales 50000.00 -100000 20000 v1 -96000.00 384000.00 192000.00 -256000.00 -96000.00 -128000.00 0.00 0.00 0.00 u2 -144000.00 192000.00 344000.00 -192000.00 -200000.00 0.00 0.00 0.00 0.00 Matriz de rigidez inversa 6.45833E-06 3.64583E-07 0.0000025 3.64583E-07 3.63281E-06 -0.000001875 0.0000025 -0.000001875 0.000005 v2 192000.00 -256000.00 -192000.00 256000.00 0.00 0.00 0.00 0.00 0.00 Matriz de Rigidez u3 -72000.00 -96000.00 -200000.00 0.00 272000.00 96000.00 0.00 0.00 0.00 6 3 X v3 -96000.00 -128000.00 0.00 0.00 96000.00 128000.00 0.00 0.00 0.00 theta1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 theta2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 theta3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Matriz de desplazamientos + u1? v1? u2? 0 0 0 theta1? theta2? theta3? Matriz de Fuerzas de empotramiento 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Reacciones calculadas 0.336458 u1? -0.382552 v1? 0.412500 u2? 83333.33 Q2y? -70000.00 Q3x? 16666.67 Q3y? 0.00 M1? 0.00 M2? 0.00 M3? Figura Nº 55. Reacciones y desplazamientos para la cercha en estudio Página | 85 Análisis plano de estructuras mediante Macros de Microsoft Excel Ejercicio Nº 3 (extraído del libro J.U. Escamilla. Ejercicio N° 11.19, pág. 501) Calcular los desplazamientos y las reacciones del pórtico mostrado en la Figura Nº 56. (E = 19 KN/mm2) 50 KN 4.00 3.00 2.00 Figura Nº 56. Pórtico para ejercicio de aplicación Solución: Se enumeran los nodos como se muestra en la Figura Nº 57 1 2 3 4 Figura Nº 57. Numeración de los nodos Página | 86 Análisis plano de estructuras mediante Macros de Microsoft Excel Se procede de igual manera que los ejercicios 1 y 2, obteniendo los siguientes resultados: Elemento 1 Q3x Q3y M3 Q1x Q1y M1 Elemento 2 Q1x Q1y M1 Q2x Q2y M2 Elemento 3 Q2x Q2y M2 Q4x Q4y M4 u3 5700 0 -8550 -5700 0 -8550 u1 475000.00 0.00 0.00 -475000.00 0.00 0.00 u2 5700 0 8550 -5700 0 8550 v3 0 570000 0 0 -570000 0 v1 0.00 3298.61 9895.83 0.00 -3298.61 9895.83 v2 0 570000 0 0 -570000 0 theta3 -8550 0 17100 8550 0 8550 theta1 0.00 9895.83 39583.33 0.00 -9895.83 19791.67 theta2 8550 0 17100 -8550 0 8550 u1 -5700 0 8550 5700 0 8550 u2 -475000.00 0.00 0.00 475000.00 0.00 0.00 u4 -5700 0 -8550 5700 0 -8550 v1 0 -570000 0 0 570000 0 v2 0.00 -3298.61 -9895.83 0.00 3298.61 -9895.83 v4 0 -570000 0 0 570000 0 theta1 -8550 0 8550 8550 0 17100 theta2 0.00 9895.83 19791.67 0.00 -9895.83 39583.33 theta4 8550 0 8550 -8550 0.000E+00 17100 Figura Nº 58. Matriz de rigidez de cada elemento. La matriz de rigidez de cada elemento según el texto mencionado anteriormente, es la que se muestra en las figuras N° 59 y N° 60. Página | 87 Análisis plano de estructuras mediante Macros de Microsoft Excel Para ell elemento horizontal: Figura Nº 59.. Matriz de rigidez del elemento horizontal. (Fuente, J.U. Escamilla) Para los elementos verticales Figura Nº 60.. Matriz de rigidez de los elementos verticales. (Fuente, J.U. Escamilla) Página | 88 Análisis plano de estructuras mediante Macros de Microsoft Excel La matriz de rigidez de la estructura completa obteni obtenida da con el macro es la mostrada en la Figura N° 61 Q1x Q1y M1 Q2x Q2y M2 Q3x Q3y M3 Q4x Q4y M4 u1 v1 theta1 u2 v2 480700.00 0.00 8550.00 -475000.00 0.00 0.00 573298.61 9895.83 0.00 -3298.61 8550.00 9895.83 56683.33 0.00 -9895.83 -475000.00 0.00 0.00 480700.00 0.00 0.00 -3298.61 -9895.83 0.00 573298.61 0.00 9895.83 19791.67 8550.00 -9895.83 -5700.00 0.00 -8550.00 0.00 0.00 0.00 -570000.00 0.00 0.00 0.00 8550.00 0.00 8550.00 0.00 0.00 0.00 0.00 0.00 -5700.00 0.00 0.00 0.00 0.00 0.00 -570000.00 0.00 0.00 0.00 8550.00 0.00 theta2 0.00 9895.83 19791.67 8550.00 -9895.83 56683.33 0.00 0.00 0.00 -8550.00 0.00 8550.00 u3 -5700.00 0.00 -8550.00 0.00 0.00 0.00 5700.00 0.00 -8550.00 0.00 0.00 0.00 v3 0.00 -570000.00 0.00 0.00 0.00 0.00 0.00 570000.00 0.00 0.00 0.00 0.00 theta3 8550.00 0.00 8550.00 0.00 0.00 0.00 -8550.00 0.00 17100.00 0.00 0.00 0.00 u4 0.00 0.00 0.00 -5700.00 0.00 -8550.00 0.00 0.00 0.00 5700.00 0.00 -8550.00 v4 0.00 0.00 0.00 0.00 -570000.00 0.00 0.00 0.00 0.00 0.00 570000.00 0.00 Figura Nº 61.. Matriz de rigidez global de la estructura La matriz de rigidez global de la estructura, solo en los nodos 1 y 2 que son los que se repiten en cada elemento, según el texto anteriormente mencionado es la mostrada en la Figura N° 62 Figura Nº 62.. Matriz de rigidez global de la estructura. (Fuente, J.U. Escamilla) Se puede observar que los valores obtenidos con el macro comparados con los del texto discrepan en pequeñas cantidades, esto es debido a que Página | 89 theta4 0.00 0.00 0.00 8550.00 0.00 8550.00 0.00 0.00 0.00 -8550.00 0.00 17100.00 Análisis plano de estructuras mediante Macros de Microsoft Excel Microsoft Excel trabaja internamente con muchos más decimales que los que pudieron haber sido usados en el ejercicio ejercici del texto. Las reacciones de empotramiento para el elemento horizontal se muestran en la Figura N° 63. Cuadrante Elemento Nodo i Nodo j L (m) θ (º) = Solicitación q (Kg/m) 4 4 3 3 1 2 1 2 4 3 6 3 90 0 270 5 6 5 1 2 3 Reacciones de empotramiento (coordenadas locales) c (m) 0 50 0 L/2 (m) 2 1 1 1.5 3 1.5 a (m) b (m) 3 2 1 3 4 1 Reacciones de empotramiento (coordenadas globales) M i (Kg.m) M j (Kg.m) Ri (kg) Rj (Kg) Rix (kg) Riy (Kg) Rjx (kg) Rjy (Kg) 0.00 44.44 0.00 0.00 -22.22 0.00 0.00 37.04 0.00 0.00 12.96 0.00 0.00 0.00 0.00 0.00 37.04 0.00 0.00 0.00 0.00 0.00 12.96 0.00 Figura Nº 63. Fuerzas de empotramiento generadas con el macro. macro Las fuerzas de empotramiento para el elemento horizontal según el texto se muestran en la Figura N° 64 Figura Nº 64.. Fuerzas de empotramiento para el elemento elemento horizontal. (Fuente, J.U. Escamilla) Página | 90 Análisis plano de estructuras mediante Macros de Microsoft Excel Nótese que según el texto, la reacción vertical en el nodo 2 es de 1.30 KN, que no concuerda con la sumatoria 37+1.30=50, debería ser 13.00 KN la fuerza vertical en el nodo 2 para que se cumpla el equilibrio. Las ecuaciones de equilibrio obtenidas con el macro expresadas en forma matricial, se muestran en la Figura N° 65 Figura Nº 65. Ecuación de equilibrio de la estructura expresada en forma matricial La ecuación de equilibrio de la estructura según el texto citado, es la mostrada en la Figura Nº 66 Página | 91 Análisis plano de estructuras mediante Macros de Microsoft Excel Figura Nº 66. Ecuación de equilibrio de la estructura. (Fuente, J.U. Escamilla) Al operar matricialmente la ecuación planteada en la Figura Nº 66, se obtienen los resultados con el macro, mostrados en la siguiente figura Figura Nº 67. Reacciones y desplazamientos calculados con el macro Página | 92 Análisis plano de estructuras mediante Macros de Microsoft Excel Las reacciones y desplazamientos según el texto citado, son las que muestran en la siguiente figura Figura Nº 68. Resultados de reacciones y desplazamientos (Fuente, J.U. Escamilla) Se observa que el macro funciona al ejecutarse y resolver la estructura, con pequeñas discrepancias en valores decimales que como se expreso anteriormente, puede ser debido a la cantidad de decimales que utiliza Microsoft Excel internamente. Página | 93 Análisis plano de estructuras mediante Macros de Microsoft Excel CONCLUSIONES Como conclusión se puede establecer según lo observado, que el macro en Excel funciona y se ejecuta de manera sencilla y didáctica para la resolución de estructuras por el método matricial y con una programación sencilla en un software conocido por la masa estudiantil, de manera que puede ser usado para fines académicos pudiéndose observar la generación de todas las matrices inmersas en los cálculos. Se puede utilizar esta herramienta informática como complemento a las actividades académicas del alumno y a la resolución de ejercicios, pudiendo invertirse más tiempo en analizar el problema que realizando gran número de cálculos. La programación de la hoja no se bloqueó, de manera de que se pueda seguir desarrollando en un futuro y realizar un macro que realice cálculos más complejos con este tipo de programación y así incentivar al uso de herramientas informáticas para la resolución de problemas. Página | 94 Análisis plano de estructuras mediante Macros de Microsoft Excel Referencias bibliográficas • Escamilla, J. (2000). Análisis de estructuras. ECOE ediciones, Bogotá. • Tena Colunga, A. (2007). Análisis de estructuras con métodos matriciales. Limusa ediciones. D.F. • González Cuevas, O. (2009). Análisis estructura. Limusa ediciones. D.F. • Grossman, S. (1994). Algebra Lineal, Thomson Learning. Washington. • Barbat, A. y Canet, J. (1994). Estructuras sometidas a acciones sísmicas. CIMNE. Barcelona Página | 95