APP下载

基于改进型SVM 算法的气液两相流持液率计算模型

2022-12-05谷成林靳彦欣逄铭玉

关键词:计算误差液率计算精度

花 靖,蒋 秀,于 超,谷成林,靳彦欣,逄铭玉

(中国石油化工股份有限公司青岛安全工程研究院,山东 青岛 266071)

引 言

持液率又称截面含液率,是指在气液两相流动过程中,液相的过流断面面积占总过流面积的比值,表征液相在整个流动空间内的填充程度。两相流持液率的精准计算对于气液两相流流型识别、管道腐蚀评价与预测以及输气管道输送过程中沿程压降计算等方面都具有重要的意义[1-4]。

国外关于持液率计算模型的研究起步较早[3,5-12],主要包括两类:(1)基于室内实验数据拟合得到的经验、半经验相关式计算模型(如Eaton模型、Beggs-Brill模型、Mukherjee-Brill模型等);(2)通过实验现象观察建立的机理模型(如Taitel&Dukler模型、ARS模型、MARS模型等)。这两类模型虽然在各自的实验条件下(或相近实验条件)都具有较高的计算精度,但当其应用到实验条件相差较大的工况时,计算结果的准确率较低,甚至有些模型完全不适用。

近年来,机器学习在生物、医疗、商业、个体分析等不同的领域都有了广泛的应用,一些国内学者将机器学习运用到多相流领域[12-16],建立了不同的持液率计算模型,但由于受到数据来源的限制,导致模型适应性不够。比如邵孟良[13-14]建立的GA-BP神经网络持液率计算模型只适用于管径0.025 4 m、管道倾角为0°~-90°的工况。陈星杙[15]建立的基于ACE算法水平管持液率计算模型只适用于水平管持液率的计算。因此,有必要建立一套适应不同工况(不同倾角、不同管径、不同气速、不同液速等)的持液率计算模型。

本文统计分析了国内外不同专家学者共计2 123组气液两相流室内实验数据,构建了相应的实验数据库,在此基础上选定SVM算法对数据进行训练和回归预测,并对SVM算法的惩罚因子c和核函数参数g的寻优过程进行优化,从而建立了基于GA-SVM算法的持液率计算模型。最后,将该模型与经典的持液率计算模型进行了计算精度对比分析,结果显示,建立的持液率模型在不同的工况条件下都具有较高的计算精度。本文基于GA-SVM算法建立的气液两相流持液率计算模型具有计算精度高、稳定性强、适应性广泛的优点,可满足不同工况条件下持液率计算的需求。

1 数据库建立

为了建立精度高、适应性广泛的持液率计算模型,建立丰富的室内实验数据库是重要前提,遵循以下的数据筛选原则:(1)参数变化范围尽可能大,确保建立的持液率计算模型适应强,在不同的工况条件下都具有良好的计算精度;(2)统计的持液率影响因素尽量多,确保数据训练阶段具有良好的学习效果。基于以上原则,广泛地统计、筛选了国内外不同专家学者共2 123组气液两相流室内实验数据[16-24],数据来源及实验条件描述详见表1。由表1可知,实验数据涵盖了不同的实验条件,基本覆盖了影响持液率的主要因素,包括管径、管道倾角、温度、压力、气相折算速度、液相折算速度、气相密度、液相密度、气相黏度、液相黏度以及界面张力(由于实验介质的区别在密度、黏度等参数上有所体现,从而不考虑在内)等。

表1 不同专家学者所做两相流持液率测试实验的实验介质及条件Tab.1 Media and conditions used in two-phase flow holdup testing experiments by different experts and scholars

2 模型构建

2.1 支持向量机算法

支持向量机(Support Vector Machine,SVM)是Vapnik等于1995年首先提出,因其通用性强、鲁棒性好、计算简单,在解决模式分类和非线性回归问题方面达到了较好的效果[25-28]。支持向量机的基本原理是:通过建立一个分类超平面作为决策曲面,使得正类和反类距离超平面最近的样本点到超平面的距离最大化。

超平面可以用下面的线性方程来描述,ωTx+b=0,其中,x是 N维空间点,坐标为(x1,x2,…,xn)。因此,点x到直线的距离为:

图1为支持向量机数据分布示意图,可以看出满足该条件的决策边界实际上是构造了2个平行的超平面,以此作为间隔边界来实现对判别样本进行分类的目的,在上间隔边界以上的数据属于正类,在下超平面边界以下的数据属于负类,2个平行边界

图1 支持向量机数据分布示意图Fig.1 Data distribution diagram of Support Vector M achine

因此,当 ω 最小时,x到直线的距离最大。同时,考虑到在实际分类过程中,完全线性可分的样本是非常少的,从而引入软间隔的概念,允许部分数据点出现在上下边界之间。增加软间隔以后,得到优化目标为:

其中:c为惩罚因子,无因次;ξi为松弛变量,表征软间隔软的程度,无因次。

为了求解上述目标函数,构造拉格朗日函数,并根据强对偶性,得到转换后的函数为:

