“抛砖引玉”
常会有朋友问我:“应以何种指标来控制截面分析的进程?”回答:“一般可通过承载力软化程度及应变大小来控制,如承载力软化20%或拉应变达到0.1时终止分析”“如何实现呢?“”善用eleResponse命令!“今天抛砖引玉,和大家分享如何在eleResponse命令的基础上,通过应变大小控制截面分析的进程。(点击”阅读原文“可下载tcl码)
图1 eleResponse命令
整个TCL码共分为4个部分:OS.tcl、Function.tcl、Model.tcl、Matl&Sec.tcl四个文件。其中,OS.tcl为主函数、Function.tcl主要包含截面分析等方法、Model.tcl为主要的模型文件、Mat&Sec.tcl用于定义材料和纤维截面信息。更换Mat&Sec.tcl文件即可实现不同截面的截面分析。
-
主函数:OS.tcl
主函数用于定义基本变量(如图1所示),各基本变量的意义如表1所示。Recorder MPhi.txt记录有弯矩曲率曲线分析结果,首列为弯矩值(kN*m),第二列为曲率值:Section_Analysis_2D是进行截面分析的函数,包含在Function.tcl文件中。
图2 OS.tcl
表1 各变量意义
-
模型文件:Model.tcl
模型文件中通过定义零长度单元实现截面分析。当未指定零长度单元的局部向量时,默认其局部向量与全局向量重合,因此该算例中load $nodeTag分别对应截面轴向力、截面沿y轴剪力、截面绕z轴弯矩。Gravity_Proc函数用于完成自重工况加载,包含于Function.tcl中,详见【OpenSees】实用函数分享:自重加载。
图3 Model.tcl
图4 ZeroLengthSection
-
方法文件:Function.tcl
该文件中主要包含Section_Analysis_2D截面分析函数,如图5所示。当应变达到限值(is_Reach_Limit)或分析不收敛时即停止分析(While循环)。当$direction为1时,沿+y方向加载,此时-y区受拉;当为其他值时,沿-y方向加载,此时+y区受拉,如图6所示。
图5 Section_Analysis_2D函数
图6 $direction示意图
is_Reach_Limit函数(如图7所示)基于eleResponse命令获取截面的最大应变,并判断应变是否达到限值。为捕捉到截面边缘纤维的应变,可将recorder的监测纤维坐标填一大值,OpenSees自动会取与监测点最近的纤维作为最终的监测纤维。
图7 is_Reach_Limit函数
公众号主页回复“截面分析”可下载TCL码。
精彩回顾:
【YTO】YJK to OpenSees:剪力墙结构算例验证
-
OpenSees
【OpenSees】应力元纤维单元的Localization Issues
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
Perform3D
【Perform3D】【OpenSees】SDOF非线性动力时程分析的实现与算例
-
工具
【工具】CC-Constitution [约束混凝土本构计算工具]