RESUMEN - RIUD

74
8 RESUMEN Este proyecto se concibe a partir de la necesidad de tener un software de ayuda que apoye a los estudiantes con la comparación de los ejercicios realizados en los cursos de Resistencia de Materiales y Elementos Finitos del currículo del ciclo de ingeniería Mecánica. De este modo se pensó en realizar una aplicación de software que sea de apoyo de fácil adquisición y amable con el usuario final que use conceptos básicos de tensión y deformación plana, conceptos básicos de elementos finitos que generan una solución más aproximada. Pensando en la facilidad de instalación y manejo, se desarrolló una aplicación de software que funciona con programas de distribución libre. Para el funcionamiento de una aplicación en Matlab que analice esfuerzos y deformaciones en elementos planos, primero se encontró un programa que funcione de módulo de dibujo y tenga la opción de posteriormente crear un enmallado en n-veces de elementos triangulares del cuerpo plano ya realizado. Para este hecho se empleó un enmallador de distribución libre llamado GMSH. Al obtener archivos creados de los nodos y conectividades de los cuerpos planos realizados en el GMSH, se creó una aplicación de software en el entorno de interfaz gráfica de Matlab Guide, el cual a partir de una serie de código de programación con la teoría de elementos finitos, lee los archivos importados y solicita al usuario datos de entrada que necesita la aplicación para así poder empezar a realizar de forma cíclica cálculos programados para obtener de esta forma esfuerzos y deformaciones ocasionados por fuerzas y apoyos en nodos solicitados en la aplicación. Luego del desarrollo de la aplicación, al realizar ejercicios de comparación con otro programa basado en elementos finitos, Ansys, se puedo obtener resultados de esfuerzos de aproximidad de 2 décimas. También, en la comparación de las deformaciones se obtuvieron resultados muy similares. De este modo se logró con el objetivo de realizar una aplicación de software que aporte al aprendizaje de los estudiantes de semestres anteriores del ciclo de Ingeniería Mecánica.

Transcript of RESUMEN - RIUD

Page 1: RESUMEN - RIUD

8

RESUMEN

Este proyecto se concibe a partir de la necesidad de tener un software de ayuda que apoye a los estudiantes con la comparación de los ejercicios realizados en los cursos de Resistencia de Materiales y Elementos Finitos del currículo del ciclo de ingeniería Mecánica. De este modo se pensó en realizar una aplicación de software que sea de apoyo de fácil adquisición y amable con el usuario final que use conceptos básicos de tensión y deformación plana, conceptos básicos de elementos finitos que generan una solución más aproximada. Pensando en la facilidad de instalación y manejo, se desarrolló una aplicación de software que funciona con programas de distribución libre. Para el funcionamiento de una aplicación en Matlab que analice esfuerzos y deformaciones en elementos planos, primero se encontró un programa que funcione de módulo de dibujo y tenga la opción de posteriormente crear un enmallado en n-veces de elementos triangulares del cuerpo plano ya realizado. Para este hecho se empleó un enmallador de distribución libre llamado GMSH. Al obtener archivos creados de los nodos y conectividades de los cuerpos planos realizados en el GMSH, se creó una aplicación de software en el entorno de interfaz gráfica de Matlab Guide, el cual a partir de una serie de código de programación con la teoría de elementos finitos, lee los archivos importados y solicita al usuario datos de entrada que necesita la aplicación para así poder empezar a realizar de forma cíclica cálculos programados para obtener de esta forma esfuerzos y deformaciones ocasionados por fuerzas y apoyos en nodos solicitados en la aplicación. Luego del desarrollo de la aplicación, al realizar ejercicios de comparación con otro programa basado en elementos finitos, Ansys, se puedo obtener resultados de esfuerzos de aproximidad de 2 décimas. También, en la comparación de las deformaciones se obtuvieron resultados muy similares. De este modo se logró con el objetivo de realizar una aplicación de software que aporte al aprendizaje de los estudiantes de semestres anteriores del ciclo de Ingeniería Mecánica.

Page 2: RESUMEN - RIUD

9

INTRODUCCIÓN

En el campo de la ingeniería el software para distintos cálculos en distintas áreas del conocimiento ha tenido un gran auge en los últimos años con el desarrollo de herramientas informáticas potentes, así como programas y computadoras más rápidas en la ejecución de cálculos complejos que involucra algunos elementos de métodos numéricos combinados con la ciencias físicas y la ingeniería.

En Colombia no existe desarrollo de aplicaciones de Elementos Finitos por lo cual se recurre al uso de software comercial utilizando la compra de licencias o seriales y para los profesionales con conocimientos más amplios usan las aplicaciones de software libre que se encuentran en la red, básicamente la diferencia entre uno licenciado y uno libre se detalla al uso específico, a la aplicación que se puede tener siendo obviamente los programas licenciados un software con aplicaciones más específicas en cuanto a las herramientas y a las aplicaciones reales que estas tienen.

Existen limitaciones dentro de las aplicaciones de elementos finitos en el contexto Colombiano que hace que no tengamos un avance en este tema. Estas van desde la evidencia en que algunas universidades que ofrecen el programa de pregrado en ingeniería mecánica no siempre ofrecen el curso de Elementos Finitos como materia obligatoria. También afecta que los programas no son fáciles de usar teniendo en cuenta que usan una serie de numerosos pasos para la resolución de un solo problema lo cual no se hace práctica para un estudiante que apenas empieza a conocer acerca de resistencia de materiales. Por último, la poca cultura de programación que se impone en los diversos programas de ingeniería

Por ende la formulación del problema de investigación se puede enunciar en la siguiente pregunta:

¿No hay alguna aplicación didáctica – práctica en resolución de problemas de resistencia de materiales básicos por medio de elementos finitos utilizando herramientas básicas de programación?.

Es importante tener a consideración que este proyecto ayudara a mostrar ante la comunidad académica y la sociedad avances que se realiza dentro de la universidad en el campo de elementos finitos, de esta forma dar una aplicación a la comunidad universitaria de distribución libre y mostrando las herramientas básicas que esta contiene para realizar ejercicios de resistencia de materiales por elementos finitos.

Por otro lado puede ser una oportunidad de negocio a futuro con el mejoramiento continuo del programa través de la aplicación de otras metodologías de cálculo,

Page 3: RESUMEN - RIUD

10

enmallado, entre otros que puedan ayudar a generar un programa mucho más completo y que pueda competir a nivel comercial con otras aplicaciones que se encuentran en el mercado.

Se hace énfasis en el buen impacto sobre los estudiantes de Tecnología e ingeniería Mecánica que quieran apoyar su curso de Resistencia de materiales bajo este modelo de aplicación y que puedan usar esta herramienta que puede ser de bastante utilidad en la vida práctica. Además de que el programa puede seguirse mejorando con más aplicaciones y con otros métodos de cálculo que mejores la eficiencia del programa y la exactitud de sus resultados, generar otro tipo de geometrías más complejos, agregar funciones extras, entre otros y que puedan ser utilizados en la academia por cualquier estudiante

Desarrollar una aplicación de software en Matlab para el cálculo de esfuerzos y deformaciones planos causados por cargas estructurales con elementos triangulares de tres nodos utilizando el método de los elementos finitos.

Dentro de este trabajo se desarrolla la programación para importar archivos de piezas enmalladas en elementos triangulares de Gmsh a la aplicación de Matlab para realizar los análisis de esfuerzos y deformaciones. Esta aplicación es la interfaz gráfica, la cual solicita al usuario condiciones iniciales pertinentes. Obtenido los resultados se realiza como comprobación los mismos ejercicios con Ansys para revisar y concluir.

Page 4: RESUMEN - RIUD

11

1. DISEÑO POR ELEMENTOS FINITOS

El análisis de elementos finitos (FEA) es el modelado de productos y sistemas en un entorno virtual, con el propósito de encontrar y resolver potenciales (o actuales) problemas estructurales o de rendimiento. FEA es la aplicación práctica del método de elementos finitos (FEM), que es utilizado por ingenieros y científicos parar matemáticamente modelar y resolver numéricamente problemas de complejas estructuras, fluidos y de multifísica. El software FEA puede ser utilizado en una amplia gama de industrias, pero es más comúnmente utilizado en las industrias aeronáutica, biomecánica y de automoción.

Uno de los modelos de elementos finitos (FE) cuenta con un sistema de puntos, llamados "nodos", que constituyen la forma del diseño. Conectados a estos nodos están los mismos elementos finitos que forman la malla de elementos finitos y contienen el material y las propiedades estructurales del modelo, la definición de cómo va a reaccionar a ciertas condiciones. La densidad de la malla de los elementos finitos puede variar a través del material, en función del cambio esperado en los niveles de estrés de un área en particular. Partes que experimentan grandes cambios en stress por lo general requieren una densidad de malla superiores a los que la experiencia de variación supone poco o ningún esfuerzo. Los puntos de interés pueden incluir los puntos de fractura del material previamente probado, filetes, esquinas, detalles complejos, y áreas de alto estrés.

