摩阻扭矩-轨迹参数计算

摩阻扭矩-轨迹参数计算#

井眼曲率可以改

traj_para_linear#

% 轨迹参数计算函数  从钻头往上计算
function [alpha,k,kal,kph,tau,dk_ds,tz,nz,bz,dalpha_ds,dpha_ds]=traj_para_linear(trajectory_parameters)
dL = 1;     % 计算间距
depth_m = trajectory_parameters(:,1);       % 导入井深
incl = trajectory_parameters(:,2)*pi/180;	% 导入井斜角
azim = trajectory_parameters(:,3)*pi/180;	% 导入井斜方位角
depth_traj_para = [0:dL:floor(max(depth_m))]';	% 计算井深
alpha = interp1(depth_m,incl,depth_traj_para,'linear');      %井斜角的三次样条插值,转换为弧度制
pha = interp1(depth_m,azim,depth_traj_para,'linear');        %方位角的三次样条插值,转换为弧度制
%% 计算轨迹参数,从井底往井口计算,故向前差分为 [(i-1) - (i)]/dL
dalpha_ds2 = zeros(length(depth_traj_para));        % 线性插值,井斜二次导数为零,井段断点处一阶导数可能不连续,也取零
dpha_ds2 = zeros(length(depth_traj_para));          % 线性插值,方位二次导数为零,井段断点处一阶导数可能不连续,也取零
for i=1:length(depth_traj_para)
    if i == 1
        dalpha_ds(i,:) = 0;      % 井斜变化率
        dpha_ds(i,:) = 0;          % 方位变化率
        dk_ds(i,:) = 0;
        tz(i,:) = 1;
        nz(i,:) = 0;
        bz(i,:) = 0;
        continue;
    end
    dalpha_ds(i,:) = (alpha(i-1)-alpha(i))/dL;	% 井斜变化率
    dpha_ds(i,:) = (pha(i-1)-pha(i))/dL;        % 方位变化率
    k(i,:) = ((dalpha_ds(i))^2+(sin(alpha(i)))^2*(dpha_ds(i))^2)^0.5;       % 井眼曲率
    dk_ds(i,:) = (k(i-1) - k(i))/dL;      % 井眼曲率变化率
    kal(i,:) = dalpha_ds(i);        % 井斜平面井眼曲率
    kph(i,:) = sin(alpha(i))*dpha_ds(i);        % 方位平面井眼曲率
    tz(i,:) = cos(alpha(i));        % 切线方向投影分量   
    if dalpha_ds(i) == 0 && dpha_ds(i) ~= 0
        nz(i,:) = 0;
        bz(i,:) = sin(alpha(i));
    elseif dpha_ds(i) == 0 || (dalpha_ds(i) == 0 && dpha_ds(i) == 0)
        nz(i,:) = sin(alpha(i));
        bz(i,:) = 0;
    else
        nz(i,:) = dalpha_ds(i)*sin(alpha(i))/k(i);      % 主法线方向投影分量
        bz(i,:) = -dpha_ds(i)*(sin(alpha(i)))^2/k(i);	% 次法线方向投影分量
    end   
    if k(i)<1e-6
        k(i,:)=1e-6;        % 如果井眼曲率k小于1e-6,为计算准确,令k=1e-6
    end
    tau(i,:)=(sin(alpha(i))*(dalpha_ds(i)*dpha_ds2(i)-dpha_ds(i)*dalpha_ds2(i))+dpha_ds(i)*((dalpha_ds(i))^2+(k(i))^2)*cos(alpha(i)))/(k(i))^2;     % 井眼挠度
end
end

traj_para_pchip#

