基于SAP2000的钢板筒仓参数化建模与分析

时间:2022-09-21 04:50:45

基于SAP2000的钢板筒仓参数化建模与分析

基金项目:国家自然科学基金项目(51209060);中央高校基本科研业务费专项资金项目(HEUCF130211);

教育部高等学校博士学科点专项科研基金项目(20122304120035)

作者简介:张建华(1980),男,内蒙古呼和浩特人,副教授,工学博士,博士后,Email:。

摘要:针对目前实际工程中大型钢板筒仓有限元分析时建模困难、重复性工作多等不足,利用.NET平台上的C#语言开发了平底钢板筒仓快速建模、施加荷载及提取主要数据的OAPI插件。介绍了基于有限元分析软件SAP2000的API函数和插件的开发过程,以某筒仓的实际工程为例,验证了OAPI插件的可行性。结果表明:利用.NET平台上的C#语言调用SAP2000的API函数可以方便地开发出适用于具有新型仓壁、立柱形式的大型钢板筒仓参数化建模及分析的插件,为进一步拓展SAP2000在钢板筒仓设计分析方面的应用具有实际意义,也为今后类似工程的参数化建模和分析提供一定的参考。

关键词:钢板筒仓;SAP2000;API函数;二次开发;OAPI插件

中图分类号:TU392.6 文献标志码:A

0 引 言

筒仓结构广泛应用于农业、矿业、化工、电力等诸多领域中的散料储存。相比于混凝土筒仓,钢板筒仓在诸多情况下更为经济[1]。钢板筒仓结构主要分为落地式(平底式)和高架式(锥底式),根据筒仓高度与平面尺寸的关系,又将筒仓分为浅仓和深仓[2]。典型的钢板筒仓主要由仓顶、仓壁板、立柱等构件组成。

多年来,各国学者对钢板筒仓的散料压力分布[34]、静动力[58]、稳定性[910]等方面进行了大量的研究,大多研究中采用有限元分析方法,但在实际工程中,建模比较复杂,不便于设计人员使用。目前可以采用一些商业软件,如STRAT,PKPM进行部分固定形式的筒仓设计计算,但随着一些新型仓壁、立柱形式的出现[11],这些商用软件往往很难满足实际需要。因此,基于有限元软件平台,进行二次开发成为一种切实可行的方法。

本文中笔者将介绍基于有限元分析软件SAP2000的API函数,以.NET为开发平台,利用C#语言开发钢板筒仓快速建模、施加荷载及提取主要数据的OAPI插件的全过程,并通过具体工程实例验证程序的可靠性。

1 SAP2000的API简介

SAP2000的API是从SAP2000V11开始引进的,即应用软件编程接口。用户可以编写程序,通过API来调用SAP2000的内部功能。在应用API时主要可实现以下几个功能:自动建模、自动分析、图形输入、计算书输入、调整参数、反复运行、多种方案比较等。

同时利用.NET平台强大的编程功能,可以开发出直接内嵌于SAP2000的OAPI插件。本文中正是以.NET平台下的C#语言为开发语言进行OAPI插件的开发。2 OAPI插件结构框架

同类型的钢板筒仓结构形式相对固定,便于参数化建模。仓顶结构关键参数包括仓顶直径L、仓顶高度h、仓顶倾角α、斜梁与系杆数量及支撑等,仓壁主要由仓壁板厚度、立柱数量、抗风圈数量和位置来确定,具体结构组成如图1所示。本文中基于SAP2000平台,利用API函数进行OAPI插件开发,形成了钢板筒仓计算程序(Calculating Program of Steel Soils,CPSS),该计算程序主要包括输入几何参数、施加荷载和输出结果3个模块,可以实现参数化数据输入、有限元模型建立、荷载计算和施加、位移、内力数据提取等。OAPI插件总体框架如图2所示。

3 插件功能

3.1 输入几何参数模块

输入几何参数模块编程的重点是在于找出其节点、杆件、连接之间的相互关系。该模块主要包括4个部分:视图提示、仓顶参数、仓壁参数及变截面定义,如图3所示。

3.1.1 仓顶参数

