1  绪论
1.1  自动喷水灭火系统简介
1.1.1 自动喷水灭火系统的组成
自动喷水灭火系统是指由洒水喷头、报警阀组、水流报警装置(水流指示器及压力开关)等组件,以及管道、供水设施组成,并能在发生火灾时喷水的自动灭火系统。
自动喷水灭火系统是人们同火灾斗争中出现和发展起来的一种固定式自动灭火系统,是当今世界上公认的最为有效的自救灭火措施,是应用最为广泛、用量最大的自动灭火系统。它具有自动灭火和自动报警的功能。它用水作灭火剂,平时处于准工作状态,一旦保护区域内发生火灾,火灾发生区域的自动喷水灭火系统会发生动作,喷洒水雾或水滴,起到延缓火势和扑灭火灾的作用。
自动喷水系统的类型较多,从1806年约翰*凯利发明了利用可燃绳控制阀门启动钻孔管道喷水灭火开始发展到现在,它的基本类型包括:湿式、干式、干湿式、雨淋及预作用、喷雾和水幕系统。
1.1.2 自动喷水灭火系统的发展和应用
在自动喷水一百多年的发展应用史中,一些发达国从研究到应用,从局部到推广,积累了许多成功的经验和失败的教训,从中制定了本国的自动喷水灭火系统设计安装规范或标准。现在,自动喷水灭火系统不仅仅应用在高层建筑、公共建筑、工业厂房和仓库,而且已经推广到住宅建筑。在建筑行业中推广自动喷水灭火系统的设计和安装,取得了巨大的成就,在美国1925-1964年间在安装了喷淋灭火系统的建筑物中共发生火灾75290次,灭控火成功率高达96.2%,其中工业厂房和仓库占有比例达87.46%。
推广应用自动喷水灭火系统,不仅可从减少火灾损失中受益,而且可减少消防总开支。例如,在美国加利福尼亚州的费雷诺斯城,在市区制定的建筑条例中,要求在非居住区安装自动喷水灭火系统,结果使这个城市的1955年到1975年的20年间,非居住区火灾损失从占该城市火灾总损失的61.6%降低到43.5%。
20世纪30年代我国开始应用自动喷水灭火系统,至今已有70年的历史。取得了辉煌的成果。50年代,苏联援建的一些厂房装设了自动喷水灭火系统,1956年,我国可自行设计安装自动喷水灭火系统。1958年建的厦门纺织厂,至80年代曾四次成功扑灭火灾,时至今日,该系统以成为国际上公认的最为有效的自动扑救室内火灾的消防设施,在我国的应用范围和使用量也在不断扩展与增长。
1.1.3  自动喷水灭火系统管网计算现状
自动喷水灭火系统管网水力计算是在流体力学和给排水工程基础上发展起来的,经过不断改进,现在已具备一套完整的计算方法,主要包括:沿程法和面积法。已经能够准确计算出管网内各管段的流量、水头损失等,为最终消防给水设施的选择提供科学的依据。但是计算方法中存在计算过程复杂、繁琐和计算费力、耗时、易错等不足。
随着近年来计算机技术突飞猛进的发展,国内也有几家单位开始对此方面进行研究,试图用计算机替代人手工计算,来解决手工计算中的不足以便将设计人员从繁琐的工作中解放出来。但编制的软件存在着许多不足,在一定程度上影响在工程中的使用。
结合上述现状,迫切需要一种适用面广、操作简单、符合工程实际的管网水力计算软件,去减轻工程计算负担和规范自动喷水灭火系统的设计计算。
2  闭式自动喷水灭火系统管网水力设计计算过程及原理
2.1  设置原则
闭式自动喷水灭火系统用于性质重要且火灾危险性大的场所。
⒈ 高层民用建筑
⑴ 建筑高度不超过100m的一类高层民用建筑及其裙房的下列部位(除普通住宅和高层建筑中不宜用水扑救的部位外)
① 舞台、观众厅、展览厅、多功能厅、门厅等公共活动用房;
② 走道、办公室和旅馆的客房;
③ 可燃物品库房;
④ 高级住宅的居住用房;
⑤ 自动扶梯底部和垃圾道顶部。
⑵ 二类高层民用建筑中的商业营业厅、展览厅等公共活动用房和建筑面积超过200m2的可燃品库房。
⑶ 高层民用建筑中经常有人停留或可燃物较多的地下室房间。
⑷ 建筑高度超过100m的高层民用建筑内。
⒉ 工业厂房与低层民用建筑
⑴ 等于或大于50000纱锭的棉纺厂的开包、清花车间;等于或大于5000锭的麻纱厂的分级、梳麻车间;服装、针织高层厂房;面积超过1500m2的木器厂房;火柴厂的烤梗、筛选部位;泡沫塑料厂的预发、成型、切片、压花部位。
⑵ 每座占地面积超过1000m2的棉、毛、丝、麻等及其制品库房;每座面积超过600m2的香烟、火柴库房;建筑面积超过500m2可燃品地下库房;可燃、难燃物品高架库房和高层库房(冷库、高层卷烟成品库房除外);省级以上或藏书量超过100万册的图书馆书库。
⑶ 超过1500个座位的剧院观众厅、舞台上部(屋顶为金属结构时);超过2000个座位的会堂或礼堂的观众厅;超过3000个座位的体育馆的观众厅吊顶上部、贵宾室、器材间、运动员休息室。
⑷ 省级邮政楼的邮袋库。
⑸ 每层面积超过3000m2或建筑面积超过9000m2的百货商场、展览大厅。
⑹ 设有空气调节系统的旅馆、综合办公楼内的走道、办公室、餐厅、商店、库房和无楼层服务台的客房。
⑺ 飞机发动机实验台的准备部位。
⑻ 国家级文物保护单位的重点砖木或木结构建筑。
⒊ 汽车停车库
地下停车库、多层停车库和低层停车库应设自动喷水灭火系统。
⒋ 人防工程
⑴ 使用面积超过1000m2的商场、医院、旅馆等公共场所
⑵ 超过800个座位的电影院、礼堂的观众厅,且吊顶下表面至观众席地面高度不超过8m时;舞台面积超过200m2时。
2.2  确定建筑物的危险等级
根据建筑物、构筑物的火灾载荷(由可燃物的性质、数量和分布状况决定)、室内空间条件(面积、高度)、人员密集程度、采用自动喷水灭火系统扑救初期火灾的难易程度,以及疏散及外部增援条件等因素划分设置场所火灾危险等级。
建筑物内存在物品的性质、数量,以及其结构的疏密、包装和分布情况,将决定火灾载荷及发生火灾时的燃烧速度与放热量,是划分自动喷水灭火系统设置场所火灾危险等级的重要依据。
共计:轻危险级、中危险级(其中又分为Ⅰ级和Ⅱ级)、严重危险级(其中又分为Ⅰ级和Ⅱ级)、及仓库危险级(其中又分为Ⅰ级、Ⅱ级和Ⅲ级)。
⒈ 严重危险级: 火灾危险性大、可燃物多、发热量大、燃烧猛烈和蔓延迅速的建、构筑物;
⒉ 中危险等级: 火灾危险性较大、可燃物较多、发热量中等、火灾初期不会引起迅速蔓延的建、构筑物;
⒊ 轻危险等级:火灾危险性小、可燃物量少、发热量较小的建、构筑物;
在设计闭式自动喷水灭火系统时应本着遵循“实事求是”和“有的放矢”的原则,按各自的实际情况选择相应设计技术数据。
闭式自动喷水灭火系统管网中的管道种类如图2-1所示,每种管道在系统中的作用是不同的,在计算时,也应作不同处理。
2.2.1  设计作用面积的大小
设计作用面积是指一次火灾中按喷水强度保护的最大面积。
设计时作用面积的选取应按建筑物的火灾危险等级来选取,各危险等级的数据如表2.1所示:
表2.1
危险等级 轻危险级 中危险级 严重危险级
  Ⅰ级 Ⅱ级 Ⅰ级 Ⅱ级
