本推送主要介绍OpenSees双向地震及动力增量分析(IDA)的实现途径,为新手提供学习素材。选取一框架结构为算例(【PBSD】【OpenSEES】【YTO】智能化的结构弹塑性分析全套解决方案),所有单元采用刚度法纤维单元,由于刚度法纤维单元采用二次插值函数(【OpenSEES】浅析纤维单元(一):单元剖分数对刚度法纤维单元力学性能的影响),存在线性曲率及常值轴向应变问题,因此对单元进行剖分。点击“阅读原文”可查看并下载本推送算例。
双向地震
OpenSees可通过“pattern UniformExcitation”定义地震动工况,实现方式如下。其中,$GMDir为地震动施加的方向(与全局坐标系相同,1为X向,2为Y向);$dt为地震波样本的时间间隔,非积分步长;$GMFile为地震波样本所在文件路径;$GMFact为地震波样本的调幅系数。
pattern UniformExcitation $LoadTag $GMDir -accel "Series -dt $dt -filePath $GMFile -factor $GMFact"
为定义双向地震动工况,仅需在分析前通过“pattern UniformExcitation”定义2个不同方向的地震动工况即可,实例代码如下。该算例默认按1:0.85输入主波和次波。传参$PGA为地震激励的目标峰值加速度,为避免人为计算地震调幅系数$GMFact,算例中加入方法GetFileMaxAbsValue,可获得地震波样本的最大幅值,并自动计算调幅系数$GMFact。
proc GroundMotionAnalysis { GM_Name PGA is_X dt { Model_Descp "" } } {
#Define Factor
set Factor_X [expr $is_X ? $PGA * 9800. : $PGA * 9800. * 0.85]
set Factor_Y [expr $is_X ? $PGA * 9800. * 0.85 : $PGA * 9800.]
#LoadCaseName
set lc_name [GetLoadCaseName $GM_Name $is_X]
#Max Vaule in GM file (abs)
set MaxAbsValue [ GetFileMaxAbsValue "GroundMotion\$GM_Name.txt" ]
#Define FileName Direction Factors
set iGMfileList [list "GroundMotion//$GM_Name.txt" "GroundMotion//$GM_Name.txt"]
set iGMdirList [list "1" "2"]
set iGMfactList [list [expr $Factor_X / $MaxAbsValue] [expr $Factor_Y / $MaxAbsValue]]
set LoadTag 1000
#Define Ground Motion
foreach GMFile $GMFileList GMDir $GMDirList GMFact $GMFactList {
#File Exist Then Continue (Ensure All)
if { [file exists $GMFile] == 0} {
puts "Error: $GMFile doesn't Existed!"
return -1
}
#Define Load Case
pattern UniformExcitation $LoadTag $GMDir -accel "Series -dt $dt -filePath $GMFile -factor $GMFact"
incr LoadTag
}
#Get File PrtNumber
set PrtNum [GetFilePrtNum "GroundMotion\$GM_Name.txt"]
set Duration [expr $PrtNum * $dt]
#GMDAnalyze_Proc
return [GMDAnalyze_Proc $Duration 0.02 "$Model_Descp $lc_name $PGA"]
}
利用PBSD(【PBSD】地震动工具箱之教学视频,【PBSD】人工波生成功能测试 [开源])生成人工波,对算例模型分别完成0.6g人工波下的单向激励及双向激励,并利用PBSD(【PBSD】功能介绍及应用教学回顾[含视频])完成抗震性能评估。结构顶点位移时程曲线及首层构件的损伤程度如图2、3所示。可见,双向地震下结构位移响应大于单向地震,存在更为显著的残余变形,且构件损伤更严重。
图2 单向激励与双向激励顶点位移曲线对比
图3 单向激励与双向激励首层构件损伤对比
动力增量分析
实现动力增量分析的基础逻辑即在每次时程分析的结尾清空模型(wipe All),并为下一增量分析重构新模型,实例代码如下。其中,IDA_Min、IDA_Max分别为动力增量的起始目标加速度和终止目标加速度,delta_IDA为加速度增量。
proc GM_Analyze { Damping GM_Name dt PGA is_X { Model_Descp "" } } {
#Input Model
source "Model\0_Main.tcl"
#Damping Ratio Define
Rayleigh_Proc 1 2 $Damping
#Gravity_Analysis
Gravity_Proc 10
#Define Recorder
DefineRecorder $GM_Name $PGA $is_X
#Load Case Name
set lc_name [GetLoadCaseName $GM_Name $is_X ]
#Ground Motion Analysis
set TimeCost [GroundMotionAnalysis $GM_Name $PGA $is_X $dt $Model_Descp]
#Check State
if { $TimeCost == -1 } {
return -1
}
#Analysis Time
puts "*$Model_Descp $lc_name $PGA Finish with [format "%.0f" $TimeCost] second."
#Clear All
wipe All
#Return
return 0
}
proc IDA_Analyze { Damping GM_Name dt IDA_Min IDA_Max delta_IDA is_X { Model_Descp "" } } {
#IDA Analysis
for { set PGA [expr $IDA_Min] } { $PGA <= $IDA_Max } { set PGA [expr $PGA + $delta_IDA] } {
#Due With Format
set PGA [format "%.3f" $PGA]
#Load Case Name
set lc_name [GetLoadCaseName $GM_Name $is_X]
#Run Analysis
set Success [expr [GM_Analyze $Damping $GM_Name $dt $PGA $is_X $Model_Descp]]
#Analysis Failed
if { $Success == -1 } {
puts "* $Model_Descp $lc_name $PGA FAILED!"
break
}
}
}
图4 动力增量分析下的层间位移角、楼层剪力曲线及首层构件损伤
点击“阅读原文”可查看并下载本推送相关的算例模型。
精彩回顾:
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现
-
PBSD
【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介
【PBSD】【OpenSEES】智能化的结构弹塑性分析全套解决方案
【PBSD】性能前馈集中塑性单元PFLPH与纤维单元力学性能对比
-
PBSD工程应用
【PBSD工程应用】广东美术馆“三馆合一”项目——岭南文化新地标
【PBSD工程应用】佛山天珺秀台——2021新广东省《高规》项目
-
OpenSees
【OpenSees】应力元纤维单元的Localization Issues
【OpenSEES】FiberSection3D新变化:-Gj必选项始末
【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法
【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
WSAP
-
编程与工具
【工具】OSRun [OpenSees运行辅助工具][开源]
【工具】FSV [OpenSees纤维截面可视化工具][开源]