其中:λi、μi是拉格朗日乘子,ω、b、ξ为主问题参数,yi为距离第i个数据点最近的平面。

对主问题参数分别求导,带入式(3)中,得到:

使用SMO算法求得最优解λ*,并根据式(4)分别求得 ω,b。

最终,根据分类决策函数进行分类求解:

式中:κ(x,xi)为核函数,常用的核函数有线性核、多项式核、高斯核以及拉普拉斯核,本文使用高斯核,公式为 κ(x·xi)=e-g(x-xi)2,x是输入参数,xi是训练参数,g是核函数参数。λ*i和b*分别是λi和b的最优解。

2.2 参数优化

在SVM算法的计算过程中,惩罚因子c和核函数参数g的寻优过程是关键一步,寻优结果的好坏直接影响着SVM 算法的计算精度。因此,下文在SVM算法的基础上,采取了不同的关键参数搜索方法或算法,对c和g的寻优过程进行优化,以达到获得最佳的c和g的目的。

(1)K-交叉验证(K-Cross Validation,K-CV)

CV是用来验证分类器性能的一种统计分析方法,它将原始数据进行分组,一部分作为训练集,一部分作为验证集。原理是先对训练集进行训练,得到模型,再使用验证集与模型预测的结果进行对比,采用得到的准确率作为分类器的性能指标。K-CV是其中的一种方法,它将原始数据分成K组,然后轮流将每一组数据作为测试集,其他K-1组作为训练集,最后将K次训练测试的准确率的平均值作为分类器性能的评价指标。与其他CV方法相比,K-CV可有效地避免过学习和欠学习情况的发生,模拟的结果可信度较高。

(2)遗传算法(Genetic Algorithm,GA)

GA是Holland教授模拟自然界遗传机制和生物进化论而提出的一种并行搜索最优化方法[29]。它以自然界“优胜劣汰,适者生存”的生物进化机制为指导,通过建立合适的适应度函数,模仿遗传学中的选择、交叉、变异过程,对个体进行筛选,留下适应度高的个体。通过不停的循环训练过程,生存下来的群体一代比一代优质,直至满足条件要求。遗传算法计算流程如图2[30]所示。

图2 遗传算法计算流程Fig.2 Genetic algorithm calculation process

(3)粒子群优化算法(Particle Swarm Optimization,PSO)

PSO算法最早由Kenndy和Eberhart在1995年提出,是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索方法[31]。PSO算法的原理是:首先在可解空间中初始化一群粒子,每个粒子都有位置、速度以及适应度值3个特征。通过适应度函数计算粒子的个体极值Pbest和群体极值Gbest,并根据2个极值来调整位置和速度,通过不断的调整优化,最终得到符合条件的位置和速度。粒子群优化算法的计算流程如图3[30]所示。

图3 粒子群优化算法计算流程Fig.3 Particle swarm optim ization algorithm calculation process

2.3 模型的建立

通过K-交叉验证、遗传算法及粒子群优化算法对c和g的寻优过程进行优化,建立相应的持液率计算模型分别为:K-CV-SVM、GA-SVM、PSO-SVM。

3 持液率计算模型优选

随机选取90%的数据作为训练集,剩余10%作为验证集。分别采用3套模型进行训练和预测,为了避免模型的随机性计算误差,每套模型模拟计算10次,详细记录每一次模拟的原始值、预测值以及计算误差等数据。其中,计算误差采用均绝对误差(MAE)、均方误差(MSE)和平均绝对百分比误差(MAPE)3个指标来表征,计算公式分别如下:

式中:xi为第i个预测值;yi为第i个实际值;n为数据总量。

分别取每套模型计算效果最好的数据集和计算效果最差的数据集,绘制成图(如图4~图6所示)。计算精度方面:由图4~图6可知,3套模型的计算误差均较小,除了少数点计算效果较差之外,大多数计算的结果都和原始数据非常相近。计算稳定性方面:由图4(b)可知,K-CV-SVM的计算结果中,出现了-0.34和-0.05这样的无效点,由于持液率是0~1之间的参数,这样的计算结果显然是不合理的。而图4(a)中、图5和图6这样的无效点基本上没有,说明K-CV-SVM模型的计算稳定性不如GASVM和PSO-SVM模型。

图4 K-CV-SVM 模型的持液率计算结果Fig.4 Liquid holdup calculation results by K-CV-SVM model

图5 GA-SVM 模型的持液率计算结果Fig.5 Liquid holdup calculation results by GA-SVM model

图6 PSO-SVM 模型的持液率计算结果Fig.6 Liquid holdup calculation results by PSO-SVM model

表2列出了每套模型各误差指标的平均值和标准差,由表2可知,3套模型的计算误差均保持在较小的范围内,具体来说,GA-SVM 模型和PSO-SVM模型的计算误差均值相近,明显低于K-CV-SVM模型,表明GA-SVM模型和PSO-SVM模型的计算精度更高;对比3种参数的标准差可知,GA-SVM模型的MAE、MSE低于其他两种模型,MAPE处于两者之间,表明GA-SVM模型比其他两种模型的计算稳定性更好。因此,综合考虑计算的精度和稳定性,最终选择GA-SVM 模型作为持液率计算模型的核心算法。

