魏鳴鏑,賈斌武
(北京通程泛華建筑工程顧問有限公司四川分公司,四川成都610017)
對于結構設計人員特別是從事工業結構設計的人員,時常會遇到一些特殊的結構如水池、冷卻塔、一段爐等,這些結構用一般的結構設計程序如PKPM是設計不了的。對于這些特殊結構的設計現在一般的處理辦法是購買專用的設計軟件來解決。這種解決辦法的優點是出圖快、效率高,缺點是購買專業軟件的數量多,購買和升級的費用高且對設計人員的專業技術提高不利。對于該問題還有一個解決辦法是使用MIDAS、SAP2000或ANSYS等通用有限元程序作用結構分析平臺對各種特種結構進行分析得出結構的內力分布,再由結構設計人員根據規范要求編寫一些后處理程序來進行配筋設計或進行強度驗算,這種解決辦法的優點是所需的專業軟件少,只需要一個通用有限元分析軟件即可,且對結構設計人員的專業技術成長有利,缺點是人員要求較高,先期的開發時間較長,后期的程序維護需有專業人員來完成。本文以具體的工程實例為前提,闡述了第二種解決方法在設計和開發過程中的實際運用。
提到編程首先涉及到用什么語言,對于結構工程師來說編程就是為了解決結構設計中遇到的實際問題,因此使用的編程語言越簡單越好,畢竟結構工程工師不是軟件工程師,沒有必要使用那些高級編程語言。因此,對于結構工程師編程來說,VBA語言是首選,VBA是VISUAL BASIC FOR APPLICATION的簡寫,是非常流行的應用程序開發語言VISUAL BASIC的子集,主要是用來擴展Windows應用程序的功能,特別是Microsoft Office軟件,使用應用程序實現自動化的功能。現在結構工程師平時所使用的主要設計軟件如AUTOCAD、SAP2000、TEKLA等軟件均提供了基于VBA的API函數接口,也就是說在平時設計過程中實際操作的各種命令均可以通過接口函數的功能來實現,這就給我們的設計工作帶來很大的方便,例如平常設計過程中需要花幾天或幾十天的設計工作,我可以編寫一段VBA代碼在幾分鐘內解決,這大大提高了我們使用應用程序的效率。另外使用VBA不需要專門的編譯程序,它內嵌于MICORSOFT OFFICE軟件中,這非常利于VBA的推廣運用。
LNG儲罐是直徑82 m、高達42 m的筒體結構,平均壁厚不足1 m ,對于這種特殊的薄壁結構用PKPM根本無法設計,在開發過程中,我們使用通用有限元程序對其在各種工況下的內力進行了分析,由于ANSYS沒有中國規范的配筋設計和強度驗算的后處理模塊,所以必須通過其他的后處理軟件來解決。而一般的結構設計軟件的后處理模塊都是與前處理及分析模塊集成的,沒有單獨的后處理模塊。同時由于罐體體積很大,在分析過程中劃分的單元非常多,沿罐的徑向截面有200多個節點,每個節點有300多種組合工況的內力,因此要對每一個節點的截面配筋驗算工作量非常之大,用手工計算幾乎不可能,因此,我們決定通過EXCEL中的VBA程序來解決。考慮到EXCEL中具有單元格拖曳功能,即單元格公式的自動套用功能,因此對于罐體各截面的配筋驗算考慮按以下方式進行,單元格的各列為截面的已知條件,如截面厚度、配筋量以及內力組合結果,單元格的各行按不同工況的內力結果進行排列,這樣只要通過一個函數對第一行的配筋結果驗算完后,將結果單元格下拉即可得到其它各工況下的驗算結果。
對于罐體的殼元的正截面配筋驗算可以按柱的單向壓(拉)彎公式實現,但考慮到以后在其他設計工作的推廣運用,設計時按《混凝土結構設計規范》附錄E-任意截面、圓形及環形構件正截面承載力計算的規定編寫,具體實現流程如圖1,過程可參見圖2。

圖1 計算程度編制流程

圖2 柱正截面承載力曲線Nr-Mr曲線
根據上述流程,為保證程序的結構性,在編程過程中使用了不同的子函數以實現不同的功能,具體的子函數如下:
Sub SetValue()設計輸入條件;
Function AdjustMy()考慮長柱效應,調整y向彎矩設計值;
Function AdjustMz() 考慮長柱效應,調整z向彎矩設計值;
Function AngleOfNeutralAxis()計算中和軸與y向的夾角;
Sub MeshCircSection()圓形截面單元劃分;
Sub MeshRectSection()矩形截面單元劃分;
Sub RebarPositionC()確定圓形截面鋼筋位置;
Sub RebarPositionR()確定矩形截面鋼筋位置;
Function CalE1()受壓破壞狀態下計算偏心距Ec;
Sub CriticalState()極限承載力計算;
Function ChkStateN()正截面軸向承載力強度比;
Function ChkStateM()正截面彎矩承載力強度比;
程序具體代碼可參見附錄,該函數的具體驗算結果見表1。
根據表1結果可看出,所編寫的函數完成達到了我們預期的效果,更為重要的是該函數可以重用可作為EXCEL中的一個內嵌函數,任何使用EXCEL計算的結構設計均可調用該函數用于柱正截面承載力驗算,大家還可以對其進行補充完善使該函數實現更強的功能。

表1 柱正截面承載力驗算函數在EXECEL中算例