一种基于GPU加速的天然气管网水力参数仿真方法与流程

文档序号:20013197发布日期:2020-02-22 12:00阅读:来源:国知局

技术特征:

1.一种基于gpu加速的天然气管网水力参数仿真方法,其特征在于,所述方法包括:

步骤1、对天然气管网的水力数学模型进行线性化和离散处理;

步骤2、将离散处理后每根管道的离散方程、非管元件的模型方程和水力参数边界条件联立后得到一个大型稀疏代数方程组;

步骤3、将所述大型稀疏代数方程组基于dimens算法进行分解,划分为若干个能并行计算的小型块三对角矩阵和1个小型稀疏矩阵;其中,每个小型块三对角矩阵为对应管道的预求解方程组,方程形式为aiui-1+biui+ciui+1=di,u为天然气水力参数,a,b,c,d为预求解方程组的系数矩阵,下标i代表该管道的第i个差分节点;小型稀疏矩阵为内部及外部边界条件共同构成的边界方程组;

步骤4、在图形处理器gpu上建立粗粒度线程映射模型,将每个管道的预求解方程组的求解任务映射至一个对应的gpu线程块block上,接着建立细粒度线程映射模型,实现管道预求解方程组求解过程的并行;

步骤5、在管道预求解方程组完成计算后得到各管道离散方程的通解,将所述通解代入所述边界方程组使之能封闭求解;

步骤6、在完成所述边界方程组的求解后获得管网内所有管道的两端点水力参数u0,k和un+1,k,再将u0,k和un+1,k回代至该管道的预求解方程组中,获得该管道所有差分节点的水力参数。

2.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤1中,所述对天然气管网的水力数学模型进行线性化的过程为:

对天然气管网的水力数学模型进行线性化是针对天然气在管道中流动的连续性方程和动量方程来实现,其中,连续性方程表示为:

动量方程表示为:

其中,m为质量流量;p为压力;ρ为天然气密度;a为管道横截面面积;d为管道内径;s为管道高程;θ为管道倾斜角;λ为摩擦阻力系数;g为重力加速度;t为气体温度;分别表示定温条件下压力随密度的变化率以及定密度条件下压力随温度的变化率;

经过线性化处理后的连续性方程和动量方程表示为:

3.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤1中,所述对天然气管网的水力数学模型进行离散处理的过程为:

首先将天然气管网中的每根管道划分成很多个小管段,每个小管段称为一个离散段;

将天然气管网中的非管道元件作为一个离散段,其离散方程表示为:

两个离散段间的连接点称为离散节点,将天然气管网用很多个具有编号的离散节点代替;其中,管道的离散方程表示为:

i为2×2的单位矩阵。

4.根据权利要求3所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,所述离散节点的编号具体为:

天然气管网中所有离散节点的编号形式为(i,j),其中j为元件在天然气管网中的编号,i为离散节点在元件中的编号,则(i,j)即为元件j中的离散节点i;

天然气管网中元件的编号从1到m,天然气管网中编号为j的管道划分的离散段数目为nj,按管道j的起点到终点方向,将离散节点分别编号1到nj+1;

其中,i,j均为自然数;m为大于1的自然数;nj为大于等于1的自然数。

5.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤2中,所述非管元件包括压缩机和阀门,该非管元件的模型方程表示为:

f(uin,uout)=0

其中,f为数学公式的通用表达式,代表某种数学计算过程;uin为非管道元件进口的水力参数组;uout为非管道元件出口的水力参数组;

针对非管道元件模型进行如下线性化处理为:

进一步的,非管道元件线性化后的代数方程表示为:

式中,(1,j)和(2,j)为编号为j的非管道元件的进口和出口位置;u为天然气水力参数,包含压力p和质量流量m;上标n为计算过程中时层的编号,n时层的天然气水力参数已知或已求解,n+1时层的天然气水力参数为待预测。

6.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤2中,所述水力参数边界条件包括两类,第一类是已知天然气在供气源和分输点的气体流量或者压力值;第二类是内部连接点处的流量平衡条件和压力平衡条件,其数学表达式分别为:

第一类边界条件:p=p(t),m=m(t)

第二类边界条件:∑min=∑mout,pi,1=pi,2=…=pi,sum

其中,p为天然气压力;m为天然气质量流量;p(t)和m(t)为t时刻供气源和分输点处的天然气压力和质量流量;下标in代表流入连接点,下标out代表流出连接点;下标(i,x)中i代表第i个连接点,x代表与连接点相连的第x个元件;sum为与该连接点相连的元件总数。

7.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤4中,在gpu上建立粗粒度线程映射模型的过程为:

对一个有mp根管道、mc个压缩机、mv个阀门、me个气源的管网,一共可以列出mp个管道预求解方程组、2mc个压缩机方程、2mv个阀门方程、me个气源边界条件方程,2mp+2mc+2mv+me个内部连接点边界条件方程;

向gpu申请mp个线程块block,并申请相应大小的共享内存用于存储对应编号管道的预求解方程组的系数矩阵a,b,c,d;

每个block针对对应的管道预求解方程组分别执行细粒度层的并行计算,待计算完毕后释放计算资源并等待其它block完成计算;

将细粒度层并行计算得到的mp个方程通解与其它方程联立组成一个规模为4mp+4mc+4mv+2me的边界方程组,然后根据实际数据规模对其进行gpu并行求解或者cpu串行求解;

再次向gpu申请mp个线程块block,将边界方程组求解得到的每根管道两端的水力参数存储在对应编号block的共享内存上,并进行管道预求解方程组在细粒度层上的并行回代;

待所有block完成计算后对计算结果进行处理后退出。

8.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤4中,在gpu上进行细粒度层并行计算的实施步骤如下:

对每个线程块block,假设与之对应的管道共有n+1个差分节点,则该block需要申请n+1个线程,线程的编号从1~n+1,每个线程的寄存器中保存对应节点的方程系数ai,bi,ci,di;

基于并行循环规约pcr算法对该管道预求解方程进行第一次规约,规约过程中编号为i的线程负责计算第i个差分节点的新方程系数ai’,bi’,ci’,di’;

所有线程同步后即完成了一次规约,规约后形成两个方程组,分别由原方程中的0,2,4…n号差分节点的水力参数变量和1,3,4…n+1号差分节点的水力参数变量组成,两个方程组的规模相对于原方程组减半,接下来对这两个方程重复上述规约操作直至新形成的方程组只剩下一个变量;

对仅剩一个变量的方程bixi=di,由对应的i号线程直接进行计算从而获得xi的值;

在得到所有xi的值后释放计算资源,退出计算。

9.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在步骤5中,在对边界方程组进行求解过程中,具体设定一个阈值δ,当所述边界方程组规模小于δ阶时,所述边界方程组的求解在cpu上执行;当所述边界方程组规模大于δ阶时,所述边界方程组的求解在gpu上执行。

10.根据权利要求1所述基于gpu加速的天然气管网水力参数仿真方法,其特征在于,在获得管道所有差分节点的水力参数后,所述方法还包括:

由所得到的水力参数画出曲线图来描述和分析管道内部的天然气温度。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1