面向对象法燃气管网水力计算

2020-12-29 04:06赵丹铭周伟国
煤气与热力 2020年12期
关键词:管段面向对象管网

赵丹铭, 周伟国, 黄 薇

(同济大学机械与能源工程学院,上海201804)

1 概述

天然气及其输配系统已经广泛应用到了城市的各个角落,其设计与运行管理离不开水力计算。传统算法基于基尔霍夫第一、二定律,先把管网结构转化为系数矩阵,再求解矩阵方程[1-2]。但随着燃气管网的改扩建以及“枝改环”的不断推进,管网结构经常变化。同时,用户的负荷变化规律也难以捉摸,还随时可能发生事故,多源、多环、多级和多变成为燃气管网新特点[3]。对于传统算法[3-4],每次管网结构或工况改变都需要重新分析结构和编号,生成新的矩阵方程并求解,重复的工作量和计算量大,且随着管网的扩大,矩阵方程愈发复杂难解,分析和计算更加困难。

近年来,周伟国等人[5]和王海等人[6-7]提出了“面向对象”的方法,把管网拆解成对象,再按顺序遍历管网,以对象为单位求解。当管网结构变化时,无需重新编号和求解矩阵方程,工作量大大减少。将各元件的属性封装于数据库中,也更能满足国家对管网系统信息化科学管理的要求[8]。本文在此基础上,用Visual Basic编制了可以实现水力计算各类功能的程序,以便更好地适应燃气管网的新特点和未来发展的要求。

2 面向对象法的算法编制和程序设计

2.1 元件对象化

将组成管网的元件,如管段、三通等定义为具备各自属性和方法的“对象”,分属不同的类,随管网用到的元件和结构的变化灵活增减,属性随时调整,其方法按不同的迭代方式与计算公式选取,见表1。建立管网数据库,数据库使用Access2010,每类建一个表,如管段表示例见表2,将各元件赋予唯一编号并录入,但与传统算法不同,无需设置基准点,也无需将定压点集中于最后编号。

2.2 管网初始化

程序的算法是基于“面向对象”的思想用VB编写。计算前,首先在程序中打开数据库文件。然后,

表1 对象化数学模型示例

表2 管段表示例

在主窗口设置初始参数:气体的密度、运动黏度与温度、大气压力与初始压力、精度、收敛系数等,主窗体界面截图见图1。

2.3 遍历计算

① 计算公式

水力计算公式见式(1),摩擦阻力系数计算公式见式(2)。

(1)

式中p1——管段进口节点的绝对压力,kPa

p2——管段出口节点的绝对压力,kPa

L——管段的管长,km

λ——管段的摩擦阻力系数

qV——标准状态下的燃气流量,m3/h

d——管段内直径,mm

ρ——燃气的密度,kg/m3

T——燃气的温度,K

Z——燃气压缩因子,当燃气压力小于1.2 MPa时,Z取1

T0——标准状态下的燃气温度,K

(2)

式中K——管段的绝对粗糙度,mm

Re——管内流动燃气的雷诺数

根据基尔霍夫第一定律,在每个节点处有公式(3):

(3)

式中f(p)——节点压力p下算出的节点处进出节点的流量之和,m3/h

n——与该节点相连的管段数量

qV,i——节点处第i条与该节点相连管段的流量,m3/h,进入节点的流量取正,离开取负

qV1——节点处的流量负荷,该管网数据库中节点表中对应节点编号的“负荷”字段下的值,m3/h

根据牛顿迭代法,存在公式(4):

(4)

式中p′——节点压力p的修正值,Pa

p——节点压力,Pa

γ——收敛因子,初始取1

f′(p)——f(p)的导数

收敛因子的迭代式为:

γ=γδ

(5)

式中δ——收敛系数,取0~1范围的值

公式(5)使用情况见下文“② 算法设计”中的第5步。

② 算法设计

算法设计阐述中,p0为设置的初始压力,p为待求的节点压力,qV0为待求的管段流量,p′为压力p的修正值,f(p)为压力p下算出的进出节点的流量之和,f(p′)为节点压力p′下算出的进出节点的流量之和,ε为2.2节中设置的精度。

“面向对象”的算法流程具体如下。

