この構造物に加える重力荷重(オレンジの矢印部分)を設定します。
解析する時間をリセットします
loadConst -time [リセットする値]
loadConst -time 0.0
timeSeries Linear [タグ番号]
このコマンドについての説明は、ここ。
「時間ごとに線形に一様に変位する力」という定義です。
pattern Plain [Loadの通し番号] [ 上記のtimeSeriesで指定したタグ番号] {
load [Node番号] [自由度の1番目に対してかける力(X方向)] [ 自由度の1番目に対してかける力(Y方向)]
[ 自由度の3番目に対してかける力(θ方向)]
}
timeSeries Linear 2
pattern Plain 2 2 {
load 13 220.0 0.0 0.0
load 9 180.0 0.0 0.0
load 5 90.0 0.0 0.0
}
7)レコーダーの設定
recorder Element -file EleForces.txt -ele 1 4 7 10 forces
(参照ページはここ)
8)解析開始
ここでは、解析を1行のみ行うように指定しています。
(参照ページは、ここ)
analyze 1
9) 平衡点(バランス)のチェックと結果表示
「analyze 1 」の結果は、もしRecorderコマンドでの出力ファイルの指定があった場合は、このファイルに結果を出力します。(参照ページは ここ)
ここではスクリーン上に出力します。
抗力の結果を出力することを指示するコマンド
# invoke command to determine nodal reactions
reactions
Node1,2,3,4の抗力を、node1Rxn, node2Rxn, node3Rxn, node4Rxn にセットします
# nodeReaction command returns nodal reactions for specified node in a list
set node1Rxn [nodeReaction 1];
set node2Rxn [nodeReaction 2]
set node3Rxn [nodeReaction 3]
set node4Rxn [nodeReaction 4]
Y方向の想定される力は重力のみ inputedFyには、ここで定義した固定荷重がセットされています。
X方向の想定される力として inputedFxに、ここで定義した横荷重がセットされています。
set inputedFx [expr 220.0+180.0+90.0]
解析結果で出力されるX方向の抗力をcomputedFxにセットします
set computedFx [expr [lindex $node1Rxn 0]+[lindex $node2Rxn 0]+[lindex $node3Rxn 0]+[lindex $node4Rxn 0]]
解析結果で出力されるY方向の抗力をcomputedFyにセットします
set computedFy [expr [lindex $node1Rxn 1]+[lindex $node2Rxn 1]+[lindex $node3Rxn 1]+[lindex $node4Rxn 1]]
バランスチェックは、想定されていた力と、解析した力の残差で行います
puts "\nEqilibrium Check After Lateral Loads:"
X方向は、想定される力0と、computedFxの残差を計算します
puts "SumX: Inputed: $inputedFx + Computed: $computedFx = [expr $inputedFx+$computedFx]"
Y方向は、inputedFyと、computedFyの残差を計算します
puts "SumY: Inputed: $inputedFy + Computed: $computedFy = [expr $inputedFy+$computedFy]"
Element(要素)1, 4, 7, 10の値を表示します
# print ele information for columns at base
print ele 1 4 7 10
10) 固有周期の表示
1次から5次までの固有周期を表示します
n次の固有値は、Eigen コマンド で定義されています。
[eigen n]
eigenValueに1次から5次までの固有値をセットします。
set eigenValues [eigen 5]
puts "\nEigenvalues:"
λ:固有値 ω:固有振動数 T: 固有周期
1次の固有値から、固有周期をもとめます
set eigenValue [lindex $eigenValues 0]
puts "T[expr 0+1] = [expr 2*$PI/sqrt($eigenValue)]"
putコマンドにより T[1] = に、1次固有周期 が表示されます。
同じように、
2次から5次までの固有値から、固有周期を求め、表示します。
set eigenValue [lindex $eigenValues 1]
puts "T[expr 1+1] = [expr 2*$PI/sqrt($eigenValue)]"
set eigenValue [lindex $eigenValues 2]
puts "T[expr 2+1] = [expr 2*$PI/sqrt($eigenValue)]"
set eigenValue [lindex $eigenValues 3]
puts "T[expr 3+1] = [expr 2*$PI/sqrt($eigenValue)]"
set eigenValue [lindex $eigenValues 4]
puts "T[expr 4+1] = [expr 2*$PI/sqrt($eigenValue)]"
次に、Recorder Node コマンドを使用して、
Node 5から16までの 3つの自由度の値を、1次固有振動モードから5次固有振動モードまで出力します。
(先に”eigen 5”とセットしたので、5次まで出力します)
recorder Node -file eigenvector.txt -nodeRange 5 16 -dof 1 2 3 eigen 0
現在もとめられている上記のデータを、ファイルに記録します
record
exit
次のページ →
解説(コマンドのサマリ)
Opensees コマンド 日本語解説 : 目次 |
0 件のコメント:
コメントを投稿