動的サブストラクチャ解析の一つに、建屋の一部(または全部)が表層地盤に埋め込まれた構造を、地盤の応答解析の結果を引き継ぎ、建屋の応答解析を実施するという方法があります。
この場合、建屋側面地盤の非線形性を等価線形解析で求め、この物性で求めた建屋側面のインピーダンスから地盤剛性と地盤減衰を算出して、建屋に接続して解析を行うことが一般的です。
以下は、その一連の解析を、入力地震動を変更しながら、また地盤物性と建屋減衰を変更してAEiスクリプトで連続実行するデモです。
入力地震動はエルセントロNSと日本建築センター模擬波(基盤波)、八戸NSの3種、地盤物性は標準、+σ、-σの3種、建屋減衰は5%と3%の2種で合計18ケースの解析を実施します。
なお、地盤の応答解析以外は自前のプログラムを使用しております。
地盤の応答解析は吉田望氏が作成されたDYNEQ336を使用させていただきました。
たいへん使いやすく、ドキュメントもしっかりいて素晴らしいものだと思います。
デモ動画のOSはMacOSですが、AEiスクリプトはWindowsでも、Linuxでも動作します。
参考として以下にaeiスクリプトを記載します。
print " aei スクリプトで、入力地震動と地盤物性を変化させ、埋込SRを連続解析して各ケースの解析結果のレポートを作成する"
pause
print "解析定義のExcelから解析ケースのシートを抽出する"
cmd{
excelcsv -proc ex2csv -excel analysis.xlsx -sheet case -csv case.csv
cat case.csv
}
pause
# 連続解析のループ
for i = 1 to 18
L = i + 1
print "解析ケースのCSVから入力波と地盤の情報を変数に代入する"
csvfile = case.csv
$NUM = csv_r[L]_c[1]
$SOIL = csv_r[L]_c[2]
$WAVE = csv_r[L]_c[3]
$WNUM = csv_r[L]_c[4]
$WSTP = csv_r[L]_c[5]
$BLDH = csv_r[L]_c[6]
print "ケースNo = ",$NUM
print "地盤条件 = ",$SOIL
print "入力地震動 = ",$WAVE,"( ",$WSTP,")"
print "建屋減衰 = ",$BLDH
pause
print "各解析データのファイル名を定義する"
$CASE = CASE<$NUM>
$INPUT_WAV = <$WAVE>.wav
$JBNWAV = <$SOIL>_<$WAVE>
$SHAKE_DAT = Shake_<$JBNWAV>.dat
$SHAKE_OUT = Shake_<$JBNWAV>.out
$SHAKE_WAV = Shake_<$JBNWAV>.wav
$NOVAK_DAT = Novak_<$JBNWAV>.dat
$NOVAK_OUT = Novak_<$JBNWAV>.out
$ADMIT_DAT = Admit_<$SOIL>.dat
$ADMIT_OUT = Admit_<$SOIL>.out
$NAMAZ_DAT = <$CASE>_Namaz_<$JBNWAV>_h<$BLDH>.dat
$NAMAZ_OUT = <$CASE>_Namaz_<$JBNWAV>_h<$BLDH>.out
$NAMAZ_WAV = <$CASE>_Namaz_<$JBNWAV>_h<$BLDH>.wav
print "Shake DATA = ",$SHAKE_DAT
print "Novak DATA = ",$NOVAK_DAT
print "Admit DATA = ",$ADMIT_DAT
print "Namaz DATA = ",$NAMAZ_DAT
pause
print "解析定義のExcelから地盤情報を抽出して地盤物性を変数に代入する"
cmd{
excelcsv -proc ex2csv -excel analysis.xlsx -sheet <$SOIL> -csv JIBAN.csv
cat JIBAN.csv
}
csvfile = JIBAN.csv
for j = 1 to 7
M = j + 1
$G[j] = csv_r[M]_c[2]
$VS[j] = csv_r[M]_c[3]
$RO[j] = csv_r[M]_c[4]
$PO[j] = csv_r[M]_c[5]
$T[j] = csv_r[M]_c[6]
$SH[j] = csv_r[M]_c[7]
next j
pause
print "解析定義のExcelから入力波のCSVを抽出してShakeが読み込める書式に変換する"
cmd{
excelcsv -proc ex2csv -excel analysis.xlsx -sheet WAVE -csv WAVE.csv
csv2wav.sh -c WAVE.csv -w <$INPUT_WAV> -r <$WNUM> -s <$WSTP>
}
pause
print "Shakeデータを作成して解析を実行する"
makedata shake.template $SHAKE_DAT
print "Shakeのプログラムは 吉田望 氏 が作成された DYNEQ336 を使わせていただいています。"
cmd{ sub.sh DYNEQ336 $SHAKE_DAT $SHAKE_OUT }
pause
print "アドミッタンスばねデータを作成して解析を実行する"
makedata admit.template $ADMIT_DAT
cmd{ sub.sh admit $ADMIT_DAT $ADMIT_OUT }
pause
print "Shake解析結果からNovakばね計算に必要な情報を取得する"
cmd{
shake2csv.sh -L $SHAKE_OUT -c SHAKE.csv
cat SHAKE.csv
}
csvfile = SHAKE.csv
for j = 1 to 7
$SKG[j] = csv_r[j]_c[1]
$SKVS[j] = csv_r[j]_c[2]
next j
pause
print "novakばねデータを作成して解析を実行する"
makedata novak.template $NOVAK_DAT
cmd{ sub.sh novak $NOVAK_DAT $NOVAK_OUT }
pause
print "アドミッタンスばねのKとCを取り出す(Cの計算は暫定的に1.0Hz)"
cmd{
admit2csv.sh -L $ADMIT_OUT -c ADMIT.csv -f 1.0
cat ADMIT.csv
}
pause
print "novakばねのKとCを取り出す(Cの計算は暫定的に1.0Hz)"
cmd{
novak2csv.sh -L $NOVAK_OUT -c NOVAK.csv -f 1.0
cat NOVAK.csv
}
pause
print "アドミッタンスばねとnovakばねの値を変数に代入する(Cの計算は暫定的に1.0Hz)"
csvfile = ADMIT.csv
$ADMK[1] = csv_r[1]_c[1]
$ADMK[2] = csv_r[2]_c[1]
$ADMC[1] = csv_r[1]_c[3]
$ADMC[2] = csv_r[2]_c[3]
print "SWAY K = ",$ADMK[1]," ROCK K = ",$ADMK[2]
print "SWAY C = ",$ADMC[1]," ROCK C = ",$ADMC[2]
csvfile = NOVAK.csv
for j = 1 to 6
$NVKK[j] = csv_r[j]_c[1]
$NVKC[j] = csv_r[j]_c[3]
print "NOVAK K= ",$NVKK[j]," NOVAK C= ",$NVKC[j]
next j
pause
print "固有値解析用データ作成と実行(一度、1.0Hzの減衰で応答解析を実施する)"
makedata namazu.template $NAMAZ_DAT
cmd{ sub.sh namazu $NAMAZ_DAT $NAMAZ_OUT }
pause
print "解析モデルの地盤-建屋連成1次の振動数を取得する"
cmd{
namazu2csv.sh -L $NAMAZ_OUT -c NAMAZU.csv
cat NAMAZU.csv
}
pause
print "連成1次の減衰を取得する"
csvfile = NAMAZU.csv
$FREQ = csv_r[1]_c[1]
cmd{
admit2csv.sh -L $ADMIT_OUT -c ADMIT.csv -f $FREQ
novak2csv.sh -L $NOVAK_OUT -c NOVAK.csv -f $FREQ
}
pause
print "アドミッタンスばねとnovakばねの値を変数に代入する"
csvfile = ADMIT.csv
$ADMK[1] = csv_r[1]_c[1]
$ADMK[2] = csv_r[2]_c[1]
$ADMC[1] = csv_r[1]_c[3]
$ADMC[2] = csv_r[2]_c[3]
print "SWAY K = ",$ADMK[1]," ROCK K = ",$ADMK[2]
print "SWAY C = ",$ADMC[1]," ROCK C = ",$ADMC[2]
csvfile = NOVAK.csv
for j = 1 to 6
$NVKK[j] = csv_r[j]_c[1]
$NVKC[j] = csv_r[j]_c[3]
print "NOVAK K= ",$NVKK[j]," NOVAK C= ",$NVKC[j]
next j
pause
print "応答解析を実施する"
makedata namazu.template $NAMAZ_DAT
cmd{ sub.sh namazu $NAMAZ_DAT $NAMAZ_OUT }
pause
print "応答スペクトル計算"
pause
cmd{
wav2csv -in $INPUT_WAV -csv <$INPUT_WAV>.csv -fmt '(8f10.0)' -step $WSTP -dt 0.01
wav2csv -in $NAMAZ_WAV -csv <$NAMAZ_WAV>.csv -fmt '(8f10.0)' -step $WSTP -dt 0.01
duhamel -c <$INPUT_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 1 -b 300
duhamel -c <$NAMAZ_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 1 -b 300
duhamel -c <$NAMAZ_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 2 -b 300
duhamel -c <$NAMAZ_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 3 -b 300
duhamel -c <$NAMAZ_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 4 -b 300
duhamel -c <$NAMAZ_WAV>.csv -d 0.05 -s 0.02 -e 5.0 -r 5 -b 300
}
pause
print "一括後処理(関連するCSVファイルを全てTemplateのExcelに貼り付ける)"
cmd{
sr_post.sh <$CASE> <$WAVE> <$SOIL> <$BLDH> <$INPUT_WAV> <$CASE>_<$WAVE>_<$SOIL>_<$BLDH>.xlsx
open <$CASE>_<$WAVE>_<$SOIL>_<$BLDH>.pdf
}
pause
next i