工学
RSS阅读器
 您现在的位置: 在职教育交流中心 >> 论文写作 >> 计算机 >> 计算机应用 >> 论文正文

直饮水秒流量计算与VB编程

作者:佚名    论文来源:在职教育交流中心    点击数:    更新时间:2007-5-21

摘要:随着人民生活水平的提高,建筑给排水工程设计中的直饮水系统也越来越多,工程设计中直饮水管道的秒流量计算也就显得比较重要了。

关键词:直饮水 概率 使用概率 设计秒流量 函数 类 循环体

 

随着人民生活水平的提高,建筑给排水工程设计中的系统也越来越多,工程设计中管道的秒流量计算也就显得比较重要了。

《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 >= 1

tempjc = tempjc + Log(n)

n = n - 1

Loop

lnjc = tempjc

End Function

第二个类,用来处理㏒(Cnr),其源程序如下:

Function lncjc(n As Integer, r As Integer, p As Double) As Double

Dim tempcjc, temp0, temp1, temp2 As Double

Dim n1 As Integer

Dim nn, rr As Integer

Dim temp As New lnjc

tempcjc = 0: nn = n - r: n1 = nn: rr = r

If r <= 0 Then r = 1

temp0 = temp.lnjc(n)

temp1 = temp.lnjc(r)

temp2 = temp.lnjc(n1)

tempcjc = temp0 - temp1 - temp2

temp1 = rr * Log(p)

temp2 = nn * Log(1 - p)

temp0 = tempcjc + temp1 + temp2

lncjc = temp0

End Function

然后再用VB6中提供的另一个函数EXP进行反向求解,既可以得到Pnr。上述两个类在do while循环体内,然后再计算Pn=∑r=0mPnr,退出循环体的条件是:

Pn是否满足≥0.99

其循环体的求解源程序如下:

Private Sub Command3_Click()

Dim n As Integer

Dim r As Integer

Dim m As Integer

Dim nn, mm As Integer

Dim p As Double

Dim p0 As Double

Dim temp As New lncjc

If Text2.Text <> "" Then fwrs = CDbl(Text2.Text)

If Text4.Text <> "" Then ysde = CDbl(Text4.Text)

If Text5.Text <> "" Then n = CInt(Text5.Text)

If Text7.Text <> "" Then jyxs = CDbl(Text7.Text)

If Text9.Text <> "" Then edll = CDbl(Text9.Text)

If Text3.Text <> "" Then

  bhxs = CDbl(Text3.Text)

  yssj = CInt(yssjt.Text)

  p = Log(jyxs * (bhxs * fwrs * ysde / yssj)) - (Log(1800 * edll) + Log(n))

  p = Exp(p)

  Text1.Text = Format(p, "0.###0")

Else

  p = CDbl(Text1.Text)

End If

If n <= 32000 Then

p0 = 0: mm = 0: nn = n

Do While p0 < 0.99

m = mm: n = nn

p0 = p0 + Exp(temp.lncjc(n, m, p))

mm = mm + 1

Loop

Text6.Text = mm - 1

Text8.Text = Format(((mm - 1) * edll), "0.##0")

Else

MsgBox ("龙头总数量不能超过32000个!")

End If

End Sub

这样,计算的龙头数量可以多达32000个龙头。对于较大的住宅小区,已经是足够用了。程序运行时的界面如下:

其窗体调用时的源程序如下:

Private Sub Form_Load()

Command3.Enabled = False

End Sub

对于建筑物性质,其参数控制的源程序如下:

Private Sub Option1_Click(Index As Integer)

Select Case Index

Case 0

yssjt.Text = 24: Text3.ToolTipText = "4~6": Text4.ToolTipText = "一般:3~5 发达地区:7~8"

Case 1

yssjt.Text = 10: Text3.ToolTipText = "2.5~4.0": Text4.ToolTipText = "2~3"

End Select

End Sub

在上述的程序中,在可选参数设置了提示(如上图),使用户界面更具人性化;类Function lncjc(n As Integer, r As Integer, p As Double) As Double中调用类Function lnjc(n As Integer) As Double,对计算程序进行了压缩;计算32000个龙头的过程在PII 466MHz的机器上约需运行一分钟,即可以得出计算结果。

下面,我们们验证一下计算结果:

上述计算结果如下表:

龙头数量
使用概率
使用数量
龙头数量
使用概率
使用数量
龙头数量
使用概率
使用数量
龙头数量
使用概率
使用数量
500
0.02
18
800
0.02
26
800
0.04
46
1000
0.04
55

上表中的计算结果与表3.1.9-3中的结果吻合得很好。

因此,应用计算机编程技术可以大大减少人工计算量并提高计算的准确性和计算速度,从而能为设计提供一个强有力的辅助工具。

引用资料:ISBN7-80177-168-0/TU.085《2003全国民用建筑工程设计技术措施给水排水》建设部工程质量安全监督与行业发展中国建筑标准设计研究所 中国计划出版社出版、发行 2003年2月第一版 第62、63页 作者:付文华

【声明】本网站刊载的资料由网友提供分享 资料内容纯属作者个人观点,不表示本网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系
·直饮水秒流量计算与VB编程· 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】    
    
  • 上一篇论文:
  •  
        
  • 下一篇论文:
  •  
    相关论文
    解决中西部地区农村饮水困难的思路与对策
    全国农村饮水及乡镇供水发展战略
    饮水水质科学研究的方向
    对自来水直饮的几点看法
    概率法计算直饮水管道设计秒流量探讨
    网友评论:
    (只显示最新10条。评论内容只代表网友观点!)
    早上8:30-下午5:30
    全国客服热线: 010-84639241
    客服QQ: 10015411 / 173799180
    客服Email: edufo@163.com
      QQ交流群: 5379191 / 5371551
    网站介绍 |  联系我们 | 加盟合作 | 友情链接 | 广告服务 | 诚聘英才 | 网站地图 | 免责声明
    不良信息
    举报中心
    在职教育交流中心 版权所有 TEL:010-84639241 京ICP备06028089
    Copyright © 1998 - 2007 EDUFO Inc. All Rights Reserved
    网络110
    报警服务