APP下载

基于有向图-链表-继承类的流体网络数据结构

2022-10-13郭佳男

航空发动机 2022年4期
关键词:数据结构流体阀门

孙 科,郭佳男,刘 涛

(中国飞行试验研究院,西安 710089)

0 引言

流体网络是一种广泛应用的计算方法,其将系统简化由各元件相连组成的网络,其中元件的计算方法一般来源于理论推导或者数值模拟、大量试验数据。形成流体网络计算程序是对已有工作很好的总结,将其应用于工程设计,具有计算快速、结果准确等特点。

国内外学者应用流体网络法进行了广泛研究。RR公司采用流体网络法对斯贝MK202发动机空气系统进行了详细计算;刘松龄对发动机冷却空气系统的工程计算方法及流体网络的求解方法进行了详细描述,对流体网络系统中的元件及其进、出口进行编号;吴丁毅介绍了流体网络算法,同样对相应元件及进、出口进行编号;文献[4-6]将流体网络法应用于航空发动机空气系统中;胡肖肖等采用蒙特卡罗法求解发动机空气系统。孙科等采用流体网络法求解高压压气机级间封严结构的泄漏、风阻温升特性;Benra等应用流体网络法针对预旋空气系统进行了研究;吕亚国等设计了一种航空发动机空气系统通用分析软件,并对某航空发动机内流空气系统进行了计算分析,获得了空气压力和温度分布以及各支路的流量分配;潘耘峰将空气网络模型应用于燃气轮机透平冷却空气系统;陆霄露提出了内燃机1维流动计算方法;周克峰采用压力修正法求解了高温气冷堆模拟机的热工水力过程;梁璇玑等建立了成品油官网的流体网络模型;王思莹将流体网络法应用于供热系统水力计算中。

以上研究多集中于流体网络系统求解及元件计算方法,而对系统在计算机中的数据结构表达方式方面,文献[2-3]对流体网络中元件及进、出口编号进行了说明,且均采用数组存储编号,而这种数据结构在使用时使得输入繁杂,有必要对这种原理简单但工作量大的表达方法进行改进。

本文采用新型数据结构在计算机中表示流体网络系统,在计算人员输入参数、程序调试等方面都有较大改进提升。

1 流体网络数据结构

在传统流体网络模型的数据结构中,采用对元件进出口节点编号的形式构建整个网络。其中相邻的2个元件,上游元件的出口节点编号与下游元件的进口节点编号保持一致的方式,表达这2个元件的有向连接方式。对各元件也按照由小到大的顺序,依次编号。应用这种数据结构,对各个元件及其进出口节点编号是1项较繁重的工作,如果对网络进行调整,增加或减少元件时,需要对一些元件及节点的编号进行重新定义,工作同样较为繁重。因此设计了一种二元有向图-双向链表-继承类元素的数据结构。

1.1 顶层结构-二元有向图

将整个流体网络分解为各分支,在分支中流体从1个元件流出只能流入到另一个惟一元件,且通过各元件的流量相等。使用二元有向图表达网络的整体结构,将一个个分支有向连接起来。简单的流体网络如图1所示,其中分支与分支间有向连接。

图1 简易流体网络

图中所示的二元有向图可用2维整形数组表示(见表1),用数组元素[][]=1表达分支+1到分支+1间存在的有向连接关系,这个数组称为邻接矩阵,是网络最顶层的数据结构。在具体构建邻接矩阵时只需将少量的具有连接关系的元素值设置为1,其余大量的数组元素为0,简单快捷。

表1 网络邻接矩阵A[i][j]

1.2 中层结构-双向链表

分支由一个个独立的元件组成,其中元件与元件间存在线性连接关系,本文使用双向链表表达分支结构,1个简易的分支如图2所示。其中各元件有pnext和plast2个指针,pnext指向下游相邻元件,plast指向上游相邻元件。网络中有多少个元件,即分配相应的空间,有效节省计算机内存。程序中依次对相邻的元件进行计算,在程序调试的监视窗口中,指针指向上下游元件,则只需单击该指针即可方便显示上下游相邻元件,方便查看元件计算参数。

图2 分支数据结构

从图中可见指向上游相邻元件的指针plast及指向下游相邻元件的指针pnext,在监视窗口中点击pnext及plast即可查看相邻元件中的相关参数。在传统数据结构中,当程序调试需要查看元件参数时,则要在监视窗口中添加相应的参数。

1.3 底层结构-继承类元素

分支中存在不同类型的元素,而采用链表只能将数据类型一致的元件连接起来。对此采用一种升级的链表方式,应用面向对象编程,专门定义了标准类(Standard Class),各类元件模型由标准类继承得到(如图3所示),从标准类中继承出管元件类(Tube)及损失元件类(Partloss)等。标准类中定义了元件的计算函数(Cal_element)及各重要的参数:进口压力(Pin)、出口压力(P-out)、进口温度(T-in)、出口温度(T-out)等;管元件中增加定义了管长(Tube length)、管径(Diameter)等参数;损失元件类中增加定义了面积(Area)、损失系数(Loss Coefficient)等参数。

图3 标准类及继承类

在继承类即各元件类中具体实现各自计算函数,因不同元件类具有相同的成员函数名Cal_element(),因而在代码编写过程中可应用1条代码实现不同元素计算函数调用,而在原有数据结构下的程序中需要对每类元件定义相应的计算函数,如Cal_element_1()表示第1类元件的计算函数,Cal_element_2()表示第2类元件的计算函数。在新型数据结构下元件类型扩展时也无需增加代码。比如管元件的计算函数为微元长度的管元件进口与出口的总压差

