掌桥专利:专业的专利平台
掌桥专利
首页

BWRS状态方程的掺氢天然气化学性质轻量化计算方法

文献发布时间:2024-04-18 19:58:30


BWRS状态方程的掺氢天然气化学性质轻量化计算方法

技术领域

本发明属于天然气管网数值模拟技术领域,特别涉及BWRS状态方程的掺氢天然气化学性质轻量化计算方法。

背景技术

对于能源的管理要求也越来越高,而氢能作为一种清洁能源,是重要发展对象。将氢气掺入现有的天然气管网中进行输送是目前最经济最实用的一种运输途径。同时,管网流动的数值仿真对建设与管理大型管网、优化运行、泄漏检测、组分追踪等多个方面起着越来越重要的作用。随着管网规模的增大,工程现场对仿真模拟的计算效率提出了更高的要求,如何提高管网流动仿真的计算效率成为亟待解决的一个重要问题。

管网数值模拟是管网流动管理与智能化的基础,其效率影响着在线仿真应用以及管网运行优化应用。目前针对管网数值模拟算法的优化主要集中在代数方程组的求解上,忽略了封闭关系与状态方程的优化。管网流动数学模型包括流动控制方程(连续方程、动量方程以及能量方程)、气体化学性质模型(例如本尼迪克特-韦布-鲁宾-斯塔林(Benedict-Webb-Rubin-Starling,BWRS)状态方程)、气体黏度模型以及管道与流体之间的摩阻系数模型。天然气物性通常通过气体状态方程来计算,在大型天然气管网中,BWRS状态方程因其适用范围广、精度高被广泛使用。式(1)为BWRS状态方程的基础形式,掺氢天然气化学性质通过状态方程计算,所有化学性质均可通过对其基本形式的求导或积分获得。

式中:p为压力,kPa;T为温度,K;ρ为密度,kmol/m

在现有技术方案中,并没有对状态方程的求解做相应的优化方案,仅采用最原始的编程技术,即采用基础的for循环以及调用编程语言自带的库函数来组织求解算法,如算法1所示,以求解压力为例,算法1给出了现有技术方案的流程。

BWRS状态方程式的计算存在幂运算x

另一方面,采用基于系统多线程模型的并行计算是提升计算效率的重要手段之一。现有相关技术存在如下缺陷:首先,基于系统多线程模型通过操作系统来协调计算资源,不能确保实际执行并行计算;其次,基于系统多线程模型需要通过共享数据进行同步,需要操作系统通过调用额外的资源进行协调,导致计算效率低下。因此,多线程模型的并行计算不能确保在任何场景下的优化效果都优于串行程序。相关技术中还存在一种基于消息传递(MPI)实现的并行模型,通过网络通信来实现数据共享与同步,其效率相较于系统多线程需要调用更多的硬件资源,其应用受到更多的限制。通过以上分析可知,采用基于系统并发模型的并行计算提升计算速度是有使用条件的,只有在计算时长远大于系统资源调用时,其加速效果才有体现。

因此亟需一种BWRS状态方程的掺氢天然气化学性质轻量化计算方法,能够有效提高管网数值模拟的效率,在保证计算精度的前提下,通过针对BWRS方程中的不同部分进行相应的优化,从而实现管网流动管理和管网运行优化。

发明内容

本发明的目的是提供BWRS状态方程的掺氢天然气化学性质轻量化计算方法,其特征在于,包括以下步骤:

步骤S1:对BWRS状态方程中指数部分进行预计算,根据预设置的数据维度len,将len个预计算结果缓存,所述指数部分为:-γρ

步骤S2:使用SIMD模型,对步骤S1中所述len个预计算结果进行指数运算,并将len个指数运算结果缓存;

步骤S3:根据预设置的数据维度len,使用直接法计算len个ρ

步骤S4:根据预设置的数据维度len,使用乘法代替除法计算len个T

步骤S5:基于步骤S1-S4的计算结果,完成BWRS状态方程中的掺氢天然气化学性质计算,得到len个天然气压力数值,实现掺氢天然气管网数值模拟。

使用预设置的天然气压力数组P

所述步骤S2中使用SIMD模型的具体步骤为:

步骤S21:使用SIMD_load指令,将指数部分数据加载到并行硬件中;

步骤S22:使用SIMD_exp指令,实现并行指数运算;

