Documente Academic
Documente Profesional
Documente Cultură
function [f0,counter]=ecuacion_colebrook(k,Re_t)
%LT-FA-JM---2019/05/02
%METODOS DE RESOLUCION INTERACTIVA ECUACION COLEBROOK
%INPUT:
%k=rugosidad de la tubería;
%Re_t=numero Reynolds para flujo turbulento
%OUTPUT:
%fx=factor de fricción
%counter=numero de iteraciones
%[fx,count]=ecuacion_colebrook(k,Re_t), así se llama a la funcion.
%----------------------------------------------------------------
%%f0=Re
%for i=1:20
%f1=(-2*log10((k/3.7)+(2.51/(Re*sqrt(f0)))))^(-2);
%f0=f1; %actualizar el valor de f0 para cada iteracion del loop
%end
%se usa while al ser if limitado a 20 o n numeros
%---------------------------------------------------------------------
f0=0.03;%segun tabla Moody, valor de inicio que se reemplaza despues.
%se usa un contador para salir del loop infinito
counter=0;
while true
f=(-2*log10((k/3.7)+(2.51./(Re_t.*sqrt(f0))))).^(-2); %ecuación de
colebrook
precision=abs(f0-f);
if precision < 10^-6 %dada segun la tabla
break %rompe el ciclo while al cumplir dicha precision
end
f0=f;%actualizar el valor de f0 para cada iteracion del loop
counter=counter+1;
end
DIAGRAMA MOODY
%LT-FA-JM 2019/05/04
%GRAFICO MOODY
clc
clear
tic %para contabilizar el tiempo en ejecutar el programa
k=[1e-6,5e-6,1e-5,5e-5,1e-4,2e-4,5e-
4,0.001,0.002,0.005,0.01,0.015,0.02,0.03,0.04,0.05]; %k=rugosidad de la
tubería;
Re_t=2000:100:1e8; %para flujo turbulento
Re_lam=500:10:2000;%para flujo laminar
Re_tr=2000:10:3000;%para transicion
for j=1:length(k)
FX=[]; %vaciar para cada valor de k
for i=1:length(Re_t)
[fx,count]=ecuacion_colebrook(k(j),Re_t(i));%llamar a la funcion
ecuacion_colebrook
FX(i)=fx;%se van almacenando los valores
end
pause(1) %pausa un segundo entre cada linea graficada
loglog(Re_t,FX)%escala x-Re_t logaritmica, k-normal
hold on
end
hold on
f_lam=64./Re_lam;%para flujo laminar
pause(1)
loglog(Re_lam,f_lam)
hold on
f_tr=64./Re_tr;%para transicion
pause(1)
loglog(Re_tr,f_tr,'--')
INTEGRACIÓN NUMÉRICA
%LT-FA-JM 2019/05/16
%INTEGRACION NUMERICA
format long %para apreciar varias cifras y comparar métodos:
%Ejemplo:
%>>int_1 [ENTER]
%int_1 =
%10.666400000000001
%-------------------------------------------------------------------
%1. ejemplo de integración por rectángulos infinitos
a=0; %Límite inferior
b=4; %Límite superior
n=200; %Número de divisiones de área (precisión)
dx=(b-a)/n;
x=a:dx:b; %valores de x en pasos de dx, se debe eliminar el último valor
de x
%tamanio=numel(x);------> OTRA OPCION
%x(:,tamanio)=[];------> OTRA OPCION
%sol=sum(f_x.*dx);------> OTRA OPCION
f_x=4*x-x.^2; %función a obtener la integral
int_1=sum(f_x(1:end-1)*dx);
%------------------------------------------------------------------
%forma simbólica
syms x %indica variable x como simbólica
f=(-x^2)/(x^3+x);
int(f) %valor de la integral indefinida en forma de símbolos.
f2=(-x^2)/(x^x+x); %restricción de que no exista la integral
int(f2) %no integra
%-----------------------------------------------------
%2. ejemplo de integración por trapecios infinitos
% 4. Con function
a_4=input('Ingrese el límite inferior de la integral: ');
b_4=input('Ingrese el límite superior de la integral: ');
aumentador=input('Desea aumentar la precisión (SI=1, NO=0): ');
if aumentador==1
n_4=input('Ingrese el número de divisiones de área (a mayor número
mayor precisión): ');
[int_4]=int_num_function(a_4,b_4,n_4);
else
[int_4]=int_num_function(a_4,b_4);
end
FUNCIÓN
function[int_4]=int_num_function(a_4,b_4,n_4)
if nargin <3
n_4=200;
end
h_4=(b_4-a_4)/n_4;
x_4=a_4:h_4:n_4;
y_4=(-x_4.^2)./(x_4.^x_4+x_4);
int_4=trapz(x_4,y_4);
end