表2 3套模型计算结果对比Tab.2 Com parison of liquid holdup calculation results using 3 models

4 计算结果分析

为了验证优选出的基于GA-SVM 算法的持液率计算模型是否适用于不同倾角范围的工况,分别对上倾管(倾角>0)、水平管(倾角=0)以及下倾管(倾角<0)模型的计算效果进行分析,并与常用的经验关系式计算模型对比。水平管的经验关系式计算模型选用:Eaton模型、BB(Beggs-Brill)模型、MB模型(Mukherjee-Brill);上倾管和下倾管的经验关系式计算模型选用:BB(Beggs-Brill)模型、MB模型(Mukherjee-Brill)、BBE(Beggs-Brill&Eaton)[32]。

关于经验关系式计算结果的处理:持液率为0到1之间的参数,为了更直观地对数据进行分析,对经验关系式计算的过大或过小(负)数据进行数值范围约束。当持液率大于1时按数值1输出,当持液率为负值时按数值0输出。将计算得到的数据绘制成图,分别见图7~图9,并计算不同模型的平均误差(以MAE作为评价指标),汇总见表3。

表3 不同倾角条件下GA-SVM 模型与经典模型计算结果对比Tab.3 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under different inclination angles of pipeline

4.1 上倾管计算结果对比分析

由图 7和表 3可知,GA-SVM 的计算误差(MAE=0.055 8)最小,BB模型(MAE =0.123 9)和 BBE模型(MAE =0.159 3)次之,MB模型计算误差最大(MAE =0.217 9)。GA-SVM模型计算的数据非常接近原始数据,大部分计算数据和原始数据重合,表明该模型计算精度较高。其他3种模型中,BB模型的计算精度相对较好,部分数据点计算效果尚可;Eaton模型除个别点和原始数据接近以外,大部分数据都偏离原始数据很多,计算效果不佳;MB模型纵坐标值为0和1的数据点较多,计算效果差。

图7 上倾管GA-SVM 模型与经典模型持液率计算值Fig.7 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under upward inclined pipe

4.2 水平管计算结果对比分析

由图 8和表 3可知,GA-SVM 的计算误差(MAE=0.026 7)最小,BB模型(MAE =0.059 5)和 Eaton模型(MAE =0.087 9)次之,MB模型计算误差最大(MAE =0.190 0)。4种模型计算结果的规律与上倾管相似,但整体误差低于上倾管。

图8 水平管GA-SVM 模型与经典模型持液率计算值Fig.8 Comparison of liquid holdup calculation results using GA-SVM model and classic models under horizontal pipe

4.3 下倾管预测结果分析

由图9和表3可知,GA-SVM的计算误差(MAE=0.018 9)最小,BB模型(MAE =0.152 2)和 BBE模型(MAE =0.246 0)次之,MB模型计算误差最大(MAE =0.591 9)。4种模型计算结果的规律与上倾管和水平管相似,但整体计算误差低于上倾管和水平管。

图9 下倾管GA-SVM 模型与经典模型持液率计算值Fig.9 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under downward inclined pipe

综合上述,本文建立的持液率模型在上倾管、水平管以及下倾管中都具有比Eaton、BB、MB等经验关系式模型更佳的计算精度。此外,4套模型在上倾管、水平管以及下倾管中持液率的计算误差均呈现逐渐降低的趋势,这是源于在实际的气液两相流流动过程中,由于液相重力在不同倾角的管道中对两相流的流动状态影响不同(在上倾管中重力阻碍液相向下游流动,在水平管中不影响,在下倾管中促进液相向下游流动),导致在其他实验参数相同的工况条件下,上倾管中持液率最高,下倾管中持液率最低,从而各模型计算的持液率数值偏离真实值的绝对值也呈现相应的规律。

5 结 论

本文从室内实验数据库构建和机器学习算法优选两方面出发,双管齐下,建立了基于GA-SVM算法的气液两相流持液率计算模型。该计算模型比Eaton、BB、MB等经验关系式模型的计算精度更高,具有计算精度高、稳定性强、适应性广泛的优点,可满足不同工况条件下持液率计算的需求。

猜你喜欢

计算误差液率计算精度
基于对偶模型的超低含液率湿气双参数测量方法
基于大数据分析的段塞流持液率预测模型
水尺计重中密度测量与计算误差分析及相关问题的思考
水尺计重中密度测量与计算误差分析及相关问题的思考
基于ACE算法的水平管道持液率计算模型*
基于SHIPFLOW软件的某集装箱船的阻力计算分析
机动管线气顶排空过程持液率特性的实验研究
强度折减法中折减参数对边坡稳定性计算误差影响研究
钢箱计算失效应变的冲击试验
基于CAE的模态综合法误差分析