Soft_slide_Fe

Contents

Soft_slide_Fe#

dl 可以改 论文里是 1 5 10 30 60 目前是 1

clc;clear;close all;
cd("D:\桌面\毕设\材料\摩阻扭矩\MATLAB")
trajectory_parameters = xlsread('LH11-1-B4H3.xlsx','轨道','A2:C10000');       % 读取轨道数据,依次为井深、井斜角、井斜方位角
pipe_parameters = xlsread('LH11-1-B4H3.xlsx','管柱数据','C5:G16');      % 读取套管柱数据,依次为内径,外径,接头外径,强度,长度
well_parameters = xlsread('LH11-1-B4H3.xlsx','井身结构','A2:C3');     % 读取井身结构数据,依次为1上层导管下入深度,2上层套管内径,3井眼直径
drill_parameters = xlsread('LH11-1-B4H3.xlsx','钻进数据','A2:G10000');       % 读取钻进数据,依次为1井深,2钻压,3钻头扭矩,4转速,5管柱运动速度,6排量,7钻井液密度
HK_TOR = xlsread('LH11-1-B4H3.xlsx','测量值','A2:C1000');       % 读取1井深2钩载3转盘扭矩
%% 滑动钻进
[alpha,k,kal,kph,tau,dk_ds,tz,nz,bz,dalpha_ds,dpha_ds]=traj_para_linear(trajectory_parameters);      % 自定义函数计算插值后的计算轨迹参数
[m,n] = size(drill_parameters );      % 钻进数据长度
depth_start = ceil(drill_parameters(1,1));        % 钻进开始井深
depth_end = floor(drill_parameters(m,1));         % 钻进开始井深
mu1 = 0.1566;
mu2 = 0.2697;
mu_cal = [mu1,mu2];
dL = 1;
for i = 1:m
    depth_i = drill_parameters(i,1);        % 钻进井深
    if depth_i <= 3717
        pipe_parameters_i = pipe_parameters(1:5,:);
        well_parameters_i = well_parameters(1,:);
    else
        pipe_parameters_i = pipe_parameters(6:10,:);
        well_parameters_i = well_parameters(2,:);
    end
    drill_parameters_i = drill_parameters(i,:);
    [Fe,wc] = drill_slide_soft_cal_Fe(depth_i,pipe_parameters_i,well_parameters_i,drill_parameters_i,alpha,k,tau,dk_ds,tz,nz,bz,mu_cal,dL,0);
    Hookload(i,:) = Fe(1)/1000;     % 记录相应深度处的大钩载荷值
    depth_cal(i,:) = depth_i;
    WC(i,:)=wc(1)/1000;
end
figure('Name','大钩载荷');

plot(depth_cal,Hookload,'r');
hold on;
xlabel('井深'); % x轴标签
ylabel('管柱轴向力');
legend("管柱轴向力计算值")
hold off;
figure('Name','屈曲接触力');
plot(depth_cal,WC,'b')
hold on;
xlabel('井深'); % x轴标签
ylabel('屈曲接触力');
legend("屈曲接触力")
hold off;
_images/2f390857f7752615c6184fd0b72119fa8cc239291a9648c22107706c0bd5323e.png _images/3cacc056d650393dcdcdafd4f8cd7a2ecf6f8378a554d6864dce2db0d96f44a0.png

管柱轴向力#

function [Fe,wc] = drill_slide_soft_cal_Fe(depth_i,pipe_parameters_i,well_parameters_i,drill_parameters_i,alpha,k,tau,dk_ds,tz,nz,bz,mu_cal,dL,op)       % 大钩载荷计算函数
depth_i = floor(depth_i);           % 轴向力和扭矩计算井深
if depth_i == 0
    Fe = 0;
    wc = 0;
    return;
end
rpm = drill_parameters_i(4);        % 对应测深处的转速
vp = drill_parameters_i(5);         % 对应测深处的钻速
den_m = drill_parameters_i(7);      % 对应测深处的钻井液密度
if op == 0   % 旋转钻进
    wob = -drill_parameters_i(2);       % 对应测深处的钻压
    tob = drill_parameters_i(3);        % 对应测深处的钻头扭矩
    mu_op = 1;
elseif op == 1   % 旋转下入
    wob = -0;       % 对应测深处的钻压
    tob = 0;        % 对应测深处的钻头扭矩
    mu_op = 1;
elseif op == 2  % 旋转上提
    wob = -0;       % 对应测深处的钻压
    tob = 0;        % 对应测深处的钻头扭矩
    mu_op = -1;
