基于面向对象编程的SRC/CFT计算程序

时间:2022-07-11 07:54:58

基于面向对象编程的SRC/CFT计算程序

摘要:针对目前分析软件大多缺少钢骨混凝土(Steel Reinforced Concrete,SRC)和钢管混凝土(Concrete-Filled Tube,CFT)构件计算模块的问题,运用面向对象编程方法编写工程计算程序. 通过继承基类,构造出SRC/CFT构件类和特定文件的输入/输出类,并给出这些类的继承关系、封装描述及实现方法. 通过该程序在SRC/CFT超高层结构中的应用,验证其实用价值以及面向对象设计思想在土木工程软件开发中的优势,为工程问题的解决和程序编制提供参考.

关键词:钢骨混凝土;钢管混凝土;面向对象编程;封装;继承

中图分类号:TU37;TP311.132.4文献标志码:A

SRC/CFT calculation program based on object-oriented programming

WANG Zhaobo, LUO Yongfeng

(College of Civil Eng., Tongji Univ., Shanghai 200092, China)

Abstract:Most of the current analysis software lacks of module on calculation of Steel Reinforced Concrete (SRC) and Concrete-Filled Tube (CFT) components. So an engineering calculation software based on Object-Oriented Programming (OOP) is developed considering the calculation of SRC/CFT components. The SRC/CFT component classes and special file input/output classes are constructed by inheriting basic class. The inherited relationship, encapsulating description and implementation methods are presented. The application in a high-rise SRC/CFT building proves its practical value and the advantages of OOP idea in engineering software development. It provides the valuable references to problem solving and program development in actual projects.

Key words:steel reinforced concrete; concrete-filled tube; object-oriented programming; encapsulation; inheritance

0引言

如何在程序设计中自然地表示客观世界即对象模型,一直是计算机软件开发中广受关注的难题.面向对象编程(Object-Oriented Programming,OOP)设计思想是软件开发方法的一场革命,代表全新的计算机程序设计的思维方法.该方法[1]旨在使程序设计中不同对象之间的关系更接近在自然界中的客观存在,从而也使开发者对它们的理解更接近人们认识事物的过程.这种思想带来的好处是显而易见的,它通过增加代码的可扩充性和可重用性改善并提高程序编制者的开发能力,并能控制维护软件的复杂性和软件维护的开销.

结构工程中各种实际问题的解决,离不开相应的数值分析方法,而各种数值方法的实现则紧密依赖于程序的编制.以往结构计算程序的实现多是面向过程的,各程序段对给定的算法进行描述并依次对数据进行处理,大量的各种类型的数据与其相应的处理过程混杂在一起,任何数据的添加或形式的改变都会导致一系列相关过程的变化.对于试图利用已有代码的程序编制人员,不得不重新阅读并理顺大量的代码.近年来,已有不少学者[2-7]将面向对象方法应用于结构分析程序的编制,说明面向对象的程序设计在结构计算及设计方面同样具有优势.根据工程需要,应用OOP设计中继承和重用的思想,本文在文献[8-10]程序的基础上开发钢骨混凝土(Steel Reinforced Concrete,SRC)和钢管混凝土(Concrete-Filled Tube,CFT)构件计算程序,快速有效地解决工程设计中迫切需要解决的问题.

基于OOP思想,对其在工程计算设计软件开发中的快速开发应用进行分析和探讨,并给出开发思想的具体应用和实现,满足大型结构工程的高效设计需要,为同类问题的解决和程序编制提供参考.

1程序设计思路

1.1开发背景

SRC结构和CFT结构是高层建筑中近期发展起来的具有广阔前景的新型结构,与钢筋混凝土相比的优点是由钢和混凝土形成的组合构件可整体工作、截面尺寸小、构件延性好;与钢结构相比其优点是能够节约钢材、耐火性更好、钢骨可兼做模板,施工速度高.它融合钢结构和钢筋混凝土结构的优点,承载力高、延性好、变形能力强,从而具有较强的抗风和抗震能力.但是由于结构形式较新,结构分析软件中大都缺少SRC和CFT构件的计算模块,使得结构工程师在进行此类结构设计时无程序可用,只能采取一些近似如等效化为单一材质的构件方法进行计算.

笔者所在团队承担“中国平安金融大厦结构优化设计”项目,所优化的主楼结构采用CFT柱、钢梁及钢支撑构成的中央框架――支撑内筒,以及由SRC柱和SRC梁组成的外框筒,分析软件主要采用国际通用分析设计软件ETABS.然而,ETABS虽然支持SRC/CFT构件的建模分析,但并没有实现相应的设计计算功能,这就要求在项目规定的完成时间内自行编制程序进行构件截面设计和校核.

1.2程序设计思路

