一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

工况监测和控制模型建立方法及其应用方法和装置与流程

2022-05-21 05:11:23 来源:中国专利 TAG:


1.本发明涉及控压钻井技术领域,特别涉及一种工况监测和控制模型建立方法及其应用方法和装置。


背景技术:

2.在实际钻井现场,工程师可以利用一定的技术手段在异常工况发生前进行规避。目前为止,工况异常的判断处理仍然需要人工完成。钻井工况异常的人工判别法主要根据特定参数的变化是否超过阈值,最后再根据现场经验知识来进行综合判定。当溢流或漏失发生时,井底压力的控制只能由自动控制状态切换至手动控制状态,进而根据工程师的经验频繁调整井口回压以抑制气侵或漏失。


技术实现要素:

3.发明人发现,现有技术中应用人工判别法需要工程师具备极强的精力及技术水平,因此人工判别法难以保证判断的效率以及质量,当溢流或漏失发生时手动控制井底压力工作强度大,并极端依赖于钻井经验,且难以实现对井底压力的最优控制,为了至少部分地解决现有技术存在的技术问题,发明人做出本发明,通过具体实施方式,提供一种工况监测和控制模型建立方法及其应用方法和装置。
4.第一方面,本发明实施例提供一种工况监测模型建立方法,包括:
5.将获得的多组工况钻井数据生成样本集,从所述样本集中抽取多组工况钻井数据作为训练集;
6.使用所述训练集对深度置信网络dbn模型进行训练,直至达到预设终止条件,得到工况监测模型。
7.在一些可选的实施例中,所述将获得的多组工况钻井数据构成样本集,包括:
8.将获得的不同时刻或不同时间段对应的多组工况钻井数据,生成样本集,所述样本集中的每个样本数据,包含有与所述时刻或时间段对应的立压、回压、出口流量、流量差和工况标签。
9.在一些可选的实施例中,在使用所述训练集对深度置信网络dbn模型进行训练之前,包括:
10.对所述训练集做独立主元分析ica,得到独立主元的集合,使用独立主元的集合作为更新的训练集。
11.在一些可选的实施例中,所述流量差通过下述方式获得,包括:
12.使用感知算法计算井底钻头流量;
13.使用对应的出口流量与所述井底钻头流量做差,得到所述流量差。
14.在一些可选的实施例中,所述使用感知算法计算井底钻头流量,包括:
15.建立水力学模型,如式1所示,
[0016][0017]
井底压力计算方程为:
[0018][0019]
式1、式2中,p
p
、pc、p
bit
分别为立压、回压、井底压力,mpa;q
bit
、q
pump
、q
back
和q
res
分别为井底钻头流量、泵出口流量、回压泵出口流量和地层侵入流量,m3/s;特别指出,当溢流或漏失发生时,q
res
仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。分别表示立压、井底钻头流量、回压的导数;ed、ea分别为钻柱和环空内钻井液的体积模量,mpa;vd、va分为钻柱和环空体积,m3;为环空体积变化量,m3;ma、md分别为环空和钻柱中钻井液流动方向上单位截面密度的积分,kg/m3;aa、ad分别为环空与钻柱的横截面积fa、fd分别为环空和钻柱中钻井液流动方向的摩擦系数,s2/m6;ρd、ρa分别为钻柱和环空中钻井液密度,kg/m3;kc为节流阀的流量系数;zc为节流阀开度,%;p0为大气压,mpa;h为垂直井深,m;g为重力加速度,m/s2。
[0020]
上述公式中m、fa的计算与环空中密度和摩擦系数有关,由于假设中对其进行一定程度的简化,因此选取未知参数θ1、θ2如下
[0021][0022][0023]
对式1进行如下坐标变换,
[0024]
p

p
=p
p
[0025][0026]
[0027]
根据式1-4将水力学模型转化为状态空间形式,
[0028][0029]
y=cx
ꢀꢀ
式5
[0030]
其中
[0031][0032][0033]
式6中u表示钻井过程中的可操作变量。
[0034]
根据式5-6建立如下感知算法对θ1、θ2、q
bit
进行计算,
[0035][0036]
其中ρ表示调节参数,δ表示仅与ρ有关的矩阵,q表示lyapunov矩阵代数方程q a
t
q qa-c
t
c=0的唯一解,γ、γ表示中间变量矩阵,表示中间变量矩阵的导数,x、y、θ表示状态向量、输出向量与参数向量,表示状态向量与参数向量的估计值,表示状态向量与参数向量的估计值,表示状态向量与参数向量估计值的导数。
[0037]
在一些可选的实施例中,所述使用所述训练集对深度置信网络dbn模型进行训练,包括:
[0038]
将所述训练集输入深度置信网络dbn模型底层,进行受限玻尔兹曼机rbm无监督逐层预训练,直到完成所有rbm训练;
[0039]
利用反向传播算法bp对所述深度置信网络dbn模型参数进行调整,对所述深度置
信网络dbn模型进行有监督的训练。
[0040]
在一些可选的实施例中,所述使用所述训练集对深度置信网络dbn模型进行训练,包括:
[0041]
在使用所述训练集对深度置信网络dbn模型进行训练之前,随机初始化粒子群优化算法pso参数;
[0042]
在每次所述使用所述训练集对深度置信网络dbn模型进行训练之后,更新所述pso参数中的粒子速度和位置。
[0043]
第二方面,本发明实施例提供一种工况监测方法,包括:
[0044]
获得待测工况时刻或时间段对应的立压、回压、出口流量和流量差,生成待测工况数据;
[0045]
将所述待测工况数据输入如前述方法建立的工况监测模型,得到待测工况数据的工况标签;
[0046]
根据预设的工况标签和工况的对应关系和所述待测工况数据的工况标签,判断出所述待测工况数据对应的工况。
[0047]
在一些可选的实施例中,所述获得待测工况时间段内的流量差,包括:
[0048]
使用感知算法计算井底钻头流量;
[0049]
使用对应的出口流量与所述井底钻头流量做差,得到所述流量差。
[0050]
在一些可选的实施例中,所述使用感知算法计算井底钻头流量,包括:
[0051]
建立水力学模型,如式1所示,
[0052][0053]
井底压力计算方程为:
[0054][0055]
式1、式2中,p
p
、pc、p
bit
分别为立压、回压、井底压力,mpa;q
bit
、q
pump
、q
back
和q
res
分别为井底钻头流量、泵出口流量、回压泵出口流量和地层侵入流量,m3/s;特别指出,当溢流或漏失发生时,q
res
仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。分别表示立压、井底钻头流量、回压的导数;ed、ea分别为钻柱和环空内钻井液的体积模量,mpa;vd、va分为钻柱和环空体积,m3;为环空体积变化量,m3;ma、md分别为环
空和钻柱中钻井液流动方向上单位截面密度的积分,kg/m3;aa、ad分别为环空与钻柱的横截面积fa、fd分别为环空和钻柱中钻井液流动方向的摩擦系数,s2/m6;ρd、ρa分别为钻柱和环空中钻井液密度,kg/m3;kc为节流阀的流量系数;zc为节流阀开度,%;p0为大气压,mpa;h为垂直井深,m;g为重力加速度,m/s2。
[0056]
上述公式中m、fa的计算与环空中密度和摩擦系数有关,由于假设中对其进行一定程度的简化,因此选取未知参数θ1、θ2如下
[0057][0058][0059]
对式1进行如下坐标变换,
[0060]
p

