2020/03/28

OpenSeesPyによる静定トラスの解析

今回は図に示すように、静定トラスの頂部に静的な荷重が加わった場合の応力解析をOpenSeesPyを用いて行っていきます。


・解析モデルの設定
modelコマンドにて全体の解析モデルを定義します。
ndmは解析モデルの次元数、ndfは自由度数です。
今回は2次元の静定トラスを想定するので、いずれも2に設定します。

model('basic', '-ndm', 2, '-ndf', 2)

・トラスの節点座標の設定
nodeコマンドにて解析モデル各節点の座標を定義します。
2次元モデルの場合、node(節点番号、x座標、y座標)のように定義します。

・固定されている節点の境界条件の設定
fixコマンドにて解析モデルの各節点の境界条件を定義します。
2次元モデルの場合、fix(節点番号、x方向の境界条件、y方向の境界条件(いずれも0:フリー,1:固定)と定義します。

・トラス部材の材料の条件を設定
今回は弾性のトラス部材を想定するため、UniaxialMaterialコマンドにて部材のヤング係数のみを定義します。

・トラス部材を設定
elementコマンドにて各部材の特性を定義します。
トラス部材の場合、以下のように定義できます。
element(elementtype、部材番号、部材端部の節点番号、断面積、定義した材料番号)

・外力を設定
節点に生じる外力をloadコマンドにて以下のように定義します。
load(設定する節点番号、x方向の外力、y方向の外力)

上記が対象とする問題を想定した場合の主な解析モデル、荷重条件の設定項目になり、解析に関する種々の条件を定義したうえでanalyzeコマンドを実行すると、応力解析が実行されます。解析結果は「Output Commands」に用意されている各種コマンドを用いて確認することができます。例えば、確認したい項目が、節点変位であればnodeDispコマンド、部材応力であればbasicForceコマンドの結果をprintすることで確認できます。今回の場合、basicForceコマンドにより出力された値が手計算の値と一致することから、正しく解析が行われていることが確認できました。



以下、今回の検討に用いたソースコードを示します。


from openseespy.opensees import *


# ------------------------------
# モデルの作成
# ----------------------------

# モデルの初期化
wipe()

# モデルの定義
model('basic', '-ndm', 2, '-ndf', 2)


# 節点の定義
node(1, 0.0, 0.0)
node(2, 4.0,  4.0)
node(3, 8.0,  0.0)

# 境界条件の定義
fix(1, 1, 1)
fix(3, 0, 1)

# 部材材料の定義
uniaxialMaterial("Elastic", 1, 3000.0)

# 部材の定義
element("Truss",1,1,2,5.0,1)
element("Truss",2,1,3,5.0,1)
element("Truss",3,2,3,5.0,1)

# 時間に依存する荷重係数の定義
timeSeries("Linear", 1)

# 荷重パターンの定義
pattern("Plain", 1, 1)

# 節点荷重の定義
load(2, 0, -50)

# ------------------------------
# 解析条件の定義、解析実行
# ------------------------------

# create SOE
system("BandSPD")

# create DOF number
numberer("RCM")

# create constraint handler
constraints("Plain")

# create integrator
integrator("LoadControl", 1.0)

# create algorithm
algorithm("Linear")

# create analysis object
analysis("Static")

# perform the analysis
analyze(1)

# ------------------------------
# 解析結果の確認
# ------------------------------

N1=basicForce(1)
N2=basicForce(2)
N3=basicForce(3)

print("N1=",N1,"N2=",N2,"N3=",N3)

0 件のコメント:

コメントを投稿