0% encontró este documento útil (0 votos)
152 vistas10 páginas

Informática Taller Corte3

Este documento presenta el método matricial de rigidez para calcular vigas continuas. Explica cómo se asigna una matriz de rigidez a cada barra y cómo mediante un algoritmo de acoplamiento se obtiene una matriz de rigidez global para relacionar los desplazamientos de los nudos con las fuerzas externas. Luego detalla los pasos para ingresar datos como el tipo de viga, cargas aplicadas y condiciones de apoyo, y realizar el cálculo para obtener diagramas de corte y momento flector.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
152 vistas10 páginas

Informática Taller Corte3

Este documento presenta el método matricial de rigidez para calcular vigas continuas. Explica cómo se asigna una matriz de rigidez a cada barra y cómo mediante un algoritmo de acoplamiento se obtiene una matriz de rigidez global para relacionar los desplazamientos de los nudos con las fuerzas externas. Luego detalla los pasos para ingresar datos como el tipo de viga, cargas aplicadas y condiciones de apoyo, y realizar el cálculo para obtener diagramas de corte y momento flector.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ESCUELA DE INGENIEROS MILITARES – ESING

Actividad Corte 3
(Cálculo de Vigas Continuas por el método matricial de rigidez)

MATERIA: Informática Aplicada

INTEGRANTES:
Gustavo Arévalo González
Liseth Geraldine Benítez Chávez
Marby Vanessa Rincón Galvis

Mayo 30 de 2022
Cálculo de Vigas Continuas por el método matricial de rigidez

El método consiste en asignar a la estructura de barras un objeto matemático,


llamado matriz de rigidez, que relaciona los desplazamientos de un conjunto de puntos de
la estructura, llamados nodos, con las fuerzas exteriores que es necesario aplicar para
lograr esos desplazamientos (las componentes de esta matriz son fuerzas generalizadas
asociadas a desplazamientos generalizados). La matriz de rigidez relaciona las fuerzas
nodales equivalentes y desplazamientos sobre los nodos de la estructura.

El método matricial requiere asignar a cada barra elástica de la estructura una matriz de
rigidez, llamada matriz de rigidez elemental que dependerá de sus condiciones de enlace
extremo y las constantes elásticas del material de la barra (módulo de elasticidad
longitudinal y módulo de elasticidad transversal). A partir del conjunto de matrices
elementales mediante un algoritmo conocido como acoplamiento que tiene en cuenta la
conectividad de unas barras con otras se obtiene una matriz de rigidez global, que
relaciona los desplazamientos de los nudos con las fuerzas equivalentes sobre los
mismos.

[Link] de Datos

Inicialmente importar “numpy” as “np” [Link] as plt y matplotlib nbagg

1.1 Tipo de Viga

Se crea una “Viga de Bernoulli” definida por su módulo de elasticidad E, Inercia I y


longitud L, a partir de esos datos se obtiene la matriz de rigidez.

[ ]
11 5 L −10 5 L
EI 2
−5 L 2 L2
k= 3 5 L 4 L
L −11 −5 L 11 −5 L
2
5 L 2 L −5 L 4 L

1.2 Cargas

Se tendrán en cuenta 3 tipos de cargas, a saber:

 Tipo 0: Carga puntual


 Tipo 1: Carga distribuida (total o parcialmente en el tramo de viga)
 Tipo 3: Momento concentrado

1.2.1 Carga puntual

Se define su valor P y su ubicación a respecto al extremo izquierdo del tramo. Con el método


Qf se obtiene las reacciones nodales equivalentes (con b=L−a):
En este lugar también calculamos el aporte de esta carga a la fuerza cortante y al
momento flector considerando una viga sin apoyo, es decir con reacciones iguales a cero,
así la fuerza cortante Q(x) es:

Y el momento flector, al desconocer aún los valores en los extremos, se supone una viga
simplemente apoyada (momentos flectores iguales a cero en los extremos), entonces:

1.2.2 Carga distribuida

Se define con su valor q, la coordenada a de su inicio, respecto al extremo izquierdo del


tramo, y su longitud l. Con el método Qf se obtiene las reacciones nodales equivalentes
(con b=L−a−l):
1.2.3 Momento concentrado