p
=p
p
[0061][0062][0063]
根据式1-4将水力学模型转化为状态空间形式,
[0064][0065]
y=cx
ꢀꢀ
式5
[0066]
其中
[0067][0068][0069]
式6中u表示钻井过程中的可操作变量。
[0070]
根据式5-6建立如下感知算法对θ1、θ2、q
bit
进行计算,
[0071][0072]
其中ρ表示调节参数,δ表示仅与ρ有关的矩阵,q表示lyapunov矩阵代数方程q a
t
q qa-c
t
c=0的唯一解,γ、γ表示中间变量矩阵,表示中间变量矩阵的导数,x、y、θ表示状态向量、输出向量与参数向量,表示状态向量与参数向量的估计值,表示状态向量与参数向量的估计值,表示状态向量与参数向量估计值的导数。
[0073]
基于同一发明构思,本发明实施例还提供一种建立工况监测模型的装置,包括:
[0074]
训练集生成模块,用于将获得的多组工况钻井数据生成样本集,从所述样本集中抽取多组工况钻井数据作为训练集;
[0075]
工况监测模型生成模块,用于使用所述训练集对深度置信网络dbn模型进行训练,直至达到预设终止条件,得到工况监测模型。
[0076]
基于同一发明构思,本发明实施例还提供一种工况监测装置,包括:
[0077]
待测工况数据获取模块,用于获得待测工况时刻或时间段对应的立压、回压、出口流量和流量差,生成待测工况数据;
[0078]
工况标签输出模块,用于将所述待测工况数据输入如权利要求1-7任一所述方法建立的工况监测模型,得到待测工况数据的工况标签;
[0079]
工况判断模块,用于根据预设的工况标签和工况的对应关系和所述待测工况数据的工况标签,判断出所述待测工况数据对应的工况。
[0080]
第三方面,本发明实施例提供一种工况控制模型建立方法,包括:
[0081]
在深度q网络dqn模型的回放缓冲区积累多组与钻井工况有关的状态-动作数据;
[0082]
在源任务中,使用所述多组状态-动作数据对所述dqn模型进行预训练,直到奖励累积值曲线收敛;
[0083]
通过对预训练完成的dqn模型的q值重用,将源任务获得的知识迁移到目标任务中;
[0084]
在目标任务中,将钻井工况有关的历史数据和经验数据存入所述回放缓冲区,对所述dqn模型进行训练,直到奖励累积值曲线收敛,得到包括工况控制策略的控制模型。
[0085]
在一些可选的实施例中,所述在深度q网络dqn的回放缓冲区积累多组状态-动作数据,包括:
[0086]
按照下述方式分别将每组状态-动作数据保存至回放缓冲区中:
[0087]
从获取的控压钻井过程数据中选择预设类别的数据及对应的工况,作为观测数据,以任意时刻的观测数据作为所述时刻的状态s
t

[0088]
根据预设的策略从预设区间选取回压变化值,作为所述状态对应的动作a
t

[0089]
将所述状态s
t
及其对应的动作a
t
,输入溢漏模型,得到状态s
t 1

[0090]
根据所述dqn模型的奖励函数,得到所述状态s
t
和所述动作a
t
对应的奖励r
t