作用面积 160 160 260
2.2.2  设计作用面积的形状
在火灾发生时,火势由火源点呈辐射状向四周蔓延,只有处于着火区域上方的喷头才能有效地阻止火势蔓延,扑灭火灾。因此在设计面积形状选择上,我们通常采用正方形布置、长方形以及菱形等几种情况。
⑴ 正方形布置:支管的间距和喷头的间距均相等。
L = 
      式中:L——正方形布置时设计作用面积的边长,m
A——设计作用面积,m2
图2-1 管道种类图
图中:
1— 供水管,连接供水水源和报警阀的管段;
2— 总闸阀;
3— 报警阀;
4— 配水立管,连接报警阀并向配水干管供水的管段;
5— 配水干管,报警阀后向配水管供水的管段;
6— 配水管,向配水支管供水的管段
7— 配水支管,直接或通过短立管向喷头供水的管段;
8— 喷头。
⑵ 长方形布置:支管的间距和喷头的间距不相等。
                 L = 1.2 
式中:L——正方形布置时设计作用面积的边长,m
A——设计作用面积,m2
2.2.3  设计作用面积在管网中的位置
由于水力管网末端最不利点处的喷水强度、作用压力较其他点差,因此在管网计算中,通常由管网系统的最不利点处喷头开始选取设计作用面积。
2.3  设计作用面积大小的确定
2.3.1  每个喷头的喷水量计算
q = k  
式中:q——每个喷头的喷水量 ,L/min
      P¬¬——喷头处的工作压力 ,MPa
      K¬——流量特性系数(见表2.2)
