1.一种天然气水合物钻采井筒压力控制方法,其特征在于,所述方法包括以下步骤:
S100,获取井筒内钻井底部的压力数据;
S200,在天然气水合物的钻采过程中,通过钻机获得钻头的压力数据;
S300,记钻井底部的压力数据为第一数据,记钻头的压力数据为第二数据;
S400,基于第一数据和第二数据,建立压力交互配准曲线;
其中,步骤S400中,基于第一数据和第二数据,建立压力交互配准曲线的方法具体为:S401,以PA(i)作为集合PA[]中的第i个元素,以PB(i)作为集合PB[]中的第i个元素,i为序号,i的取值范围为i=1,2,…,N,初始化一个变量j,变量j的取值范围与序号i的取值范围相同,以PA(j)表示集合PA[]中的第j个元素,PA(j)的值随变量j的值变化而变化;
分别设置一个变量R1和一个变量R2,R1和R2的初始值都设置为0,分别设置两个空白的集合setA{}和setB{},从j=1开始遍历变量j,转到S402;
S402,在集合PB[]中,将所有元素值大于PA(j)的值的元素加入到集合setA{}中,同时将所有元素值小于PA(j)的值的元素加入到集合setB{}中,以N1表示集合setA{}的长度,以N2表示集合setB{}的长度,转到S403;
S403,将变量R1的值增加N1,将变量R2的值增加N2,同时清空集合setA{}以及集合setB{};
如果当前变量j的值小于N,则将变量j的值增加1,并转到S402;如果当前变量j的值等于或大于N,则转到S404;
S404,分别创建一个空白的数组cre[]和一个空白的数组ple[],比较R1的值和R2的值;
如果R1>R2,则在集合PA[]中,选取PA(1),PA(2),…,PA(R)这R个数据加入到数组cre[]中,同时选取集合PB[]中的PB(R+1),PB(R+2),…,PB(N)加入到数组ple[]中;
如果R1
S405,以cre(x)表示数组cre[]中的第x个元素,x为序号,x的取值范围为x=1,2,…,S1,S1为数组cre[]中所有元素的数量;以ple(y)表示数组ple[]中的第y个元素,y为变量,y的取值范围为y=1,2,…,S2,S2为数组ple[]中所有元素的数量;
基于第一压力系数和第二压力系数建立压力交互配准曲线;
其中,所述基于第一压力系数和第二压力系数建立压力交互配准曲线的方法具体为:
记第一压力系数 ,记第二压力系数 ;其
中,H0为数组cre[]中所有元素的平均值,H1为数组ple[]中所有元素的平均值;
建立压力交互配准曲线P_curve(p):
式中,p为曲线的自变量,p的定义域为(0,+∞),K0=R/2。
2.根据权利要求1所述的一种天然气水合物钻采井筒压力控制方法,其特征在于,步骤S100中,获取井筒内钻井底部的压力数据的方法为:在井筒内布置随钻测井仪,通过随钻测井仪中的压力传感器,对井筒内钻井底部的压力进行实时监测,从而获得井筒内钻井底部的实时压力数据,钻井底部即钻机的钻头与井筒的底部所接触的局部地层;或者,通过多参数综合测井系统获得井筒内钻井底部的实时压力数据,或者,通过压力随钻监测系统获得井筒内钻井底部的实时压力数据;将PA(Ti)记为井筒内钻井底部的压力数据。
3.根据权利要求2所述的一种天然气水合物钻采井筒压力控制方法,其特征在于,PA(Ti)的计算方法具体为:在任意一个时段T内,以Ti作为时段T内的第i秒,i为序号,Ti为时刻,以PA(Ti)作为随钻测井仪在时刻Ti所监测到的井筒内钻井底部的压力大小,i的取值范围为i=1,2,…,N,N为时段T的长度,则PA(Ti)=PA(T1),PA(T2),…,PA(TN),将PA(Ti)记为井筒内钻井底部的压力数据。
4.根据权利要求1所述的一种天然气水合物钻采井筒压力控制方法,其特征在于,步骤S200中,在天然气水合物的钻采过程中,通过钻机获得钻头的压力数据的方法具体为:在时段T内,通过钻机内的压力传感器获取钻头的实时压力数据,以PB(Ti)作为钻头在时刻Ti的压力大小,则PB(Ti)=PB(T1),PB(T2),…,PB(TN),将PB(Ti)记为钻头的压力数据。
5.根据权利要求1所述的一种天然气水合物钻采井筒压力控制方法,其特征在于,步骤S300中,记钻井底部的压力数据为第一数据,记钻头的压力数据为第二数据的方法具体为:分别创建一个空白的集合PA[]和一个空白的集合PB[];将钻井底部的压力数据PA(T1),PA(T2),…,PA(TN)全部加入到集合PA[],将钻头的压力数据PB(T1),PB(T2),…,PB(TN)全部加入到集合PB[]中,则集合PA[]和集合PB[]的长度都为N;记集合PA[]为第一数据,记集合PB[]为第二数据。
6.根据权利要求1所述的一种天然气水合物钻采井筒压力控制方法,其特征在于,R个数据,其中,R的计算方法具体为:R=INT(max{R1,R2}/N),max{}表示对{}内的数取最大值,INT()表示对()内的数进行向下取整。