[0091]
将一组状态-动作数据(s
t
,a
t
,s
t 1
,r
t
)保存至回放缓冲区中。
[0092]
在一些可选的实施例中,所述在源任务中,使用所述多组状态-动作数据对深度q网络dqn模型进行预训练,直到奖励累积值曲线收敛,包括:
[0093]
从回放缓冲区的状态-动作数据中,随机抽取一个批次batch的数据使用于神经网络的训练,利用奖励值更新当前状态下选择的动作所对应的神经网络输出值,将所述神经网络输出值与上一时刻的神经网络输出值构建均方误差mse损失函数,通过梯度下降法,反向传播更新神经网络参数,直至奖励累积值曲线收敛。
[0094]
在一些可选的实施例中,所述得到包括工况控制策略的控制模型之后,包括:
[0095]
每隔预设时间,把根据所述工况控制策略得出的动作叠加小于预设阈值幅值的噪声,生成新动作,并使用所述新动作更新所述工况控制模型中的工况控制策略。
[0096]
第四方面,本发明实施例提供一种工况控制方法,包括:
[0097]
将获得的实时工况钻井数据输入如前述方法建立的工况控制模型,得到所述实时工况钻井数据对应的动作;
[0098]
根据所述动作,调整回压。
[0099]
基于同一发明构思,本发明实施例还提供一种建立工况控制模型的装置,包括:
[0100]
预训练模块,用于在深度q网络dqn模型的回放缓冲区积累多组与钻井工况有关的状态-动作数据;在源任务中,使用所述多组状态-动作数据对所述dqn模型进行预训练,直到奖励累积值曲线收敛;
[0101]
经验数据训练模块,用于通过对预训练完成的dqn模型的q值重用,将源任务获得的知识迁移到目标任务中;在目标任务中,将钻井工况有关的历史数据和经验数据存入所述回放缓冲区,对所述dqn模型进行训练,直到奖励累积值曲线收敛,得到包括工况控制策略的控制模型。
[0102]
基于同一发明构思,本发明实施例还提供一种工况控制装置,包括:
[0103]
动作输出模块,用于将获得的实时工况钻井数据输入如权利要求13-16任一所述方法建立的工况控制模型,得到所述实时工况钻井数据对应的动作;
[0104]
压力调整模块,用于根据所述动作,调整回压。
[0105]
基于同一发明构思,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现前述工况监测模型建立方法或工况监测方法或工况控制模型建立方法或工况控制方法。
[0106]
基于同一发明构思,本发明实施例还提供一种终端设备,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述工况监测模型建立方法或工况监测方法或工况控制模型建立方法或工况控制方法。
[0107]
本发明实施例提供的上述技术方案的有益效果至少包括:
[0108]
本发明提供了一种工况监测模型建立方法及其应用方法和装置,通过使用多组工况钻井数据组成的训练集对dbn模型训练,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0109]
进一步地,通过感知算法计算得到井底钻头流量,进而得到流量差,方便在不具备相应测量条件的井获取流量差数据,降低了工况监测成本,提高了数据准确性,适用更广泛。经过ica处理的数据在通dbn模型进行分类时准确率高,算法运行速度快,pso优化dbn模
型后的网络结构去除了多余的神经元,能够更好的提取独立主元数据信息,提高算法运行速度与准确率,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0110]
本发明提供了一种工况控制模型建立方法及其应用方法和装置,将深度强化学习dqn模型与经验数据融合,学习并模拟工程师的操作行为进而获取更优控制策略,实现了控制模型对经验数据的有效利用,有助于提高使用控制模型对工况进行控制的效率和准确性,通过迁移学习采用了预训练过程中的知识来进行q值更新,工况控制策略选择非最优动作的概率大大降低,找到较优动作的过程被加快,有助于及时对工况做出控制响应。
[0111]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0112]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
[0113]
附图使用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起使用于解释本发明,并不构成对本发明的限制。在附图中:
[0114]
图1为本发明实施例中一种工况监测模型建立方法流程图;
[0115]
图2为本发明实施例中钻井过程中实际的出入口流量曲线图;
[0116]
图3为本发明实施例中经过ica处理后得到4个独立主元向量曲线图;
[0117]
图4为本发明实施例中训练数据独立主元曲线图;
[0118]
图5为本发明实施例中dbn模型结构示意图;
[0119]
图6为本发明实施例中pso优化过程目标函数收敛过程图;
[0120]
图7为本发明实施例中测试数据独立主元曲线图;
[0121]
图8为本发明实施例中参数未经pso优化的工况分类结果图;
[0122]
图9为本发明实施例中经过pso优化的工况分类结果图;
[0123]
图10为本发明实施例中一种工况监测方法流程图;
[0124]
图11为本发明实施例中一种工况控制模型建立方法流程图;
[0125]
图12为本发明实施例中源任务dqn模型预训练结构示意图;
[0126]
图13为本发明实施例中迁移学习q值重用示意图;
[0127]
图14为本发明实施例中目标任务dqn模型训练结构示意图;
[0128]
图15为本发明实施例中源任务奖励累计曲线图;
[0129]
图16为本发明实施例中目标任务的奖励累计曲线图;
[0130]
图17为本发明实施例中工况控制效果图;
[0131]
图18为本发明实施例中一种工况控制方法流程图。
具体实施方式
[0132]
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0133]
为了解决现有技术中存在的的问题,本发明实施例提供了一种工况监测和控制模型建立方法及其应用方法和装置。
[0134]
实施例一
[0135]
本发明实施例一提供一种工况监测模型建立方法,其流程如图1所示,包括如下步骤:
[0136]
步骤s101:将获得的多组工况钻井数据生成样本集,从所述样本集中抽取多组工况钻井数据作为训练集。
[0137]
在一些可选的实施例中,将获得的不同时刻或不同时间段对应的多组工况钻井数据,生成样本集,所述样本集中的每个样本数据,包含有与所述时刻或时间段对应的立压、回压、出口流量、流量差和工况标签。其中,不同工况指的是正常钻井、停钻、溢流和漏失等工况。当地层压力大于井底压力时会发生溢流,溢流是地层的气体、液体侵入井筒环空的过程。溢流包括气侵或者液侵;气侵是气体侵入,是溢流的一种,溢流的流体可以是气体或液体。当地层压力小于井底压力时会发生漏失。
[0138]
立压和回压通过压力表测得,出口流量通过流量计测得,入口流量通过计算得到,流量差由出口流量和入口流量作差得到。为了计算入口流量进而计算出流量差,还需要获得井底压力等多种参数。其中,井底压力可以由pwd压力计测量得到,也可以通过计算得到,但是通过pwd压力计测量的经济成本高,不是所有井都置备了pwd压力计,所以对有条件的井,可以通过测量得到井底压力,对不具有测量设备的井,可以通过计算得到井底压力。
[0139]
流量差由出口流量和入口流量作差得到,除此之外,在一些可选的实施例中,所述流量差通过下述方式获得,使用感知算法计算井底钻头流量;使用对应的出口流量与所述井底钻头流量做差,得到所述流量差。即可以使用出口流量与井底钻头流量的差代替出流量和入口流量的差,作为流量差。例如,计算井底压力、井底钻头流量等工况钻井数据的过程为:
[0140]
根据以下假设条件:钻井液的流动过程视为沿井筒的一维运动;流体是径向均匀的,即同一横截面上的流体性质均匀;钻井液为不可压缩流体;钻井液黏度的变化在动量守恒方程中可以忽略不计,建立水力学模型,如式1所示,
[0141][0142]
井底压力计算方程为:
[0143][0144]
式1、式2中,p
p
、pc、p
bit
分别为立压、回压、井底压力,mpa;q
bit
、q
pump
、q
back
和q
res
分别为井底钻头流量、泵出口流量、回压泵出口流量和地层侵入流量,m3/s;特别指出,当溢流或漏失发生时,q
res
仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。分别表示立压、井底钻头流量、回压的导数;ed、ea分别为钻柱和环空内钻井液的体积模量,mpa;vd、va分为钻柱和环空体积,m3;为环空体积变化量,m3;ma、md分别为环空和钻柱中钻井液流动方向上单位截面密度的积分,kg/m3;aa、ad分别为环空与钻柱的横截面积fa、fd分别为环空和钻柱中钻井液流动方向的摩擦系数,s2/m6;ρd、ρa分别为钻柱和环空中钻井液密度,kg/m3;kc为节流阀的流量系数;zc为节流阀开度,%;p0为大气压,mpa;h为垂直井深,m;g为重力加速度,m/s2。
[0145]
上述公式中m、fa的计算与环空中密度和摩擦系数有关,由于假设中对其进行一定程度的简化,因此选取未知参数θ1、θ2如下
[0146][0147][0148]
对式1进行如下坐标变换,
[0149]
p

