朱亞萍, 馬朋濤
(中交第一公路勘察設(shè)計研究院有限公司, 陜西 西安 710075)
Python語言于1989年由Guido開發(fā),目前,Python有兩個版本影響最為廣泛,2.x版及3.x版。該文相關(guān)代碼都采用3.7版的Python編寫。
Python語言的核心包含數(shù)字、字符串、列表、字典、文件等常見類型和函數(shù),同時Python還提供了一個很強(qiáng)大的標(biāo)準(zhǔn)庫,用于實(shí)現(xiàn)系統(tǒng)管理、網(wǎng)絡(luò)通信、文本處理等額外的功能。而Python更強(qiáng)大之處在于社群為其提供的龐大的第三方模塊。這些第三方模塊的使用方式與標(biāo)準(zhǔn)庫類似,它們的功能覆蓋科學(xué)計算、Web開發(fā)、數(shù)據(jù)庫接口、圖形系統(tǒng)多個領(lǐng)域。由于第三方模塊可以使用Python或者C語言編寫,其他語言也常常將自身的程序庫轉(zhuǎn)化為Python模塊,因而Python常被用做其他語言與工具之間的“膠水”語言。
該文除了使用Python自身的基本核心和標(biāo)準(zhǔn)庫之外,還使用了numpy、pandas、matplotlib等第三方模塊。numpy是Python進(jìn)行科學(xué)計算的基礎(chǔ)軟件包;pandas是一個強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集,可以與電子表格(excel)進(jìn)行數(shù)據(jù)交換;matplotlib則是一個Python的2D繪圖庫。這些模塊的功能豐富,具體的使用辦法該文不贅述。
圓形截面是橋梁下部結(jié)構(gòu)最常使用的截面形式,比如柱式橋墩的墩柱和樁基礎(chǔ)。
JTG 3362-2018《公路鋼筋混凝土及預(yù)應(yīng)力混凝土橋涵設(shè)計規(guī)范》于2018年11月1日正式實(shí)施,以下簡稱“JTG 3362”。其在第5、6章中對圓形截面承載能力和裂縫驗(yàn)算的相關(guān)內(nèi)容進(jìn)行了較大的調(diào)整。
根據(jù)條文說明JTG 3362第5.3.8條,圓形截面的承載能力計算公式盡管進(jìn)行了修改,與JTG D62-2004《公路鋼筋混凝土及預(yù)應(yīng)力混凝土橋梁設(shè)計規(guī)范》(簡稱JTG D62)相比,兩者公式推導(dǎo)的基本原理是一致的,不同的簡化處理方法,導(dǎo)致不同的表達(dá)式。
在JTG D62第6.4條中,鋼筋混凝土構(gòu)件裂縫寬度驗(yàn)算公式進(jìn)行了調(diào)整,同時在JTG D62第6.4.4條和6.4.5條中對圓形截面相關(guān)的計算公式進(jìn)行了調(diào)整。
該文對相關(guān)計算公式進(jìn)行分析研究,根據(jù)不同的計算模式將公式進(jìn)行變形,得到相應(yīng)的計算模型,采用Python語言編寫代碼加以實(shí)現(xiàn),得到最終所需的截面承載力或配筋。
JTG 3362第5.3.8條,沿周邊均勻配置縱向鋼筋的圓形截面鋼筋混凝土偏心受壓構(gòu)件(圖1),其正截面抗壓承載力計算應(yīng)符合下列規(guī)定:
(1)
(2)
式中:各參數(shù)意義詳見JTG 3362。
圖1 沿周邊均勻配筋的圓形截面
為了方便求解,避免符號沖突,將式(1)、(2)中圓形截面的面積由“A”改為“A0”。同時,令ρ=As/A0,g=rs/r,令:
(3)
由于式(3)中A、B、C、D4個參數(shù)只與參數(shù)α相關(guān),均可表示為α的函數(shù)。這里α的意義與規(guī)范一致,對應(yīng)于受壓區(qū)混凝土截面面積的圓心角(rad)與2π的比值。為方便起見,在程序中設(shè)置了函數(shù)A(α)、B(α)、C(α)、D(α)來計算這幾個參數(shù)。
根據(jù)上述定義,式(1)、(2)可以改寫為:
γ0Nd≤Nud=(Afcd+Cfsdρ)A0
(4)
γ0Ndηe0≤Mud=(Bfcd+Dfsdρg)A0r
(5)
令:
(6)
(7)
(8)
則式(4)、(5)中的等式部分可進(jìn)一步改寫為:
nu=A+Cρr
(9)
nuer=B+Dρrg
(10)
觀察式(6)、(7)、(8)可以發(fā)現(xiàn):nu、ρr、er均為無量綱參數(shù),這樣式(9)、(10)所表示的圓形截面承載力公式就更具有一般性意義。
2.1.1 豎向承載力計算
對配筋已知的截面,保持豎向荷載偏心距不變,求截面最大的豎向承載力。按式(9)、(10)可描述為已知ρr、er,求nu。
由式(9)、(10)可得:
(11)
由于ρr、er均為已知,則式(11)為關(guān)于α的方程。由于方程中包含關(guān)于α的正弦函數(shù)項(xiàng),方程無法直接求解,可以通過試算迭代的方法求解。為了確定求解算法,可以將式(11)的右邊看成關(guān)于α的函數(shù)er(α),分別取ρr為0.30、0.60、0.90、1.20,繪制er(α)的函數(shù)曲線,如圖2所示,圖中曲線均采用Matplotlib進(jìn)行繪制。
圖2 er(α)的函數(shù)曲線
由圖2可以看出:er(α)為類似雙曲函數(shù)的曲線,有兩條漸近線er=0和α=αasym。
當(dāng)α<αasym時,er(α)<0;當(dāng)α>αasym時,er(α)>0。er(α)函數(shù)在兩段定義域內(nèi)都是單調(diào)遞減的,因此可以考慮使用二分法求解?;趀r(α)函數(shù)的特點(diǎn),考慮到所求的er值必為正值,因此在迭代過程中需要進(jìn)行特別的處理。
JTG 3362附錄F表F.0.1(表1)中的每個數(shù)值均可以采用上述nu()函數(shù)進(jìn)行計算,將計算數(shù)值采用pandas模塊保存于F01.xlsx文件中(表2)。
與表1進(jìn)行對比,表2大部分計算值均與規(guī)范吻合,很少部分?jǐn)?shù)值誤差在萬分之一左右。
表1 JTG 3362表F.0.1
表2 抗壓承載能力nu計算值
2.1.2 彎矩承載力計算
對配筋已知的截面,保持豎向荷載不變,求截面承受的最大彎矩。按式(9)、(10)可描述為已知ρr、nu,求er。
由式(9)可知,由于ρr、nu均為已知,可以將式(9)的右邊看成關(guān)于α的函數(shù)nu(α),分別取ρr為0.30、0.60、0.90、1.20,繪制nu(α)的函數(shù)曲線,如圖3所示。
圖3 nu(α)的函數(shù)曲線
由圖3可以看出:nu(α)函數(shù)在定義域內(nèi)是單調(diào)遞增的,因此可以考慮使用二分法求解。
2.1.3 按承載力計算配筋
作用于圓形截面的軸力和彎矩已知,求截面所需的配筋。按式(9)、(10)可描述為已知nu、er,求ρr。
由式(9)、(10)可知:
(12)
將式(12)代入式(9)得:
(13)
由于er為已知,可以將式(13)的右邊看成關(guān)于α的函數(shù)nu(α),分別取er為0.01、0.05、0.25、1.25、6.25,繪制nu(α)的函數(shù)曲線,如圖4所示。
圖4 nu(α)的函數(shù)曲線
由圖4可以看出:nu(α)的函數(shù)曲線比較復(fù)雜,局部與雙曲線類似,存在多組漸近線??紤]nu的取值應(yīng)為正值,關(guān)注nu(α)函數(shù)曲線大于0的部分可發(fā)現(xiàn),這部分函數(shù)都是單調(diào)遞增的,還是可以采用二分法進(jìn)行求解,遇到負(fù)值的情況需要特殊處理。
將JTG 3362表F.0.1中的nu、er代入rho_r()函數(shù)中,即可驗(yàn)證代碼執(zhí)行的正確性。經(jīng)過測試,rho_r()函數(shù)工作正常,這里不再贅述。
JTG 3362第6.4.3條規(guī)定,鋼筋混凝土構(gòu)件的最大裂縫寬度應(yīng)滿足:
(14)
其中:
(15)
(16)
r1=r-2as
(17)
(18)
由于已知截面荷載及配筋,將相關(guān)數(shù)據(jù)代入公式求解裂縫寬度即可。
以下討論已知截面荷載、根據(jù)給定的裂縫寬度計算截面配筋的情形。
令:
(19)
(20)
將As=ρπr2以及式(18)、(19)、(20)分別代入式(15)、(16),整理得:
(21)
(22)
令:
(23)
將式(22)、(23)代入式(14)得:
(24)
將式(24)整理為關(guān)于ρ的方程得:
4.25βrρ3+0.68βrρ2+1.44g(1-g)ρ-4g·(1-g)C0=0
(25)
其中:
求解式(25)關(guān)于ρ的方程即可求得截面配筋率。
根據(jù)JTG 3362要求,縱向受拉鋼筋的有效配筋率ρte,當(dāng)ρte>0.1時,ρte=0.1;當(dāng)ρte<0.01時,ρte=0.01。故應(yīng)對上述計算所得的截面配筋率代入式(22)進(jìn)行驗(yàn)證。若不滿足要求,則可假定ρte=0.1或ρte=0.01,代入式(24)重新計算截面配筋率ρ,直到找到滿足條件的截面配筋率。
以某φ200 cm的圓柱形橋墩為例,墩柱計算長度為28.5 m,基本組合Nu=12 000 kN,Mu=9 000 kN·m;頻遇組合Ns=10 000 kN,Ms=8 000 kN·m,計算該截面所需要的縱向主筋面積。墩柱采用C30混凝土,縱向主筋采用直徑28 mm的HRB400鋼筋,主筋中心到混凝土表面距離為9 cm,結(jié)構(gòu)重要性系數(shù)γ0=1.0,最大裂縫寬度為0.15 mm。
裂縫寬度采用rho_()函數(shù)計算,求解方程6.114 726 8ρ3+0.978 356 3ρ2+0.117 936 0ρ-0.001 345 484=0,得ρ=0.010 445,配筋面積As=328.13 cm2,0.01<ρte=0.019 5<0.1,設(shè)計配筋采用54根直徑28 mm的鋼筋,配筋面積為332.51 cm2。按裂縫寬度計算公式對計算結(jié)果進(jìn)行驗(yàn)算,鋼筋應(yīng)力σss=110.6 MPa,Wcr=0.148 mm<0.15 mm,滿足要求。
Python作為目前最受歡迎的編程語言之一,入門簡單,功能強(qiáng)大。該文采用Python實(shí)現(xiàn)了一種解決圓形截面配筋的計算方法,能夠按承載能力的相關(guān)公式計算截面的承載力及配筋,也可以按裂縫寬度驗(yàn)算的相關(guān)公式計算截面的配筋。采用Python語言實(shí)現(xiàn)的計算方法代碼簡潔易讀,還可以結(jié)合圖形實(shí)現(xiàn)算法優(yōu)化,非常方便。