式中:为气体总压;为气体总温;为绝热指数;为静压;为密度;为摩阻系数;为管截面积;为气体流量;为管微元长度;为水利直径。

计算函数中摩阻系数在不同流动状态和管壁粗糙度下有不同取值,通过典型流体力学实验得到。在雷诺数较低时,即流速较小、管径较小、黏度较大时常为层流状态。本文中摩阻系数为

式中:为气流速度;为流体的动力黏度。

阀门元件也有专门的计算函数,其中的流动存在阻塞流和非阻塞流2种状态,由阀门前后压差比决定,为阀门压降Δ与入口压力之比。当≥时,出现阻塞流;当<时,为非阻塞流。其中为临界压差比,对于特定的阀门,当产生阻塞流时,其压差比是固定常数,对本文所用的球阀取0.75;为比热比系数,对于空气=1,对非空气介质=/1.4。

对于阻塞流,进口总压为

式中:=/,为气体标准状态下的体积流量,为气体质量流量,为气体标准状态下的密度;为阀门的流量系数,定义是温度为5~40℃的水在10Pa压降下,1 h内流过阀的水量(m);为阀门入口的绝对温度;为气体的相对密度;为压缩系数;为绝热指数。

当出现阻塞流时,进口总压为

进行流体网络计算前,需对阀门特性-流量系数进行研究,对阀门前后气流压力、流量进行测量。在试验过程中阀门工作时阀前压力为297595.84 Pa,阀后压力为276277.06 Pa,流量为1.11 kg/s,气流温度为480.15 K。由式(4)计算得到阀门的流量系数为645.482,将其写入阀门计算函数中。

2 发动机起动机供气系统流体网络模型

2.1 新型数据结构的应用

某型发动机起动机为空气涡轮,试车台中使用气源车为其供应高压气体,针对该系统建立流体网络模型,如图4所示。该模型中共有1个进口,1个出口,共有13个元件,分别为~。因由高压气源车供气,压力相对稳定,可视为流体网络系统的入口,高压气通过与气源车相连的管路为起动机供应气体,因此在该系统的流体网络计算模型中,最关键元件为管元件。阀门(Value)作为调控流量的工具,也是非常重要的元件,其通过调节开度(Opening)控制系统。另外管路系统中还有拐弯(bend)、突缩(sudden contraction)、突扩(sudden expansion)等,因而还有损失元件。

图4 供气系统流体网络模型

以该流体网络为例,解释新型流体网络数据结构的优势。例如,因初次建模未考虑高压气源车气罐与阀门间的突缩损失,如需在此加入1个损失元件,只需将新加入元件参数在管元件参数前写入输入文件中。而原有数据结构因对每个元件及元件的进、出口进行了编号,定义其之间上下游顺序,在此加入新元件需要把下游元件(Number of element)及进、出口编号(Inlet node number/Outlet node number)进行更改。此例中除需要将损失元件自有参数输入外,还需对下游12个元件编号及这些元件的进、出口共12个节点的编号进行更改。在模型(图5)中,因采用新型数据结构,无需定义元件的进、出口节点编号使得计算机自动识别元件有向连接,而直接通过链表将元件连接,方便输入文件的编写。该模型较为简单,在一些复杂网络模型中,新型数据结构在网络输入文件方面将体现更大的优势。

2.2 供气系统计算及试验对比

该供气系统为空气起动机供应压缩气体,因而该系统出口压力、温度较为重要。在计算中出口压力取起动机所需压力值,通过流体网络计算得到该系统的流量,以及各元件进、出口(即各中间节点)的压力和温度值。从而判断流量是否满足起动机所需。该流体网络的沿程压力计算结果如图5所示,并见表2。图中展示了无量纲压力即沿程各点压力与入口压力的比值随气流流向下游时的变化。流量计算结果与试验结果的比值为1.02,即计算结果的偏差为2%,可满足工程计算精度需要。

图5 流体网络的沿程压力计算结果

表2 流体网络的沿程压力计算结果

3 总结

(1)将数据结构应用于某供气系统流体网络模型,初次建模有1个进口、1个出口、12个元件,修正模型时,需在进口与原1号元件之间增加1个元件,新型数据结构只需在原1号元件前输入损失系数、截面积等属性参数,而原有数据结构除需要将属性参数写入输入文本文件外,还需将原12个元件及12个元件的12个进口节点编号进行更改。对该流体网络进行计算,得到沿程各点的压力及系统流量,并与试验结果进行对比,偏差为2%。

(2)在新型数据结构中,各元件间通过指针将其连接,分支定义为1个双向链表,计算时依次对相邻元件进行计算,在调试的监控窗口里查看相关参数,计算完1个元件时,只需单击其指针元素就可以查看下一个元件的计算参数。

(3)各元件类由标准类继承而来,不同元件的计算函数名统一为标准类的函数成员,在程序代码的编写中,无需对元件进行区分,只需写1条代码可代表所有元件的计算函数,在对元件库进行扩充时,也无需对此进行修改。

猜你喜欢

数据结构流体阀门
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
山雨欲来风满楼之流体压强与流速
喻璇流体画
猿与咖啡
核电站阀门紧急采购系统的构建
核电站阀门紧急采购系统的构建
眼见未必是实
省力阀门瓶盖
数据结构与算法课程设计教学模式的探讨