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