仓顶建模主要分为建立节点、梁单元和面单元3个步骤。在SAP2000整体坐标系下,根据仓顶的几何拓扑关系,在xOz平面建立主要控制节点,利用对称关系旋转复制生成其他节点,旋转角度β=360°/N,N为斜梁数量。生成仓顶节点的主要API函数是SapModel.PointObj.AddCartesian,通过函数SapModel.EditGeneral.ReplicateRadial可以绕z轴进行旋转复制,建立梁单元用函数SapModel.FrameObj.AddByPoint来实现。为了在计算分析中方便选取单元,通过函数SapModel.GroupDef.SetGroup来建立组集,利用函数SapModel.FrameObj.SetGroupAssign将对象指定到组集中,建立面单元用函数SapModel.AreaObj.AddByPoint来实现。同时,函数SapModel.EditFrame.DivideAtIntersections可以分割Frame对象,在本文中利用此函数将斜梁在与系杆相交处分割,以方便仓顶虚面的建立及节点位移的提取。

3.1.2 仓壁参数

仓壁建模的主要控制参数见表1。通过函数SapModel.EditGeneral.ReplicateLinear进行仓顶底部节点的线性复制可得到仓底关键点,进而可以完成立柱的建立。通过函数SapModel.EditFrame.DivideAtIntersections及SapModel.EditArea.Divide可以将立柱和仓壁面分割成指定的数量,并指定到相应的组中以方便后续处理。另外,还需要通过节点的线性复制来定位抗风环梁的位置,并在2条加劲肋间建立一段抗风环梁。在程序中点击相应按钮可以方便定义每层加劲肋或截面的厚度,用户只需输入相应的参数,程序就会自动计算出用平板等效波纹钢板后的等效厚度并赋给相应的各层截面,具体实现界面如图4所示。

3.2 施加荷载模块

本文中开发的CPSS计算程序,根据中国现行《粮食钢板筒仓设计规范》(GB 50322—2011),按照筒仓的类型(浅仓或深仓)计算谷料荷载、仓顶荷载、风荷载、雪荷载等,根据定义的荷载工况组合,将荷载作用在相应的构件上,具体实现界面如图5所示,设计人员可根据需要自行添加其他荷载形式。在施加仓壁散料荷载时通过SapModel.LoadPatterns.Add和SapModel.PatternDef.SetPattern分别用于定义荷载模式和节点样式。函数SapModel.SelectObj.GetSelected(ref NumberItems,ref ObjectType,ref ObjectName)用于返回选择的对象数量、对象类型以及对象名称。函数SapModel.PointObj.GetCoordCartesian(ObjectName.GetValue(i). ToString(),ref X,ref Y,ref Z)用于返回指定节点对象的坐标值,If循环可用来区分不同的水平压力修正系数。通过函数SetPatternByXYZ(Name,PatternName,a,b,c,d,ItemType,Restriction,Replace)来定义节点样式数据,具体的节点样式值通过Value=aX+bY+cZ+d来计算得出,X,Y,Z均为节点对象的坐标值,a,b,c,d均为要求输入的参数。

通过函数SapModel.AreaObj.SetLoadUniform来指定仓顶恒荷载、活荷载及雪荷载,在施加荷载后程序可以自动指定梁、柱端部释放及仓筒底部约束。

3.3 输出结果模块

本程序的输出结果模块主要包括前处理控制、运行分析、后处理及稳定性分析,如图6所示。前处理控制主要是利用用户输入的几何及荷载参数建立最终的有限元模型,并可实现壳单元及梁、柱单元的网格划分。通过函数SapModel.Analyze.RunAnalysis开始运行分析,在开始运行分析前要先保存模型数据到指定的路径下或从一个已存在的文件打开,且文件名称后面要有.sdb后缀。

在后处理部分,通过函数SapModel.Results.Setup.SetComboSelectedForOutput来指定输出工况组合,本程序可以输出节点位移、单元应力等信息。