表2.2 流量特性系数
喷头公称直径(mm) K
10 57
15 80
20 115
2.3.2  每个喷头的保护面积的计算
A1=4q0/4qu
式中:A1——每个喷头的保护面积,m2
      q0——最不利点喷头喷水量,L/min
      qu——设计喷水强度,L/(min m2)
2.3.3  根据喷头布置方式确定喷头布置间距
⒈ 正方形布置:
S=
式中:S——喷头呈正方形布置时的边长,m
⒉ 长方形布置:
                S≤1.2
式中:S——喷头呈长方形布置时长边的边长,m
根据以上数据可得出
表2.3
同一根配水支管上喷头的间距及相邻配水支管的间距:
喷水强度
(L/min m2)
正方形布置的边长(m) 矩形或平行四边形布置的边长(m) 一只喷头的最大保护面积(m2) 喷头与端墙的最大距离(m)
4 4.4 4.5 20.0 2.1
6 3.6 4.0 12.5 1.8
8 3.4 3.6 11.5 1.7
12-20 3.0 3.6 9.0 1.5
注:1 仅在走道设置单排喷头的闭式系统,其喷头间距应按走道地面不留空白点确定;
    2 货架内喷头的间距不应小于2.0m,并不应大于3.0m。
2.4  管段水力计算
2.4.1管径的估算
由于工程实际中所采用的管材质量以及施工单位存在差异,在工程设计中通常要求管道内的水流速度不超过5m/s、配水管的入口压力不应大于0.40MPa。根据这个标准再结合工程实践,通常在设计中为简化计算,在对系统进行计算前,根据经验按照不同管径配水管上最多允许安装的喷头数(见表2.4),以及不同危险等级对喷头数量的要求,对管径进行估算:
表2.4 轻危险级、中危险级场所中配水支管、配水管控制的标准喷头数:
公称直径(mm) 控制的喷头数(只)
 轻危险级 中危险级
25 1 1
32 3 3
40 5 4
50 10 8
65 18 12
80 48 32
100 - 64
2.4.2 对管道水流速度的校核
             Vp=Kp Q(n-1)~n
式中:  Vp——管道流速,m/s
       Q(n-1)~n——管段流量,L/s
         Kp——流速系数
注:管道内的水流速度,必要时可超过5m/s,但不应大于10m/s。
表2.5 流速系数表
管材 管径(mm)
 25 32 40 50 70 80 100 150 200
 流速系数
钢管 1.883 1.05 0.8 0.47 0.283 0.204 0.115 0.053 
铸铁管       0.1273 0.0566 0.0318
2.4.3 管道水头损失计算
管道的水头损失主要包括三个部分:沿程水头损失、局部水头损失和报警阀水头损失。
⒈ 沿程水头损失
             i=0.0000107 V2/(dj)1.3
        式中: i——每米管道的水头损失,MPa/m
            V——管道内水的平均流速,m/s
            dj——管道的计算内径(m),取值应按管道的内径减1mm确定。
⒉ 局部水头损失
             hj=A Ld Q2(n-1)~n
式中:hj——局部水头损失,Pa
            A——管道比阻值(见表2.7)
            Ld——管件阀门当量长度(见表2.6),m
            Q(n-1)~n——管段流量,L/s
 管道的直径应经水力计算确定。轻危险级、中危险级场所中各配水管入口处的压力均不应大于0.40MPa。
2.4.4 系统入口处所需压力或水泵扬程
   H=∑h+P0+Z
式中:H——水泵扬程或系统入口处所需压力,MPa
       ∑h—管道沿程和局部的水头损失的累计值(MPa),湿式报警阀、水流指示器取值0.02MPa,雨淋阀取值0.07MPa;
       P0——最不利点处喷头的工作压力,MPa;
       Z——最不利点处喷头与消防水池的最低水位或系统入口管水平中线之间的高程差,当系统入口管或消防水池最低水位高于最不利点处喷头时,Z应取负值,MPa。
表2.6 当量长度表
管件名称 管件直径(mm)
 25 32 40 50 70 80 100 125 150
450弯头 0.3 0.3 0.6 0.6 0.9 0.9 1.2 1.5 2.1
900弯头 0.6 0.9 1.2 1.5 1.8 2.1 3.1 3.7 4.3
三通或四通 1.5 1.8 2.4 3.1 3.7 4.6 6.1 7.6 9.2
蝶阀    1.8 2.1 3.1 3.7 2.7 3.1
闸阀    0.3 0.3 0.3 0.6 0.6 0.9
止回阀 1.5 2.1 2.7 3.4  4.9 6.7 8.3 9.8
异径接头 32/
25 40/
32 50/
40 70/
50 80/
70 100/
80 125/
100 150/
125 500/
150
 0.2 0.3 0.3 0.5 0.6 0.8 1.1 1.3 1.6