步骤S23:使用SIMD_store指令,将所述步骤S22中并行指数运算的结果存储至预设置的天然气压力数组P

所述步骤S3中使用直接法计算len个ρ

ρ

ρ

ρ

所述步骤S4中使用乘法代替除法计算len个T

iT=1/T;

T

T

T

其中,iT为T的倒数。

本发明的有益效果在于:

发明人通过对相关技术中主流的DIMENS算法进行分析,发现封闭关系与状态方程的求解成为制约数值模拟效率的主要因素;通过分析在大型天然气管网中常用的状态方程,发现BWRS状态方程因适用范围广、精度高被广泛使用。进一步分析BWRS状态方程求解效率不理想的原因是未实现高效、稳定的并行计算和状态方程中包含较多高级运算导致。所述高级运算包括:次幂运算、指数运算、对数运算以及除法运算等,计算机硬件本身不能直接实现上述高级运算,需要在软件层面通过四则运算进行模拟,导致计算效率不佳。

针对上述技术问题本发明公开一种BWRS状态方程的掺氢天然气化学性质轻量化计算方法,利用SIMD指令集直接在硬件层面实现并行计算,避免将BWRS状态方程中相关指数运算使用编程语言中的库函数实现,从而显著提升计算效率;采用直接法计算密度或温度次幂,将除法转换为乘法,使用计算机硬件能够直接实现的四则运算代替用软件算法模拟所述高级运算,有效提升高级运算的计算效率。通过仿真实验验证,本发明公开的BWRS状态方程的掺氢天然气化学性质轻量化计算方法,在保持原有仿真算法的精度的前提下,能够有效提高管网数值模拟的效率,实现管网流动管理和管网运行优化。

附图说明

图1为本发明提供的BWRS状态方程的掺氢天然气化学性质轻量化计算方法流程图;

图2为本发明中传统的标量运算与SIMD模型对比示意图,其中(a)为传统的标量运算原理示意图,(b)为SIMD模型运算原理示意图;

图3为管道1、10、20的本发明中BWRS状态方程的掺氢天然气化学性质轻量化计算方法与DIMENS算法压力对比图;

具体实施方式

本发明提供BWRS状态方程的掺氢天然气化学性质轻量化计算方法,以下结合附图对本发明作进一步的详细说明。

如图1所示的本发明实施例公开BWRS状态方程的掺氢天然气化学性质轻量化计算方法,包括以下步骤:

步骤S1:对BWRS状态方程中指数部分进行预计算,根据预设置的数据维度len,将len个预计算结果缓存,所述指数部分为:-γρ

步骤S2:使用SIMD模型,对步骤S1中所述len个预计算结果进行指数运算,并将len个指数运算结果缓存;

使用预设置的天然气压力数组P

另一方面,在本实施例中,提出以管道为单位,将所有化学性质存储在一个数组中,即每根管道的化学性质存储在对应的数组中,实现将基础数据在内存中连续存储,充分考虑到管网结构不固定的特点,权衡复杂性与计算性能,能够有效提高计算效率。

所述步骤S2中使用SIMD模型的具体步骤为:

步骤S21:使用SIMD_load指令,将指数部分数据加载到并行硬件中;

步骤S22:使用SIMD_exp指令,实现并行指数运算;

步骤S23:使用SIMD_store指令,将所述步骤S22中并行指数运算的结果存储至预设置的天然气压力数组P

在本实施例中,利用CPU指令中的SIMD模型,同时对多个数据进行运算,充分利用硬件设备实现并行计算。

步骤S3:根据预设置的数据维度len,使用直接法计算len个ρ

所述步骤S3中使用直接法计算len个ρ

ρ

ρ

ρ

在本实例中,考虑到次幂运算是一个非常耗时的运算,原因是次幂运算并不能直接计算得到,需要将其转换为指数与对数运算,分别计算后再组合,即x

步骤S4:根据预设置的数据维度len,使用乘法代替除法计算len个T

所述步骤S4中使用直接法计算len个T

iT=1/T;

T

T

T

其中,iT为T的倒数。

在本实施例中,通过先计算T的倒数,将除法运算转换为乘法运算,充分考虑到计算机硬件本身只能够计算加法运算的特点,结合内存分配等因素,避免除法运算与循环顺序对整体计算效率的影响。

