変位応答スペクトル。

ここでは、1質点における、ある固有周期に対する

変位の最大値を出す作業を行う。

横軸に固有周期

縦軸に変位の最大値を対応させれば、

変位応答スペクトルのグラフが出せる。


以下のプログラムは

エルセントロのNS地震波のデータ「NLCNN」を読み込んでいる。

それにより、Newmarkのβ法を用いて、変位・速度・加速度を出している。




real h,w,dt,Sacc(0:3000),beta,pi,T
real acc(0:3000),vel(0:3000),def(0:3000),def2(0:3000)
real defmax(0:3000)
integer i

open(1,file='ELCNN.csv',status='old')


acc(0)=Sacc(0)
vel(0)=0.
def(0)=0.
dt =0.02
pi =3.14159265358979


write(*,*) 'beta?'
read(5,*) beta
write(*,*) 'h?'
read(5,*) h

do 110 i=0,2687
read(1,*) Sacc(i)
110 continue


do 200 j=1,250
T=j*0.1
w=2*pi/T
defmax(j)=0



do 10 i=0,2687

acc(i+1)=-((Sacc(i)+(w**2.)*def(i)+(2.*h*w+(w**2.)*dt)*vel(i))
& +(h*w*dt+(0.5-beta)*(w**2.)*(dt**2.))*acc(i))
& /(1.+h*w*dt+beta*(w**2)*(dt**2))

vel(i+1)=vel(i)+(acc(i+1)+acc(i))*dt/2.

def(i+1)=def(i)+vel(i)*dt+(0.5-beta)*acc(i)*(dt**2.)
& +beta*acc(i+1)*(dt**2.)

if(def(i+1).LT.0.) then
def2(i)=-def(i)
else
def2(i)=def(i)
endif


if(def2(i).gt.defmax(j)) then
defmax(j)=def2(i)
endif

10 continue



open(2,file='def.csv',status='new')
write(2,100) defmax(j)
100 format(f15.6)


200 continue
stop
end





また、コピペのため、ずれております。


現在、fortranにて、変位応答スペクトルを作成しようと頑張っているのですが、

その前段階として、Newmarkのβ法により

変位、速度、加速度を求めるプログラムを作成いたしました。


こんな感じで。





real h,w,dt,Sacc(0:3000),beta,pi,T
   real acc(0:3000),vel(0:3000),def(0:3000)
integer i

open(1,file='ELCNN.csv',status='old')



dt =0.02
pi =3.14159265358979

write(*,*) 'beta?'
read(5,*) beta
write(*,*) 'T?'
read(5,*) T
write(*,*) 'h?'
read(5,*) h

w=2*pi/T

open(2,file='acc.csv',status='new')
open(3,file='vel.csv',status='new')
open(4,file='def.csv',status='new')

do 110 i=0,2687
read(1,*) Sacc(i)
110 continue


acc(0)=Sacc(0)
vel(0)=0.
def(0)=0.


do 10 i=0,2687

acc(i+1)=-((Sacc(i)+(w**2.)*def(i)+(2.*h*w+(w**2.)*dt)*vel(i))
& +(h*w*dt+(0.5-beta)*(w**2.)*(dt**2.))*acc(i))
& /(1.+h*w*dt+beta*(w**2)*(dt**2))

vel(i+1)=vel(i)+(acc(i+1)+acc(i))*dt/2.

def(i+1)=def(i)+vel(i)*dt+(0.5-beta)*acc(i)*(dt**2.)
& +beta*acc(i+1)*(dt**2.)


write(2,100) acc(i)
write(3,100) vel(i)
write(4,100) def(i)
100 format(f15.6)
10 continue
stop
end



コピペしたので、多少ずれてますが。


実は、かなり前に、計算結果を出すことはできていたのですが、

久しぶりに回してみたら、うまくできなくて。


よく調べてみても、計算式は合ってるし。


結果的におかしかったのは、「i」に0を含ませていたこと。

だから、最初の条件に0:3000の0を記入がされておりませんでした。


基本的に、


整数の後にはピリオドをつける

分数は使わない


などのことを心がけたほうが良いということを教わりました。


大会のため、広島に行ってきたわけですが、

構造の論文の発表は、正直、何言ってるのかよくわからない。

もちろん、プレゼンの上手下手はあるだろうけど、

根本的に自分の知識量が少ない。

そんなことを心から実感した3日間でした。

特殊な柱梁接合部の解析を行うため、

ノーマルな接合部の解析を行い、解析ソフトに慣れようと試みている。


そのノーマル接合部のモデリングが終わった。

といっても、角型鋼管の柱にH型鋼の梁がついてるだけで、


あとは、ダイアフラムを入れるくらい。

ただ、意外と時間がかかった。


実験のお手伝いと平行してやっていたためとはいえ、

計画性の無さに反省をしたい。


境界条件等のデータもざっくり作成したけど、

使えるかどうかわからない。

柱・梁接合部のパネル部分について実験しているのですが、

今回、ウェブの下フランジが座屈している様子を見ることができました。


そして、最終的には、層間変形角「1/20」まで変形させたのですが、

スカラップ(改良型)の付け根の部分に亀裂が入ってました。


脆性破壊ではないようで、通常の建物もこのくらい変形すれば、

このように破壊していくのだな、

と思いながら、先輩に、


「どのくらいの地震を想定しているのですか?」


と尋ねたら、こんな大きな変形は普通はしないそうで。

貴重なものを見れた3体目の試験体でした。


残りあと1体。