第1步,按管段编号顺序,根据2.1节元件对象化步骤中输入的元件属性和2.2节管网初始化步骤中设置的压力初值p0,按公式 (1) 依次算出管段流量qV,i。

第2步,按节点编号顺序,根据公式(3),计算得到f(p),再依据公式(4)算出新的节点压力p′。

第3步,判断是否符合收敛条件f(p)<ε,若是,结束计算并显示结果。若否,进行第4步。

第4步,采用p′利用公式(1)~(3)计算出f(p′),并判断是否符合收敛条件。若符合收敛条件,结束计算并显示结果。若不符合收敛条件,继续判断:若f(p′)≤f(p),p′代替p回到第1步开始新的迭代,γ取1;否则,进入第5步并循环直到f(p′)≤f(p)。

第5步,根据公式(5)和2.2节管网初始化步骤中设置的δ值计算γ,再把算得的新γ代回公式(4)和公式(3)重新计算p′和f(p′),如此不断缩小γ值更新p′,直到满足f(p′)≤f(p)。

本步是为了防止发散并更快收敛。根据基尔霍夫第一定律,p为真值时,求得的f(p)为0。

若公式(4)中的γ为0时,p′=p;公式(4)中的γ越接近1,得到的p′离原值p越远。

若f(p′)≤f(p),说明迭代得到的p′比原值p更接近真值;若f(p′)>f(p),说明迭代得到的p′远离真值,发散,故δ取0~1范围的值更新γ重新计算p′,直到找到比原值p更接近真值的p′,作为新的一轮迭代的初值p。

2.4 水力计算程序窗体设计

程序主窗体界面见图1,分为5个区域,顶部第1区域是工具栏,实现打开和保存文件,开始、暂停计算,查看修改数据库和附属功能。左侧第2区域是初始参数设置区,进行计算前的参数设置。中间下半部分第3区域是管网信息区,显示元件属性表。右侧第4区域是实时数据区,显示实时计算时的残差和迭代次数。中间上半部分第5区域是结果区,显示的结果包括各管段流量和压力降、各节点压力和进出口流量和、各环的压力降和、迭代次数、计算时间和使用的单位。

可以实现的附属功能有:可以导入已有管网数据库数据,也可以在程序中新建数据库文件;可以进行管网信息的查看与编辑,增加删除数据库中的元件或修改其属性;可以用不同方法进行管网计算,程序除了面向对象法,也可用传统节点法、环差法计算;进行结果的处理与保存,可将计算结果保存为word 或excel文件,也可用曲线表示,也可在工具栏“查看”选项下选择性查看某个量或改变表示单位;图片展示,如有管网结构图,可直接在图上编号,计算完成后可在编号位置显示结果。

3 面向对象法算例

3.1 原始工况

原始工况管网结构见图2,1~16表示管段编号,(1)~(13)表示节点编号,“源”是该系统的供气源点,“汇”则为用户用气点,实线箭头为初设流向,顺流向编号。工质为天然气,27 ℃等温稳态流动。管段1、6、13和16长3 400 m,其余管段长1 700 m,内直径均为1 000 mm,管材为普通钢管(绝对粗糙度取0.05 mm),源汇参数见表3。计算步骤见图3,计算结果见图4~5,管段7、9实际流向与初设相反,在图3中以虚线箭头表示实际流向。

图2 原始工况管网结构

表3 源汇参数

“面向对象”法计算步骤:

① 元件对象化:数据库中存入信息,根据本例的元件类型创建管段、节点表并录入对应元件属性。

② 管网初始化:程序中设置气体的密度与运动黏度、燃气温度与大气压力、计算初值与精度,见图1。

图3 计算步骤

图4~5为本算例利用节点法、环差法、面向对象法的计算结果对比图。对于图5的节点压力,面向对象法与节点法偏差更小。对于图6的管段流量,面向对象法与环差法偏差更小。根据计算原理,在迭代过程中,节点法迭代更新的是节点压力,故得到的压力较精确;环差法则是计算校正流量迭代更新流量,其流量较精确,所以结果方面,面向对象法得到的压力、流量都更贴近较精确的值。

