You are on page 1of 22

Tutorial1

In [1]: import numpy as np


import pandas as pd
import matplotlib.pyplot as plt
import math as mt
%matplotlib inline

QN1
Fluid Damper
Linear Acceleration Method

In [2]: M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
dt=0.02
time=np.arange(0,5,0.02)

a=6/dt**2*M+3/dt*C
b=6/dt*M+2*C
c=2*M+dt/2*C

kinv=1/(K+a)
minv=1/M
dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-J*ug[i]-minv*(C*u0i+K*ui)
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fi=a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-minv*(C*u0i+K*ui)
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
for i in np.arange(1,16,1):

Fd=-M*J*ug[i]-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd

u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-J*ug[i]-minv*(C*u0i+K*ui)
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fd=-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd

u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-minv*(C*u0i+K*ui)
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()

Wilson Thita Method

In [3]: th=1.2
M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])

dt=0.02
time=np.arange(0,5,0.02)
a=6/(th*dt)**2*M+3/(th*dt)*C
b=6/th/dt*M+2*C
c=2*M+th*dt/2*C
kinv=1/(K+a)
minv=1/M
dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
for i in np.arange(1,16,1):

Fd=-M*J*ug[i]-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fd=-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()

Newmark Beta Method

In [11]: alpha=0.1
beta=0.5
M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])

dt=0.02
time=np.arange(0,5,0.02)
kinv=1/(1/alpha/dt**2*M+beta/alpha/dt*C+K)

dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=-mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()
QN2
Friction Damper
Newmark Beta Method

In [10]: alpha=0.1
beta=0.5
sload=80
astiff=280
M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])

dt=0.02
time=np.arange(0,5,0.02)

xyt=sload/astiff
xyc=-sload/astiff

kinv=1/(1/alpha/dt**2*M+beta/alpha/dt*C+K)

dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)\
*u0+(beta/alpha-2)*dt/2*u00)
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
DF=0
s=0
for i in np.arange(1,16,1):
Fi=-M*J*ug[i]-DF+M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)

ui=kinv*Fi

if ui>=1.179*xyc and ui<=1.179*xyt: #1.179 is 1/cos(thita)


DF=280*(0.848*abs(ui)-s) #0.848 is cos(thita)
elif ui>1.179*xyt:
DF=sload
if u0i<0:
s=0.848*ui-sload/astiff
xyt=0.848*ui
xyc=0.848*ui-2*sload/astiff
elif u<1.179*xyc:
DF=-sload
if u0i>0:
s=0.848*ui+sload/astiff
xyc=0.848*ui
xyt=0.848*ui+2*sload/astiff
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):
Fi=-DF+M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+\
(1/2/alpha-1)*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00)
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i

if ui>=1.179*xyc and ui<=1.179*xyt: # 1.179 is 1/cos(thita)


if ui<0:
DF=280*(0.848*abs(ui)-s) # 0.848 is cos(thita)
elif ui>1.179*xyt:
DF=sload
if u0i<0:
s=0.848*ui-sload/astiff
xyt=0.848*ui
xyc=0.848*ui-2*sload/astiff

elif ui<1.179*xyc:
DF=-sload
if u0i>0:
s=0.848*ui+sload/astiff
xyc=0.848*ui
xyt=0.848*ui+2*sload/astiff
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()

Wilson Thita

In [6]: th=1.2
sload=80
astiff=280

M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])

dt=0.02
time=np.arange(0,5,0.02)

a=6/(th*dt)**2*M+3/(th*dt)*C
b=6/th/dt*M+2*C
c=2*M+th*dt/2*C
kinv=1/(K+a)
minv=1/M
dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.
## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
DF=0
s=0

for i in np.arange(1,16,1):

Fd=-M*J*ug[i]-DF+a*u+b*u0+c*u00
ui=kinv*Fd

if ui>=1.179*xyc and ui<=1.179*xyt: #1.179 is 1/cos(thita)


DF=280*(0.848*abs(ui)-s) #0.848 is cos(thita)
elif ui>1.179*xyt:
DF=sload
if u0i<0:
s=0.848*ui-sload/astiff
xyt=0.848*ui
xyc=0.848*ui-2*sload/astiff
elif u<1.179*xyc:
DF=-sload
if u0i>0:
s=0.848*ui+sload/astiff
xyc=0.848*ui
xyt=0.848*ui+2*sload/astiff
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fd=-DF+a*u+b*u0+c*u00
ui=kinv*Fd

if ui>=1.179*xyc and ui<=1.179*xyt: #1.179 is 1/cos(thita)


DF=280*(0.848*abs(ui)-s) #0.848 is cos(thita)
elif ui>1.179*xyt:
DF=sload
if u0i<0:
s=0.848*ui-sload/astiff
xyt=0.848*ui
xyc=0.848*ui-2*sload/astiff
elif u<1.179*xyc:
DF=-sload
if u0i>0:
s=0.848*ui+sload/astiff
xyc=0.848*ui
xyt=0.848*ui+2*sload/astiff

u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()
QN3
Newmark Beta Method

In [7]: G1=0.3
G2=0.4
L=73
w=13
h=1.6 # 1.6 is assumed value
kd=G1*L*w/h
cd=G2*L*w/(2*3.14/0.333)/h

k=356+kd*0.848**2
c=0.755+cd*0.848**2

alpha=0.1
beta=0.5
M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])

T=2*3.14*mt.sqrt(M/k)
xi=c/2/mt.sqrt(k*M)

