高含硫气藏在开发过程中,随着温度、压力的变化,可能会发生元素硫沉积的现象。在地层、井筒中出现硫沉积会造成地层孔隙度和渗透率的降低,影响气井的产能和正常生产。地面集输系统一旦形成硫沉积,管线及设备会出现“硫堵”和腐蚀,从而影响气体的正常输送[1-2]。元素硫在高含硫气体中溶解度的研究是硫沉积机理研究、硫沉积预测和处理技术研究的前提和基础,也是元素硫沉积室内研究工作的核心课题,对于保障高含硫气藏的安全、高效开发至关重要。
目前,国内外确定元素硫在高含硫气体中溶解度的方法主要有:实验测试法获得实验数据[3-7],根据获得的实验数据建立预测模型,如缔合模型[8-9]、经验公式[10-11]、状态方程法[12-13]、蒙特卡罗法[14]和人工神经网络模型[15]等。采用实验测试法具有一定的危险性、成本高;缔合模型和经验公式根据实验数据拟合回归得到,适用性差;状态方程法中硫与各组分之间的二元交互作用参数难以确定,造成模型的精度也较差;采用蒙特卡罗法时,由于S8分子的基础数据不足,导致计算误差仍偏大。高含硫混合物体系中各溶质组分间性质差别大,相平衡复杂多变,硫在高含硫气体中的溶解度与相平衡条件呈现强烈的非线性关系,较难用固定简化的模型关联,而人工神经网络(Artificial Neural Network,以下简称ANN)能模拟复杂的非线性映射,且无需知道溶质的物理性质,但ANN模型参数设计不合理也会造成较大的误差。本研究将以公开文献[7]中的实验数据为样本,优化逆向人工神经网络(Back Propagation Artificial Neural Network,以下简称BP ANN)模型的有关参数,利用该模型预测和关联硫在高含硫气体中的溶解度,对预测结果进行全面的误差分析,验证模型的内外推效果。
MATLAB神经网络工具箱为BP ANN的预测提供了极大的方便,通过简单的调用即可获得结果。
应用BP ANN建立预测硫在高含硫气体中溶解度的模型,首先,必须有足够多、典型性好、精度高的学习样本。其次,为了评价所建立的BP ANN模型的性能,还必须有少量的测试样本。因此,需要将文献[7]中的实验数据划分为两部分。同时,为了检验该模型的内外推效果,又将测试样本进一步分成了内推和外推两部分数据点,如表 1所示。
BP ANN由输入层、隐含层及输出层构成,输入层和输出层的节点数由实际问题确定,输入层神经元的个数由影响硫在高含硫气体中溶解度的因素确定。分析可知[16],本研究可将温度、压力、H2S摩尔分数、CO2摩尔分数和CH4摩尔分数5个因素作为BP ANN的输入层,输出层为溶解度。用于神经网络训练的溶解度数据中,压力20~45 MPa,温度303.2~363.2 K,H2S摩尔分数4.95%~26.62%,CO2摩尔分数0.86%~10.39%,CH4摩尔分数66.38%~89.14%,溶解度为0.012~1.455 g/m3,各训练数据存在数量级的差别。若直接用于训练网络,会使网络的权值差别过大,网络性质很差,需将训练数据进行归一化处理,同时,也可满足所选择传输函数的有限输出特性。最常用的归一化处理公式见式(1):
式中,$ {\overline{ x_{\rm{i}}} }$为样本经过归一化处理之后的数据,xi为未标准化的数据,xmin为训练数据项中的最小值,xmax为训练数据项中的最大值。
研究发现,将网络训练数据进行归一化处理之后,BP ANN的训练速度和训练精度均有较大的提高。
一般认为,增加隐含层层数可降低网络误差(也有文献认为不一定能有效降低),提高精度,但也会使网络复杂化,从而增加网络训练时间,并出现过拟合的倾向。对于预测硫在高含硫气体中溶解度的问题,1个隐含层就已足够。隐含层节点的选择十分复杂,取决于训练样本个数的多少和样本规律的复杂程度。确定隐含层节点数的基本原则是在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐含层节点数,但目前理论上还没有一种科学、普遍的确定方法,多以经验公式(如m=$\sqrt {l + n} $+a,式中m为隐含层节点数,n为输出层节点数,a为1~10之间的常数)为依据[17]。本研究将利用训练误差最小原则确定节点数,图 1是训练误差与隐含层节点数的关系。
由图 1可见,在节点数≤10时,网络误差随节点数的变化不明显,在区间内发生微小波动;当节点数为11时,网络误差增大到最高点;随后,当节点数为12时,网络误差由最大值下降到最低;节点数>12以后,误差随隐层节点数而增加。综合考虑后认为,隐含层节点数选择12为宜。
BP ANN的训练算法采用Levenberg-Marquardt算法,隐含层和输出层的传输函数都采用双曲正切S型函数,目标误差为0.000 001,最大训练次数为10 000,学习效率为0.18,动量因子为0.95,网络训练显示间隔为50。MATLAB神经网络工具箱中的其他设置保持默认状态。
用训练样本中的实验数据对BP ANN进行训练,用测试样本中的实验数据来验证BP ANN的预测精度。训练之后获得输入层与隐含层间的权阈值及隐含层与输出层间的权阈值,分别如表 2和表 3所示。该BP ANN模型在训练到步22时训练精度就已经达到要求,如图 2所示。此时模型的预测均方误差为0.009 8,预测的相关系数为0.997 99,拟合结果理想(如图 3所示),模型预测效果很好。
模型预测硫在高含硫气体中溶解度的结果如表 1所示。由表 1可见,优化后的模型对训练数据集进行拟合的平均相对误差为9.82%,且大部分相对误差都在15%以下,故该模型能对硫在高含硫气体中溶解度与工艺参数温度、压力以及气体组分之间的关系进行较好的模拟。优化后的模型对内推数据点进行预测的相对误差最大为23.92%,最小为0%,且大部分值在10%以下,故该模型能对硫在高含硫气体中的溶解度进行较好的内推预测。优化后的模型对外推数据点进行预测的相对误差部分在10%以下,说明该模型对硫在高含硫气体中的溶解度具有一定的外推功能,但其中大部分数据点的预测误差值却高达20%以上,故该模型不适用于硫在高含硫气体中溶解度的外推预测。这与文献[18]中得出BP神经网络用于预测固体在超临界流体中溶解度时具有较好的内推功能及较差外推效果的结论是一致的。
将表 1中的实验数据进行重新编号:Ⅰ(1~8)、Ⅱ(9~16)、Ⅲ(17~24)、Ⅳ(25~33)、Ⅴ(34~41)、Ⅵ(42~49)、Ⅶ(50~57),调研发现,文献[7]、[9]、[11]和[19]也曾利用上述7大组实验数据对状态方程法、缔合模型和经验公式进行过精度验证。因此,为了进一步验证本模型在硫溶解度预测精度方面的优越性和可靠性,仍以上述7大组实验数据为依据,并采用平均相对误差对上述模型进行对比评价,比较结果列于表 4。
由表 4可知,BP ANN模型预测结果的平均相对误差基本控制在10%以内,模型的精度与状态方程法和六参数缔合模型相当,比Chrastil缔合模型和经验公式的精度高出不少,再次证明BP神经网络可以用于预测硫在高含硫气体中的溶解度。
硫在高含硫气体中的溶解度与相平衡条件是高度非线性的,BP ANN模型在描述非线性问题上有其稳定的优势,本研究表明用BP ANN模型预测硫在高含硫气体中溶解度的方法是可行的,用该模型进行模拟具有较好的内推预测,但其外推预测效果较差。与其他预测模型相比较,BP ANN模型优于Chrastil缔合模型和经验公式所计算的结果,与状态方程法和六参数缔合模型的计算结果相当,但BP ANN模型计算过程更加简便,通过简单地调用MATLAB神经网络工具箱就可以实现运算,避免了复杂的数学公式运算,同时,也不需要高含硫气体体系的一些临界物理性质。