注:1 过滤器的当量长度,由生产厂提供;
2 当异径接头的出口直径不变而入口直径提高一级时,其当量长度应增大0.5倍,提高2级或2级以上时,其当量长度应增1.0倍。
表2.7 管道比阻值:

钢管 铸铁管
管径(mm) A(Q以L/s计算) 管径(mm) A(Q以L/s计算)
25 4367.0 75 17.09
32 938.6 100 3.653
40 445.3 150 0.4185
50 110.8 200 0.09029
70 28.93 250 0.02752
80 11.68 300 0.01025
100 2.674  
125 0.8623  
150 0.3395  
2.5 闭式自动喷水灭火系统计算
在上面的内容中,基本上包括了系统设计计算各个方面的数据,在设计各种危险等级的建、构筑物的闭式自动喷水灭火系统时,其设计喷水强度,设计作用面积和喷头工作压力应符合表2.8所示:
表2.8 系统设计基本参数:
火灾危险等级 喷水强度
(L/min m2)
作用面积
(m2) 喷头工作压力
(MPa)
轻危险级 4 160 0.10
中危险级 Ⅰ级 6  
 Ⅱ级 8  
严重危险级 Ⅰ级 12 260 
 Ⅱ级 16  
注:系统最不利点处喷头的工作压力,不应低于0.05MPa。
2.5.1计算方法分类
    面积计算法、沿程计算法
2.5.2两种计算法的应用领域及特征简介
⒈ 面积计算法:
该计算方法计算较为简便,主要应用于中轻危险等级的自动喷水灭火系统的计算中,计算中只有在设计作用面积内的喷头,才计算喷水量,且假定每个动作的喷头的流量都相同。系统设计秒流量按下式计算:
 QS=(1.15~1.30)QJ
 QJ=qu A/60
式中: QS——系统设计秒流量,L/s
1.15~1.30——安全系数
QJ——系统计算秒流量,L/s
qu——设计喷水强度,L/min m2
A——设计作用面积,m2
由于面积计算法的计算虽然简单,但结果不太精确,只在设计作用面积内发生火灾时,系统能保证供给设计喷水强度的水量,扑灭火灾。因此,面积计算法已不再使用。
⒉ 沿程计算法
从系统设计最不利点处的喷头开始计算,到表2.8规定的设计作用面积所包括的最后一个喷头为止,采用特性系数法,依次沿途计算各喷头处的压力、流量和管段累计流量、沿程、局部水头损失值。设计计算时,假设每个支管最末端的喷头为系统的最不利点,再用修正系数进行修正。其系统设计秒流量按下式计算:
QS =
式中:QS——系统设计秒流量,L/s
      qi——最不利点处作用面积内各喷头节点的流量,L/s 应按喷头的实际工作压力计算
      n ——设计作用面积内所有动作喷头数
注: 系统设计流量的计算,应保证任意作用面积内的平均喷水强度不低于表2.8 的规定值。最不利点处作用面积内任意4只喷头围和范围内的平均喷水强度,轻危险等级、中危险等级不应低于表2.8 规定值的85%;严重危险等级和仓库危险等级不应低于表2.8 的规定值。
计算方法较为复杂,但计算结果精确,能为最终消防给水设施的选择提供科学的依据,因此,沿途计算法被广泛应用。特别是在计算严重危险等级或被保护对象较贵重时的自动喷水灭火系统时,只能采取沿程计算法。 另外,当原有系统延伸管道、扩展保护范围时,应对增设喷头后的系统重新进行水力计算。
2.6  计算原理介绍
⒈ 面积计算法:
 因面积计算法已不再使用,在此不再介绍。
⒉ 沿程计算法:
图2-1 计算原理图
⑴ 用喷头流量系数(K)法求支管上各喷头的流量,喷头的K值由表2.2确定后,便可由喷头处压力 确定其流量。现在以图2-1为例说明计算过程。
① 支管Ⅰ尽端的喷头1为整个系统的最不利点,在规定的最小工作压力
H1的作用下,喷头1的流量为:
   q1=K
② 喷头2的流量为:
q2=K [10 (H1+h1~2)]1/2=K 
③ 喷头3、4的流量,同理为:
   q3=K [10 (H2+h2~3)]1/2=K ;
q4=K [10 (H3+h3~4)]1/2=K
式中h1~2、h2~3、h3~4为各自管段的水头损失。
④ 节点5处的流量和水压为:
   q5=Q4~5=q4 + q3 + q2 + q1
   H5=H4+h4~5
