1.一种基于改进人工蜂群算法的注汽锅炉配汽优化方法,其特征在于:这种基于改进人工蜂群算法的注汽锅炉配汽优化方法为一种注汽锅炉在蒸汽驱多个井组中优化分配蒸汽的确定方法,优化注汽锅炉为各井组每天分配的注汽量,实现注汽锅炉配汽方案动态调整;是一种自适应动态重组的极值扰动人工蜂群算法,通过将混沌优化算子、自适应动态重组算子和极值扰动算子一起融合到人工蜂群算法而成,具体包括如下步骤:步骤一:建立蒸汽驱注汽锅炉配汽优化数学模型;
在稠油蒸汽驱中,一个注汽锅炉同时为多个井组连续注入蒸汽,根据质量守恒和能量守恒原理,建立蒸汽驱注汽锅炉配汽优化数学模型,该模型满足以下假设条件:①经过几个蒸汽吞吐周期后,地层压力小于5MPa,适于进行蒸汽驱开采;②驱替过程是均质油藏中的一维流动过程,油层厚度大于10m;③油藏中的流体分为蒸汽区、热流体区、原油富集区、原始油藏区4个区,且各自向前推进,各区之间不存在过渡区,当某一区不存在时,其顺序不会改变;④油藏流体和岩石是不可压缩的,且在流动过程中不发生化学反应;⑤蒸汽区中不存在天然气和蒸汽,只存在不流动油和蒸汽;⑥油藏上下盖层性质相同且只有垂向热损失;以各井组累积油汽比之和为优化目标,建立了目标函数F:Vkp=AkT·hkn·φk (4)式中:F为待优化性能指标函数,fk表示第k个井组n个月累积油汽比;n为蒸汽驱连续注入蒸汽时间,单位为月;num为注汽锅炉同时注入蒸汽的井组数;xki(i=1,2,3,…,n)为第k
3 3
个井组第i个月每天的注汽量,单位为m ;Nkp为第k个井组n个月累积产油量,单位为m ;EkRo
3 3
为第k个井组油的综合驱替系数;Rks为第k个井组溶解气油比,单位为m /m ;Skoi为第k个井3
组原始含油饱和度;ρkoi为第k个井组原始油密度,单位为kg/m ;Vkp为第k个井组孔隙体积,
3 3
单位为m;ρkgsc为第k个井组气体在标准状况下的密度,单位为kg/m ;AkT为第k个井组井网面2
积,单位为m ;hkn为第k个井组油层有效厚度,单位为m;φk为第k个井组孔隙度;EkA为第k个井组面积扫油效率; 为第k个井组油相拟驱替效率;WkJ为第k个井组累积注入蒸汽量,3
单位为m;monthi为第i个月的天数,单位为d;
模型约束条件:
xmin≤xki≤xmax (k=1,2,3,…,num,i=1,2,…,n) (7)
3 3
式中:xmin为井组每天最小注汽量,单位为m ;xmax为井组每天最大注汽量,单位为m ;xki3
为第k个井组第i个月每天的注汽量,单位为m ;GL为注汽锅炉每天提供的总蒸汽量,单位为3
m;
目标函数式(1)和约束条件式(7)、式(8)构成蒸汽驱注汽锅炉配汽方案优化数学模型;
步骤二:获取某稠油油藏区各井组的油藏描述、地层原始条件、地下流体属性、地下岩石属性、注入井、生产井相关参数;
步骤三:设定改进人工蜂群算法参数,所述的改进人工蜂群算法参数包括:种群规模SN,蜜源个数N,维数D,最大迭代次数Iter_Max,限制次数Limit,食物源的取值范围[min,max],雇佣蜂个体极值停滞步数阈值Tid,全局最优值停滞步数阈值Tgd;
步骤四:初始迭代次数iter=0,按照混沌优化算子产生初始解Xi=(xi,1,xi,2,…,xi,D),i=1,2,…,SN;所述的混沌优化算子为:混沌搜索是将混沌状态引入优化变量中,通过施加混沌扰动,使其按系统内在规律进行遍历,公式如下:
yn+1=μ·yn·(1‑yn) (12)式中:μ是混沌吸引子,当μ=4时,系统进入混沌状态,生成混沌变量yn(n=1,2,...),其值在[0,1]区间内变化;
混沌优化算子具体实现过程如下:
步骤1:初始化种群个数N,控制参数μ=4,i=1;
步骤2:随机产生y0=(y01,y02,…,y0D),其中D为优化问题的维数,y0中不能包含0.25、
0.5和0.75这3个数值;
步骤3:按照式(12)生成yi=(yi1,yi2,…,yiD);
步骤4:按照式(13)将yi映射为种群个体Xi=(xi1,xi2,…,xiD);
xi,j=xmin,j+yi,j·(xmax,j‑xmin,j) (13)步骤5:计算i=i+1,判断i>N,满足条件则结束,否则返回步骤3;
步骤五:根据公式(1)计算解Xi(i=1,2,…,SN)的适应度值f(Xi),保存种群最优解Pgbest;
步骤六:雇佣蜂i利用式(9)进行解更新,产生新解Vi,计算适应度值f(Vi);如果新解Vi比Xi好,则Xi=Vi,trial(i)=0;否则原解Xi不变,trial(i)=trial(i)+1;
vi,j=xi,j+φi,j·(xi,j‑xk,j) (9)式中:φi,j是[‑1,1]间的随机数;k∈{1,2,…,SN}是随机选择的一个解,且k≠i;j∈{1,2,…,D}是随机选择的一个维度,trial(i)记录雇佣蜂i的解Xi的适应度值f(Xi)连续limit次没有改变的次数;
步骤七:观察蜂按照轮盘赌选择机制,依据式(10)计算选择概率p(Xi),选出具有较优适应度值的蜜蜂个体,然后由式(9)搜索产生一个新解Vi,计算适应度值f(Vi);如果新解Vi比Xi好,则Xi=Vi,trial(i)=0;否则原解Xi不变,trial(i)=trial(i)+1;
式中:f(Xi)为解Xi的适应度值;
步骤八:如果trial(i)>Limit,则雇佣蜂i被舍弃,变成侦察蜂,利用公式(11)产生一个新的解Xi,trial(i)=0;
xi,j=xmin,j+rand(0,1)·(xmax,j‑xmin,j) (11)式中:rand(0,1)是位于[0,1]间的一个随机数,xmin,j和xmax,j分别是第j维变量的最小值和最大值;
步骤九:执行自适应动态重组算子,保存较好解;所述的自适应动态重组算子为:设雇佣蜂共有m个,每次迭代后,雇佣蜂个体极值修改的个数为s,则公式(14)中η表示整个雇佣蜂的贡献度,
η=s/m (14)该算子依据贡献度η,利用差分算法思想,实现雇佣蜂的自适应动态重组;首先,分别应用公式(15)和(16),确定雇佣蜂重组的个数N和幅度F;然后,随机选择3个雇佣蜂Xi、Xr1和Xr2,应用公式(17)计算Xi重组后雇佣蜂X′i;最后,比较X′i与Xi,保留较好的,N=(1‑η)·m (15)X′i=Xi+F·(Xr1‑Xr2) (17)式(15)和(16)看出贡献度η越小,重组的雇佣蜂个数越多,重组的幅度越大,重组后的新雇佣蜂X′i与原雇佣蜂Xi变化的程度也就越大,帮助跳出局部最优,加快收敛速度;反之,贡献度η越大,重组的雇佣蜂个数越少,重组的幅度也越小,重组后的新雇佣蜂X′i与原雇佣蜂Xi变化的程度也就越小,有助于开采更高精度的解;
步骤十:执行极值扰动算子,保存种群最优解和雇佣蜂个体极值;所述的极值扰动算子为:
极值扰动公式为
式中: 为第i个雇佣蜂的个体极值, 为第i个雇佣蜂扰动后的个体极值;
Pgbest为全局最优值,P′gbest为扰动后全局最优值;tid和tgd分别为雇佣蜂个体极值和全局最优值进化停滞步数;Tid和Tgd分别为雇佣蜂个体极值和全局最优值需要扰动的停滞步数阈值;U(0,1)为均匀分布在[0,1]之间的随机数;
步骤十一:计算iter=iter+1,判断iter>Iter_Max是否满足,若满足则输出最优解,否则跳到步骤六。