p
=p
p
[0150][0151][0152]
根据式1-4将水力学模型转化为状态空间形式,
[0153][0154]
y=cx
ꢀꢀ
式5
[0155]
其中
[0156]
[0157][0158]
式6中u表示钻井过程中的可操作变量。
[0159]
根据式5-6建立如下感知算法对θ1、θ2、q
bit
进行计算,
[0160][0161]
其中ρ表示调节参数,δ表示仅与ρ有关的矩阵,q表示lyapunov矩阵代数方程q a
t
q qa-c
t
c=0的唯一解,γ、γ表示中间变量矩阵,表示中间变量矩阵的导数,x、y、θ表示状态向量、输出向量与参数向量,表示状态向量与参数向量的估计值,表示状态向量与参数向量的估计值,表示状态向量与参数向量估计值的导数。
[0162]
在实际应用时,将某时刻地面采集的立压p
p
、回压pc作为初始值,将θ1、θ2、q
bit
初始值设为零,由该感知算法即式7可计算出不确定参数θ1、θ2与状态q
bit
,进一步由出口流量的实测数据与井底流量q
bit
做差代替出入口流量差,以表征井底到井口段的流量差。
[0163]
将每组所述工况钻井数据,构成样本集。在不同工况时间段内,将获得的立压、回压、出口流量和流量差,加上对应的工况标签,形成一组工况钻井数据。将通过上述方法获得的多组工况钻井数据作为样本集。从所述样本集中抽取多组工况钻井数据作为训练集。此外,也可以从所述样本集中抽取多组工况钻井数据作为测试集,使用来测试训练完成的监测模型的工况判断准确率。
[0164]
例如,图2表示钻井过程中实际的出入口流量数据,分析可知正常工况共有两段:(0s-650s)以及(900s-2600s);7600s以后则是停钻工况(入口流量变为零)。同时可以清楚地看出至少在(3400s-5700s)以及(5870s-7600s)之间,出口流量明显大于入口流量,即钻井过程发生了气侵现象,而前者应当属于气侵发生未采取措施阶段,后者则为采取相关抑制手段后的气侵阶段,因此将两者视作两个不同工况。将该段数据分为四个工况,同时为了区分不同工况,需设置对应的工况标签。
[0165]
工况一:(0s-650s)和(900s-2600s),数据标签为(0,0,0,1);
[0166]
工况二:(7600s-9000s),数据标签为(0,0,1,0);
[0167]
工况三:(3400s-5700s),数据标签为(0,1,0,0);
[0168]
工况四:(5870s-7600s),数据标签为(1,0,0,0)。
[0169]
另外,训练集数据组成为:工况一和工况二各任意连续选取200组数据;工况三和工况四各任意连续选取500组数据,一共1400组训练数据。类似的,漏失与溢流具备共通之处,只是漏失下参数的变化规律与溢流时稍有不同,例如,规定当漏失发生时,q
res
的数值与溢流符号相反,此时同样可以利用ica处理立压、回压、出口流量、流量差等数据,再次使用dbn网络进行训练,此时工况标签增加一维即(1,0,0,0,0),保证了该方法同样适使用于漏失工况的判断。
[0170]
步骤s102:在一些可选的实施例中,在使用所述训练集对深度置信网络dbn模型进行训练之前,对所述训练集做独立主元分析ica,得到独立主元的集合,使用独立主元的集合作为更新的训练集。
[0171]
经过ica处理后,将提取出的独立主元作为训练集,输入dbn模型。
[0172]
由于钻探过程中可以获取大量的测量数据,如立压、回压、出入口流量等数据,这些变量往往具有冗余或耦合性,一般不是相互独立的。利用ica方法对这些测量变量进行处理,ica方法的本质就是将多种类的复杂数据转化为较少种类的独立成分数据,转化后独立成分数据的统计依赖性较小,为后续监测模型的提供更高质量的训练数据。不经过ica处理的数据在进行dbn分类时误判率高,算法运行速度慢,反之,经过ica处理的数据在进行dbn分类时准确率高,算法运行速度快。
[0173]
例如,求解独立主元的一个普遍方法为fastica,其具体步骤如下:
[0174]
fastica步骤1:将工况钻井数据作为对观测数据f进行预处理,预处理包括数据白化与标准化,白化的目的是去除输入数据的冗余信息。得到数据z;
[0175]
fastica步骤2:选取独立成分个数n,令计数器c=1;例如,根据实际情况,这里有立压、回压、出口流量、流量差四组数据,可以先假设其是相互独立的,选择4个独立成分个数,然后进入算法的循环步骤,步骤7、8会对独立成分个数进行限制。
[0176]
fastica步骤3:随机选取标准化的初始随机矢量值w0;
[0177]
fastica步骤4:取wc=e{zg(w
ct
z)}-e{g(w
ct
z}}w0,g是选取好的已知函数;其中,e表示期望;g一般在算法流程中选择简单的非线性函数,如y3[0178]
fastica步骤5:正交化
[0179]
fastica步骤6:标准化wc=wc/||wc||;
[0180]
fastica步骤7:若|w
ct
wc|

1,则输出wc,否则返回fastica步骤4;其中,