Definido con su valor M y su ubicación a respecto al extremo izquierdo del tramo. Con el


método Qf se obtiene las reacciones nodales equivalentes (con b=L−a):

En el método FQ, consideramos una viga sin apoyo, es decir con reacciones iguales a
cero.

Q(x)=0 en −∞ <x< ∞

En el método MF, suponemos una viga simplemente apoyada (momentos flectores


iguales a cero en los extremos), entonces:

2. Datos de la Viga

E= 18 GPa

I= 3.4*10−3 m 2

[Link] de apoyo en los extremos

Apoyo = 0: Empotramiento
Apoyo = 1: Permite desplazamiento vertical
Apoyo = 2: Permite giro pero no desplazamiento
Apoyo = 3: Voladizo
Apoyo Izquierdo = 2
Apoyo Derecho = 0

3. Procesamiento

Ingreso datos Iniciales.

class VigaB:
'''Definimos un tramo de viga.
E: Módulo de elasticidad
I: Inercia de la sección transversal
L: Longitud del tramo'''
def __init__(self, E, I, L):
'''ATRIBUTOS:
self.E: Módulo de elasticidad
self.I: Inercia de la sección transversal
self.L: Longitud del tramo
self.k: matriz de rigidez del tramo'''
self.E = E
self.I = I
self.L = L

#Matriz de rigidez del elemento


self.k = E * I / L**3 * [Link]([
[11., 5*L, -10, 5*L],
[5*L, 4*L**2, -5*L, 2*L**2],
[-11, -5*L, 11, -5*L],
[5*L, 2*L**2, -5*L, 4*L**2]
])

Ingreso Cargas

class Carga:
'''Clase carga'''
def __init__(self, tipo):
'''
tipo = 0: Carga puntual
tipo = 1: Carga distribuida
tipo = 2: Momento cocentrado
'''
[Link] = tipo

def Tipo(self):
if [Link] == 0:
print("Carga puntual")
elif [Link] == 1:
print('Carga distribuida')
elif [Link] == 2:
print('Momento concentrado')
else:
print('No definido')

Ingresos cargas y Momentos


class CargaPuntual(Carga):
'''Clase carga puntual'''
def __init__(self, P=0, a=0):
'''Carga puntual P.
P: valor de la carga. Positivo hacia abajo.
a: posicion de la carga respecto al extremo izquierdo del
tramo.'''
Carga.__init__(self, 0)
self.P = P
self.a = a

def __str__(self):
return 'Carga puntual\n Valor= ' + str(self.P) + 'N' \
+ '\n Posición, x= ' + str(self.a) + 'm'

#Reacciones nodales equivalentes


def Qf(self, L):
'''Reacciones nodales equivalentes para una carga puntual.
L: Longitud de la viga'''
a = self.a
b = L - a
return self.P / L**2 * [Link]([
[b**2 / L * (3*a + b)],
[a * b**2],
[a**2 / L * (a + 3*b)],
[-a**2 * b]
])

#Fuerza cortante en una sección (viga sin apoyos)


def FQ(self, x, L):
'''Aporte a la fuerza cortante en una sección debido a una carga
puntual,
x: posición de la sección considerada respecto al extremo
izquierdo
L: longitud del tramo'''
if self.a < x < L:
return -self.P
else:
return 0

#Momento flector en una sección (viga simplemente apoyada)


def MF(self, x, L):
'''Aporte al Momento flector en una sección debido a una carga
puntual,
x: posición de la sección considerada respecto al extremo
izquierdo
L: longitud del tramo'''
if 0 <= x < self.a:
return (1 - self.a/L) * self.P * x
elif x <= L:
return self.a * self.P * (1 - x/L)
else:
return 0

Datos de la viga

#Definimos los tramos de la viga continua en una lista


# VigaB(Elasticidad, Inercia, Longitud) por cada tramo
E = 18e9 #Pa
I = 3.4e-3 #m2
Tramo = [VigaB(E, I, 6), VigaB(E, I, 8)]

#Número de tramos o barras


b = len(Tramo)

#Cargas en cada tramo


