前回構築したOpenseesによる3次元フレーム要素の弾性応力解析プログラムについて、補足的に説明します。プログラムのソースはあまり3次元トラス要素のプログラム構成と変わりません。そこで、前回までに構築した3次元トラス要素プログラムの一部を修正したポイントを以下にかいていきます。扱う部材がトラス要素→梁要素となったことで以下のように部材の曲げモーメント、せん断力を考慮する必要がでてきます。修正したポイントはその点に関連するところがほとんどです。
・節点固定度、荷重項を3自由度→6自由度に
トラス要素では部材端がピンのみでしたが、梁要素では部材端が剛接の場合も考えられます。そこで、節点については回転方向の固定、作用力も考慮できるようにする必要がありました。部材の回転を考えない場合、部材固定度、節点荷重も3自由度にて表現されますが、回転の概念が入ってくることで、6自由度となります。そこで、プログラムのインプットにおいて6自由度を考慮できるようにリストの構成等を修正しました。
・要素をトラス要素→梁要素に
トラス要素は軸力のみを伝達することを考えるため、断面積のみを設定する仕様ですが、フレーム要素にした場合曲げも伝達することになるため、部材各方向の断面二次モーメント、ねじれモーメントを設定する必要があります。Openseesでは弾性梁要素として、elasticBeamColumnコマンドにて以下のように部材特性を設定します。
element('elasticBeamColumn', eleTag, *eleNodes, Area, E_mod, G_mod, Jxx, Iy, Iz, transfTag)
eleTag:部材番号
eleNodes:材端の座標
Area:断面積
E_mod:弾性係数
G_mod:せん断弾性係数
Jxx:ねじり断面二次モーメント
Iy:部材座標系y軸方向に対する断面二次モーメント
Iz:部材座標系z軸方向に対する断面二次モーメント
transfTag:部材要素の座標変換に関する設定(後述)
・部材要素の座標変換に関する設定の追加
全体座標系→部材座標系の変換に以下のコマンドを新たに入力する必要がありました。(通常トラス要素の応力解析でもこのような座標変換は行われていることから、あくまでもOpenseesならではの仕様なのかもしれません。)
transfTag = 1
vecxz =0,0,1
geomTransf('Linear', transfTag, vecxz)
’Linear’:線形での座標変換
transfTag:座標変換を定義するタグ(それぞれの部材要素に設定)
vecxz:ユーザーが指定する基本ベクトルであり、部材座標系のx軸と並行であってはならない。
(ここでは解析の対象モデルに鉛直部材がないことを想定して、全体座標系のZ軸方向の単位ベクトルを設定)
上記の設定を各部材要素に対してタグを設定することにより当てはめていきます。
・解析結果の出力
トラス要素の応力解析では部材に軸力のみが生じましたが、梁要素では曲げ及びせん断力が各部材の材端に生じるため、各要素の作用力を出力するbasicforceコマンドを適用すると、1部材につき、6個の数値がリストとして出力されます。そこで、それらのデータを整理し、軸力、曲げモーメント、せん断力のそれぞれについて、各部材のアウトプットをグラデーションによる色分布で図化出力できるように修正しました。前回投稿で記載したものです。
plotlyによる図化出力においては、各部材の線グラフのデータにhovertextとして作用力の数値データを埋め込み、マウスをhoverさせることにより、各部材の作用力が直感的に確認できるようにしました。
ただ、このplotly、表示機能を盛り込みすぎると、動作速度が大変遅くなってしまうのが難点ではあります。(本来はグラフ描画ツールなので。。)みたい結果をその都度絞りながら、結果を表示させていくことが現実的な使い方かもしれません。
plotlyによる図化出力においては、各部材の線グラフのデータにhovertextとして作用力の数値データを埋め込み、マウスをhoverさせることにより、各部材の作用力が直感的に確認できるようにしました。
ただ、このplotly、表示機能を盛り込みすぎると、動作速度が大変遅くなってしまうのが難点ではあります。(本来はグラフ描画ツールなので。。)みたい結果をその都度絞りながら、結果を表示させていくことが現実的な使い方かもしれません。
以上を考慮することにより、Openseesを使いながら、3次元の任意形状の構造モデルを対象とした梁要素の応力解析プログラムが構成できました。トラス要素の構造解析プログラムとあまり構成が変わらないので、ソースコードの記載は割愛します。上記のポイントを押さえながら比較的簡単に拡張できると思いますので、試してみてください。
0 件のコメント:
コメントを投稿