錢子俊
(浙江綠城建筑設計有限公司,浙江 杭州 310007)
Microsoft excel是一款功能非常強大的電子表格軟件。它可以輕松地完成數(shù)據(jù)的各類運算,再配合使用填充柄可以快速將公式復制到相鄰單元格,進行批量數(shù)學和函數(shù)運算,從而大大簡化了數(shù)據(jù)的處理工作。但是以Excel的常用功能函數(shù)處理較復雜的迭代運算時,仍需進行大量的人工操作。Excel的VBA宏功能的引入則使其具有了無限的擴展性,因而可以很好地解決復雜數(shù)據(jù)的處理問題。
本文探討利用Excel的VBA宏功能,創(chuàng)建一個自定義函數(shù),通過此函數(shù)批量計算減壓孔板的孔徑值,可以減少設計工作量,也為處理建筑給排水專業(yè)其他類似計算問題提供了一種解決方案。
Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發(fā)出來在其桌面應用程序中執(zhí)行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟件。因此,對于在工作中需要經(jīng)常使用Excel軟件的用戶,學用VBA 有助于使工作自動化,提高工作效率。
《自動噴水滅火系統(tǒng)設計規(guī)范(GB 50084—2017)》[1](以下簡稱《新噴規(guī)》)第8.0.7條,輕危險級、中危險級場所中各配水管入口的壓力均不宜大于0.40 MPa。一般減壓孔板前壓力H1為已知值,因此,通過此條文可以求得減壓孔板的水頭損失Hk。
《新噴規(guī)》第9.3.3條,減壓孔板的水頭損失按下式計算:
(1)
(2)
Vk=Q/A
(3)
式中:dk為減壓孔板的孔口直徑,mm;
Hk為減壓孔板的水頭損失,10 kPa;
Vk為減壓孔板后管道內(nèi)水的平均流速,m/s;
ξ為減壓孔板的局部阻力系數(shù);
A為管道截面積,m2。
從公式可以看出,減壓孔板的孔口直徑dk和管段管徑D對水頭損失有較大影響,確定這兩個數(shù)據(jù)對最終的計算結(jié)果有重要意義。
《消防給水及消火栓系統(tǒng)技術(shù)規(guī)范(GB 50974—2014)》[2]第10.3.3條規(guī)定,減壓孔板的孔口計算內(nèi)徑dk,取值應按減壓孔板孔口直徑減 1 mm確定。而《新噴規(guī)》是按減壓孔板的孔口直徑確定。兩本規(guī)范對dk的取值存在矛盾之處,筆者認為,減壓孔板的孔口計算內(nèi)徑dk應按《消防給水及消火栓系統(tǒng)技術(shù)規(guī)范(GB 50974—2014)》的取值方法。因為管道內(nèi)的連續(xù)流動流體在經(jīng)過孔板時,流體截面急劇收縮,在管壁處產(chǎn)生阻力大,流速降低大,流速低,壓力高;而管道中心處流速大,壓力低,其結(jié)果使流體在徑向由孔板中心至邊緣形成加速度。在這一徑向加速度的影響下,靠近管壁的流體質(zhì)點流向發(fā)生偏轉(zhuǎn)向孔板口處流動,形成流束的局部收縮(圖1),由于慣性作用,在管子突然縮小處流動截面并不立即擴大到與小管的截面積相等,而是繼續(xù)收縮一定距離后才逐漸擴大到整個小管截面。
圖1 流體在節(jié)流后流速收縮圖
陳禮洪等[3]論述了給水管直徑D的取值對孔板水頭損失計算影響。對計算內(nèi)徑小于公稱直徑的管(如DN70、DN80),剩余水頭減得不夠,影響系統(tǒng)均勻配水;對計算內(nèi)徑大于公稱直徑的管(如DN100、DN125、DN150),所減水壓大于剩余水頭,影響系統(tǒng)供水的安全。推薦性國家標準《低壓流體輸送用焊接鋼管(GB/T 3091—2008)》計算內(nèi)徑的值也有所不同,見表1。
表1 鍍鋅鋼管計算內(nèi)徑
目前工程設計中,減壓孔板的計算主要有兩種方法:查表法和計算軟件法。
查表法是將各種不同管徑、孔板孔徑及流速(v通常取1 m/s)代入式(1)和式(2)中,求得相應的Hk,并將所得的Hk編成減壓孔板的水頭損失表。使用時,只要已知剩余水頭H及給水管直徑D,就可從表中查得所需孔板孔徑d。若水流通過孔板后的實際流速v不等于1 m/s時,則須按式(4)進行修正,并按修正后的剩余水頭查表。此法過程繁瑣,工作量大,且計算精度不能保證。
(4)
式中:H′為流速為1 m/s的剩余水頭,kPa;
H為設計剩余水頭,kPa。
計算軟件法是利用各種減壓孔板計算軟件,通過輸入管徑、流量、減壓值,由軟件得到計算結(jié)果。此方法每次只能輸入一個減壓值,得到一個結(jié)果,對多次運算計算量也較大。但是由于不能看到計算的中間過程,因此對計算結(jié)果準確性不能保證。
在工程計算中,減壓孔板前壓力H1,系統(tǒng)設計流量Q和管段管徑D為已知值,而孔板直徑dk和減壓后壓力H2為未知值。在減壓孔板的計算中,通過對孔板直徑的迭代運算,求得不同孔板直徑的水頭損失,使得最終的減壓后壓力H2<40 m。對于設噴淋系統(tǒng)的高層或超高層建筑,由于每層減壓前壓力值H1不同,計算各層減壓孔板時,都需要通過多次迭代,求得孔板直徑。
VBA的編程語言,在迭代運算中具有相當大的優(yōu)勢,且能自動判斷計算值是否符合預期值。通過編寫一個自定義函數(shù),運用DO/Until的循環(huán)功能,可求得減壓孔板值,再結(jié)合Excel的自動填充柄功能,即可實現(xiàn)批量計算減壓孔板孔徑值。
對減壓孔板進行計算的VBA宏程序代碼如下:
Public Function Func(H1 As Double, pipe_dn As Integer, Q As Single);定義函數(shù)名Func
Dim g As Single, hole_dn As Integer, s As Double, H0 As Double, H2 As Double, V As Double
Dim pi As Double, X As Single
pi = 3.14159265258979
hole_dn = 100
Select Case H1
Case Is > 40
Do
hole_dn = hole_dn - 1
s = (1.75 * (pipe_dn) ^ 2 * (1.1 - (hole_dn - 1) ^ 2 / (pipe_dn) ^ 2) / ((hole_dn - 1) ^ 2 * (1.175 - (hole_dn - 1) ^ 2 / (pipe_dn) ^ 2)) - 1) ^ 2
V = 4000 * Q / (pi * (pipe_dn) ^ 2)
H0 = s * (V) ^ 2 / 2 / 9.81
H2 = H1 - H0
Loop Until H2 < 40;若H2<40則退出循環(huán)。
FUNc = hole_dn
Case Is <= 40
FUNc = "不減壓"
End Select
End Function
實際操作步驟如下(以Excel 2013版本為例):
第一步:首先新建Excel文件,然后另存為減壓孔板計算.xlsm(Excel啟用宏的工作簿),點擊“開發(fā)工具”面板,點擊“Visual Basic”按鈕。
第二步:在打開的VBA編輯器中,右鍵“VBAProject”—“插入”—“模塊”。
第三步:把上面的VBA宏內(nèi)容復制到VB編輯器中;
第四步:保存成功后,關(guān)閉VB編輯器。至此,在Excel中可調(diào)用自定義函數(shù)Func。
用《新噴規(guī)》附錄D的表格值驗算計算值是否滿足要求。
取H1=61 m,Q=30 L/s,dk=50 mm,dj=100 mm,dk/dj=0.5,查表得ζ=29.5。
Hk=29.5×3.8192/2×9.81=21.92
因此減壓后壓力H2=61-21.92=39.08 m<40 m,滿足減壓要求。
將上述H1、dj、Q值分別輸入Excel中A1、B1、C1單元格,在D1單元格輸入=Func(A1;B1;C1),得到減壓孔板孔徑為51 mm(計算內(nèi)徑dk=50 mm),與上述驗算孔徑一致,表明該宏功能符合計算要求。
某超高層住宅項目,地上37層,每層層高均為3.15 m,噴淋系統(tǒng)設3個分區(qū),噴淋1區(qū)為1~14 層,噴淋2區(qū)為15~29層,噴淋3區(qū)為30~37層。
計算出各分區(qū)的起始層樓面處的壓力值如下,噴淋1區(qū)1層地坪處的噴淋壓力約為0.85 MPa,噴淋2區(qū)15層地坪處的噴淋壓力約為1.35 MPa,噴淋3區(qū)30層地坪處的噴淋壓力約為1.60 MPa。由于每層層高相同,通過起始層的壓力值,運用填充柄功能,得到各樓層的減壓孔板前壓力。在減壓孔板孔徑的一欄輸入如下公式=Func(B1;B2;B3),再利用填充柄功能自動計算得到需要減壓的樓層及其減壓孔板的孔徑規(guī)格。計算結(jié)果見表2。
表2 減壓孔板計算表
注:減壓孔板處管道計算管徑均為106 mm;噴淋設計流量按30 L/s計。
通過此方法,將原先至少需要進行37次反復運算的操作,變成了一次填充操作,大大減少了工作量,避免了人為計算失誤,準確率高。
1) 《消防給水及消火栓系統(tǒng)技術(shù)規(guī)范(GB 50974—2014)》和《自動噴水滅火系統(tǒng)設計規(guī)范(GB 50084—2017)》關(guān)于減壓孔板計算內(nèi)徑不一致,筆者認為應按《消防給水及消火栓系統(tǒng)技術(shù)規(guī)范(GB 50974—2014)》的取值方法確定。
2) 運用VBA宏功能,對于減壓孔板的多次反復運算,有助于減少重復計算工作量,有利于提高設計質(zhì)量。
3) VBA宏作為Office的擴展功能,是簡化給排水設計計算的利器,為簡化建筑給排水計算提供了一種解決思路。