u=np.array([0])
u0=np.array([0])
u00=np.array([0])
dt=0.02
time=np.arange(0,5,0.02)

kinv=1/(1/alpha/dt**2*M+beta/alpha/dt*C+K)
kinvd=1/(1/alpha/dt**2*M+beta/alpha/dt*c+k)

dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=M*(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)\
*u00)+C*(beta/alpha/dt*u+(beta/alpha-1)\
*u0+(beta/alpha-2)*dt/2*u00)
ui=kinv*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
DF=0
s=0

for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+(1/2/alpha-1)*u00)+c*(beta/alpha/dt*u+(beta/alpha-1)
ui=kinvd*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i

disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fi=M*\
(1/alpha/dt**2*u+1/alpha/dt*u0+\
(1/2/alpha-1)*u00)+c*(beta/alpha/dt*u+(beta/alpha-1)*u0+(beta/alpha-2)*dt/2*u00)
ui=kinvd*Fi
u00i=1/alpha/dt**2*(ui-u)-1/alpha/dt*u0-(1/2/alpha-1)*u00
u0i=u0+(1-beta)*dt*u00+beta*dt*u00i

disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
##pd.set_option("max_rows", None)
ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
##display(dvelocity)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()
Wilson Thita

In [8]: th=1.4
sload=80
astiff=280

G1=0.3
G2=0.4
L=73
w=13
h=1.6 # 1.6 is assumed value
kd=G1*L*w/h
cd=G2*L*w/(2*3.14/0.333)/h

k=356+kd*0.848**2
cc=0.755+cd*0.848**2

M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])

T=2*3.14*mt.sqrt(M/k)
xi=c/2/mt.sqrt(k*M)

dt=0.02
time=np.arange(0,5,0.02)
kinv=1/(1/alpha/dt**2*M+beta/alpha/dt*C+K)
kinvd=1/(1/alpha/dt**2*M+beta/alpha/dt*c+k)

a=6/(th*dt)**2*M+3/(th*dt)*C
b=6/th/dt*M+2*C
c=2*M+th*dt/2*C
kinv=1/(K+a)
minv=1/M
dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.

## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
for i in np.arange(1,235,1):

Fi=a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

a=6/(th*dt)**2*M+3/(th*dt)*cc
b=6/th/dt*M+2*cc
c=2*M+th*dt/2*cc
kinv=1/(k+a)
## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])

for i in np.arange(1,16,1):

Fd=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fd
u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fd=a*u+b*u0+c*u00
ui=kinv*Fd

u0i=3/th/dt*(ui-u)-2*u0-th*dt/2*u00
u00i=6/(th*dt)**2*(ui-u)-6/th/dt*u0-2*u00
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()
QN4
Fluid Damper
Linear acceleration method

In [9]: M=np.array([1])
K=(2*3.14/0.33)**2*M[0]
C=2*0.02*2*3.14/0.33*M[0]
J=np.array([1])
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
dt=0.02
time=np.arange(0,5,0.02)

a=6/dt**2*M+3/dt*C
b=6/dt*M+2*C
c=2*M+dt/2*C

kinv=1/(K+a)
minv=1/M
dis=np.array([0])
vel=np.array([0])
acc=np.array([0])
ug=np.array([0,-3,0.749,-1.56,-3.39,-2.05,0.112,1.65,1.1,-0.485,-2.09,-1.54,1.2,3.35,3.
## Without damper
for i in np.arange(1,16,1):

Fi=-M*J*ug[i]+a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-J*ug[i]-minv*(C*u0i+K*ui)
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fi=a*u+b*u0+c*u00
ui=kinv*Fi
u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-minv*(C*u0i+K*ui)
dis=np.append(dis,ui,axis=0)
vel=np.append(vel,u0i,axis=0)
acc=np.append(acc,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

displacement=pd.DataFrame(dis)
velocity=pd.DataFrame(vel)
acceleration=pd.DataFrame(acc)

## With Damper
u=np.array([0])
u0=np.array([0])
u00=np.array([0])
disd=np.array([0])
veld=np.array([0])
accd=np.array([0])
for i in np.arange(1,16,1):

Fd=-M*J*ug[i]-2*mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd

u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-J*ug[i]-minv*(C*u0i+K*ui)
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i

for i in np.arange(1,235,1):

Fd=-2*mt.sin(u0+u00*dt)*6.45*(abs(u0+u00*dt))**0.5+a*u+b*u0+c*u00
ui=kinv*Fd

u0i=3/dt*(ui-u)-2*u0-dt/2*u00
u00i=-minv*(C*u0i+K*ui)
disd=np.append(disd,ui,axis=0)
veld=np.append(veld,u0i,axis=0)
accd=np.append(accd,u00i,axis=0)
u=ui
u0=u0i
u00=u00i
ddisplacement=pd.DataFrame(disd)
dvelocity=pd.DataFrame(veld)
dacceleration=pd.DataFrame(accd)

plt.figure(figsize=(14,10))
plt.subplot(311)
plt.plot(time,displacement[0], "g",time,ddisplacement[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.subplot(312)
plt.plot(time,velocity[0], "g",time,dvelocity[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Velocity')
plt.subplot(313)
plt.plot(time,acceleration[0], "g",time,dacceleration[0], "b")
plt.legend(loc="best",labels=['without damper','with damper'])
plt.xlabel('Time')
plt.ylabel('Acceleration')
plt.tight_layout()

In [ ]:

You might also like