魏鳴鏑,賈斌武
(北京通程泛華建筑工程顧問有限公司四川分公司,四川成都610017)
對(duì)于結(jié)構(gòu)設(shè)計(jì)人員特別是從事工業(yè)結(jié)構(gòu)設(shè)計(jì)的人員,時(shí)常會(huì)遇到一些特殊的結(jié)構(gòu)如水池、冷卻塔、一段爐等,這些結(jié)構(gòu)用一般的結(jié)構(gòu)設(shè)計(jì)程序如PKPM是設(shè)計(jì)不了的。對(duì)于這些特殊結(jié)構(gòu)的設(shè)計(jì)現(xiàn)在一般的處理辦法是購買專用的設(shè)計(jì)軟件來解決。這種解決辦法的優(yōu)點(diǎn)是出圖快、效率高,缺點(diǎn)是購買專業(yè)軟件的數(shù)量多,購買和升級(jí)的費(fèi)用高且對(duì)設(shè)計(jì)人員的專業(yè)技術(shù)提高不利。對(duì)于該問題還有一個(gè)解決辦法是使用MIDAS、SAP2000或ANSYS等通用有限元程序作用結(jié)構(gòu)分析平臺(tái)對(duì)各種特種結(jié)構(gòu)進(jìn)行分析得出結(jié)構(gòu)的內(nèi)力分布,再由結(jié)構(gòu)設(shè)計(jì)人員根據(jù)規(guī)范要求編寫一些后處理程序來進(jìn)行配筋設(shè)計(jì)或進(jìn)行強(qiáng)度驗(yàn)算,這種解決辦法的優(yōu)點(diǎn)是所需的專業(yè)軟件少,只需要一個(gè)通用有限元分析軟件即可,且對(duì)結(jié)構(gòu)設(shè)計(jì)人員的專業(yè)技術(shù)成長有利,缺點(diǎn)是人員要求較高,先期的開發(fā)時(shí)間較長,后期的程序維護(hù)需有專業(yè)人員來完成。本文以具體的工程實(shí)例為前提,闡述了第二種解決方法在設(shè)計(jì)和開發(fā)過程中的實(shí)際運(yùn)用。
提到編程首先涉及到用什么語言,對(duì)于結(jié)構(gòu)工程師來說編程就是為了解決結(jié)構(gòu)設(shè)計(jì)中遇到的實(shí)際問題,因此使用的編程語言越簡單越好,畢竟結(jié)構(gòu)工程工師不是軟件工程師,沒有必要使用那些高級(jí)編程語言。因此,對(duì)于結(jié)構(gòu)工程師編程來說,VBA語言是首選,VBA是VISUAL BASIC FOR APPLICATION的簡寫,是非常流行的應(yīng)用程序開發(fā)語言VISUAL BASIC的子集,主要是用來擴(kuò)展Windows應(yīng)用程序的功能,特別是Microsoft Office軟件,使用應(yīng)用程序?qū)崿F(xiàn)自動(dòng)化的功能?,F(xiàn)在結(jié)構(gòu)工程師平時(shí)所使用的主要設(shè)計(jì)軟件如AUTOCAD、SAP2000、TEKLA等軟件均提供了基于VBA的API函數(shù)接口,也就是說在平時(shí)設(shè)計(jì)過程中實(shí)際操作的各種命令均可以通過接口函數(shù)的功能來實(shí)現(xiàn),這就給我們的設(shè)計(jì)工作帶來很大的方便,例如平常設(shè)計(jì)過程中需要花幾天或幾十天的設(shè)計(jì)工作,我可以編寫一段VBA代碼在幾分鐘內(nèi)解決,這大大提高了我們使用應(yīng)用程序的效率。另外使用VBA不需要專門的編譯程序,它內(nèi)嵌于MICORSOFT OFFICE軟件中,這非常利于VBA的推廣運(yùn)用。
LNG儲(chǔ)罐是直徑82 m、高達(dá)42 m的筒體結(jié)構(gòu),平均壁厚不足1 m ,對(duì)于這種特殊的薄壁結(jié)構(gòu)用PKPM根本無法設(shè)計(jì),在開發(fā)過程中,我們使用通用有限元程序?qū)ζ湓诟鞣N工況下的內(nèi)力進(jìn)行了分析,由于ANSYS沒有中國規(guī)范的配筋設(shè)計(jì)和強(qiáng)度驗(yàn)算的后處理模塊,所以必須通過其他的后處理軟件來解決。而一般的結(jié)構(gòu)設(shè)計(jì)軟件的后處理模塊都是與前處理及分析模塊集成的,沒有單獨(dú)的后處理模塊。同時(shí)由于罐體體積很大,在分析過程中劃分的單元非常多,沿罐的徑向截面有200多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有300多種組合工況的內(nèi)力,因此要對(duì)每一個(gè)節(jié)點(diǎn)的截面配筋驗(yàn)算工作量非常之大,用手工計(jì)算幾乎不可能,因此,我們決定通過EXCEL中的VBA程序來解決??紤]到EXCEL中具有單元格拖曳功能,即單元格公式的自動(dòng)套用功能,因此對(duì)于罐體各截面的配筋驗(yàn)算考慮按以下方式進(jìn)行,單元格的各列為截面的已知條件,如截面厚度、配筋量以及內(nèi)力組合結(jié)果,單元格的各行按不同工況的內(nèi)力結(jié)果進(jìn)行排列,這樣只要通過一個(gè)函數(shù)對(duì)第一行的配筋結(jié)果驗(yàn)算完后,將結(jié)果單元格下拉即可得到其它各工況下的驗(yàn)算結(jié)果。
對(duì)于罐體的殼元的正截面配筋驗(yàn)算可以按柱的單向壓(拉)彎公式實(shí)現(xiàn),但考慮到以后在其他設(shè)計(jì)工作的推廣運(yùn)用,設(shè)計(jì)時(shí)按《混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范》附錄E-任意截面、圓形及環(huán)形構(gòu)件正截面承載力計(jì)算的規(guī)定編寫,具體實(shí)現(xiàn)流程如圖1,過程可參見圖2。
圖1 計(jì)算程度編制流程
圖2 柱正截面承載力曲線Nr-Mr曲線
根據(jù)上述流程,為保證程序的結(jié)構(gòu)性,在編程過程中使用了不同的子函數(shù)以實(shí)現(xiàn)不同的功能,具體的子函數(shù)如下:
Sub SetValue()設(shè)計(jì)輸入條件;
Function AdjustMy()考慮長柱效應(yīng),調(diào)整y向彎矩設(shè)計(jì)值;
Function AdjustMz() 考慮長柱效應(yīng),調(diào)整z向彎矩設(shè)計(jì)值;
Function AngleOfNeutralAxis()計(jì)算中和軸與y向的夾角;
Sub MeshCircSection()圓形截面單元?jiǎng)澐郑?/p>
Sub MeshRectSection()矩形截面單元?jiǎng)澐郑?/p>
Sub RebarPositionC()確定圓形截面鋼筋位置;
Sub RebarPositionR()確定矩形截面鋼筋位置;
Function CalE1()受壓破壞狀態(tài)下計(jì)算偏心距Ec;
Sub CriticalState()極限承載力計(jì)算;
Function ChkStateN()正截面軸向承載力強(qiáng)度比;
Function ChkStateM()正截面彎矩承載力強(qiáng)度比;
程序具體代碼可參見附錄,該函數(shù)的具體驗(yàn)算結(jié)果見表1。
根據(jù)表1結(jié)果可看出,所編寫的函數(shù)完成達(dá)到了我們預(yù)期的效果,更為重要的是該函數(shù)可以重用可作為EXCEL中的一個(gè)內(nèi)嵌函數(shù),任何使用EXCEL計(jì)算的結(jié)構(gòu)設(shè)計(jì)均可調(diào)用該函數(shù)用于柱正截面承載力驗(yàn)算,大家還可以對(duì)其進(jìn)行補(bǔ)充完善使該函數(shù)實(shí)現(xiàn)更強(qiáng)的功能。
表1 柱正截面承載力驗(yàn)算函數(shù)在EXECEL中算例