随着全球气候问题的日趋严峻,如何有效降低大气中温室气体的排放,已成为国际社会普遍关注的焦点[1]。CO2作为一种关键的温室气体,其排放量的持续上升会进一步加剧全球变暖现象,对人类社会活动及自然环境造成深远的负面影响。因此,CO2的减排与妥善处理已成为当前科研领域亟待解决的热点课题。地下封存技术作为一种行之有效的CO2减排手段,通过将CO2安全注入地下深层,实现了CO2的长期有效隔离与减排目标[2-4]。近年来,随着CO2地下封存技术的不断发展,学者们开始关注CO2在水中的溶解度这一基础物理参数。这对于石油勘探开发、环境科学和水质管理等领域的发展具有重要意义[5]。
近年来,科研工作者通过实验获得了大量数据,进而建立各种模型来预测CO2在水中的溶解度。亨利定律是其中应用最为广泛的半经验模型[6],认为气体在气相中的逸度与其在液相中的逸度相等。但是,亨利定律在高压情况下适用性不佳。因此,学者们尝试改进理论模型或者半经验模型来更好地计算CO2在水中的溶解度。Søreide等[7]改进了Peng-Robinson状态方程,提出了CO2在纯水和NaCl溶液中的溶解度模型,但是该模型只适用于纯水及低含量的NaCl溶液;Carroll等[8]提出了碳氢化合物在纯水中的溶解度模型,该模型适用于液态和气态碳氢化合物,预测了水和甲烷/乙烷/丙烷二元体系的平衡,但是其有效的温度范围为298~444 K,压力范围在30 MPa以内;Harvey等[9]研究了高压条件下CO2在纯水和NaCl溶液中溶解度的计算方法,克服了传统活度系数模型不适用的缺点,提出了在非电解质的常规状态方程上叠加离子效应的新方法,但实际上过高估计了CO2在NaCl溶液中的溶解度;Duan等[10]以溶解平衡的活度和逸度为结合点,提出了CO2在纯水中溶解平衡的数学模型,结果与已发表实验数据具有较好的一致性,但是在计算的过程中忽略了饱和蒸汽压对溶解度的影响;Yan等[11]对CO2在NaCl溶液中的溶解度和CO2饱和盐水的密度进行了实验测量和建模计算,并建立了一种测量高压CO2在水或NaCl溶液中的溶解度的模型,其适用温度范围为323~413 K,压力范围为5~40 MPa;Sun等[12]使用机器学习的方法预测CO2的溶解度,并在实验中发现CO2在不同相态下的溶解度大小有所不同,但其预测模型适用性有限,温度范围为288.15~423.15 K,压力范围为0.1~100 MPa。综上所述,目前的模型存在适用范围较窄的问题,温度范围一般在275.15~444.3 K,压力范围一般在0.1~100 MPa。
此外,在低温、高压的条件下,CO2分子可以与水分子结合形成气体水合物,会对CO2的溶解度有较大影响。Song等[13]对临近水合物生成条件下的甲烷和乙烷气体在水中的溶解度进行了测量,发现随着温度的降低,所获得的溶解度数据与亨利定律所计算出的溶解度存在显著差异;Englezos等[14]采用Trebble-Bishnoi状态方程计算了甲烷水溶液的稳定极限,计算选择的温度和压力范围在水合物形成区域,结果发现,当压力一定时,气体的溶解度随温度降低而增加,但是在水合物生成的条件下,出现了气体的溶解度随温度降低而减小的现象,认为压力并非是影响溶解度的决定性因素。
本研究通过调研中英文文献,收集了2029组不同温度、压力、矿化度条件下的CO2在水中溶解度数据,经过数据清洗后建立CO2在水中溶解度数据库。基于该数据库,首先对亨利定律中亨利常数的计算方法进行修正;其次,采用神经网络模型来预测CO2在水中的溶解度,从而建立更加简便有效的CO2溶解度预测模型。
为便于数据分析,将所有统计数据按压力从低到高的顺序排列。在此基础上,为确保数据的一致性和可比性,对溶解度的计量单位进行了标准化处理,统一换算为摩尔分数。此外,在建立数据库过程中,存在实验条件相同而实验结果不一致的情况。因此,本研究采用基于专家经验的判断方法,剔除误差过大的数据,取平均值作为对应条件下的最终溶解度,从而保证数据的可靠性。建立的CO2溶解度数据库见表1。并且,基于该数据库,还探究了不同条件下CO2压力与溶解度之间的关系。
图1显示了不同温度下CO2在水中溶解度与压力的关系。由图1可见,当温度一定时,CO2气体在水中的溶解度随着压力的升高而增大,且当压力小于10 MPa时,溶解度随着压力的升高而快速增加,当压力高于10 MPa时,溶解度的变化较为平缓;当压力一定时,CO2的溶解度随温度的升高而下降。图2、图3分别显示了不同温度下,CO2在NaCl中的摩尔分数分别为0.018和0.036的溶液中的溶解度与压力的关系。进一步对比图1、图2和图3的数据可知,CO2气体在纯水中的溶解度大于在NaCl溶液中的溶解度。由此可得,盐离子的存在会在一定程度上使CO2的溶解度降低,并且NaCl摩尔分数越大,CO2的溶解度越小。
基于建立的数据库,对亨利常数的计算方法进行修正,以扩展其适用范围。根据SRK状态方程可知,如果气体在水中溶解度非常小,则与其逸度成正比,见式(1)。
式中:fg,v为气体在气相中的逸度,Pa;H为亨利系数,mol·Pa/mol,可根据亨利定律求解;xg为气体组分在水中的溶解度,mol/mol。而逸度可以通过逸度系数表示,见式(2)。
式中:ϕpure为纯组分的逸度系数;p为气相压力,Pa。由SRK状态方程导出的逸度系数ϕpure的计算公式见式(3)[39]。
式中:Z为气体压缩因子,无量纲。
已知温度和压力,可以计算气体的压缩因子Z、从而计算出逸度系数ϕpure与逸度fg,v,进而根据亨利定律与溶解度数据库求得亨利系数H。
选择适合数据特性的多项式回归模型,并使用最小二乘法估计模型参数,优化回归模型的拟合效果。通过计算决定系数R2来评估模型的拟合优度,以检查模型对数据变异的解释能力;进行残差分析和诊断,确保模型假设如线性性、正态性和同方差性得到满足。
本研究使用Python中的sklearn库来实现多项式回归,通过LinearRegression、PolynomialFeatures等模块对亨利系数H和温度T、压强p和矿化度W进行函数拟合,得到新的函数关系,见式(4)。
式中:p为压强,Pa;T为温度,K;W为矿化度,mol/mol;a、b、c、d、e、f、g、h、i、j、k为拟合系数。
然而,由于压力范围较大,一个公式不能较好地适用于整个压力范围,故本研究以15 MPa为分界点,使用两个公式进行拟合。此外,在水合物生成区域内,压力不是CO2溶解度函数的强因素,修正亨利系数需要考虑生成水合物的影响[40]。在有水合物生成的条件下,修正亨利系数不能仅用实际温度和压力,还需比较最低压力与实际压力,如式(5)~式(6)所示。
式中:$ p_{{\mathrm{eq}}} $为水合物相平衡压力,Pa;$p_{\exp} $为实验压力,Pa;f为逸度,Pa。压力取水合物相平衡压力$ p_{{\mathrm{eq}}} $与实验压力$ p_{\exp} $中的较小值,当有水合物生成时,f为纯气体在实验温度$ {T}_{\exp} $和水合物相平衡压力$ p_{{\mathrm{eq}}} $的逸度。
最终,亨利系数(H)的拟合公式见式(7)和式(8)。
当p≤15 MPa时,
当p>15 MPa时,
使用修正后的亨利定律预测不同温度、压力条件下CO2在水中的溶解度,并与实验数据进行对比,如图4所示。当压力低于15 MPa时,采用未修正的亨利定律求得CO2在水中溶解度的平均相对误差为52.4%,采用修正后的亨利定律求得的溶解度平均相对误差为25.29%;当压力高于15 MPa时,采用未修正的亨利定律求得CO2在水中溶解度的平均相对误差为121.35%,修正后的亨利定律求得的溶解度平均相对误差为29.49%。表明修正后的亨利定律预测结果更为准确,较修正前误差大大减小。
然而,修正后的亨利定律仍会受到使用条件的限制,而数据驱动模型直接基于观测到的数据,不依赖于理论假设,能够更好地反映实际情况。并且,数据驱动模型在预测方面具备很大的优势。它具有较强的自适应能力,能够学习和适应数据中的模式与特征;其非线性映射能力使其能够处理复杂的非线性关系;凭借出色的泛化能力,它可对未见过的数据进行精准预测[41]。此外,它具备一定的容错性,能容忍数据中的部分噪声和误差。基于以上原因,本研究引入BP神经网络来建立数据驱动模型,从而得到更准确的CO2溶解度的计算结果。
BP神经网络由输入层、输出层和隐藏层组成,它们之间与外界没有直接的接触,每个神经元只与它的前一层相互连接,并将接受的输入值输出给下一层神经元,各层之间没有反馈[42]。如图5所示,$ {X}_{1},\;{X}_{2},\;\ldots ,\;{X}_{n} $为神经网络的输入值;$ {Y}_{1},\;{Y}_{2},\;\ldots ,\; {Y}_{m} $为神经网络的预测值;$ {\omega }_{ij},{\omega }_{jk} $为神经网络的权值;f为激活函数。BP神经网络可以看成从n个输入变量到m个输出变量间映射关系的非线性函数,通过对数据进行一定的训练,就可以得到输入变量与输出变量间的函数关系。
选取温度、压力、矿化度、逸度和压缩因子中的几种组合作为输入,设置3种输入方案:第一种方案为温度、压力和矿化度;第二种方案为温度、压力、矿化度和压缩因子;第三种方案为温度、压力、矿化度和逸度。输出变量为CO2在水中的溶解度。
神经网络的超参数选择直接决定了神经网络的性能、训练效率和泛化能力[43],因此,本文选取不同优化算法、隐藏层激活函数、输出层激活函数对方案一进行训练预测,选用可以精确反映预测值与实际值之间比例关系的平均相对误差作为评价指标,预测结果见表2。
由表2可知,当模型优化算法选用trainlm即Levenberg-Marquardt算法、隐藏层激活函数选用logsig即Sigmoid函数、输出层激活函数选用purelin函数时,预测值最准确,平均相对误差最小。其中Sigmoid函数的非线性特性有助于捕捉数据中的复杂关系,适用于中小型数据集的训练;purelin可直接输出预测值,无需额外的转换或限制;Levenberg-Marquardt算法能有效减少训练时间,并可能找到比梯度下降法更好的局部最优解;中间隐藏层数选用1层可以有效简化模型,减少计算量,避免过拟合。
输入变量选取温度、压力和矿化度,并建立BP神经网络模型。经过训练后得到的预测结果见图6。预测结果对比实验数据波动幅度较小,说明模型具有良好的预测性能,预测精准度较高。计算得预测结果与实验数据的平均相对误差为21.1%。
图7为均方误差(Mean squared error,MSE)随迭代次数(Epochs)变化的关系。其中,Train曲线表示模型在训练集上的MSE随迭代次数变化的曲线;Validation曲线表示模型在验证集上的MSE随迭代次数变化的曲线;Test曲线表示模型在测试集上的MSE;Best曲线代表模型在训练过程中达到的最低MSE。由图7可知,随着迭代次数的增加,神经网络的预测结果与实验数据间的均方误差越来越小。模型最佳性能出现在第32个迭代次数时,验证集上的MSE为8.2912×10−6。模型预测值与实验值的相关系数见图8。从图8可知,总的相关系数为0.980 15,表示模型拟合情况比较好。
选取温度、压力、矿化度和压缩因子作为输入变量,并建立BP神经网络模型,经过训练之后所得出的预测结果如图9所示,预测结果显示,部分数据与实验数据相差较大,但整体预测效果较好。计算得结果与实验数据的平均相对误差为23.0%。
图10为MSE随迭代次数的变化。由图10可知,随着迭代次数的增加,神经网络的预测结果与实验数据之间的均方误差越来越小。模型最佳性能出现在第71个迭代次数时,验证集上的MSE为6.8842×10−6。模型预测值与实验值的相关系数见图11。由图11可知,总的相关系数为0.976 17,表示模型拟合情况比较好。
选取温度、压力、矿化度和逸度作为输入变量,并建立BP神经网络模型,经过训练之后所得出的预测结果如图12所示,预测结果与实验数据基本一致,但是总体来说模型预测性能较前两者稍差。计算得预测结果与实验数据的平均相对误差为28.5%。
图13为MSE随迭代次数的变化。由图13可知,随着迭代次数的增加,神经网络的预测结果与实验数据之间的均方误差越来越小。模型最佳性能出现在第57个迭代次数时,验证集上的MSE为9.2465×10−6。模型预测值与实验值的相关系数见图14。由图14可知,总的相关系数为0.974 79,表示模型拟合情况比较好。
综上所述,通过3种方案的结果对比,温度、压力和矿化度作为输入变量的模型的相关系数(r)最大为0.98015,模型相关度最大,拟合程度最好,且平均相对误差最小。因此,将温度、压力和矿化度(方案1)选为BP神经网络的输入变量,进而建立BP神经网络模型,实现对溶解度的预测。
基于第3.2节的内容,确定输出层后需继续训练确定最优隐藏层节点个数[44],本小节通过试验10组不同的隐藏层节点个数得出对应的MSE值,选取MSE最小时的节点个数为神经网络的最优隐藏层节点个数。图15为不同隐藏层神经元节点数对应的MSE。由图15可知,当中间隐藏层含有18个神经元节点时,MSE达到最低值20.64%。
最终建立以温度、压力和矿化度作为输入变量、溶解度为输出变量的BP神经网络模型,中间隐藏层为1层,神经元节点数为18个。此时,计算得到的模型相关系数R最大为0.9837,模型相关度高,平均相对误差为20.64%。BP神经网络预测的CO2溶解度如图16所示。结果表明,数据驱动模型较修正后的亨利定律预测效果更好,修正后的亨利定律确实可能会存在某些压力条件下不适用的情况,从而导致计算结果与实际结果误差较大。
收集、整理了2 029组不同温度、压力条件下CO2在水中的溶解度数据,研究了CO2在水中以及在NaCl溶液中的溶解度特性。同时,本研究还修正了传统的亨利定律,并使用BP神经网络来预测CO2的溶解度,提高了预测精度。
1) 本研究在使用亨利定律与BP神经网络模型时均考虑到了水合物生成的影响,并采用了对比实际压力与水合物生成压力的方法来解决这个问题,对压力数据进行更新,使亨利定律和数学驱动模型的预测性能更加可靠。
2) 对亨利系数进行了修正,采用修正后的亨利定律计算了CO2气体在水中的溶解度,预测结果显示,当压力低于15 MPa时,与实验数据平均相对误差为25.29%,较修正前的平均相对误差下降了27.11个百分点;当压力高于15 MPa时,与实验数据平均相对误差为29.49%,与修正前相比下降了91.86个百分点,预测性能大幅提高,且低压场景的预测精度优于高压场景。
3) 利用CO2气体在水中的溶解度数据建立了数据驱动BP神经网络模型,分别采取了不同的输入变量组合研究温度、压力、矿化度、逸度和压缩因子5个特征对气体在水中溶解度的影响。通过结果的对比和误差分析,优选温度、压力和矿化度为输入变量,模型误差为20.64%。同时,也对隐藏层神经元节点个数进行了优化,使模型预测结果更加精确。最终建立的BP神经网络模型适用温度上限从444.3 K增大到723 K,适用压力上限从100 MPa增大到200 MPa,并且有较高的准确度。
4) 根据亨利定律与数据驱动模型的对比预测结果得出,数据驱动模型的预测效果更好。原因可能是亨利系数由经验公式拟合形成,没有严格的理论基础,不能确定不同矿化度的条件对CO2溶解度的影响及气相CO2中存在的水蒸气对溶解度的影响,导致更新后的亨利定律所计算的溶解度数据也存在一定的偏差;而数据驱动模型能够实现复杂的非线性映射问题,可以更好地将溶解度与温度、压力和矿化度关联起来,更适用于此类问题。