1表示趋近于1。
[0181]
fastica步骤8:令c=c 1。若c≤n,则返回随机选取标准化的初始随机矢量值w0,否则输出最终结果。
[0182]
由此可得矩阵wc,进一步可得独立分量的估计值s=wcx,其中x表示立压、回压、出口流量、流量差四种数据所构成的矩阵。其中,s为向量,按照预设的分解方式,把s分解为多个的单行或单列向量,得到独立主元s1、s2、s3和s4。s的计算值参考图3,立压、回压、出口流量和流量差数据经过ica处理后可以得到4个独立主元向量(分别为s1,s2,s3,s4),对应图2
的时间段,每一时刻的观测数据f可以计算出一个s,每个s可以分解出一组独立主元s1、s2、s3和s4,所以对应不同时刻,可以分解出多组独立主元s1、s2、s3和s4。
[0183]
例如,将前述训练集中的1400组训练数据,进行ica处理,输出的独立主元如图4所示,对应每一秒,有一组训练数据,每一组训练数据可以计算得到一个s,每一个s可以分解为四个独立主元训练数据s1、训练数据s2、训练数据s3和训练数据s4。
[0184]
步骤s103:在一些可选的实施例中,在使用所述训练集对深度置信网络dbn模型进行训练之前,随机初始化粒子群优化算法pso参数。
[0185]
在解空间中对粒子群初始化。例如,pso参数设置为:空间维度为2;初始种群数为50;最大迭代次数为50;w取值为0.8;c1和c2的取值为0.5;网络单层神经元数优化区间为2-100层,学习率优化区间为1-5。dbn模型采用两个rbm,即含有两个隐藏层,未优化前隐藏层内神经元数目设为100,学习率设为2。
[0186]
步骤s104:使用所述训练集对深度置信网络dbn模型进行训练。
[0187]
在一些可选的实施例中,将所述训练集输入深度置信网络dbn模型底层,进行受限玻尔兹曼机rbm无监督逐层预训练,直到完成所有rbm训练;利用反向传播算法(back propagation,bp)对所述深度置信网络dbn模型参数进行调整,对所述深度置信网络dbn模型进行有监督的训练。
[0188]
图5为dbn模型的具体结构,dbn的训练由无监督rbm逐层预训练和有监督的微调两个过程组成,图中w0、w1和w2为层间传递的值。rbm经过了无监督逐层学习之后,可以直接把数据从输入映射到输出,就能够学习复杂函数。学习开始时,在首个rbm的可见层输入向量,通过rbm网络将值传递到隐藏层,然后利用隐藏层重构可见层,根据重构层和可见层的差异去更新隐藏层和可见层之间的权重,直到达到最大的迭代次数。把得到的隐藏层作为可见层,通过逐层堆叠,深度增加的同时可以从原始数据中逐层提取特征,获得一些高层次表达。逐层训练rbm的方法避免了整体训练dbn带来的复杂运算,其将dbn模型逐层演变成一个浅层神经网络。
[0189]
在结束无监督预训练后,对dbn进行有监督学习,此时利用反向传播算法bp对dbn的相关参数进行细微调整。通过对dbn进行有监督的训练将进一步减小训练误差和提高dbn分类模型的准确度。与无监督学习中每次训练一层相比,bp过程同时对所有层的参数进行更新。
[0190]
为了区分不同工况,需在输出层设置工况标签(即输出层神经元的输出数据,取值为0或1)。
[0191]
若进行了步骤s103,则执行步骤s105,否则执行步骤s106。
[0192]
步骤s105:在一些可选的实施例中,在每次所述使用所述训练集对深度置信网络dbn模型进行训练之后,更新所述pso参数中的粒子速度和位置。
[0193]
为了减少dbn中rbm的重构误差以及dbn自身微调误差,优化dbn内部隐藏层结构,采使用粒子群优算法对相关dbn参数进行优化。
[0194]
根据下式更新粒子的速度以及位置;
[0195][0196]
xi(t 1)=xi(t) vi(t 1)
ꢀꢀ
式8
[0197]
其中,w是惯性权重,决定了粒子对当前速度的集成能力,在0-1之间选择合适的w
可以让算法的广域搜索能力以及局部搜索能力得到均衡,例如,可将w选为0.8;c1是自我学习因子,表征粒子对于自我经验的学习能力,较大的c1值将使得加强算法搜索能力,同时将减缓算法收敛速度甚至导致算法不稳定;c2是群体学习能力,表征粒子对于群体经验以及全局最优解的适应能力,较大的c2值将加快算法收敛速度,但也可能导致算法限于局部最优解。表示局部最优解;表示全局最优解,t表示当前时刻;xi表示粒子i的位置信息;vi表示粒子i的速度信息,该粒子将根据局部最优以及全局最优解相应的调整自身的速度方向和大小。
[0198]
计算粒子的适应度,局部最优解以及全局最优解;
[0199]
步骤s106:判断是否达到预设终止条件,若达到预设终止条件,则终止训练,得到工况监测模型,否则执行步骤s104。
[0200]
终止条件可设为达到最大迭代次数或是连续多次迭代结果不变,可以是达到其中任一条件就终止,也可以两个条件都满足才终止。本实施中,设定最大迭代次数和目标函数,满足达到最大迭代次数或目标函数收敛两个条件中的任一个,就认为达到终止条件。
[0201]
例如,为使得rbm重构误差e
rbm
与dbn微调误差e
dbn
的和接近于零,以dbn隐藏层神经元数以及学习率为粒子,设置e
rbm
与e
dbn
和的负数为目标函数,即:f(v)=min{-(e
rbm
e
dbn
)}。rbm重构误差指的是以训练样本作为初始状态,经过rbm模型的分布进行一次吉布斯(gibbs)采样后与原数据的差异值。dbn重构误差指的是以训练样本作为初始状态,经过dbn模型的分布进行一次吉布斯(gibbs)采样后与原数据的差异值。
[0202]
当迭代完成,即可求出能够使rbm重构误差与dbn微调误差和最趋近于零的隐藏层神经元数与学习率。该实例中pso参数设置为:空间维度为2;初始种群数为50;最大迭代次数为50;w取值为0.8;c1和c2的取值为0.5;网络单层神经元数优化区间为2-100层,学习率优化区间为1-5。终止条件为迭代次数达到50次,或目标函数收敛,上述两个条件任一达到即终止。本次优化的目标是使得rbm重构误差与dbn重构误差的和趋近于零,而在进行了50步迭代之后,模型训练完成,pso优化算法求得的区间隐藏层神经元数为4,区间学习率为1,目标函数的最小值为-0.12205,此时rbm重构误差为0.098873,dbn重构误差为0.023177。在50次迭代中,目标函数的变化如图6所示,由于目标函数取为rbm重构误差与dbn重构误差和的负数,随着优化的进行,目标函数值越来越大,反过来即是目标函数值越来越接近于零,直至达到终止条件,第50次迭代中的目标函数值达到最大值-0.12205。
[0203]
若未达到预设终止条件,返回继续执行步骤s104。若达到预设终止条件,终止训练,得到监测模型。
[0204]
将经过上述步骤训练出的模型作为监测模型,可将待测工况数据输入监测模型,得到模型输出的工况标签,从而判断待测工况。
[0205]
可从样本集中抽取测试数据,作为测试集,对监测模型的判断准确率进行测试。例如,如前所述,测试集数据组成为:工况一、工况三和工况四各选取100组数据,工况二选取200组数据,一共500组测试数据。将500组测试数据,进行ica处理,输出的独立主元如图7所示,对应每一秒,有一组测试数据,每一组测试数据可以计算得到一个s,每一个s可以分解为四个独立主元测试数据s1、测试数据s2、测试数据s3和测试数据s4。
[0206]
为了测试ica的技术效果,分别将经过ica处理的测试数据和不经过ica处理的测试数据,输入dbn模型进行分类。经过测试,不经过ica处理的数据在进行dbn分类时误判率
高,算法运行速度慢。
[0207]
为了测试pso优化的技术效果,将训练数据分别输入经过pso优化的dbn模型和未经过pso优化的dbn模型,分别进行训练,然后用测试集分别测试两种dbn模型分类结果。
[0208]
未经过pso优化的dbn模型的rbm重构误差为10.08872,dbn重构误差为0.003953,参照图8所示,工况判断准确率为90%,工况判断准确率为测试集中分类准确的数据量占总数据量的比重,显然dbn参数未经pso优化时,rbm误差为10.08872,误差较大,工况分类结果中仍然存在少许误判,分类效果不够好。
[0209]
pso优化算法求得的区间隐藏层神经元数为4,区间学习率为1。根据pso优化对dbn参数进行重新设定隐藏层神经元数据为4,学习率为1,独立主元数据、训练数据以及测试数据维持不变,对dbn模型进行训练,并用测试集测试。经过pso优化的dbn模型rbm重构误差为0.098873,dbn重构误差为0.02201,工况分类效果参照图9所示,此情况为经过pso优化后的dbn模型,输出的分类结果与测试集中测试数据的工况完全对应,工况判断准确率为100%。经测试可见,pso优化后的dbn模型工况判断准确率明显提高。
[0210]
pso优化dbn模型后的网络结构去除了多余的神经元,能够更好的提取独立主元数据信息,提高算法运行速度与准确率,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0211]
本实施例中,通过使用多组工况钻井数据组成的训练集对dbn模型训练,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0212]
进一步地,通过感知算法计算得到井底钻头流量,进而得到流量差,方便在不具备相应测量条件的井获取流量差数据,降低了工况监测成本,提高了数据准确性,适用更广泛。经过ica处理的数据在通dbn模型进行分类时准确率高,算法运行速度快,pso优化dbn模型后的网络结构去除了多余的神经元,能够更好的提取独立主元数据信息,提高算法运行速度与准确率,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0213]
实施例二
[0214]
本发明实施例二提供一种工况监测方法,其流程如图10所示,包括如下步骤:
[0215]
步骤s201:获得待测工况时刻或时间段对应的立压、回压、出口流量和流量差,生成待测工况数据。待测工况数据中的立压、回压、出口流量和流量差获得可参照工况钻井数据的获得方法,具体方法在实施例一中已有介绍。其中,通过感知算法计算得到井底钻头流量,进而得到流量差,方便在不具备相应测量条件的井获取流量差数据,降低了工况监测成本,提高了数据准确性,适用更广。
[0216]
在一些可选的实施例中,使用感知算法计算井底钻头流量;使用对应的出口流量与所述井底钻头流量做差,得到所述流量差。具体方法在实施例一中已有介绍。
[0217]
在一些可选的实施例中,使用感知算法计算井底钻头流量,包括:
[0218]
建立水力学模型,如式1所示,
[0219][0220]
[0221][0222]
井底压力计算方程为:
[0223][0224]
m=ma md[0225][0226][0227]
式1、式2中,p
p
、pc、p
bit
分别为立压、回压、井底压力,mpa;q
bit
、q
pump
、q
back
和q
res
分别为井底钻头流量、泵出口流量、回压泵出口流量和地层侵入流量,m3/s;特别指出,当溢流或漏失发生时,q
res
仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。仅在符号上有差别,溢流发生时规定为正号,漏失发生时规定为负号。分别表示立压、井底钻头流量、回压的导数;ed、ea分别为钻柱和环空内钻井液的体积模量,mpa;vd、va分为钻柱和环空体积,m3;为环空体积变化量,m3;ma、md分别为环空和钻柱中钻井液流动方向上单位截面密度的积分,kg/m3;aa、ad分别为环空与钻柱的横截面积fa、fd分别为环空和钻柱中钻井液流动方向的摩擦系数,s2/m6;ρd、ρa分别为钻柱和环空中钻井液密度,kg/m3;kc为节流阀的流量系数;zc为节流阀开度,%;p0为大气压,mpa;h为垂直井深,m;g为重力加速度,m/s2。
[0228]
上述公式中m、fa的计算与环空中密度和摩擦系数有关,由于假设中对其进行一定程度的简化,因此选取未知参数θ1、θ2如下
[0229][0230][0231]
对式1进行如下坐标变换,
[0232]
p