式中h4-5为水流通过4-5管段的水头损失。
⑤ 同样,若以支管Ⅱ上的喷头a为系统最不利点,Ha为规定的喷头最小工作压力,可以对支管Ⅱ进行计算,得到假设值H6’和Q’D-6。
⑵ 用管系特性系数(Kg)法求各支管的流量,管系特性系数可根据总输出的节点流量和该节点的压力按下式计算:
  Kg=Q(n-1)~n/
  式中:Kg——管系流量系数,反应管系的输水性能;
       Q(n-1)~n——管系总输出节点处的流量,L/s
       Hn——管系总输出节点处的压力,MPa
仍以图2-1为例,说明管系特性系数法的应用。
① 支管Ⅰ的管系特性系数:
由图可只,节点5处的流量即为支管Ⅰ的管系流量Q4~5,则支管Ⅰ的管系特性系数为: www.3722.cn中国最大的管理资料库下载
KgⅠ=Q4~5/
② 支管Ⅱ的管系特性系数:
KgⅡ=Qd~6/
③ 计算节点6处的总输出流量:
由于节点6处接出支管Ⅱ,所以在水压H6的作用下,通过该节点的输出流量为:       
q6=Q5~6+Qd~6=Q5~6+ KgⅡ
当支管Ⅱ在另一压力H6’的作用下,支管Ⅱ的管系流量为QD-6’,应用管性系数法,在所有以知值的情况下,计算节点6处的总输出量得:
q6=Q5~6+ Q’D-6 
此式表明,通过节点6所供给的流量由两股组成,其中供给支管Ⅱ的实际压力是H6而不是H6’,所以支管Ⅱ的流量QD-6’必需进行修正,修正系数为
④ 在图2-1的例子中,由于支管Ⅰ、支管Ⅱ的水力情况完全相同(喷头构造、数量、管段长度、管径、标高等),因此其管系特性系数也相同,即KgⅠ= KgⅡ,此式也可改写成:
   Q4-5/ =Qd-6/
化简得:
   Qd-6=Q4-5
将此式代入计算节点6的流量公式,即得:
   q6=Q5-6+Q4-5 =Q5-6 [1+ ]
按照上式的基本类型,依次计算各管段(节点)的传输流量值,直到设计作用面积(表2.8所示)所包括的最后的一个喷头为止。
2.7  系统设计计算步骤
闭式自动喷水灭火系统的设计计算步骤大致如下:
㈠,确定所设计的建、构筑物的火灾危险等级;
㈡,确定设计所需的基本参数(见表2.8);
㈢,根据设计参数选择系统类型;
㈣,选择和布置喷头,进行管网布置并绘制管网平面图;
㈤,根据管网平面图进行管网水力计算,并核算管网设计参数;
㈥,根据计算结果绘制管网平面图和系统图;
㈦,根据计算结果选择消防器材,确定给水设施。
在设计闭式自动喷水灭火系统时,应本着遵循“实事求是”和“有的放矢”的原则,按各自的实际情况选择相应设计技术数据。只有这样,才能正确的计算出各个管段的压力、流量给消防给水设施的选择提供科学的依据。
3  系统的总体设计规划
3.1  系统的设计思路
本系统的设计是用计算机简化、代替人工计算的一次尝试,利用计算机速度快、精度高等优点去解决工程计算中存在的问题。由于工程计算中具有参数多、算法复杂、计算中事件变化分支较多等特点,本系统将从以下几点展开对自动喷水灭火系统管网水力计算的设计:
首先,根据工程计算的特点来进行设计。在使用沿程计算法时,通常先按建筑物的危险等级来进行设计作用面积的选取。因此,在设计上应反映出来。所以设计时,有对建筑物危险级的选择和确认。
其次,将管网水力计算程序化。管网系统的水力计算是一个用变量来求变量的不定性的过程,在设计中要仔细研究管网水力的计算原理,结合计算的特点设计结构化较强的程序,以符合不同工程实际情况的需要。计算时将配水支管、配水管和配水干管分开来进行。这样更容易进行管段计算方面的设计。
再次,建立美观简单的人机交互界面。自动喷水灭火系统管网计算所需输入的参数较多,如果没有良好的用户界面和人机交互性,会使用户感到困惑和厌烦,因此在设计中需建立简单、美观的人机交互界面。
此外,还要根据系统需要设计一些辅助功能,如数据的查看和计算结果浏览、帮助等方面的内容。这样才能实现系统的完整性和多功能性。
3.2  应用程序总体设计
通常一个软件系统由若干个子系统组成,每个子系统又可划分为若干程序模块。总体设计就是根据系统设计需求对整个系统进行功能分解,确定应用程序的系统总体结构。
闭式自动喷水灭火系统管网水力计算系统主要有管网水力计算、水力计算参数查询、设计计算结果的浏览以及系统辅助功能等功能,在这几大功能下又可分为若干个子功能模块。根据这些拆分的结果,就可以详细描述系统的结构组成,明确系统的设计任务和设计方向。
管网水力计算功能中主要包括:支管水力计算,配水管水力计算,配水干管水力计算等模块;水力计算参数查询模块有对表2.8 系统设计基本参数、表2.7 管道比阻值、表2.6 当量长度表、表2.5 流速系数表、表2.5 流速系数表、表2.4轻危险级、中危险级场所中配水支管、配水管控制的标准喷头数、表2.3 同一根配水支管上喷头的间距及相邻配水支管的间距、表2.2 流量特性系数等数据的查询;设计计算结果输出模块。
3.3  系统设计运行流程图(见下页)  
4 系统计算过程的程序化设计
程序化设计就是将对象进行分析,运用计算机语言对其进行描述,使计算机能够识别、处理该对象的过程。自动喷水灭火系统管网水力计算的程序化设计就是用计算机能够识别的语言使计算机完成管网计算数据的输入、数据判断、数据运算以及数据输出的整个过程。


 

