El analizador truss 3D FEM produce fuerzas que no suman cero en las juntas

2

Estoy escribiendo un código para el análisis de estructuras truss 3D. El programa es una implementación típica del método de rigidez directa para elementos de celosía. Mientras lo probaba y comparaba los resultados con otros programas de FEM, me encontré con el siguiente problema.

Cuando tengo una unión con elementos de armadura de fuerza cero (por ejemplo, una unión donde se encuentran 3 elementos de armadura no coplanar), las fuerzas en estos elementos no son iguales a cero, lo que contradice la ecuación de equilibrio de la unión. Esto solo sucede para las armaduras espaciales. Cuando considero las celosías planas y agrego juntas de fuerza cero (por ejemplo, una junta donde se encuentran dos elementos de celosía no colineales), todo funciona bien.

No puedo ver qué causa este problema. ¿Quizás se necesita alguna forma adicional de condensación estática para la carcasa 3D?

Mi proceso de pensamiento es que si la fuerza en un elemento es igual a cero, eso significa que , donde y son los desplazamientos axiales de ese elemento, expresados ​​en su sistema de coordenadas local. En pocas palabras, sin alargamiento significa sin fuerza. Por supuesto, todo el elemento se puede desplazar solo de manera rígida, si es que lo hace.uiuj=0uiuj

El problema parece ser el siguiente. Suponga que tiene una armadura 3D definida, sin miembros de fuerza cero. Adjunte 3 elementos (es decir, un tetraedro, que es estable por sí mismo) para que toda la armadura sea estable nuevamente. Suponga que la unión donde estos elementos se encuentran está descargada, por lo tanto, todas las fuerzas en los elementos agregados deben ser iguales a cero. Por supuesto, los otros desplazamientos y fuerzas en la armadura no se ven afectados por esto, solo actúa de la misma manera sin los tres elementos adicionales. Por lo tanto, la armadura de alguna manera necesitaría "saber" que debe ser desplazada de tal manera que ninguno de los tres miembros sea alargado (o contraído), es decir, solo pueden ser desplazados como un todo, rígidamente.

Esto parece bastante extraño y sugiere que tal vez tales situaciones deberían tratarse antes del análisis. Por otra parte, el método de rigidez directa es, hasta donde yo sé, completamente general y debería ser capaz de calcular cualquier armadura.

Más adelante, para trusses 2D, esta situación no parece surgir en absoluto; Los miembros de fuerza cero siempre se reconocen correctamente por el método de rigidez directa.

A continuación se muestra un ejemplo de una armadura donde encuentro el problema. La imagen representa el etiquetado de elementos y nodos de la armadura.

Del equilibrio del nodo 10013 (el nodo superior), se deduce que las fuerzas en los elementos 112, 114 y 116 deben ser iguales a cero. Pero, el programa solo calculó la fuerza cero en el elemento 114. Las fuerzas en los elementos 112 y 116 son de orden de magnitud similar a las otras fuerzas en la armadura.

Cuando elimino los elementos 112, 114 y 116, todas las fuerzas en el truss se calculan correctamente en comparación con otro solucionador de FEM (hasta un 3% de diferencia, como se mencionó anteriormente).

Ejemplo de truss 3D

John Kimble
fuente
Eso parece extraño: si tiene un miembro en x, un miembro en y y un miembro en z, y una fuerza en x, ¿tiene fuerza en los miembros y / z, o solo en la x?
Marque el
¿Su código funciona si elimina manualmente el miembro de fuerza cero? ¿Es una situación en la que desea verificar si hay miembros de fuerza cero antes de comenzar el análisis?
Hazzey
Mark, no lo probé para el caso "ortogonal" que mencionaste, lo haré más tarde hoy.
John Kimble
Hazzey, el código funciona cuando elimino los miembros de fuerza cero. A veces hay diferencias (aproximadamente 1% - 3%) al comparar desplazamientos y fuerzas con otros paquetes de FEM, pero esto parece estar bien. Además, no estoy seguro de que deba implementar la verificación de fuerza cero antes de comenzar el análisis, ya que el método de rigidez directa es completamente general y debería reconocerlo automáticamente.
John Kimble
El hecho de que mencione la desviación me intriga. Como miembros de armadura de fuerza 0, no mediría la desviación para determinar fuerzas, ni volvería a calcular basándose en la desviación. Mi libro de FEA está de vuelta en la oficina, así que tendría que verlo por la mañana. Tratando todo como vigas flexibles, si tuviera una sola fuerza en la dirección de 110 en el nodo 10000, entonces definitivamente tendría una desviación registrada en 112 y 116 (y, por lo tanto, fuerzas) con una fuerza (mínima) en 114. Entonces, tal vez usted tener algo que siga actuando como "viga" cuando debería ser "armadura".
Marcar el

Respuestas:

4

Solo para hacerle saber, resolví el problema. Las matrices de rigidez del elemento tuvieron un error debido a un error tipográfico, ¡en realidad ni siquiera eran simétricas! Moraleja de la historia: es bueno probar la simetría cuando escribes una función que produce una matriz de rigidez de elementos. De todos modos, gracias a todos por sus esfuerzos y respuestas.

John Kimble
fuente