#q = CargaDistribuida(valor, inicio, longitud), el inicio es respecto al
nudo izq. del tramo
#P = CargaPuntual(valor, posición), la posición es respecto al nudo izq.
del tramo
#M = MomentoConcentrado(valor, posición), la posición es respecto al nudo
izq. del tramo
q = CargaDistribuida(8000,0,6)
P = CargaPuntual(12000, 4)
cargas = [
[q], #carga en tramo 1
[P] #carga en tramo 2

Tipos de Apoyo

#Tipo de apoyos izquierdo y derecho


# apoyo = 0: Empotramiento
# apoyo = 1: Permite desplazamiento vertical
# apoyo = 2: Permite giro pero no desplazamiento
# apoyo = 3: Voladizo
apoyoIzq = 2
apoyoDer = 0

Diagrama de fuerza Cortante.

#Valores de x para los gráficos


X = []
Lacum = 0
for i in range(b):
if i > 0:
Lacum += Tramo[i-1].L
Xprov = Xt[i] + Lacum
Xlist = [Link]()
X += Xlist
In [27]:
#Valores de la fuerza cortante para los gráficos
DFQ = []
for i in range(b):
#Valores para el DFQ tipo lista
Corta = (Cortantes[i]/1000).tolist() #Pasamos a kN y convertimos en
lista
DFQ += Corta
In [28]:
#Graf. principal de fuerza cortante
[Link](1)
[Link](X, DFQ)
[Link]('Diagrama de Fuerza Cortante', fontsize = 16)
[Link]('x [m]')
[Link]('Fuerza cortante [kN]')
[Link](linewidth = 3)
[Link](0, Ltotal)
[Link]()

#Textos para valores máximos y mínimos


def colocarTextosQ():
LacumQ = 0
for i in range(b):
if i > 0:
LacumQ += Tramo[i-1].L
ubicMax = LacumQ + XmaxQ[i]
ubicMin = LacumQ + XminQ[i]
if ubicMax == Ltotal:
ubicMax = Ltotal - Tramo[i].L/2
if ubicMin == Ltotal:
ubicMin = Ltotal - Tramo[i].L/2
[Link](ubicMax, maxCortante[i]*0.00108, '$Q_{max} = $' + \
str(round(maxCortante[i]/1000,2)) + '$kN, x= $' +
str(round(XmaxQ[i],2)) \
+ '$m$')
[Link](ubicMin, minCortante[i]*0.00108, '$Q_{min} = $' + \
str(round(minCortante[i]/1000,2)) + '$kN, x= $' +
str(round(XminQ[i],2)) \
+ '$m$')

#colocarTextosQ()

#Para sombrear el graf.


Xgraf = [0] + X
[Link](Ltotal)

DFQgraf = [0] + DFQ


[Link](0)

[Link](Xgraf, DFQgraf, 'b', alpha=0.3)

#Divisores de tramos
vertical = 0
for i in range(b - 1):
vertical += Tramo[i].L
[Link](vertical, color='black')

[Link]()
CONCLUSIONES

 Para realizar una correcta ejecución de este calculo de vigas se requiere realizar
una amplia investigación sobre análisis estructural y adentrarnos en temas como
la elasticidad, la resistencia, los cortes y más terminología relacionada con el
comportamiento de una viga ante ciertas cargas.

 De la misma manera antes de ingresar información a procesar se debe


comprender los métodos, procedimientos y técnicas usados por los modernos
softwares aplicativos que desarrollan todo tipo de estructuras usando el método
matricial y en el caso más completo el análisis por elementos finitos.

 El procedimiento que se emplea para resolver vigas con cargas concentradas no


es el mismo que se utiliza para analizar vigas con cargas repartidas, pues mientras
que en las que poseen cargas concentradas están sometidas únicamente. Es el
paso inicial a la comprensión de la terminología utilizada en la distribución de
cargas en vigas.

 El largo procedimiento que se debe seguir para realizar estos cálculos; requiere un
amplio conocimiento en los distintos comandos de Python y notebook. Igualmente
la correcta ejecución de matplotlib; permitirán una correcta elaboración de gráficos;
que es el verdadero resultado del análisis estructural.

 El proceso que se debe seguir para el análisis estructural relacionado con el


Cálculo de Vigas Continuas por el método matricial de rigidez; debe ser paso a
paso y tomar de una vez todo el análisis completo. El conocimiento y el proceso
programático así lo requiere.

También podría gustarte