经过分析,程序编制的工作量主要包括几大部分:接口ETABS软件,使用其中已形成的数据,主要包括几何信息和内力信息等;根据现行规范进行SRC/CFT构件设计计算;对同一类型的构件设计结果进行归并,以符合工程需要;进行设计信息的输出.程序的整体结构及流程管理见图1.

由于程序中需要描述节点、杆件和内力等大量的数据结构以及相关的计算方法,需要实现的代码量很大,鉴于任务有严格的时间限制,必须尽可能利用已有成果,高效快速地进行程序编制工作.

2 OOP抽象及相关实现

2.1OOP的基本概念

OOP设计方法就是运用面向对象的观点描述现实问题,然后运用计算机语言描述并处理该问题.这种描述和处理是通过类与对象实现的,类是逻辑上相关函数与数据的封装,是对现实问题的高度概括、分类和抽象.一些面向对象编程的基本概念[1]如下.

封装和数据隐藏:通过建立用户定义类型(类)支持封装性和数据隐藏.完好定义的类一旦建立,就可看成是完全封装的实体作为一个整体使用.封装的单位是对象,该对象的特性由它自己的类说明来描述.这些特性为相同类的其他对象所共享,对象的封装比一个类的封装更加具体化.

继承和重用:在扩展现有类型的基础上声明新类型,利用“继承”来支持代码重用.新子类是从现有类型派生出来的,称为派生类.派生类不仅具有基类的一切特征,而且还可以定义自己独有的特征,以实现各种各样的功能.

多态性:通过继承的方法来构造类,采用多态性为每个类指定表现行为.利用继承性和多态性的组合,可以轻易地生成一系列虽类似但独一无二的对象:由于继承性,这些对象可共享许多相似的特征;由于多态性,一个对象可以有独特的表现方式,以区别于其他对象.

面对对象设计,鼓励人们从问题最基本、简单的方面入手,用对象来考虑如何描述问题的主要方面.这正是自底向上方法的本质.但面向对象的设计也要求人们面向目标,考虑为了达到这一目标该如何建立基本对象,这也体现自顶向下的设计思想.

2.2代码的继承和新类的抽象提出

由前述的程序设计思想,程序编制者可以通过继承和重用来利用已有的类,同时只需对新类中反映特殊问题的表现行为予以描述即可.

文献[8]中的有限元程序已经由MFC类库抽象出有限元基类,包括从有限元核心概念抽象出的单元类、节点类和载荷类等,而由单元类又继承了体单元、面单元和线单元等类.同时,为了描述线单元的属性,也抽象出截面类及其子类:钢筋混凝土截面类和型钢截面类.结合本文所要解决的工程问题,对上述已有的类进行继承.由于ETABS软件本身是以有限元分析为基础的设计软件,它输出的模型几何文件中信息的描述格式可以直接利用单元类和节点类封装.在线单元的基础上加以发展,抽象出一般构件类以及SRC/CFT构件类,利用载荷类中的点载荷子类继承构件内力类.程序中SRC/CFT构件类的继承关系见图2.

由于尽可能多地利用已有的计算结果,有很多读取ETABS文件的操作,程序对特定的文件格式抽象相应的文件输入输出类.文献[9]中的设计程序,已经抽象出通用文件类、输入文件类、输出文件类、带有标志符的文件类、分段数据文件类和SATWE文件类;通过继承其中具有共性的类,生成适合于解决本工程的新类:ETABS模型文件类、内力文件类和文件类的继承关系见图3.

由于已有类封装了所要解决问题中描述共性的代码,本文新类的建立充分继承已有的类,形成基类―子类关系,基类中的特征被保留下来,在子类中只需对其特性进行代码描述.除此之外,程序中还封装了流程管理类,进行多个文件以及计算工作的管理,限于篇幅,其继承关系不作详述.

从上述类的抽象过程和继承关系可以看出,对于专业性很强的结构工程问题,其组成和性质在很多方面都有相似之处,面向对象程序设计通过层层继承的抽象,方便恰当地表示工程对象.

2.3封装与相关算法的实现

图4说明SRC构件类的封装,其数据成员中大部分均由基类继承过来,SRC构件类中需要再添加的数据成员已经很少,则程序编制的重点可以放在相关配筋算法的实现上,以减少与核心计算工作无关的内容.SRC/CFR构件的配筋计算[11],采用对构件截面进行单元划分,而后进行数值积分的方法进行.由于不同内力组合的截面中性轴位置不同,实际上求取中性轴和确定配筋量过程是一个迭代的过程,其中圆形SRC柱压弯构件的算法流程描述见图5.

3应用实例