管网水力计算主要分为数据采集、数据处理、数据输出三个过程。由于管网计算需依据工程实际设计进行的特点,因此在对上述三个过程的描述将是静态描述和动态描述相结合的过程,在本系统程序化设计中充分利用Visual Basic 6.0 面向对象编程语言的特点,实现对自动喷水灭火系统管网水力计算的程序化设计。
闭式自动喷水灭火系统管网水力计算的计算机语言描述过程主要有以下三个部分组成:
⒈ 根据面向对象编程设计的特点,设计良好的人机交互界面,指导、帮助用户实现管网设计数据的输入过程。
⒉ 结合结构化语言结构严谨的特色,对计算过程进行设计,使计算机能够根据程序实现管网水力计算的过程。
⒊ 对数据输出过程进行程序化设计。
由于篇幅有限,以下将重点介绍数据输入和数据运算过程的程序化设计过程。
  4.1计算用数据输入过程的程序设计
管网水力计算所需的数据通常数量大、内容多,而且数据类型也较为复杂。在这种情况下,良好的人机交互界面就显得相当重要,因此在这个过程的设计中,大量采用了可视化控件,利用Visual Basic 6.0 “所见即所得”的编程方式去建立一个良好的人机交互界面。以下为具体的实现过程
⒈ 输入方式的选择
在设计中根据数据的特点,采用文本框进行随机性较强的数据输入,利用组合框进行固定值数据输入。同时利用控件的不同属性可在对输入数据进行判断后,在给变量进行赋值或者发出警告。
⒉  输入过程实现
在自动喷水灭火管网水力计算中,数据的输入过程大约分为:危险级选择——危险级确认——….. 等过程。为了有效地衔接这些过程,有效指引用户一步步进行数据输入,在设计中使用面向对象语言,对各过程的控件分别进行控制,实现输入过程有序进行。
⒊  人机交互的实现
人机交互指人根据机器的提示进行操作,机器对人的操作进行判断,并做出相关反应的过程。在本系统设计中引入了人机交互,即在用户操作前有提示,用户可按照提示进行操作;机器在读取操作信息后,对操作信息进行判断,认为符合要求发出一个输入正确的信号,如不符合要求则给予警告,并指引用户重新操作。
正是由于合理有效地利用可视化控件和面向对象编程的诸多优点,有效的解决了人机交互输入的问题,为下面进行的数据处理做好了准备。
4.2  管网水力计算过程的结构化程序设计
在对数据进行有效地采集后,就可以依据现有公式、算法对数据进行运算处理,但为了保证程序具有结构完整、通用性强的要求,在这里需结合结构化语言,使用条件判断、循环、分支等语句实现管网水力计算的全过程。以下文字中将详细介绍结构化语言实现管网水力计算的过程。
⒈ 建立结构化程序运行框架
根据前面建立的模型,在计算过程的设计中应构建结构化的运行框架,实现对模型中每一点的计算和处理。在设计中,我们可利用双重循环语句完成对各点的选取;在实现对各点选取后,利用条件判断语句对各点进行分析,如果满足计算条件要求,将此点中的数据送入计算程序中进行计算,得到结果。反之,则要求用户重新输入。
⒉  建立独立的结构化计算程序
由于管网各点水力计算项目几乎相同,算法大多数相同,因此我们可以根据数学模型建立独立、通用的计算程序,在对每一点进行计算时,直接调用此通用计算程序实现对各点的计算。可分为,支管算法和配水管算法两种。由于,配水管和配水干管计算时,都用到管系特性系数法,需要进行压力修正。而支管则不用,在确定支管的实际流量时,可利用配水管上的数据进行,同理,确定配水管的实际流量时,也可利用干管数据。
5  系统的模块化设计
5.1  计算模块的设计
由于此模块已经在前面有了详细的介绍,在此就不再叙述。
5.2  查询、浏览模块的设计
在系统设计中,考虑到用户有对原始参数及有关设计规范数据查询的需求,在系统设计中加入了原始数据浏览、参数查询等模块,方便了用户的使用。
6 程序编码
6.1  概述
程序主要分为数据采集、数据处理、数据输出三个部分。
6.2  数据采集
⒈ 配水管个数输入
Private Sub Form Load ()
Dim d ,s   ‘定义变量
Rem  参数输入
s = InputBox("输入在设计作用面积内的配水管的数目:", "配水管的确定")
Rem  参数判断
If s = "" Or s <= 0 Then    ‘判断条件
d = MsgBox("没有输入数据,要重新输入吗?", vbYesNo + vbExclamation, "支管数的确定")
    If d = vbYes Then
    Unload Form1
    Form1.Show
    Else
    End
    End If
