摘要:本文介绍了自动喷水灭火系统管网水力计算的几种方法,并提出了一种用简单的计算机程序实现精确计算的方法。 

  关键词:自动喷水灭火系统 水力计算 水头损失 程序 算法 二分法 
 
  自动喷水灭火系统能有效的扑灭绝大部分火灾, 由于其介质(水)取用方便, 价廉, 因而该系统被广泛的应用于各类建筑中. 而要合理, 经济地完成自动喷水灭火系统管网设计, 主要是进行水力计算, 以便能确定合适的管径, 准确的水头损失, 选择匹配的加压稳压系统.

  目前水力计算方法有二类:
  一.面积计算法: 首先确定最不利位置作用面积, 然后按各喷头出水量(按最不利点喷头出水量计)均相等计算作用面积内的喷水量, 作用面积后的管段流量不再增加, 仅计算管道的水头损失.
 
  二.特性系数法: 作用面积内每个喷头喷水量按喷头处的水压计算确定. 具体计算步骤参见有关技术书籍, 本文不作详细讨论.
 
  当采用特性系数法, 不同方向计算至同一点出现不同压力时, 低压力方向管段的流量应根据该点的高压值进行修正.
 
  实际工程中, 面积计算法适用于初步设计或一些不需要精确数据的场合; 而特性系数法适用于绝大多数场合, 且能得到较为精确的数据. 从现有的资料看, 特性系数法的误差主要来自于其修正过程. 手册中提供的修正式是:
 
      H1/H2=Q12/Q22         Q2=Q1√(H2/H1)                        (1)
 
  式中  Q2 ----  所求低压方向管段的修正后的流量(l/s).
 
        H1 ----  低压方向管段计算至此点的压力(mH2O).
 
        Q1 ----  低压方向管段计算至此点的流量(l/s).
 
        H2 ----  高压方向管段计算至此点的压力(mH2O).
 
  也有的把这种修正式变化为“管道特性系数法”(具体见有关参考书). 这种方法把流量的平方和压力看成是简单的线性关系, 显然有一定的误差. 倘若各管段采用了不同口径不同类型的喷头时, 误差更大.
 
  因此, 有人提出了另一种修正方法, 即“倒推法”:
 
      Q12=B1H1
 
      Q22=B2H2                                                
 
        .
 
        .
 
        .
 
      Qn2=BnHn                                                 (2)
 
  式中  Q ----  低压方向管段上某喷头流量(l/s)
 
        B ----  低压方向管段上某喷头特性系数
 
        H ----  低压方向管段上某喷头处压力(mH2O)
 
  设该修正点高压为Hm ,低压方向管段最后一段管长为ln ,管道比阻为An ,则可得
 
          Hm=Hn+AnlnQn2                                        (3)
 
      将(3)式, (2)式结合公式
 
          Hn=Hn-1+An-1ln-1Qn-12
 
  倒推至H1 ,即可得在修正点高压为Hm时, 低压方向管段最不利点的确切水压H1 .最终可得到修正后的精确流量. 该方法用手工计算极为繁琐, 一般通过计算机编程, 选用有效的算法加以解决.
 
  针对倒推法的复杂, 笔者认为: 若手算, 要得到精确的结果, 采用手册提供的特性系数修正式(1)便可满足要求; 若是计算机编程实现精确计算, 不妨采用以下思路:
 
  1.    确定精度;
 
  2.    将修正点的高压值与低压值比较;
 
  3.    若比较后达到精度要求, 则完成计算, 可得出精确的流量, 否则进行下一步;
 
  4.    在高压值与低压方向最不利点压力值之间取一个值赋予低压方向管段的最不利点;
 
  5.    循环至 2.
 
  源程序段(C++)如下:
 
  while(fabs(hh[i][nsj[i]]+hhf[i][nsj[i]]-h[i])>0.01)  /*精度为0.01*/
 
  {
 
  if(hh[i][nsj[i]]+hhf[i][nsj[i]]-h[i]>0)
 
   {
 
   if(temp2>temp1)
 
    {
 
    temp2=hh[i][1];
 
    hh[i][1]=(temp1+temp2)/2;}
 
   else
 
    {
 
    temp1=hh[i][1];
 
    hh[i][1]=(temp1+temp2)/2;}
 
   }
 
  else
 
   {
 
   if(temp2>temp1)
 
    {
 
    temp1=hh[i][1];
 
    hh[i][1]=(temp1+temp2)/2;}
 
   else
 
    {
 
    temp2=hh[i][1];
 
    hh[i][1]=(temp1+temp2)/2;}
 
   }
 
  zg_js();
 
  }
 
  其中  hh[i][j]       ----  支管某喷头出水压(mH2O)
 
        hhf[i][j]      ----  支管某段沿程水头损失(mH2O)
 
        hh[i][1]      ----  支管最不利点压力(mH2O)
 
        h[i]         ----  修正点高压(mH2O)
 
        nsj[i]        ----  表示支管喷头位置的一个参数
 
        temp1,temp2  ----  最不利点压力取值范围(mH2O)
 
        zg_js()       ----  支管水力计算函数
 
  俗话说:“最有效的往往是最简单的.”该段程序中没有很复杂的算法, 而采用了二分法缩小误差, 有兴趣的朋友可试用黄金分割法或其他更快捷的算法.
 
  参考文献
  1.    刘文镔 主编. 给水排水工程快速设计手册. 中国建筑工业出版社, 1997
 
  2.    牛允鹏 主编. C程序设计.电子工业出版社, 1996
 
  3.    TSID工作室 著;王晟 改编. Turbo C++ 最佳专辑. 人民邮电出版社, 1994