打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
组分模拟
 我一直在考虑怎么样写组分模型数值模拟入门指南。组分模拟要涉及到状态方程(EOS),闪蒸计算,热动力方程等理论方面的知识。在实际做组分模拟时,你并不需要完全掌握这些知识,但你至少应该有一定了解。我在后面会做一点简单的介绍,但希望大家自己化些时间去学这部分知识。我写的还是以应用为主(这部分内容可能是国内出版的数模书籍中最缺乏的),大家需要参考其他组分模拟理论方面的书籍。
做组分模拟前应该有很好的黑油模拟的基础。你应该先把黑油模拟做好以后再开始做组分模拟。在我写的过程中,我也假定你已经很好地掌握了黑油模型。涉及到黑油方面的内容时我不会做重复介绍。如果你有疑问,可以参照我以前写的黑油模拟入门指南。
关于组分模拟,大家首先会有下面一些疑问。为什么要做组分模拟?在什么情况下需要做组分模拟?组分模拟与黑油模拟有什么区别?组分模拟结果是不是一定比黑油模拟好?组分模拟用多少组分比较好?我先试着回答一下这些基本问题,然后我再介绍具体如何做组分模拟。
我们都知道,地下的流体的组成实际上是非常复杂的,可能含有成百上千的组分。地下流体以油或气相的形式存在。对于大多数油藏,我们基本上可以把地下流体分为两个组分,及油组分和气组分。油组分以油相的形式存在,气组分以气相的形式存在。两个组分会发生物质交换,及气组分会溶解到油相,油组分也会从气相挥发(油和气都不会溶解于水)。这两个组分之间的物质交换可以用溶解油气比和(或)挥发气油比来表示。溶解油气比和挥发气油比都只是压力的函数。地下油气相的密度可以通过地面油气相的密度,溶解油气比以及体积系数来计算。油气相的体积系数也只是压力的函数。同样地下油气相的粘度也是压力的函数。这就是我们所熟悉的黑油模型。对于大多数油藏,采用这样的处理方式计算结果是有保证的。但并不是所有油藏都可以这样处理。比如凝析气藏,气藏温度很靠近临界温度,在开发过程中有许多独特的特性。在井底附近,压力低于露点压力,油相(重组分)析出而且饱和度大于临界含油饱和度,这时会发生油气两相流动。在远离井底附近,可能压力也低于露点压力,但含油饱和度低于临界含油饱和度,这时只有气相发生流动。在气藏中没有油相的析出,只是纯气相流动。所以在井底会有三个流动带,每个流动带的特性都不同。我们需要用到组分模型计算每个流动带的组分变化,是哪些组分从气相析出,析出的组分含量,这样我们可以计算出各个组分在油相和气相中的含量,从而得到油气相的饱和度,密度,粘度等属性。这样你的油气属性不像黑油模型那样只是压力的函数,在组分模型中它们同时也是组分的函数.我在后面会专门用一个章节介绍如何模拟凝析气藏,包括非达西流动,相渗曲线随流速的变化,井底附近拟压力处理等等。
另一种需要用到组分模型的情况是注气驱。对于黑油模型,任何注入气都没有区别。但实际上,不同的注入气,驱替效率不同。如果是混相驱,不同的注入气最小混相压力也不同。我们必须知道注入气的组成,才能更好的模拟驱替过程。
其他一些需要用到组分模型的情形有挥发油藏的模拟,组分分布变化显著的油气藏模拟,地层温度差别显著的油气藏以及机理性研究等。
全球估计至少百分比七十以上的数值模拟模型都是黑油模型,组分模型不多。一个制约组分模型应用的主要原因是计算时间。组分模型比黑油模型计算要慢很多。组分模型每一个时间步都要进行闪蒸计算,这部分计算可能占整个计算量的一半时间。组分越多,闪蒸计算所需要的时间越多。多一个组分,组分模型总计算时间可能会多出三倍。通常组分模型大都选用6到8个组分,不会更多。
1 。认识组分模型的输出结果
我之所以一开始就介绍对组分模型的输出结果的认识是因为我认为这是非常重要的一部分。比如说你建的是组分模型,你在做历史拟合,拟合油田产油量,产气量。首先你就应该知道模型计算的产油量,产气量与你实际测量的产油量,产气量是不是同一种情形。
模型计算输出的每口井产量都是针对分离器的产量。比如你有三级分离器,模型输出的产油量是最后一级分离器时的产油量。模型计算输出的产气量是每一级分离器分离的气量都折算到标准条件下的气量之和。折算过程是用理想状态方程:Psep*Vsep/Tsep= Pstd*Vstd/Tstd
sep: 分离器
std: 标态
P: 压力
V: 体积2
T: 温度
有时候你可能要拟合湿气的产量。模型计算输出的湿气产量是井口碳氢产量用理想状态方程折算到标态下的产量。你可以理解为分离器之前的碳氢产量。1摩尔理想气体在标态下占的体积为379.48立方英尺,那么湿气产量就应该等于井的摩尔产量乘以379.48。
你最好先找一个你使用的软件安装自带的组分模型,然后运行该模型,输出计算的油,气产量,湿气产量,摩尔产量,每级分离器的油气产量,然后自己手工算一下它们的关系。然后你可以尝试改变分离器条件(你需要定井底压力生产),你会发现你的油气产量发生了变化,但湿气产量并没有发生变化。
2 建立组分模型需要输入的参数
组分模型输入参数大多数与黑油模型一样。
2.1: 模型网格改造: 完全一样
2.2: 模型网格属性: 完全一样
2.3: 相渗曲线: 完全一样
2.4: 毛管压力: 完全一样
2.5: 岩石压缩: 完全一样
2.6: 分区设置:基本一样。但组分模型还可以设EOS分区。不同EOS分区可以赋不同的EOS参数。如果油田同时开采多套流体属性不同的油气藏,你可能需要进行EOS分区。不同EOS分区要求有相同的组分,比如如果一个EOS分区用了N2,CO2, C1, C2, C3, C456, C7+,那么另一套EOS也应该用这几个组分,只不过对不同分区,它们的摩尔组成不同,EOS参数也可能不同。
如果你要采用多个EOS分区,你最好将EOS分区和平衡区设为一致。否则的化你的模型可能不会稳定。因为在组分模型中,你的油,气相的密度,饱和度等都是由EOS状态方程计算的,在进行初始化计算时,模型不光要保证压力,饱和度平衡,同时要保证热动力平衡(这部分在后面的模型初始化部分会详细介绍)。你的EOS分区如果与平衡区不一致,很可能会导致流体初始不平衡。
2.7: 流体参数:这是黑油模型和组分模型数据输入差别最大的地方。黑油模型输入的是油,气的体积系数,粘度与压力的关系,油气比与压力的关系,这些关系都是以表的形式输入,软件在计算时直接查这些表,以及做相应的内插和外插值。但不做其他计算。组分模型完全不同,组分模型输入的是EOS状态方程参数。这些参数包括各个组分的命名,临界温度,临界压力,临界Z因子,分子量,偏心因子,OMEGAA,OMEGAB,参考密度,参考温度,二元相关系数,体积偏移等。同时需要输入所应用的状态方程,油藏温度,组分的组成或组分组成随深度的变化。如果粘度计算采用LBC相关式,那么还需要输入LBC系数。如果模拟混相驱的化,需要输入等张比容来计算油气相界面张力。油气的地面密度不需要输入,只需要输入水的地面密度,EOS状态方程会计算油气相的地面密度。
如果地面EOS状态方程参数与地下不同,那么可以输入地面条件下的EOS状态方程参数。模型在做地面分离器计算时,会应用地面条件下的EOS状态方程。
2.8:初始化设置:黑油模型和组分模型输入参数很相近,但软件初始化计算方法有所不同,我在后面会详细介绍组分模型的初始化计算方法。
在这部分还需要定义油田分离器条件。软件应用油田分离器条件计算地面储量。
2.9: 生产控制部分:对于组分模型,对每口生产井或井组,需要定义生产井或井组对应的分离器条件。软件应用地面分离器条件计算井的地面油气产量。
如果注气的化,不光需要指定注入量控制,还需要指定注入气的组分。
如果是气回注的化,只需要指定回注哪个井或井组的气,气的组分会自动计算。如果有些气是用于出售或燃料,那么在计算回注量前,模型会先扣除这些气量。
3 准备PVT数据
我们上面说过,做组分模拟通常选用6个到8个组分就可以了。那么应该选哪些组分?下面是建议的工作流程:
3.1: 用你的PVT处理软件先辟分加组分(C7+或C12+等)。
3.2: 辟分完后拟合饱和压力,拟合相图,拟合实验室结果。
3.3:组分合并。将辟分后的加组分合并为2到3个组分,保留C1为独立组分,将中间组分(C2,C3,C4,C5,C6)合并为两个组分。对于非烃类组分,可以合并到烃类组分或设为独立组分。
3.4: 重新拟合实验室数据
3.5: 输出EOS参数。
最好选用三参数状态方程,两参数状态方程不能准确预测液体密度。
粘度计算最好选用Pedersen方法,此方法比LBC方法精确。
4 PVT实验拟合
PVT实验拟合时,掌握EOS状态方程是基础。EOS状态方程有多种类型,比如二参数PR状态方程,三参数PR3状态方程,二参数SRK状态方程,三参数SRK状态方程,RK,ZJ,SW状态方程等。不同的状态方程有时候计算出来的结果差别可能很大,这其中最常用的是三参数PR3状态方程。
对于纯组分(C1,C2,C3,iC4,nC4,iC5,nC5,C6)而言,随着组分摩尔分子量的增加,组分的临界温度,沸点,临界体积,偏心因子,液体密度都是增加的,而临界压力和临界Z因子随组分摩尔分子量的增加是减小的。如果在你拟合以后这种单调性发生了变化,那你的拟合肯定有问题。
另外流体取样有井底取样和井口取样,在做井底取样时要保证样品在饱和压力以上。井口取样通常是实验室根据生产油气比将井口的油样和气样在实验室生成代表油藏条件的样品。当然你不可能影响取样,但你应该知道你拿到PVT实验报告的取样流程。如果取样有问题,样品根本不能代表油藏流体,那你的拟合就白费力了。
通常对不同的流体类型采用不同的PVT实验。比如对黑油通常进行差异分离实验(DL),等组分膨胀实验(CCE),对凝析气采用等容衰竭实验(CVD)和等组分膨胀实验(CCE)。另外还可能进行分离器实验,如果注气的化会进行一次接触混相实验,多次接触混相实验。你需要知道每个实验是怎么做的,最重要的是你需要知道你拿到的实验室报告结果中各相参数是如何定义的。比如你拿到的CCE实验中报告中的液体饱和度是用的液体体积除以饱和压力下的液体体积还是除以目前条件下的总体积。在你把你的实验结果输入到你采用的PVT分析软件中时你要检查它们用的定义是否一致。
你的PVT拟合实际上就是用你的PVT软件,调整EOS状态方程参数,使你的PVT软件用EOS计算的结果与你的实验室测量结果匹配,然后把拟合好的EOS输出给组分模型用于组分模拟的EOS和闪蒸计算。在你做PVT拟合时,你需要首先对你拿到的实验结果进行质量检查,不合格的样品和有问题的实验数据根本没必要费时间,你做也是白做,这样的数据用于模拟带来的问题更多。然后在拟合时你应该知道应该调整那个参数,如何调整各个参数,各个参数是如何影响结果的。最后是EOS的输出。下面介绍PVT拟合的步骤:
4.1:PVT实验报告的质量检查
· 确认取样压力在饱和压力以上,样品可以代表油藏流体。
· 报告中所有组分摩尔百分数之和为100。
·组分物质平衡检查。对CVD实验,绘组分K值图,组分的Log(K)与压力。组分的K值图应该是单调变化的,组分K值线不会交叉,顺序为N2,C1,CO2,C2,C3,iC4,nC4,iC5,nC5,C6...Cn+.
·绘Hoffman-Crump-Hocott图,Kp与F因子,所有组分应该在一条直线上。
·检查实验结果的变化趋势是否正确。比如在CVD或CCE实验中液体密度随压力的降低应该增加。
·检查你的实验报告中各项实验结果的定义与你的软件是否一致。
·CCE,CVD,DL实验应该在油藏体积,分离器实验应该在地面条件。
4.2:选用哪个EOS状态方程
软件通常提供许多EOS状态方程,你至少应该选用三参数状态方程。常用的是三参数PR状态方程
4.3:给实验结果设权值
你拿到的实验结果数据很多,你可能不能将所有实验结果都拟合好,你应该知道哪些是你必须拟合好的。饱和压力应该是最重要的,饱和压力对你的数模计算影响是最大的,你应该给饱和压力一个很大的权值,比如5000,以便EOS能首先拟合好饱和压力。对凝析气藏,CVD实验中的液体析出量是非常重要的,如果你不能拟合好实验,你很可能在数模时拟合不上生产油气比。同样你需要给CVD实验中的液体析出量大的权值。分离器实验也很重要,你也需要设大的权值,比如1000。分离器实验直接与你的产量有关。对一些结果不可靠的实验,你可以设很小的权值,比如0.5.
4.4:在拟合时调整哪个组分的属性
通常你拿到的实验室报告组分会做到C7+或C12+,也有做到C22+甚至更多组分的时候。在你拟合实验结果时,你要知道有些组分属性是不能调整的,比如纯组分C1,C2, C3, IC4, NC4, IC5, NC5,C6以及H2O, H2S, N2, CO2,CO的临界压力,临界温度和偏心因子等这些应该不会变化,在你拟合时不要调整这些参数。重组分(C7.C8.C9....)的临界属性不确定,你可以调整。你拿到的实验室报告中最不确定的应该是加组分的属性(C7+,C12+等),加组分是大于此组分的无数组分的混合体,通常实验室会给出加组分的摩尔分子量和指定重度,属性来自于计算,不确定。因而对加组分属性的调整是PVT拟合的首选。
对加组分属性的调整有以下方式:
·辟分加组分:加组分是大于此组分的无数组分的混合体,实验室的测量根本不能精确描述加组分,通过辟分,将加组分辟分为几个重组分,通常会较容易的拟合实验室测量结果
·回归加组分的摩尔分子量:这样做的好处是使加组分的临界压力,临界温度等属性变化是一致的。
·回归加组分的属性:直接回归加组分的临界压力,临界温度或偏心因子等属性
4.5:组分属性如何影响结果
·组分的临界压力,临界温度,偏心因子影响饱和压力和液体析出量,所以在你拟合饱和压力和液体析出量时可以回归组分的临界压力,临界温度或偏心因子
·组分的体积偏移(Volume Shift)影响Z因子和液体密度,在拟合Z因子和液体密度时回归组分的体积偏移
·在回归时你可以让组分的体积偏移取决于组分的临界压力,临界温度,偏心因子,这样调整组分的临界压力,临界温度或偏心因子时也影响Z因子和液体密度。
·组分的临界Z因子或临界体积影响LBC的粘度,在用LBC方法计算粘度时要回归组分的临界Z因子或临界体积。注意粘度回归是单独进行的,你先把其他测量结果拟合好后再对粘度进行单独回归,粘度回归不影响其他结果。
·二元相关系数的回归一定要小心,不合理的回归在进行组分模拟时会导致严重的收敛性问题。
·组分的Omega属性也是可以进行回归的。
4.6:输出EOS
你拟合PVT的目的是为了给组分模拟提供EOS状态方程。在拟合好以后你需要输出EOS状态方程。5 模型初始化
组分模型同黑油模型一样,可以采用平衡初始化方法,手工建立初始场分布方法和拟合初始含水分布方法。下面对各种方法进行一一介绍。
5.1:平衡初始化方法:
我们在黑油模型入门指南中介绍黑油模型的平衡初始化步骤为:
(1)计算过渡带高度。由油水界面和油气界面深度以及相渗曲线提供的最大毛管压力计算。
(2)计算每一个网格初始的油相,水相,气相压力分布。首先将在流体属性部分提供的油,气,水地面密度折算为地下密度。基于参考点的深度和对应压力以及油水界面,油气界面深度,过渡带高度,结合油,气,水地下密度计算其他深度处的油,气,水相压力。
(3) 由每个网格的油,气,水压力计算油水和油气毛管压力
(4)计算饱和度分布。这部分计算主要用你提供的相渗曲线端点值。将油水界面以下的含水饱和度设为你在油水相渗曲线中提供的最大含水饱和度,通常为1。将油气界面以上的含气饱和度设为你提供的油气相渗曲线的最大值。油气界面以上的含水饱和度为束缚水饱和度。在油区的含油饱和度为1减束缚水饱和度。在过渡带的含油和含水饱和度由你提供的毛管压力曲线得到。
组分模型的初始化与黑油模型有相同之处。组分模型也是先计算模型所有网格初始压力,然后根据油水,油气界面,毛管压力曲线,相渗曲线端点值来计算初始饱和度的分布。不同之处在于组分模型不光需要保证初始压力和饱和度场的平衡,同时也需要保证初始组分分布的平衡。组分是否平衡是通过状态方程来计算的。
你如果采用平衡初始化方法,你需要指定参考深度,参考深度对应的压力,油水界面,油气界面信息。同时你也需要指定初始油相或气相对应某深度或随深度变化的组分组成。如果你的油气界面在油藏内(初始是油气两相分布),你的参考深度应该设在油气界面,同时参考深度对应的压力应该等于饱和压力。
你的输入参考压力,参考深度,油气界面与你输入的组分组成应该匹配,否则很容易造成初始不平衡。比如你输入的油气界面在3000米,那么在3000米以下应该是油相。但是如果状态方式通过你输入的组分组成计算结果在3000米以下是气相,你的状态方程计算的初始界面与你的油气界面设置的油气界面不同,你的模型初始分布不平衡。你或者需要修改油气界面,或者需要修改参考压力,或者该深度对应的组分组成不对。
状态方程是通过网格流体的临界温度与油藏温度的比较来判断油气相的。如果该网格流体计算的临界温度大于油藏温度,那么此网格应该是油相,如果该网格流体计算的临界温度小于油藏温度,那么此网格应该是气相。如果你设置的油气界面或压力与你的组分组成很不匹配,软件会试图修改计算的网格流体临界温度来使之与油藏温度相等。你可能在输出结果中见到过LI因子,如果此因子不等于1,说明你的初始输入参数不匹配。
通过上面的介绍你可能意识到组分模型与黑油模型一个很大的不同。组分模型需要进行相的标识计算。你可能在模拟过程中会发现一个网格在一个很小的时间步会从百分之百含气变成百分之百含油,这就是相标定的问题,尤其在靠近临界点,这现象更明显。
5.2 赋值方法
在黑油模拟中我们说过,最好不要进行手工赋值。因为不容易保证初始平衡。在组分模拟中,手工赋值会更难,因为你还需要保证初始组分组成的平衡。
你不光需要输入每个网格的压力,饱和度,还需要输入每个网格气相和液相组分的组成,你需要保证你输入的饱和度与每个网格气相和液相组分的组成匹配,否则你会发现你的网格初始化计算后的饱和度并不等于你设置的饱和度。
5.3 拟合初始含水分布
这与黑油模拟是一样的。你提供初始含水饱和度场数据,软件会通过标定输入的毛管压力曲线来拟合初始含水饱和度。具体标定过程如下:
假如一个网格提供的初始含水饱和度是0.6,其对应模型初始输入毛管压力曲线中的毛管压力值为1,网格由初始平衡计算的毛管压力为5,模型初始输入毛管压力曲线中的最大毛管压力值为10,那么标定后这个网格毛管压力曲线的最大毛管压力值为10×(5/1)=50.
这个网格的毛管压力在标定前后是不变的(这是由油水界面和油水密度决定的),因而这个标定过程可以理解为用手拉着输入毛管压力曲线的最大值上下移动,直到这个网格的毛管压力在标定前后不变
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
戏说测井
Fluent边界|02 压力入口条件
西南石油大学 | 贾文龙,宋硕硕,李长俊,等:超临界CO2萃取含油污泥研究现状与进展
喷油器精密偶件结构参数对喷油及泄漏特性的影响
大连理工大学《无机化学》第6版笔记和课后习题(含考研真题)详解
螺杆空压机油气桶结构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服