如第1节所述,根据中国平安金融大厦结构优化设计的需要,开发计算SRC/CFT设计计算程序,并应用于该项目的设计.中国平安金融大厦位于上海浦东新区陆家嘴国际金融中心,与中银大厦和交银大厦相邻,大厦整体为欧式风格.作为商办楼的主图 4SRC构件类的成员变量和成员函数

楼共38层,结构平面为左右对称,长73.5 m,宽45.0 m;第38层处屋面高度为164 m;38层以上设有塔楼2层和球形穹顶,穹顶顶部高为210 m,穹顶结构为单层钢网壳结构.结构主体标准层见图6.

主楼结构采用框架―支撑体系.围绕中央电梯井道及共享空间设置CFT柱,在X和Y方向设竖向钢支撑,与楼层钢梁一同构成具有一定刚度的中央框支结构.配合建筑设计风格,周边设内置十字钢骨、间距3 m的圆形截面SRC柱(见图7)和内置H型钢的矩形断面SRC框架梁.除底部及避难层,外框架SRC梁隔层设置,SRC柱和SRC梁形成周边框架结构.SRC/CFT柱及SRC梁是整个结构中的主要承力构件,其分布见图8.

SRC/CFT柱及SRC梁构件数量巨大:CFT柱1 574根,SRC柱2 416根,SRC梁1 996根,对于每根构件,输出点为3个.实际考虑9种载荷工况,载荷组合(本文程序中进行组合)共107种,其中非抗震组合27种,抗震组合80种.可知SRC/CFT截面设计计算量的庞大.

在VC++ 6.0应用开发环境中,编制用于计算SRC/CFT构件的程序,运行界面见图9.

向对象开发手段,最大限度地利用已有基类,大大缩短编制时间,仅用两周即完成开发工作;同时由于抽象过程很好地封装底层数据,数据对象十分接近人们的认知,也方便了调试过程.程序设计采取合理的数据结构和算法,对此复杂高层结构中的大量SRC/CFT截面,计算1次运行时间控制在20 min之内,甚至低于ETABS对单一构件设计所需时间.

4结论

运用OOP设计思想开发大型软件具有明显的优点,其思想已被广大专业程序设计人员所接受.但非专业程序开发者采用结构化程序设计思想所开发的软件,尤其是一些专业性软件存在许多固有缺陷,很难对其进行扩展利用.

针对现有结构分析设计软件功能上的不足,采用OOP设计思想对已有代码进行继承和重用,对程序功能进行扩展,开发出SRC/CFT构件计算软件,应用对象和类的概念使得程序的建模更接近实际情况.同时将其应用于一超高层组合结构设计中,在解决实际工程计算问题的同时验证了该方法在程序设计中的优势.实践表明,与传统设计方法相比,OOP的扩展能力大为增强,程序开发和调试周期明显缩短,容易增加前后处理功能或建立与其他前后处理程序的接口.

参考文献:

[1]COHOON J P, DAVIDSON J W. C++ Program Design: an introduction to programming and object-oriented design[M]. USA:The McGraw-Hill Companies, Inc, 1997.

[2]谭也平. 工程结构电算与OOP编程[M]. 北京: 中国建材工业出版社, 1999.

[3]俞铭华, 吴剑国, 曹骥, 等.有限元法与面向对象编程[M]. 北京: 科学出版社, 2004.

[4]谭也平. 有限元前处理系统的图形集成实现[J]. 计算机辅助工程, 2000, 9 (1): 53-58.

[5]丁啸宇, 王书庆, 石洞. 面向图形对象技术在桥梁CAD系统开发中的应用[J]. 计算机辅助工程, 1999, 8 (3): 53-58.

[6]林建, 秦浦雄. 面向对象数据库原理在工程CAD中的应用[J]. 计算机辅助工程, 2001, 10 (2): 36-41.

[7]谭也平, 王书庆, 石洞, 等. 工程CAD系统中的有限元对象的实现[J]. 计算机辅助工程, 1996, 5 (3): 25-29.

[8]姜峰, 李博宁, 丁丽娜. 面向对象的钢筋混凝土有限元非线性分析程序设计[J]. 计算力学学报, 2003, 20 (5): 592-596.

[9]王朝波, 姜峰. 异形柱计算机辅助设计系统LSCCAD的研制[J]. 建筑结构, 2004 (3): 52-55.

[10]WANG Zhaobo, JIANG Feng, LUO Yongfeng, et al. Stochastic crack simulation for reinforced concrete based on the nonlinear finite element method analysis[J]. Harbin Gongye Daxue Xuebao, 2005, 37(S): 215-219.

[11]刘大海, 杨翠如. 型钢/钢管混凝土高楼计算和构造[M]. 北京: 中国建筑工业出版社, 2003.

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:比娱乐,谁怕谁等 下一篇:预应力渡槽有限元分析