Академический Документы
Профессиональный Документы
Культура Документы
% Based on:
% An Improved Finite-Difference Calculation of Downhole Dynamometer Cards for
Sucker-Rod Pumps - Everitt, Jennings (1992)
% Implementation for Uniform Strings
%
% Joe Ercolino - July 2011
Xu = X(1:IXmax);
Xd = [X(IXmax: end); X(1)];
Fu = F(1:IXmax);
Fd = [F(IXmax: end); F(1)];
S = Xmax - Xmin;
load PUnit
% Interpolacin de Xi en NT Puntos
Ni = length(Xi);
Xi = interp1(linspace(0,1,Ni + 1), [Xi; Xi(1)], (0:NT - 1)'/NT);
Xiu = Xi(1:IXimax);
Xid = Xi(IXimax + 1:end);
Fiu = interp1(Xu, Fu, Xiu, 'linear', 'extrap');
Fid = interp1(Xd, Fd, Xid);
Fi = [Fiu; Fid];
% plot(X, F, 'b.')
% hold on
plot(Xi, Fi, 'b-')
% hold off
%% Valores Calculados
% Incremento de Tiempo (s)
DT = 60/T/(NT - 1);
% Criterio de Estabilidad
Cest = DX/V/DT;
if Cest >= 1
disp(['Atencin. Coeficiente de Estabilidad: ' num2str(Cest) ' >= 1'])
end
% Coeficiente Alfa
Alpha = (DX/DT^2)*Rho*A/144/Gc;
Fp = E*A/DX*(U(M+1,:) - U(M,:));
Xp = -12*(U(M+1,:) - max(U(M+1,:)));
% Xp = NaN(1,N);
% for j = M:N-M+1
% Xp(j) = -12*((1 + C*DT)*U(M, j + 1) - C*DT*U(M, j) + U(M, j - 1) - U(M - 1,
j));
% end
%
% Fp = NaN(1,N);
% for j = M:N-M+1
% Fp(j) = (E*A/2/DX)*(3*U(M+1,j) - 4*U(M,j) + U(M-1,j));
% end
hold on
% plot(Up, Fpj,'r.')
plot(Xp, Fp,'r')
hold off
xlabel('Displacement (in)')
ylabel('Load (lbs)')
title('Surface and Downhole Dynamometer Cards')
legend('Surface', 'Downhole')