在输出结果模块点击“进入稳定分析模块”后即弹出“整体稳定分析”窗口,如图7所示,在此窗口可以进行仓顶和仓壁的整体线性稳定性分析,根据相关规范,仓顶和仓壁的整体稳定性计算可以分别最多输出4种工况及2种工况下的临界荷载系数,每种工况可以进行6阶屈曲模态的计算。通过函数SapObject. SapModel.LoadCases.Buckling.SetCase来定义屈曲荷载工况,屈曲荷载可以通过函数SapObject.SapModel. LoadCases.Buckling.SetLoads来定义,此函数包括5个参数,可以分别指定一个存在的屈曲荷载工况、屈曲荷载数目、荷载类型、荷载名称及比例系数。通过函数SapObject.SapModel.LoadCases.Buckling.SetParameters可以指定需要的屈曲模态数及特征值收敛容差。计算

完成后,可以通过函数SapObject.SapModel.Results.BucklingFactor来提取临界荷载系数,并显示在窗口的相应位置。

4 工程实例

本文中以一大型落地式钢板筒仓的实际工程为例,利用OAPI插件提取仓壁节点的径向位移输出到指定文件中来验证程序的可行性和可靠性。该筒仓为稻壳仓,直径为24 m,仓壁高度为24 m,仓顶高度为6.4 m,仓顶倾角为30°,仓顶斜梁数目为24根,竖向加劲肋数目为72根,仓壁及加劲肋均为变截面。施加的荷载包括仓顶恒荷载、活荷载、储料对仓壁的侧压力及摩擦力。

利用OAPI插件的参数化建模可以直接得到钢板筒仓有限元模型,如图8所示,加载分析后提取出仓壁节点随仓壁高度变化的径向位移数据,如图9所示,并利用相关软件绘制出曲线,如图10所示。

5 结 语

本文中介绍了利用SAP2000的API函数在.NET平台上进行OAPI插件开发的流程,并通过钢板筒仓快速建模、施加荷载、运行分析和提取数据全过程,具体介绍了利用SAP2000的API函数编制程序的步骤,实现了快速开发钢板筒仓计算分析程序,结合具体工程实际验证其可行性和可靠性,从而进一步拓展了SAP2000在相关领域的应用,利用SAP2000的API函数开发OAPI插件的过程简单,针对性强,可以极大地发挥SAP2000的强大功能,实用性强,值得在工程设计中推广应用。

参考文献:

[1] 滕锦光,赵 阳.大型钢筒仓的结构行为与设计[J].土木工程学报,2001,34(4):4655.

[2]GB 50322—2011,粮食钢板筒仓设计规范[S].

[3]杨代恒.钢筒仓设计研究及散料压力的数值模拟[D].杭州:浙江大学,2008.

[4] GONZALEZMONTELLANO C,GALLEGO E,RAMIREZGOMEZ,et al.Three Dimensional Discrete Element Models for Simulating the Filling and Emptying of Silos:Analysis of Numerical Results[J].Computers & Chemical Engineering,2012,40:2232.

[5]张炎圣,杨晓蒙,陆新征.钢板筒仓侧壁压力的非线性有限元分析[J].工业建筑,2008,38(增1):447451.

[6]VIDAL P,GALLEGO E,GUAITA M,et al.Finite Element Analysis Under Different Boundary Conditions of the Filling of Cylindrical Steel Silos Having an Eccentric Hopper[J].Journal of Constructional Steel Research,2008,64(4):480492.

[7]高金锁.落地式钢筒仓地震作用分析[D].西安:西安建筑科技大学,2009.

[8]RUIZ A,COUTO A,AGUADO P J.Design and Instrumentation of a Midsize Test Station for Measuring Static and Dynamic Pressures in Silos Under Different Conditions—Part Ⅱ:Construction and Validation[J].Computers and Electronics in Agriculture,2012,85:174187.

[9]LWICKI P,WOJCIK M,TEJCHMAN J.Failure of Cylindrical Steel Silos Composed of Corrugated Sheets and Columns and Repair Methods Using a Sensitivity Analysis[J].Engineering Failure Analysis,2011,18(8):20642083.

[10]袁海龙.粮食钢板筒仓整体稳定设计综述[J].特种结构,2008,25(3):2124.

[11]王庆卫.螺旋咬口钢板筒仓:中国,CN201120261862.1[P].20120307.

上一篇:预制板现浇混凝土叠合层加固砌体教学楼的抗震... 下一篇:不同内填材料生态复合墙体非线性损伤分析