本发明涉及井眼轨迹优化技术领域,特别涉及基于改进的多目标粒子群算法的复杂井眼轨迹优化方法。
背景技术:
随着越来越多的油气勘探从内陆转向了深海、荒漠等地区,加上非常规、深水、深层、极地等油气田的数量不断增长,与之相适应的钻井技术、随钻数据采集技术、测井数据综合解释方法及智能优化算法也有了长足的发展。另外,油田开发期间对井网布置要求也日渐提高,井间扫描和防碰已经越来越受到人们的重视。其次,为了进一步增加油田的产量,薄油藏的发展已经进入了一个新的阶段,对井眼轨迹的位置精度要求更高,开发正在向着更深远的目标发展。因而,钻井过程中,实现井眼轨迹的优化和精确控制就显得十分重要。其中,实现井眼轨迹的有效、实时、快速地优化是实现井眼轨迹精确控制,提高中靶率和降低钻井风险的前提。
井眼轨迹优化是在施工之前确定技术路线、施工方案及井口位置的基础上,确定满足工艺要求的井眼轨迹优化目标函数,考虑钻井工具和地层等约束条件下,优选出工具面角、倾斜角、曲率半径、造斜点范围等井眼轨迹参数,以达到提高钻井成功率、节约钻井成本的目的。而现有的井眼轨迹优化主要以单目标优化为主,优化三维井眼轨迹的结果往往和实际钻井需求存在着较大的偏差,如专利号为201710132117.9的专利公布了“基于快速自适应量子遗传算法的复杂井眼轨迹优化方法”,该优化方法只优化了井眼轨迹长度,无法真正的指导实际钻井过程,因此传统的单目标优化已经不能满足实际中井眼轨迹参数的获取,还需要考虑多个优化目标,从而更精确地钻遇油层。
技术实现要素:
为了克服上述现有技术的缺陷,本发明的目的在于提供基于改进的多目标粒子群算法的复杂井眼轨迹优化方法,采用改进的多目标粒子群算法(multi-objectiveparticleswarmoptimizationalgorithm),对个体最优和全局最优位置的选取方式的改进、对粒子施加扰动变异算子,从而避免陷入局部最优、外部集的产生、非支配集的选取方式等,该算法对粒子群算法进行改进,用以优化多目标问题。
为实现上述目的,本发明技术方案是这样实现的:
基于改进的多目标粒子群算法的复杂井眼轨迹优化方法,包括以下步骤:
(1)设置多目标粒子群算法mopso的参数,包括动态惯性权重的最大值和最大值、加速因子、种群规模、最大迭代次数gen。
(2)初始化种群,包括粒子的速度、初始位置、符合约束条件的位置、外部档案、个体最优和全局最优;方位角、倾斜角、狗腿角、曲率半径、各井段实际测量长度、实际垂深、实际控制转矩、套管长度;其中种群中粒子的初始位置随机产生,并将种群的初始位置赋给符合约束条件的初始位置,个体最优和全局最优位置设置为粒子本身。
(3)当种群的初始位置满足约束条件时,计算目标函数值,约束条件包括针对实际复杂井眼轨迹优化问题中的自变量的取值范围、套管长度范围、目标垂直井深非负约束范围、地层中的狗腿角范围以及非负约束,非负约束指的是实际测量深度和垂直深度不能为负,选择井眼轨迹12个几何参数进行优选,实现待优化双目标实际测量深度tmd(truemeasurementdepth,tmd)、实际控制转矩tct(truecontroltorque,tct)达到相对最优,几何参数包括造斜点深度、井斜角和方位角;
其中,目标函数可定义为:
obj_function=min{tmd、tct}
其中:tmd=dkop+d1+d2+d3+d4+d5+hd
tct=t1+t2+t3+t4+t5+t6+t7
s.t.xmin≤x≤xmax(1)
tvdmin≤tvd≤tvdmin
cimin≤ci≤cimax(i=1,2,3)
ds>0(s=1,2,3,4,5)
式(1)中
井眼轨迹各段计算公式定义为:
d2=(dd-dkop-d1×(sinφ1-sinφ0)/(φ1-φ0))/cos(φ1)(3)
d4=(db-dd-d3×(sinφ2-sinφ1)/(φ2-φ1))/cos(φ2)(5)
总的实际测量长度为:
tmd=dk+d1+d2+d3+d4+d5+hd(7)
其中d1,d5是第一、第二增斜段,θ1~θ2:两测点处倾斜角;
增斜段实际测量曲线长度增量为:
式(8)中,r为曲率半径,
各井段受力f1~f7计算如下:
f7=0(13)
f6=f7+bw·hdcosφ3=bw·hdcosφ3(14)
f5=f6+bw·d5(sinφ3-sinφ2)/(φ3-φ2)(15)
f4=f5+bw·d4cosφ2(16)
f3=f4+bw·d3(sinφ2-sinφ1)/(φ2-φ1)(17)
f2=f3+bw·d2cosφ1(18)
f1=f2+bw·d1(sinφ1-sinφ0)/(φ1-φ0)(19)
计算f1~f7对应的转矩t1~t7,其计算式如下:
t1=μrw·dksinφ0(20)
t3=μrw·d2sinφ1(22)
t5=μrw·d4sinφ2(24)
t7=μrw·hd·sinφ3(26)
总的实际控制转矩为:
tct=t1+t2+t3+t4+t5+t6+t7(27)
各段套管长短计算式如下:
c1=dk+d1*sin(θ1)/θ1(28)
各段实际垂深计算如下:
tvddrop=d3*(sin(rad*θ2)-sin(rad*θ1))/((θ2-θ1)*rad)(33)
总的实际垂深为:
式(2)~(36)中,各参数的含义及取值范围如表2所示。由式(2)~(25)计算各井段轨迹的实际测量长度d1~d5、实际受力f1~f7及相应的实际控制转矩t1~t7。式(1)~(36)计算目标函数tmd、tct并保存符合约束条件的最优解,将第一代符合约束条件的最优可行解、最优目标函数值暂存,作为全局最优解、全局目标函数,随着迭代次数的增加,根据式(1)计算目标适应度值tmd和tct,记录当代最优解。
(4)根据式(37)和式(38)更新每一代粒子的位置和速度,若粒子在此过程中超出边界,则采取边界约束;粒子的速度更新方式如式(37)所示。
式(37)中,vpj(t)为t时刻粒子p第j维的速度;psowc1和psowc2是正的加速度常量;r1j(t),r2j(t)为区间[0,1]中产生的随机数;yp表示粒子p当前所到的最优位置;
采用矩阵的方式更新粒子的位置,粒子的速度更新方式如式(38)所示。
xp(t+1)=xp(t)+vp(t+1)(38)
式(38)中,xp(t)为t时刻粒子p的位置,xpj(t)为在t时刻粒子p第j维的位置,且xi~u(xmin,xmax)。
(5)对粒子进行变异操作,采用变异算子作用于mopso中,用以引导粒子的飞行,提升种群跳出局部最优的能力,加强局部和全局搜索力度。在算法搜索一段时间后,减少参与变异的个体数量,进行局部开发采用变异算子对粒子施加扰动,防止粒子陷入局部最优;对于粒子p,粒子的位置变异为:
xp=xp+16*varsig*(1-randr)*vp(39)式(39)中,varsig=±1,表示粒子变异后与原来运动方向是否相同;16为能够使粒子跳出局部最优位置的一个系数;vp为变异概率。
式(40)中,ite为算法当前的代数,gen为算法最大迭代次数。
对于在种群中的每个粒子,产生一个在区间[0,1]中的随机数randr,当randr<randp时,对粒子进行变异操作,否则不进行变异;另外,对粒子进行变异时,需要将超出定义域边界的粒子定义在边界上。
(6)针对满足约束条件的粒子,根据每个粒子的每个目标计算种群中每个粒子的目标函数值;对于不满足约束条件的粒子,若连续四次不满足约束条件时,根据步骤(4)、(5)重新分配粒子的速度和位置,对粒子变异以及边界约束。
(7)更新个体最优算法,从开始迭代到当前最优位置,若当前位置x支配其个体极值位置xp,则更新为当前位置x。
(8)对非支配集nd进行排序,对种群中的每个粒子进行局部最优更新后,保存算法迭代中的非劣解,采用非支配集算法搜索最优个体,而非支配集的选取采用多目标支配关系快速排序。
(9)随着迭代的进行,将每组非劣解与当前非支配集的解进行逐一比较,然后对mopso中外部档案中的非劣解按照目标函数值进行降序排列,减小算法的计算复杂度。
(10)采用动态拥挤距离法对外部档案规模进行动态控制,当外部集ex超出设定好的范围时,采取截断的方法,删除后面的多余个体。
(11)全局最优,从降序排序后的外部档案中的最前部分后选择一个粒子作为全局最优,引导粒子群不断搜索更优的解,保证算法的分布性。
(12)ite=ite+1,如果迭代次数ite<gen,则转到步骤(3)继续进行;否则输出外部集中的粒子,得到算法优化的最优解集,即为井眼轨迹实际测量长度、实际控制转矩达到相对最优。
本发明通过采用支配关系构造外部集,保存种群从开始到现在为止找到的非支配解,引导算法更快地向pareto前端逼近,保持了可行解的分布性。并且引入了变异算子对粒子施加扰动,防止算法陷入局部最优,改进个体最优和全局最优位置的选取方式,设计了多目标粒子群算法mopso,将mopso用于复杂三维井眼轨迹的实际测量深度tmd、实际控制转矩tct的优化,完成多个井眼轨迹最优参数造斜点深度、井斜角和方位角的优选,实现实际钻井条件下的多目标井眼轨迹参数优化,提高钻井成功率,降低钻井成本。
采用mopso实现复杂井眼轨迹优化问题求解的实验结果表明,优化的tmd、tct结果克服了传统的井眼轨迹单目标优化在实钻中和实际钻井需求存在较大偏差的缺陷,满足了实际钻井条件下的多个目标条件下的井眼轨迹参数的获取,将该方法应用智慧钻井过程的井眼轨迹优化,基本满足了井眼轨迹实际参数优化的需求,更加有利于钻井工作人员在钻井井眼轨迹过程的决策,从而更精确的到达油层。通过对井眼轨迹mopso的研究,为进一步实现随钻交互式井眼轨迹多目标动态优化,以及井眼轨迹的精确控制、纠偏、防碰和提高中靶率,实现实际钻井条件下的多目标井眼轨迹参数优化,提高钻井成功率,降低钻井成本奠定理论决策基础。
附图说明
图1是复杂井眼轨迹的垂直横截面。
图2是d1、d5增斜段的三维示意图。
图3是d2、d4稳斜段对应的转矩t3、t5示意图。
图4是d1和d5增斜段对应的转矩t2、t6示意图。
图5是d3降斜段对应的转矩t4示意图。
图6是采用mopso实现三维井眼轨迹的优化结果图。
附表说明
表4是本发明实施后优选井眼轨迹参数与其他智能算法单目标优化结果的比较。
具体实施方式
下面结合附图详细说明本发明的实施方式。
基于改进的多目标粒子群算法的复杂井眼轨迹优化方法,包括以下步骤:
(1)设置多目标粒子群算法mopso的参数,包括动态惯性权重的最大值和最大值、加速因子、种群规模、最大迭代次数gen。
约束条件及自变量约束边界条件如表2所示。
表1mopso的参数设置
表1中,pop为种群规模,expop为外部档案规模,一般取pop=expop;gen为最大迭代次数;在mopso中,psoc1和psoc2为加速因子;psowmax、psowmin为惯性权值的最大值和最小值。
表2井眼轨迹变量约束边界及约束条件
(2)初始化种群,包括粒子的速度、初始位置、符合约束条件的位置、外部档案、个体最优和全局最优;方位角、倾斜角、狗腿角、曲率半径、各井段实际测量长度、实际垂深、实际控制转矩、套管长度;其中种群中粒子的初始位置随机产生,并将种群的初始位置赋给符合约束条件的初始位置,个体最优和全局最优位置设置为粒子本身。
(3)当种群的初始位置满足约束条件时,计算目标函数值,约束条件包括针对实际井眼轨迹优化问题中的自变量的取值范围、套管长度范围、目标垂直井深非负约束范围、地层中的狗腿角范围以及非负约束,非负约束指的是实际测量深度和垂直深度不能为负,选择井眼轨迹12个几何参数进行优选,实现待优化双目标实际测量深度tmd(truemeasurementdepth,tmd)、实际控制转矩tct(truecontroltorque,tct)达到相对最优,几何参数包括造斜点深度、井斜角和方位角;
其中,待优化复杂井眼轨迹的垂直横截面如图1所示。
其中,目标函数可定义为:
式(1)中
图1中,井眼轨迹各段计算公式定义为:
d2=(dd-dkop-d1×(sinφ1-sinφ0)/(φ1-φ0))/cos(φ1)(43)
d4=(db-dd-d3×(sinφ2-sinφ1)/(φ2-φ1))/cos(φ2)(45)
总的实际测量长度为:
tmd=dk+d1+d2+d3+d4+d5+hd(47)
其中d1,d5是第一、第二增斜段,三维示意图如图2所示。θ1~θ2:两测点处倾斜角;
图2中,增斜段实际测量曲线长度增量为:
式(48)中,r为曲率半径,
式(48)曲线段在三维坐标下的增量计算可定义为:
图3~图5中,p1,p2为两个观测点;e1,e2为井筒方向上的单位向量;f1为定向井底部的轴向力,n;f2为定向井顶部的轴向力,n;β为总的角度变化;b为浮力系数,b=0.7;μ为摩擦系数,μ=0.3;w为单位钻具重量w=0.3kn/ft;r为钻杆半径r=10mm。
各井段受力f1~f7计算如下:
f7=0(53)
f6=f7+bw·hdcosφ3=bw·hdcosφ3(54)
f5=f6+bw·d5(sinφ3-sinφ2)/(φ3-φ2)(55)
f4=f5+bw·d4cosφ2(56)
f3=f4+bw·d3(sinφ2-sinφ1)/(φ2-φ1)(57)
f2=f3+bw·d2cosφ1(58)
f1=f2+bw·d1(sinφ1-sinφ0)/(φ1-φ0)(59)
计算f1~f7对应的转矩t1~t7,其计算式如下:
t1=μrw·dksinφ0(60)
t3=μrw·d2sinφ1(62)
t5=μrw·d4sinφ2(64)
t7=μrw·hd·sinφ3(66)
总的实际控制转矩为:
tct=t1+t2+t3+t4+t5+t6+t7(67)
各段套管长短计算式如下:
c1=dk+d1*sin(θ1)/θ1(68)
各段实际垂深计算如下:
tvddrop=d3*(sin(rad*θ2)-sin(rad*θ1))/((θ2-θ1)*rad)(73)
总的实际垂深为:
式(42)~(76)中,各参数的含义及取值范围如表2所示。由式(42)~(75)计算各井段轨迹的实际测量长度d1~d5、实际受力f1~f7及相应的实际控制转矩t1~t7。式(1)~(36)计算目标函数tmd、tct并保存符合约束条件的最优解,将第一代符合约束条件的最优可行解、最优目标函数值暂存,作为全局最优解、全局目标函数,随着迭代次数的增加,根据式(1)计算目标适应度值tmd和tct,记录个体最优解xp、其全局最优xg、个体最优目标函数yp、全局最优目标函数yg;如果满足约束条件,则根据支配关系保存全局最优解xg和全局最优目标函数值yg;否则,保持不变。令ite=ite+1;
(4)根据式(77)和式(78)更新每一代粒子的位置和速度,若粒子在此过程中超出边界,则采取边界约束;根据对改进的mopso的应用研究,速度的大小影响着算法的局部寻优能力,较大的速度对应着较强的全局寻优能力,而较小的速度则有利于粒子局部寻优。在本发明中,mopso采用动态改变的惯性权重psow便于种群保持多样性和搜索能力,增加算法后期开发的能力,粒子的速度更新方式如式(77)所示。
式(77)中,vpj(t)为t时刻粒子p第j维的速度;psowc1和psowc2是正的加速度常量;r1j(t),r2j(t)为区间[0,1]中产生的随机数;yp表示粒子p当前所到的最优位置;
采用矩阵的方式用于更新粒子的位置,粒子的速度更新方式如式(78)所示。
xp(t+1)=xp(t)+vp(t+1)(78)
式(78)中,xp(t)为t时刻粒子p的位置,xpj(t)为在t时刻粒子p第j维的位置,且xi~u(xmin,xmax)。
(5)对粒子进行变异操作。粒子群算法和遗传算法都是应用比较广泛的种群算法,但ga是基于交叉和变异产生新个体,而粒子群算法是通过向个体最优位置和全局最优位置学习产生。针对于这两种算法的优缺点,诸如ga虽然拥有较强的全局搜索能力,但其收敛速度较慢且计算复杂度较大;粒子群算法拥有较快的收敛速度,但当遇到多峰值的问题时,算法极易陷入局部最优解,于是出现了将两者结合的混合算法以改善各自的劣势。
鉴于变异操作在单目标粒子群算法中成功的应用,本发明采用变异算子作用于mopso中,用以引导种群的飞行,提升种群跳出局部最优的能力,加强局部和全局搜索力度。另外,在算法搜索一段时间后,需要减少参与变异的个体数量,进行局部开发采用变异算子对粒子施加扰动,防止粒子陷入局部最优;对于粒子p,粒子的位置变异为:
xp=xp+16*va.rsig(-randr)*vp(79)
式(79)中,varsig=±1,表示粒子变异后与原来运动方向是否相同;16为能够使粒子跳出局部最优位置的一个系数;vp为变异概率。
式(80)中,ite为算法当前的代数,gen为算法最大迭代次数。
对于在种群中的每个粒子,产生一个在区间[0,1]中的随机数randr,当randr<randp时,对粒子进行变异操作,否则不进行变异;另外,对粒子进行变异时,需要将超出定义域边界的粒子定义在边界上。
(6)针对满足约束条件的粒子,需要根据每个粒子的每个目标计算种群中每个粒子的目标函数值;对于不满足约束条件的粒子,若连续四次不满足约束条件时,需要根据步骤(4)、(5)重新分配粒子的速度和位置,对粒子变异以及边界约束。
(7)更新个体最优是算法从开始迭代到当前最优位置的过程,若当前位置x支配其个体极值位置xp,则更新为当前位置x。
(8)对非支配集nd进行排序,对种群中的每个粒子进行局部最优更新后,需要保存算法迭代中的非劣解。为了提高mopso的效率,降低mopso的计算复杂度,本算法采用非支配集算法搜索最优个体,而非支配集的选取采用多目标支配关系快速排序。
具体方法如下:
①选择种群ap中的一个个体apb,通常选取第一个个体,从ap中删除apb;
②比较种群中其它个体与个体apb。此时种群被分成两类,一块为被个体apb支配的个体组成的,另一部分为支配个体apb或者与个体apb不相关的个体组成的;
③若个体apb不被种群中其它个体支配,也就是说个体apb是非支配解,将个体apb放入非支配集nd中;否则不放入;
④从ap中删除第一类个体,如果ap非空,则转到①;
⑤当ap为空时,nd就是所求的非支配集。
这种方法构造非支配集,每次循环开始时的种群都是上次得到的支配个体apb或者与个体apb不相关的个体组成的,而不是整个种群,在进行个体比较时范围缩小,提高了运行速度。
(9)更新外部集ex。随着迭代的进行,将每组非劣解与当前非支配集的解进行逐一比较,然后对mopso中外部档案中的非劣解按照目标函数值进行降序排列,减小算法的计算复杂度。
更新方法为:
①当外部集为空时,也就是当算法刚开始运行时,将非支配集nd中的个体放入外部集ex中;
②当外部集不为空时,选取非支配集nd中的某个个体p,比较外部集ex中的个体与这个个体p,若个体p被外部集ex中的个体支配,则不能将其放入外部集ex中;否则将个体p放入外部集ex中,并删除被个体p支配的那些个体。
③循环直至比较完毕。
(10)采用动态拥挤距离法对外部档案规模进行动态控制。为了维持外部档案的分布性,改善非劣解的分布性和算法全局搜索能力,提高算法的效率需要保持外部档案ex稀疏处的粒子,减小密集处的粒子,需要重新计算拥挤距离,控制外部集的规模。当外部集ex超出设定好的范围时,采取截断的方法,删除后面的多余个体。
拥挤距离计算方法如下:
①初始化设定expop个体拥挤距离dis=0;
②按照第yd个目标函数的值,将ex进行升序排序;
③排序后将首末两个个体的拥挤距离设置为无穷大;
④其他个体p的拥挤距离按式(80)计算。
式(80)中,ex(p,j)为ex中第p个粒子的第j个目标函数值。
⑤改变yd的值,转到②,直到遍历所有的目标维度。
(11)全局最优从降序排序后的外部档案中的最前部分后选择一个粒子作为全局最优,引导着粒子群不断搜索更优的解,保证了算法的分布性。mopso在求解多目标问题时,每次迭代产生一组非劣解。全局最优设置为从外部集的前10%中的个体进行选取。这种全局最优位置的选取方式,对于种群中每个粒子,都有不同的全局最优位置,保证了算法的分布性。
(12)ite=ite+1,如果迭代次数ite<gen,则转到步骤(3)继续进行;否则输出外部集中的粒子,得到算法优化的最优解集,即为井眼轨迹实际测量长度、实际控制转矩达到相对最优。
外部档案ex就是算法得到的最好结果,输出该结果。输出全局最优位置xg和最优目标函数yg。即输出
表3选取的三组最优解
表3是选取的三组全局最优目标函数解。通过对比三组全局最优解可以发现,第2组解中的实际测量长度变化不大,但是实际控制转矩却比第1组解高很多,第3组解中的实际测量长度变小了,但是实际控制转矩却比第2组解高更多,由此可知,钻井井眼轨迹优化过程中的各个参数之间是相互影响、相互制约的。所以,在实际的钻井过程中,当实际测量长度在一定范围内满足实际要求时,选择第1组解作为最优解,即满足实际测量长度的要求,又可以有效地减小实际控制转矩。
为了更进一步的说明改进mopso算法的优化性能,将本发明改进mopso的仿真结果与经典的与ga(shokiretal.al.2004),npso(aminatashnezhad2014)和pso(shokiretal.2004)进行对比分析,具体数据见表4。
表4采用mopso优化井眼轨迹优化结果与其他几种算法单目标优化结果比较
由表4可知,在复杂三维井眼轨迹优化中,采用mopso实现多目标tmd和tct的优化,其优化结果较好,基本保留了单目标优化的结果,满足了实际中多目标优化的需求。
采用mopso实现三维井眼轨迹的优化,tmd、tct的优化结果如图6所示。图6采用mopso实现复杂三维井眼轨迹tmd、tct的优化,横坐标为最优井眼轨迹实际测量长度tmd,纵坐标为最优井眼轨迹实际控制转矩。由图6可知,井眼轨迹参数的两个目标优化问题中的pareto前沿,显示了一个目标函数的值随着另一个目标函数的值的上升而下降。pareto边界并不意味着最低的转矩对应最长的井眼轨迹,或者最短的井眼轨迹对应最大的转矩。两个目标函数之间是非线性的,最优解呈下降趋势。
本发明通过采用支配关系构造外部集,保存种群从开始到现在为止找到的非支配解,引导算法更快地向pareto前端逼近,保持了可行解的分布性。并且引入了变异算子对粒子施加扰动,防止算法陷入局部最优,改进个体最优和全局最优位置的选取方式,设计了多目标粒子群算法mopso,将mopso用于复杂三维井眼轨迹的实际测量深度tmd、实际控制转矩tct的优化,完成多个井眼轨迹最优参数造斜点深度、井斜角和方位角的优选,实现实际钻井条件下的多目标井眼轨迹参数优化,提高钻井成功率,降低钻井成本。
采用mopso实现复杂井眼轨迹优化问题求解的实验结果表明,优化的tmd、tct结果克服了传统的井眼轨迹单目标优化在实钻中和实际钻井需求存在较大偏差的缺陷,满足了实际钻井条件下的多个目标条件下的井眼轨迹参数的获取,将该方法应用智慧钻井过程的井眼轨迹优化,基本满足了井眼轨迹实际参数优化的需求,更加有利于钻井工作人员在钻井井眼轨迹过程的决策,从而更精确的到达油层。通过对井眼轨迹mopso的研究,为进一步实现随钻交互式井眼轨迹多目标动态优化,以及井眼轨迹的精确控制、纠偏、防碰和提高中靶率,实现实际钻井条件下的多目标井眼轨迹参数优化,提高钻井成功率,降低钻井成本奠定理论决策基础。