2024/11/10

OpenSeesPyによる多質点モデルの時刻歴応答解析④

 では、これまでに設定したモデル、荷重、解析条件に従って、時刻歴応答解析を行い結果を出力します。時刻歴結果の出力にあたっては、各時刻の応答加速度、速度、変位をそれぞれ取得するために以下のコードを記述し、結果出力用のディクショナリを作成します。
  
outputs = {
"time": [],
"rel_accel": [],
"rel_vel": [],
"rel_disp": [],
}

 次に、全解析ステップの解析を解析時間の終了ステップまで指定した時間刻みで実施し、各ステップの解析結果(解析モデルの節点の応答加速度、応答速度、応答変位)をそれぞれ設定したディクショナリに記録します。結果の取得においてはいずれも、OpenSeesPyのOutputcommandを使用しています。

analysis_time = (len(values)) * dt#解析時間の算定
#解析時刻が解析終了時刻になるまで以下をループ
while op.getTime()< analysis_time:
    #現時刻の取得
    curr_time = op.getTime()
    #OpenSeesの構造解析を1ステップ分実行
    op.analyze(1, dt)    #各解析ステップの時刻、節点加速度、節点速度、節点変位の取得(節点4)
    outputs["time"].append(curr_time)
    outputs["rel_disp"].append(op.nodeDisp(4,1)/ratio)
    outputs["rel_vel"].append(op.nodeVel(4,1)/ratio)
    outputs["rel_accel"].append(op.nodeAccel(4, 1) / ratio)

 得られた各節点の応答結果をグラフに書いてみると以下の通りとなります。


 特に節点4の応答時刻歴については、時刻歴の振動外力を入力していることから、入力加速度波形の継続時間(50s)の間、各時刻で変動する波形が得られていることがわかります。また、固定点である基部節点1の応答加速度を見ますと、ゼロになっていることがわかります。
 一方、地震応答解析においては、固定点であったとしても解析上は全節点に地動加速度が入力されているはずです。上記より、Openseesの地震応答解析においては、節点の応答加速度は相対座標系のもとで出力されていることが確認できるかと思います。

 今回は構造減衰や部材の非線形性などは考慮しない極めて単純なモデルで応答解析を実施しました。

 なお、設定した解析モデルの条件を改めて確認する場合、例えば以下のコードを書くことで、OpenSeesPyからのエコーデータを得ることができます。以下のケースではJSON形式でテキストファイルとして出力しています。
 
op.printModel('-JSON', '-file', "model.json")

本例でのエコーデータは以下の通りとなります。エコーデータの単位系はOpenSeesPyの単位系(ヤードポンド法)となります。

{
"StructuralAnalysisModel": {
	"BIM": "unknown",
	"description": "",
	"engineer": "",
	"units": {
		"force": "",
		"length": "",
		"time": "",
		"temperature": ""
	},
	"properties": {
		"uniaxialMaterials": [

		],
		"ndMaterials": [

		],
		"sections": [

		],
		"crdTransformations": [
			{"name": "1", "type": "LinearCrdTransf2d"}
		]
	},
	"geometry": {
		"nodes": [
			{"name": 1, "ndf": 3, "crd": [0, 0]},
			{"name": 2, "ndf": 3, "crd": [0, 157.48], "mass": [0.116455, 0.116455, 0]},
			{"name": 3, "ndf": 3, "crd": [0, 314.961], "mass": [0.116455, 0.116455, 0]},
			{"name": 4, "ndf": 3, "crd": [0, 472.441], "mass": [0.116455, 0.116455, 0]}
		],
		"elements": [
			{"name": 1, "type": "ElasticTimoshenkoBeam2d", "nodes": [1, 2], "E": 29732.7, "G": 11435.7, "A": 474.774, "Avy": 237.387, "Iz": 350013, "massperlength": 0, "crdTransformation": "1"},
			{"name": 2, "type": "ElasticTimoshenkoBeam2d", "nodes": [2, 3], "E": 29732.7, "G": 11435.7, "A": 474.774, "Avy": 237.387, "Iz": 350013, "massperlength": 0, "crdTransformation": "1"},
			{"name": 3, "type": "ElasticTimoshenkoBeam2d", "nodes": [3, 4], "E": 29732.7, "G": 11435.7, "A": 474.774, "Avy": 237.387, "Iz": 350013, "massperlength": 0, "crdTransformation": "1"}
		]
	}
}
}