end 
if mod(depth_i,dL) > 0
    depth_cal = [[0:dL:depth_i]';depth_i];	% 计算井深
else
    depth_cal = [0:dL:depth_i]';        % 计算井深
end
length_cal = length(depth_cal);      % 计算井深的数据长度
%%
E = 2.06*1.0e11;	% 钻杆弹性模量
g = 9.8;            % 重力加速度
den_s = 7850;       %钻柱的密度  kg/m3
di_array = pipe_parameters_i(:,1);        % 钻柱内径
do_array = pipe_parameters_i(:,2);        % 钻柱外径
dc_array = pipe_parameters_i(:,3);        % 钻柱接头外径
L = pipe_parameters_i(:,4);         % 钻柱长度
m_array = pipe_parameters_i(:,5);   % 线密度
%% 轴向力和扭矩
Fe(length_cal,:) = wob;        % 底部轴向力为wob
for j = length_cal:(-1):2    
    depth_j = depth_cal(j) + 1;         % 正计算井深+1
    if depth_j < well_parameters_i(1)	% well_parameters(1)为上一层套管深度,摩阻系数分段,套管和裸眼
        mu = mu_cal(1);     % 套管摩阻系数
        dw = well_parameters_i(2);      % 上层套管内径
    else
        mu = mu_cal(2);     % 裸眼摩阻系数
        dw = well_parameters_i(2);      % 裸眼井段直径
    end
    if depth_j > depth_i-L(5)
        do = do_array(5);   di = di_array(5);   dc = dc_array(5);   wp = m_array(5)*g;
    elseif depth_j > depth_i-L(5)-L(4)
        do = do_array(4);   di = di_array(4);   dc = dc_array(4);   wp = m_array(4)*g;
    elseif depth_j > depth_i-L(5)-L(4)-L(3)
        do = do_array(3);   di = di_array(3);   dc = dc_array(3);   wp = m_array(3)*g;
    elseif depth_j > depth_i-L(5)-L(4)-L(3)-L(2)
        do = do_array(2);   di = di_array(2);   dc = dc_array(2);   wp = m_array(2)*g;
    else
        do = do_array(1);   di = di_array(1);   dc = dc_array(1);   wp = m_array(1)*g;
    end
    wbp = (1-den_m/den_s)*wp;     % 单位长度钻柱浮重,假定管柱内外流体密度相同
    %%
    I = pi/64*(do^4-di^4);      % 截面惯性矩
    mu_d = mu;        %轴向摩阻系数
    mu_t = 0;       %周向摩阻系数
    if j == length_cal && mod(depth_i,dL)~=0
        dL_Mt_Fe = mod(depth_i,dL);
    else
        dL_Mt_Fe = dL;
    end
    %%
    wc(j,:) = ((-Fe(j)*k(depth_j)+wbp*nz(depth_j))^2+(wbp*bz(depth_j))^2)^0.5/(1+tau(depth_j)^2*mu_d^2*(do/2)^2)^0.5;        %接触力计算
    if wc(j,:) == 0
        wc(j,:) = 1e-6;
    end
    sin_theta(j,:)=(wbp*bz(depth_j)-(-mu_d*tau(depth_j)*do/2)*(-Fe(j)*k(depth_j)+wbp*nz(depth_j)))/(wc(j)*(1+(mu_d*tau(depth_j)*do/2)^2));      % 接触角正弦值
    cos_theta(j,:)=(-Fe(j)*k(depth_j)+wbp*nz(depth_j)-tau(depth_j)*mu_d*wc(j)*do/2*sin_theta(j))/wc(j);     %接触力余弦值
    %% 管柱屈曲判断
    l = 11.3;       % 套管单根长度
    ltj = 0.2;      % 接头长度
    de = do*(l-ltj)/l+dc*ltj/l;     % 管柱有效外直径
    re = (dw-de)/2;     % 有效外环隙
    if Fe(j) < 0 && abs(Fe(j)) >= 2*(E*I*wc(j)/re)^0.5 && j >2       % 正弦屈曲临界载荷判断
        if (abs(Fe(j)) >= 2*(2*2^0.5-1)*(E*I*wc(j)/re)^0.5 && alpha(j) > 1*pi/180) || (abs(Fe(j)) >= 5.55*(E*I*wbp^2)^0.5 && alpha(j) <= 1*pi/180)       % 螺旋屈曲临界载荷判断
            wc(j,:) = re*Fe(j)^2/(4*E*I);      % 螺旋屈曲接触力
        else
            wc(j,:) = re*Fe(j)^2/(8*E*I);      % 正弦屈曲接触力
        end
    end
    %% 迭代求解
    Fe(j-1) = Fe(j) - dL_Mt_Fe*(mu_d*wc(j)*(1-k(depth_j)*dc/2*cos_theta(j))-wbp*tz(depth_j));       % 迭代求解管柱轴向力                  
end
end