最传统的方法,是将序列地震动按加载顺序添加在同个文本文件,在一次时程分析中完成所有序列地震的加载,简单粗暴,但所有地震的分析结果将堆砌在同个文件中,不利于数据处理。本推送将介绍一种实现序列地震分析的新途径,在考虑损伤累积的同时,实现序列分析结果的分解,呈现更为清晰的序列地震分析结果,方便损伤评估及数据处理。点击“阅读原文”可查看并下载本推送算例。
序列地震时程分析的实现
在序列地震时程分析的过程中,可在每个地震激励的结尾处通过“remove”命令移除当前激励的结果记录器“recorders”,并在下一地震激励开启前重新定义“recorders”,实现序列分析结果的分解。如本算例,通过地震序列名称“SeriesName”及地震激励名称“GM_Name”来对分析结果进行归类。本算例对于地震工况的定义区别于推送(【OpenSees】双向地震与动力增量分析),三向地震地震波来源于不同的文件,同时不对地震波进行自动调幅。若需忽略某向地震激励,则相应的地震波文件填0值即可(详见“阅读原文”算例)。
proc Series_GM_Analyze { SeriesName Damping GM_Name_List dt { Model_Descp "" } } {
#Input Model
source "Model\0_Main.tcl"
#Damping Ratio Define
Rayleigh_Proc 1 2 $Damping
#Gravity_Analysis
Gravity_Proc 10
##Time History LoadTag
set gmLoadCaseTag 1000
##Foreach LoadCase Name
foreach GM_Name $GM_Name_List {
set direct_name "$SeriesName\$GM_Name"
#Create Directory
file mkdir $direct_name
#Define Recorder
Recorder_Proc $direct_name
#Ground Motion Analysis
set TimeCost [SeriesGroundMotionAnalysis $gmLoadCaseTag $GM_Name $dt $Model_Descp]
}
#Analysis Time
puts "*$Model_Descp $GM_Name Finish with [format "%.0f" $TimeCost] second."
#Update loadcase tag
set gmLoadCaseTag [expr $gmLoadCaseTag + 3]
#Remove old recorder
remove recorders
#Time back to Zero
loadConst -time 0.0
}
#Clear All
wipe All
#Return
return 0
}
#GroundMotion Analysis
proc SeriesGroundMotionAnalysis { LoadTag GM_Name dt { Model_Descp "" } } {
#Define FileName_List
set iGMfileList [list "GroundMotion//X//$GM_Name.txt" "GroundMotion//Y//$GM_Name.txt" "GroundMotion//Z//$GM_Name.txt"]
#Define Direction
set iGMdirList [list "1" "2" "3"]
#Define Factors
set iGMfactList [list 1.0 1.0 1.0]
#Define Ground Motion
foreach GMFile $iGMfileList GMDir $iGMdirList GMFact $iGMfactList {
#Define Load Case
pattern UniformExcitation $LoadTag $GMDir -accel "Series -dt $dt -filePath $GMFile -factor $GMFact"
incr LoadTag
}
#Get File PrtNumber
set PrtNum [GetFilePrtNum "GroundMotion\X\$GM_Name.txt"]
set Duration [expr $PrtNum * $dt + 10]
#GMDAnalyze_Proc
return [GMDAnalyze_Proc $Duration $dt "$Model_Descp $GM_Name"]
}
在使用时,仅需定义地震序列的名称及所包含的地震波名称列表即可。
#Model Descp
set Model_Descp "OpenSEES"
#Damping Ratio
set Damping 0.05
#Series Name
set seriesName "GMSeries1"
#Ground Motion Descp
set GM_Name_List [list "GM1_04g" "GM1_06g"]
#Digital Interval
set dt 0.02
#Input TCL
source "Model\12_OSM.tcl"
#Series Analysis
Series_GM_Analyze $seriesName $Damping $GM_Name_List $dt $Model_Descp
主余震分析
可见,结构经历0.6g主震后存在显著的残余变形。主震后,结构再遭遇0.4g的余震,此时结构的楼层位移、层间位移角及构件损伤程度均显著大于不考虑主震的0.4g单波激励。在0.4g的余震下,结构首层大量框架柱发生严重损坏或失效,而不考虑主震的0.4g激励下,结构首层柱仅发生轻度损坏。
图2 结构响应与首层构件损伤
点击“阅读原文”可查看并下载本推送相关的算例模型。
精彩回顾:
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现
-
PBSD
【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介
【PBSD】【OpenSEES】智能化的结构弹塑性分析全套解决方案
【PBSD】性能前馈集中塑性单元PFLPH与纤维单元力学性能对比
-
PBSD工程应用
【PBSD工程应用】广东美术馆“三馆合一”项目——岭南文化新地标
【PBSD工程应用】佛山天珺秀台——2021新广东省《高规》项目
【PBSD工程应用】珠海万菱环球中心——300m拱北摩天新地标
-
OpenSees
【OpenSees】应力元纤维单元的Localization Issues
【OpenSEES】FiberSection3D新变化:-Gj必选项始末
【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法
【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
WSAP
-
编程与工具
【工具】OSRun [OpenSees运行辅助工具][开源]
【工具】FSV [OpenSees纤维截面可视化工具][开源]