- 相關推薦
直飲水秒流量計算與VB編程
摘要:隨著人民生活水平的提高,建筑給排水工程設計中的直飲水系統也越來越多,工程設計中直飲水管道的秒流量計算也就顯得比較重要了。
關鍵詞:直飲水 概率 使用概率 設計秒流量 函數 類 循環體
隨著人民生活水平的提高,建筑給排水工程設計中的系統也越來越多,工程設計中管道的秒流量計算也就顯得比較重要了。
《2003全國民用建筑工程設計技術措施給水排水》中第3章第62頁對管道的設計秒流量計算采用的是概率法進行計算。其計算步驟如下:
1.先計算出系統的最高日用水量Qd:Qd=N×qd
式中:N—系統服務的人數 qd—用水定額(L/d.人)
2.再計算出系統最大時用水量Qh:Qh=Kh×Qd÷T
式中:Kh—時變化系數 T—系統中使用時間(h)
3.然后計算出飲用水龍頭的使用概率P:P=α×Qh÷(1800×n×Q0)
式中:α—經驗系數,取0.6~0.9(一般取0.8) n—龍頭數量
Q0—龍頭額定流量(L/s)
4.根據使用概率P,求出瞬時高峰用水量龍頭使用數量m:
5.求出瞬時高峰用水量Qs:Qs=Q0×m
在上述5個計算步驟中,第4步的計算在飲用水龍頭數量少時尚可手算。如果龍頭數量≥12個時,手算就很麻煩了。為此,書中特意列出了表3.1.9-3 《龍頭設置數量達12個以上時的使用數量》。表中對于使用概率為0.005的整數倍進行詳細列表,并且表中的數量僅局限于1500個龍頭。在實際工程計算中,計算出的使用概率是0.005的整數倍的可能性是很小的,對于小數量的龍頭,采用內插法求解時其誤差可以忽略不計;但是數量大時,其誤差影響就比較大。為此,我在利用程序求解方面作了一些嘗試。
在上述5個計算步驟中,第4步是整個計算過程中最難求解的一步。瞬時高峰用水量龍頭使用數量m是在n個龍頭中,若0~m個龍頭使用概率的總和不小于0.99,則m為設計秒流量發生時的同時使用龍頭個數。
在n個龍頭中,任意r個同時使用的概率為Pnr:
Pnr=Cnr×(1-P)n-r×Pr
式中:Cnr為從n個不同元素中,每次取出r個不同的元素,不管其順序組合成的組合數量:
Cnr=n!÷ (r!× (n-r)!)
在n個龍頭中,任意0~m個水龍頭使用的概率總和不小于0.99,其表達式為
Pn=∑r=0mCnr×(1-P)n-r×Pr
因此,我們只要按r從0到m依次求出Pnr以及Pn,并判斷Pn是否滿足≥0.99;如果是,則m的值就是我們所求的解。具體編程流程如下:
在上述編程流程中使用了一個Do while循環,并加了個計數器。這樣,在滿足條件跳出循環的時候,就可以得到m的值。
但是在計算程序執行過程中,由于VB編程自身對于計算結果的限制,對于Cnr=n!÷ (r!× (n-r)!)中的組合數,如果采用Integer變量,很容易就超出可計算的范圍;如果采用Long變量或Double變量,則占用內存較多,且計算范圍并未擴大很多。鑒于以上情況及所計算的概率值≤1,我考慮利用VB6提供的LOG函數(即數學函數中的ln),對上述公式進行了轉換:
㏒(Cnr)=㏒(n!)- (㏒ (r!) ㏒ (n-r)!)
㏒(Pnr)= ㏒( Cnr) (n-r)㏒(1-P) r㏒(P)
因此在程序中,需要專門設計兩個新的類:第一個類,用來處理㏒(Pnr),其源程序如下:
Function lnjc(n As Integer) As Double
Dim tempjc As Double
tempjc = 0
Do While n
【直飲水秒流量計算與VB編程】相關文章:
VB與MATLAB混合編程在流量標定系統數據庫中的應用03-07
VB編程中網格控件的選用及使用方法03-18
非Access數據庫在VB中的編程及應用03-18
小橋涵設計流量的計算方法12-16
探索結對編程03-04
管道直飲水用戶分析與銷售管理03-28
用VB構鍵Internet的應用03-18
用VB構鍵Internet的應用-03-18