Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto Hito 6-Isela Chambi Rojas
Proyecto Hito 6-Isela Chambi Rojas
Finalidad
El l objetivo de este hito es examinar la respuesta dinámica del modelo del tanque elevado de agua bajo la excitación bidireccional del terreno.
In [1]:
In [2]:
kN = 1.0
mm = 1.0
sec = 1.0
min = 60*sec
m = 1000*mm
kip = 4.448*kN
inch = 25.4*mm
g = 9810*mm/sec**2
ft = 12*inch
ksi = kip/inch**2
GPa = kN/mm**2
MPa = (1/1000)*GPa
In [3]:
E = 200*GPa # (E=29000ksi)
v = 0.30
G = E/(2*(1+v))
3.-CALCULO DE 𝑏
In [4]:
Fy = 317.16/1000*GPa
Fu = 399.90/1000*GPa
E = 200*GPa
Esh = 3998.96/1000*GPa
eps_sh = 0.012
eps_ult = 0.16
ey = Fy/E
E2 = (Fu-Fy)/(eps_ult-ey)
bs = E2/E
print(ey,E2,bs)
4.-FUNCION BOXSECTION
In [5]:
return [A,Iz,Iy,J]
In [6]:
def DefineSection(tag,matTag,d,t,Nfw,Nff,GJ):
ops.section('Fiber',tag,'-GJ',GJ)
ops.patch('rect',matTag,Nff,Nff,d/2,d/2,d/2-t,d/2-t)
ops.patch('rect',matTag,Nff,Nfw,d/2,d/2-t,d/2-t,-d/2+t)
ops.patch('rect',matTag,Nff,Nff,d/2,-d/2+t,d/2-t,-d/2)
ops.patch('rect',matTag,Nfw,Nff,d/2-t,d/2,-d/2+t,d/2-t)
ops.patch('rect',matTag,Nfw,Nff,d/2-t,-d/2+t,-d/2+t,-d/2)
ops.patch('rect',matTag,Nff,Nff,-d/2+t,d/2,-d/2,d/2-t)
ops.patch('rect',matTag,Nff,Nfw,-d/2+t,d/2-t,-d/2,-d/2+t)
ops.patch('rect',matTag,Nff,Nff,-d/2+t,-d/2+t,-d/2,-d/2)
In [7]:
tag = 1
matTag = 1
Nfw = 4
Nff = 1
d = 30.0*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)
GJ = G*J
fib_sec_1 = [['section','Fiber',tag,'-GJ',GJ],
['patch','rect',matTag,Nff,Nff,d/2,d/2,d/2-t,d/2-t],
['patch','rect',matTag,Nff,Nfw,d/2,d/2-t,d/2-t,-d/2+t],
['patch','rect',matTag,Nff,Nff,d/2,-d/2+t,d/2-t,-d/2],
['patch','rect',matTag,Nfw,Nff,d/2-t,d/2,-d/2+t,d/2-t],
['patch','rect',matTag,Nfw,Nff,d/2-t,-d/2+t,-d/2+t,-d/2],
['patch','rect',matTag,Nff,Nff,-d/2+t,d/2,-d/2,d/2-t],
['patch','rect',matTag,Nff,Nfw,-d/2+t,d/2-t,-d/2,-d/2+t],
['patch','rect',matTag,Nff,Nff,-d/2+t,-d/2+t,-d/2,-d/2]]
matcolor = ['y', 'lightgrey', 'gold', 'w', 'w', 'w']
opsv.plot_fiber_section(fib_sec_1, matcolor = matcolor)
plt.axis('equal')
plt.show()
In [8]:
ops.wipe()
ops.model('basic','-ndm',3,'-ndf',6)
L = 9*m
offset = L/500
#Nudos de la Estructura:
#Piso 1
ops.node(5,-7.38*m,-7.38*m,+8.20*m)
ops.node(6,+7.38*m,-7.38*m,+8.20*m)
ops.node(7,+7.38*m,+7.38*m,+8.20*m)
ops.node(8,-7.38*m,+7.38*m,+8.20*m)
#Piso 2
ops.node(9,-6.56*m,-6.56*m,+16.40*m)
ops.node(10,+6.56*m,-6.56*m,+16.40*m)
ops.node(11,+6.56*m,+6.56*m,+16.40*m)
ops.node(12,-6.56*m,+6.56*m,+16.40*m)
#Piso 3
ops.node(13,-5.74*m,-5.74*m,+24.60*m)
ops.node(14,+5.74*m,-5.74*m,+24.60*m)
ops.node(15,+5.74*m,+5.74*m,+24.60*m)
ops.node(16,-5.74*m,+5.74*m,+24.60*m)
#Piso 4
ops.node(17,-4.92*m,-4.92*m,+32.80*m)
ops.node(18,+4.92*m,-4.92*m,+32.80*m)
ops.node(19,+4.92*m,+4.92*m,+32.80*m)
ops.node(20,-4.92*m,+4.92*m,+32.80*m)
#Piso 5
ops.node(21,-4.10*m,-4.10*m,+41.00*m)
ops.node(22,+4.10*m,-4.10*m,+41.00*m)
ops.node(23,+4.10*m,+4.10*m,+41.00*m)
ops.node(24,-4.10*m,+4.10*m,+41.00*m)
ops.node(25,-8.20*m,-4.10*m,+41.00*m)
ops.node(26,-4.10*m,-8.20*m,+41.00*m)
ops.node(27,+4.10*m,-8.20*m,+41.00*m)
ops.node(28,+8.20*m,-4.10*m,+41.00*m)
ops.node(29,+8.20*m,+4.10*m,+41.00*m)
ops.node(30,+4.10*m,+8.20*m,+41.00*m)
ops.node(31,-4.10*m,+8.20*m,+41.00*m)
ops.node(32,-8.20*m,+4.10*m,+41.00*m)
#Piso 6
ops.node(33,-4.10*m,-4.10*m,+49.20*m)
ops.node(34,+4.10*m,-4.10*m,+49.20*m)
ops.node(35,+4.10*m,+4.10*m,+49.20*m)
ops.node(36,-4.10*m,+4.10*m,+49.20*m)
ops.node(37,-8.20*m,-4.10*m,+49.20*m)
ops.node(38,-4.10*m,-8.20*m,+49.20*m)
ops.node(39,+4.10*m,-8.20*m,+49.200*m)
ops.node(40,+8.20*m,-4.10*m,+49.20*m)
ops.node(41,+8.20*m,+4.10*m,+49.20*m)
ops.node(42,+4.10*m,+8.20*m,+49.20*m)
ops.node(43,-4.10*m,+8.20*m,+49.20*m)
ops.node(44,-8.20*m,+4.10*m,+49.20*m)
#Arriostres
ops.node(51,-0.41*m,-7.79*m-offset,4.10*m)
ops.node(52,0.41*m,-7.79*m-offset,4.10*m)
ops.node(53,7.79*m+offset,-0.41*m,4.10*m)
ops.node(54,7.79*m+offset,0.41*m,4.10*m)
ops.node(55,0.41*m,7.79*m+offset,4.10*m)
ops.node(56,-0.41*m,7.79*m+offset,4.10*m)
ops.node(57,-7.79*m-offset,0.41*m,4.10*m)
ops.node(58,-7.79*m-offset,-0.41*m,4.10*m)
d = 30*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)
GJ = G*J
tag = 201
matTag = 500
Nfw = 4
Nff = 1
ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',1,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',1,201,4)
#ops.element('forceBeamColumn',1,1,5,1,1)
ops.element('forceBeamColumn',1,1,47,1,1)
ops.element('forceBeamColumn',150,47,5,1,1)
#ops.element('forceBeamColumn',2,2,6,2,1)
ops.element('forceBeamColumn',2,2,48,2,1)
ops.element('forceBeamColumn',151,48,6,2,1)
#ops.element('forceBeamColumn',3,3,7,3,1)
ops.element('forceBeamColumn',3,3,49,3,1)
ops.element('forceBeamColumn',152,49,7,3,1)
#ops.element('forceBeamColumn',4,4,8,4,1)
ops.element('forceBeamColumn',4,4,50,4,1)
ops.element('forceBeamColumn',153,50,8,4,1)
ops.element('forceBeamColumn',5,5,9,1,1)
ops.element('forceBeamColumn',6,6,10,2,1)
ops.element('forceBeamColumn',7,7,11,3,1)
ops.element('forceBeamColumn',8,8,12,4,1)
ops.element('forceBeamColumn',9,9,13,1,1)
ops.element('forceBeamColumn',10,10,14,2,1)
ops.element('forceBeamColumn',11,11,15,3,1)
ops.element('forceBeamColumn',12,12,16,4,1)
ops.element('forceBeamColumn',13,13,17,1,1)
ops.element('forceBeamColumn',14,14,18,2,1)
ops.element('forceBeamColumn',15,15,19,3,1)
ops.element('forceBeamColumn',16,16,20,4,1)
ops.element('forceBeamColumn',17,17,21,1,1)
ops.element('forceBeamColumn',18,18,22,2,1)
ops.element('forceBeamColumn',19,19,23,3,1)
ops.element('forceBeamColumn',20,20,24,4,1)
ops.element('forceBeamColumn',21,21,33,5,1)
ops.element('forceBeamColumn',22,22,34,5,1)
ops.element('forceBeamColumn',23,23,35,5,1)
ops.element('forceBeamColumn',24,24,36,5,1)
d = 20*inch
t = 0.625*inch
A,Iz,Iy,Jxx = BoxSection(d,t)
ops.element('forceBeamColumn',25,25,37,5,2)
ops.element('forceBeamColumn',26,26,38,5,2)
ops.element('forceBeamColumn',27,27,39,5,2)
ops.element('forceBeamColumn',28,28,40,5,2)
ops.element('forceBeamColumn',29,29,41,5,2)
ops.element('forceBeamColumn',30,30,42,5,2)
ops.element('forceBeamColumn',31,31,43,5,2)
ops.element('forceBeamColumn',32,32,44,5,2)
ops.element('forceBeamColumn',57,21,22,6,2)
ops.element('forceBeamColumn',58,22,23,7,2)
ops.element('forceBeamColumn',59,23,24,8,2)
ops.element('forceBeamColumn',60,24,21,9,2)
ops.element('forceBeamColumn',61,25,21,6,2)
ops.element('forceBeamColumn',62,22,28,6,2)
ops.element('forceBeamColumn',63,32,24,6,2)
ops.element('forceBeamColumn',64,23,29,6,2)
ops.element('forceBeamColumn',65,26,21,7,2)
ops.element('forceBeamColumn',66,24,31,7,2)
ops.element('forceBeamColumn',67,27,22,7,2)
ops.element('forceBeamColumn',68,23,30,7,2)
ops.element('forceBeamColumn',69,33,34,6,2)
ops.element('forceBeamColumn',70,34,35,7,2)
ops.element('forceBeamColumn',71,35,36,8,2)
ops.element('forceBeamColumn',72,36,33,9,2)
ops.element('forceBeamColumn',73,37,33,6,2)
ops.element('forceBeamColumn',74,34,40,6,2)
ops.element('forceBeamColumn',75,44,36,6,2)
ops.element('forceBeamColumn',76,35,41,6,2)
ops.element('forceBeamColumn',77,38,33,7,2)
ops.element('forceBeamColumn',78,36,43,7,2)
ops.element('forceBeamColumn',79,39,34,7,2)
ops.element('forceBeamColumn',80,35,42,7,2)
ops.element('forceBeamColumn',121,25,33,20,2)
ops.element('forceBeamColumn',122,21,37,21,2)
ops.element('forceBeamColumn',123,21,34,22,2)
ops.element('forceBeamColumn',124,22,33,23,2)
ops.element('forceBeamColumn',125,22,40,20,2)
ops.element('forceBeamColumn',126,28,34,21,2)
ops.element('forceBeamColumn',127,32,36,20,2)
ops.element('forceBeamColumn',128,24,44,21,2)
ops.element('forceBeamColumn',129,24,35,22,2)
ops.element('forceBeamColumn',130,23,36,23,2)
ops.element('forceBeamColumn',131,23,41,20,2)
ops.element('forceBeamColumn',132,29,35,21,2)
ops.element('forceBeamColumn',133,26,33,24,2)
ops.element('forceBeamColumn',134,21,38,25,2)
ops.element('forceBeamColumn',135,21,36,26,2)
ops.element('forceBeamColumn',136,24,33,27,2)
ops.element('forceBeamColumn',137,24,43,24,2)
ops.element('forceBeamColumn',138,31,36,25,2)
ops.element('forceBeamColumn',139,27,34,24,2)
ops.element('forceBeamColumn',140,22,39,25,2)
ops.element('forceBeamColumn',141,22,35,26,2)
ops.element('forceBeamColumn',142,23,34,27,2)
ops.element('forceBeamColumn',143,23,42,24,2)
ops.element('forceBeamColumn',144,30,35,25,2)
# HSS12X12x1/2 (76.07lb/ft)
d = 12*inch
t = 0.5*inch
A,Iz,Iy,J = BoxSection(d,t)
GJ = G*J
tag = 202
matTag = 501
Nfw = 4
Nff = 1
ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',3,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',3,202,4)
ops.element('forceBeamColumn',37,5,7,10,3)
ops.element('forceBeamColumn',38,6,8,11,3)
ops.element('forceBeamColumn',43,9,11,10,3)
ops.element('forceBeamColumn',44,10,12,11,3)
ops.element('forceBeamColumn',55,17,19,10,3)
ops.element('forceBeamColumn',56,18,20,11,3)
# HSS14X14x5/8 (110.36lb/ft)
d = 14*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)
GJ = G*J
tag = 203
matTag = 503
Nfw = 4
Nff = 1
ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',4,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',4,203,4)
ops.element('forceBeamColumn',33,5,6,6,4)
ops.element('forceBeamColumn',34,6,7,7,4)
ops.element('forceBeamColumn',35,7,8,8,4)
ops.element('forceBeamColumn',36,8,5,9,4)
ops.element('forceBeamColumn',39,9,10,6,4)
ops.element('forceBeamColumn',40,10,11,7,4)
ops.element('forceBeamColumn',41,11,12,8,4)
ops.element('forceBeamColumn',42,12,9,9,4)
ops.element('forceBeamColumn',45,13,14,6,4)
ops.element('forceBeamColumn',46,14,15,7,4)
ops.element('forceBeamColumn',47,15,16,8,4)
ops.element('forceBeamColumn',48,16,13,9,4)
ops.element('forceBeamColumn',51,17,18,6,4)
ops.element('forceBeamColumn',52,18,19,7,4)
ops.element('forceBeamColumn',53,19,20,8,4)
ops.element('forceBeamColumn',54,20,17,9,4)
#ops.element('forceBeamColumn',81,1,6,12,4)
ops.element('forceBeamColumn',81,1,51,12,4)
ops.element('forceBeamColumn',154,51,6,12,4)
#ops.element('forceBeamColumn',82,2,5,13,4)
ops.element('forceBeamColumn',82,2,52,13,4)
ops.element('forceBeamColumn',155,52,5,13,4)
#ops.element('forceBeamColumn',83,2,7,14,4)
ops.element('forceBeamColumn',83,2,53,14,4)
ops.element('forceBeamColumn',156,53,7,14,4)
#ops.element('forceBeamColumn',84,3,6,15,4)
ops.element('forceBeamColumn',84,3,54,15,4)
ops.element('forceBeamColumn',157,54,6,15,4)
#ops.element('forceBeamColumn',85,3,8,16,4)
ops.element('forceBeamColumn',85,3,55,16,4)
ops.element('forceBeamColumn',158,55,8,16,4)
#ops.element('forceBeamColumn',86,4,7,17,4)
ops.element('forceBeamColumn',86,4,56,17,4)
ops.element('forceBeamColumn',159,56,7,17,4)
#ops.element('forceBeamColumn',87,4,5,18,4)
ops.element('forceBeamColumn',87,4,57,18,4)
ops.element('forceBeamColumn',160,57,5,18,4)
#ops.element('forceBeamColumn',88,1,8,19,4)
ops.element('forceBeamColumn',88,1,58,19,4)
ops.element('forceBeamColumn',161,58,8,19,4)
ops.element('forceBeamColumn',89,5,10,12,4)
ops.element('forceBeamColumn',90,6,9,13,4)
ops.element('forceBeamColumn',91,6,11,14,4)
ops.element('forceBeamColumn',92,7,10,15,4)
ops.element('forceBeamColumn',93,7,12,16,4)
ops.element('forceBeamColumn',94,8,11,17,4)
ops.element('forceBeamColumn',95,8,9,18,4)
ops.element('forceBeamColumn',96,5,12,19,4)
ops.element('forceBeamColumn',97,9,14,12,4)
ops.element('forceBeamColumn',98,10,13,13,4)
ops.element('forceBeamColumn',99,10,15,14,4)
ops.element('forceBeamColumn',100,11,14,15,4)
ops.element('forceBeamColumn',101,11,16,16,4)
ops.element('forceBeamColumn',102,12,15,17,4)
ops.element('forceBeamColumn',103,12,13,18,4)
ops.element('forceBeamColumn',104,9,16,19,4)
ops.element('forceBeamColumn',105,13,18,12,4)
ops.element('forceBeamColumn',106,14,17,13,4)
ops.element('forceBeamColumn',107,14,19,14,4)
ops.element('forceBeamColumn',113,17,22,12,4)
ops.element('forceBeamColumn',114,18,21,13,4)
ops.element('forceBeamColumn',115,18,23,14,4)
ops.element('forceBeamColumn',116,19,22,15,4)
ops.element('forceBeamColumn',117,19,24,16,4)
ops.element('forceBeamColumn',118,20,23,17,4)
ops.element('forceBeamColumn',119,20,21,18,4)
ops.element('forceBeamColumn',120,17,24,19,4)
# CARGAS DE GRAVEDAD
# Nodos de apoyo 4 columnas X 04 niveles
na = 18.0*kip
ops.timeSeries('Constant',12)
ops.pattern('Plain',10,12)
# Cargas-Nodos de apoyo
ops.load(5,0.0,0.0,-na,0,0,0)
ops.load(6,0.0,0.0,-na,0,0,0)
ops.load(7,0.0,0.0,-na,0,0,0)
ops.load(8,0.0,0.0,-na,0,0,0)
ops.load(9,0.0,0.0,-na,0,0,0)
ops.load(10,0.0,0.0,-na,0,0,0)
ops.load(11,0.0,0.0,-na,0,0,0)
ops.load(12,0.0,0.0,-na,0,0,0)
ops.load(13,0.0,0.0,-na,0,0,0)
ops.load(14,0.0,0.0,-na,0,0,0)
ops.load(15,0.0,0.0,-na,0,0,0)
ops.load(16,0.0,0.0,-na,0,0,0)
ops.load(17,0.0,0.0,-na,0,0,0)
ops.load(18,0.0,0.0,-na,0,0,0)
ops.load(19,0.0,0.0,-na,0,0,0)
ops.load(20,0.0,0.0,-na,0,0,0)
#Cargas en los nudos del piso del tanque: 04 nudos interiores y 08 exteriores
Mnpint = npint/g
Mnpext = npext/g
# Definicion de las cargas de gravedad de 100kip en la parte superior del tanque elevado
#ops.load(37,100.0*kip,0.0,0.0,0.0,0.0,0.0)
#ops.load(38,0.0,100.0*kip,0.0,0.0,0.0,0.0)
ops.constraints('Transformation')
#ops.numberer('Plain')
ops.numberer('RCM')
#ops.system('BandGen')
ops.system('UmfPack')
ops.test('NormDispIncr',1.0e-8,7)
ops.algorithm('Newton')
ops.integrator('LoadControl',0.1)
ops.analysis('Static')
ops.analyze(10)
ops.loadConst('-time',0.0)
#ops.constraints('Transformation')
#ops.analysis('Static')
#ops.analyze(1)
#ops.reactions()
# Desplazamiento(Nudo 33)
print(f'Node 33 ux={ops.nodeDisp(33,1)}mm')
print(f'Node 33 uy={ops.nodeDisp(33,2)}mm')
print('nivel 0')
print(f'Node 1 Desplz en z={ops.nodeDisp(1,3)}')
print(f'Node 2 Desplz en z={ops.nodeDisp(2,3)}')
print(f'Node 3 Desplz en z={ops.nodeDisp(3,3)}')
print(f'Node 4 Desplz en z={ops.nodeDisp(4,3)}')
Out[8]:
<Axes3DSubplot:xlabel='X', ylabel='Y'>
8.-ANALISIS DE EIGENVALUE
In [9]:
N = 4
omegaSquared = ops.eigen(N)
#omegaSquared = ops.eigen('-fullGenLapack',N)
for mode in range(N):
omega = omegaSquared[mode]**0.5
T = 2*np.pi/omega
print(f'Period, mode {mode+1} = {T}')
M = 15
N = 15
opsv.plot_mode_shape(mode+1,fig_wi_he=(M,N))
ndf = 4
N = 4
for n in range(N):
Mn = 0.0
Ln = 0.0
for nd in ops.getNodeTags():
ndMass = ops.nodeMass(nd)
ndEigen = ops.nodeEigenvector(nd,n+1)
Ln += ndEigen[0]*ndMass[0]
for dof in range(ndf):
Mn +=(ndEigen[dof]**2)*ndMass[dof]
Gamman = Ln/Mn
Tn = 2*np.pi/omegaSquared[n]**0.5
print(f'Mode {n+1}, Tn = {Tn}, Mn = {Mn}, Gamma = {Gamman}')
In [10]:
omega1 = 2*np.pi/(5.0*sec)
omega2 = 2*np.pi/(0.5*sec)
b = np.zeros(2)
b[0] = 2*zeta1
b[1] = 2*zeta2
a = np.linalg.solve(B,b)
print(f'a = {a}')
a = [0.04569589 0.00289373]
In [11]:
# M KT KI Kn
ops.rayleigh(a[0],0.0,0.0,a[1])
# Vectores de ploteo
uPlot = []
VbPlot = []
ops.timeSeries('Linear',777,'-factor',0.3*g/min)
ops.pattern('UniformExcitation',7777,1,'-accel',777)
ops.analysis('Transient')
for i in range(Nsteps):
ok=ops.analyze(1,dt)
if ok < 0:
break
ops.reactions('-dynamic')
plt.figure()
plt.plot(-uPlot,VbPlot,linewidth=2)
plt.xlabel('Desp Azotea (mm)')
plt.ylabel('Cortante Basal (kN)')
#plt.xlim(0,17)
plt.grid()
#opsv.plot_defo(10)
M = 35
N = 35
opsv.plot_defo(fig_wi_he=(M,N))
Out[11]:
6.007034317502477
In [12]:
ops.remove('loadPattern',777)
ops.reset()
In [13]:
# M KT KI Kn
ops.rayleigh(a[0],0.0,0.0,a[1])
# Definir el registro
# dt = 0.02 es la digitalizacion del registro
ops.timeSeries('Path',5,'-dt',0.02,'-filePath','tabasFN.txt','-factor',1.0*g)
ops.pattern('UniformExcitation',88,1,'-accel',5) # 1 es para la direccion x
ops.timeSeries('Path',6,'-dt',0.02,'-filePath','tabasFP.txt','-factor',1.0*g)
ops.pattern('UniformExcitation',888,2,'-accel',6) # 2 es para la direccion y
ops.integrator('Newmark',0.50,0.25)
ops.analysis('Transient') # Auntomatica utiliza Newmark Accel Cons gamma=1/2, beta =1/4
tPlot = []
uxPlot = []
VbxPlot = []
Pl11Plot = []
Pl12Plot = []
Pl13Plot = []
Pl14Plot = []
tPlot = []
uyPlot = []
VbyPlot = []
# Retorna el tiempo
t = ops.getTime()
P1 = ops.basicForce(1)[0]
P2 = ops.basicForce(2)[0]
P3 = ops.basicForce(3)[0]
P4 = ops.basicForce(4)[0]
plt.figure()
plt.plot(tPlot,uxPlot,color='green',label="Direccion(X)-ux vs t")
plt.plot(tPlot,uyPlot,color='red',label="Direccion(Y)-uy vs t")
plt.title('Historia de Respuestas de desplazamientos de techo en las direcciones X e Y')
plt.xlabel('Tiempo, t(sec)',fontsize=13)
plt.ylabel('Despl Azotea X e Y (mm)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()
plt.figure()
plt.plot(tPlot,VbxPlot,color='purple',label="Direccion(X)-Vbx vs t")
plt.plot(tPlot,VbyPlot,color='black',label="Direccion(Y)-Vby vs t")
plt.title('Historia de Respuestas de cortantes basales en las direcciones X e Y')
plt.xlabel('Tiempo, t(sec)',fontsize=13)
plt.ylabel('Corte Basal (kN)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()
plt.figure()
plt.plot(uxPlot,VbxPlot,color='purple',label="Direccion(X)-Vbx vs ux")
plt.plot(uyPlot,VbyPlot,color='green',label="Direccion(X)-Vby vs uy")
plt.title('Respuesta ciclica del cortante basal vs desplazamiento de techo')
plt.xlabel('Despl Azotea X e Y, (mm)',fontsize=13)
plt.ylabel('Corte Basal (kN)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()
d = 30*inch
#plt.figure()
#plt.plot(tPlot,Pl33Plot)
#plt.title('Elemento 3 - Extremo I')
#plt.xlabel('Tiempo, t(sec)')
#plt.ylabel('Momento (kip-in)')
#plt.grid()
#opsv.plot_defo(10)
M = 35
N = 35
opsv.plot_defo(fig_wi_he=(M,N))
In [14]:
ops.remove('loadPattern',2)
ops.reset()
In [15]:
ops.integrator('LoadControl',0.0)
ops.analysis('Static')
ops.analyze(1)
Out[15]:
12.-COMENTARIOS
12.1.1-Se define las masas nodales traslacionales(En direcciones X, Y, Z) y la constante gravitacional, g=9.81m/s2, manteniendo las cargas muertas del modelo.