p
=p
p
[0233][0234][0235]
根据式1-4将水力学模型转化为状态空间形式,
[0236][0237]
y=cx
ꢀꢀ
式5
[0238]
其中
[0239][0240][0241]
式6中u表示钻井过程中的可操作变量。
[0242]
根据式5-6建立如下感知算法对θ1、θ2、q
bit
进行计算,
[0243][0244]
其中ρ表示调节参数,δ表示仅与ρ有关的矩阵,q表示lyapunov矩阵代数方程q a
t
q qa-c
t
c=0的唯一解,γ、γ表示中间变量矩阵,表示中间变量矩阵的导数,x、y、θ表示状态向量、输出向量与参数向量,表示状态向量与参数向量的估计值,表示状态向量与参数向量的估计值,表示状态向量与参数向量估计值的导数。
[0245]
在实际应用时,将某时刻地面采集的立压p
p
、回压pc作为初始值,将θ1、θ2、q
bit
初始值设为零,由该感知算法即式7可计算出不确定参数θ1、θ2与状态q
bit
,进一步由出口流量的实测数据与井底流量q
bit
做差代替出入口流量差,以表征井底到井口段的流量差。
[0246]
步骤s202:将所述待测工况数据输入如前述方法建立的井筒溢流与漏失风险闭环监测模型,得到待测工况数据的工况标签。
[0247]
可将一组或多种待测工况数据输入监测模型,得到工况标签,工况标签可以是如(0,0,0,1)、(1,0,0,0,0)等形式的数据。
[0248]
步骤s203:根据预设的工况标签和工况的对应关系和所述待测工况数据的工况标签,判断出所述待测工况数据对应的工况。
[0249]
根据建立井筒溢流与漏失风险闭环监测模型时设定的工况标签与工况的对应关系,和所得到工况标签,确定待测工况数据对应的工况。
[0250]
由于使用了前述流量差计算方法计算流量差,并使用前述监测模型进行工况判断,所以本实施例中,通过使用多组工况钻井数据组成的训练集对dbn模型训练,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0251]
进一步地,通过感知算法计算得到井底钻头流量,进而得到流量差,方便在不具备相应测量条件的井获取流量差数据,降低了工况监测成本,提高了数据准确性,适用更广泛。经过ica处理的数据在通dbn模型进行分类时准确率高,算法运行速度快,pso优化dbn模型后的网络结构去除了多余的神经元,能够更好的提取独立主元数据信息,提高算法运行速度与准确率,使得工况监测更为准确快速,有助于提高工况判断的效率和质量。
[0252]
基于同一发明构思,本发明实施例还提供一种建立工况监测模型的装置,包括:
[0253]
训练集生成模块,用于将获得的多组工况钻井数据生成样本集,从所述样本集中抽取多组工况钻井数据作为训练集;
[0254]
工况监测模型生成模块,用于使用所述训练集对深度置信网络dbn模型进行训练,直至达到预设终止条件,得到工况监测模型。
[0255]
基于同一发明构思,本发明实施例还提供一种工况监测装置,包括:
[0256]
待测工况数据获取模块,用于获得待测工况时刻或时间段对应的立压、回压、出口流量和流量差,生成待测工况数据;
[0257]
工况标签输出模块,用于将所述待测工况数据输入前述方法建立的井筒溢流与漏失风险闭环监测模型,得到待测工况数据的工况标签;
[0258]
工况判断模块,用于根据预设的工况标签和工况的对应关系和所述待测工况数据的工况标签,判断出所述待测工况数据对应的工况。
[0259]
实施例三
[0260]
本发明实施例三提供一种工况控制模型建立方法,其流程如图11所示,包括如下步骤:
[0261]
步骤s301:在深度q网络dqn模型的回放缓冲区积累多组与钻井工况有关的状态-动作数据。
[0262]
异常工况指的是正常工况以外的工况,例如,溢流、漏失等工况。当地层压力大于井底压力时会发生溢流,溢流是地层的气体、液体侵入井筒环空的过程。溢流包括气侵或者液侵;气侵是气体侵入,是溢流的一种,溢流的流体可以是气体或液体。当地层压力小于井底压力时会发生漏失。井底压力可通过改变回压进行控制。
[0263]
深度q网络dqn属于强化学习算法中的一种,强化学习是智能体与环境不断交互,从而不断强化自己的决策能力的过程。首先环境(environment,本实施例中可将溢漏模型视为环境)会给智能体(agent,也叫代理)一个状态(state,,本实施例中任意时刻的一组出口流量、流量差、流量差变化率及对应的工况为一个状态),智能体接收到环境给的观测值之后会根据策略(policy,本实施中指输出动作的函数)做出一个动作(action,本实施例中的动作为回压变化值,即不同数量的增大或降低回压的操作),环境接收到智能体给的动作之后会做出一系列的反应,例如对这个动作给予一个奖励(reward),以及给出一个新的观测值。智能体根据环境给予的奖励值去更新自己的策略(policy)。可以说,强化学习的目的就是为了得到最优的策略。策略policy是智能体的行为函数,是一个从状态到动作的映射,它告诉智能体如何挑选下一个动作。一个片段episode由一系列的状态、奖励和动作组成。
[0264]
在一些可选的实施例中,按照下述方式分别将每组状态-动作数据保存至回放缓冲区中:
[0265]
从获取的控压钻井过程数据中选择预设类别的数据及对应的工况,作为观测数
据,以任意时刻的观测数据作为所述时刻的状态st;例如,将任意时刻的一组立压、回压、出口流量、流量差和流量差变化率及对应的工况,作为所述时刻的一个状态state。其中,可根据情况简化状态state中的每组数据,例如,仅用任意时刻的一组流量差、流量差变化率及对应的工况作为所述时刻的一个状态。
[0266]
根据预设的策略从预设区间选取回压变化值,作为所述状态对应的动作at,例如,动作采用a∈a,且a=δp的形式,设为a=[-0.5,-0.1,-0.01,0,0.01,0.1,0.5];其中δp表示回压变化值,a表示一个动作,对一个状态中的回压增大或减少一定的数值,a表示动作的集合。
[0267]
将所述状态st及其对应的动作at,输入溢漏模型,得到状态st 1;
[0268]
溢漏模型为,在式1、式2的基础上,当井底压力大于地层压力时,易发生钻井液漏失,漏失方程如下:
[0269]ql
=k1(p
bit-pe)
ꢀꢀ
式9
[0270]
式1、式2中q
res
由式9中的q
l
替代,当井底压力小于地层压力时,易发生流体进入井筒环空,溢流方程如下:
[0271][0272]
式1、式2中q
res
由式10中的qg替代。
[0273]
k1为漏失系数;k2为溢流系数,p
bit
为井底压力,mpa;pe为地层压力,mpa;k为地层渗透率,10-3
μm2;h为孔隙厚度,m;re为流体供给边界半径,m;rw为井眼半径,m;为平均流体粘度,mpa
·
s;为平均流体偏差系数;t为地层温度,k。
[0274]
根据所述dqn模型的奖励函数,得到所述状态st和所述动作at对应的奖励rt;
[0275]
将一组状态-动作数据(s
t
,a
t
,s
t 1
,r
t
)保存至回放缓冲区中。
[0276]
参照图12所示,其中q-evaluate表示基于当前数据所训练出的深度q网络;q-target是指以当前深度q网络为初始值,增加新数据后更新的网络;损失函数l选取mse衡量准则;θ与θ