Else
Rem  装载按钮位置
For i = 1 To s
h = i Mod 2
Select Case h
Case 1
Rem 设置控件属性
Label1(0).Visible = False
Load Label1(i)
Label1(i).Top = Label1(i - 1).Top + Label1(0).Height + 180
Label1(i).Caption = "第 " & i & " 个配水管"
Label1 (i).Visible = True
Command2 (0).Visible = False
Load Command2 (i)
Command2(i).Top = Command2(i - 1).Top + Command2(0).Height + 180
Command2(i).Visible = True
Command2(i).Caption = "第 " & i & " 个配水管"
Case 0
Label1(0).Visible = False
Load Label1(i)
Label1(i).Top = Label1(i - 2).Top + Label1(0).Height + 180
Label1(i).Left = Label3.Left
Label1(i).Caption = "第 " & i & " 个配水管"
Label1(i).Visible = True
Command2(0).Visible = False
Load Command2(i)
Command2(i).Top = Command2(i - 2).Top + Command2(0).Height + 180
Command2(i).Left = Command3.Left
Command2(i).Visible = True
Command2(i).Caption = "第 " & i & " 个配水管"
End Select
Next i
End If
End Sub
⒉ 支管参数输入
Sub weizhi()
Dim d, z,s
Rem 支管数的输入
z = InputBox("输入该配水管上的支管个数", "支管数的确定")
Rem 对输入的数值进行判断
If z = "" Or z <= 1 Then
x = MsgBox("没有输入数据,要重新输入吗?", vbYesNo + vbExclamation, "支管数的确定")
    If d = vbYes Then
    Unload Form4
    Form4.Show
    Else
    Endwww.3722.cn中国最大的管理资料库下载
    End If
End If
Rem 支管上喷头的确定
s = InputBox("请输入支管 1 上的喷头数量", "喷头数量的确定")
If s <= 1 Or s > 8 Or s = "" Then
d = MsgBox("数据输入错误,要重新输入吗?", vbYesNo + vbExclamation, "喷头数量的确定")
   If d = vbYes Then
   Unload Form4
   Form4.Show
   Else
   End
   End If
 Else
Label1(0).Visible = False
Rem 装载参数输入的位置
For i = 1 To s - 1
Load Label1(i)
Label1(i).Top = Label1(i - 1).Top + Label1(0).Height + 180
Label1(i).Caption = "喷头 " & i & "—" & i + 1 & " 之间的管段直径"
Label1(i).Visible = True
Next i
Label2(0).Visible = False
For i = 1 To s - 1
Load Label2(i)
Label2(i).Top = Label2(i - 1).Top + Label2(0).Height + 180
Label2(i).Visible = True
Label2(i).Caption = "喷头 " & i & "—" & i + 1 & " 的距离"
Next i
Label4.Caption = "喷头 " & s & " 到配水管的距离"
Label4.Top = Label2(s - 1).Top + Label2(s - 1).Height + 180
Label5.Caption = "喷头 " & s & " 到配水管之间的管段直径"
Label5.Top = Label1(s - 1).Top + Label1(s - 1).Height + 180
Text1(0).Visible = False
For i = 1 To s
Load Text1(i)
Text1(i).Top = Text1(i - 1).Top + Text1(0).Height + 180
Text1(i).Visible = True
Text1(i).Text = "单位:mm"
Next i
Text2(0).Visible = False
For i = 1 To s
Load Text2(i)
Text2(i).Top = Text2(i - 1).Top + Text2(0).Height + 180
Text2(i).Visible = True
Text2(i).Text = "单位:m"
Next i
End If
End Sub
⒊ 参数的采集和确认
Rem 使用控件的change和click属性,将计算用参数赋予数组,并进行数据Rem 的筛选。
Rem 例子: 使用change属性