Los modelos FE pueden ser creados usando elementos en una dimensión (1D haz), dos dimensiones (2D shell) o tridimensionales (3D sólido). Mediante el uso de vigas y conchas en lugar de elementos sólidos, un modelo representativo se puede crear con menos nodos sin comprometer la precisión. Cada combinación de modelos requiere una diversa gama de propiedades que se definen como:

Áreas de la sección

Momentos de inercia

torsión constante

Espesor de la chapa

resistencia a la flexión

corte transversal

Para simular los efectos de los entornos reales de trabajo en la FEA, los distintos tipos de carga se pueden aplicar al modelo de elementos finitos, incluyendo:

Page 5: RESUMEN - RIUD

12

nodal: fuerzas, momentos, los desplazamientos, velocidades, aceleraciones, temperatura y flujo de calor

Elemental: carga distribuida, presión, temperatura y flujo de calor

Las cargas de aceleración del cuerpo (la gravedad)

Los tipos de análisis son:

Estática lineal: análisis lineal con las cargas aplicadas y las limitaciones que son estáticas

Estática y la dinámica no lineal: los efectos debidos al contacto (donde una parte del modelo entra en contacto con otra), las definiciones de material no lineal (plasticidad, elasticidad, etc) y el desplazamiento de gran tamaño (las cepas que superan la teoría de baja cilindrada que limitan un enfoque de análisis lineal)

Modos Normal: frecuencias naturales de vibración

Respuesta dinámica: las cargas o movimientos que varían con el tiempo y la frecuencia

Pandeo: carga crítica en la que una estructura se vuelve inestable

La transferencia de calor: el cambio de conducción, radiación

Los resultados típicos calculados por el programa incluyen:

Nodal desplazamientos, velocidades y aceleraciones

Las fuerzas elementales, deformaciones y esfuerzo. (Siemens, 2014)

1.1 Esfuerzo y deformación

El esfuerzo se define como la intensidad de las fuerzas componentes internas distribuidas que resisten un cambio en la forma de un cuerpo. El esfuerzo se define en términos de fuerza por unidad de área. Existen tres clases básicas de esfuerzos: tensivo, compresivo y cortante. El esfuerzo se computa sobre la base de las dimensiones del corte transversal de una pieza antes de la aplicación de la carga, que usualmente se llaman dimensiones originales.

Page 6: RESUMEN - RIUD

13

Cuando la deformación se define como el cambio por unidad de longitud en una dimensión lineal de un cuerpo, el cual va acompañado por un cambio de esfuerzo, se denomina deformación unitaria debida a un esfuerzo. Es una razón o número no dimensional, y es, por lo tanto, la misma sin importar las unidades expresadas , su cálculo se puede realizar mediante la expresión 1:

e = e / L (1)

donde,

e : es la deformación unitaria

e : es la deformación

L : es la longitud del elemento. (Universidad Nacional de Colombia)

1.2 Elasticidad

La elasticidad es aquella propiedad de un material por virtud de la cual las deformaciones causadas por el esfuerzo desaparecen al removérsele. Algunas sustancias, tales como los gases poseen únicamente elasticidad volumétrica, pero los sólidos pueden poseer, además, elasticidad de forma. Un cuerpo perfectamente elástico se concibe como uno que recobra completamente su forma y sus dimensiones originales al retirarse el esfuerzo.

Para medir la resistencia elástica, se han utilizado varios criterios a saber: el límite elástico, el límite proporcional y la resistencia a la cedencia. El límite elástico se define como el mayor esfuerzo que un material es capaz de desarrollar sin que ocurra la deformación permanente al retirar el esfuerzo. El límite proporcional se define cómo el mayor esfuerzo que un material es capaz de desarrollar sin desviarse de la proporcionalidad rectilínea entre el esfuerzo y la deformación; se ha observado que la mayoría de los materiales exhiben esta relación lineal entre el esfuerzo y la deformación dentro del rango elástico. El concepto de proporcionalidad entre el esfuerzo y la deformación es conocido como Ley de Hooke, debido a la histórica generalización por Robert Hooke de los resultados de sus observaciones sobre el comportamiento de los resortes (MOORE, 1928).Ibid.

Page 7: RESUMEN - RIUD

14

1.3 Derivación de la tensión lineal matriz de rigidez de elemento triangular y ecuaciones

Con excepción de las estructuras de barras que tienen naturaleza discreta y pueden tratarse de forma natural con métodos matriciales, la mayor parte de las estructuras en ingeniería son de naturaleza continua. Aunque su respuesta es inherentemente tridimensional, el ingeniero puede, en algunos casos y manteniendo el rigor, simplificar su análisis considerando un comportamiento estructural de elasticidad bidimensional (tensión o deformación plana).

· La tensión plana se caracteriza porque

· La deformación plana se caracteriza porque Dado un problema estructural que cumpla dichas características el ingeniero se plantea conocer en cualquier punto del dominio Campo de desplazamientos

U (x,y)

Campo de deformaciones

ε (x,y)

Campo de tensiones

σ (x,y)

1.4 El problema continuo: ecuaciones básicas del problema continuo

El problema matemático del análisis de una estructura se formula en un dominio (geometría y materiales) con unas condiciones de contorno en fuerzas (acciones externas) y en desplazamientos (restricciones de los movimientos). El problema matemático viene definido por: · Relaciones cinemáticas (pequeños desplazamientos y deformaciones). · Relaciones constitutivas. · Expresión global de equilibrio (PTV).

Page 8: RESUMEN - RIUD

15

1.5 Relaciones cinemáticas: pequeños desplazamientos y deformaciones

Se define como estado de tensión o deformación plana en elasticidad, aquel cuyas secciones perpendiculares al eje prismático de la estructura se deforman en su plano y de manera idéntica. Por consiguiente basta conocer la respuesta de una sección transversal de la estructura y trabajar, por tanto, en dos dimensiones para caracterizar el comportamiento estructural. El campo de desplazamientos es de naturaleza vectorial y queda perfectamente establecido si en cada punto se conocen los desplazamientos según las direcciones de los ejes coordenados. El vector desplazamiento en un punto cualquiera se define como: El campo de deformaciones se deduce a partir de las primeras derivadas del campo de desplazamientos al aceptar la teoría de pequeñas deformaciones. A partir de la teoría general de la elasticidad se obtiene:

La deformación longitudinal es nula en el caso de deformación plana pero no necesariamente en el caso de tensión plana. Y prescindimos de ella en la

formulación porque en dicho caso la tensión longitudinal es nula. Por consiguiente, los términos en la tercera dimensión no intervienen de ninguna manera en la resolución del problema. Sin embargo, si se desea se pueden calcular a posteriori.

1.6 Relación constitutiva.

La relación entre las tensiones y las deformaciones se deduce de la elasticidad tridimensional con las hipótesis simplificativas para tensión y deformación plana. Las hipótesis de elasticidad lineal definen un comportamiento proporcional entre tensiones y deformaciones según la relación 2.

(2)

Page 9: RESUMEN - RIUD

16

Definimos D como la matriz de constantes elásticas, su expresión depende de la hipótesis de trabajo:

1.7 Esfuerzo plano

La matriz constitutiva en el caso de elasticidad bidimensional con hipótesis de tensión plana esta relacionada en la ecuaciones 3 y 4 :

[

] ;

; (3)

(4)

Donde E es el módulo de elasticidad y v es el coeficiente de Poisson.

1.8 Deformación plana

La matriz constitutiva en el caso de elasticidad bidimensional con hipótesis de deformación plana es:

[

] ;

;

(5)

(6)

Page 10: RESUMEN - RIUD

17

1.9 La filosofía del problema discreto.

El planteamiento del problema continuo conduce a unas ecuaciones que no tienen solución analítica en la mayor parte de los casos. En general es imposible encontrar para los campos incógnita una expresión como la encontrada en la ecuación 7 y cuya representación se muestra en la figura 1:

(7)

Figura 1. Planteamiento, problema discreto

Fuente: Logan, 2007

Así, se considera la posibilidad de resolver el problema, de forma correcta, únicamente en ciertos puntos y obtener una solución discreta del problema. Es decir, se calcula la solución en desplazamientos, deformaciones y tensiones en ciertos puntos y se extrapolan estos valores a cualquier otro punto. De esta manera es posible conocer el valor aproximado de los campos incógnita. En particular, el campo de desplazamientos es el que interesa más porque todos los demás derivan de él. El planteamiento discreto comporta: a) Dividir el dominio en una malla de elementos finitos. Dividimos el dominio en elementos hasta cubrir la totalidad de su superficie

Page 11: RESUMEN - RIUD

18

b) Aplicar el PTV (Principio de los Trabajos Virtuales) sobre la estructura y aprovechar las propiedades matemáticas que conllevan los elementos finitos para obtener finalmente un sistema de ecuaciones, formalmente análogo al visto en el cálculo matricial de sistemas discretos.

c) Resolver el sistema y obtener el resultado de los campos incógnita. (Javier)