步骤S5:基于步骤S1-S4的计算结果,完成BWRS状态方程中的掺氢天然气化学性质计算,得到len个天然气压力数值,实现掺氢天然气化学性质高效求解。

发明人指出掺氢天然气管网数值模拟的仿真软件是一个复杂的系统,不但需要求解控制方程,还需要求解封闭方程,尤其对于气体,还需要求解状态方程。各方程的求解效率对整体仿真效率的影响各不相同,求解器各模块的耗时占比如表1所示。

表1DIMENS求解器各模块耗时统计(ms)

由表1中数据可知,DIMENS求解器各模块快速算法的耗时统计中,计算耗时最长的是求解热力方程时所需的物性计算,其耗时占总耗时的45%;其次是求解水力方程时所需物性的计算,其耗时占总耗时的37%。此两个模块的状态方程的求解,总耗时达到了模拟程序整体耗时的82%。而对于离散方程的方程组求解,反而是计算时间最短的几个模块。因此发明人指出目前管网求解算法的性能瓶颈在封闭关系与状态方程的求解方面,而非控制方程以及其离散方程组的求解方面,即代数方程组求解不再是快速算法的瓶颈,封闭关系与状态方程的求解成为了制约数值模拟效率的主要因素。因此,在本发明的实施例中提出针对封闭关系与状态方程求解的轻量化算法。

发明人经过大量实验和研究工作后指出:现有BWRS状态方程求解效率不理想的原因是未实现高效、稳定的并行计算和状态方程中包含较多高级运算导致。所述高级运算包括:次幂运算、指数运算、对数运算以及除法运算等,计算机硬件本身不能直接实现上述高级运算,需要在软件层面通过四则运算进行模拟,导致计算效率不佳。

针对并行计算方面,现有技术中采用基于系统多线程模型的并行计算是提升计算效率的常规手段。所述基于系统多线程模型存在如下缺陷:首先,此模型通过操作系统来协调计算资源,因此其实际执行并不一定是并行计算;其次,此模型还需要通过共享数据来进行同步,而这些操作均需要操作系统通过调用额外的资源来协调,导致计算效率低下。因此,多线程模型的并行计算并不适用于任何场景,有时候甚至其效果比串行程序更差。另外一种并行模型是基于消息传递(MPI)实现的数据共享与同步,此模型通过网络通信来实现,其效率相较于系统多线程需要调用更多的硬件资源,其应用受到更多的限制。通过以上分析可知,采用基于系统并发模型的并行计算提升计算速度是有使用条件的,只有在计算时长远大于系统资源调用时,其加速效果才有体现。对于掺氢天然气管网的数值模拟,若每个节点采用一个线程的模型来并行计算,则其加速效率将远小于1,将起到减速的效果。即使采用每根管道一个线程的模型,其加速比在1附近,无法真正实现计算加速。

针对现有技术在并行计算方面存在的上述技术问题,发明人从硬件层面实现并行计算从而避免延迟以及数据同步等操作。在本实施例中,利用单指令多数据(SingleInstruction Multiple Data,SIMD)模型来计算指数运算与对数运算,实现在单核CPU上同时计算多个数据的指数与对数。在硬件层面实现并行计算,所述SIMD模型不需要数据同步等与计算模型无关的操作,真正实现了即使是两个数据也能并行计算且提升计算效率的功能。

在本实施例中所述SIMD模型在一条指令同时处理多个数据,是CPU基本指令集的扩展,提供小碎数据的并行操作。如图2所示,本发明中公开传统的标量运算与SIMD模型对比,其中(a)为传统的标量运算原理示意图,(b)为SIMD模型运算原理示意图;如图2(a)所示,在传统模型中,一条指令只处理一组数据并得到一个结果;如图2(b)所示,在SIMD模型中,一条指令可以同时处理多组数据,并得到多组结果,实现了在硬件层面的并行计算。值得注意的是,SIMD模型是基于CPU内部的寄存器实现的,而寄存器是CPU运行的基本单元,因此该模型实现的并行并不需要像系统多线程或MPI多进程模型中需要数据共享与同步操作。同时,由于该模型无需数据共享与同步,且无需多线程或多进程提供技术支撑,只需要像串行程序一样进行编程即可。其使用方式是通过直接调用CPU提供的SIMD指令来实现数据并行计算。需要注意的是,由于其计算单元为寄存器,需要数据在内存中是连续的,因此仿真程序架构中,需要以数组的形式来组织管道数据,保证每根管道所有离散节点的数据是连续的。

