解节点方程管网平差程序的开发与应用
07月 16th, 2008
文章摘要: 1 引言 给水管网力计算是以解管段方程、解环方程和解节点方程为基础,对连续性方程、能量方程和压降方程应用近似优化处理方法和数值计算方法进行计算,旨在求解管段流量或节点水压,为管网设计,改扩建及运行管理提供依据。 随着供水事业的发展,给水管网的规模不断增大,管段数和环数不断增多。众所周知,传统的解环方程法是在手算基础上发展而成的,计算前需要初分管段流量。对于大型复杂管网,初分流量相当繁……
1 引言
给水管网力计算是以解管段方程、解环方程和解节点方程为基础,对连续性方程、能量方程和压降方程应用近似优化处理方法和数值计算方法进行计算,旨在求解管段流量或节点水压,为管网设计,改扩建及运行管理提供依据。
随着供水事业的发展,给水管网的规模不断增大,管段数和环数不断增多。众所周知,传统的解环方程法是在手算基础上发展而成的,计算前需要初分管段流量。对于大型复杂管网,初分流量相当繁琐,人工工作量较大,且初分值不合理会导致迭代算法不收敛。
为此,本文基于解节点方程的算法原理及管网数据结构的特征,研究了正定稀疏矩隈的变带宽紧缩贮存技术,运用fortran语言编制了程序,并结合实例进行了应用和验算。
2 解节点方程的有理与方法
2.1节点方程
根据管段压降方程,hi-hj=sijq2ij,将管段流量用水压表示,
qij=sign(hi-hj)(│hi-hj│ sij)1/2,代入连续性方程,即得出节点方程,
q+Σsign(hi-hj)(│hi-hj│ sij)1/2=0
式中qi—i节点的耗水量或水源供水量(即节点流量);
hihj——i,j节点的水压;
sij——i,j管段的摩阻。
若管网节点数为m,则独立的节点方程数为m-1。
2.2节点方程的线性化
节点方程是以节点压力未知量的非线性方程组,令cij=1/(sij│qij│),qij的初值可用程序中所示的经验公式确定,则节点方程可化为,q+Σcij(hi-hj)=0,这是一个线性方程组,可用迭代法或牛顿法求解,程序中采用的迭代法。
2.3线性方程系数矩阵的存贮
根据管网图形拓扑结构可知,以上线性方程的系数矩阵为对称正定稀疏矩阵,矩阵元素中大部分为0,节点数越多,稀疏性越明显。对于m个节点的管网,矩阵元素共(m-1)2个,按一般矩阵存贮需要(m-1)2个存贮单元。对称矩阵只需要存贮一半元素(上三角或下三角矩阵)即可。对于稀疏矩阵,依照一定次序用一维数组紧缩存贮每行的第一个非零元素到对角线上的元素,再用指标数组存放各对角线元素在一维数组中的位置序号,这种变带宽紧缩方式可以进一步有效地节省存贮单元。
2.4节点方程的计算步骤
⑴读取数据,按照经验公式计算初分流量,初定管径,计算摩阻;⑵计算初始系数矩阵参数;⑶解线性方程组,求节点点压,利用压差计算管段流量,高速管径及摩阻返回;⑶重新生成系数矩阵;⑷迭代至前后两次管段流量之差在允许精度范围内;⑸进一步计算节点自由水压,管段流速,水头损失等;⑹输出计算结果。
3 解节点方程程序的应用
解节点方程的fortran源程序及说明从略。
应用程序前,需绘制计算简图,按要求将节点、管段编号,将基础数据输入文件input.dat中,结果文件output.dat中。节点编号原则:已知压力节点编号;未知坟力节点编号尽可能与相邻节点编号差值小,以利于紧缩存贮。
某城区给水管网最大用量822l/s,由两个泵站和水塔联合供水。城区地形平坦,地面标高均按0米计。节点要求的最小服务水头为24m。如图1。其它参数见文件input.dat。
输入文件input.dat的格式为:
15 21 3 0.01 24.00
36.20 0.00 36.80 0.00 82.50
0.00 36.40 0.00 48.70 0.00 81.50 0.00 198.70 0.00 66.10 0.00 50.60 0.00 43.20 0.00 105.80 0.00 35.50 0.00 34.65 0.00 30.36 0.00 27.40 0.00 1270.00 0.50 0.013 2 1 1350.00 0.30 0.013 3 2
650.00 0.50 0.013 4 3 620.00 0.60 0.013 5 1 1150.00 0.40 0.013 6 2 1390.00 0.40 0.013 7 3 1670.00 0.40 0.013 8 4 760.00 0.50 0.013 6 5 1130.00 0.30 0.013 7 6 1040.00 0.30 0.013 8 7 1730.00 0.40 0.013 9 55 480.00 0.30 0.013 10 6 1140.00 0.20 0.013 11 7 1510.00 0.20 0.013 12 8 1500.00 0.30 0.013 10 9 1020.00 0.30 0.013 11 10 760.00 0.20
0.013 12 11 150.00 0.40 0.013 15 12 225.00 0.50 0.013 13 1 225.00 0.50 0.013 13 1 240.00 0.50 0.013 14 4
结果文件output.dat的输出格式为:data of nodes f(1)= 33.726 z(1 )=33.726 f(2)= 31.772 z(2 )=31.772 f(3)= 28.276 z(3 )=28.276 f(4)= 29.162 z(4 )=29.162 f(5)= 32.246 z(5 )=32.246 f(6)= 30.749 z(6 )=30.749 f(7)= 24.658 z(7 )=24.658 f(8)= 25.976 z(8 )=25.976 f(9)= 29.455 z(9)=29.455 f(10)= 27.695 z(10)=27.695 f(11)= 22.779 z(11)=22.779 f(12)= 27.231 z(12)=27.231 f(13)= 34.651 z(13)=34.651 f(14)= 30.361 z(14)=30.361 f(15)= 27.400 z(15)=27.400
data of pipes q(1)=148.292 v(1)=.756 h(1)=1.955 i(1)=1.539 q(2)=49.308 v(2)=.698 h(2)=3.496 i(2)=2.590 q(3)=-139.608 v(3)=.712 h(3)=-.887 i(3)=1.364 q(4)=300.235 v(4)=1.062 h(4)=1.480 i(4)=2.387 q(5)=62.184 v(5)=.495 h(5)=1.023 i(5)=.889 q(6)=106.415 v(6)=.847 h(6)=3.618 i(6)=2.603 q(7)=91.113 v(7)=.726 h(7)=3.187 i(7)=1.909 q(8)=167.753 v(8)=.855 h(8)=1.497 i(8)=1.970 q(9)=71.145 v(9)=1.007 h(9)=6.092 i(9)=5.391 q(10)=-34.494 v(10)=.488 h(10)=-1.318 i(10)=1.268 q(11)=83.784 v(11)=.667 h(11)=2.792 i(11)=1.614 q(12)=77.292 v(12)1.094 h(12)=3.055 i(12)=6.363 q(13)=13.353 v(13)=.426 h(13)=1.880 i(13)=1.649
q(14)=-9.482 v(14)=.302 h(14)=-1.256 i(14)=.832 q(15)=33.184 v(15)=.470 h(15)=1.760 i(15)=1.173 q(16)=67.276 v(16)=.952 h(16)=4.917 i(16)=4.821 q(17)=-25.172 v(17)=.802 h(17)=-4.453 i(17)=5.859 q(18)=-70.153 v(18)=.559 h(18)=-.170 i(18)=1.132 q(19)=-242.364 v(19)=1.235 h(19)=-.925 i(19)=4.111 q(20)=-242.364 v(20)=1.235 h(20)=-.925 i(20)=4.111 q(21)=-267.119 v(21)=1.361 h(21)=-1.199 i(21)=4.993
4 结论
本文编制的管网平差程序,运行速度快,处理信息量大,不用人工初分流量,输入简单,容错性好,这些已经多个算例得以验证。但同时必须指出,该程序仍需要在大型复杂管网水力计算的应用中不断改进和提高。
参考文献
1 严煦世,范瑾初. 给水工程(第三版). 北京:中国建筑工业出版社,1995.
2 彭永臻,崔福义 . 给水排水工程计算机程序设计. 北京:中国建筑工业出版社,1994
3 谭浩强,田淑清 . fortran77结构化语言. 北京:清华大学出版社,1990
4 严煦世,赵洪宾. 给水管网理论和计算. 北京:中国建筑工业出版社,1986
5 吴学伟 给水管网水力计算程序的编制和应用.管道技术与设备,2000.4:31-34
本篇文章来源于 “863建筑工程资讯网”
标签:.net 框架程序设计, ajax程序设计, 二级c语言程序设计相关日志
This entry was posted on 星期三, 07月 16th, 2008 at 8:00 am and is filed under 程序设计. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.