Private Sub Text1_Change(Index As Integer)
Dim a(10)
Select Case Text1(Index).Text
Case 25
a(Index) = 1.883
Case 32
a(Index) = 1.05
Case 40
a(Index) = 0.8
Case 50
a(Index) = 0.47
Case 70
a(Index) = 0.283
Case 80
a(Index) = 0.204
Case 100
a(Index) = 0.115
Case 150
a(Index) = 0.053
End Select
End Sub
Rem 例子: 使用click属性
Private Sub Combo1_Click()
Dim k
Select Case Combo1.ListIndex
Case 0
k = 57
Case 1
k = 80
Case 2
k = 115
End Select
End Sub
Rem 按键的限制,限制键盘输入来避免错误。
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Dim b
If KeyAscii > 57 Or KeyAscii < 46 And KeyAscii <> 8 Then
  b = MsgBox("输入了无效字符,请重新输入!", vbExclamation, "无效操作")
  KeyAscii = 0
  End If
End Sub
6.3 参数计算
⒈ 支管参数计算
Private Sub Command2_Click()
Dim b(10)
Dim c(10)
Dim f, q, V, w
q = k * Sqr(10 * Val(Text3.Text)) / 60
For i = 1 To s
Rem 给数组赋初值
b(0) = Val(Text3.Text)
c(0) = q
Rem 数据累加
c(i) = c(i - 1) + w
V = c(i) * a(i)
f = Val(Text2(i).Text) * (0.0000107) * (V ^ 2) / (((Val(Text1(i).Text) - 1) * 0.001) ^ 1.3)
b(i) = b(i - 1) + f
w = k * Sqr(10 * b(i)) / 60
Next I
Rem 数据输出
Form7.Text1.Text = c(s)
Form7.Text3.Text = V
Form7.Text2.Text = b(s)
Form7.Show
End Sub
⒉ 配水管、干管参数计算
以第一个配水管为例来说明
Private Sub Command2_Click()
Dim a(),b(),c(),d()
Dim s,I,v,f,w
Open App.Path + "\txt 1.txt" For Random As #1 Len = Len(shuzhi)
s = LOF(1) / Len(shuzhi)
for i=1 to s
get #1,i,shizhi
a(i-1) = shuzhi.liuliang
b(i-1) = shuzhi.yali
Next i
Rem 数据累加
d(0)=a(0)
c(0)=b(0)
For i=1 to s
d(i) = d(i-1) + w
Rem e(i)为管道的流量系数
V = d(i) * e(i)
f = Val(Text2(i).Text) * (0.0000107) * (V ^ 2) / (((Val(Text1(i).Text) - 1) * 0.001) ^ 1.3)
c(i) = c(i-1) + f
Rem 压力修正
 if i=s then
b(i)=1
End if
w = d(i)*(c(i)/b(i))^(0.5)
Next I
Redim preserve a(s), b(s), c(s), d(s)
Rem 数据输出
Form10.Text1.Text = c(s)
Form10.Text3.Text = V
Form10.Text2.Text = d(s)
Form10.Show
Close #1
End sub
6.4 参数的保存
Private Sub Command1_Click()
Dim shuzhi As asd
Dim l
l = Form1.Label3.Caption
Rem 打开或创建用于保存的文件
Open App.Path + "\txt " & l & ".txt" For Random As #Format(l) Len = Len(shuzhi)
n = LOF(Format(l)) / Len(shuzhi)
Rem 数据保存
shuzhi.haoma = Val(Text4.Text)
shuzhi.yali = Text2.Text
shuzhi.liuliang = Text1.Text
shuzhi.liusu = Text3.Text
Rem 写入数据
Put #Format(l), n + 1, shuzhi
n = n + 1
Rem 关闭文件
Close #Format(l)
Unload Me
End Sub

7  小结
本次设计的任务是闭式自动喷水灭火管网水力计算软件开发(vb)。
在进行设计的前期做了大量准备工作,特别是在消防公司实习一个月的经验,对消防工程设计计算的现状有更深的认识。通过参阅大量相关的文献资料,向老师求教,解决设计中遇到的问题,使我的专业知识面更广,理解得更深。
设计过程中,指导老师胡经纬老师和王志老师给予我很大的帮助和鼓励,不但解决我在设计中遇到的问题,还一直支持我继续作下去,同时通过与同学互相交流经验和体会,也解决了很多问题。在此,谨向帮助过我的老师和同学致以深深的感谢!

 

 


参 考 文 献
⒈ 景  绒 著  《建筑消防给水工程》 
中国人民公安大学出版社      1996
⒉ 《自动喷水灭火系统设计规范》(GB 50084-2001)
      国家质量监督局 中华人民共和国建设部联合发布   2001
⒊ 李光明 主编  《Visual Basic 6.0 程序设计教程》
冶金工业出版社,2002
⒋ 张树兵 等编  《Visual Basic 6.0 入门与提高》  
清华大学出版社              
⒌ 周民光 等编  《Visual Basic for Windows 语言参考详解》
            北京航空航天大学出版社       1995