表示本次训练与下一次训练后的网络权重,γ表示折扣因子,表示训练过程中总是选取使得q值最大的动作。agent根据当前状态s
t
,根据预设非贪婪策略选择动作a
t
作用于环境(溢出漏模型),使得模型的状态发生改变,变化后的状态记为s
t 1
,并根据奖励函数获得奖励r
t
,此时将数据(s
t
,a
t
,s
t 1
,r
t
)保存至回放缓冲区中,并不断循环此过程,已经存在回放缓冲区的数据称为历史数据。其中,奖励函数reward为1-δ
2-|dq|,δ=y
set-y
t
,y
set
是流量差值设定值,取为0;y
t
是实时流量差值q,dq是流量差值差值变化率。其中,agent就是指深度强化学习算法dqn所训练出的神经网络;关于非贪婪策略,指的是,在策略的选择中,有探索和利用两种原则,探索指的是寻求新的控制动作,但不能保证reward最大,即可能比现在的reward还大,甚至可能更小;利用指在已经用过的控制动作中选择reward最大的那一个,非贪婪策略强调探索,贪婪策略强调利用。
[0277]
步骤s302:在源任务中,使用所述多组状态-动作数据对所述dqn模型进行预训练,直到奖励累积值曲线收敛。
[0278]
在一些可选的实施例中,参照图12所示,从回放缓冲区的状态-动作数据中,随机
抽取一个批次batch的数据使用于神经网络的训练,动作选择方法采用一种非贪婪策略,利用奖励值更新当前状态下选择的动作所对应的神经网络输出值,将所述神经网络输出值与上一时刻的神经网络输出值构建均方误差mse损失函数,通过梯度下降法,反向传播更新神经网络参数,直至奖励累积值曲线收敛。
[0279]
步骤s303:通过对预训练完成的dqn模型的q值重用,将源任务获得的知识迁移到目标任务中。参照图13所示,预训练完成后在目标任务中重用源任务已经学习好的神经网络,早期任务中学到的值函数q
source
被用作新问题的起点,而新的值函数q
target
被用来纠正源值函数中的偏差。源值函数指的是源任务训练完成后,生成的深度q网络中的q值。源状态—动作空间与目标状态—动作空间之间的映射χ
x
(s
target
)=s
source
、χa(a
target
)=a
source
是直接提供给agent的。agent的新价值函数由下式给出:
[0280]
q(s,a)=q
source

