導讀:纖維模型在用于結構彈塑性分析時,能以較低的計算成本獲得較高的求解精度,且各纖維可以采用材料單軸本構關系,從而避免了確定多維本構關系的困難。墩柱擬靜力加載試驗是結構抗震經常會做的試驗,本文以太平洋地震研究中心(PEER)上邊一方形柱試件擬靜力加載試驗為例(如圖1),介紹如何在OpenSees中建立墩柱纖維模型并進行PushOver分析,并附上詳細命令流。推薦大家關注我上新精品課《OpenSees從入門到精通21講:獲得OpenSees有限元建模和抗震分析能力》。
圖1試件尺寸及配筋
一、節點、約束及坐標轉換
# 建模基本命令
model BasicBuilder -ndm 3 -ndf 6; # 以平行紙面水平向右為x軸,以豎直向上為y軸,以垂直紙面向外為z軸
file mkdir output; # 建立輸出文件夾
source LibUnits.tcl; # 定義基本單位及各單位間的換算
# 定義節點與約束:
node 1 0 0 0; # 以橋墩軸線方向為y軸
node 2 0 0 0; # 零長度單元
node 3 0 $LCol1 0;
node 4 0 $LCol 0;
fix 1 1 1 1 1 1 1; # 墩底約束
equalDOF 1 2 1 3 5; # 約束橫向和沿y軸方向的旋轉
# 坐標轉換
set ColTransfTag 1; # 坐標轉換編號
set ColTransfType PDelta; # 坐標轉換類型,PDelta與Linear的區別就在于考慮了二階P-Delta效應
geomTransf $ColTransfType $ColTransfTag 0 0 -1; # 向量(0,0,-1)是全局坐標的(而此時整體坐標系就是x右y上z垂直紙面向外),其與x'叉乘(右手規則)得y',進而得z'。所以y'是水平向右的,z'是垂直紙面向內的。
圖2 單元劃分
二、材料本構
采用可以模擬縱筋屈曲和低周疲勞的Reinforcing Steel模擬鋼筋材料,采用可以計及混凝土抗拉強度的Concrete02模擬混凝土材料,采用Bond_Slip01模擬鋼筋與混凝土之間的粘結滑移。
# 材料編號 set IDconc 1; # 核心混凝土set IDconcU 2; # 保護層混凝土set IDreinf 3; # 考慮屈曲的縱筋set IDreinf1 4; # 不考慮屈曲的縱筋set IDBond 5; # 粘結-滑移材料
1、Reinforcing Steel材料模型
Reinforcing Steel[1]材料模型可以考慮縱筋屈曲和循環加載導致的強度退化效應,其本構關系由四部分組成,如圖3-a)。由于Reinforcing Steel模型考慮了鋼筋的初始屈服流幅、包辛格效應、應變軟化和剛度退化等力學特征,因此能較好的模擬鋼筋在循環加載下的滯回曲線,如圖3-b)。圖3 Reinforcing Steel 材料模型#先后定義考慮屈曲和不考慮屈曲兩種鋼筋材料
uniaxialMaterial ReinforcingSteel $IDreinf $Fy $Fu $Es $Esh $esh $eult -GABuck $lsr $beta $r $gama -CMFatigue $Cf $alpha $Cd;
uniaxialMaterial ReinforcingSteel $IDreinf1 $Fy $Fu $Es $Esh $esh $eult -GABuck $lsr_1 $beta $r_1 $gama_1 -CMFatigue $Cf_1 $alpha $Cd_1;
2、Concrete02材料模型
Concrete02材料模型基于修正的Kent-Park模型[2],可以考慮混凝土的抗拉性能和卸載時的剩余剛度,其本構關系如圖4所示。箍筋對混凝土的約束作用通過J. B. Mander約束混凝土模型[3]加以考慮。圖4 Concrete02本構曲線
# 先后定義了核心混凝土和保護層混凝土材料
uniaxialMaterial Concrete02 $IDconc $fpc $epsc0 $fpcu $epsu $lambda $ft $Et ;
uniaxialMaterial Concrete02 $IDconcU $fpc1 $epsc01 $fpcu1 $epsu1 $lambda $ft1 $Et1 ;
3、Bond-SP01材料模型
當橋墩試件的鋼筋在平臺底部錨固長度不長時,應變滲透效應會在墩底一定長度范圍內導致橋墩縱筋發生粘結滑移變形,故在該區段附加一個單獨的零長度單元,其縱筋采用Bond-SP01[4]材料模型模擬。Bond-SP01材料模型的應力-滑移骨架曲線與滯回曲線如圖5所示,其中和分別為鋼筋屈服強度和極限強度,為鋼筋應力達到屈服強度時鋼筋與混凝土界面處的鋼筋滑移值,為鋼筋應力達到極限強度時鋼筋與混凝土界面處的鋼筋滑移值。
圖5 Bond_SP01材料模型
uniaxialMaterial Bond_SP01 $IDBond $Fy $Sy $Fu $Su $b $R;
三、纖維截面劃分
橋墩截面劃分為保護層混凝土、核心混凝土和縱向鋼筋三種纖維,如下圖6:
圖6 纖維截面劃分
粘結滑移段截面纖維劃分與鋼混段相同,只是采用的鋼筋本構不同,不再贅述。# 截面編號
set ColSecTagFiber 1; # 鋼混段截面編號
set ColSecTagFiberBond 2; # 粘結滑移段截面編號
注意:最新的OpenSEES要求定義纖維截面時即指定扭轉剛度,否則會報錯!
section Fiber $ColSecTagFiber -GJ [expr 1.7E08*$Pa*$m4] {
# 核心混凝土
patch rect $IDconc $nfY $nfZ -$coreY -$coreZ $coreY $coreZ
# 保護層混凝土(劃分纖維的時候邊界點順序先后無妨,y、z坐標都是從小到大,從大到小均可,但定義單元的時候得注意順序)
patch rect $IDconcU [expr $nfY+4] 2 -$coverY -$coverZ $coverY -$coreZ
patch rect $IDconcU [expr $nfY+4] 2 -$coverY $coreZ $coverY $coverZ
patch rect $IDconcU 2 $nfZ -$coverY -$coreZ -$coreY $coreZ
patch rect $IDconcU 2 $nfZ $coreY -$coreZ $coverY $coreZ
#定義了墩柱繞z軸彎曲轉動時,受壓排考慮屈曲和繞y軸彎曲不考慮兩種鋼筋
layer straight $IDreinf $numbarColZ $barAreaCol -$coreYBar $coreZBar -$coreYBar -$coreZBar
layer straight $IDreinf $numbarColZ $barAreaCol $coreYBar $coreZBar $coreYBar -$coreZBar
layer straight $IDreinf1$numbarColY $barAreaCol -$coreYBar1 -$coreZBar $coreYBar1-$coreZBar
layer straight $IDreinf1$numbarColY $barAreaCol -$coreYBar1$coreZBar $coreYBar1 $coreZBar
}
四、單元定義
1、柔度法單元
與剛度法單元相比,柔度法單元在任意狀態下單元力平衡方程都不會產生有限元離散誤差,且在相同精度要求下,柔度法需要更少的單元和結構總自由度。采用柔度法單元時,整個橋墩可只采用一個單元,單元內使用4個截面積分點;但為防止應變集中,本文采取Calabrese[5]和Kashani[6]的建議增加一個長度為3倍鋼筋屈曲長度的纖維梁柱單元,且單元內使用3個截面積分點,如圖3。# 定義非線性柔度法梁柱單元 ------------------------------------
element nonlinearBeamColumn 2 2 3 $numIntgrPts1 $ColSecTagFiber $ColTransfTag -iter $maxIters $Tol;
element nonlinearBeamColumn 3 3 4 $numIntgrPts2 $ColSecTagFiber $ColTransfTag -iter $maxIters $Tol;
2、零長度單元
顧名思義,零長度單元與普通單元的區別就在于兩節點的坐標相同,故長度為零。值得指出的是,兩個節點的坐標只是初始相同,受力分析過程中也會有相對位移。五、PushOver分析#(由全局坐標系的向量($x1 $x2 $x3)定義局部坐標系的x軸),同理,由全局坐標系的向量($yp1 $yp2 $yp3)定義局部坐標系y軸 ,
element zeroLengthSection 1 1 2 $ColSecTagFiberBond -orient 0 1 0 1 0 0; # 通過此處定義后,零長度單元的局部坐標系與柱單元完全相同了
# 施加軸向力
set IDctrlNode 4; # 在結點4上加載;
set PCol [expr 968*$kN]; #此處按軸壓比=0.1施加軸向力;
pattern Plain 1 Linear {
load $IDctrlNode 0 -$PCol 0 0 0 0 ;
};
constraints Transformation ; # 多點約束,不能用Plain
numberer RCM;
system BandGeneral;
set Tol 1.0e-6; # 精度(絕對誤差)
set maxNumIter 200; # 最大迭代數
set printFlag 1; # 計算過程在DOS屏幕上輸出信息
test NormDispIncr $Tol maxNumIter printFlag;
algorithm Newton;
set NstepGravity 10; # number of load steps
set DGravity [expr 1./$NstepGravity];
integrator LoadControl $DGravity;
analysis Static;
analyze $NstepGravity;
loadConst -time 0.0; # 保持(重力)荷載不變,擬時間重置為零
# 擬靜力加載 (篇幅所限,此處僅為示意,實際需循環往復作用多次)
pattern Plain 2 Linear {
load $IDctrlNode 1 0 0 0 0 0;
};
integrator DisplacementControl $IDctrlNode 1 0.001
analyze 2000;
六、記錄輸出文件
采用Recorder命令提取墩頂位移和墩底反力:值得指出的是,需將recorder命令放在分析命令之前,才能記錄到分析結果。最終得到的數值模擬與試驗結果的滯回曲線比較如圖7所示,可見數值模擬結果與試驗符合較好。recorder Node -file output/disp4.out -node 4 -dof 1 2 3 disp;
recorder Node -file output/reaction2.out -node 2 -dof 1 2 3 reaction;
圖7 數值模擬與試驗滯回曲線比較
七、OpenSees從入門到精通
本文完整命令流及其他案例視頻講解可至仿真秀官網本人主頁,我的原創精品課《OpenSees從入門到精通21講》查看。筆者針對OpenSEES學習資料匱乏、上手難的問題,本課程逐行詳細講解如何采用OpenSEES建模與計算分析。課程內容包括命令解釋、案例演示以及使用OpenSees進行抗震分析的一些感悟,本課程將持續更新,附件里有全部建模代碼和課件,也歡迎感興趣的朋友加入仿真秀OpenSees軟件用戶交流討論(在本公眾號對話框回復OpenSees掃碼進群交流)。-
材料
+關注
關注
3文章
1241瀏覽量
27341 -
模型
+關注
關注
1文章
3268瀏覽量
48929
原文標題:教你從零開始學OpenSees有限元建模和抗震分析能力
文章出處:【微信號:sim_ol,微信公眾號:模擬在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論