计算过程方面,节点法和环差法都需要先生成整体管网矩阵,再求解方程组,当管网某元件发生改变时,矩阵方程需要全部重新生成,重复工作费时费力,且管网越复杂,矩阵越大,解法越难,且目前燃气管网不断扩建改建,旧方法适应性差。面向对象法将管网拆分成元件,不仅避免求解方程组,而且在元件改变时只要修改个别属性,灵活性和效率更高,更适用于目前燃气管网的特点。

图4 算例节点压力计算结果

图5 算例管段质量流量计算结果

3.2 添加元件工况

添加17~22管段见图6,具体增加与修改元件情况分别见表4、5。在管网结构改变后,节点法和环差法都要重新编号,重录元件属性,环差法还需重新按连续性方程分配所有管段初始流量。面向对象法则直接添加管段17~22和节点(14)~(17),并将管段4、8、10、14管长修改为850 m,出口分别改成节点(14)、(15)、(16)、(17),见表4。计算结果见图7、8。图6中实线为设计流向,虚线为实际流向。

图6 添加元件工况下管网结构

表4 增加元件后导致的修改元件情况

表5 增加元件情况

图7 添加元件工况下的节点压力

图8 添加元件工况下的管段质量流量

3.3 删除元件工况

实际管网还可能改建或发生故障,以气源2发生故障且管段9、13、14断开为例(见图9),节点法和环差法仍要全部重新生成矩阵,面向对象法直接删除管段9、13、14和节点(2)、(10),删除元件工况下的节点压力和管段质量流量分别见图10、11。

图9 删除元件工况下管网结构

图10 删除元件工况下的节点压力

图11 删除元件工况下的管段质量流量

3.4 环闭合差

上述各工况中的环见图12,环的各节点见表6。

图12 各工况中的环

表6 环的各节点构成

环闭合差即封闭环状管网压力降的代数和,根据基尔霍夫第二定律,各环路环闭合差应为0。在管网水力计算中,常用公式(6)验证环闭合差是否满足要求,小于10%即可。3种工况(原始工况、添加元件工况、删除元件工况)的环闭合差计算结果见表7。对比可知,面向对象法计算结果最小,比传统算法(节点法、环差法)更准确。

(6)

式中H——环闭合差

m——环包含的管段数

Δpi——管段i进出口节点压力平方差

表7 3种工况(原始工况、添加元件工况、删除元件工况)的环闭合差

4 结论

本文针对目前燃气管网多源、多环、多级和多变的新特点,基于“面向对象”的思想,使用Visual Basic软件编制了燃气管网水力计算程序,并结合算例在软件操作和数据结果方面与传统算法(节点法、环差法)进行了对比。

软件操作方面,管网结构改变时,面向对象法直接增删相应元件或修改个别元件属性即可直接计算。节点法和环差法则需要重新编号,并保证定压点集中在最后编号且基准点编号最大,还要重输元件属性,再生成新的系数矩阵后求解方程组。环差法还需按连续性方程重新分配流量初值,而且每次管网改变传统算法都要重复以上步骤,故面向对象法操作更加简便快速。

数据结果方面,首先,3种算法在3种工况(原始工况、添加元件工况、删除元件工况)下的环闭合差都满足要求,且面向对象法最小,更准确。其次,在节点压力的计算结果上,面向对象法与节点法偏差更小,而管段流量结果面向对象法与环差法偏差更小。根据计算原理,在迭代过程中,节点法更新的是节点压力,故得到的压力较精确,环差法则是计算校正流量更新流量,其流量较精确,所以面向对象法的节点压力、管段流量计算结果都更贴近较精确的值。

因此,本文设计的“面向对象”的管网水力计算算法和编制的程序比传统方法更精确,操作更方便,更能适应未来燃气管网的发展需求。

猜你喜欢
管段面向对象管网
高温气冷堆核电站蒸汽发生器可拆管段拆装系统研究
管段沿线流量简化前后水头和流行时间差异性分析
名称:铝塑袋装材料的分离系统及方法
管网独立是妥协还是改革
从管网独立看国企改革
管网改革虚实
织起一张共管网
电站配管设计中的旋转角度分析及计算
面向对象Web开发编程语言的的评估方法
峰丛洼地农作物面向对象信息提取规则集