1.本发明属于油气田开发工程领域,具体涉及一种基于深度强化学习的油藏注采优化方法。
背景技术:2.水驱是国内油田开发的主体技术,其适应性广泛,成本低廉。但是受储层非均质性的影响,驱替不均衡,注入水沿高渗层位快速突破流向生产井,而中低渗区域的原油无法被波及,导致开发效果较差。如何制定合理的注采策略,缓解注采矛盾是水驱油田保持稳定开发的中心任务之一。传统的方法通常由工程师人工设计不同的方案进行对比,这种基于经验的方法耗时长且难以得到最优的方案。随着计算机技术的发展,结合优化控制理论的数值模拟方法成为解决这一难题的有效途径。在优化的过程中,商业数值模拟器被用于模拟地下流体的渗流过程,评估不同注采方案的经济效益。然而,取决于油藏模型的规模,单次数值模拟运行就需要花费昂贵的时间和计算成本。由于决策变量的高维和目标函数的非线性,优化算法通常需要数以千计的寻优才能得到高经济效益的注采方案。因此,如何在保证方案效果的前提下提高优化速度是目前需要解决的关键难题。
3.在实际问题的驱动下,近年兴起的机器学习技术在注采优化领域得到了广泛的研究。数据驱动的代理模型方法通过少量的样本构建近似的数学模型来代替数值模拟模型,显著减少了模拟器的调用次数。但这类方法更适用于低维度的问题,当决策变量的维度高时,代理模型的精度急剧下降。多保真优化方法通过结合不同尺度的油藏模型,显著地提高了优化速度。但其依赖手动设计复杂的规则来平衡不同保真度级别模型,因此难以在现场得到应用。
技术实现要素:4.针对当前水驱开发油田油水井注采方案制定耗时长,现有的注采优化方法效率低的问题,本发明提出一种基于深度强化学习的油藏注采优化方法,可以通过学习历史调控经验,在不同的油藏状态下自适应地设计决策方案。
5.本发明的技术方案如下:一种基于深度强化学习的油藏注采优化方法,包括如下步骤:步骤1、采集油田地质数据,建立油藏数值模拟模型,设置注采优化的控制变量、约束边界及数值模拟最大调用次数;步骤2、构建深度强化学习算法actor-critic框架,初始化训练参数及油藏状态信息;步骤3、读取当前时刻油藏状态信息,并进行归一化处理;步骤4、利用策略网络actor执行动作,实时改变决策方案;步骤5、调用油藏数值模拟器模拟油藏生产,计算当前奖励,确定下一时刻油藏状态信息;
步骤6、训练更新策略网络actor和动作价值网络critic的参数;步骤7、判断是否完成一个完整的生产周期的模拟,如果完成,则计算整个生产周期的总奖励,否则转到步骤3继续计算;步骤8、判断是否达到最大数值模拟次数,如果达到,则终止计算,输出最优控制方案,保存模型;否则转到步骤2继续计算;步骤9、根据最优的策略网络输出完整的生产制度,投入现场实施。
6.进一步地,控制变量包括井底压力和注水速率;所述约束边界为单井控制变量的上边界和下边界。
7.进一步地,井底压力控制的生产井:上边界设为油藏平均压力,下边界为油藏泡点压力;流量控制的注水井:上边界设为最大注水速率,下边界设为0。
8.进一步地,所构建的深度强化学习actor-critic算法框架包含策略网络actor和动作价值网络critic两个部分;其中,actor是执行模块,输入环境状态s
t
,输出动作a
t
;critic是评判模块,根据环境反馈奖励r
t
进行自我调整,然后指导actor模块的更新。
9.进一步地,步骤2的具体内容如下:步骤2.1、使用参数化的神经网络表示策略网络actor,actor的输入为状态s
t
,输出为动作a
t
;使用参数化的神经网络表示动作价值网络critic,critic的输入为状态s
t
,输出为价值;步骤2.2、状态s
t
设置为油藏数值模拟模型每个网格点的压力值pi和油饱和度值s
o,i
,如公式(1)所示,(1)其中,pi和s
o,i
中的i=1,
…
,n,n代表油藏数值模拟模型的网格数量;步骤2.3、动作a
t
设置为当前控制步的各井决策方案,包括第i口生产井的井底压力bhp
prd,i
,和第i口注水井的注水速率w
inj,i
,如公式(2)所示,(2)其中,bhp
prd,i
中的i=1,
…
,n
prd
,n
prd
表示生产井的数量;w
inj,i
中的i=1,
…
,n
inj
,n
inj
表示注水井的数量;步骤2.4、奖励函数r
t
设置为当前时间步的经济净现值npv,利用下式计算:(3)式中,ro为原油价格;rw和ri分别是水处理成本和注水成本,单位均为元/m3;q
o,j
,q
w,j
和q
wi,i
分别是第j口生产井产油速率、第j口生产井产水速率和第i口注水井的注水速率,单位均为m3/d;步骤2.5、初始化训练参数:设置折扣因子,设置策略网络actor和动作价值网络critic的学习率和,二者的神经网络均为四层全连接层,设置各层神经元个数;设置
一个生产周期的训练步数。
10.进一步地,步骤3中,归一化处理采用min-max归一化函数,计算公式为:(4)式中,x为状态变量值。
11.进一步地,步骤5的具体内容如下:步骤5.1、将当前t时刻井的决策变量a
t
按照模拟器规定的格式写入生产制度文件;步骤5.2、调用黑油数值模拟器eclipse加载当前模型,模拟生产过程,获得生产数据以及下一时刻油藏状态信息。
12.进一步地,步骤6的具体内容如下:步骤6.1、根据油藏当前时刻的状态信息s
t
、决策变量a
t
、奖励值r
t+1
、下一时刻油藏状态信息s
t+1
和下一刻油藏决策变量a
t+1
,评估当前actor执行策略的好坏并更新critic的参数:(5)(6)其中,被称为td误差,衡量当前时刻s
t
的估计值与更好的估计之间的差异;表示对求梯度;步骤6.2、根据当前时刻油藏状态s
t
,决策变量a
t
以及critic返回的更新actor的参数:(7)其中,表示对求梯度。
13.进一步地,步骤9中,在使用最优的策略网络与油藏模拟器环境交互时,保存从初始时刻起每一个时间步的各生产井和注水井的决策变量值,形成完整的生产制度,进而投入现场实施。
14.本发明所带来的有益技术效果:本发明提供了结合神经网络和强化学习的优化框架,将生产优化问题建模为序列决策问题,与现有的方法相比,本发明提供的方法能够通过学习历史调控经验,在不同的油藏状态下自适应地设计决策方案,实现高效率高精度的方案优化,在保证生产方案能够获得高经济效益的前提下显著地提高优化效率;本发明提供的优化框架,易于与任意的数值模拟模型相结合,能够在不同的油藏状态下自适应地设计决策变量;此过程不依赖于任何补充的结构或者手动设计复杂的规则,更能满足油田现场和实际开发的需求。
附图说明
15.图1是本发明基于深度强化学习的油藏注采优化方法的总体设计流程图;图2是本发明深度强化学习actor-critic算法框架示意图;图3是本发明实施例中基于深度强化学习的actor-critic算法与差分进化算法de的油田经济净现值收敛曲线对比图;图4是本发明实施例中基于深度强化学习的actor-critic算法与差分进化算法de的油田累积产油量对比图;图5是本发明实施例中基于深度强化学习的actor-critic算法与差分进化算法de的油田累积产水量对比图。
具体实施方式
16.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实例仅仅是本发明一部分实例,而不是全部的实例。
17.参照图1,本发明提出一种基于深度强化学习的油藏注采优化方法,具体步骤如下:步骤1、采集油田地质数据,建立油藏数值模拟模型,设置注采优化控制变量、约束边界及数值模拟最大调用次数;其中,控制变量包括井底压力和注水速率;约束边界为单井控制变量的上边界和下边界;井底压力控制的生产井:上边界设为油藏平均压力,下边界设为油藏泡点压力;流量控制的注水井:上边界设为最大注水速率,下边界设为0;步骤2、构建深度强化学习actor-critic算法框架,初始化训练参数及油藏状态信息;如图2所示,构建的深度强化学习actor-critic算法框架包含策略网络actor和动作价值网络critic两个部分。其中actor是执行模块,输入环境状态s
t
,输出动作a
t
。而critic是评判模块,根据环境反馈奖励r
t
进行自我调整,然后指导actor模块的更新。
18.具体步骤如下:步骤2.1、使用参数化的神经网络表示策略网络actor,actor的输入为状态s
t
,输出为动作a
t
;使用参数化的神经网络表示动作价值网络critic,critic的输入为状态s
t
,输出为价值;步骤2.2、状态s
t
设置为油藏数值模拟模型每个网格点的压力值pi和油饱和度值s
o,i
,即(1)其中,pi和s
o,i
中的i=1,
…
,n,n代表油藏数值模拟模型的网格数量;步骤2.3、动作a
t
设置为当前控制步的各井决策方案,包括第i口生产井的井底压力bhp
prd,i
,和第i口注水井的注水速率w
inj,i
,如公式(2)所示,
(2)其中,bhp
prd,i
中的i=1,
…
,n
prd
,n
prd
表示生产井的数量;w
inj,i
中的i=1,
…
,n
inj
,n
inj
表示注水井的数量;步骤2.4、奖励函数r
t
设置为当前时间步的经济净现值npv,利用下式计算:(3)式中,ro为原油价格;rw和ri分别是水处理成本和注水成本,单位均为元/m3;q
o,j
,q
w,j
和q
wi,i
分别是第j口生产井产油速率、第j口生产井产水速率和第i口注水井的注水速率,单位均为m3/d;步骤2.5、初始化训练参数:设置折扣因子,设置策略网络actor和动作价值网络critic的学习率和,二者的神经网络均为四层全连接层,设置各层神经元个数;设置一个生产周期的训练步数;步骤3、读取当前时刻油藏状态数据信息(压力和饱和度)s
t
,并使用下式min-max归一化函数进行归一化处理,(4)式中,x为油藏状态变量值;步骤4、利用策略网络actor执行动作(决策变量)a
t
,实时改变井的决策方案;步骤5、调用油藏数值模拟器模拟油藏生产,计算当前的奖励r
t
,确定下一时刻油藏状态信息s
t+1
,具体步骤为:步骤5.1、将当前t时刻井的决策变量a
t
按照模拟器规定的格式写入生产制度文件;步骤5.2、调用黑油数值模拟器eclipse加载当前模型,模拟生产过程,获得生产数据以及下一时刻油藏状态信息;步骤6、训练更新策略网络actor和动作价值网络critic的参数,具体步骤为:步骤6.1、根据油藏当前时刻的状态信息s
t
、决策变量a
t
、奖励值r
t+1
、下一时刻油藏状态信息s
t+1
和下一刻油藏决策变量a
t+1
,评估当前actor执行策略的好坏并更新critic的参数:(5)(6)其中,被称为td误差,衡量当前时刻s
t
的估计值与更好的估计之间的差异;表示对求梯度。
19.步骤6.2、根据当前时刻油藏状态s
t
,决策变量a
t
以及critic返回的更新actor的参数:(7)其中,表示对求梯度。
20.步骤7、判断是否完成一个完整的生产周期的模拟,如果完成,则将生产周期内每一步的奖励累加,计算得到总的奖励,否则转到步骤3继续计算;步骤8、判断是否达到最大数值模拟次数,如果达到,则终止计算,输出最优控制方案,保存模型;否则转到步骤2继续计算;步骤9、根据最优的策略网络输出完整的生产制度,投入现场实施。
21.在使用最优的策略网络与油藏模拟器环境交互时,保存从初始时刻起每一个时间步的各生产井和注水井的决策变量值,形成完整的生产制度,进而投入现场实施。
实施例
22.本发明方法的优点可通过以下油藏数值模拟实验进一步说明:该实施例数据来自某待研究区块,待研究区块含有9口井,其中3口注水井,6口生产井。生产井的优化变量为日产液量,注水井的优化变量为日注水量,日产液量和日注水量的上边界和下边界分别为1000m3/d和0m3/d。本实施例中,采用商业数值模拟器eclipse进行数值模拟。该区块的总生产周期为5760天,时间步长设为360天。优化变量的总数为井的数量乘以时间步数。因此,总的优化变量数位(3+6)
×
16=144。数值模拟最大调用次数设置为2000次。
23.基于上述待研究区块的数据,本发明油藏注采优化方法的具体步骤如下:步骤1、基于该研究区块采集到的油田地质数据,建立油藏数值模拟模型,设置注采优化控制变量为日产液量和日注水量,设置约束边界(即设置日产液量和日注水量的上边界和下边界分别为1000m3/d和0m3/d),设置数值模拟最大调用次数为2000;步骤2、根据公式(1)至公式(3)构建深度强化学习actor-critic算法框架,同时初始化训练参数及油藏状态;其中,初始化训练参数中,分别设置折扣因子=0.96,actor和critic的学习率分别为=0.003和=0.005,二者的神经网络均为四层全连接层,各层神经元个数为256-256-128-64,一个生产周期的训练步数为20步;步骤3、读取当前时刻油藏状态信息(压力和饱和度)s
t
,使用公式(4)进行归一化处理;步骤4、利用策略网络actor执行动作(决策变量)a
t
,实时改变井的决策方案;步骤5、调用油藏数值模拟器eclipse模拟油藏生产,计算当前的奖励r
t
,确定下一时刻油藏状态信息s
t+1
;步骤6、根据油藏当前时刻的状态信息s
t
、决策变量a
t
、奖励值r
t+1
以及下一时刻油藏状态信息s
t+1
,利用公式(5)至公式(7)训练更新策略网络actor的参数和动作价值网络critic的参数;
步骤7、判断是否完成一个完整的生产周期的模拟,即如果训练步数达到20步,则计算生产周期总的奖励,否则转到步骤3继续计算;步骤8、判断是否达到最大数值模拟次数,即模拟次数如果达到2000次,则终止计算,输出最优控制方案,保存模型;否则转到步骤2继续计算;步骤9、使用最优的策略网络与油藏模拟器环境交互,保存从初始时刻起每一个时间步的各生产井和注水井的决策变量值,形成完整的生产制度,投入现场实施。
24.基于上述待研究区的采集数据,将本发明方法(actor-critic算法)和传统的进化算法(差分进化算法de)进行对比实验,包括经济效益结果、累积产油量和累计产水量结构的对比。
25.图3为本发明所提出方法(actor-critic算法)和传统的进化算法(差分进化算法de)在应用实例中注采优化的经济效益结果对比图,横坐标为油藏数值模拟器的调用次数,纵坐标为当前最优方案的经济净现值。可以看出,整个优化过程中以及最终的结果,本发明所提出的方法稳定收敛时需要的模拟次数更少,得到的经济效益要优于使用差分进化算法de得到的经济效益。
26.图4和图5分别为累积产油量和累计产水量结果对比图。从图中可以看出,本发明提出的方法在生产周期内累积产油量更高,但累计产水量更低,达到了“增油控水”的效果。
27.当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。