x
(s),χa(a)) λq
target
(s,a)
ꢀꢀ
式11
[0281]
式中,λ∈[0,1],表示调节参数。
[0282]
步骤s304:在目标任务中,将钻井工况有关的历史数据和经验数据存入所述回放缓冲区,对所述dqn模型进行训练,直到奖励累积值曲线收敛,得到包括工况控制策略的控制模型。参照图14所示,历史数据结合经验数据被保存至回放缓冲区,对目标任务中重用源任务已经学习好的神经网络采用贪婪策略,选择奖励最大的动作,选择一个批次batch的经验数据对神经网络进行更新,更新结束后生成工况控制策略,将生成的策略用于工况的控制,即agent根据当前环境的状态,根据工况控制策略选择控制动作,进而稳定井底压力并消除异常工况。其中,经验数据是指包括发生气侵后人为操作回压的状态-动作数据;智能体的训练是逐步进行的,训练好的dqn模型用于当前控制,经过一段时间的数据积累重新更新,而数据积累阶段可能会有人为干预。目标任务dqn训练结束后会生成工况控制策略,但这个工况控制策略不是一成不变的,会随着数据的增多利用dqn模型继续更新。
[0283]
在一些可选的实施例中,得到包括工况控制策略的控制模型之后,每隔预设时间,把根据所述工况控制策略得出的动作叠加小于预设阈值幅值的噪声,生成新动作,并使用所述新动作更新所述工况控制模型中的工况控制策略。例如,为了简化agent的学习任务,状态选择为由三个子观测值组成的向量,即s=[q,dq,bool],基于前述给出的出口流量与井底流量差值,子观察值由流量差值q、流量差值变化dq和布尔值bool组成,该布尔值用于判断溢流和漏失两种工况;动作向量(回压)采用a∈a,且a=δp的形式,设为a=[-0.5,-0.1,-0.01,0,0.01,0.1,0.5];动作选择方法采用一种非贪婪策略,为了平衡探索与利用,防止代理(智能体)生成的策略陷入局部最优,初始探索率ε值较高,随着训练的进行,探索率呈指数衰减;奖励函数reward为1-δ
2-|dq|,其中δ=y
set-y
t
,y
set
是流量差值设定值,取为0;y
t
是实时流量差值q;神经网络的输入为状态,输出为每一个动作对应的q值,采用两个隐含层,每个隐含层5个节点的结构,激活函数为relu函数,采用梯度下降法更新神经网络参数。训练过程中不同参数的取值为,为初始探索率ε0为1;探索率衰减因子ξ为0.995;衰减后最小探索率ε
min
为0.05;学习率α为0.001;奖励折扣因子γ为0.9;回放缓冲区大小d为10000;回放缓冲区采样数n为5。
[0284]
对训练过程及控制结果进行阐述,图15、图16分别为源任务及目标任务的奖励累计曲线,纵轴为奖励累计值,横轴为片段episode的数量,片段由一系列的状态、奖励和动作组成。图15的奖励曲线变化趋势表明,开始时agent由于探索率高,选择随机动作的概率大,
因此表现不佳;而随着探索率的不断衰减以及agent对最优控制动作的探索,奖励不断变大,奖励值曲线在整个训练过程中逐渐改善。图16中,通过q值重用采用了预训练过程中的知识来进行q值更新,因此agent并不是从零开始探索随机动作来更新q值生成策略,而是选择回放缓冲区的经验数据或历史数据中对应的动作或者预训练生成策略中的动作,相应地,agent随机选择非最优动作的概率大大降低,该过程被加快,此时奖励变化曲线并非从零开始变化而是奖励始终保持在高水平。参照图17所示,将训练完成后的agent应用于控制,为了验证控制算法的高效与快速,令地层压力进行不同幅度的变化,测试在地层压力发生不同变化时井底压力的跟踪效果,图中曲线p_well表示井底压力,曲线p_earth表示地层压力,井底压力可通过改变回压进行控制。仿真结果表明该控制方法能够通过提升井底压力控制精度,在气侵或漏失发生时可以有效抑制,极大提高了复杂地层异常工况下的井筒压力控制能力。
[0285]
本实施例中,将深度强化学习dqn模型与经验数据融合,学习并模拟工程师的操作行为进而获取更优控制策略,实现了控制模型对经验数据的有效利用,有助于提高使用控制模型对工况进行控制的效率和准确性,通过迁移学习采用了预训练过程中的知识来进行q值更新,工况控制策略选择非最优动作的概率大大降低,找到较优动作的过程被加快,有助于及时对工况做出控制响应。
[0286]
实施例四
[0287]
本发明实施例四提供一种工况控制方法,其流程如图18所示,包括如下步骤:
[0288]
步骤s401:将获得的实时工况钻井数据输入如前述方法建立的工况控制模型,得到所述实时工况钻井数据对应的动作。
[0289]
实时工况钻井数据,指实时的立压、回压、出口流量和流量差,加上对应的工况标签,形成一组实时工况钻井数据。异常工况指的是正常工况以外的工况,例如,溢流、漏失等工况。当地层压力大于井底压力时会发生溢流,溢流是地层的气体、液体侵入井筒环空的过程。溢流包括气侵或者液侵;气侵是气体侵入,是溢流的一种,溢流的流体可以是气体或液体。当地层压力小于井底压力时会发生漏失。井底压力可通过改变回压进行控制。
[0290]
步骤s402:根据所述动作,调整回压。
[0291]
根据工况控制模型输出的动作,即回压变化值,调整回压,进而改变井底压力,使井底压力和地层压力相适应,从而实现对异常工况的控制。
[0292]
本实施例中,将深度强化学习dqn模型与经验数据融合,学习并模拟工程师的操作行为进而获取更优控制策略,实现了控制模型对经验数据的有效利用,有助于提高使用控制模型对工况进行控制的效率和准确性,通过迁移学习采用了预训练过程中的知识来进行q值更新,工况控制策略选择非最优动作的概率大大降低,找到较优动作的过程被加快,有助于及时对工况做出控制响应。
[0293]
基于同一发明构思,本发明实施例还提供一种建立工况控制模型的装置,包括:
[0294]
预训练模块,用于在深度q网络dqn模型的回放缓冲区积累多组与钻井工况有关的状态-动作数据;在源任务中,使用所述多组状态-动作数据对所述dqn模型进行预训练,直到奖励累积值曲线收敛;
[0295]
经验数据训练模块,用于通过对预训练完成的dqn模型的q值重用,将源任务获得的知识迁移到目标任务中;在目标任务中,将钻井工况有关的历史数据和经验数据存入所
述回放缓冲区,对所述dqn模型进行训练,直到奖励累积值曲线收敛,得到包括工况控制策略的控制模型。
[0296]
基于同一发明构思,本发明实施例还提供一种工况控制装置,包括:
[0297]
动作输出模块,用于将获得的实时工况钻井数据输入如前述方法所建立的工况控制模型,得到所述实时工况钻井数据对应的动作;
[0298]
压力调整模块,用于根据所述动作,调整回压。
[0299]
基于同一发明构思,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现前述工况监测模型建立方法或工况监测方法或工况控制模型建立方法或工况控制方法。
[0300]
基于同一发明构思,本发明实施例还提供一种终端设备,其特征在于,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述工况监测模型建立方法或工况监测方法或工况控制模型建立方法或工况控制方法。
[0301]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0302]
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以使用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
[0303]
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
[0304]
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
[0305]
对于软件实现,本技术中描述的技术可使用执行本技术所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
[0306]
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中使用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献