% 轨迹参数计算函数  从钻头往上计算
function [alpha,k,kal,kph,tau,dk_ds,tz,nz,bz,dalpha_ds,dpha_ds]=traj_para_pchip(trajectory_parameters)
dL = 1;
depth_m = trajectory_parameters(:,1);       % 导入井深
incl = trajectory_parameters(:,2)*pi/180;	% 导入井斜角
azim = trajectory_parameters(:,3)*pi/180;	% 导入井斜方位角
depth_traj_para = [0:dL:floor(max(depth_m))]';	% 计算井深
alpha = interp1(depth_m,incl,depth_traj_para,'pchip');      %井斜角的三次样条插值,转换为弧度制
pha = interp1(depth_m,azim,depth_traj_para,'pchip');        %方位角的三次样条插值,转换为弧度制
%% 计算轨迹参数,从井底往井口计算,故向前差分为 [(i-1) - (i)]/dL
dalpha_ds = zeros(length(depth_traj_para),1);
dpha_ds = zeros(length(depth_traj_para),1);
dalpha_ds2 = zeros(length(depth_traj_para),1);
dpha_ds2 = zeros(length(depth_traj_para),1);
k = zeros(length(depth_traj_para),1);
dk_ds = zeros(length(depth_traj_para),1);
kal = zeros(length(depth_traj_para),1);
kph = zeros(length(depth_traj_para),1);
tz = zeros(length(depth_traj_para),1);
nz = zeros(length(depth_traj_para),1);
bz = zeros(length(depth_traj_para),1);
tau = zeros(length(depth_traj_para),1);
for i=1:length(depth_traj_para)
    if i == 1
        dalpha_ds(i,:) = 0;      % 井斜变化率
        dpha_ds(i,:) = 0;          % 方位变化率
        dalpha_ds2(i,:) = 0;
        dpha_ds2(i,:) = 0;
        k(i,:) = 0;
        dk_ds(i,:) = 0;
        tz(i,:) = 1;
        nz(i,:) = 0;
        bz(i,:) = 0;
        tau(i,:) = 0;
        continue;
    end
    dalpha_ds(i,:)=(alpha(i-1)-alpha(i))/dL;	% 井斜变化率
    dalpha_ds2(i,:) = (dalpha_ds(i-1)-dalpha_ds(i))/dL;     % 井斜二阶倒数
    dpha_ds(i,:) = (pha(i-1)-pha(i))/dL;      % 方位变化率
    dpha_ds2(i,:) = (dpha_ds(i-1)-dpha_ds(i))/dL;     % 方位二阶倒数
    k(i,:) = ((dalpha_ds(i))^2+(sin(alpha(i)))^2*(dpha_ds(i))^2)^0.5;       % 井眼曲率
    dk_ds(i,:) = (k(i-1) - k(i))/dL;      % 井眼曲率变化
    kal(i,:) = dalpha_ds(i);        % 井斜平面井眼曲率
    kph(i,:) = sin(alpha(i))*dpha_ds(i);        % 方位平面井眼曲率
    tz(i,:) = cos(alpha(i));        % 切线方向投影分量
    if dalpha_ds(i) == 0 && dpha_ds(i) ~= 0
        nz(i,:) = 0;
        bz(i,:) = sin(alpha(i));
    elseif dpha_ds(i) == 0 || (dalpha_ds(i) == 0 && dpha_ds(i) == 0)
        nz(i,:) = sin(alpha(i));
        bz(i,:) = 0;
    else
        nz(i,:) = dalpha_ds(i)*sin(alpha(i))/k(i);      % 主法线方向投影分量
        bz(i,:) = -dpha_ds(i)*(sin(alpha(i)))^2/k(i);	% 次法线方向投影分量
    end
    if k(i)<1e-6
        k(i,:)=1e-6;        % 如果井眼曲率k小于1e-6,为计算准确,令k=1e-6
    end
    tau(i,:) = (sin(alpha(i))*(dalpha_ds(i)*dpha_ds2(i)-dpha_ds(i)*dalpha_ds2(i))+dpha_ds(i)*((dalpha_ds(i))^2+(k(i))^2)*cos(alpha(i)))/(k(i))^2;     % 井眼挠度
end
end