1.10 Elementos triangulares

El elemento triangular que se muestra en la Figura 2, con nodos finales y tres nodos adicionales convenientemente ubicados en los puntos medios de los lados. Por lo tanto, un programa de ordenador puede calcular automáticamente las coordenadas del punto medio una vez las coordenadas de la esquina los nodos son dadas como entrada.

Figura 2. Desplazamiento nodal, elemento triangular

Fuente: Logan,2007

Page 12: RESUMEN - RIUD

19

Los desplazamientos nodales desconocido ahora son de la forma de la ecuación 8:

{ }

{

{

(8)

Ahora seleccionamos una función de desplazamiento cuadrática en cada elemento como

(9)

(10)

Otra vez, el número de coeficientes al (12) iguala el número total de los grados de libertad para el elemento. La compatibilidad de desplazamiento entre elementos contiguos está satisfecha porque tres nodos son localizados a lo largo de cada lado y una parábola es definida por tres puntos sobre su camino. Ya que elementos adyacentes son unidos en nodos comunes, su compatibilidad de desplazamiento a través de las fronteras será mantenida. En general, considerando elementos triangulares, podemos usar un polinomio completo en coordenadas Cartesianos para describir el campo de desplazamiento dentro de un elemento, ello se muestra en la figura 3.

Page 13: RESUMEN - RIUD

20

Figura 3. Términos de pascal relacionado con tipos de elemento triangular

Fuente: (Logan(2007))

Las funciones de desplazamiento generales, expresado en la forma de la matriz son ahora

{ } { [

] {

} (11)

O bien, podemos expresar

{ } [ ]{ } (12)

Donde [M] es definido para ser la primera matriz sobre el lado derecho de la ecuación anterior. Los coeficientes a1 por a12 pueden ser obtenidos substituyendo las coordenadas en la u y la v así:

[ ]

[

]

{

} (13)

Solucionando para los ai's, tenemos

Triangle

x y 1 (linear) 3

2 (quadratic)

3(cubic)

6

10

Terms in pascal triangle Polynomial Degree Number of Terms

1 0 (constant) 1

Page 14: RESUMEN - RIUD

21

[ ]

[

]

{

}

(14)

o bien, podemos expresar como

{ } [ ] { } (15)

donde [X] es la matriz 12 x 12 sobre el lado derecho de Eq. Anterior. Es lo mejor invertir la matriz [ X] usando un calculador numérico. Entonces los ai's, en términos de desplazamientos nodales. podemos obtener las expresiones de desplazamiento generales en términos de las funciones de forma y los grados nodales de libertad como:

{ } [ ]{ } (16)

Donde

{ } [ ][ ] (17)

1.11 Funciones de desplazamiento

Se utiliza las funciones u(x, y) y v(x,y), para describir el desplazamiento en algún punto interior (xi, yi) del elemento. La función lineal asegura la compatibilidad. Del desplazamiento a lo largo del cuerpo y en los nodos compartidos por los

elementos adyacentes. La función general de desplazamiento { } que contiene las funciones u y v, se puede expresar como:

Page 15: RESUMEN - RIUD

22

{ } [

] [

]

{

}

(18)

Sustituyendo las coordenadas a los puntos nodales obtenemos:

( )

(19)

( )

Resolviendo y expresando de forma matricial obtenemos:

{

} [

] {

} (20)

Resolviendo para las a’s, tenemos

{ } [ ] { } (21)

Donde [x] es la matriz 3x3 . El método de cofactores es un posible método para encontrar el inverso de [x], según esto obtenemos

[ ]

[

] (22)

Page 16: RESUMEN - RIUD

23

Donde

|

| (23)

Es el determinante de [x], evaluando es

( ) (24)

Donde A es el área del triángulo, y reorganizando

(25)

1.12 Definición de las relaciones tensión/desplazamiento y esfuerzo/deformación

Los elementos de la tensión están dados por:

{ } {

}

{

}

(26)

O usando u y v definidos anteriormente, se obtiene

[

] [

] (27)

Page 17: RESUMEN - RIUD

24

Observamos que se produce una variación de tensión lineal en el elemento. Por lo tanto, a esto se le llama un triángulo de tensión lineal al elemento (LST). Reescribiendo tenemos:

{ } [ ]{ } (28)

donde [M] es la primera matriz en el lado derecho de la ecuación. Sustituyendo la ecuación anterior para los ai tenemos {e} en términos de los desplazamientos nodales como:

{ } [ ]{ } (29)

donde [B] es una función de las variables x e y y las coordenadas (x1; y1) a (x6; y6) están dada por

{ } [ ][ ] (30)

Donde la ecuación se ha utilizado en la expresión de la ecuación. Tenga en cuenta que [B] es ahora una matriz de orden 3? X 12.

Las tensiones se dan de nuevo por

{

} [ ] {

} [ ][ ]{ } (31)

Donde se da [D] por

[ ]

[

] (32)

Estas tensiones son ahora funciones lineales de coordenadas x e y. (Logan(2007))

Page 18: RESUMEN - RIUD

25

1.13 Área de un elemento triangular

El área de un elemento triangular donde su geometría no es similar para todos los que componen un cuerpo plano, se halla de la siguiente ecuación

| | (33)

donde J es la matriz del jacobiano del elemento, esta tiene la siguiente configuración

[

] (34)

Page 19: RESUMEN - RIUD

26

2. LENGUAJE TÉCNICO DE COMPUTO MATLAB

Matlab es un entorno de desarrollo de computación técnica que facilita el manejo de cálculos numéricos de forma rápida y precisa, con acompañamiento de interfaces gráficas, de visualización y de simulación avanzadas para el trabajo científico y de ingeniería. Contiene un gran número de funciones que representan modelos y sistemas numéricos y físicos que facilita el aprendizaje y el trabajo en las ciencias exactas.

Por otro lado Matlab presenta un lenguaje de programación de alto nivel, las aplicaciones de MATLAB se desarrollan en un lenguaje de programación propio. Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactvo, como a través de un archivo de script (archivos *.m). Este lenguaje permite operaciones de vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos.

También es posible con el módulo básico de Matlab el desarrollo de algoritmos a través de un lenguaje propio de programación que resulta ser abierto (integrable con C, Excel y Bases de Datos), extensible y de sintaxis similar al C.

2.1. Librerías de Matlab.

A continuación se presentan las principales librerías de Matlab así como sus herramientas adicionales para trabajos más específicos dentro del campo de las ciencias exactas y de la ingeniería.

2.1.1. Symbolic Math

Permite integrar la expresión y el cálculo simbólicos (cálculo, transformadas, álgebra lineal, ecuaciones) al entorno de cálculo y visualización de MATLAB.

Page 20: RESUMEN - RIUD

27

2.1.2 Database Toolbox

Permite directamente desde MATLAB consultar e intercambiar datos con las bases de datos ODBC/JDBC más populares (Oracle, Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL Server, Microsoft Access, Informix and Ingres) de forma dinámica, preservándolos durante el intercambio y simultáneamente con más de una base de datos.

2.1.3 Excel Link Toolbox

Integra MATLAB con Microsoft Excel permitiendo la transferencia de datos en los dos sentidos, ejecutando cualquier función de MATLAB desde una fórmula de Excel o utilizando Excel desde MATLAB como editor de vectores.

2.1.4 Statistics Toolbox

Funciones y herramientas interactivas para el análisis de datos históricos, el modelado y simulación de sistemas y para el desarrollo de algoritmos estadísticos.

2.1.5. Optimization Toolbox

Proporciona diversos algoritmos y técnicas para solucionar problemas de optimización no lineales, tanto generales como a gran escala.

2.1.6 Spline Toolbox

Mediante un interface gráfico proporciona funciones para el ajuste de datos, visualización, interpolación y extrapolación mediante técnicas spline.

Page 21: RESUMEN - RIUD

28

2.1.7 Partial Differential Equation Toolbox

De aplicación en la solución de problemas en muchos campos de la física y

la ingeniería: transferencia de calor, flujo en medios porosos, medios conductores, cálculo de esfuerzos y fatigas en estructuras, campos magnéticos, etc. Usa el método FEM (Método de los Elementos Finitos que incorpora el algoritmo de triangulación de Delaunay) para solucionar ecuaciones diferenciales parciales

2.1.8 Neural Network Toolbox

Proporciona las versiones más comunes de paradigmas y algoritmos para el diseño y simulación de redes neuronales. Incluye bloques de Simulink para poder usar esta toolbox en aplicaciones de control y simulación de sistemas. Incluye ejemplos de control predictivo y control adaptativo. Entre las aplicaciones más comunes de las redes neuronales tenemos las técnicas de clasificación, predicción, filtrado, optimización, reconocimiento de patrones, aproximación a funciones, interpretación y clasificación de imágenes. (Cesar, 2002)

2.2 Guide.

Matlab dentro de sus ayudas trae una interfaz gráfica llamada Guide (GUI – Graphical User Interface en Inglés), es la forma en que el usuario interactúa con el programa o el sistema operativo de una computadora. Un GUI contiene diferentes elementos gráficos tales como: botones, campos de texto, menús, gráficos, etc.

Existen diferentes lenguajes de programación que permiten crear una GUI tales como: C, Visual Basic, TK, etc. Solo por mencionar algunos. Todos ellos permiten usar diferentes controles y maneras de programarlos. Matlab permite realizar GUIs de una manera muy sencilla usando GUIDE (Graphical User Interface Development Enviroment).

Una de las tantas herramientas con la que cuenta Matlab, es la creación de GUIs. La forma de implementar las GUI con Matlab es crear los objetos y definir las acciones que cada uno va a realizar. Al usar GUIDE obtendremos dos archivos: un archivo FIG, contiene la descripción de los componentes que contienen la

Page 22: RESUMEN - RIUD

29

interface, también obtendremos un archivo M, contiene las funciones y los controles del GUI así como el callback. Un callback se define como la acción que llevara a cabo un objeto de la GUI cuando el usuario lo active. (Catarina)

Page 23: RESUMEN - RIUD

30

3 DESARROLLO DE APLICACIÓN

Para el desarrollo del proyecto era necesario buscar una aplicación de software libre que pudiera generar enmallados triangulares a geometrías sencillas y cuya información de nodos y conectividades fuera fácilmente exportable en un archivo de texto, dado a que los alcances del proyecto no se contemplaba la posibilidad de generar una aplicación de dibujo, por ende se escogió el programa Gmsh, una aplicación libre que cumplía con los requisitos que se buscaba para la generación de mallas en elementos de geometría sencilla. A partir de allí se empezó a relacionar la teoría de los elementos finitos a través de los conceptos de esfuerzo y deformación plana y como se desarrollan las ecuaciones que describen estos comportamientos a través de la relación del número de nodos, conectividades y elementos en los que se categoriza el problema a resolver.

Teniendo en cuenta la teoría de esfuerzos y deformaciones planas se procedió a usar el programa Matlab para generar la aplicación que importara los archivos de texto que contienen la información de nodos y conectividades de la geometría previamente realizada en Gmsh y pudiera procesarla. Después en base a datos adicionales con respecto a las restricciones del problema tanto en X como en Y y su ubicación en los correspondientes nodos se pudiera generar las soluciones y mostrarlos a través de tablas especificando diferentes esfuerzos tanto principales como de Von misses y sus deformaciones.

Entonces se empezó a trabajar en matlab el código generalizado para cualquier problema básico enmallado en Gmsh y se empezó a trabajar en la interfaz de usuario para que el programa fuera lo más sencillo posible y amable con el usuario final, el estudiante que necesite desarrollar problemas básicos de Resistencia de materiales.

3.1. Gmsh

GMSH, software libre. Genera malla de elementos finitos 3D con una acumulación en CAD motor y post-procesador. Su objetivo de diseño es proporcionar un rápido, ligero y una herramienta de mallado fácil de usar con entrada paramétrico y capacidades de visualización avanzadas. Gmsh se basa en cuatro módulos: geometría, malla, solucionador y post-procesamiento. La especificación de cualquier entrada a estos módulos se realiza de forma interactiva utilizando la interfaz gráfica de usuario o en archivos de texto ASCII utilizando el propio lenguaje de scripting de Gmsh.

Page 24: RESUMEN - RIUD

31

Sus creadores son Christophe Geuzaine y Jean-François Remacle.

Una malla de elementos finitos es una teselación de un subconjunto dado del espacio tridimensional por elementos elementales geométricas de diversas formas (en el caso de Gmsh: líneas, triángulos, cuadriláteros, tetraedros, prismas, hexaedros y pirámides), dispuestas de tal manera que si dos de ellos se cruzan, lo hacen a lo largo de una cara, un borde o un nodo, y nunca lo contrario. Todas las mallas de elementos finitos producidos por Gmsh son considerados como "no estructurados", incluso si se han generado de forma "estructurada" (por ejemplo, por extrusión). Esto implica que los elementos geométricos elementales se definen solamente por una lista ordenada de sus nodos pero que no relación de orden predefinido se supone entre dos elementos.

La generación de mallas se realiza en el mismo flujo de abajo hacia arriba como la creación de geometría: líneas se discretiza primero; la malla de las líneas se utiliza entonces para engranar las superficies; a continuación, la malla de las superficies se utiliza para engranar los volúmenes. En este proceso, la malla de una entidad sólo está limitada por la malla de su límite. Por ejemplo, en tres dimensiones, los triángulos discretizar una superficie se verán obligados a ser caras de tetraedros en la malla final 3D sólo si la superficie es la parte del límite de un volumen; los elementos de línea discretizar una curva se verán obligados a ser bordes de tetraedros en la malla final 3D sólo si la curva es la parte del límite de una superficie, en sí parte de la frontera de un volumen; un solo nodo discretizar un punto en el medio de un volumen se verá obligado a ser un vértice de uno de los tetraedros en la malla 3D definitiva sólo si este punto está conectado a una curva, en sí parte de la frontera de una superficie, en sí mismo parte del límite de un volumen. Esto asegura automáticamente la conformidad de la malla cuando, por ejemplo, dos superficies comparten una línea común. Pero esto también implica que la discretización de un ("aislado" n -1) -ésimo entidad dimensiones dentro de un n-ésimo dimensiones entidad no limitar el n -ésimo malla de menos dimensiones que es dijo explícitamente a hacerlo (ver malla Varios comandos). Cada paso mallado se ve limitada por un "campo de tamaño" (a veces llamado "campo de longitud característica"), que prescribe el tamaño deseado de los elementos de la malla. Este campo de tamaño puede ser uniforme, especificado por los valores asociados con puntos en la geometría, o definido por "campos" generales (por ejemplo relacionado con la distancia hasta cierto límite, a un campo escalar arbitraria definida en otro de malla, etc.).

Page 25: RESUMEN - RIUD

32

3.2 Diagrama de Flujo

En todo desarrollo de aplicaciones se necesita saber el orden lógico y la secuencia de pasos del algoritmo que se va programar, para este caso en Matlab Guide para la realización de la aplicación. Para el siguiente diagrama de flujo se basó en la teoría expuesta en capítulo 6 A First Course in the Finite Element Method de Daryl Logan, en donde se encuentra la teoría sobre tensiones y deformaciones planas con en mallado triangular.

A partir de allí se pensó en la lógica de las expresiones generalizadas para la solución de los problemas basados en Elementos Finitos y se planteó el código que representara dicha teoría, a través del diagrama de flujo se pudo plantear un primer bosquejo de los que se programaría en Matlab.

A continuación se muestra el diagrama de flujo que se pensó en para explicar el algoritmo que se iba a implementar en el código de Matlab, cabe aclarar que este código es solo para el algoritmo interno que realiza los cálculos de esfuerzos y deformaciones planas.

Page 26: RESUMEN - RIUD

33

Page 27: RESUMEN - RIUD

34

Continuación

Page 28: RESUMEN - RIUD

35

Continuación

3.3 Explicación de Código

Se presenta el código base en Matlab que se usa para realizar los cálculos de esfuerzos y deformaciones después de haber generado los archivos nodos.txt y conec.txt con el enmallador usado, en este caso el Gmsh. Este código luego se implementa bajo la plataforma GUIDE de Matlab para generar una interfaz gráfica que sea amable con el usuario final que use la aplicación.

A continuación despúes de cada línea del signo porcentaje (%) se explica la función que tiene dentro del código.

1. [filename pathname] = uigetfile({'*.txt'},'File Selector')

2. fullpathname1 = strcat(pathname, filename) 3. nodos = load(fullpathname1) 4. x= nodos([2:end],2);% luego de tener cargado el archivo

nodos, esta línea carga en forma de columna las

No Si

i = nel? No elementos, Esfuerzos

principales y Von misses

Matriz de

desplazamieto U(i)

i = 2*nnod Desplazamientos

Final

Page 29: RESUMEN - RIUD

36

coordenadas en el eje Y de los nodos del enmallado de la

figura importada del programa Gmsh.

5. X=x';% la columna de las coordenadas X se convierte en fila

6. y=nodos([2:end],3); % esta línea carga en forma de columna las coordenadas en el eje Y de los nodos del

enmallado de la figura importada del programa Gmsh.

7. Y=y'; % la columna de las coordenadas Y se convierte en fila.

8. nnod=length(x);% el programa obtiene el número de nodos de la figura importada.

9. set(handles.Nodos,'String',nnod);En pantalla se muestra a través de un static text el número de nodos hallados

anteriormente por nnod.

En esta parte de código lo que se hace con el comando [filename pathname]

es llamar al cualquier archivo de texto de cualquier nombre en cualquier directorio, lo que se busca es que se cargue el archivo .txt que contenga la información de los nodos sin importar su ubicación ni su nombre para facilitar el proceso.Luego se carga el archivo con el comando “load” y se le asigna a una variable x.

10. [filename pathname] = uigetfile({'*.txt'},'File

Selector')%

11. fullpathname = strcat(pathname, filename)

12. conec=load(fullpathname);

13. C=conec([10:end],[6:end]); % luego de tener cargado

el archivo conec, esta línea carga de este archivo en

forma de matriz la cantidad de elementos que conforma la

conectividad del enmallado de la figura importada de

Gmsh.

14. nel =length(C); %el programa obtiene el número de

elementos tringulares que conforma el enmallado de la

figura importada.

15. set(handles.Elementos,'String',nel);este commando

muestra en pantalla a través de un static text el número

de elementos del archivo importado mostrando el

resultado hallado anteriormente por nel

Ahora se carga el archivo de conectividad de la misma forma que el archivo de

nodos, sin importar su nombre o directorio a partir de los comandos [filename

pathname] y load se lee la información del archivo y se calculas el número de

Page 30: RESUMEN - RIUD

37

elementos como el número de elementos contenidos en la matriz C a través de lenght(C), este también se muestra en un static text a través del comando set.

16. for i=1:nel, % este ciclo for halla las áreas de

todos los elementos triangulares que conforma el

enmallado de la figura importa. En este ciclo se usa la

teoría de hallar el área según la teoría de elementos

finitos, a partir de

| |;es decir un medio del

valor absoluto del determinante de la matriz del

jacobiano.

A(i)=abs(det([1,x(C(i,1)),y(C(i,1));1,x(C(i,2)),y(C(i,2));1,x

(C(i,3)),y(C(i,3))])/2);

end

17. for i=1:nel, % este ciclo for halla los coeficientes que se usan para

las funciones de forma los alfa, beta y gama de cada elemento recordando

que en la teoría estos se les llama , estos se

calculan en base a las filas de nodos y las variables x e y que contienen dicha información, lo que se hace es llamar uno por uno cada elemento de dicha fila y ubicarlo u operarlo como se especifica en cada línea de código, de tal manera que se obtienen estos nueve coeficientes para cada elemento. En la siguiente formula se ilustra el cálculo de los coeficientes:

a1=x(C(i,2))*y(C(i,3))-x(C(i,3))*y(C(i,2));

b1(i)=y(C(i,2))-y(C(i,3));

c1(i)=x(C(i,3))-x(C(i,2));

a2=x(C(i,3))*y(C(i,1))-x(C(i,1))*y(C(i,3));

b2(i)=y(C(i,3))-y(C(i,1));

c2(i)=x(C(i,1))-x(C(i,3));

a3=x(C(i,1))*y(C(i,2))-x(C(i,2))*y(C(i,1));

Page 31: RESUMEN - RIUD

38

b3(i)=y(C(i,1))-y(C(i,2));

c3(i)=x(C(i,2))-x(C(i,1));

end

18. B1=zeros(2*nnod,2*nnod); % crea una matriz de ceros

del tamaño del doble de la cantidad de nodos que será la

matriz global en donde se calcularán los efectos de las

fuerzas y restricciones sobre todo el conjunto.

19. for i=1:nel

BB=zeros;

B=zeros(2*nnod,2*nnod);

BT=zeros(6,6);

BB=(1/(2*A(i)))*[b1(i) 0 b2(i) 0 b3(i) 0;0 c1(i) 0

c2(i) 0 c3(i);c1(i) b1(i) c2(i) b2(i) c3(i) b3(i)];

D=(E/(1-rp^2))*[1 rp 0;rp 1 0;0 0 0.5*(1-rp)];

BBT=BB';

BT=BBT*D*BB;

BT;

%fila 1

B(2*C(i,1)-1,2*C(i,1)-1)=BT(1,1);

B(2*C(i,1)-1,2*C(i,1))=BT(1,2);

B(2*C(i,1)-1,2*C(i,2)-1)=BT(1,3);

B(2*C(i,1)-1,2*C(i,2))=BT(1,4);

B(2*C(i,1)-1,2*C(i,3)-1)=BT(1,5);

B(2*C(i,1)-1,2*C(i,3))=BT(1,6);

%fila 2

B(2*C(i,1),2*C(i,1)-1)=BT(2,1);

B(2*C(i,1),2*C(i,1))=BT(2,2);

B(2*C(i,1),2*C(i,2)-1)=BT(2,3);

B(2*C(i,1),2*C(i,2))=BT(2,4);

B(2*C(i,1),2*C(i,3)-1)=BT(2,5);

B(2*C(i,1),2*C(i,3))=BT(2,6);

%fila 3

B(2*C(i,2)-1,2*C(i,1)-1)=BT(3,1);

B(2*C(i,2)-1,2*C(i,1))=BT(3,2);

B(2*C(i,2)-1,2*C(i,2)-1)=BT(3,3);

B(2*C(i,2)-1,2*C(i,2))=BT(3,4);

B(2*C(i,2)-1,2*C(i,3)-1)=BT(3,5);

Page 32: RESUMEN - RIUD

39

B(2*C(i,2)-1,2*C(i,3))=BT(3,6);

%fila 4

B(2*C(i,2),2*C(i,1)-1)=BT(4,1);

B(2*C(i,2),2*C(i,1))=BT(4,2);

B(2*C(i,2),2*C(i,2)-1)=BT(4,3);

B(2*C(i,2),2*C(i,2))=BT(4,4);

B(2*C(i,2),2*C(i,3)-1)=BT(4,5);

B(2*C(i,2),2*C(i,3))=BT(4,6);

%fila 5

B(2*C(i,3)-1,2*C(i,1)-1)=BT(5,1);

B(2*C(i,3)-1,2*C(i,1))=BT(5,2);

B(2*C(i,3)-1,2*C(i,2)-1)=BT(5,3);

B(2*C(i,3)-1,2*C(i,2))=BT(5,4);

B(2*C(i,3)-1,2*C(i,3)-1)=BT(5,5);

B(2*C(i,3)-1,2*C(i,3))=BT(5,6);

%fila 6

B(2*C(i,3),2*C(i,1)-1)=BT(6,1);

B(2*C(i,3),2*C(i,1))=BT(6,2);

B(2*C(i,3),2*C(i,2)-1)=BT(6,3);

B(2*C(i,3),2*C(i,2))=BT(6,4);

B(2*C(i,3),2*C(i,3)-1)=BT(6,5);

B(2*C(i,3),2*C(i,3))=BT(6,6);

B=B*t*A(i);

B1=(B1+B);

end

20. B1; % En estas líneas se crea la matriz global que

es la matriz que encierra a todo el ejercicio que se

esté planteando y la que se usa para hallar luego los

esfuerzos y deformaciones, esta se crea a partir de B1

la cual va a hacer una matriz cuadrada de 2 veces el

número de nodos. Se crea también otra matriz similar

llamada B que es la matriz local para cada elemento del

sistema desde 1 hasta i será una matriz de ceros en la

que después se irán reemplazando uno a uno los valores

de las conectividades para cada elemento, estos valores

Page 33: RESUMEN - RIUD

40

de dicha matriz B serán reemplazados en las matrices de

funciones de forma de cada elemento, se crea una matriz

de 6x6. Para reemplazar cada uno de estos valores y se

crea BT, que es una matriz de ceros de 6x6, se halla BB

como:

{ } [

]

{

}

D como:

[ ]

[

]

BBT que es la traspuesta de BB y después se halla BT como

BBT*D*BB y se forma las funciones de forma reemplazando los

valores de B en BT, las líneas de comando de las filas

representan como se reemplazan los valores de la matriz B en

BT para obtener las funciones de forma para cada elemento

propuesto.

21. Z=max(B1(:));

22. CP=10e4*Z;

CP es el método de penalización para las restricciones,

consiste en que cuando se incluyan las restricciones en la

matriz global, esta restricción se reemplace en la posición

que se necesite y se le sume el CP, esto hace que los valores

grandes en estas posiciones anulen su valor y se eliminen las

filas y columnas en donde actúan las restricciones del

problema, de tal forma que al hallar los valores de esfuerzos

y deformciones estos valores no se tengan en cuenta y se

halen de una manera mas eficientes lo valores que se buscan.

Page 34: RESUMEN - RIUD

41

23. RT=str2double(get(handles.NRestricciones,'string'))

;

24. N(1)=str2double(get(handles.N1,'string'));

25. B1(2*N(1)-1,2*N(1)-1)=B1(2*N(1)-1,2*N(1)-1)+CP;

B1(2*N(1),2*N(1))=B1(2*N(1),2*N(1))+CP

RT es el número de restricciones tanto en X como en Y que

tiene el problema, lo que se hace es a partir de un edit text

escribir el número de restricciones y su localización en los

nodos, a partir de ello se reemplazan dichos valores en la

matriz global y se aplica el teorema de la penalización

descrito anteriormente para anular las filas y columnas que

contengan esta información y así agilizar los cálculos.

26. N(2)=str2double(get(handles.N2,'string'));

if RT==1

B1;

elseif N(2)==0

B1;

else

B1(2*N(2)-1,2*N(2)-1)=B1(2*N(2)-1,2*N(2)-1)+CP;

B1(2*N(2),2*N(2))=B1(2*N(2),2*N(2))+CP

end

27. N(3)=str2double(get(handles.N3,'string'));

if RT<=2

B1;

elseif N(3)==0

B1;

else

B1(2*N(3)-1,2*N(3)-1)=B1(2*N(3)-1,2*N(3)-1)+CP;

B1(2*N(3),2*N(3))=B1(2*N(3),2*N(3))+CP;

end

En estas líneas para cada edit text, el máximo de

restricciones son tres etiquetados como N1, N2 y N3, con sus

debidas restricciones en caso de que solo exista una o dos

restricciones y el programa opere sin que falte algún valor,

ello se hace a través del ciclo if que opera dependiendo del

número de restricciones que existan.

Page 35: RESUMEN - RIUD

42

RTY es el número de restricciones que tenga el ejercicio en

el eje Y, de igual forma a través de tres Edit text se

incorpora la información del número de restricciones y y de

la localización en los nodos, igualmente se reemplaza esta

información en la matriz global y se emplea nuevamente el

teorema de la penalización.

28. RTY=str2double(get(handles.RY,'string'));

29. N(4)=str2double(get(handles.RY1,'string'));

B1(2*N(4),2*N(4))=B1(2*N(4),2*N(4))+CP;

30. N(5)=str2double(get(handles.RY2,'string'));

if RTY==1

B1;

elseif N(2)==0

B1;

else

B1(2*N(5),2*N(5))=B1(2*N(5),2*N(5))+CP;

end

31. N(6)=str2double(get(handles.RY3,'string'));

if RTY<=2

B1;

elseif N(3)==0

B1;

else

B1(2*N(6),2*N(6))=B1(2*N(6),2*N(6))+CP;

end

B1;

El programa se ha restringido hasta un máximo de 3 nodos de

restricción total, pueden ser más pero se ha considerado un

número apropiado para problemas sencillos. El número de

restricciones se lee a través de get que toma el valor de un

edit text previamente colocado en guide, también se obtiene a

través de varios edit text los nodos en los cuales existe la

restricción total; se han colocado condicionales if en los

Page 36: RESUMEN - RIUD

43

casos en los que no se usen una o más casillas tanto de las

restricciones totales como de las restricciones en y con el

objetivo de que su valor cero no interfiera en los cálculos

de la matriz global y el programa no genere error en sus

cálculos. Una vez obtenidos los valores de las restricciones

totales, sus nodos y de las restricciones en Y y sus nodos,

estos se reemplazan en ciertas posiciones de la matriz global

a través del uso de los valores de N(1) hasta N(5) con el

objeto de agregar los efectos de las restricciones para los

posteriores cálculos que se realicen con la matriz global.

32. s=size(B1);

33. F=zeros(s(1,1),1);

34. fu(i)=str2double(get(handles.U,'string'))

35. Fuerza(i)=str2double(get(handles.F,'string'))

36. F(fu(i),1)=Fuerza(i)

En esta parte lo que se hace es mirar el valor de la fuerza

que se aplica, en que nodo se aplica y como se genera la

matriz para que pueda operar en el cálculo de la matriz U

operándolo con la matriz global, esto se hace a través de un

edit text en donde se obtiene su valor a través de del

comando get y de su ubicación, a partir de ello se genera una

matriz de (B,1) de ceros en donde se reemplaza según la

ubicación dada por el usuario el valor de la fuerza.

37. U=(B1)\F

38. for i=1:nel

BB=zeros;

BB=(1/(2*A(i)))*[b1(i) 0 b2(i) 0 b3(i) 0;0 c1(i) 0 c2(i)

0 c3(i);c1(i) b1(i) c2(i) b2(i) c3(i) b3(i)];

D=(E/(1-rp^2))*[1 rp 0;rp 1 0;0 0 0.5*(1-rp)];

UE=[U(2*C(i,1)-1,1);U(2*C(i,1),1);U(2*C(i,2)-

1,1);U(2*C(i,2),1);U(2*C(i,3)-1,1);U(2*C(i,3),1)];

ESF=(D*BB*UE);

SX=ESF(1,1);

SY=ESF(2,1);

TXY=ESF(3,1);

ex=(SX-rp*SY)/E;

Page 37: RESUMEN - RIUD

44

S1=((SX+SY)/2)+(((SX-SY)/2)^2+TXY^2)^0.5;

S2=((SX+SY)/2)-(((SX-SY)/2)^2+TXY^2)^0.5;

SV=(S1^2+S2^2-S1*S2)^0.5;

AB(i,1)=i;

AC(i,1)=ESF(1,1);

AD(i,1)=ESF(2,1);

AE(i,1)=ESF(3,1);

AF(i,1)=S1;

AG(i,1)=S2;

AH(i,1)=SV;

set(handles.uitable2,'Data',[AB,AC,AD,AE,AF,AG,AH]);

end

Se realiza la operación de U con la matriz global B que ya

tiene en su interior los efectos de las restricciones totales

y de las restricciones en Y junto con sus respectivos nodos y

la matriz F que contiene el valor de la fuerza y la ubicación

sobre el nodo en el cual se ha aplicado.

Luego a través del ciclo for para cualquier número de

elementos se calcula la matriz de rigidez y se calculan los

valores de los esfuerzos en x, y, los esfuerzos principales y

los de Von misses en donde finalmente los resultados se

muestran en una tabla que muestra los resultados del proceso

para cualquier número de elementos.

39. for i=1:2*nnod

AI(i,1)=i;

AJ(i,1)=U(i);

set(handles.uitable3,'Data',[AI,AJ]);

end

Finalmente se muestran los valores de las deformaciones, para ello se hace que se muestren los valores de la matriz U cuyo contenido tiene los valores de las deformaciones, estas deformaciones al ser 2 veces el número de nodos representan en total las deformaciones en x e y de cada nodo y estas son representadas mediante una tabla.

Page 38: RESUMEN - RIUD

45

3.4. Desarrollo de interfaz de usuario

Para el desarrollo de la interfaz de usuario se manejó la plataforma Guide de Matlab, en la cual se pueden crear diversas entradas de datos a través de ventanas de static, push button, gráficas y demás que pueden ser programadas para una entrada específica de datos o para hacer cálculos y asociarlos a líneas de cálculo y pudiendo exportar dichos resultados en tablas o gráficas.

La ventaja que ofrece realizar la aplicación en Guide radica en que se puede realizar la plataforma de manera estética, agradable, que sea fácil de manejar y que además permite crear un archivo ejecutable que englobe toda la interfaz y las memorias de cálculo de tal manera que se pueda distribuir de forma libre sin necesidad de tener Matlab instalado en otros computadores.

Al iniciar Guide a través del comando guide en el command window de Matlab, aparece la siguiente ventana mostrada en la figura:

Figura 4. Interfaz Guide.

Fuente: Autores

Page 39: RESUMEN - RIUD

46

En el panel izquierdo se ven las herramientas básicas con las que se trabaja en guide, a continuación se muestra cuáles fueron las herramientas que se usaron en el desarrollo de la interfaz gráfica:

Un Push Button es un botón programable al que se le puede asociar un algoritmo de solución después de dadas unas entradas previas y que a su vez se conecta con la salida que bien pueda ser un resultado numérico, una tabla o una gráfica.

Un Edit Text es una herramienta que permite la entrada de datos alfanumérico y que se convierte en la entrada que se asocia a los algoritmos que se quieren ejecutar, este tipo de herramienta tiene una tag o etiqueta modificable y que es llamada en los códigos de ejecución por el programador.

Un Static Text es una herramienta que se utiliza generalmente para acompañar al Edit Text y que sirve de referencia a la entrada de datos, por ejemplo si en un static text se quiere de entrada un valor de estatura, el static text se encarga de etiquetar esa entrada como “estatura”. A diferencia del edit text el static text no se puede modificar una vez ejecutado el programa.

Table Es una herramienta que genera una tabla en la que se puede exportar datos de salida después de ejecutado el programa, tiene un tag editable que puede ser llamado mediante líneas de código y puede configurarse para que muestre e orden los resultados esperados.

Axes, es una herramienta que permite mostrar imágenes dentro del aplicación al ejecutarse, este se configura en unas líneas de código en donde solo es necesario poner el nombre del archivo a cargar.

Al tener claro que era lo que se iba a utilizar entonces se empezó a formar lo que sería el croquis de la interfaz de ususario, una vez terminado esto en la figura 5 se aprecia cómo queda el esqueleto de la aplicación:

Page 40: RESUMEN - RIUD

47

Figura 5. Interfaz desarrollada en Guide.

Fuente: Autores

Adicionalemte se creó un menú, el propósito de este menú era el de tener datos precargados que contienen información sobre las propiedades de ciertos materiales que se usan con frecuencia en los problemas de resistencia de materiales, propiedades tales como Relación de Poisson y Módulo de Young además de dejar un botón que cargue las instrucciones del usuario (ver anexo A) para el manejo de la aplicación

Para la configuración de esta barra de menú se utilizó el botón menú editor , al usarlo se genera automáticamente la barra de menú y se empiezan a editar los botones y el contenido de ellos se muestra en la figura 6:

Page 41: RESUMEN - RIUD

48

Figura 6. Menús y submenús

Fuente: Autores

Como se observa en la figura se crea un botón principal que es de M Young (Gpa) y sub menús con los materiales: cobre, acero, etc y dentro de ese submenú, otro submenú que contiene la información de los distintos valores que puede tener el módulo de Young para esos materiales.

Y se configuró cada uno de los callbacks para llamar las entradas (edit text) en las líneas de comando.

Page 42: RESUMEN - RIUD

49

Una vez ejecutado la aplicación se ve de la siguiente ilustrado en la figura 7:

Figura 7. Interfaz desarrollada en Guide.

Fuente: Autores

Y una vez agregados los valores correspondientes al problema que se quiera solucionar, la interfaz muestra los resultados en la figura 8:

Page 43: RESUMEN - RIUD

50

Figura 8. Interfaz en Guide con valores de un ejercicio.

Fuente: Autores

Page 44: RESUMEN - RIUD

51

4. COMPARACIÓN DE RESULTADOS CON ANSYS.

Los siguientes ejercicios son siguientes datos son los valores resultantes luego de realizar el análisis de esfuerzo con los datos de entrada anteriormente dados.

El resultado de esfuerzos en programa realizado en Matlab se da en cada elemento en los ejes X y Y, también se encuentran los esfuerzos cortantes, principales y de vonmisses. En el programa de Ansys en cambio los resultados

El resultado de deformación se da en cada nodo del cuerpo analizado en los ejes X y Y intercaladamente.

Ejercicio 1.

Se realiza un análisis de un cuerpo de placa delgada de las siguientes

dimensiones:

30x20x0.5

Se tomaron las siguientes propiedades de material acero a-36:

Relación de poisson 0.27

Modulo de Young 200Gpa

Estableciendo una restricción total en los nodos 1 y 4, se aplica una carga de -

450000 en el nodo 3 en el eje y.

Teniendo los datos anteriores como valores de entrada del ejercicio se encontró

los siguientes resultados.

Aplicación

- Esfuerzo

Los siguientes resultados son los obtenidos por el programa Matlab, se encuentra

los esfuerzos de los cuatro elementos del ejercicio realizado.

Page 45: RESUMEN - RIUD

52

Tabla 1. Resultados de esfuerzo ejercicio 1 en aplicación.

Fuente: Autores

- Deformación

El siguiente resultado es la deformación del cuerpo analizado en términos de

desplazamiento de cada nodo por su grado de libertad.

Tabla 2 Resultados de deformación ejercicio 1 en aplicación.

Fuente: Autores

Page 46: RESUMEN - RIUD

53

Ansys

Figura 9. Cuerpo plano de 4 elementos y 5 nodos.

Fuente: Ejercicio elaborado en Ansys

- Esfuerzo

Tabla 3. Resultado de esfuerzos en Ansys ejercicio 1

Fuente: Ejercicio elaborado en Ansys

Page 47: RESUMEN - RIUD

54

- Deformación

Tabla 4. Resultado de deformación en Ansys, ejercicio 1

Fuente: Ejercicio elaborado en Ansys

Ejercicio 2.

Se realiza un análisis de una placa delgada de las siguientes dimensiones:

90x30x0.5

Se tomaron las siguientes propiedades de material:

Relación de poisson 0.31

Modulo de Young 110Gpa

Estableciendo una restricción total en los nodos 1 y 8, se aplica una carga de -

65000 en el nodo 5 en el eje y.

Teniendo los datos anteriores como valores de entrada del ejercicio se encontró

los siguientes resultados.

Page 48: RESUMEN - RIUD

55

Aplicación

- Esfuerzo

Tabla 5. Resultados de esfuerzo ejercicio 2 en aplicación.

Fuente: Autores

- Deformación

-

Tabla 6 Resultados de deformación, ejercicio 2 en Aplicación.

Fuente: Autores

Page 49: RESUMEN - RIUD

56

Ansys

Figura 10. Cuerpo plano de 6 elementos y 8 nodos

Fuente: Ejercicio elaborado en Ansys

- Esfuerzo

Tabla 7. Resultado de esfuerzos en Ansys ejercicio 2

Page 50: RESUMEN - RIUD

57

- Deformación

Tabla 8. Resultado de deformación en Ansys, ejercicio 2

Fuente: Ejercicio elaborado en Ansys

Page 51: RESUMEN - RIUD

58

5. CONCLUSIONES

- Se logró realizar un código de programación en Matlab que permitiera adaptar la teoría de los esfuerzos y deformaciones planas dando como resultado una primera aproximación a la aplicación deseada.

- Se creó una interfaz gráfica acorde a los objetivos del proyecto realizado en la plataforma Guide Matlab y a partir de ello se generó una plataforma para editar distintos problemas de acuerdo a parámetros de material, con posibles combinaciones de restricciones y fuerzas que pueden ser calculadas con unos valores muy aproximados al programa Ansys

- Con el uso de un enmallador libre como el Gmsh y el archivo ejecutable del programa realizado en este proyecto, se puede hacer uso de este sin necesidad de licencia alguna en cualquier computador, abriendo de esta forma las posibles barreras de aprendizaje por cuestión económico.

- En términos de esfuerzo, los resultados en cada elemento son relativamente los mismos, solo se visibilizan una diferencia de una centésimas en el resultado final. Este se debe a la diferencia de aproximación que utiliza cada programa en sus cálculos.

- En la deformación, teniendo cifras de magnitud tan pequeñas, la aproximación de los cálculos conlleva a unos resultados similares mas no iguales, esto se debe a que Ansys maneja unas aproximaciones y cálculos diferentes en las deformaciones comparado con la teoría usada para este proyecto.

Page 52: RESUMEN - RIUD

59

Bibliografía

Catarina. (s.f.). catarina.udlap.mx. Recuperado el 20 de Julio de 2015, de

http://catarina.udlap.mx/u_dl_a/tales/documentos/lep/garcia_b_s/capitulo3.pdf.

Cesar, P. (2002). Matlab y sus aplicaciones en las ciencias y la ingeniería. Madrid: Prentice Hall.

CHANDUPATLA, T., & BELEGUNDU, A. (s.f.) (2001). INTRODUCTION TO FINITE ELEMENTS IN

ENGINEERING.

Javier, P. (s.f.). www.uhu.es. Recuperado el 23 de Agosto de 2014, de

http://www.uhu.es/javier.pajon/apuntes/finitos.pdf

Logan(2007), D. (s.f.). A first Course in the Finite Element Method. Wisconsin: Thomson.

pim. automation. (s.f.). Recuperado el 2 de Septiembre de 2014, de

http://www.plm.automation.siemens.com/es_es/plm/fea.shtml

Siemens. (2 de septiembre de 2014). plm.automation.siemens.com. Obtenido de

http://www.plm.automation.siemens.com/es_es/plm/fea.shtml

Universidad Nacional de Colombia. (s.f.). www.virtual.unal.edu.co. Recuperado el 14 de

septiembre de 2014, de

http://www.virtual.unal.edu.co/cursos/sedes/palmira/5000155/lecciones/lec2/2_5.htm

Page 53: RESUMEN - RIUD

60

ANEXOS

A. Guía instalación y manual de usuario.

A.1. Instalación

La aplicación genera un ejecutable que permite instalar los componentes básicos de Matlab en cualquier computador de tal manera que la aplicación pueda ser ejecutada sin necesidad de tener instalado el programa Matlab.

El instalador puede ser descargado desde el siguiente enlace http://www.mediafire.com/download/6or0ed4xsk69f2a/Nueva+carpeta.rar, el archivo tiene un peso total de 373 Mb y contiene fuera del instalador de la aplicación el enmallador Gmsh que es de uso gratuito y es portable por ende no es necesario instalarlo, con esto se asegura un correcto funcionamiento de aplicación. Una vez descargado el archivo aparecerá un archivo .rar cuya ventana muestra lo siguiente:

Page 54: RESUMEN - RIUD

61

Se descomprime el contenido del archivo .rar en cualquier carpeta y a continuación se ejecuta el archivo UDFCJ_pkg.exe, al ejecutarlo nos debe aparecer lo siguiente:

Y Nos pregunta Windows si queremos que la aplicación haga cambios en el computador y le decimos que sí. Una vez hecho esto empezará a descomprimirse el instalador

Al terminar nos aparecerá la ventana del instalador

Page 55: RESUMEN - RIUD

62

Aceptamos condiciones

Y le damos next y luego install

Page 56: RESUMEN - RIUD

63

Una vez instalado el gestor de recursos de Matlab nos debe aparecer un ejecutable con el logo de Matlab así como aparece en la figura

Este será nuestro archivo ejecutable de la aplicación al hacer doble click sobre él deberá abrirse la aplicación y listo ya hemos instalado la aplicación de esfuerzos y deformaciones y sirva para cualquier tipo de computador sin importar si tenga instalado o no Matlab.

Page 57: RESUMEN - RIUD

64

Page 58: RESUMEN - RIUD

65

A.2. Guía de usuario

Después de instalar la aplicación y de haber usado el Gmsh y separado en dos archivos .txt la información de nodos y conectividad del ejercicio, abrimos la aplicación

Para el uso de la aplicación se procede de la siguiente forma:

1. Identificamos el menú en la parte superior en donde encontraremos 2 pestañas principales: En la primera está el módulo de Young para diferentes materiales como hacer, cobre, aluminio, entre otros, estos están en unidades del sistema internacional en GPa. Para el ejercicio que vamos a usar de guía se usa de la siguiente forma:

Page 59: RESUMEN - RIUD

66

Al escoger uno de ellos automáticamente la casilla de Módulo de Young se llena con el valor que hemos escogido

Si el valor no está en el menú preestablecido, este se puede digitar directamente en la casilla sin ningún problema.

2. Identificamos luego el segundo botón del menú que es el de la relación de Poisson, de igual forma este contiene los valores típicos de dicha relación para diferentes materiales

Al escoger uno de ellos automáticamente la casilla de Relación de Poisson se llena con el valor que hemos escogido

Page 60: RESUMEN - RIUD

67

Si el valor no está en el menú preestablecido, este se puede digitar directamente en la casilla sin ningún problema.

3. Ingresamos el valor del espesor (tener en cuenta que esté se digita en unidades de milímetros)

4. Ahora procedemos a cargar la información de nodos y conectividades, para ello presionamos el botón No. De Nodos.

Se nos abrirá a continuación una ventana de búsqueda en donde iremos al directorio en donde en encuentre el archivo .txt que contenga la información de nodos.

Una vez encontrado el archivo le damos en abrir y automáticamente en la casilla en frente de No. De nodos aparece el número de nodos que contiene el problema a desarrollar y que se ha generado previamente en el Gmsh

Page 61: RESUMEN - RIUD

68

Ahora se procede a realizar el mismo procedimiento para las conectividades, para ello se presiona el botón No. De Elementos

Se nos abrirá a continuación una ventana de búsqueda en donde iremos al directorio en donde en encuentre el archivo .txt que contenga la información de conectividad.

Una vez encontrado el archivo le damos en abrir y automáticamente en la casilla en frente de No. De Elementos aparece el número de elementos que contiene el problema a desarrollar y que se ha generado previamente en el Gmsh

5. Se llena la información con respecto a las fuerzas: La cantidad de fuerzas (máximo 2), la ubicación y su valor: En caso de que sean negativas (es decir en vayan en sentido contrario o negativo tanto en el eje X como el eje Y) estas fuerzas se colocaran con signo negativo

Page 62: RESUMEN - RIUD

69

6. Después se procede a llenar la información con respecto a los nodos con restricción total (Restricción en X e Y) el No de nodos con restricción (Valores de 1 a 3 máx.) en la casilla No. Nodos, y en las casillas inferiores el número del nodo con dicha restricción.

7. Se procede a llenar la información con respecto a los nodos con restricción en Y, el No de nodos con restricción (Valores de 1 a 3 máx.) en la casilla No. Nodos, y en las casillas inferiores el número del nodo con dicha restricción.

8. Ahora vamos a la tabla de esfuerzos y al botón en la parte inferior que dice

“Calcular”, presionamos allí y nos aparece la ventana de directorio en donde cargaremos nuevamente los archivos .txt de nodos y conectividad en este orden (archivo nodos).txt y luego (archivo conectividad).txt.

Page 63: RESUMEN - RIUD

70

Page 64: RESUMEN - RIUD

71

Una vez cargados los archivos, el programa realizará los cálculos correspondientes y llenará la tabla con los resultados:

Ahora para el cálculo de las deformaciones en el botón calcular debajo de la tabla de deformaciones al pulsarla al igual que con los esfuerzos se deben cargar nuevamente los archivos .txt de nodos y conectividad en el mismo orden lógico usado anteriormente, después de hecho esto aparecer n el interior de la tabla las deformaciones del problema:

Page 65: RESUMEN - RIUD

72

B. Manual de Gmsh

Este es un manual básico para aprender como enmallar un modelo que sea necesario para luego poder obtener los datos de las coordenadas de sus nodos y los elementos triangulares

Como este es un programa libre se puede descargar desde este link: http://geuz.org/gmsh/

Allí, el usuario descarga el programa dependiendo el sistema operativo de donde lo va a instalar, se encuentra las opciones: Windows 32 bit y 64 bit, Linux 32 bit y 64 bit, Mac OS X y el código fuente.

Luego de haber instalado el programa correctamente en el equipo, al ejecutarlo se van a encontrar con este entorno

Page 66: RESUMEN - RIUD

73

Para comenzar un trabajo deben dirigirse a File>new y guardar el nuevo archivo en alguna ubicación.

Para comenzar un ejercicio se debe:

- Especificar los puntos de frontera de contorno del modelo a realizar. Se debe dirigir a Modules>Geometry>Elementary>entities>Add>Point, adicionar los coordenadas de los puntos a localizar, dando un click en Add cada vez que se ubique un punto.

- Luego de ubicar los puntos se traza las líneas del contorno del modelo a dibujar. Se debe dirigir a Modules>Geometry>Elementary>entities>Add>Straight line, y dar click en Straight line, debe dar click en el punto comienzo y en el punto final de la línea, así línea por línea hasta completar el modelo. El programa trae

Page 67: RESUMEN - RIUD

74

comandos de ayuda como “u” (undo) para retroceder el comando ejecutado, o “q” para abortar un punto escogido.

Page 68: RESUMEN - RIUD

75

- luego de tener el contorno completo, se debe establecer la superficie a este. Para esto se debe dirigir a Modules>Geometry>Elementary>entities>Add>Plane Surface, dar click en Plane Surface y dar click en las líneas anteriomente realizadas, enseguida si la selección es acertada se debe dar click en la letra “e” para confirmar y generar la superficie.

Page 69: RESUMEN - RIUD

76

- Luego de tener la superficie del modelo se puede realizar el enmallado respectivo. Para esto se debe dirigir a Modules>Mesh>2D. Dando click en “2D” se enmalla el modelo objetivo.

- Luego de terminar de enmallar el modelo, lo siguiente que nos interesa es poder obtener las coordenadas de los nodos de los elementos triangulares y la conectividad de los nodos para formar los elementos. Para esto se debe dirigir a Modules>Gmsh, dar click en Gmsh y escoger la opción de “edit”

Page 70: RESUMEN - RIUD

77

Éste nos va a generar un archivo de texto con los datos requeridos para utilizar luego en el programa ejecutable de Matlab para realizar el análisis de esfuerzo y deformación

Page 71: RESUMEN - RIUD

78

- Es de saber que de este archivo de datos que obtenemos debemos realizar 2 archivos independientes, uno para los nodos y otro para los elementos. Para los nodos toca dejar los datos hasta donde dice “$EndNodes”, pero cambiando los signos pesos ($) por signos de porcentaje (%), esto se debe a que el programa Matlab solo acepta ciertos caracteres dentro de su programación. Se guarda este archivo en un lugar que recuerdo para luego usar en Matlab.

Page 72: RESUMEN - RIUD

79

Ahora toca realizar el archivo de la conectividad de los nodos que conforman los elementos triangulares. Para esto es necesario entender lo que nos muestra el archivo generado por Gmsh. Este archivo contiene el número de elementos que conforma el modelo que hayamos hecho, es decir, puntos, líneas y triángulos. Estos elementos se encuentran en la segunda columna después de la fila de “$Elements”, donde el 15 representa al punto, el 1 a la línea, y el 2 a los triángulos. Como lo que nos interesa son los elementos triangulares, entonces se debe dejar solo las filas en que se encuentre el número 2 en la segunda columna. Estas filas obtenidas en sus últimas tres columnas contiene la conectividad de los nodos de los elementos del modelo a analizar. Teniendo estos valores escogidos, se guarda el nuevo archivo en una ubicación conocida para usar luego en el programa Matlab.

Page 73: RESUMEN - RIUD

80

Este programa dentro de sus grandes funciones, tiene la posibilidad de poder cambiar el tamaño de los elementos triangulares los cuales van a componer el modelo a analizar luego. Esto sirve nos sirve comparar los resultados de las deformaciones y esfuerzos con diferentes cantidades de elementos.

Para realizar esta modificación de elementos se debe hacer los siguientes pasos:

- Ir a la siguiente ubicación, Tools>options, dar click en options, en el recuadro que va a aparecer, de las opciones que salen al costado izquierdo dar click en Mesh, luego dar click en General, luego modificar el recuadro de Element factor size con un determinado valor del elemento.

Page 74: RESUMEN - RIUD

81