针对高级运算方面,发明人通过对BWRS状态方程的基础形式进行分析后提出,不同于管道控制方程中仅有最简单的加、减、乘、除四则运算,BWRS状态方程式存在幂运算x

针对现有技术中上述并行计算和高级运算存在的问题,在本实施例中公开BWRS状态方程的掺氢天然气化学性质轻量化计算方法,具体实现过程,如算法2所示,实现高效求解BWRS方程。

所述算法2的具体分析如下:

a、利用输出数组对方程中的指数部分(-γρ

b、利用SIMD指令计算方程中的指数exp(-γρ

c、对于ρ的各次方,采用直接法来计算,见算法2第8行,而禁止使用库函数pow;

d、对于T的各次方,由于其次方为负数,因此首先计算其倒数,再直接计算其各次方,见算法2第9行;

e、最后根据式(1)将各部分进行计算,并保存最终结果。

为验证本发明公开BWRS状态方程的掺氢天然气化学性质轻量化计算方法的有效性,通过一个管网算例来验证。此算例包含22根管道,总长549km,四个源点三个汇点。所有管道内径为590mm,粗糙度为0.025mm,各管道长度见表。初始状态流量为0,压力为2MPa,所有源点为定流边界,流量为3×10

表1环状管网中各管道长度(km)

如图3所示,管道1、10、20在模拟结束时BWRS状态方程的掺氢天然气化学性质轻量化计算方法与DIMENS算法压力对比情况,能够看出两者是完全重合的,说明本发明公开的BWRS状态方程的掺氢天然气化学性质轻量化计算方法不会在精度方面对原有的仿真算法产生影响。

在加速效果方面,由于空间步长为1000m对于多数管网其误差较大,因此在本实施例中以空间步长为100m,时间步长为360s模拟4万个时步,即4000小时,来验证本发明公开的掺氢天然气化学性质轻量化计算方法的加速效果。如表3所示,求解环状管网时热力状态方程和水力状态方程两个模块的耗时对比。从整体看,虽然计算量增加了10倍,热力状态方程模块的加速比达到65.26,水力状态方程模块的加速比达到72.36。发明人分析其加速效果提升的主要原因是基于状态方程求解气体化学性质模块在此算例下,进一步得到了加速,其加速比超过了60倍。在采用SIMD模型的基础上,结合次幂运算的特点来针对性提出的加速算法,因此在计算量增加的情况下,不仅能够充分展现SIMD同时处理8个数据的优势,且由于数据的连续,还能够充分展现CPU内存的缓存机制优势,从而使得加速比进一步提升。与传统基于多线程的并行计算不同,在同时计算8个指数运算时并没有任何数据同步、线程等待等操作,因此其加速效果仅与算法本身相关,与操作系统的资源调度无关。

表3求解器各模块耗时优化前后对比(环状管网)

本发明公开的BWRS状态方程的掺氢天然气化学性质轻量化计算方法,充分利用SIMD模型提供的并行加速能力,结合次幂运算的特点来针对性提出优化的计算方法,同时通过数据连续存储的方式充分利用CPU缓存机制来进一步加速计算,通过上述整体的优化方案,使加速效果能够超过SIMD模型的理论值。综上所述,针对上述技术问题本发明公开一种BWRS状态方程的掺氢天然气化学性质轻量化计算方法,利用SIMD指令集直接在硬件层面实现并行计算,避免将BWRS状态方程中相关指数运算使用编程语言中的库函数实现,从而显著提升计算效率;采用直接法计算密度或温度次幂,将除法转换为乘法,使用计算机硬件能够直接实现的四则运算代替用软件算法模拟所述高级运算,有效提升高级运算的计算效率。通过对BWRS进行不同的变换,如求导或积分,可得到掺氢天然气的不同化学性质,由于指数运算与次幂运算在求导或积分时仍然是指数运算与次幂运算,因此仍可采用上述方法来计算,实现掺氢天然气所有化学性质的高效求解,对于提高掺氢天然气管网在线仿真与智能管网的建设具有重要的理论价值和技术支撑。

相关技术
  • 一种掺氢天然气管道能流计算方法、系统、设备及其应用
  • 一种掺氢天然气管道用钢断面收缩率的计算方法
技术分类

06120116496563