Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Escuela de Ingeniera
Departamento de Ingeniera Estructural y Geotecnica
ICE 2114 Analisis Estructural
Tarea 5
Para calcular la matriz de rgidez K de la estructura primero tenemos que analizar la deformada de cada
elemento de la estructura bajo los g.d.l respectivos.
Sabemos que la matriz de rgidez de un elemento reticulado es de la siguiente forma:
AE 1 1
KL = e
L 1 1
Donde KL hace referencia a la matriz de rigidez local de cada elemento y Le se refiere al largo del elemento,
ya que este no es constante en el ejercicio.
1
A partir de los siguientes dibujos podemos darnos cuenta que elementos se encuentran en compresion y en
traccion, lo que nos dira cual es la fuerza que ejerce cada uno de ellos hacia el nodo, para as analizar las
reacciones sobre este, para que finalmente se pueda calcular cada columna de K.
La matriz K es una matriz simetrica que posee una dimension igual a los g.d.l de la estructura.
A continuacion se muestra el procedimiento el cual se uso para calcular la primera columna de K (r1 = 1)
Como podemos ver, el nodo A es sometido frente a las fuerzas senaladas, es as como podemos calcular
K11 y K21 , los cuales solo se calculan haciendo equilibrio de fuerzas, como se muestra a continuacion.
2
AE AE AE AE AE
K11 = cos()2 + cos()2 + cos()2 + = 3,52
L1 L4 L3 L5 L
AE AE
K21 = cos()sen() = 0,288
L1 L
Sin embargo, el g.d.l r1 = 1 no solo repercute en el nodo A, sino que tambien en los demas nodos, ya que
como se deforman varias barras de la estructura y estas ejercen fuerzas en ambos extremos, los demas nodos
tambien seran sometidos a las siguientes fuerzas.
AE
K31 = 1,153
L
AE
K41 = 0,77
L
AE
K51 = 1,153
L
AE
K61 = 0,77
L
AE
K71 = 1
L
K81 = 0
3
3,52
0,288
1,153
0,77
Obteniendo como primera columna de la matriz K el siguiente vector k1 = AE
L 1,153
0,77
1
0
Este proceso se repite continuamente hasta as encontrar todas las columnas de la matriz K, dando como
resultado la siguiente matriz de rigidez:
3,52 0,288 1,153 0,77 1,153 0,77 1 0
0,288
1,41 0,77 0,513 0,77 0,513 0 0
1,153 0,77 2,3 0 0 0 1,153 0,77
AE 0,77 0,513 0 1,026 0 0 0,77 0,513
K=
L 1,153 0,77 0 0 3,07 0 1,153 0,77
0,77
0,513 0 0 0 1,39 0,77 0,513
1 0 1,153 0,77 1,153 0,77 3,51 0,288
0 0 0,77 0,513 0,77 0,513 0,288 1,41
El vector de fuerzas F se arma analizando que fuerzas actuan bajo cada g.d.l, las filas del vector F estan
enumeradas por g.d.l, de manera que este vector se calcula analizando las fuerzas externas que actuan bajo
estos g.d.l.
En la figura podemos notar claramente que fuerzas actuan sobre los g.d.l respectivos. En el caso de el
cambio de temperatura +T , se le asgina un vector de fuerza negativo en el nodo A y uno positivo en el
nodo C. Por lo tanto el vector F queda de la siguiente forma:
P AET 2,35
0 0
P 10
0 0
F = =
0 0
3P 30
AET 12,35
0 0
4
A continuacion se muestran los g.d.l. locales de cada elemento, que se calcularan de la siguiente forma:
Elemento 2: u1 = 0
u2 = r5 cos() + r6 sen()
5
u2 = r3 cos() + r4 sen()
Elemento 5: u1 = r1
u2 = r7
6
1.4. Deformada Estructural
2. Problema 2
2.1. Figura 1
A continuacion se resolveran las mismas estructuras de las Figuras 1 y 2, sin embargo esta vez con el
metodo de la rigidez matricial.
7
2.1.2. Matrices de transformacion cinematica
El siguiente paso es proceder a calcular las matrices de transformacion cinematica conocidas como ar , ax , cr
y cx . Debido a que la estructura de la Figura 1 no posee desplazamientos de los g.d.l preescritos (vector x),
no es necesario calcular ax .
Para poder calcular estas matrices de transformacion, es necesario primero analizar la cinematica de la
estructura, que se indica a continuacion.
8
0 0 0 0 0
0 0 0 0 0
ar1 =
0 1 cos() sen() 0 0
1 0 0 0 0
0 sen() cos() 0 0
0 0 0 1 0
ar3 =
0 sen() cos() sen2 () 0 0
0 0 0 0 1
0 1 cos() sen() 0 0
a r4 = 0 0 0 0 1
0 0 0 0 0
Ahora para pa calcular la matriz Cr , hay que analizar el comportamiento de los g.d.l. zi bajo los
movmientos de los g.d.l ri . Quedando la matriz como se muestra a continuacion.
0 1 cos() sen() 0 0
0 0 0 0 0
Cr = 0 1 cos() sen() 0 0
0 0 0 0 0
3 3 3
Le 2 Le 2 Le
EI 3 3 3
K4 = Le 2 Le 2 Le
L
3 3
Le Le 3
Ahora, con la funcion Frame2DStiffness, calcularemos las matrices con sus unidades y en los ejes
globales.(La matriz cambia de dimensiones ya que la funcion que se nos pide utilizar trabaja con elementos
tipo marco)
9
K1 :
K2 :
K3 :
K4 :
10
11
2.1.4. Solucion del sistema Kr=F
Para resolver el sistema, primero hay que ensamblar la matriz K, y esta se ensambla de la siguiente manera.
X
K= ari T Ki ari
F = f + Cr T Z donde f vendra siendo equivalente al vector fuerza que se requiere para el metodo de rigidez
manual y Z el vector de fuerza que actua bajo los g.d.l z.
Lo que nos queda un F de la siguiente manera:
2T EI
h T
qL 0 1 cos() sen() 0 0
2 cos()
P qL sin() 0 0 0 0 0
F = 2 2 + Z
0 1 cos() sen() 0 0
qL
2 2
qL
0 0 0 0 0
2
0
0
Con Z =
qL/2 sen()
qL/2 cos()
6
4,47
13,57
Quedando un vector F =
4,167
4,167
12
2.2. Figura 2
Ahora procederemos a ha realizar el mismo procedimiento pero con la Figura 2.
13
0 0 0 0 0 0 0 0
ar1 =
cos() sin() 0 0 0 0 0 0
0 0 0 0 0 0 0 0
ar2 =
0 0 0 0 cos() sin() 0 0
cos() sin() 0 0 0 0 0 0
ar3 =
0 0 cos() sin() 0 0 0 0
14
cos() sin() 0 0 0 0 0 0
ar4 =
0 0 0 0 cos() sin() 0 0
1 0 0 0 0 0 0 0
ar5 =
0 0 0 0 0 0 1 0
0 0 cos() sin() 0 0 0 0
ar6 =
0 0 0 0 0 0 cos() sin()
0 0 0 0 cos() sin() 0 0
ar7 =
0 0 0 0 0 0 cos() sin()
0 0 0 0 cos() sin() 0 0
ar8 =
0 0 0 0 0 0 0 0
0 0 0 0 0 0 cos() sin()
a r9 =
0 0 0 0 0 0 0 0)
Con la funcion Truss2DStiffness calcularemos las matrices de rigidez de los elementos con los ejes globales
de la estructura. Estas quedaran de la siguiente manera:
K1
K2
15
K3
K4
K5
K6
K7
16
K8
K9
F = f + Cr T Z, donde f viene siendo el vector fuerza F que ya se calculo para el problema 1, y el vector Z
en esta figura es cero.
2,35
0
10
0
Lo que nos queda un F de la siguiente manera: F = 0 Por lo tanto tenemos que:
30
12,35
0
0,00635
0,00504
0,00686
0,00407
Kr = F r = K 1 F = 0,00351
0,01226
0,00402
0,00659
17
2.2.5. Grafico esfuerzos internos
18
Codigos de Python K9 =(1/1.667) * np . matrix ([[1. , -1] ,[ -1. ,1]])
Ar1 = np . matrix ([[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0] ,[ c ( d ( b ) ) ,s ( d
( b ) ) ,0 ,0 ,0 ,0 ,0 ,0]])
# -* - coding : utf -8 -* - Ar2 = np . matrix ([[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0] ,[0 ,0 ,0 ,0 , c ( d
""" ( a ) ) ,s ( d ( a ) ) ,0 ,0]])
Created on Wed Oct 19 0 0 : 1 8 : 1 0 2016 Ar3 = np . matrix ([[ c ( d ( g ) ) ,s ( d ( g ) )
,0 ,0 ,0 ,0 ,0 ,0] ,[0 ,0 , c ( d ( g ) ) ,s ( d ( g ) )
@author : Chago ,0 ,0 ,0 ,0]])
""" Ar4 = np . matrix ([[ c ( d ( g ) ) ,-s ( d ( g ) )
,0 ,0 ,0 ,0 ,0 ,0] ,[0 ,0 ,0 ,0 , c ( d ( g ) ) ,-s ( d ( g ) )
,0 ,0]])
import numpy as np Ar5 = np . matrix
import matplotlib . pylab as plt ([[1 ,0 ,0 ,0 ,0 ,0 ,0 ,0] ,[0 ,0 ,0 ,0 ,0 ,0 ,1 ,0]])
import cmath as math Ar6 = np . matrix ([[0 ,0 , c ( d ( g ) ) ,-s ( d ( g ) )
def Tr u s s 2 D S t i f f n e s s (E ,A ,L , alpha ) : ,0 ,0 ,0 ,0] ,[0 ,0 ,0 ,0 ,0 ,0 , c ( d ( g ) ) ,-s ( d ( g ) )
An = np . matrix ([[ c ( alpha ) ,s ( alpha ) ]])
,0. ,0.] ,[0. ,0. , c ( alpha ) ,s ( alpha ) ]]) Ar7 = np . matrix ([[0 ,0 ,0 ,0 , c ( d ( g ) ) ,s ( d ( g ) )
At = np . transpose ( An ) ,0 ,0] ,[0 ,0 ,0 ,0 ,0 ,0 , c ( d ( g ) ) ,s ( d ( g ) ) ]])
K = np . matrix ([[ A * E /L , - A * E / L ] ,[ - A * E /L , A * E / L Ar8 = np . matrix ([[0 ,0 ,0 ,0 , c ( d ( a ) ) ,-s ( d ( a ) )
]]) ,0 ,0] ,[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0]])
Kg = At * K * An Ar9 = np . matrix ([[0 ,0 ,0 ,0 ,0 ,0 , c ( d ( b ) ) ,-s ( d ( b ) )
return ( Kg ) ] ,[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0]])
T r u s s 2 D S t i f f n e s s (19000 ,1 ,5 ,0) L =5
K = AE / L *( Ar1 . T * K1 * Ar1 + Ar2 . T * K2 * Ar2 + Ar3 . T * K3 *
def ve ( Ua , Va , Ub , Vb ) : Ar3 + Ar4 . T * K4 * Ar4 + Ar5 . T * K5 * Ar5 + Ar6 . T * K6 *
return ( np . array ([ Ua , Va , Ub , Vb ]) ) Ar6 + Ar7 . T * K7 * Ar7 + Ar8 . T * K8 * Ar8 + Ar9 . T * K9 *
r = np . array Ar9 )
([0.0063 , -0.00524 ,0.00672 , -0.00416 ,0.00342 , -0.0116 P =10. ,0.00384 , -0.00677])
AE =19000
vef1 =( ve (0 ,0 , r [0] , r [1]) ) A =19000
vef2 =( ve (0 ,0 , r [4] , r [5]) ) E =1
vef3 =( ve ( r [0] , r [1] , r [2] , r [3]) ) alpha =1.3*10**( -5)
vef4 =( ve ( r [0] , r [1] , r [4] , r [5]) ) dT =50
vef5 =( ve ( r [0] , r [1] , r [6] , r [7]) ) F = np . matrix ([[ P - AE * alpha * dT ,0 ,P ,0 ,0 , -3* P ,
vef6 =( ve ( r [2] , r [3] , r [6] , r [7]) ) alpha * dT * AE ,0]])
vef7 =( ve ( r [4] , r [5] , r [6] , r [7]) ) K ** -1
vef8 =( ve ( r [4] , r [5] ,0 ,0) ) r1 = K ** -1* F . T
vef9 =( ve ( r [6] , r [7] ,0 ,0) ) factor =50
def T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L , alpha , ve ) :
xloc = np . linspace (0 ,100 , L )
U1 = ve [2]* c ( alpha ) + ve [3]* s ( alpha )
U2 = ve [0]* c ( alpha ) + ve [1]* s ( alpha ) # ## E s f u e r z o normal
F = np . array ([[ A * E / L * U1 - A * E / L * U2 ] ,[ - A * E / L * xB = L * c ( alpha )
U1 + A * E / L * U2 ]]) yB = L * s ( alpha )
Nloc = - F [0] xgeom1 = np . array ([[0. ,0.] ,[ L , L + L /3]])
return ( xloc , Nloc ) xgeom2 = np . array ([[0. ,0.] ,[ L + L /2 , L ]])
xgeom3 = np . array ([[ L , L + L /3] ,[ L + L /2 , L +2* L /3]])
a =33.7 xgeom4 = np . array ([[ L , L + L /3] ,[ L + L /2 , L ]])
b =53.13 xgeom5 = np . array ([[ L , L + L /3] ,[2* L , L + L /3]])
g =33.7 xgeom6 = np . array ([[ L + L /2 , L +2* L /3] ,[2* L , L + L
def c ( alpha ) : /3]])
return ( math . cos ( alpha ) ) xgeom7 = np . array ([[ L + L /2 , L ] ,[2* L , L + L /3]])
def s ( alpha ) : xgeom8 = np . array ([[ L + L /2 , L ] ,[3* L ,0]])
return ( math . sin ( alpha ) ) xgeom9 = np . array ([[2* L , L + L /3] ,[3* L ,0]])
AE =19000 xloc1 , Nloc1 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L ,b ,
vef1 )
def d ( angulo ) : xloc2 , Nloc2 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L ,a ,
angulo2 =( np . pi /180) * angulo vef2 )
return ( angulo2 ) xloc3 , Nloc3 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L ,g ,
vef3 )
K1 =(1/1.667) * np . matrix ([[1. , -1] ,[ -1. ,1]]) xloc4 , Nloc4 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L , -g ,
K2 =(1/1.8) * np . matrix ([[1. , -1] ,[ -1. ,1]]) vef4 )
K3 =(1/0.6) * np . matrix ([[1. , -1] ,[ -1. ,1]]) xloc5 , Nloc5 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L ,0 ,
K4 =(1/0.6) * np . matrix ([[1. , -1] ,[ -1. ,1]]) vef5 )
K5 = np . matrix ([[1. , -1] ,[ -1. ,1]]) xloc6 , Nloc6 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L , -g ,
K6 =(1/0.6) * np . matrix ([[1. , -1] ,[ -1. ,1]]) vef6 )
K7 =(1/0.6) * np . matrix ([[1. , -1] ,[ -1. ,1]]) xloc7 , Nloc7 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L ,g ,
K8 =(1/1.8) * np . matrix ([[1. , -1] ,[ -1. ,1]])
19
vef7 ) [1][1]])
xloc8 , Nloc8 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L , -a , plt . title ( " Estructura deformada factor =
vef8 ) 50 " , size =17)
xloc9 , Nloc9 = T r u s s 2 D I n t e r n a l F o r c e s (E ,A ,L , -b , # plt . axes () . s e t _ a s p e c t (" equal ")
vef9 ) # plt . xlabel ( Largo )
scale =0.03 plt . ylabel ( Magnitud )
def ydiagram ( funcion ) : plt . fill ( Xdiag , Ydiag , g , alpha =0.5)
ydiagram = np . ones (100) return ()
ydiagram = ydiagram * funcion ydiagram1 = ydiagram ( Nloc1 )
return ( ydiagram ) ydiagram2 = ydiagram ( Nloc2 )
ydiagram3 = ydiagram ( Nloc3 )
def Plot2DDiagram ( xgeom , xloc , ydiagram , scale ) : ydiagram4 = ydiagram ( Nloc4 )
ydiagram = ydiagram * scale ydiagram5 = ydiagram ( Nloc5 )
n = len ( ydiagram ) ydiagram6 = ydiagram ( Nloc6 )
val_i = ydiagram [0] ydiagram7 = ydiagram ( Nloc7 )
val_f = ydiagram [n -1.] ydiagram8 = ydiagram ( Nloc8 )
if xgeom [0][0] - xgeom [1][0]==0.: ydiagram9 = ydiagram ( Nloc9 )
alpha = np . pi /2. xgeom1f = np . array ([[0. ,0.] ,[ L + r [0] , L + L /3+ r
else : [1]]])
alpha = np . arctan (( xgeom [1][1] - xgeom xgeom2f = np . array ([[0. ,0.] ,[ L + L /2+ r [4] , L + r
[0][1]) /( xgeom [1][0] - xgeom [0][0]) [5]]])
) xgeom3f = np . array ([[ L + r [0] , L + L /3+ r [1]] ,[ L + L /2+
plt . plot ([ xgeom [0][0] , xgeom [1][0]] ,[ xgeom r [2] , L +2* L /3+ r [3]]])
[0][1] , xgeom [1][1]] , color = k , lw =2) xgeom4f = np . array ([[ L + r [0] , L + L /3+ r [1]] ,[ L + L /2+
x = np . linspace ( xgeom [0][0] , xgeom [1][0] , n ) r [4] , L + r [5]]])
y = np . linspace ( xgeom [0][1] , xgeom [1][1] , n ) xgeom5f = np . array ([[ L + r [0] , L + L /3+ r [1]] ,[2* L + r
Xdiag =x - ydiagram * np . sin ( alpha ) [6] , L + L /3+ r [7]]])
Ydiag = y + ydiagram * np . cos ( alpha ) xgeom6f = np . array ([[ L + L /2+ r [2] , L +2* L /3+ r
plt . text ( Xdiag [0] , Ydiag [0] , float ( round ( [3]] ,[2* L + r [6] , L + L /3+ r [7]]])
val_i / scale ,2) ) , fontsize =10.) xgeom7f = np . array ([[ L + L /2+ r [4] , L + r [5]] ,[2* L + r
# plt . text ( Xdiag [n -1] , Ydiag [n -1] , float ( [6] , L + L /3+ r [7]]])
round ( val_f / scale ,2) ) , f o n t s i z e =10.) xgeom8f = np . array ([[ L + L /2+ r [4] , L + r [5]] ,[3* L
Xdiag = np . hstack ([ xgeom [0][0] , Xdiag , xgeom ,0]])
[1][0]]) xgeom9f = np . array ([[2* L + r [6] , L + L /3+ r [7]] ,[3* L
Ydiag = np . hstack ([ xgeom [0][1] , Ydiag , xgeom ,0]])
[1][1]]) Plot2DDiagram ( xgeom1 , xloc1 , ydiagram1 , scale )
plt . title ( " Esfuerzo Normal ( scale =0.03) " , Plot2DDiagram ( xgeom2 , xloc2 , ydiagram2 , scale
size =17) )
plt . axes () . set_aspect ( " equal " ) Plot2DDiagram ( xgeom3 , xloc3 , ydiagram3 , scale )
plt . xlabel ( Largo ) Plot2DDiagram ( xgeom4 , xloc4 , ydiagram4 , scale )
plt . ylabel ( Magnitud ) Plot2DDiagram ( xgeom5 , xloc5 , ydiagram5 , scale )
plt . fill ( Xdiag , Ydiag , g , alpha =0.5) Plot2DDiagram ( xgeom6 , xloc6 , ydiagram6 , scale )
return () Plot2DDiagram ( xgeom7 , xloc7 , ydiagram7 , scale )
def Plot2DD iagram2 ( xgeom , xloc , ydiagram , scale ) Plot2DDiagram ( xgeom8 , xloc8 , ydiagram8 , scale )
: Plot2DDiagram ( xgeom9 , xloc9 , ydiagram9 , scale )
ydiagram = ydiagram * scale Plot2 DDiagra m2 ( xgeom1f , xloc1 , np . zeros (100) ,
n = len ( ydiagram ) scale )
val_i = ydiagram [0] Plot2 DDiagra m2 ( xgeom2f , xloc2 , np . zeros (100) ,
val_f = ydiagram [n -1.] scale )
if xgeom [0][0] - xgeom [1][0]==0.: Plot2 DDiagra m2 ( xgeom3f , xloc3 , np . zeros (100) ,
alpha = np . pi /2. scale )
else : Plot2 DDiagra m2 ( xgeom4f , xloc4 , np . zeros (100) ,
alpha = np . arctan (( xgeom [1][1] - xgeom scale )
[0][1]) /( xgeom [1][0] - xgeom [0][0]) Plot2 DDiagra m2 ( xgeom5f , xloc5 , np . zeros (100) ,
) scale )
plt . plot ([ xgeom [0][0] , xgeom [1][0]] ,[ xgeom Plot2 DDiagra m2 ( xgeom6f , xloc6 , np . zeros (100) ,
[0][1] , xgeom [1][1]] , color = b , lw =2) scale )
x = np . linspace ( xgeom [0][0] , xgeom [1][0] , n ) Plot2 DDiagra m2 ( xgeom7f , xloc7 , np . zeros (100) ,
y = np . linspace ( xgeom [0][1] , xgeom [1][1] , n ) scale )
Xdiag =x - ydiagram * np . sin ( alpha ) Plot2 DDiagra m2 ( xgeom8f , xloc8 , np . zeros (100) ,
Ydiag = y + ydiagram * np . cos ( alpha ) scale )
# plt . text ( Xdiag [0] , Ydiag [0] , float ( round Plot2 DDiagra m2 ( xgeom9f , xloc9 , np . zeros (100) ,
( val_i / scale ,2) ) , f o n t s i z e =10.) scale )
# plt . text ( Xdiag [n -1] , Ydiag [n -1] , float ( plt . show ()
round ( val_f / scale ,2) ) , f o n t s i z e =10.)
Xdiag = np . hstack ([ xgeom [0][0] , Xdiag , xgeom a =26.565
[1][0]]) def c ( alpha ) :
Ydiag = np . hstack ([ xgeom [0][1] , Ydiag , xgeom return ( math . cos ( alpha ) )
20
def s ( alpha ) : de = np . array ([ u1 , v1 , theta1 , u2 , v2 , theta2 ])
return ( math . sin ( alpha ) ) return ( de )
alpha =2*10**( -5) vef1 =( de (0 ,0 ,0 , - r [2]* c ( d ( a ) ) * s ( d ( a ) ) ,-r [1] , r
dT =30 [0]) )
h =1 vef2 =( de ( r [1] ,0 , r [0] , r [1] , r [2] , r [3]) )
P =10 vef3 =( de ( r [1] , r [2] , r [3] , r [1] , - r [2]* c ( d ( a ) ) * s (
L =5 d ( a ) ) ,r [4]) )
q=P/L vef4 =( de ( r [1] ,0 ,0 ,0 ,0 , r [4]) )
def P l o t 2 D F r a m e D e f o r m e d ( xgeom , de , scaleparam ) :
EI =5000 L = np . sqrt (( xgeom [0][0] - xgeom [1][0]) **2+(
E =5000 xgeom [0][1] - xgeom [1][1]) **2)
A =10**16 x = np . linspace (0. , L ,1000)
if xgeom [0][0] - xgeom [1][0]==0.:
def d ( angulo ) : alpha = np . pi /2.
angulo2 =( np . pi /180) * angulo else :
return ( angulo2 ) alpha = np . arctan (( xgeom [1][1] - xgeom
L2 =( np . sqrt (5) /2) *5 [0][1]) /( xgeom [1][0] - xgeom [0][0])
K1 = np . matrix ([[ EI / L *12/ L **2 , EI / L *6/ L , EI / L )
* -12/ L **2 , EI / L *6/ L ] ,[ EI / L *6/ L , EI / L *4 , EI / L # interp . f l e x u r a l
* -6/ L , EI / L *2] ,[ EI / L * -12/ L **2 , EI / L * -6/ L , EI N1 =1. -(3* x **2) /( L **2) +(2* x **3) /( L **3) # vA
/ L *12/ L **2 , EI / L * -6/ L ] ,[ EI / L *6/ L , EI / L *2 , EI N2 =x -(2* x **2) /( L ) +( x **3) /( L **2) # thetaA
/ L * -6/ L , EI / L *4]]) N3 =(3* x **2) /( L **2) -(2* x **3) /( L **3) # vB
K2 = np . matrix ([[ EI / L2 *12/ L2 **2 , EI / L2 *6/ L2 , EI / N4 = -( x **2) /( L ) +( x **3) /( L **2) # thetaB
L2 * -12/ L2 **2 , EI / L2 *6/ L2 ] ,[ EI / L2 *6/ L2 , EI / N5 =1. - x / L
L2 *4 , EI / L2 * -6/ L2 , EI / L2 *2] ,[ EI / L2 * -12/ L2 N6 = x / L
**2 , EI / L2 * -6/ L2 , EI / L2 *12/ L2 **2 , EI / L2 * -6/ xdef = x +( N5 * de [0]+ N6 * de [3]) * scaleparam
L2 ] ,[ EI / L2 *6/ L2 , EI / L2 *2 , EI / L2 * -6/ L2 , EI / L2 ydef =( N1 * de [1]+ N2 * de [2]+ N3 * de [4]+ N4 * de
*4]]) [5]) * scaleparam
K3 = np . matrix ([[ EI / L2 *12/ L2 **2 , EI / L2 *6/ L2 , EI / U1 =[]
L2 * -12/ L2 **2 , EI / L2 *6/ L2 ] ,[ EI / L2 *6/ L2 , EI / U2 =[]
L2 *4 , EI / L2 * -6/ L2 , EI / L2 *2] ,[ EI / L2 * -12/ L2 i =0
**2 , EI / L2 * -6/ L2 , EI / L2 *12/ L2 **2 , EI / L2 * -6/ while i <1000:
L2 ] ,[ EI / L2 *6/ L2 , EI / L2 *2 , EI / L2 * -6/ L2 , EI / L2 uf = np . cos ( alpha ) * xdef [ i ] - np . sin ( alpha
*4]]) ) * ydef [ i ]
Ar1 = np . matrix vf = np . sin ( alpha ) * xdef [ i ]+ np . cos ( alpha
([[0 ,0 ,0 ,0 ,0] ,[0 ,0 ,0 ,0 ,0] ,[0 , -1 , - s ( d ( a ) ) * ) * ydef [ i ]
c ( d ( a ) ) ,0 ,0] ,[1 ,0 ,0 ,0 ,0]]) U1 . append ( uf )
Ar2 = np . matrix ([[0 , - s ( d ( a ) ) ,-c ( d ( a ) ) * s ( d ( a ) ) U2 . append ( vf )
**2 ,0 ,0] ,[1 ,0 ,0 ,0 ,0] ,[0 , - s ( d ( a ) ) ,c ( d ( a ) ) i +=1
,0 ,0] ,[0 ,0 ,0 ,1 ,0]]) U1 = np . array ( U1 )
Ar3 = np . matrix ([[0 , s ( d ( a ) ) ,c ( d ( a ) ) U2 = np . array ( U2 )
,0 ,0] ,[0 ,0 ,0 ,1 ,0] ,[0 , s ( d ( a ) ) ,-c ( d ( a ) ) * s ( d plt . plot ( U1 + xgeom [0][0] , U2 + xgeom [0][1] , " b
( a ) ) **2 ,0 ,0] ,[0 ,0 ,0 ,0 ,1]]) " , lw =3)
Ar4 = np . matrix ([[0 ,1 , - s ( d ( a ) ) * c ( d ( a ) ) plt . plot ([ xgeom [0][0] , xgeom [1][0]] ,[ xgeom
,0 ,0] ,[0 ,0 ,0 ,0 ,1] ,[0 ,0 ,0 ,0 ,0]]) [0][1] , xgeom [1][1]] , " k " , lw =3)
K4 = EI / L * np . matrix ([[3/ L **2 ,3/ L , -3/ L **2] ,[3/ L
,3 , -3/ L ] ,[ -3/ L **2 , -3/ L ,3/ L **2]]) return ()
K = Ar1 . T * K1 * Ar1 + Ar2 . T * K2 * Ar2 + Ar3 . T * K3 * Ar3 + Ar4 . xgeom1 = np . array ([[0. ,0.] ,[0 , L ]])
T * K4 * Ar4 xgeom2 = np . array ([[0. , L ] ,[L , L + L /2]])
Cr = np . matrix ([[0 ,1 , c ( d ( a ) ) * s ( d ( a ) ) xgeom3 = np . array ([[ L , L + L /2] ,[2* L , L ]])
,0 ,0] ,[0 ,0 ,0 ,0 ,0] ,[0 ,1 , - c ( d ( a ) ) * s ( d ( a ) ) xgeom4 = np . array ([[2* L ,0] ,[2* L , L ]])
,0 ,0] ,[0 ,0 ,0 ,0 ,0]]) P l o t 2 D F r a m e D e f o r m e d ( xgeom1 , vef1 ,30)
P l o t 2 D F r a m e D e f o r m e d ( xgeom2 , vef2 ,30)
f = np . matrix ([[2* alpha * dT * EI /h , -( q * L /2) * s ( d ( a ) P l o t 2 D F r a m e D e f o r m e d ( xgeom3 , vef3 ,30)
) ,-P -( q * L /2) * c ( d ( a ) ) ,-q * L **2/12 , q * L P l o t 2 D F r a m e D e f o r m e d ( xgeom4 , vef4 ,30)
**2/12]]) def F r a m e 2 D I n t e r n a l F o r c e s (E ,A ,I ,L , alpha ,q , vef
Z = np . matrix ([[0 ,0 ,( - q * L /2) * s ( d ( a ) ) ,( q * L /2) * c ( ):
d ( a ) ) ]]) xloc = np . linspace (0 ,L ,100)
F = f . T + Cr . T * Z . T K = np . matrix ([[ A * E /L ,0 ,0 , - A * E /L
rf = K ** -1* F ,0 ,0] ,[0 ,12* E * I / L **3 ,6* E * I / L
r = np . array **2 ,0 , -12* E * I / L **3 ,6* E * I / L **2] ,[0 ,6* E
([0.00203 , -0.01193 , -0.01585 , -0.00214 ,0.0042]) * I / L **2 ,4* E * I /L ,0 , -6* E * I / L **2 ,2* E * I / L
] ,[ - A * E /L ,0 ,0 , A * E /L ,0 ,0] ,[0 , -12* E * I / L
I =1 **3 , -6* E * I / L **2 ,0 ,12* E * I / L **3 , -6* E * I /
def ve ( Ua , Va , Ta , Ub , Vb , Tb ) : L **2] ,[0 ,6* E * I / L **2 ,2* E * I /L ,0 , -6* E * I /
return ( np . matrix ([ Ua , Va , Ta , Ub , Vb , Tb ]) ) L **2 ,4* E * I / L ]])
An = np . matrix ([[ c ( alpha ) ,s ( alpha )
def de ( u1 , v1 , theta1 , u2 , v2 , theta2 ) : ,0 ,0 ,0 ,0] ,[ - s ( alpha ) ,c ( alpha )
21
,0 ,0 ,0 ,0] ,[0 ,0 ,1 ,0 ,0 ,0] ,[0 ,0 ,0 , c ( plt . show ()
alpha ) ,s ( alpha ) ,0] ,[0 ,0 ,0 , - s ( alpha ) ,c Plot2DDiagram ( xgeom , xloc , ydiagram2 , scale )
( alpha ) ,0] ,[0 ,0 ,0 ,0 ,0 ,1]]) plt . show ()
At = np . transpose ( An ) Plot2DDiagram ( xgeom , xloc , ydiagram3 , scale )
fl = np . transpose ( np . matrix ([[0 , - q * L /2 , -( q * plt . show ()
L **2) /12 ,0 , -( q * L ) /2 ,( q * L **2) /12]]) )
fg = At * fl
fe = K * An * vef .T - fg
Nloc = - float ( fe [0])
Vloc = float ( fe [1]) -q * xloc
Mloc = - float ( fe [2]) + float ( fe [1]) * xloc -( q *(
xloc ) **2) /2
return ( xloc , Nloc , Vloc , Mloc )
# ## g r a f i c o s de e s f u e r z o s
xloc , Nloc , Vloc , Mloc = F r a m e 2 D I n t e r n a l F o r c e s (E ,A
,I ,L , alpha ,q , vef )
xB = L * c ( alpha )
yB = L * s ( alpha )
22