Python Code For Dynamic Analysis of Structures

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

QUESTION 2-A

from numpy import *


import matplotlib.pyplot as plt

g = 9.81
m = 65
k = 1817.3
zeta = 0.05
gama = 1/2
beta = 1/4
dt = 0.1
t = 4.0
no_steps = t / dt

time = arange(0, t, dt)


Ug = array([0, -0.3*g, 0, 0.3*g, 0, 0])
P = -m*Ug

Wn = sqrt(k/m)
C = 2*m*Wn*zeta

a1 = (m/(beta*dt**2)) + (C*gama)/(beta*dt)
a2 = (m/(beta*dt)) + ((gama/beta)-1)*C
a3 = ((1/(2*beta))-1)*m + dt*((gama/(2*beta))-1)*C

Kcap = k + a1

u = 0
v = 0
a = 0

counter = 1.0
ur = []
vr = []
ar = []

while counter <= no_steps:

if counter <= 5:
x = P[int(counter)]
else:
x = 0

Pcap = x + a1*u + a2*v + a3*a

u_new = Pcap/Kcap
v_new = (gama*(u_new - u))/(beta*dt) + v*(1-(gama/beta)) + dt*a*(1-(gama/(2*beta)))
a_new = (u_new - u)/(beta*dt**2) - v/(dt*beta) - a*((1/(2*beta))-1)

u = u_new
v = v_new
a = a_new

ur.append(u)

vr.append(v)

ar.append(a)

print("step %r>>>>> u=%5f m v=%5f m/s a=%5f m/s2" % (counter, u, v, a))


counter += 1

print("-----------------------------")
print("Max u = %5f m Max v = %5f m/s Max a = %5f m/s2" % (max(ur), max(vr),
max(ar)))

plt.plot(time, ur, label='Displacement')


plt.xlabel("Time (s)")
plt.ylabel("Displacement (m)")
plt.legend()
plt.show()
RESULT:

step 1.0>>>>> u=0.006711 m v=0.134220 m/s a=2.684401 m/s2

step 2.0>>>>> u=0.024809 m v=0.227738 m/s a=-0.814037 m/s2

step 3.0>>>>> u=0.035707 m v=-0.009771 m/s a=-3.936153 m/s2

step 4.0>>>>> u=0.023552 m v=-0.233334 m/s a=-0.535100 m/s2

step 5.0>>>>> u=-0.000734 m v=-0.252390 m/s a=0.153980 m/s2

step 6.0>>>>> u=-0.023662 m v=-0.206163 m/s a=0.770559 m/s2

step 7.0>>>>> u=-0.039450 m v=-0.109590 m/s a=1.160895 m/s2

step 8.0>>>>> u=-0.044415 m v=0.010272 m/s a=1.236356 m/s2

step 9.0>>>>> u=-0.037815 m v=0.121734 m/s a=0.992884 m/s2

step 10.0>>>>> u=-0.021890 m v=0.196776 m/s a=0.507953 m/s2

step 11.0>>>>> u=-0.001150 m v=0.218017 m/s a=-0.083128 m/s2

step 12.0>>>>> u=0.018883 m v=0.182636 m/s a=-0.624502 m/s2

step 13.0>>>>> u=0.033134 m v=0.102385 m/s a=-0.980507 m/s2

step 14.0>>>>> u=0.038248 m v=-0.000105 m/s a=-1.069295 m/s2

step 15.0>>>>> u=0.033361 m v=-0.097625 m/s a=-0.881111 m/s2

step 16.0>>>>> u=0.020203 m v=-0.165546 m/s a=-0.477305 m/s2

step 17.0>>>>> u=0.002527 m v=-0.187974 m/s a=0.028747 m/s2

step 18.0>>>>> u=-0.014941 m v=-0.161383 m/s a=0.503061 m/s2

step 19.0>>>>> u=-0.027756 m v=-0.094920 m/s a=0.826210 m/s2

step 20.0>>>>> u=-0.032875 m v=-0.007455 m/s a=0.923075 m/s2

step 21.0>>>>> u=-0.029363 m v=0.077692 m/s a=0.779868 m/s2

step 22.0>>>>> u=-0.018533 m v=0.138920 m/s a=0.444688 m/s2

step 23.0>>>>> u=-0.003498 m v=0.161767 m/s a=0.012270 m/s2

step 24.0>>>>> u=0.011703 m v=0.142260 m/s a=-0.402422 m/s2

step 25.0>>>>> u=0.023187 m v=0.087414 m/s a=-0.694489 m/s2

step 26.0>>>>> u=0.028204 m v=0.012922 m/s a=-0.795362 m/s2

step 27.0>>>>> u=0.025786 m v=-0.061273 m/s a=-0.688539 m/s2

step 28.0>>>>> u=0.016909 m v=-0.116264 m/s a=-0.411278 m/s2

step 29.0>>>>> u=0.004148 m v=-0.138953 m/s a=-0.042506 m/s2

step 30.0>>>>> u=-0.009055 m v=-0.125113 m/s a=0.319320 m/s2


step 31.0>>>>> u=-0.019312 m v=-0.080034 m/s a=0.582263 m/s2

step 32.0>>>>> u=-0.024150 m v=-0.016719 m/s a=0.684037 m/s2

step 33.0>>>>> u=-0.022596 m v=0.047806 m/s a=0.606461 m/s2

step 34.0>>>>> u=-0.015354 m v=0.097028 m/s a=0.377968 m/s2

step 35.0>>>>> u=-0.004546 m v=0.119131 m/s a=0.064107 m/s2

step 36.0>>>>> u=0.006900 m v=0.109788 m/s a=-0.250965 m/s2

step 37.0>>>>> u=0.016034 m v=0.072898 m/s a=-0.486841 m/s2

step 38.0>>>>> u=0.020639 m v=0.019197 m/s a=-0.587188 m/s2

step 39.0>>>>> u=0.019758 m v=-0.036810 m/s a=-0.532951 m/s2

step 40.0 >>>>> u=0.013881 m v=-0.080729 m/s a=-0.345419 m/s2

Max u = 0.038248 m Max v = 0. 227738 m/s Max a = 2.684401 m/s2

You might also like